第2章参考答案

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一.基本概念

1.什么是软件过程?软件过程包括哪三类过程?这三类过程分别承担什么任务?

答:软件过程(Software Procedure)是为获得软件产品,在软件工具支持下由软件工程师完成的一系列软件工程活动。

●软件过程规范了软件开发的活动集合和活动顺序,提供了构造高质量软件所需要完成的

一系列相关活动及其活动顺序的框架。;

●软件过程贯穿软件开发方法论;

软件过程可概括为三类:基本过程、支持过程、组织过程。这三个过程反映了软件开发的活动集合,

●基本过程:软件开发的主干活动集。如同建筑工程的签合同、搞设计、现场施工、工程交付、使用维护,也就是进行投入产出的实质性活动集。软件开发的基本过程多数属于开发人员执行的活动集,它包括需求分析、软件设计、系统实现这些子活动;。

●支持过程:软件开发的辅助活动集。如同建筑工程的资料管理、工程监理等。也可以说是软件质量保证的活动集。应该属于项目管理层执行的活动集。这个活动集在现代软件工程中逐渐被重视;

●组织过程:软件开发的软、硬件环境建设。如同建筑工程的施工装备、人员协调、人员培训、后勤保障等综合配套管理活动。组织过程基本上属于企业管理层执行的活动集,体现了IT企业的可持续发展能力和竞争优势。

2.软件过程与软件工程有什么区别和联系?

答:(1)过程与工程是两个层面的问题,过程是加工高质量软件产品的活动集合和顺序,具体的投入产出过程,关注在技术层面;工程是对过程的投入进行资源协调,是向过程要效益的管理层面。

(2)软件过程是软件工程的子集。在软件工程的过程、方法和工具三要素中,它是底层要素;在软件工程的目标、原则和过程三维全景图中,通过软件过程才能实现软件工程的目标。

3.什么是软件生命周期?与软件过程有何区别和联系?

答:

(1)软件生存周期:软件产品从定义到开发、经过使用和维护,直到最终被弃用;

(2)两者指同一个事情,只是表达问题的角度不同:

●软件过程:关注产品加工的活动集合、顺序和方法论;

●生命周期:关注软件产品从诞生到消亡的生命历程,实质内容也就是软件过程;

因此软件过程=软件生存周期,“软件生存周期模型”也称为“软件过程模型”或“软件开发模型”。

4.把生命周期划分为阶段有何作用?

答:把整个生命周期划分为若干较小的阶段,每个阶段有明确的任务界限,能够简化每一步的工作内容,使得因为软件规模增长而带来的软件开发复杂性增大变得容易控制和管理。这是遵循分阶段、实行阶段控制的基本原理。

5.软件生命周期划分哪些阶段?每个阶段有哪些基本活动?

答:生存周期的基本划分:分成三个大的阶段也称三个时期,即计划时期、开发时期和运行时期。每个时期又由若干活动组成。

●计划时期:是软件项目的初始阶段。主要活动及顺序是问题定义和可行性研究;活动内容是搞清软件的开发目的、规模、约束条件和技术方案,属论证阶段;目标是获取软件开发项目。

●开发时期:软件开发的第二阶段。包括的活动及顺序是分析、设计和实现;活动内容是逐步细化软件模型、经过编码和测试,最终得到可运行的软件。开发时期属实质性开发阶段;目标是构建高质量的软件。

●运行时期:软件生存周期的最后阶段,软件处在运行中,往往也是最长阶段。主要活动就是维护;活动内容是治疗和进化软件;目标是延长软件的寿命。

6.介绍了哪四种传统开发模型?各有何特点?

答:瀑布、原型、增量、螺旋四个传统模型:

(1)瀑布模型:主要体现了分阶段、有控制的思想。活动间强调按顺序、文档化;存在的问题是:过于理想化,每一步的工作必须完整准确,否则无法进行下一步工作。

(2)原型模型:需求分析入手快速、表达直观、容易交流。重点解决瀑布模型需求分析入手难的问题。

(3)增量模型:对于需求复杂的系统,采用分块开发,逐步集成的开发策略。增量体现了演进、迭代思想,每一块就是一个增量。每个增量是一次迭代。增量模型的新版本叫做“极限编程”(XP)。

(4)螺旋模型:融合了上述三种模型,融进了循环往复、强化了演进迭代的思想,增加风险控制环节。但风险分析的正确性是左右软件演进的关键因素。

