RUP以及它与UML的关系
来源:互联网 发布:自学python需要多久 编辑:程序博客网 时间:2024/06/07 10:09
一、什么是RUP?
RUP(Rational unifiedProcess)即统一软件过程,统一软件过程RUP是一种用例驱动的,以架构为中心的,采用迭代增量方式开发的软件工程过程。它汲取了面向对象软件工程领域多年来的优秀研究成果,应用统一建模语言(UML)进行可视化建模,为面向对象的软件系统的开发提供了方法论的指导。
二、什么是UML?
UML(Unified Modeling Language)是用图形方式描述一个系统的静态结构和动态行为的一种可视化的面向对象建模语言。从不同的角度为系统建模,形成了整个系统的不同视图。
三、那么为什么学完了9种图之后接着就讲了RUP,RUP和这9种图有什么关系呢?和UML又有什么关系呢?
UML融合了软件工程的新思想、新技术、新方法,支持面向对象软件开发的全过程,如软件开发的各个环节紧密结合。其建立的模型定义良好易读易懂、表达能力强、易于转换为代码。UML使用图形符号和文档相结合的方式(九种图)来表达要解决的问题及方案,这些图形和文档都可以作为系统的相关文档,利于各种人员之间的交流和提高软件的可维护性。
软件开发过程是软件工程的要素之一,有效的软件开发过程可以提高软件开发团队的生产效率,并能够提高软件质量、降低成本、减少开发风险。UML是一种可应用于软件开发的非常优秀的建模语言,但是UML本身并没有告诉人们怎样使用它,为了有效地使用UML,需要有一种方法应用于它。这就引出了软件过程。
软件过程是为了获得客户所需要的软件,所进行的一系列任务及各个任务的工作步骤。常见的软件过程模型有瀑布模型、原型模型、增量模型、喷泉模型、RUP(统一软件过程)、敏捷过程等。不同的软件过程模型将软件生命周期划分的工作阶段是不相同的,再加上所开发的软件的类型及项目特点也各不相同。最后开发出来的软件质量也就各不相同。当前最流行的使用uml的方法就是Rational的统一过程(RUP),RUP是软件开发过程的一种,它为有效的使用统一建模语言UML提供了指导。RUP集合了成功的工程实践经验、面向对象的方法、迭代开发成要素,能够把UML建模语言和软件开发的过程很好地结合在一起,非常适合面向对象的软件开发。
UML作为一种建模语言,要和具体的软件过程相结合。这就实现了UML与RUP相结合。
四、简单的介绍一下RUP:
(1)RUP的基本特征:
1.迭代式增量开发
2.用例驱动
3.以软件体系结构为中
(2)使用RUP可以带来的好处:
RUP使得开发团队成员共享:
同一个知识库
同一个开发过程
同一个开发视图
同一种建模语言
(3)RUP使用的几种措施(最佳实践):
1、迭代式开发
一个迭代是一个完整的开发循环,产生一个可执行的产品版本,是最终产品的一个子集,它增量式地发展,从一个迭代过程到另一个迭代过程到成为最终的系统。迭代的成果是一个可执行产品的一个版本,是最终系统产品的一个子集,通过多次迭代连续增加和精化系统,在每个迭代过程中逐步增加信息、进行细化。每次迭代都选择目前对风险影响最大的使用实例进行,以分解和降低风险。这和其他开发过程区别很大,例如和瀑布模型的比较:
2、需求管理
需求管理是一种用于查找、记录、组织和跟踪系统需求变更的系统化方法。管理需求包括提取、组织系统的功能和约束,并将它们写成文档,然后估计需求的变化并评估它们会产生的影响。RUP的开发是用例驱动的,它强调要在透彻理解提交的系统将如何被使用的基础上建造系统。RUP描述了如何提取、组织系统的功能和约束条件并将其文档化,用例和脚本的使用已被证明是捕获功能性需求的有效方法。
3、使用构件架构
对体系结构进行自上而下的设计、实现和测试,不需要所有代码都从零写起,采用现成的和通过逆向工程得到的构件来构件体系结构。
4、可视化建模
RUP往往和UML联系在一起,告诉我们如何进行建模。描述了系统的体系结构和系统里的各个元素是如何组合在一起的。保证了设计和实现上的一致性,没有歧义的沟通。
5、检验质量
在RUP中为每个关键模块创建测试用例并测试,从而保证所有的需求被正确的实现。不再是完成后进行测试,而是在整个过程中,这样可以及早发现系统中的缺陷。
6、控制变更
RUP描述了如何控制、跟踪、监控、修改项目的所有变更,以确保成功的迭代开发。RUP通过软件开发过程中的制品,隔离来自其他工作空间的变更,以此为每个开发人员建立安全的工作空间。
(4)RUP软件开发生命周期:
RUP中的软件生命周期在时间上被分解为四个阶段,分别是:初始阶段(Inception)、细化阶段(Elaboration)、构造阶段(Construction)和提交阶段(Transition)。
起始阶段:起始阶段的目标是建立业务模型用例,明确项目的范围。
细化阶段:建立工程计划和合理的体系结构。
构造阶段:建造系统。
提交阶段:把系统提供给最终用户。
(5)核心工作流
RUP中有9个核心工作流,分为6个核心过程工作流(Core Process Workflows)和3个核心支持工作流(Core Supporting Workflows)。
业务建模工作流:通过对目标组织的商业活动的分析,建立业务模型,表达目标的业务过程,用UML活动图来描绘涉及到的角色和活动的序列、
需求工作流:通过对目标组织业务分析,确定客户的需求,描述系统应具备的功能需求和性能需求。使用用例图、活动图等。
分析和设计工作流:对问题域进行分析,找出其中的类及类之间的关系。产生软件系统的分析模型。分为架构设计和详细设计。
实现工作流:任务是把设计模型转化成相应的代码。使用类图、状态图、相关动态图描述类的实现过程。
部署工作流:目的是产生可交付的软件版本,并将其发布到客户的工作环境中。主要使用部署图和构件图来描述系统的硬件设备的分布及连接情况、软件构件在硬件上的安装情况。
测试工作流:目的是尽早发现系统中的错误与缺陷、识别并跟踪处理缺陷、验证需求是否满足。
五、总结:
RUP的影响:
提高了团队生产力,在迭代的开发过程、需求管理、基于组件的体系结构、可视化软件建模、验证软件质量及控制软件变更等方面,针对所有关键的开发活动为每个开发成员提供了必要的准则、模板和工具指导,并确保全体成员共享相同的知识基础。它建立了简洁和清晰的过程结构,为开发过程提供较大的通用性。
但同时它也存在一些不足:
RUP只是一个开发过程,并没有涵盖软件过程的全部内容,例如它缺少关于软件运行和支持等方面的内容;此外,它没有支持多项目的开发结构,这在一定程度上降低了在开发组织内大范围实现重用的可能性。
对软件开发过程的管理是为了更好的支持和促进软件开发,而不是制约软件开发。软件开发成功与否的标志,不只是开发出实现了用户需求的产品,而且还包含了时间、成本、对维护与扩充的支持等重要因素,因此需要开发过程的有效支持。
- RUP以及它与UML的关系
- 软件工程同UML和RUP的关系
- RUP 与UML
- K-means学习进阶以及它与EM的关系
- dagger2简介,以及它与clean architecture的关系
- java中类与类的关系以及UML类图
- [建模技术]精通它,才能毁灭它!——谈Uml与科学和工程的关系。
- UML学习-------RUP的基本特征
- RUP之用例间的关系
- RUP之用例间的关系
- UML图与RUP图初步认识
- UML类图,以及对象关系的总结
- UML基础以及关系的形象解读
- 交换操作的重要意义,以及它与赋值,拷贝的关系
- rownum的特点以及它与order by 子句的执行顺序关系
- KVM的学习以及它与qemu和xen三者之间的关系
- Windows消息队列何时创以及它与线程的关系
- UML学习-------RUP带来的观念变化
- 2014我的计划
- 黑马程序员--进阶篇:反射,内省
- 为什么诈骗短信看上去那么弱智?
- 黑马程序员--进阶篇:泛型
- 我工作这几年(五)-- 在代码中加入一些关键统计信息来实时监控程序的运行状态
- RUP以及它与UML的关系
- 黑马程序员--进阶篇:代理
- 【CocosBuilder 开发系列之一】cocos2dx使用CocosBuilder(编辑器)完成基础骨骼动画
- 黑马程序员--7k:银行服务系统
- 黑马程序员--7K:路灯系统
- 2042——不容易系列之二
- UML的结构
- Vim plugins for Go
- lua的数据结构 -- 队列