系统分析与设计 - HW3

1. 简述瀑布模型、增量模型、螺旋模型(含原型方法),并分析优缺点(从项目特点、风险特征、人力资源利用角度思考)

瀑布模型

  • 简述:瀑布模型是将软件生命周期的各项活动规定为按固定顺序而连接的若干阶段工作,包括制定计划、需求分析、软件设计、程序编写、软件测试和运行维护等六个基本活动。 其核心思想是按工序将问题化简,将功能的实现与设计分开,便于分工协作。
  • 优点:
    • 为项目提供了按阶段划分的检查点。
    • 当前一阶段完成后,只需要去关注后续阶段。
    • 可在迭代模型中应用瀑布模型
  • 缺点:
    • 不适应用户需求的变化
    • 各个阶段的划分完全固定,阶段之间产生大量的文档,极大地增加了工作量
    • 由于开发模型是线性的,用户只有等到整个过程的末期才能见到开发成功,从而增加了开发风险
    • 通过过多的强制完成日期和里程碑来跟踪各个项目阶段

增量模型

  • 简述:增量模型是把待开发的软件系统模块化,将每个模块作为一个增量组件,从而分批次地分析、设计、编码和测试这些增量组件。
  • 优点:
    • 将待开发的软件系统模块化,可以分批次地提交软件产品,使用户可以及时了解软件项目的进展
    • 以组件为单位进行开发降低了软件开发的风险。一个开发周期内的错误不会影响到整个软件系统。
    • 开发顺序灵活。开发人员可以对组件的实现顺序进行优先级排序,先完成需求稳定的核心组件。当组件的优先级发生变化时,还能及时地对实现顺序进行调整。
  • 缺点:
    • 该模型的基础是待开发的软件系统可以被模块化,如果待开发的软件系统很难被模块化,将无法使用增量模型来进行开发。
    • 由于组件一个一个添加到系统中的,所以需要这个系统必须在每个组件加入之后不能破坏已有的结构。
    • 当开发过程中遇到用户需求改变的时候,虽然增量模型比瀑布模型有更好的灵活性,但是容易退化为边做边改模型,让软件开发过程失去整体性。
    • 需处理好增量包之间相互重复的地方,否则需要对系统进行全面的分析。
    • 考察开发人员的全局观,对开发人员的技能与全局意识有一定要求。

螺旋模型(含原型方法)

  • 简述:螺旋模型是一种演化软件开发过程模型,它兼顾了快速原型的迭代的特征以及瀑布模型的系统化与严格监控。螺旋模型最大的特点在于引入了其他模型不具备的风险分析,使软件在无法排除重大风险时有机会停止,以减小损失。同时,在每个迭代阶段构建原型是螺旋模型用以减小风险的途径。螺旋模型更适合大型的昂贵的系统级的软件应用。
  • 优点:
    • 通过原型的建立,使软件开发在每个迭代的最初明确方向
    • 通过风险分析,最大程度地降低软件彻底失败造成损失的可能性
    • 在每个迭代阶段植入软件测试,使每个阶段的质量得到保证
    • 整体过程具备很高的灵活性,在开发过程的任何阶段自由应对变化
    • 每个迭代阶段累计开发成本,使支出状况容易掌握
      通过对用户反馈的采集,与用户沟通,以保证用户需求的最大实现
  • 缺点:
    • 过分依赖风险分析经验与技术,一旦在风险分析过程中出现偏差将造成重大损失
    • 过于灵活的开发过程不利于已经签署合同的客户与开发者之间的协调
    • 由于只适用于大型软件,过大的风险管理支出会影响客户的最终收益

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

三大特点

  • 统一过程是迭代和增量的
  • 统一过程是用例驱动的:
  • 统一过程以架构为中心

与面向对象的方法的关系

统一过程是基于架构的,它采用新的可视化建模标准,即统一建模语言(UML),它依赖三个关键概念——用例驱动、以架构为中心及迭代和增量式的开发。而这些都建立在面向对象的基础之上。

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

划分准则:时间维度及阶段目标。统一过程中的软件生命周期在时间维度上被分解为四个顺序的阶段:

  1. 初始阶段(Inception)
  2. 精化阶段(Elaboration)
  3. 构建阶段(Construction)
  4. 产品交付阶段(Transition)

每个阶段对应的关键里程碑:

  • 初始阶段:生命周期目标(Lifecycle Objective) 里程碑,包括一些重要的文档,如原始业务案例等。需要对这些文档进行评审,以确定正确理解用例需求、项目风险评估合理、阶段计划可行等。
  • 精化阶段:生命周期体系结构(Lifecycle Architecture) 里程碑。包括风险分析文档、软件体系结构基线、项目计划、可执行的进化原型、初始版本的用户手册等。通过评审确定软件体系结构已经稳定、高风险的业务需求和技术机制已经解决、修订的项目计划可行等。
  • 构建阶段:初始运行能力(Initial Operational)里程碑。包括可以运行的软件产品、用户手册等,初始功能里程碑决定了产品是否可以在测试环境中进行部署。此刻,要确定软件、环境、用户是否可以开始系统的运作。此时的产品版本也常被称为“beta”版。
  • 产品交付阶段:产品发布(Product Release)里程碑。确定最终目标是否实现,是否应该开始产品下一个版本的另一个开发周期。在一些情况下这个里程碑可能与下一个周期的初始阶段的相重合。

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

原因

  • 企业规范化管理的思想
  • 利用软件产品范围的弹性
  • 合理规划软件产品的范围(20%业务决定80%满意度)
  • 使用了适合项目的过程模型,如统一过程,并固定迭代周期
  • 完善的人力资源管理体系

好处

  • 使项目的进度更加容易把握,降低了项目管理的难度
  • 固定的节奏利于人力等各种资源的管理和分配
  • 在软件开发的早期就可以对关键的、影响大的风险进行处理
  • 及时交付给客户使用并反馈,提高企业竞争力

你可能感兴趣的:(系统分析与设计 - HW3)