系统分析与设计作业3

软件项目过程模型与规划

1.简答题

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

项目特点风险特征人力资源利用角度思考

瀑布模型

  • 简述

    瀑布模型是一种项目开发架构,开发过程是顺序展开的,从一个阶段流动到下一个阶段。瀑布模型中的每一个开发活动具有下列特征:

    • 本阶段活动的工作对象来自于上一项活动的输出,这些输出一般是代表本阶段活动结束的里程碑式的文档
    • 根据本阶段的活动规程执行相应的任务
    • 本阶段活动产出相关的软件工件,作为下一阶段活动的输入
    • 对本阶段活动执行情况进行评审
  • 优点

    • 降低软件开发的复杂度,提高软件开发过程的透明性,提高软件开发过程的可管理性
    • 推迟软件实现,强调在软件实现前必须进行分析和设计工作
    • 以项目的阶段评审和文档控制为手段有效地对整个开发过程进行指导,保证了阶段之间的正确衔接,能够及时发现并纠正开发过程中存在的缺陷,使产品达到预期的质量要求
  • 缺点

    • 强调过程活动的线性顺序
    • 缺乏灵活性,尤其无法解决软件需求不明确或不准确的问题
    • 风险控制能力较弱
    • 瀑布模型中的软件活动是文档驱动的,当阶段之间规定过多的文档时,会极大地增加系统的工作量
    • 管理人员如果仅仅以文档的完成情况来评估项目完成进度,往往会产生错误的结论

增量模型

  • 简述

    增量模型是把待开发的系统模块化,每个模块作为一个增量组件,按不同的优先级来逐步实现。增量模型首先要对系统最核心或最清晰的需求进行分析、设计、实现、测试并集成到系统中,再按优先级逐步实现后续需求。

  • 优点

    • 增强用户对系统的信心
    • 降低系统失败风险
    • 提高系统可靠性
    • 提高系统的稳定性和可维护性
  • 缺点

    • 建立初始模型时,作为增量基础的基本业务服务的确定有一定难度
    • 增量粒度难以选择

螺旋模型

  • 简述

    螺旋模型是一种演化软件开发过程模型,兼顾了瀑布模型和快速原型方法的关键特征,其最大的特点是引入了明确的风险管理机制,尤其适用于大规模复杂的系统。螺旋模型是风险驱动的迭代过程,强调可选方案和约束条件从而支持软件的重用,有助于将软件质量作为特殊目标融入产品开发之中,它的每一次迭代都包含了以下六个步骤:

    • 决定目标、替代方案和约束条件
    • 识别和解决项目的风险
    • 评估技术方案和替代方案
    • 开发本次迭代的交付物,并验证迭代产出的正确性
    • 计划下一次迭代
    • 提交下一次迭代的步骤和方案
  • 优点

    • 提供对风险的分析
    • 设计灵活,可以在项目各个阶段变更
    • 客户始终掌握项目的最新信息,从而跟管理层有效地交互
    • 以小的分段来构建大型系统,技术和流程变得简单
  • 缺点

    • 螺旋模型强调风险分析,但说服外部客户接受和相信分析结果并做出相关反应并不容易,因此螺旋模型往往比较适合内部的大规模软件开发
    • 风险分析需要耗费相当的成本,因此螺旋模型比较适合投资规模较大的软件项目
    • 失误的风险分析可能带来更大的风险

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

三大特点:

  • 用例驱动

    用例是一系列行为的表示,这些行为给人们带来了有价值的行为,帮助他们来实现目标。

    用例驱动意味着开发团队使用通过代码和测试收集的案例。

  • 以架构为中心

    软件架构提供所有其他开发发展的中心点。

  • 迭代和增量的

    迭代和增量的方案允许以不完整、不完善的知识开始开发。

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

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

划分准则

软件生命周期在时间维度上被分解为4个顺序的阶段,每个阶段结束于一个主要的里程碑,并在阶段结尾执行一次评估以确定这个阶段的目标是否已经满足。

里程碑

  • 初始阶段:

    生命周期目标里程碑,包括一些重要的文档,通过对文档的评审确定用例需求理解正确、项目风险评估合理、阶段计划可行等。

  • 精化阶段:

    生命周期体系结构里程碑,包括风险分析文档、软件体系结构基线、项目计划、可执行的进化原型、初始版本的用户手册等。通过评审确定软件体系结构已经稳定、高风险的业务需求和技术机制已经解决、修订的项目计划可行等 。

  • 构建阶段:

    初始运行能力里程碑,包括可以运行的软件产品、用户手册等,它决定了产品是否可以在测试环境中进行部署。此刻,要确定软件、环境、用户是否可以开始系统的运行。

  • 产品化阶段/移交阶段:

    产品发布里程碑,确定最终目标是否实现,是否应该开始产品下一个版本的另一个开发周期。在一些情况下这个里程碑可能与下一个周期的初始阶段相重合。

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

因为软件企业使用基于统一过程的软件项目规划,这也是一个迭代过程。企业把软件生命周期划分为各个阶段,每个阶段有不同的目标,由多次迭代组成。每个迭代都是瀑布的工作流程;每个迭代产品在增量,利于及时交付使用并反馈;固定的迭代周期利于量化团队/个人效率。

好处:

  • 使得软件生产按固定节奏运行
  • 规范软件开发
  • 提升企业生产力
-------------本文结束感谢您的阅读-------------