7.当需求不能一次搞清,且系统要求比较复杂时应选用哪种开发模型较适合?

答:开发模型不是孤立或排斥的,相互借鉴和参考。在上述四种古典螺旋模型中,螺旋模型是一种综合性的模型,适应于较复杂的系统。

8.RUP模型有哪些优越性?为何得到如此广泛的应用?

答:RUP采用了时间与过程的二维表达方式,全面贯穿了软件开发分段、分层、细化、往复、循环、迭代、并发、重叠、演进、基线、里程碑、评审、控制等方法论。

(1)生命周期模型分为初始、细化、构造和交付四个阶段,比三个时期的传统模型更为合理。因为各种活动不是随阶段的划分而戛然截止,每个阶段多种活动是重叠、

并发、延续、主次分明;

(2)阶段控制采用了基线与里程牌,工作有起点、有目标、有计划;

(3)模型反映了软件开发需要团队合作,因此RUP是一个团队模型;

(4)双重迭代,大迭代(周期迭代)完成一个新版本,小迭代(阶段内迭代)完成里程牌目标;

(5)RUP并不是不讲究维护,维护只是一个新的增量迭代(周期迭代)过程,在过程集合中有“配置和变更管理”活动来管理软件的维护;

9.XP是一种什么样的模型?如何理解“隐喻”?

答:XP是现代版的增量模型:特点是客户参与、适应变化、测试驱动、以代码为核心。

(1)实行XP的条件是:

●企业具有较高的能力成熟度,具有团队开发环境和配套的测试工具;

●软件结构是开放的,增量可随意整合;

●开发团队拥有“系统隐喻”;

(2)对隐喻的理解

●隐喻就是指不言而喻,它在IT企业内部有一套沉淀下来的简单易懂、具有象征意

义的词语,所有成员可用这些词语来交流并能一致理解来完成工作。

●隐喻是实施XP的基础。它能做到直接编码、编码标准、简化设计。

●使用隐喻标志软件开发组织的能力成熟度达到一定高度。

10.每个软件企业遵循的软件开发过程都是一样的吗?

答:任何软件过程只是给软件开发组织一个参考,并非清规戒律。企业规划软件过程要适合企业的实际情况,并且不是一成不变,要随着企业的发展、环境的变化,项目的性质要改进软件过程。RUP就是一个可裁剪的软件过程模板。

11.软件过程有何作用?

答:软件过程就是软件产品的加工过程,其本质就是将“客观世界”,映射(虚拟)到“计算机世界”,即从抽象到具体的逐步细化过程。系统分析就是对客观世界的抽象,中间要经过分析模型、设计模型的逐步细化(具体化),最终的具体结果就是计算机世界里的代码。

12.CMM有何作用?

答:

●CMM是评价软件组织开发能力(水平)的参考模型,是一种认证标准,认可软件

工程达到的程度。(如同评定职称的条件)

●CMM是软件组织提升自身能力、走向成熟的参照系。它提供走向成熟的阶梯目标,

并不提供走向目标的方法。

●CMM等级的提高依靠软件过程改进(SPI)

二.深入讨论

1.辨析:软件产品最终靠分析、设计、实现这些技术得到,不用讲究什么开发过程,只

要会这些技术,照样可以开发软件。

参考答案:错。软件分析、设计、实现等技术活动,是获得软件产品的实质性活动,在完整的软件过程中称为“基本过程”,是投入产出的主体过程,但不是软件过程的全部。软件过程还有对主体过程进行质量保证活动、文档配置活动、评审确认等“支持过程”,还有项目计划、资源协调、环境建设、人员培训等“组织过程”。

如果软件组织的软件过程只是注重在基本过程,说明它的能力成熟度只是处在“初级阶段”,组织内的所有活动都无法预测、无法控制的。

2.辨析:瀑布模型是最原始、最初等的模型,因此没有什么用?

参考答案:错。尽管单纯的瀑布模型难以实施,但它是所有更为先进模型的基础,即使RUP模型也是瀑布模型的扩展,RUP的生命周期四个阶段是基于瀑布模型三个时期的改进和补充,在每个阶段进行迭代也是遵循的瀑布模型。见书中图2-9和图2-10.

3.讨论:RUP和XP两者的核心理念有何不同?两者是对立的还是统一的?

相关文档
最新文档