系统分析与设计 - Homework3

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

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

瀑布模型

项目特点上,瀑布模型视图在变成之前定义所有大部分需求,在编程之前常见出完整的设计,并会在开始前定义计划或时间表。

优点:定义了软件开发的基本流程与活动。在需求明确的情况下,短期开发内可以尽可能保障每个阶段无差错。

缺点:

  1. 依赖问题:前面需求模糊,后面工作复杂
  2. 容错问题:在后期发现需求问题,工作量难以接受
  3. 资源调配问题:知识技能需求不同,人员数量要求不同

增量模型

优点:控制前期风险并解决。整个产品被分割为很多组件,开发人员逐个开发交付,这样可以使软件开发更好地适应变化,因此这个过程中客户可以不断看到开发的软件,降低开发风险并。若有风险也会被控制在前期解决。

缺点:

  1. 由于各个构件逐渐并入已有的软件体系结构中的,所以加入构件必须不破坏已构造好的系统部分
  2. 开发过程中需求变化不可避免。因此在需求变化过程中,增量模型很容易退化为边做边改模型,使得软件过程控制失去整体性。

螺旋模型

优点:螺旋模型将瀑布模型和快速原型模型结合,强调风险分析,因而可以从一定程度上保障软件质量。

缺点:

  1. 在与客户的交流过程中,风险分析很难让客户接收信服并愿意,因此修改出价更加不易。
  2. 如果执行风险分析大大影响项目的利润,风险分析没有意义,因而螺旋模型只适合于大规模软件项目
  3. 要求软件开发人员在风险分析这一步骤有专业性,否则对风险的错误估计有可能导致更大的损失。

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

三大特点

  1. 软件开发是一个迭代过程
  2. 软件开发是由Use Case驱动的
  3. 软件开发是以架构设计为中心的

与面向对象的方法的关系

Design阶段,需要将系统组织为具有良好接口的设计包和设计组系统,并体现类的对象之间的作用关系。

Implementation阶段层次化子系统,定义代码组织结构。以组件的形式实践类和对象。在Test and Integration阶段需要测试类本身的功能和类间作用关系。


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

划分准则

每个阶段本质上是两个里程碑之间的时间跨度。

每个阶段的关键里程碑

初始阶段

生命周期目标里程碑:评价项目基本的生存能力。

细化阶段

生命周期结构里程碑:为系统的结构简历管理基准并使得项目小组能够在构建阶段中进行衡量,需要检验详细的系统目标和范围、结构的选择以及主要风险的解决方案。

构造阶段

初始功能里程碑:决定产品是否可以在测试环境中进行部署,要确定软件、环境、用户是否可以开始系统的运作。

交付阶段

产品发布里程碑:确定目标是否实现,是否应该开始另一个开发周期。


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

软件企业之所以能够按固定节奏生产、固定周期发布产品,一方面在于企业规范化管理的基本思想。另一方面在于他们了解软件本质特征,从而选择了合适的开发模型。软件企业非常好地认识项目的工期、范围、质量和预算,遵循先做到再做好的原则,并且对于2/8法则再项目中的应用有着深入了解。

它可以使得企业项目管理具有明确的阶段划分,由于每个阶段都会有显著的里程碑,使得每个迭代阶段都有明确的目标。这反逼项目管理确定合理的产品范围,不投入大量时间在冗余的工作中。

每个迭代都是瀑布的工作流程,在迭代内部需求明确的情况下,差错较少。每个迭代在增量且制品可运行,能够即使交付并得到反馈。固定迭代周期有利于量化团队和个人的生产率。