技术前沿 畅谈UML面向对象技术

本文和大家重点讨论一下UML面向对象技术,近年来,UML面向对象技术是软件设计的主流设计思想。UML作为一种面向对象的建模方法,一方面可方便地同大多数面向对象的设计语言链接;另一方面可运用到除软件设计以外的其他方面,如商业、信息系统、甚至是面向对象设计语言的开发等。

1面向对象概述

1.1面向对象思想

面向对象思想起源于20世纪70年代,在80年代得到了巩固与发展。90年代,面向对象技术已经成熟,并进入深入发展阶段。面向对象程序设计与传统的过程式程序设计有着显著的区别。过程式程序设计是面向功能的,通常使用函数或过程来实现所需要的功能,数据通常作为参数传递给函数或过程,这种方式不利于大中型软件的开发与维护,小部分数据或功能的变动会波及到很多的相关程序。随着计算机应用需求的不断扩大,计算机软件越来越复杂,这种复杂性不仅体现在规模的扩大,而且模块之间的交互越来越复杂。为此,人们提出了面向对象程序设计的思想,他是一种以对象为中心的程序设计方法。
UML面向对象程序设计提出了一种新的系统设计模型,他将系统看成通过交互作用来完成任务的对象的集合,每个对象用自己的方法管理数据。他允许抽象化、模块化的分层结构,具有多态性、继承性和封装性。面向对象的程序设计考虑如何通过创建对象来简化程序设计,提高代码的可重用性。

1.2面向对象的几种设计方法

随着面向对象技术成为研究的热点,相继出现了几十种支持软件开发的面向对象方法。其中Booch,Coad/Yourdon,OMT和Jacobson的方法在面向对象软件开发界得到了广泛的认可。
Booch方法的优点在于其丰富的符号体系;Rumbaugh的OMT方法从3个视角描述系统,相应地提供了3种模型对象模型、动态模型和功能模型;Coad/Yourdon方法严格区分了面向对象分析(OOA)和面向对象设计(OOD)。
该方法利用5个层次的活动来定义和记录系统行为、输入和输出;Jacobson方法与上述3种方法有所不同,他涉及到整个软件生命周期,包括需求分析、设计、实现和测试等4个阶段;而统一建模语言UML(UnifiedModelingLanguage),结合了Booch,OMT和Jacobson方法的优点,统一了符号体系,并从其他的方法和工程实践中吸收了许多经过实际检验的概念和技术,UML作为一种标准的建模工具已经得到世界的认可,成为国际标准。

2UML概述

2.1UML的出现与发展

UMl面向对象技术作为一种软件技术有着其优越性,但是由于目前的大多数面向对象分析与设计方法都没有提供一个定义对象的有力手段,往往是在工作一开始就陷入了一个十分复杂的境地。由于事先定义了过多的对象,使得在进一步确定对象时仍具有很大的随机性和盲目性。所以,随着OOP(面向对象编程)向OOD(面向对象设计)和OOA(面向对象分析)的发展,最终形成面向对象的软件开发方法OMT(反对Modelling技术)。这是一种自底向上和自顶向下相结合的方法,而且他以对象建模为基础,从而不仅考虑了输入、输出数据结构,实际上也包含了所有对象的数据结构。所以OMT彻底实现了PAM没有实现的目标。不仅如此,OOD技术在需求分析、可维护性和可靠性这3个软件开发的关键环节和质量指标上有了实质性的突破,彻底地解决了在这些方面存在的严重问题。
UML是Booch,Objectory和OMT方法的结合,并且是这三者直接的向上兼容的后继。同时他还吸收了大量方法学家的思想,包括WirfsBrock,Ward,Cunningham,Rubin等等。这些先进的面向对象的思想统一为公共的、稳定的、表达能力强的面向对象方法提供了基础。

2.2UML面向对象的特点

作为一种标准的图形化建模语言,UML有如下几个方面的特点:
(1)UML结合了Booch方法、OMT方法和OOSE方法的概念,统一了面向对象方法的基本概念,是一个单一的通用建模语言;
(2)UML的建模能力比其他面向对象方法更强,不仅适合于一般系统的开发,更擅长于并行、分布式系统的建模;
(3)UML是一种标准的建模语言,而不是一个标准的开发过程,他完全独立于开发过程;
(4)UML提出了许多新的概念,如构造型、职责、扩展机制、模式等等。
所以,UML的出现意味着开发方法统一化、标准化的新发展,标志着软件自动化进程又迈进了一步。

