系统分析与设计——作业三

简述瀑布模型、增量模型、螺旋模型(含原型方法),并分析优缺点

瀑布模型

瀑布模型

  • 瀑布模型优点
    • 降低软件开发的复杂程度,提高软件开发过程的透明性、软件开发过程的可管理性。
    • 强调在软件实现前必须进行分析和设计工作。
    • 以项目的阶段评审和文档控制为手段有效地对整个开发过程进行指导,保证了阶段之间的正确衔接,能够及时发现并纠正开发过程中存在的缺陷,使产品达到预期的质量要求。
  • 瀑布模型缺点
    • 强调过程活动的线性顺序。缺乏灵活性,尤其无法解决软件需求不明确或不准确的问题。
    • 风险控制能力较弱。
    • 瀑布模型中的软件活动是文档驱动的,当阶段之间规定过多的文档时,会极大地增加系统的工作量。
    • 管理人员如果仅仅以文档的完成情况来评估项目完成进度,往 往会产生错误的结论。

增量模型

增量模型首先对系统最核心或最清晰的需求进行分析、设计、实现、 测试并集成到系统中,再按优先级逐步实现后续需求。

增量模型

  • 增量模型优点
    • 降低系统失败风险;
    • 提高系统可靠性;
    • 提高系统的稳定性和可维护性。
  • 增量模型缺点
    • 建立初始模型时,作为增量基础的基本业务服务的确定有一定难度;
    • 增量粒度难以选择。

螺旋模型(含原型方法)

螺旋模型主要针对大型软件项目的开发。
螺旋模型的四个象限:

  • 确定目标:确定软件项目目标;明确对软件开发过程和软件产品的约束;制定详细的项目管理计划;根据当前的需求和风险因素,制定实施方案,并进行可行性分析,选定一个实施方案,并对其进行规划。
  • 识别和解决风险:明确每一个项目风险,估计风险发生的可能性、频率、损害程度,并制定风险管理措施规避这些风险。
  • 工程实现:针对每一个阶段的任务要求执行开发和测试活动。
  • 准备下一轮迭代:客户使用原型,反馈修改意见;根据客户的反馈,对产品及其开发过程进行评审,决定是否进入螺旋线的下一个回路。

螺旋模型

  • 螺旋模型的优点:
    • 螺旋模型是风险驱动的迭代过程,强调可选方案和约束条件从而支持软件的重用,有助于将软件质量作为特殊目标融入产品开发之中。
    • 螺旋模型结合了瀑布模型和快速原型方法,将瀑布模型的多个阶段转化到多个迭代过程中,以降低项目的风险。
  • 螺旋模型的缺点:
    • 失误的风险分析可能带来更大的风险。
    • 风险分析需要耗费相当的成本,因此螺旋模型比较适合投资规模较大的软件项目。

简述统一过程三大特点,与面向对象的方法有什么关系?

统一过程三大特点:

  • 用自然语言表达(基于UML,不用画数据流图)
  • 以架构为中心
  • 用例驱动与风险驱动相结合

统一过程与面向对象方法的关系

RUP 将软件开发过程要素和软件工件要素整合在统一的软件工程框架中,是一个面向对象的程序开发方法论。

简述统一过程四个阶段的划分准则是什么?每个阶段关键的里程碑是什么?

RUP中的软件生命周期在时间维度上被分解为四个顺序的阶段:初始阶段、精化阶段、构建阶段和产品交付阶段。每个阶段结束于一个主要的里程碑,并在阶段结尾执行一次评估以确定这个阶段的目标是否已经满足。如果评估结果令人满意的话,可以允许项目进入下一个阶段。

  • 初始阶段
    • 目标:为系统建立业务案例(Business Case) 并确定项目的边 界。业务案例包括项目的验收规范、风险评估、所需资源 估计、阶段计划等。
    • 里程碑:生命周期目标里程碑,包括一些重要的文档,如:项目构想、原始用例模型、原始业务风险评估、一个或者多个原型、原始业务案例等。
  • 精化阶段
    • 目标:分析问题领域,建立健全的体系结构基础,编制项目计划,完成项目中高风险需求部分的开发。
    • 里程碑:生命周期体系结构里程碑,包括风险分析文档、软件体系结构基线、项目计划、可执行的进化原型、初始版本的用户手册等。
  • 构建阶段
    • 目标:完成所有剩余的技术构件和稳定业务需求功能的开发,并集成为产品,详细测试所有功能。
    • 里程碑:初始运行能力里程碑,包括可以运行的软件产品、用户手册等,它决定了产品是否可以在测试环境中进行部署。
  • 产品化阶段/移交阶段
    • 目标:确保软件对最终用户是可用的。
    • 里程碑:产品发布里程碑,确定最终目标是否实现,是否应该开始产品下一个版本的另一个开发周期。

软件企业为什么能按固定节奏生产、固定周期发布软件产品?它给企业项目管理带来哪些好处?

软件企业使用统一过程的方法。统一过程的时间维度可描述为周期、阶段和迭代。 每一次迭代完成一定阶段性小目标(短时间分区式的迭代:2-6周),从而能够按固定节奏生产、固定周期发布软件产品。

由于按固定节奏生产、发布软件产品,中间版本的产品是逐步产生的,而且核心功能和性能需求已经包含在前续版本中,因此,可以根据市场竞争的情况适时推出中间版本产品,降低市场风险。