UML内容介绍

来源:互联网 发布:搜狗输入 mac 编辑:程序博客网 时间:2024/05/07 08:44

UML内容介绍

 

文档编写:陆教授

 

1.         UML简史

    统一建模语言是一种可以应用于任何软件开发过程的标记法和语义语言。UML主要是由Rational Software公司和它的三位巨匠Grady Booch. JimRumbaugh和工var Jacobson开发的。这一标记法凝聚了三位设计者的精华,并因此促成了一个国际公认的标准的产生。UML使用了若干种模型图,所有模型图都可以对面向对象的软件系统进行建模。

UML梦之队的前两位成员Grady BoochJim Rumbaugh1994年开始在Rational Software公司创新新的标记法.他们分别提出了自己的设计方法,即Booch方法和对象建模技术(OMT) . 1995年,Ivar Jacobson博士加入了这一团队,也提出了自己的方法即面向对象软件工程(DOSE) o Jacobson被公认为是用例(use case)之父。而这三个方法之一的RumbaughOMTUML的贡献尤为突出。因为不管怎样,三位学者各自的方法都是为了同一目的,于是他们共同走上了一条创建统一建模语言的道路。他们根据自己的思想融合为一套标记法,并决定合力完成之。这一做法使得他们能够对对象建模进行标准[1]

 

2.         UML的基本内容

    UML是编制软件蓝图的标准化语言,用于对复杂软件系统的各种成分的可视化,说明和构造系统模型,以及建立软件文档。

    UML包含了3个方面的内容:模型的概念和表示法、语言的公共机制、对象约束语言。

(1) UML的模型的概念和表示法

    UML有三类基本的标准模型建筑块:事物、联系和图形。

    UML规定了4种事物表示法:结构性事物、行为性事物、成组性事物、注释性事物。

    结构性事物指模型的静态部分,如对象类、Use Case、接口、组件等;

    行为性事物指模型的动态部分,如交互、状态机等;

成组性事物指模型的组织部分,如包;

注释性事物指模型的解释说明部分,如注释。

UML提供的模型建筑块之间的基本联系有4:依赖、关联、泛化、实现等。依赖是指模型建筑块之间的一种语义联系,其中一个独立事物发生改变将影响另一个依赖事物的语义。关联是指模型建筑块之间的结构联系,两者存在结构性的连接。聚合是一种特殊的关联,表示结构的整体与部分的关系。泛化是指模型建筑块之间的一般与特殊的联系。实现是指模型建筑块之间的一种语义联系,其中一个规定了一组约定,另一个负责实现它们。例如接口和实现接口功能的类或组件之间的联系就是实现。

模型建筑块与联系相结合,可以构造出良好的系统模型。UML图形是模型元素集合的可视化表示。UML定义了9类图形,用于建立系统模型:类图、对象图、Use Case图、顺序图、协同图、状态图、活动图、组件图、配置图。通过绘制UML图形,可以从不同的抽象角度使系统可视化。UML提供了对各个模型建筑块进行说明的语法和语义规定。在建立模型时,可以用UML的图形表示法使系统可视化,同时用UML的说明描述系统的细节。[1]

(2)   UML语言的公共机制

    UML规定了语言的四种公共机制:说明、装饰、通用划分、扩展机制。说明:UML不只是一个图形语言,还规定了对于每一个UML图形的文字说

明的语法和语义。例如,一个类图标的背后必有一套说明,它提供关于属性、操作、行为等的描述。通常使用UML的图形表示法可视化一个系统,使用UML的说明叙述系统的细节。

 装饰:大多数的UML元素有唯一的直接的图表示法,表达该元素的最重要的特征。除此之外,还可以对该元素加上各种装饰,说明其他方面的细节特征。

例如,对于一个对象类,最基本的图形表示法是一个矩形,其中包含了类的名称、属性和操作。此外可以加上一些装饰,如可视性标记。

通用划分:UML的事物规定了两种类型的划分。一种是如类与对象的划分,类是对象的抽象,对象是类的实例。另一种是如接口与接口的实现的划分,接口声明了一个约定,实现负责执行接口的全部语义。对于大多数的UML元素都可以作这样的划分。例如,对于Use CaseUse Case实例、实现Use Case的协同,以及实现Use Case的操作和方法。

