admin管理员组

文章数量:1568418


2024年6月5日发(作者:)

软件工程实用教程(第2版)

《软件工程实用教程》习题与参考答案

第2章 软件生存周期及开发模型

1. 简述什么是软件生存周期?根据国家标准《计算机软件开发规范》,软件生存周期

主要包括哪几个阶段?

答案要点:

软件生存周期是指软件产品从功能确定、设计、开发成功、投入使用,并在使用中不断

修改、完善,直至被新的软件所替代,而停止该软件使用的全过程。

国家标准GB8566-1988《计算机软件开发规范》将软件生命周期划分为几个阶段:可行

性研究、项目计划、需求分析、总体设计、详细设计、编码实现(包括单元测试)、集成测

试、确认测试、系统运行和维护。这几个阶段又可以归纳为3个大的阶段,即软件定义阶段,

软件开发阶段和软件运行维护阶段。

2. 瀑布模型有哪些特点?对于里程碑,你有哪些认识?

答案要点:

瀑布模型是一种基于里程碑的阶段过程模型,它所提供的里程碑式的工作流程,为软件

项目按规程管理提供了便利。例如,按阶段制定项目计划,分阶段进行成本核算,进行阶段

性的评审等。这为提高软件产品质量提供了有效保证。

瀑布模型的特点:

• 阶段性:前一阶段工作完成以后,后一阶段工作才能开始,前一阶段的输出文档是

后一阶段的输入文档。

• 阶段评审:在每一阶段工作完成后都要进行评审,以便尽早发现问题,避免后期的

返工,如果评审不合格,则不开始下一阶段的工作。

• 文档管理:在每阶段都规定了要完成的文档,没有完成文档,就认为没有完成该阶

段的任务。

3. 试说明原型模型的两种实现方案各有什么特点?各适用于什么情况?

答案要点:

原型模型在软件分析、设计阶段的应用,用来解决用户对软件系统在需求分析上的模糊

认识。将模拟的手段引入需求分析的初期阶段,通过建立原型缩短用户与分析人员之间的距

离。

快速原型方法具有以下一些特点。

• 快速原型是用来获取用户需求的,或是用来试探某种设计是否有效。一旦需求或设

计确定下来,原型就将被抛弃。因此快速原型要求快速构建、容易修改,以节约原型创建成

本,加速开发速度。快速原型往往采用软件生成工具来创建,例如,4GL语言。

• 快速原型是暂时使用的,因此并不要求完整。它往往针对某个局部问题建立专门原

型,如界面原型、工作流原型、查询原型等。

• 快速原型不能贯穿软件的整个生命周期,它需要和其他的过程模型相结合才能产生

作用。例如,前面我们提到的在瀑布模型中应用快速原型,可以解决瀑布模型在需求分析时

期存在的不足。

• 对于一个大型复杂的系统,如果不经过分析来进行整体性划分,想直接用屏幕来一

个一个地模拟是很困难的;对于大量运算、逻辑性较强的程序模块,快速原型方法很难构造

出模型来供人评价。因此,原型方法只适用于小型、简单、处理过程比较明确、没有大量运

算和逻辑处理过程的系统。

– –

1

软件工程实用教程(第2版)

原型进化模型对开发过程的考虑是,针对有待开发的软件系统,先开发一个原型系统让

用户使用,然后根据用户使用情况的意见反馈,对原型系统不断修改,使它逐步接近并最终

达到开发目标。跟快速原型不同的是,快速原型在完成需求定义后将被抛弃,而原型进化所

要创建的原型则是一个今后要投入应用的系统,只是所创建的原型系统在功能、性能等方面

还有许多不足,还没有达到最终的开发目标,需要不断改进。

· 原型进化模型将软件的需求细节定义、产品开发和有效性验证放在同一个工作进程

中交替或并行运作。因此,在获得了软件需求框架以后,例如,软件的基本功能被确定以后,

就可以直接进入到对软件的开发中。

• 原型进化模型是通过不断发布新的软件版本而使软件逐步完善的,因此,这种开发

模式特别适合于那些用户急需的软件产品开发。它能够快速地向用户交付可以投入实际运行

的软件成果,并能够很好地适应软件用户对需求规格的变更。

4. 一般认为,只有大型项目才采用螺旋模型,其原因是什么?

答案要点:

螺旋模型增加了软件项目的风险分析,因为项目规模越大、问题越复杂,资源、成

本、进度等因素的不确定性就越大,承担项目所冒的风险也越大。人们进行风险分析与

管理的目的就是在造成危害之前及时对风险进行识别、分析、采取对策,从而消除或减

