[关闭]
@vensli 2019-04-18T15:46:00.000000Z 字数 1766 阅读 681

系统与分析作业3


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

瀑布模型

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

缺点:

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

增量模型

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

缺点:

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

螺旋模型

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

缺点:

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

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

特点

软件开发是一个迭代和增量过程;
软件开发是由用例驱动的;
软件开发是以架构设计(Architectural Design)为中心的。

与面向对象方法的关系

RUP(Rational Unified Process,统一软件开发过程,统一软件过程)是一个面向对象且基于网络的程序开发方法论。根据Rational(Rational Rose和统一建模语言的开发者)的说法,好像一个在线的指导者,它可以为所有方面和层次的程序开发提供指导方针,模版以及事例支持。

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

划分标准

软件生命周期在时间维度, 每个阶段结束于一个主要的里程碑 (Major Milestone),并在阶段结尾执行一次评估以确定这个阶段的目标是否已经满足。如果评估结果令人满意的话,可以允许项目进入下一个阶段

每个阶段的里程碑

初始阶段:生命周期目标 (Lifecycle Objective) 里程碑,包括一些重要的文档,如:项目构想 (Vision)、原始用例模型、原始业务风险评估、一个或者多个原型、原始业务案例等。通过对文档的评审确定用例需求理解正确、项目风险评估合理、阶段计划可行等

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

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

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

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

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

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

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

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注