首页 理论教育RUP:必不可少的软件需求工程方案

RUP:必不可少的软件需求工程方案

【摘要】:但是相信很多读者都会觉得RUP和UML是一样的,其实RUP和UML是不同的两个领域。简单的说,UML是一种语言,用来描述软件生产过程中产生的文档,RUP则是指导如何产生这些文档以及这些文档讲述什么的方法。图2-7展示了RUP体系的主要组成。图2-7RUP主要知识体系RUP有着一堆专业词汇,繁多的模板等,我们就不对它做过多介绍,但是RUP指导本书方法论的调研过程,本书中所讲述的用UML来分析和设计的方法都源于统一过程。

要讨论UML,那么我们就不能不提RUP(Rational Unified Process,统一过程)。立交桥再宏伟,再漂亮,都是基于建筑学理论来建设的,RUP与UML的关系正类似于建筑学与立交桥的关系。但是相信很多读者都会觉得RUP和UML是一样的,其实RUP和UML是不同的两个领域。简单的说,UML是一种语言,用来描述软件生产过程中产生的文档,RUP则是指导如何产生这些文档以及这些文档讲述什么的方法。从本质上讲RUP不是专门针对UML,它是一个采用面向对象思想,在软件工程领域指导建模的最佳实践,但是UML仍然是对RUP的承载或落实最为全面,同时也是最为复杂的体现。

RUP是一个庞大且复杂的知识体系,RUP 归纳和总结了软件工程领域的很多实践方法,主要采用UML作为软件分析的设计语言,并且结合了项目管理、质量保证等许多软件工程知识,综合而成的一个非常完整和庞大的软件方法。如图2-6所示,统一过程定义了软件开发过程中最重要的阶段和工作(四个阶段和九个核心工作流),定义了参与软件开发过程的各种角色和他们的职责,还定义了软件生产过程中产生的成果物,并提供了模板。并且,演进式的软件生命周期(迭代)将工作、角色和成果物串在一起,形成了统一过程。

图2-6 统一过程概述

从图2-6可以看到,统一过程将软件生产分为四个阶段和九个核心工作流,每个工作流在不同的阶段有不同的工作量比重,这些权值比重的安排都来自实际项目的统计数据。每个阶段会涉及到哪几个工作流?我们可以在迭代计划中清楚地看到。一个软件从初始到产品推出要经历多次演进,每一个演进会有一个迭代计划来描述本次演进的阶段性小目标、经历的主要工作流等。统一过程对每个工作流都规定了标准的流程、参与角色和对应的模板,而在迭代计划里可以依据项目实际情况对这些流程、角色和模板等进行剪裁使用,不必全盘接受。

RUP几乎囊括了软件开发生产过程所需要知识的各个方面,也是当前最为重量级的软件方法。RUP是一种追求稳定的软件方法,它追求开发稳定架构,控制变更,立足于长期战略,更加适用于大中型软件产品的开发,也是一种需要投入较大成本的选择。那么,为何大家要投入那么多成本来实施统一过程呢?

首先是出于提高软件成熟度的需求。在CMM(能力成熟度模型)中其实只规定了每个成熟度等级的评估标准,但是并未提出达到标准的具体可量化的指标。因此,更多的企业在权衡符合自身的软件过程和采用统一过程标准之间就更加偏向于RUP了。(www.chuimin.cn)

其次,出于提高软件技术水平和质量的需要。大家清楚地知道,一个好的软件产品,必须保证需求、分析、设计、质量等工作。RUP集成了面向对象、UML语言、核心工作流、工件模板和过程指导等内容,使得软件生产过程能够利用这些成熟的指导来提高组织内整体软件认识和开发人员的软件素养,从而也为企业提高软件生产的技术水平和质量打下良好的基础。

再次,RUP适合稳定架构的开发工作。它能够通过演进来逐步推进软件产品,这一特点使它特别适合长期战略的软件产品研发。例如,某家公司一直深耕于某个行业,不断地对行业经验进行积累,不断地对项目进行总结,不断地深入行业内部,从而实现对整个行业的业务能够提出一整套的解决方案

总之,RUP的复杂性和当前软件项目的复杂性促使人们一直期望软件开发能够像工业产品的生产一样能够有标准化的零部件,然后按照规则组装成需要的产品,希望能够用较少的投入完成软件项目的推进。随着当前面向对象的发展,以及方法论的标准化,基于架构、构件化的软件开发模式逐步得到承认并流行起来,这也表明软件的“流水线加工中心化”发展正在取得重大进步。但是,构件一方面不像工业零件有着较为明确的定义标准,另一方面构件间的通信和组装也缺乏公认、权威和统一的规则。因此,要真正达到构件化、组件化的软件开发还有较长的征程需要继续探索……而RUP的过程类实践,为这个方向的推进和发展提供了一些最佳实践,包括用例驱动、架构导向和构件化等。而且,RUP不仅在软件过程的技术方面进行了有益的探索,在项目管理、质量管理、配置管理以及人员角色等方面也有所涉及。所以,了解RUP可以更加清楚地理解软件本质,对于软件人员提升软件“智商”似乎也有着意外之功。图2-7展示了RUP体系的主要组成。

图2-7 RUP主要知识体系

RUP有着一堆专业词汇,繁多的模板等,我们就不对它做过多介绍,但是RUP指导本书方法论的调研过程,本书中所讲述的用UML来分析和设计的方法都源于统一过程。因此,大家阅读本书的过程就是一次统一过程经历,大家认真阅读完本书后就应该可以掌握最基本的统一过程方法,尤其是在方法论的理解和应用方面。那么,在我们了解了RUP之后,方法论中用到的UML核心元素就是需要大家关注的重点。