
4.Rational统一过程包含了许多现代软件开发中的最佳实践(Best Practice)
最后,Rational统一过程同时也包含了许多现代软件开发中的最佳实践(Best Practice)。Rational统一过程以一种能够被大多数项目团队和开发组织都能够适应的形式建立,其所包含的6项最佳实践为:
- 迭代式软件开发。
- 需求管理。
- 基于构件的架构应用。
- 建立可视化的软件模型。
- 软件质量验证。
- 软件变更控制。
这6项最佳实践能够有效地解决在软件开发中的一些根本的问题。下面分别对这6项最佳实践进行介绍。
(1)迭代式软件开发
随着信息化产业的不断发展,当今的软件系统变得越来越复杂,人们再去使用一些传统的线性的开发方式,会越来越具有挑战性。因为各种在技术上可行并且有社会需求的软件密集型系统,在规模上、复杂性上、分布式以及重要性上的要求都在不断地提高,这使得首先完成对问题域的完整定义变得几乎不可能,我们无法在一开始的时候就完成对系统问题域的完整定义。这就需要我们提出一种能够解决这种问题的方法。迭代式软件开发就是其中一种有效的解决方法,它是一种能够通过一系列细化和若干个渐进的反复过程,从而形成有效解决方案的软件开发方式。
Rational统一过程专注于处理那些在软件生命周期中每一个阶段的最高风险,通过一系列的迭代过程和风险控制,极大地减少了项目的风险性。可以从以下几个方面说明迭代式软件开发的优点:
- 考虑了变化的需求。迭代式软件开发的特点之一在于它对各种需求变化的考虑。迭代式的开发在逐步替代中完成开发过程,能够在不确定的需求中完成程序的基本内容,帮助项目开发持续进行。
- 过程逐步集成。在项目的开发过程中首先把握住开始阶段的各种要素,将各种要素形成一个“精华或要素”列表,这个列表能够指导团队成员采用一种更系统、更全面的方式来思考和执行整个软件开发过程。一旦一个过程框架或“架构”到位了,项目开发成员就能更有效地面对和处理单个的问题域,逐步将这些工作集成到项目工作中来。
- 早期风险避免。在Rational统一过程中,不仅提供了一系列的风险指导方案,同时迭代式的开发方式能够在各个阶段的开发和集成过程中发现问题并解决掉。
- 变更管理。迭代是软件开发提供的一系列的变更管理方法,通过这些方法指导项目进行变更管理,减少变更的风险。
- 促进重用。一系列的迭代开发能够促进项目开发成员设计出良好的程序架构来,良好的架构有助于代码的重用。
- 不断评估和修正。在迭代的每一个阶段,都是需要一系列的评估和修正的过程,通过不断地评估和修正,能够帮助我们发现设计和开发过程中的各种缺陷,将早期发现的瓶颈问题解决掉,不至于在交付前出现更大的麻烦。
- 项目组成员在开发中不断学习。迭代式开发使项目组的各个组成部分在整个周期中都能够不断地学习和进步。
在Rational统一过程中,加入了一些可以验证的方法来帮助减少风险,即可以从迭代的数量、持续的时间、迭代的目标和最终用户的反馈等方面计划迭代过程,在每个迭代过程后以可执行版本告终,开发团队停留在产生的结果上,频繁的评估和修正过程有助于确保项目能按时进行,有效地帮助项目管理者降低开发风险。
(2)需求管理
Rational统一过程提供了对需求进行管理的方式。所谓需求管理是指通过一系列系统化的方式,对各种软件密集型系统或应用程序的需求进行提交、组织、沟通和管理。
一个有效的需求管理应当包括以下的内容:
- 能够应对复杂项目的需求。
- 能够有良好的用户满意度。
- 尽可能地减少需求的错误。
- 增强沟通。
Rational统一过程通过以下的几种功能对需求管理进行支持:
- 描述了如何去提取、组织和文档化所需要的功能以及对这些功能的限制因素。
- 能够跟踪和文档化项目的解决方案以及对项目做出决策。
- 还能够对捕获商业需求,并进行交流和沟通。
(3)基于构件的架构应用
Rational统一过程支持基于构件的软件开发。所谓的构件是指具有清晰功能的模块、包或子系统等。软件构件是对概要设计在物理上的实现,它们之间有着明确的界限,并且能够通过良好的定义集成为一个优良的架构。基于构件的开发主要有以下几种不同的方式,分别为:
- 认真设计每一个构件,然后分别对构件进行测试和集成,最终完成整个系统。
- 构建可重用构件。对于一些可以为那些普遍存在的问题提供共同解决方案的构件,我们可以将这些构件开发成为可重用构件。这些可重用构件构成了在组织中软件开发的重用基础,因而能够提高整个组织软件的生产能力和质量。
- 一些基础结构的构件。这些构件能够支持一些基础结构,如CORBA、Internet、ActiveX和JavaBeans等,它们在商业应用上都取得了很大的成功。这些基础结构的构件促进了计算机软件应用的不同领域对现有构件的使用。
Rational统一过程是以架构为中心的,该过程在进行开发之前,关注的是早期能够进行开发和产生健壮的可执行体系结构的起点,这个起点是以一个可执行的架构原型的形式而存在的。它描述了如何设计灵活的、可容纳修改的、直观便于理解的并且促进有效软件重用的弹性结构,在后来的开发中,逐步将其发展成为最终的目标系统。
Rational统一过程还为架构提供了一个设计、开发、验证的系统性方法。其中包括提供了模板、架构风格、设计规则、设计约束、设计过程构件和管理过程等。模板用以描述建立在多重架构视图概念基础上的架构。设计过程构件包括约束、构建重要元素以及确定如何进行架构选择的指导原则等具体活动。管理过程告诉我们如何计划早期的迭代过程,其中要考虑到架构设计和主要的技术风险的解决方法。
Rational统一过程使架构设计人员将注意力集中在软件的架构设计上,同时能够让所有人员都能够明确所开发软件的结构状况,并且通过一系列的迭代过程使开发人员逐步确定构件,这些确定的构件可以通过开发、重用和购买等方式来获得,最终完成系统的开发。
(4)建立可视化的软件模型
Rational统一过程的可视化建模的基础是UML(统一建模语言)。它是一种图形语言,是描述不同模型的通用语言,它提供了一种规划系统蓝图的标准方法,但是它却不能告知设计人员如何使用它来开发软件。这就是为什么Rational联合UML开发Rational统一过程的原因。
Rational统一过程指导我们如何有效地使用UML(统一建模语言)进行建模。它告诉我们在开发过程中需要什么样的模型,为什么需要这样的模型以及如何构造这样的模型等,可以说Rational统一过程的很大部分是在开发过程中开发和维护系统模型(Model)。模型帮助我们理解并找到问题及问题的解决方案。在开发过程中通过显示对软件如何可视化建模,捕获体系结构和构件的结构和行为。并且允许开发人员隐藏细节和使用各种“图形构造块”来进行代码的编写。可视化建模抽象表述了软件的不同方面,观察各元素如何配合在一起,确保构件模块和实现代码一致,以保持设计和实现的一致性,促进保持明确的沟通。
在使用Rational统一过程时要注意对UML(统一建模语言)版本的关注,在RUP2000中使用UML 1.4版本。随着Rational公司被IBM并购,对于该技术就有必要关注IBM,现在最新的UML版本已经到了UML 2.5。
(5)软件质量验证
在软件开发中,我们通常关注两方面的质量,分别是产品质量和过程质量。
- 产品质量:是指开发出来的软件产品(包括软件和系统等)以及软件产品中得到的所有元素(包括构件、子系统、架构等)的质量。
- 过程质量:过程质量是指在进行软件开发过程中,软件开发组织使用的软件工程过程(包括对质量的度量和准则等)被执行的程度。一系列的软件工程因素如迭代计划、系统用例、架构设计、测试计划等执行程度构成软件系统的过程质量。
体现高性能以及具有可靠性的应用程序是软件能够被接受的关键,在软件开发中不仅仅关注软件的产品质量,还应当关注于那些生产合格产品的过程质量。软件产品的质量应该是基于可靠性、功能性、应用和系统性能等方面并根据需求来进行验证的。Rational统一过程能够帮助开发人员计划、设计、实现、执行和评估这些测试类型。并且Rational统一过程将软件产品的质量评估内建于所有过程和活动当中,即将软件质量验证成为每一个开发组织成员的职责,并且使用客观的度量和标准,而不是事后型的或单独小组所进行的分离式度量。
Rational统一过程还针对如何验证和客观评价软件产品是否达到预期的质量目标提出了一系列的标准。
(6)软件变更控制
在软件开发过程当中,尤其是迭代开发过程当中,由于其开发计划和执行过程都具有灵活性,很多在软件开发过程当中的文档、代码等工作产品都会被修改。因此,为了跟踪这种修改变更的步骤,并且确保开发组织中的每一个人、每一件事都能够同步地进行,需要对软件产品的变更进行变更管理。
由于变更的出现往往是需求的变化,因此在迭代式软件开发中,变更管理首先关注于软件开发组织的需求变化,产生出针对需求、设计和实现中的变更进行管理的一种系统性方法。它也包括了一系列的重要活动,如跟踪发现的错误、误解和项目任务,同时将这些活动与某一特定软件产物和发布联系起来。变更管理和配置管理对软件产品质量的度量有着密切的关系。
衡量一个组织进行变更能力的高低是通过管理变更能力来表示。管理变更能力确定每个修改是可接受的,并且是能够被跟踪的。它在那些对于变更是不可避免的环境中是必须的。Rational统一过程描述了如何控制、跟踪和监控修改以确保成功的迭代开发,它同时指导如何通过隔离修改和控制整个软件产物(例如,模型、代码、文档等)的修改来为每个开发者建立安全的工作区。
综上所述,Rational统一过程是这四方面的统一体。根据这四方面的内容,Rational统一过程提供了:一种以可预测的循环方式进行软件开发的软件开发过程;一个用来确保生产高质量软件的系统产品;一套能够被灵活改造和扩展的过程框架;许多软件开发的最佳实践。这四个方面都使得Rational统一过程对现代软件工程的发展产生了深远的影响。