RUP,统一软件开发过程是一种面向对象且基于网络的程序开发方法论。
RUP的思路:Implementing BestPractices
·迭代式开发
在软件开发的早期阶段就想完全、准确的捕获用户的需求几乎是不可能的。实际上,我们经常遇到的问题是需求在整个软件开发工程中经常会改变。迭代式开发允许在每次迭代过程中需求可能有变化,通过不断细化来加深对问题的理解。
迭代式开发的优点:降低风险;
得到早期用户反馈;
持续性的测试和集成;
适应变更;
提高复用性。
迭代式开发示意图:
·需求管理
需求管理是一种用于查找、记录、组织和跟踪系统需求变更的系统化方法。包括:提取、组织系统的功能和约束,并将他们写成文档;估计需求的变化并评估它们会产生的影响;跟踪需求的实现。
RUP的开发活动是用例驱动的(Use case-driven)、他强调要在透彻理解提交的系统将如何被使用的基础上建造系统。用力和脚本的表示方法用于编排从需求捕获到测试的过程流,并提供从开发到提交系统的可跟踪的线索。
·使用构件架构
对体系结构进行自下而上的设计、实现和测试;用一种系统化的做法来定义好的体系结构;采用定义明确的接口来使得变更有弹性;采用现成的和通过逆向工程得到的构件;用高级别的用例来驱动;易于直观上的理解。
·可视化建模
RUP往往和UML联系在一起,对软件系统建立可视化模型帮助人们提供管理软件复杂性的能力。RUP告诉我们如何可视化的对软件系统建模,获取有关体系结构于组件的结构和行为信息。保证了设计和实现上的一致性,保证没有歧义的沟通。
·检验质量
在RUP中软件质量评估不再是事后进行或单独小组进行的分离活动,而是内建于过程中的所有活动,这样可以及早发现软件中的缺陷。
方法:为每个关键模块创建测试用例并测试,从而保证所有的需求被正确的实现。不可接受的应用性能和不能接受的可靠性对一个软件系统的影响同等重要。眼见软件的可靠性,例如:内存泄露、性能瓶颈。对每一次迭代进行测试。
·控制变更
迭代式开发中如果没有严格的控制和协调,整个软件开发过程很快就陷入混乱之中,RUP描述了如何控制、跟踪、监控、修改以确保成功的迭代开发。RUP通过在软件开发过程中控制、追踪和监控项目的所有变更,从而启动每次迭代;为每个开发者建立安却的工作空间;对不同工作间的改动提供隔离机制,控制所有的软件制品:模型、代码、文档等。
RUP的基本特征:
·迭代式增量开发
将软件开发分为一系列的迭代过程,在每个迭代过程中逐步增加信息、进行细化;根据具体情况决定迭代的次数、每次迭代延续的时间以及迭代工作流;每次迭代都选择目前风险影响最大的用例进行,以分解和降低风险。
·用例(UseCase-driven)驱动
采用用例来捕获对目标系统的功能需求;采用用例来驱动软件的整个开发过程,保证需求的可跟踪性,确保系统的所有功能均被实现;将用户关心的软件系统的业务功能模型和开发人员关心的目标软件系统的功能实体模型结合起来,提供一种贯穿整个软件生存周期的开发方式,使得软件开发的各个阶段的工作自然、一致的协调起来。
·以软件体系结构为中心
强调在开发过程的早期,识别出与软件体系结构紧密相关的用例,并通过对这些用例的分析、设计、实现和测试,形成体系结构框架;在后续阶段中对已形成的体系结构框架进行不断细化,最终实现整个系统;在开发国政的早期形成良好的软件体系结构,有利于对系统的理解、支持重用和有效的组织软件开发。