软件工程 第二版 习题答案
修改浏览权限 | 删除
第一章
1.什么是软件危机?为什么会产生软件危机?
答:软件危机是指在计算机软件的开发和维护过程中遇到的一系列严重问题。
(1).软件维护费用急剧上升,直接威胁计算机应用的夸大。
(2).软件生产技术进步缓慢
2. 什么是软件生产工程化?工程化生产方法与早期的程序设计方法主要差别在哪里?
答:结构化程序设计地出现,使许多产业界认识认识到必须把软件生产从个人化方
式改变为工程化。采用工程的概念、原理、技术和方法开发与维护软件,把经过时
间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济
地开发出高质量的软件并有效地维护它,这就是软件工程,同时这也是工程化生产
方法。
3. 分别说明(1)软件开发方法与开发工具;(2)软件技术与软件管理的相互关系。
答:(1)工具和方法,是软件开发技术的两大支柱,它们密切相关。当一种方法提出来并证明有效后,往往随之研制出相应的工具,来帮助实现和推行这种方法。新方法在推行初期,总有人不愿接受和采用。若将新方法融合于工具之中,使人们通过使用工具来了解新方法,就能更快促进新方法的推广。
(2)在工业生产中,即使有先进的技术和设备,管理不善的企业也不能获得良好的效益。
软件在生产中不能按质按时完成计划,管理混乱往往是其中的重要原因。所以对于一个理想的软件工程环境,应该同时具备技术和管理两个方面。
4.试从你的亲身实践,谈谈软件工具在软件开发中的作用。
答:用C++开发一个软件,是校园一卡通的模块。首先,要在编辑程序支持下在计
算机中输入源程序。然后编译程序,把源程序翻译成目标程序。如果发现错误,就
重新调入编辑程序对源程序进行修改。编译通过后,再调用连接程序吧所有通过了
编译目标程序连同与之有关的程序连接起来,构成一个能在计算机上运行的可执行
软件。编译程序,编辑程序,连接程序以及支持他们的计算机操作系统,都属于软
件工具。离开这些工具,软件开发就是去了支持,变得十分困难和低效,甚至不能
运行。
5.什么是软件工程环境?谈谈你对环境重要性的认识。
答:方法与工具相结合,再加上配套的软、硬件支持就形成环境。
例如在批处理时代,用户开发的程序是分批送入计算机中心的计算机的,有了错误,就得下机修改。程序员对自己写的程序只能继续地跟踪,思路经常被迫中断,效率难于提高。分时系统的使用,使开发人员从此能在自己
的终端上跟踪程序的开发,仅此一点,就明显提高了开发的效率。
6. 何谓面向对象软件工程?简述它与传统软件工程在各型软件开发中的作用。
答:以面向对象程序设计为基础。
7. 软件按规模大小可分成哪几类?简述软件工程中各型软件开发中的作用。
答:按规模分为极小、小、中、大、甚大、极大。
(1)中小型软件:软件工程对改进软件质量,提高程序员生产率和满足用户的需求,有很大的作用。
(2)大型软件:这类软件必须从头至尾坚持软件工程的方法,严格遵守标准文档格式和正规的复审制度,才能避免或减少混乱,真正开发出大型的软件。
8. 什么是形式化软件开发方法?实现这类开发的困难和出路在哪里?
答:它是一种基于数学的开发技术,主要采用数学的方法来描述系统的性质(例如程序变换和程序验证等)。形式化的方法加上自动化的开发环境,可能是解决这一难题的出路。
第二章
1.什么是软件生存周期?把生存周期划分为阶段的目的是什么?
答:软件生存周期划分为计划、开发和运行3个时期;把整个生存周期划分为较小
的阶段,给每个阶段赋予确定而有限的任务,就能够化简每一步的工作内容,使因
为软件规模而增长而大大增加了软件复杂性变得交易控制和管理。
2.传统的瀑布模型把生存周期分为哪些阶段?瀑布模型软件开发有哪些特点?
答:瀑布模型在编码以前安排了分析阶段和设计阶段;阶段间具有顺序性和依赖性。
3.说明文档和复审对于软件质量的控制的作用。
答:每一阶段都要完成规定的文档,没有完成文档,就认为没有完成该阶段的任务
。软件开发是许多人共同参加的计划,完整与合格的文档,不仅是开发时期软件人
员之间互相通信的媒介,也是运行时期对软件进行维护的中要依据。每一阶段都要
对已完成的文档进行复审,以便尽早发现问题,消除隐患。愈是早期潜伏下来的故
障,暴露出来的时间愈晚,排除故障需付出的代价也就愈高。及时复审是保证软件
质量,降低开发成本的重要措施。
4.什么是快速原型法?其快速表现在哪里?
答:首先建立一个能够反映用户主要需求的原型,让用户实际看一看未来系统的概
貌,以便判断哪些功能是符合需要的,哪些方面还需要改进。然后将原型改进,最
终建立完全符合用户要求的新系统。它的快速表现在能够缩短开发周期的语言和工
具,能在短时间内提供出成品,但不包括成品中的细节,然后让客户进行对比。
5.实现快速原型法的最终系统可以有几种方法?请说明并加以比
较。
答:原型系统仅包括未来系统的主要功能,以及系统的重要接口。为了尽快向用户
提供原型,开发原型系统时应尽量使用能缩短开发周期的语言和工具。最终系统的
形成可以采用原型废弃不用,另一方法是补充修改模型获得最终系统。方法一不包
括系统的细节。后一种方法在实际工作中,由于原型系统使用的语言往往存在效率
不高等原因,除了少数简单的事务系统外,大多数原型都废弃不用,仅把建立原型
的过程当作帮助定义软件需求的一种手段。
6.比较增量模型和螺旋模型的特点,有什么不同和相似的地方?
答:增量模型是瀑布模型的顺序特征与快速原型法的迭代特征相结合的产物。螺旋
模型是一种迭代模型,每迭代一次,螺旋线就前进一周。增量模型每个增量具有高
内聚低耦合,高度的独立性。而螺旋模型它在结合瀑布模型与快速原型的基础上还
增加了风险分析。
7.为什么利用转换模型开发软件有一定难度?什么是净室软件工程?
答:从理论上说,一个正确的,满足客户需要的形式化规格说明,经过一系列正确
的程序变化后,可以确保得到这样一个形式化规格说明,目前还有较高的难度,同
时,软件开发者很少具有实用形式化方法所需的背景知识,况且,转换模型开发软
件现在还很费时和昂贵!净室基本思想是力求在分析和设计阶段就消除错误,确保正确,然后在无缺陷或“洁净”的状态下实现软件的制作。
8.哪些开发模型适用于面向对象的软件开发?
答:构件集成模型
9.比较螺旋模型和构件集成模型的异同。
答:构件集成模型利用预先对封装好的软件构件来构造应用软件系统,它融合了螺
旋模型的很多特征,支持软件开发的迭代方法。
第三章
1.需求分析的任务是什么?怎样理解分析阶段的任务是决定“做什么”,而不是“怎么做”?
答:需求分析主要有两个任务:第一是通过对问题及其环境的理解、分析和综合建
立分析模型;第二是在完全弄清用户对软件系统的确切要求的基础上,用“软件需
求规格说明书”把用户的需求表达出来。需求分析的任务就是为了明确要开发的是
一个什么样的系统,而不是去怎么去实现这个系统。
2.需求分析要经过哪些步骤?
答:需求获取、需求提炼、需求描述、需求验证。
3.有哪两种主要的分析模型,它们有什么联系?
答:面向对象分析模型、结构化分析模型。前者是采用面向对象的思想进行软件需
求分析的建模过程,而后者模型的核心是DD,它是设计各种数据对象的总和。他们
的模型分
别起到了描述数据模型,功能模型与行为模型的作用。
4.什么是结构化分析?它的“结构化”体现在哪里?
答:是使用DFD、DD、结构化语言、判定表和判定树等工具,来建立一种新的、称
为结构化说明书的目标文档。
5.什么是面向对象分析?其主要思想是什么?
答: OOA面向对象的分析是采用面向对象的思想进行软件需求分析建模的过程.主要
思想是采用面向对象的思想。
6. 需求说明(或需求规格说明书)由哪些部分组成?各部分的主要内容是什么?
答:
7. 为什么DFD要分层?画分层DFD要遵循哪些原则?
答:大型复杂的软件系统,其DFD可能含有数百乃至数千个加工,不能设想一次就将它们全部画齐。正确的做法是:从系统的基本模型(把整个系统看成一个加工)开始,逐层地对系统进行分解。原则:由顶向下,逐步细化。
9. 什么是系统的行为模型,如何建立?
答:类对象模型所表示的是面向对象分析模型中的静态部分,而对象行为模型则用于描述系统的动态行为,即系统如何对应外部事件---系统的行为模型。
建立一个对象行为模型一般要经历一些过程:评估所以的用例来理解系统中的交互序列;找出驱动交互序列的事件;为每个用例创建事件轨迹;为对象创建状态转换图。
为了您的安全,请只打开来源可靠的网址
打开网站 取消
来自: https://www.wendangku.net/doc/ed17214289.html,/strawberry812/blog/item/5eae92ee9d640ef0b2fb952b.html