文章目录
一. 简答题
1. 简述瀑布模型、增量模型、螺旋模型(含原型方法),并分析优缺点
-
从项目特点、风险特征、人力资源利用角度思考
-
瀑布模型:
- 将软件生命周期划分为制订计划、需求分析、软件设计、程序编写、软件测试和运行维护等六个基本活动,并且规定了他们自上而下、相互衔接的固定次序,如同瀑布流水,逐级下落。
- 瀑布模型的优点:
- (1)有利于大型软件开发过程中人员的组织、管理,有利于软件开发方法和工具的研究,从而提高了大型软件项目开发的质量和效率;
- (2)开发工作对用户参与度要求很低。
- 瀑布模型的缺点:
- (1)开发过程一般不能逆转,否则代价太大;
- (2)实际的项目开发很难严格按该模型进行;
- (3)客户往往很难清楚地给出所有的需求,而该模型却要求如此;
- (4)软件的实际情况必须到项目开发的后期客户才能看到,这要求客户有足够的耐心。
-
增量模型:
- 软件被作为一系列的增量构件来设计、实现、集成和测试,每一个构件是由多种相互作用的模块所形成的提供特定功能的代码片段构成。增量模型在各个阶段并不交付一个可运行的完整产品,而是交付满足客户需求的一个子集的可运行产品。
- 增量模型的优点:
- (1)人员分配灵活,刚开始不用投入大量人力资源;
- (2)如果核心产品很受欢迎,则可增加人力实现下一个增量;
- (3)可先发布部分功能给客户,对客户起到镇静剂的作用。
- 增量模型的缺点:
- (1)并行开发构件有可能遇到不能集成的风险,软件必须具备开放式的体系结构;
- (2)增量模型的灵活性可以使其适应这种变化的能力大大优于瀑布模型和快速原型模型,但也很容易退化为边做边改模型,从而使软件过程的控制失去整体性。
-
螺旋模型:
- 综合了瀑布模型和演化模型的优点,还增加了风险分析,特别适合于大型复杂的系统。采用螺旋模型时,软件开发演着自内向外旋转,每转一圈都要对风险进行识别和分析,螺旋线第一圈的开始点可能是一个概念项目。从第二圈开始,一个新产品开发项目开始了,新产品的演化演着螺旋线进行若干次迭代,一直运转到软件生命周期结束。
- 螺旋模型的优点:
- (1)设计上的灵活性,可以在项目的各个阶段进行变更;
- (2)以小的分段来构建大型系统,使成本计算变得简单容易;
- (3)客户始终参与每个阶段的开发,保证了项目不偏离正确方向以及项目的可控性;
- (4)随着项目推进,客户始终掌握项目的最新信息,从而他或她能够和管理层有效地交互。
- 螺旋模型的缺点:
- (1)采用螺旋模型需要相当丰富的风险评估经验和专门知识,在风险较大的项目开发中,如果未能够及时标识风险,势必造成重大损失;
- (2)过多的迭代次数会增加开发成本,延迟提交时间。
2. 简述统一过程三大特点,与面向对象的方法有什么关系?
-
三大特点:
- 用例驱动
- 以架构为核心
- 迭代及增量
-
关系:统一软件过程是一个面向对象且基于网络的程序开发方法论,好像一个在线的指导者,它可以为所有方面和层次的程序开发提供指导方针,模版以及事例支持。 RUP和类似的产品–例如面向对象的软件过程(OOSP),以及OPEN Process都是理解性的软件工程工具–把开发中面向过程的方面(例如定义的阶段,技术和实践)和其他开发的组件(例如文档,模型,手册以及代码等等)整合在一个统一的框架内。
3. 简述统一过程四个阶段的划分准则是什么?每个阶段关键的里程碑是什么?
-
划分准则为:统一过程中的软件生命周期在时间维度上被分解为四个顺序的阶段: 初始阶段(Inception)、精化阶段(Elaboration)、构建阶段 (Construction) 和移付阶段(Transition)。在每个阶段的结尾执行一次评估以确定这个阶段的目标是否已经满足。如果评估结果令人满意的话,可以允许项目进入下一个阶段。
-
每个阶段关键的里程碑:
- (1)初始阶段(Inception phase):为系统建立商业用例,确定项目的边界。初启阶段结束时的里程碑是生命周期目标,包括一些重要的文档,如:项目构想(Vision)、原始用例模型、原始业务风险评估、一个或者多个原型、原始业务案例等。通过对文档的评审确定用例需求理解正确、项目风险评估合理、阶段计划可行等;
- (2)精化阶段(Elaboration phase):分析问题领域,建立一个健全的体系结构基础,编制项目规划,淘汰项目中风险最高的元素。精化阶段结束时的里程碑是生命周期架构,包括风险分析文档、软件体系结构基线、项目计划、可执行的进化原型、初始版本的用户手册等。通过评审确定软件体系结构已经稳定、高风险的业务需求和技术机制已经解决、修订的项目计划可行等;
- (3)构建阶段(Construction phase):将开发所有剩余的构件和应用部件,对它们进行测试,并集成到产品中。构建阶段结束时的里程碑是初始运作能力,包括可以运行的软件产品、用户手册等,它决定了产品是 否可以在测试环境中进行部署。此刻,要确定软件、环境、用户是否可以开始系统的运行;
- (4)移交阶段(Transition phase):把软件产品交付给用户群。移交阶段的里程碑是产品发布,确定最终目标是否实现,是否应该开始产品下一个版本的另一个开发周期。在一些情况下这个里程碑可能与下一个周期的初始阶段相重合。。
4. 软件企业为什么能按固定节奏生产、固定周期发布软件产品?它给企业项目管理带来哪些好处?
-
软件企业有很多软件开发模型,如上面所说的瀑布模型、增量模型、螺旋模型等等。这些模型提供了软件开发的基本方法,能让开发工作自主按照流程标准运作,同时利用软件产品范围的弹性,合理规划范围(20%业务决定80%满意度)使得软件能按固定节奏运行、固定周期发布软件产品。
-
好处:
- 提高团队的生产力。为软件生产提供了方向,能很好地开发。
- 能按固定节奏生产,让进度可视化,利于量化生产率。
- 减少管理成本。有固定的流程,特定的时间做特定的事,每个人有固定的分工,产品经理就跟客户交谈,技术经理跟程序员交流。