系统分析与设计 | 第3周作业
简单题
简述瀑布模型、增量模型、螺旋模型(含原型方法),并分析优缺点
(从项目特点、风险特征、人力资源利用角度思考)
瀑布模型的优点:
- 降低软件开发的复杂程度,提高软件开发过程的透明性,提高 软件开发过程的可管理性。
- 推迟软件实现,强调在软件实现前必须进行分析和设计工作。
- 以项目的阶段评审和文档控制为手段有效地对整个开发过程进 行指导,保证了阶段之间的正确衔接,能够及时发现并纠正开 发过程中存在的缺陷,使产品达到预期的质量要求。
瀑布模型的缺点:
- 强调过程活动的线性顺序。
- 缺乏灵活性,尤其无法解决软件需求不明确或不准确的问题。
- 风险控制能力较弱。
- 瀑布模型中的软件活动是文档驱动的,当阶段之间规定过多的 文档时,会极大地增加系统的工作量。
- 管理人员如果仅仅以文档的完成情况来评估项目完成进度,往 往会产生错误的结论。
增量模型的优点
- 增强客户对系统的信心;
- 降低系统失败风险;
- 提高系统可靠性;
- 提高系统的稳定性和可维护性。
增量模型的缺点
- 建立初始模型时,作为增量基础的基本业务服务的确定有一定 难度;
- 增量粒度难以选择。
螺旋模型(含原型方法)的优点:
- 开发阶段可以由项目经理根据项目的复杂性来确定。
- 项目监控非常简单有效。每个阶段以及每个循环都需要相关人员的审查。
- 风险管理是该模型的内置特性之一,与其他模型相比,它更具吸引力。
- 随着项目的推进和螺旋式循环的完成,项目在进度、成本等方面的估算变得越来越现实。
- 适用于业务需求不稳定的高风险项目。可以使用此工具开发高度定制的产品。
螺旋模型(含原型方法)的缺点:
- 这种模式的成本通常很高。如果遵循此开发过程,则很难满足预算和进度要求。
- 这是一个复杂的方法,特别是对于SRS清晰的项目。
- 由于客户允许的各种定制,在未来的其他项目中使用相同的原型是困难的。
- 中间阶段所需的文件数量使得项目管理非常复杂。
简述统一过程三大特点,与面向对象的方法有什么关系?
- 用例驱动
- 以架构为中心
- 受控的迭代式增量开发
RUP将软件开发过程要素和软件工件要素整合在统一的软件工程框架中,是
一个面向对象的程序开发方法论。
简述统一过程四个阶段的划分准则是什么?每个阶段关键的里程碑是什么?
RUP 中的软件生命周期在时间维度上被分解为四个顺序的阶段:初始阶段 (Inception)、精化阶段 (Elaboration)、构建阶段(Construction) 和产品交付阶段 (Transition)。每个阶段结束于一个主要的里程碑 (Major Milestone),并在阶段结尾执行一次评估以确定这个阶段的目标是否已经满足。如果评估结果令人满意的话,可以允许项目进入下一个阶段。
- 初始阶段 (Inception)
划分准则:初始阶段的目标是为系统建立业务案例 (Business Case) 并确定项目的边界。业务案例包括项目的验收规范、风险评估、所需资源估计、阶段计划等。确定项目边界需要识别所有与系统交互的外部实体,并在较高层次上定义外部实体与系统交互的特性,主要包括识别外部角色 (Actor)、识别所有用例并详细描述一些重要的用例。
里程碑:生命周期目标 (Lifecycle Objective) 里程碑,包括一些重要的文档,如:项目构想 (Vision)、原始用例模型、原始业务风险评估、一个或者多个原型、原始业务案例等。通过对文档的评审确定用例需求理解正确、项目风险评估合理、阶段计划可行等。 - 精化阶段 (Elaboration)
划分准则: 精化阶段目标是分析问题领域,建立健全的体系结构基础,编制项目计划,完成项目中高风险需求部分的开发。
里程碑: 生命周期体系结构 (Lifecycle Architecture) 里程碑,包括风险分析文档、软件体系结构基线、项目计划、可执行的进化原型、初始版本的用户手册等。通过评审确定软件体系结构已经稳定、高风险的业务需求和技术机制已经解决、修订的项目计划可行等。 - 构建阶段(Construction)
划分准则: 构建阶段目标是完成所有剩余的技术构件和稳定业务需求功能的开发,并集成为产品,详细测试所有功能。构建阶段只是一个制造过程,其重点放在管理资源及控制开发过程以优化成本、进度和质量。
里程碑: 初始运行能力 (Initial Operational Capability) 里程碑,包括可以运行的软件产品、用户手册等,它决定了产品是否可以在测试环境中进行部署。此刻,要确定软件、环境、用户是否可以开始系统的运行。 - 产品交付阶段 (Transition)
划分准则: 产品交付阶段目标是确保软件对最终用户是可用的。产品化阶段可以跨越几次迭代,包括为发布做准备的产品测试,基于用户反馈的少量调整。
里程碑: 产品发布 (Product Release) 里程碑,确定最终目标是否实现,是否应该开始产品下一个版本的另一个开发周期。在一些情况下这个里程碑可能与下一个周期的初始阶段相重合。
软件企业为什么能按固定节奏生产、固定周期发布软件产品?它给企业项目管理带来哪些好处?
RUP(软件统一过程)中的每个阶段可以进一步分解为迭代。一个迭代是一个完整的开发循环,产生一个可执行的产品版本,是最终产品的一个子集,它增量式地发展,从一个迭代过程到另一个迭代过程到成为最终的系统。利用软件产品范围的弹性,合理规划范围(20%业务决定80%满意度),使得软件生产按 固定节奏运行,固定迭代周期、固定开发周期、固定升级周期。
好处:
- 每个迭代产品在增量(制品是可运行的),利于及时交付使用并反馈
- 固定的迭代周期(等量的人月),利于量化团队/个人生产率
- 提高了风险控制能力