软件工程理论与实践—吕云翔 课后习题第二章答案

1.判断题

XXXX

2.选择题

CCBADCB

(1)增量模型本质是一种(非整体开发模型)

(2)软件过程是(软件开发活动的集合)

(3)软件生命周期模型不包括(用例模型)

(4)包含风险分析的软件工程模型是(螺旋模型)

(5)软件工程中描述生命周期的瀑布模型一般包括计划、需求分析、设计、编码、(测试)和维护等几个阶段

(6)软件开发的瀑布模型一般都将开发过程划分为分析、设计、编码和测试等阶段,一般认为可能占用人员最多的阶段是(编码阶段)

(7)螺旋模型综合了(瀑布模型和快速原型模型)的优点,并增加了风险分析

3.简单题

(1)如何理解软件生命周期的内在特征?

答:软件产品的生命周期是指从设计该产品的构想开始,到软件需求的确定、软件设计、软件实现、产品测试和验收、投入使用,以及产品版本的不断更新,到该产品最终被市场淘汰的全过程。软件生命周期这个概念从时间的角度将软件的开发和维护的复杂过程分解为若干个阶段,每个阶段都完成特定的、相对独立的任务。在软件的开发过程中每一个阶段都不可缺少,合理地划分软件生命周期的各个阶段,使各个阶段之间既相互区别又相互联系,为每个阶段赋予特定的任务,这些都是软件开发项目成功的重要因素。

(2)请对比瀑布模型、快速原型模型、增量模型和螺旋模型。

答:(一)瀑布模型:它是一种线性的开发模型,具有不可回溯性。开发人员必须等前一阶段的任务完成后,才能开始进行后一阶段的工作,并且前一阶段的输出往往就是后一阶段的输入。

它的优点:过程模型简单,执行容易

它的缺点:无法适应变更。

它适用于具有以下特征的软件开发项目:① 在软件开发的过程中,需求不发生或发生很少的变化,并且开发人员可以一次性获取全部需求。否则,由于瀑布模型较差的可回溯性,在后续阶段需求经常性地变更需要付出高昂的代价。 ②软件开发人员具有丰富的经验,对软件应用领域很熟悉。③ 软件项目的风险较低。该模型不具有完善的风险控制机制。

 (二)快速原型模型:该模型的基本思想实施快速建立一个能反映用户主要需求的原型系统,让用户在计算机上试用它,通过实践来了解目标系统的概貌。然后根据用户试用之后提出的许多修改意见,开发人员按照用户的意见快速地修改原型系统,然后再次请用户试用······反反复复地改进,直到原型系统满足用户的要求。

它适用于具有以下特征的软件开发项目:① 已有产品或产品的原型(样品),只需客户化的工程项目。② 简单而熟悉的行业或领域 ③ 有快速原型开发工具 ④ 进行产品移植或升级

(三)增量模型:该模型是把待开发的软件系统模块化,将每个模块作为一个增量组件,从而分批次地分析、设计、编码和测试这些增量组件。该模型的最大特点就是将待开发的软件系统模块化和组件化。

它的优点:① 将待开发的软件系统模块化,可以分批次地提交软件产品,使用户可以及时了解软件项目的进展。② 以组件为单位进行开发降低了软件开发的风险。一个开发周期内的错误不会影响到整个软件系统。③ 开发顺序灵活。开发人员可以对构件的实现顺序进行优先级排序,先完成需求稳定的核心组件。当组件的优先级发生变化时,还能及时地对实现顺序进行调整。

它适用于具有以下特征的软件开发项目:① 软件产品可以分批次地进行交付 ② 待开发的软件系统能够被模块化 ③ 软件开发人员对应用领域不熟悉,难以一次性地进行系统开发。④ 项目管理人员把握全局的水平较高。

(四)螺旋模型:该模型是一种风险较大的大型软件项目开发的过程模型。它把瀑布模型与快速原型模型结合起来,并且加入了这两种模型所忽略了的风险分析。它把开发过程分为制定计划、风险分析、实施工程和客户评价4种活动。

它的优点:将风险分析扩展到各个阶段中,大幅度降低了软件开发的风险。

它的缺点:该模型的控制和管理较为复杂,可操作性不强,对项目管理人员的要求较高。

它适用于风险较大的大型软件项目的开发。

(3)在统一软件开发过程模型中核心工作流程包含哪些? 

答:核心工作流程有业务建模、需求、分析和设计、实现、测试和部署。 

(4)当需求不能一次搞清楚,且系统需求比较复杂时,选用哪种开发模型比较合适?

 答:选择螺旋模型,当需求不太清楚且系统复杂的时候,也就意味着风险较大,同时螺旋模型也是一种综合性的模型

(5)敏捷过程的核心价值观有哪些?它对传统方法的“反叛”体现在哪些方面?

答:核心价值观有以下四个:① 个体与交互高于过程和工具 ② 可运行软件高于详尽的文档

③ 与客户协作高于合同(契约)谈判 ④ 对变更及时响应高于遵循计划

相对于传统的软件工程方法,它更强调软件开发过程中各种变化的必然性,通过团队成员之间充分的交流与沟通,以及合理的机制来有效地响应变化。

(6)什么是软件过程?它与软件工程方法学有何关系?

答:软件的诞生和生命周期是一个过程,成为软件过程。

软件工程方法学的三要素是:过程、方法和工具,软件过程是其的一个重要要素。

你可能感兴趣的:(软件工程)