扩展机制:UML语言的扩展机制,允许UML的使用人员根据需要自定义一些构造型等语言成分,扩展UML和把UML用户化,更便于完成自己的软件系统的开发工作。UML规定可以自定义3种语言成分:构造型,标记值和约束。UML规定了许多标准的预定义的构造型、标记值和约束,但是允许自行扩充。

(3)           UML的对象约束语言

UML的对象约束语言(Object Constraint Language,OCL)是一种表达施加于模型元素的约束的语言。OCL的表达式以条件和限制的形式,附加在模型元素上。

 

3.          UML的特点

(1)统一标准。

    UML融合了当前一些流行的面向对象开发方法的主要概念和技术,成为一种面向对象的标准化的统一建模语言,结束了以往各种方法的建模语言的不一致和差别。

    UML提供了标准的面向对象的模型元素的定义和表示法,以及对模型的表示法的规定,使得对系统的建模有章可循,有标准的语言工具可用,有利于保质保量地建立起软件系统模型。

    UML己经成为工业标准化组织OMG的正式标准,OMG将负责语言标准的进一步的开发。UML在统一和标准化方面的努力,将有利于建模语言本身的发展,也有利于工业化应用。

(2)面向对象。

    UML支持面向对象技术的主要概念。UML提供了一批基本的模型元素的表示图形和方法,能简洁明了地表达面向对象的各种概念和模型元素。

(3)可视化、表示能力强大。

    UML是一种图形化语言,系统的逻辑模型或实现模型都能用UML的模型图形清晰地表示。UML不只是一堆图形符号,在每一个UML的图形表示符号背后,都有良好定义的语义。

    UML还可以处理与软件的说明和文档有关的问题,包括需求说明、体系结构、设计、源代码、项目计划、测试、原型、发布等。

    UML提供了语言的扩展机制,用户可以根据需求增加定义自己的构造型、标记值和约束等。

    UML的强大表示能力使它可以用于各种复杂类型的软件系统的建模。

(4)独立于过程。

UML是系统建模语言,独立于开发过程。虽然UMLRational统一过程配合使用,将发挥强大的效用,但是UML也可以在其他面向对象的开发过程中使用,甚至在常规的软件生命周期法中使用。

(5)容易掌握使用。

  UML的概念明确,建模表示法简洁明了,图形结构清晰,容易掌握使用。学习UML应着重学习它的三方面的主要内容:UML的基本模型元素,把这些模型元素组织在一起的规则,UML语言中的公共机制。只要具备一定的软件工程和面向对象技术的基础知识,通过运用UML建立实际问题的系统模型的实践,很快就能掌握和熟悉UML

 

4.         UML的用途

使用UML进行软件系统的分析与设计,能够加速软件开发的进程,提高代码的质量,支持变动的业务需求。UML适用于各种大小规模的软件系统项目,能促进软件复用,方便地集成已有的系统软件资源。使用UML将有助于处理软件开发中的各种风险。UML的这些特点和优点使它获得了计算机业界和越来越多的软件人员的青睐。

UML不是一个独立的软件工程方法,而是面向对象软件工程方法中的一个部分。UML只是一种标准的系统分析和设计的语言,用于系统的建模。UML适用于对各类软件系统的建模,从应用系统到计算机系统的支持软件,从一般的企业的信息管理系统到基于WEB的分布式应用系统,甚至实时系统。

UML不是程序设计语言,不能用来直接书写程序,实现系统。UML所建立的系统模型(逻辑模型和实现模型),必须转换为某个程序设计语言的源代码程序,然后经过该语言的编译系统生成可执行的软件系统。但是,用UML建立系统模型可以很好地支持软件开发的前向工程(Forward engineering)和逆向工程(Reverse engineering)[2]

 

5.         UML的图

UML的各种图为系统的不同的视建模提供了工具,为软件系统建模提供了强大的支持,并提供了很大的自由度。用户在迭代的递增式开发过程中,可以根据所开发系统的特点,在每次迭代的微过程(分析、设计、实现、测试和配置)中,灵活的选用UML所提供的各种图。

