@vensli
2019-04-18T15:46:00.000000Z
字数 1766
阅读 681
优点:定义了软件开发的基本流程与活动。在需求明确的情况下,短期开发内可以尽可能保障每个阶段无差错。
缺点:
依赖问题:前面需求模糊,后面工作复杂
容错问题:在后期发现需求问题,工作量难以接受
资源调配问题:知识技能需求不同,人员数量要求不同
优点:控制前期风险并解决。整个产品被分割为很多组件,开发人员逐个开发交付,这样可以使软件开发更好地适应变化,因此这个过程中客户可以不断看到开发的软件,降低开发风险并。若有风险也会被控制在前期解决。
缺点:
由于各个构件逐渐并入已有的软件体系结构中的,所以加入构件必须不破坏已构造好的系统部分。
开发过程中需求变化不可避免。因此在需求变化过程中,增量模型很容易退化为边做边改模型,使得软件过程控制失去整体性。
优点:螺旋模型将瀑布模型和快速原型模型结合,强调风险分析,因而可以从一定程度上保障软件质量。
缺点:
在与客户的交流过程中,风险分析很难让客户接收信服并愿意,因此修改出价更加不易。
如果执行风险分析大大影响项目的利润,风险分析没有意义,因而螺旋模型只适合于大规模软件项目。
要求软件开发人员在风险分析这一步骤有专业性,否则对风险的错误估计有可能导致更大的损失。
软件开发是一个迭代和增量过程;
软件开发是由用例驱动的;
软件开发是以架构设计(Architectural Design)为中心的。
RUP(Rational Unified Process,统一软件开发过程,统一软件过程)是一个面向对象且基于网络的程序开发方法论。根据Rational(Rational Rose和统一建模语言的开发者)的说法,好像一个在线的指导者,它可以为所有方面和层次的程序开发提供指导方针,模版以及事例支持。
软件生命周期在时间维度, 每个阶段结束于一个主要的里程碑 (Major Milestone),并在阶段结尾执行一次评估以确定这个阶段的目标是否已经满足。如果评估结果令人满意的话,可以允许项目进入下一个阶段
初始阶段:生命周期目标 (Lifecycle Objective) 里程碑,包括一些重要的文档,如:项目构想 (Vision)、原始用例模型、原始业务风险评估、一个或者多个原型、原始业务案例等。通过对文档的评审确定用例需求理解正确、项目风险评估合理、阶段计划可行等
精化阶段:生命周期体系结构 (LifecycleArchitecture) 里程碑,包括风险分析文档、软件体系结构基线、项目计划、可执行的进化原型、初始版本的用户手册等。通过评审确定软件体系结构已经稳定、高风险的业务需求和技术机制已经解决、修订的项目计划可行等。
构建阶段:初始运行能力 (Initial Operational Capability) 里程碑,包括可以运行的软件产品、用户手册等,它决定了产品是否可以在测试环境中进行部署。此刻,要确定软件、环境、用户是否可以开始系统的运行。
产品化阶段/移交阶段:产品发布 (Product Release) 里程碑,确定最终目标是否实现,是否应该开始产品下一个版本的另一个开发周期。在一些情况下这个里程碑可能与下一个周期的初始阶段相重合。
软件企业之所以能够按固定节奏生产、固定周期发布产品,一方面在于企业规范化管理的基本思想。另一方面在于他们了解软件本质特征,从而选择了合适的开发模型。软件企业非常好地认识项目的工期、范围、质量和预算,遵循先做到再做好的原则,并且对于2/8法则再项目中的应用有着深入了解。
它可以使得企业项目管理具有明确的阶段划分,由于每个阶段都会有显著的里程碑,使得每个迭代阶段都有明确的目标。这反逼项目管理确定合理的产品范围,不投入大量时间在冗余的工作中。
每个迭代都是瀑布的工作流程,在迭代内部需求明确的情况下,差错较少。每个迭代在增量且制品可运行,能够即使交付并得到反馈。固定迭代周期有利于量化团队和个人的生产率。