少风险所造成的损失。该模型适合于指导大型软件项目的开发,它将软件项目开发划分

为制定计划、风险分析、实施开发以及客户评估4类活动。在对风险进行识别和分析时,

如果开发风险过大,开发者和用户无法承受,项目有可能因此而终止。螺旋模型的优越性在

于它吸收了“进化”的概念,使得开发人员和用户对每一个演化层出现的风险均有所了解,

并对此做出反应。但使用该模型需要丰富的风险评估经验和专门知识,如果项目风险较大又

未及时发现,势必造成重大损失。实际上,对软件项目进行风险分析也需要费用,假如项目

风险分析费用过高,甚至超过了项目的开发费用,显然就不合适了。一般大型项目才有较高

的风险,才有进行详细风险分析的必要。因此这种模型比较适合大型的软件项目。

5. 为什么说构件复用模型是一种有利于软件按工业流程生产的过程模型?

答案要点:

构件复用模型最明显的优势是减少了需要开发的软件数量,缩短了软件交付周期,提高

了软件的质量,降低了开发风险。由于构件具有一定的通用性,可以在不同的软件系统中被

复用。在基于构件复用的软件开发中,软件由构件装配而成,这就如同用标准零件装配汽车

一样。构件复用技术,它能带来更好的复用效果,并且具有工程特性,更能适应软件按工业

流程生产的需要。

6. 敏捷方法的价值观和原则与传统的方法有哪些联系和区别?

答案要点:

敏捷软件开发过程是一类过程的统称,敏捷方法的价值观和原则:

.个体和交互胜过过程和工具;

.可以工作的软件胜过面面俱到的文档;

.客户合作胜过合同谈判;

.响应变化胜过遵循计划。

传统软件开发开发过程是顺序和进化的软件过程模型,如:顺序软件过程模型有:

瀑布模型,快速原型模型。进化的软件过程模型有:增量模型、螺旋模型。传统软件开

发模型主要采用了系列化、结构化开发技术,所以软件过程具有“线性”特征,开发活

– –

2

软件工程实用教程(第2版)

动比较有序、清楚、规范,但开发出的软件产品的稳定性、可复用性、可维护性都比较

差。

敏捷软件开发过程可用于任何软件过程,将软件过程设计为:允许项目团队调整

并合理安排任务,理解敏捷开发方法的易变性并制定计划,精简并维持最基本的工作,

强调增量交付策略,快速向客户提供适应产品类型和运行环境的软件。

7

8. 具有原型化的瀑布模型具有什么特点?它与瀑布模型最大的不同是什么?

答案要点:

特点:

·原型进化模型将软件的需求细节定义、产品开发和有效性验证放在同一个工作进

程中交替或并行运作。因此.在获得了软件需求框架以后,如软件的基本功能被确定以

后,就可以直接进入到对软件的开发中。

·原型进化模型是通过不断发布新的软件版本而使软件逐步完善的,因此.这种开

发模式特别适合于那些用户急需的软件产品开发。它能够快速地向用户交付可以投入实

际运行的软件成果,并能够很好地适应软件用户对需求规格的变更。

不同是:

传统的瀑布模型很难适应需求变化、模糊不定的软件系统的开发,而且在开发过程

中,用户很难参与进去,只有到开发结束才能看到整个软件系统。这种线性的开发过程,

缺乏灵活性。

原型模型的提出,可以较好的解决瀑布模型的局限性。

通过建立原型,可以更好的和客户进行沟通,解决对一些模糊需求的澄清,并且对

需求的变化有较强的适应能力。原型模型可以减少技术、应用的风险,缩短开发时间,

减少费用,提高生产率,通过实际运行原型,提供了用户直接评价系统的方法,促使用

户主动参与开发活动,加强了信息的反馈,促进了各类人员的协调交流,减少误解,能

够适应需求的变化,最终有效提高软件系统的质量。

9. 某企业计划开发一个“综合信息管理系统”,该系统涉及销售、供应、财务、生产、

人力资源等多个部门的信息管理。该企业的设想是按部门的优先级别逐个实现,边开发边

应用。对此需要采用一种比较合适的过程模型,请对这个过程模型做出符合应用需求的选

择,并说明选择理由。

答案要点:

可以采用增量模型。它是瀑布模型与原型进化模型的综合,它对软件过程的考虑是:在

整体上按照瀑布模型的流程实施项目开发,以方便对项目的管理;但在软件的实际创建中,

则把软件系统按功能分解为许多增量构件,并以构件为单位逐个地创建与交付,直到全部增

量构架创建完毕,并都被集成到系统之中交付用户使用。

– –

3


本文标签: 软件模型原型开发需求