对统一软件开发过程(RUP)的认识
RUP与UML的关系
1.UML的构成
UML作为一种半形式化的规约语言,提供了:
(1)支持建模的术语(表)
①该术语表中的术语跨越了问题空间到目前“运行平台”之间;
②该术语表支持不同抽象层的建立;
③该术语表支持以面向对象的观点,建立系统模型。
(2)支持建模的表达格式
为了表达概念模型和软件模型,UML提供了14种图形化工具,即:
用于概念模型和软件模型的静态结构方面:类图、对象图、构件图、包图、部署图、组合结构图。
用于概念模型和软件模型的动态结构方面:use case图、活动图、状态图、顺序图、通信图、交互概观图、定时图。
总之,UML是一种可视化的建模语言,给出了一些可用于定义软件开发各抽象层的术语(符号),给出了各层表达模型的工具。
2.UML与RUP的关系
作为一种软件开发方法学,为了支持软件活动开发,至少应涉及三方面的内容:
(1)支持定义各抽象层,即给出各层的一些术语;
(2)给出各层的模型表达;
(3)给出如何把一个抽象层的模型映射为另一个抽象层的模型,即过程指导。
RUP和UML是“统一”的方法学。
RUP的本质和突出特点
1.RUP的本质
RUP(Rational Unified Process)是IBM Rational software提出的软件工程实施过程,是当前最为成功的软件工程方法论之一。它是一种以迭代的、以架构为中心的、用例驱动的软件开发方法。RUP是一种具有明确定义和结构的软件工程过程,它明确规定了人员的职责、如何完成各项工作以及何时完成各项工作,以及软件开发生命周期的结构,定义了主要里程碑和决策的关系。RUP比较完整地定义了将用户需求转换成产品所需要的活动集,并提供了活动指南以及对产生相关文档的要求。
2.RUP的突出特点
是一种以用况(Use Case)为驱动的、以体系结构为中心的、迭代、增量式开发。
(1)以用况为驱动
意指在系统的生存周期中,以用况作为基础,驱动有关人员对所要建立系统之功能需求进行交流,驱动系统分析、设计、实现和测试等活动,包括制定计划、分配任务、监控执行和进行测试等,并将它们有机地组合为一体,使各阶段中都可以回溯到用户的实际需求。
(2)以体系结构为中心
意指在系统的生存周期中,开发的任何阶段(RUP规定了四个阶段,即初始阶段、细化阶段、构造阶段和移交阶段)都要给出相关模型视角下的有关体系结构的描述,作为构思、构造、管理和改善系统的主要制品。
起始阶段——构建最终产品的设想和业务案例,确定项目范围
细化阶段——计划必要的活动资源,详细确定功能并设计架构
构造阶段——构建产品,直到一个可交付用户的产品完成
移交阶段——产品交付用户,包括制造、交付、培训、支持、维护等
(3)迭代、增量式开发
意指通过开发活动的迭代,不断产生相应的增量。在RUP中,规定了四个开发阶段:初始阶段、细化阶段、构造阶段和移交阶段。每次迭代都要按照专门的计划和评估标准,通过一组明确的活动,产生一个内部的或外部的发布版本。两次相邻迭代所得到的发布版本之差,称为一个增量,因此增量是系统中一个较小的、可管理的部分(一个或几个构造块)。
综上可知,RUP的迭代增量式开发,是演化模型的一个变体,但它规定了“大”的迭代数目——四阶段和每次迭代的目标:
RUP的8个核心工作流
1.商业建模:理解待开发系统的组织结构及其商业运作,确保所有参与人员对待开发系统有共同的认识。
2.需求分析:定义系统功能及用户界面,是客户了解系统的功能、开发人员了解系统的需求,为项目预算及计划提供基础。
3.分析与设计:把需求分析的结构转化为实现规格。
4.实现:定义代码的组织结构、实现代码、单元测试和系统集成。
5.测试:校验各子系统的交互与集成,确保所有的需求被正确实现并在系统发布前发现错误。
6.发布:打包、分发、安装软件、升级旧系统;培训用户及销售人员,并提供技术支持,制定并实施beta测试。
7.配置管理:跟踪并维护系统所有Artifacts的完整性和一致性。
8.项目管理:为计划、执行和监控软件开发项目提供可行性指导;为风险管理提供框架和环境;为组织提供过程管理和工具支持。