简答题
1.瀑布模型、增量模型、螺旋模型(含原型方法)的优缺点
瀑布模型
(1) 优点
a) 瀑布模型的流程符合客观的开发方式
b) 有利于软件开发方法和工具的研究,从而提高了大型软件项目开发的质量和效率。
c) 理论上当前一阶段的工作完成,人们只需要关注后续的部分
(2) 缺点
a)瀑布模型的各个环节前后相连, 开发过程不能逆转,出现调整时代价过大
b)模型要求需求明确,但是往往客户无法给出精确的需求,真正的开发过程也很难完全按照流程进行
c) 软件成品要开发结束才可以拿到,期间很难做出即时的反馈,比较考验客户的耐心,难以及时沟通解决问题
d)开发的不同阶段里,知识技能的需求不同,人员数量要求不同
增量模型
(1) 优点
a)将很大的工作量划分为小的增量,减小了开发者压力
b)每次增量发布都有可操作的产品产出,前一个产出的市场反应可以对后续的产品发展方向提出建议
c) 人员分配灵活,可以依据增量难度进行合理的调配
d)有利于开发进度的控制
e)降低了失败和更改需求的风险
f)降低了有预算超出的风险
(2)缺点
a)增量模型需要在开发的阶段同时进行修改,软件的整体性容易被破坏
b)当增量之间出现关联,要求前一个版本要为后方定制合适的接口
螺旋模型
(1)优点
a)每次交付都能得到用户的反馈,不需十分明确的需求
b)项目灵活,便于应对不断变更的需求
c)客户始终具有一定的项目参与度,便于开发组与客户之间的沟通
d)用小的分段构造大型系统,成本计算相对容易
(2)缺点
a)迭代次数难以控制,存在预算超出的风险
b)不适合大团队
c)难以确定发布的日期
2.统一过程三大特点,及与面向对象的方法的关系
三大特点:
统一过程是用例驱动的:用例图要求我们站在用户的角度出发,从用户的价值层面考虑问题。同时还可以驱动系统设计、实现和测试的进行,也就是说用例可以驱动开发过程。
统一过程是以架构为中心的:软件系统的构架是从不同的角度描述即将构造的系统,它刻画了系统的整体设计,去掉了细节部分,突出了系统的重要特性。明确和可以进化的架构是用例实现的基础,所以架构必须是实现统一过程的中心。
统一过程是迭代和增量的过程:软件开发是一个复杂的过程,受控的迭代可以用来处理用例,是提高软件开发效率的关键,迭代和增量使软件开发阶段性展开,对于用例的实现做出了控制和协调。
与面向对象方法的关系
统一过程本身已经成为一种流行的构造面向对象系统的迭代软件开发过程。可以说,统一过程就是一个将面向对象方法实际应用于软件开发流程的一个过程准则。在开发过程中强调对对象的描述和用例的实现,从而完成对于软件对象的定义和他们的协作模式。
3.简述统一过程四个阶段的划分准则是什么?每个阶段关键的里程碑是什么?
统一过程中的软件生命周期在时间维度上被分解为四个顺序的阶段:初始阶段 (Inception)、精化阶段 (Elaboration)、构建阶段(Construction) 和产品交付阶段 (Transition)。
初始阶段 (Inception):为系统建立业务案例 (Business Case) 并确定项目的边界。里程碑:生命周期目标 (Lifecycle Objective) 里程碑,包括一些重要的文档,如:项目构想 (Vision)、原始用例模型、原始业务风险评估、一个或者多个原型、原始业务案例等。通过对文档的评审确定用例需求理解正确、项目风险评估合理、阶段计划可行等
精化阶段 (Elaboration):分析问题领域,建立健全的体系结构基础,编制项目计划,完成项目中高风险需求部分的开发。里程碑:生命周期体系结构 (Lifecycle Architecture) 里程碑,包括风险分析文档、软件体系结构基线、项目计划、可执行的进化原型、初始版本的用户手册等。通过评审确定软件体系结构已经稳定、高风险的业务需求和技术机制已经解决、修订的项目计划可行等。
构建阶段(Construction):完成所有剩余的技术构件和稳定业务需求功能的开发,并集成为产品,详细测试所有功能。构建阶段只是一个制造过程,其重点放在管理资源及控制开发过程以优化成本、进度和质量。里程碑:初始运行能力 (Initial Operational Capability) 里程碑,包括可以运行的软件产品、用户手册等,它决定了产品是否可以在测试环境中进行部署。此刻,要确定软件、环境、用户是否可以开始系统的运行。
产品交付阶段 (Transition):确保软件对最终用户是可用的。产品化阶段可以跨越几次迭代,包括为发布做准备的产品测试,基于用户反馈的少量调整。里程碑:产品发布 (Product Release) 里程碑,确定最终目标是否实现,是否应该开始产品下一个版本的另一个开发周期。在一些情况下这个里程碑可能与下一个周期的初始阶段相重合。
4.软件企业为什么能按固定节奏生产、固定周期发布软件产品?它给企业项目管理带来哪些好处?
统一过程为企业按固定节奏生产、固定周期发布软件产品提供了依据。
统一过程中的软件生命周期在时间维度上被分解为四个顺序的阶段:初始阶段 (Inception)、精化阶段 (Elaboration)、构建阶段(Construction) 和产品交付阶段 (Transition),可以使企业能有一个固定的节奏来生产;统一过程的迭代性,使得项目组能周期性地交付产品。
给企业项目管理带来的好处:
- 在软件开发的早期就可以对关键的,影响大的风险进行处理
- 可以提出一个软件体系架构来指导开发
- 可以较早的得到一个可运行的系统,鼓舞开发团队的士气,增强项目成功的信心。