在UMl中RUP算是一个特别重要的知识点,进行对整个软件的开发周期分析,以及提出一系列的解决问题,还有面对不同的人之间对不同的软件需求做出回答。从而让我们在学习的过程中认识到RUP的特征是什么样的,用文字和图解的方式总结出来。现将视频讲解的内同总结如下:
Rational统一过程(Rational Unified Process,RUP),它是由Rational软件公司推出的一种完整而且完美的软件过程(关于什么是软件过程点击这里)。它可以作为软件开发的良好开端。
RUP最重要的它有三大特点:
1)软件开发是一个迭代过程。
2)软件开发是由Use Case驱动的。
3)软件开发是以架构设计(Architectural Design)为中心的。
RUP总结了经过多年商业化验证的6条最有效的软件开发经验,这些经验被称为“最佳实践”
软件危机的主要特征
软件开发面临的问题
RUP使得开发团队成员将共享
降低风险
得到早期用户的反馈
持续测试和继承
适应变更
提高复用性
迭代式开发示意图
分析设计基本都在最中间,所以说分析设计是做重要的。
—迭代式一种技术,用来吧系统功能传递到一系列连续的增量的完整版本。
—每个版本都在一个特定固定的时间段被开发,该时间段称之为迭代。
—迭代的成果是一个可执行产品的版本,是最终系统产品的一个子集。
—通过多次迭代连续增加和精化系统,在每个迭代过程中逐步增加信息,进行细化,
—每次迭代都选择目钱对风险影响最大的实例进行,以分解和降低风险。
—在经行大规模的投资之前就解决了关键的风险问题
—使得早期用户反馈信息始终迭代中就能出现
—连续进行测试和集成
—各个目标里里程碑提供了短期的焦点
—对过程的测量是通过对现实的评定来进行的
—可以对局部的实现进行部署。
每个人的理解是不同的,由于不同的理解让用户投入很大。
需求管理是一种用于查询,记录,组织和跟踪系统需求变更的系统化方法。
—确保能够:解决正确的问题,建立正确的系统。
—需求管理包括
使用构建架构
—对体系结构及进行在上而下的设计,实现和测试
—用一种系统化的做法来定义好的体系结构
—采用定义明确的接口来使得变更更有弹性
—采用现成的和通过逆向工程得到构件。
—由高级的用例来驱动
—易于直观上的理解。
—描述体系结构特点和结构
—描述系统里的各个元素如何组合在一起
—保证设计和实现上的一致性
—保证没有歧异的沟通
—为每个关键模块创建测试用例并测试,从而保证所有的需求被正确的实现
—不可接受的应用性能和不能接受的可靠性对一个软件的影响同等重要
—验证软件的可靠性,例如:内存泄漏,性能瓶颈。
—对每一次迭代进行测试。
—控制,追踪和监控项目的所有变更,从而启动每次迭代,
—为每个开发者建立安全的工作空间
—对不同工作空间的改动提供隔离机制
—控制所有的软件制品:模型,代码,文档等。
受控的迭代式增量开发:
—将软件开发分为一系列小的迭代过程,在每个迭代过程中逐步增加信息,进行细化
—根据具体情况决定迭代的次数,每次迭代延续的时间以及迭代工作流。
—每次迭代都选择目前对风险影响最大的用例进行,以分解和降低风险。
时间:
—周期(cycles):一个RUP可以分为若干个周期
—迭代(Iterations):每个阶段进行若干次
—工作流:(workflow):对应于特定的迭代的连续活动
—中间制品(Artifacts):活动的结果
RUP软件开发生命周期:分为四个阶段
—Inception(起始阶段)—为项目建立一个业务案例。
—Elaboration(细化阶段)—建立工程计划和合理的体系
—Construction(构件阶段)—建造系统
—Transition(提交阶段)—把系统提供给最终用户
—每个阶段可以分解成多个迭代
-一个迭代是一个完整的开发循环,它将产生一个可执行的发布版本,这个版本构成最终产品的一个子集,然后迭代的得到最终系统。
更强的计划性:迭代开发意味着有更强的预见性和计划性,阶段性划分,阶段内的迭代都需要仔细规划。这要求项目管理者承担更大的责任,而所换来的则是开发任务的具体化和可预见性。
坦然面对迭代过程中一部分之间制品的推到重来:不要恐惧这样的现实,由于迭代过程的细化和相应工具的支持,其影响是可以控制的。
尽早进行困难的工作
把软件放在首位:过分强调规格说明(问题空间的描述)的作用是不恰当的
坦然面对之间制品的不美观
加强开发过程中监控与质量化管理
确定迭代的数量,持续时间和内容
既需要好的管理者,也需要好的系统结构设计师