新型软件生命周期模型-RUP统一过程模型 迭代增量

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_38262266/article/details/86586081
由来:
RUP(Rational Unified Process)统一过程模型
是由Rational公司(现被IBM公司收购)开发的一种软件工程过程框架
是一个面向对象的基于web的程序开发方法论 
特点:
RUP既是一种软件生命周期模型
又是一种支持面向对象软件开发的工具
它将软件开发过程要素和软件工件要素整合在统一的框架中

RUP中的软件生命周期在时间上被分解为四个顺序的阶段:
初始阶段(Inception)
细化阶段(Elaboration)
构造阶段(Construction)
交付阶段(Transition)

每个阶段结束于一个主要的里程碑(Major Milestones)
并在阶段结尾执行一次评估以确定这个阶段的目标是否已经满足

如果评估结果令人满意的话,可以允许项目进入下一个阶段。

 

初始阶段 

目标是为系统建立商业案例(business case)并确定项目的边界。
商业案例包括项目的验收规范、风险评估、所需资源估计、阶段计划等。

要确定项目边界,需识别所有与系统交互的外部实体,并在较高层次上定义外部实体与系统交互的特性
主要包括识别外部角色(actor)、识别所有用例并详细描述一些重要的用例。

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

细化阶段 

目标是分析问题领域,建立健全的体系结构基础,编制项目计划,完成项目中高风险需求部分的开发。

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

构造阶段

将所有剩余的技术构件和稳定业务需求功能开发出来,并集成为产品,所有功能被详细测试。
从某种意义上说,构造阶段只是一个制造过程,其重点放在管理资源及控制开发过程以优化成本、进度和质量。

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

移交阶段 

移交阶段的重点是确保软件对最终用户是可用的。交付阶段可以跨越几次迭代,包括为发布做准备的产品测试,基于用户反馈的少量调整。

里程碑:产品发布(Product Release)里程碑。
此时,要确定最终目标是否实现,是否应该开始产品下一个版本的另一个开发周期。
在一些情况下这个里程碑可能与下一个周期的初始阶段的相重合。
RUP的9个核心工作流

6个核心过程工作流
商业建模(Business Modeling) 
需求(Requirements) 
分析和设计(Analysis & Design) 
实现(Implementation) 
测试(Test) 
部署(Deployment) 

3个核心支持工作流:
配置和变更管理(Configuration & Change Management) 
项目管理(Project Management) 
环境(Environment) 
开发思想:
迭代增量

RUP是融合了喷泉模型和增量模型的一种综合生命周期模型
喷泉模型(fountain model) 并行开发+重叠反复 
增量模型(incremental model) 设计核心功能+逐步累加

每一次迭代就是为了完成一定阶段性小目标而从事的一系列开发活动

 

RUP通过迭代增量建模思想提高了风险控制能力
这体现在:
迭代计划安排是风险驱动的,高风险因素集中在前两个阶段解决,特别是体系结构级的风险在细化阶段就得到了解决,及早降低了系统风险
每一次迭代都包括需求、设计、实施、部署和测试活动,因此,每一个中间产品都得到了集成测试,而且这个集成测试是在一个统一的软件体系结构指导下完成的
每一个阶段结束时还有严格的质量评审,保证里程碑文档的质量
由于中间版本的产品是逐步产生的,而且核心功能和性能需求已经包含在前面的版本中,所以,可以根据市场竞争的情况适时推出中间版本,降低市场风险。
RUP的最佳实践:
短时间分区式的迭代:2~6周,不鼓励时间推迟;
适应性开发:小步骤、快速反馈和调整;
在早期迭代中解决高技术风险和高业务价值的问题;
不断地让用户参与迭代结果的评估,并及时获取反馈信息,以逐步阐明问题并引导项目进展;
在早期迭代中建立内聚的核心架构;
不断地验证质量;尽早、经常和实际地测试;
使用用例驱动软件建模:用例是获取需求、制定计划、进行设计、测试、编写终端用户文档的驱动力量;
可视化软件建模:使用UML(Unified Modeling Language,统一建模语言)进行软件建模;
仔细地管理需求:不要草率地对待需求,而要有机地进行需求的提出、记录、等级划分、追踪。拙劣的需求管理是项目陷入麻烦的一个常见原因;
实行变更请求和配置管理。
RUP是一个通用的过程模板,包含了很多开发指南、工件、开发过程所涉及到的角色说明等
因此,具体开发机构在应用RUP开发项目时要做裁剪。
RUP裁剪可以分为以下几步:
⑴ 确定本项目需要的工作流。
⑵ 确定每个工作流需要的工件。
⑶ 确定4个阶段之间的演进计划。
以风险控制为原则,决定每个阶段实施的工作流,每个工作流的执行程度,生成的工件及其完成程度等。
⑷ 确定每个阶段内的迭代计划。
规划RUP的4个阶段中每次迭代开发的内容。
⑸ 规划工作流内部结构。
用活动图(activity diagram)规划工作流中涉及的角色、角色负责的活动及产出的工件。

猜你喜欢

转载自blog.csdn.net/qq_38262266/article/details/86586081