UML总共提供了9种图,这些图从不同应用层次和不同角度为软件系统从系统分析、设计直到实现提供了有力支持。在不同的阶段建立不同的模型,建模的目的也各不相同。UML9种图如下(交互图包括顺序图和协作图两种):

(1)用例图。用例模型用于需求分析阶段,它的建立是系统开发者和用户反复讨论的结果,表明了开发者和用户对需求规格定义达成的共识。首先,它描述了待开发系统的功能需求;其次,它将系统看作黑盒,从外部参与者的角度来理解系统;另外,它驱动了需求分析之后各阶段的开发工作,不仅在开发过程中保证了系统所有功能的实现,而且被用于验证和检测所开发的系统是否满足系统需求,从而影响到开发工作的各个阶段和UML的各个模型。在UML中,一个用例模型由若干个用例图描述,用例图的主要包括下述3部分:参与者,用例,关系。它描述了系统的静态用例视,在组织系统行为并并为之建模时,例图的使用尤其重要。参与者:是指使用系统的用尸或者与其交互的其他系统。用例:是一组事务的集合,系统在参与者触发下执行该组事务以完成某项特定的任务。

(2)类图。类图表达一组对象类和它们的联系.在类图中,一方面描述各个类本身的组成,即类的属性,操作和对象类的约束;另一方面描述系统中类之间的各种静态的联系。类图是一种静态结构图,它描述了类、接口、协作以及它们之间的关系。类图是在面向对象系统建模中最常用的图,描述了系统的静态设计视或静态过程视。

(3)对象图。对象图表示一组对象和它们之间的联系。对象图是一个系统的详细状态在某一时刻的快照。对象图实质上是对象类图的实例,或者是交互图的静态部分的实例,对象图有时也称为实例图。

(4)交互图。顺序图和协作图都被称为交互图,这两个图被用于为系统的动态方面建模。交互图描述了交互作用,由对象、对象间的关系组成,并包含在对象间传递的消息。顺序图和协作图以不同的方式表达了类似的信息,顺序图描述了消息的时间顺序,适合于描述实时系统和复杂的脚本;协作图描述了对象间的关系。顺序图是强调消息的时间顺序的交互作用图,图形上,顺序图是一个表,对象沿着X轴排列,消息按照时间递增沿着Y轴排序。协作图是强调发送和接收消息的对象的组织结构的交互图。交互图描述了系统的动态变化。

(5)状态图。状态图描述了一个状态,由状态、跃迁、事件和活动组成。状态图描述了系统的动态视。在为接口、类或协作的行为建模时,状态图尤其重要,状态图强调了对象的按事件排序的行为,在对实时系统或响应系统建模时,尤其有用。

(6)活动图。活动图是一种特殊的状态图,描述了系统中从活动到活动的控制流,活动图描述了系统的动态视。活动图在为系统功能建模时尤其有用,强调了对象间的控制流。

(7)组件图。组件图描述了组件间的组织结构和依赖关系。组件图描述了系统的静态实现视。一般来说,软件组件就是一个实际文件,可以是源代码文件、二进制文件或可执行文件等。可以用来说明编译、链接或执行时组件之间的依赖关系。组件图与类图有关,因为一个组件可以映射到一个或多个类、接口或协作。

(8)配置图。配置图描述了运行处理节点和运行其上的组件的配置。配置图是用来为面向对象系统的物理方面建模的两种图之一。它被用来模拟系统的静态配置。静态配置主要描述了构成物理系统的组成部分的分布和安装。在极大程序上,配置图模拟了运行系统的硬件拓扑。本质上,配置图是着眼于系统的节点的类图,它为系统中物理节点、节点之间的关系的静态方面建立了可视化的模型,并规定了构造的细节。配置图主要包括节点、依赖和关联关系。配置图可以含有组件,每个组件必须存在于某个节点上。[2]

所用到的UML开发工具:Microsoft Office Visio 2003

工具特点:同所有的Microsoft Office 系列产品一样的风格,适合初学者,绘图方便。引导性强。

 

 

参考书籍:

[1] 张龙祥. UML与系统分析设计.          北京.人民邮电出版社,2001.

[2] 冀振燕. UML系统分析设计与应用案例.  北京.人民邮电出版社,2003.