首页 > 代码库 > RUP
RUP
Rationa1 Unified Process(RUP)是统一软件开发过程,统一软件过程是一个面向对象且基于网络的程序开发方法论。
一、提出背景:
软件危机的主要特征:
1.软件开发周期大大超过规定日期;
2.软件开发成本严重超标;
3.软件质量难于保证。
软件开发面临的问题?
1.不能满足用户或商业的要求
2.不能很好的定位需求到
3.模块难于集成
4.到最后才发现错误
5.对于终端用户来说质量较差
6.负载时性能差
7.没有协调团队的努力
8.不断地修改一发布问题
二、处理的问题:
一有缺陷的、无法顶见结果的、高度依赖于个别
“英雄”程序员的、不可复的开发过程:
一发的软件难以适应的要求:
一在应对需求的变更方面无能为力:
一要单调乏味昂贵的测试流程:
一缺陷发现得太迟
一开发的软件难以维护和扩充
RUP使的开发团队成员共享同一个知识库 开发过程 开发试图 建模语言
三、思路是:实施最佳实践
其措施:迭代式开发 管理需求、使用构件架构,可视化建模、质量检验、控制变更
1、迭代式开发已经讲过
2、管理需求
在软件开发的过程中需求的理解至关重要而需求的传递会引起误差。这就要求进行需求管理。
需求管理是一种用于查找、记录、组织和跟踪系统需求变更的系统化的方法。能够确保,解决正确的问题,建立正确的系统。
需求管理的内容包括:提取、组织系统的工能和约束,并将它们写成文档;估计需求的变化并评估它们会产生的影响;跟踪需求的实现。
用例和脚本的表示方法用于从需求捕获到测试流程,并提供从开发系统到提交系统的可跟踪的线索。
3、使用架构框架:
对体系结构进行自下而上的设计、实现和侧试。
用一种系统化的做法来定义好的体系结构。
采用定义明确的接口来使得变更有弹性。
采用现成的和通过逆向工程得到的构件。
由高级别的用例来驱动。
易于直观上的理解
4、可视化建模
1、为什么要建模?
建立大厦和建立茅草屋的区别在于:建茅草屋不需要设计。
要生产合格的软件就要有一套关于体系结构、过程和工具的规范。
模型:是对现实世界的简化,把复杂的系统边城小的系统
2、为什么可视化建模:可视化建模加深了抽象的程度,一幅图顶千言万语。
描述体系结构特点和结构。
描述系统里的齐个元索如何组合在一起。
保证设设计和实现上的一致性。
保证没有歧异的沟通。
5、质量检验:
一为每个关键模块创建测试用例并测试,从而保证
所有的需求被正确的实现。
一不可接受的应用性能和不能接受的可靠性对一个
软件系统的影响同等重要
一验证软件:丁靠性,例如:内存泄漏、性能瓶预。
一对每一次迭代进行测试。
6、管理变更:
控制、追踪和监控项目的所有变更,从而启动每次迭代
为每个开发者建立安全的工作空间
控制所有软件制品
四、其基本特征:
1、迭代式增量开发
① 一将软件开发分为一系列小的迭代过程,在每个
迭代过程中逐步增加信息、进行细化;
②一根据具体情况决定迭代的次数、娜次迭代延续
的时间以及迭代工作流:
② 一排次迭代都选择目前对风险影响址大的川例进
行,以分解和降低风险。
2、 用例驱动
①采用用例来捕获对目标系统的功能击求:
③ 采用用例来驱动软件的整个开发过程,保证需求的可跟踪性,确保系统所有功能均被实现;
③将用户关心的软件系统的业务功能模型和开发人员关心的日标软件系统的功能实体模型结合起来,提供一种贯穿整个软件生存周期的开发方式,使得软件开发的各个阶段的工作自然、一致地协调起来。
3、以软件的体系结构为中心
①强调在开发过程的早期,识别出与软件体系结构紧密相关的用例,并通过对这些用例的分析、设计、实现和测试,形成体系结构框架。
②一在后续阶段中对已形成的体系结构框架进行不断细化,最终实现整个系统:
③一在开发过程的早期形成良好的软件体系结构,有利于对系统的理解、支持重用和有效的组织软件开发。
五、软件开发周期:
一个RUP可以分为若干个周期
每个周期有四个阶段起始阶段(Inception)为项目建立一个业务案例。
细化阶段(Elaboration)监理工程计划和合理的体系结构。
构建阶段(Construction)建造系统。
提交阶段(Transition)把系统提供给最终用户。
每个阶段有若干次迭代。每个迭代是一个完整的开发循环。
六、RUP带来的观念的变化:
更强的计划性。
坦然面对迭代过程中一部分中间制品的推倒重来。
把软件放在首位,不要过分强调规格说明。
尽早进行困难的工作。
加强开发过程中的监控和量化管理。
既需要好的项目管理者,也需要好的体系结构设计师。
总体来说
在软件工程中目标是高效、准时 的提交一个满足你的业务需求的软件产品
RUP 提供了在开发机构中分派任务和责任的纪律化方法。其目标是能够在预定的进度和预算中,提供高质量的、满足最终用户需求的软件。
软件开发过程的管理是为了更好地支持和促进软件开发,而不是制约软件的开发。软件开发成功与否的标志,不只是开发出实现了用户需求的产品,而且还包含了时间、成本、对维护与扩充的支持等重要因素,因此需要开发过程的有效支持。
程