2.3UML面向对象的基本内容

UML语言使用若干个视图(view)构造模型。每个视图代表系统的一个方面。UML共包括5类视图:
用例视图(Usecaseview)用于描述系统应该具有的功能集,并指出各功能的操作者,主要为用户、设计人员、开发人员和测试人员而设置。
逻辑视图用来显示系统内部的功能是如何设计的。
组件视图(Componentview)用来显示代码组件的组织方式。他描述了实现模型(implementationmodule)和他们之间的依赖关系,主要供开发者使用。
并发视图(Concurrencyview)用来显示系统的开发工作状况。供系统开发者和集成者使用。
展开视图(Deploymentview)用来显示系统的物理架构,即系统的物理展开。供开发者、集成者和测试者使用。
视图用图描述,而图用模型元素的符号表示。图中包含的元素可以有类、对象、组件、关系等,这些模型具有具体的含义并且用图形符号表示。UML图包括:类图、对象图、用例图、状态图、序列图、协作图、活动图、组件图和展开图。

3UML面向对象设计

3.1UML的应用

标准建模语言UML适用于以面向对象技术来描述任何类型的系统,而且适用于系统开发的不同阶段,从需求规格描述直至系统完成后的测试和维护。但需要注意的是,UML是一种建模语言而不是方法,这是因为UML中没有过程的概念,而过程正是方法的一个重要组成部分。UML本身独立于过程,这意味着用户在使用UML进行建模时,可以选用任何适合的过程。然而,使用UML建模仍然有着大致统一的过程框架,该框架包含了UML建模过程中的共同要素,同时又为用户选用与其所开发的工程相适合的建模技术提供了很大的自由度。

同时,UML建模过程是一个迭代递增的开发过程。使用此方法,不是在项目结束时一次性提交软件,而是分块逐次开发和提交。构造阶段由多次迭代组成,每一次迭代都包含编码、测试和集成,所得产品应满足项目需求的某一子集,或提交给用户,或纯粹是内部提交。每次迭代都包含了软件生命周期的所有阶段。同时,每次迭代都要增加一些新的功能,解决一些新的问题。以类图为例,在需求分析阶段,类图是研究领域的概念,是概念层描述;在设计阶段,类图描述类与类之间的接口,是说明层描述;而在实现阶段,类图描述软件系统中类的实现,是实现层描述。实现层描述更接近于软件实现中具体的描述,但概念层和说明层描述更易于不同领域专家之间的理解和交流。

3.2基于UML的RationalROSE面向对象设计过程

现以某金融贸易系统为例说明UML建模的具体过程。该过程主要包括:理解需求、分析、设计、实现、测试和配置。
首先进行需求分析,这是一个决定系统能否符合用户需求的关键步骤,该阶段的好坏直接影响到设计的进度以及质量。需求分析主要是定义用例,对该系统的主要功能进行描述,从而确定系统的功能需求,在这部分主要应用的是用例图,用例图要详尽地表示系统的各种关系。在该系统中各角色的关系如图1所示。

从中我们可以清楚地看出各个角色之间的关系,所以在进行系统的设计、实现时可以减少盲目性。在需求分析时,要注意领域分析以及类与对象的定义。
其次进行的是设计,设计一般分为架构设计和详细设计。这部分主要包括定义包、描述包间的相关性和基本的通信机制。注意要减少相关的二义性以及与用户的接口设计。
再进行的是实现,在这个过程中UML的优点可以得到长足的体现:运用RationalROSE提供的环境将前几步设计的图进行分析,然后可以转换成自己所熟悉的高级语言,并在高级语言中进行编辑,在高级语言的环境中我们可以看到UML把图转换成系统的程序设计的结构框架。并且,在进行该系统扩展时只需要在前两步设计的图中进行更改,从而改变程序框架,彻底改变了传统设计中更改所带来的复杂性与潜在的危险性。

在进行测试的时候同样可以运用UML,将整个系统分为不同的单元,然后将各个单元作为一个“黑盒”,运用不同的图进行“黑盒”测试。将测试后的结果再返回到设计实现中进行分析。将完整无误的软件与需求说明结合,从而可以顺利地进行配置。
可以看出:UML的图运用于整个系统设计的全过程,减少了设计盲目性,提高了设计效率。

相关推荐