系统分析与设计三

潘老师的课

Posted by ChenJ on April 6, 2019

Problems

简单题

  • 简述瀑布模型、增量模型、螺旋模型(含原型方法),并分析优缺点
  • 从项目特点、风险特征、人力资源利用角度思考
  • 简述统一过程三大特点,与面向对象的方法有什么关系?
  • 简述统一过程四个阶段的划分准则是什么?每个阶段关键的里程碑是什么?
  • 软件企业为什么能按固定节奏生产、固定周期发布软件产品?它给企业项目管理带来哪些好处?

Answers

简答题

瀑布模型、增量模型、螺旋模型

  • 瀑布模型:
  • 优点:
    1. 有利于大型软件开发过程中人员的组织、管理,有利于软件开发方法和工具的研究,从而提高了大型软件项目开发的质量和效率。
    2. 理论上当前一阶段的工作完成,人们只需要关注后续的部分。
    3. 它提供了一个模板,这个模板使得分析、设计、编码、测试和支持的方法可以在该模板下有一个共同的指导。
  • 缺点:
    1. 瀑布模型的各个环节前后相连, 开发过程不能逆转,出现调整时代价过大
    2. 模型要求需求明确,但是往往客户无法给出精确的需求,真正的开发过程也很难完全按照流程进行
    3. 软件成品要开发结束才可以拿到,期间很难做出即时的反馈,比较考验客户的耐心,难以及时沟通解决问题
    4. 开发的不同阶段里,知识技能的需求不同,人员数量要求不同
  • 增量模型:
  • 优点:
    1. 人员分配灵活,刚开始不用投入大量人力资源;
    2. 可先发布部分功能给客户,对客户起到镇静剂的作用。
    3. 当配备的人员不能在设定的期限内完成产品时,它提供了一种先推出核心产品的途径。
    4. 增量能够有计划地管理技术风险。
  • 缺点:
    1. 并行开发构件有可能遇到不能集成的风险,软件必须具备开放式的体系结构;
    2. 变化的能力大大优于瀑布模型和快速原型模型,但也很容易退化为边做边改模型,从而是软件过程的控制失去整体性。
    3. 在开发过程中,需求的变化是不可避免的。增量模型的灵活性可以使其适应这种变化的能力大大优于瀑布模型和快速原型模型,但也很容易退化为边做边改模型,从而是软件过程的控制失去整体性。
    4. 如果增量包之间存在相交的情况且未很好处理,则必须做全盘系统分析,这种模型将功能细化后分别开发的方法较适应于需求经常改变的软件开发过程。
  • 螺旋模型:
  • 优点:
    1. 灵活性,可以在项目的各个阶段进行变更.计算变得简单容易;
    2. 客户始终参与每个阶段的开发,保证了项目不偏离正确方向以及项目的可控性。
    3. 通过风险分析,最大程度地降低软件彻底失败造成损失的可能性。
    4. 在每个迭代阶段植入软件测试,使每个阶段的质量得到保证。
    5. 整体过程具备很高的灵活性,在开发过程的任何阶段自由应对变化。
  • 缺点:
    1. 需要具有相当丰富的风险评估经验和专门知识,在风险较大的项目开发中,如果未能够及时标识风险,势必造成重大损失。
    2. 会增加开发成本,延迟提交时间。
    3. 过分依赖风险分析经验与技术,一旦在风险分析过程中出现偏差将造成重大损失。
    4. 过于灵活的开发过程不利于已经签署合同的客户与开发者之间的协调。
    5. 由于只适用大型软件,过大的风险管理支出会影响客户的最终收益。

统一过程

  • 三大特点:
    1. 软件开发过程是用例驱动的:在开发功能代码之前,先编写单元测试用例代码,测试代码确定需要编写什么产品代码。
    2. 软件开发过程是以体系结构为中心的:软件体系结构提供了所有其他开发发展的中心点,为开发提供一个组织框架,通过关注系统的可修改性来演进系统,有利于促进重用。
    3. 软件开发过程是受控的迭代式增量开发:统一过程将程序模块化,进行以周期形式实现增量的迭代式开发。
  • 与面向对象方法的关系: 统一软件开发过程是一个面向对象且基于网络的程序开发方法论,把开发中面向过程的方面(例如定义的阶段,技术和实践)和其他开发的组件(例如文档,模型,手册以及代码等等)整合在一个统一的框架内。

统一过程四个阶段

  • 划分准则: 每个阶段结束于一个主要的里程碑,并在阶段结尾执行一次评估以确定这个阶段的目标是否已经满足。如果评估结果令人满意的话,可以允许项目进入下一个阶段。因此将阶段进行了划分。
  • 四个阶段:
    1. 初始阶段:生命周期目标(Lifecycle Objective)里程碑,该阶段的主要目的是建立目的的范围和版本,确定项目目标的可行性和稳定性,提交结果包括需求和用例。
    2. 精化阶段:生命周期体系结构 (Lifecycle Architecture) 里程碑,该阶段的目的是对问题域进行分析,建立系统需求和架构,确定实现的可行性和稳定性,提交结果包括系统架构、问题领域、修改后的需求及项目开发计划等相关文档。
    3. 构建阶段:初始运行能力 (Initial Operational Capability) 里程碑,增量式开发可以交付给用户的软件产品。
    4. 移交阶段:产品发布 (Product Release) 里程碑,目的是将软件产品交付给用户。

软件企业固定节奏生产、固定周期发布软件产品

  • UP是一个风险驱动的生命周期模型,为了有效地控制风险,UP以渐进的方式进行演进,首先解决高风险的问题,这主要是通过迭代来实现。在软件生命周期中,每个阶段可以划分为多个迭代,每个迭代确定一个内部里程碑。因此,UP也为固定周期发布软件产品提供了依据。 UP的每个阶段都由一个或多个迭代组成。每个迭代都要针对不同的业务用例或系统用例进行细化和实现。每个阶段开始时都有特定的目标,结束时有里程碑。在每个阶段中存在一个或多个迭代,在每个迭代中,可以有多个工作流,企业只需要完成该阶段性的小目标即可。进而为企业按固定节奏生产、固定周期发布软件产品提供了依据。