第2章UML语言体系.doc_第1页
第2章UML语言体系.doc_第2页
第2章UML语言体系.doc_第3页
第2章UML语言体系.doc_第4页
第2章UML语言体系.doc_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第2章 UML语言体系2.1 UML语言组成我们知道,UML语言是一门设计语言,这种语言由一些构造元素、规则和公共机制构成。构造元素描述事物的基本成分,这些基本成分按某种规则关联在一起,组成图;同时,这些基本元素都遵循通用规则,即公共机制。下面是UML语言的组成结构,如图2-1所示。构造元素规则公共机制基本元素关系图详述修饰通用划分扩展机制命名范围可见性完整性执行UML图2-1 UML语言体系1.构造元素构造元素包括基本元素、关系和图。这3种元素代表了软件系统或业务系统中的某个事物或事物间的关系。2.规则构造元素应该具有命名、范围、可见性、完整性和执行等属性。规则是对软件系统或业务系统中的某些事物的约束或规定。3.公共机制公共机制包括详述、修饰、通用划分、扩展机制。公共机制指适用于软件系统或业务系统中每个事物的方法或规则。2.2 基本元素我们把基本元素分为4类:结构元素、行为元素、分组元素、注释元素。2.2.1 结构元素结构元素定义了业务或软件系统中的某个物理元素,描述了事物的静态特征。结构元素常用名词表示。结构元素有7种,它们是:类、对象、接口、主动类、用例、协作、构件、节点。1.类和对象类是对具有相同属性、相同操作、相同关系的一组对象的共同特征的抽象,类是对象的模板,对象是类的一个实例。(1)类的表示在UML中,类是用一个矩形表示的,它包含三个区域,最上面是类名、中间是类的属性、最下面是类的方法 。例如,描述People(类)用图形表示,如图2-2所示。假设,People类包含的属性和行为如下:类名:People, 在第一栏。Peoplenameage字段名:name、age ,字段名(也称属性)放在第二栏。speak()breathe()fly()方法名:speak()、breathe()、fly(),方法在第三栏。注意:行为、服务、方法可以等价理解;属性、域、字段可以等价理解。 图2-2 People类表示(2)对象的表示对象是用一个矩形表示,在矩形框中,不再写出属性名和方法名,只是在矩形框中用“对象名:类名”的格式表示一个对象。例如,属于类People中的对象李自成的图形表示如图2-3所示。李自成:People图2-3 对象”李自成”的表示方法2.接口因为,外界对类(或构件)的使用,是通过类(或构件)的方法来实现的,因此,我们把类或构件的方法集合称为接口。接口向外界声明了它能提供的服务。接口分为供给接口和需求接口两种,供给接口只能向其它类(或构件)提供服务,需求接口表示类(或构件)使用其它类(或构件)提供的服务。供给接口需求接口两种接口的表示方法如图2-4所示图2-4 接口的表示3.主动类主动类是指该类创建的对象至少拥有一个进程或线程,通过进程或线程控制任务的执行。 主动类的表示与一般类相似,只是最外框是粗线描述而已。如主动类”Radio”的表示如图2-5所示。图2-5 主动类的表示4.用例在系统中,为完成某个任务而执行的一序列动作,以实现某种功能,我们把这些动作的集合称为用例实例。用例是对一组用例实例共同特征的描述,用例与用例实例的关系,正如类与对象的关系。用例是著名的大师Ivar Jacobson首先提出的,现已经成为了面向对象软件开发中一个需求分析的最常用工具 。用例是用一个实线椭圆来表示的,在椭圆中写入用例名称。如,用例”用户登录”表示如图2-6用户登录图2-6 用户登录5.协作协作是指有意义的交互,即,一组对象为了完成某个任务,相互间进行的交互。用例的实现:实现某个用例的一组对象之间的交互,即,把一个用例表示为多个对象间的交互(协作)。从本质上说,协作就是用例的实现。用一个带2个分栏的虚线椭圆表示协作。如,用例”销售房产”,用协作” 销售房产”表示时,其对应的表示法如图2-7图2-7 协作”销售房产”6.构件构件也称组件:系统设计中,一个相对独立的软件部件,它把功能实现部分隐藏在内部,对外声明了一组接口(包括供给接口和需求接口)。因此,两个具有相同接口的构件可以相互替换 。构件是比”类”更大的软件部件,例如一个COM组件、一个DLL文件、一个JavaBeans、一个执行文件等等。为了更好地对在UML模型中对它们进行表示,就引入了构件(也译为组件) 构件通常采用带有2个小方框的矩型表示。如图2-8图2-8 构件的表示7.节点节点是指硬件系统中的物理部件,它通常具有存储空间或处理能力 。如,PC机、打印机、服务器等都是节点。在UML中,用一个立方体表示一个节点。如,节点”server”的表示方法如图2-9所示。Server图2-9 节点server的表示2.2.2 行为元素行为元素是用来描述业务系统或软件系统中,事物之间的交互或事物的状态变化。行为元素描述了事物的动态特征。行为元素用动词表示。行为元素有2种:交互和状态机。1.交互交互(interaction)是为了完成某个任务的对象之间相互作用,这种作用是通过信息的发送和接受来完成的。 交互的表示法很简单,用一条有向直线来表示对象间的交互,并在有向直线上面标有消息名称。如图2-10所示。消息名称图2-10 交互2.状态机状态机(state machine)在对象生命周期内,在事件驱动下,对象从一种状态迁移到另一状态的状态序列,这些状态序列构成了状态机,即,一个状态机由多个状态组成。在UML模型中,将状态表示为一个圆角矩形,并在矩形内标识状态名称。 如,”等待”表示如图2-11图2-11 等待状态2.2.3 分组元素对于一个中大型的软件系统而言,通常会包含大量的类、接口、交互,因此也就会存在大量的结构元素、行为元素,为了能有效地对这些元素进行分类和管理,就需要对其进行分组。在UML中,提供了“包(Package)”来实现这一目标 。表示“包(Package)”的图形符号,与windows中表示文件夹的图符很相似。包的作用与文件夹的作用也相似。”数据访问”包的表示法如图2-12所示。数据访问图2-12”数据访问”包2.2.4 注释元素在模型中,用来对其它元素的解释部分(文本解释)称为注释。注释元素是用一个右上角折起来的矩形,解释的文字就写在矩形中。注释符号如图2-13。图2-13 注释符号2.3 关系元素前面介绍了表示事物的基本元素,本节介绍反映事物之间关系的元素。在UML中,共定义了24种关系,如表2-1所示。表2-1 UML元素关系种类元素关系种类关系变种UML表示法关键字或符号元素关系种类关系变种UML表示法关键字或符号抽象派生依赖关系derive导入私有依赖关系access显现manifest公有import实现实现关系虚线加空心三角信息流flow精化依赖关系refine包含并merge跟踪trace许可permit关联关联关系实线协议符合未指定绑定依赖关系bind(参数表)替换依赖关系substitu-te部署deploy使用调用call扩展Extendextend (扩展点)创建create扩展extension扩展关系实线加实心三角实例化instanti-ate泛化泛化关系实线加空间三角职责responsi-bility包含依赖关系include发送send这24种关系在建模表示时可以归为关联关系、实现关系、泛化关系、扩展关系和依赖关系五种,下面介绍这些关系的表示法。1.关联关系关联(Association)表示两个类之间存在某种语义上的联系,这种语义是人们赋予事物的联系。关联关系提供了通信的路径,它是所有关系中最通用、语义最弱的关系。在关联关系中,有两种比较特殊的关系,它们是聚合关系和组合关系。(1)关联关系的表示关联关系是聚合关系和组合关系的统称,是比较抽象的关系;聚合关系和组合关系是更具体的关系。在UML中,使用一条实线来表示关联关系 。如图2-14所示。图2-14 关联关系(2)聚合关系聚合(Aggregation)是一种特殊形式的关联。聚合表示类之间的关系是整体与部分的关系 。聚合关系是一种松散的对象间关系计算机和它的外围设备就是一例。一台计算机和它的外设之间只是很松散地结合在一起。这些外设可有可无,可以与其他计算机共享,而且没有任何意义表明它由一台特定的计算机所“拥有”这就是聚合。聚合的表示如图2-15所示。图案2-15中,棱形端表示事物的整体部分,另一端表示事物的部分。如计算机就是整体部分,外设就是部分。聚合组合图2-15(3)组合关系如果发现“部分”类的存在,是完全依赖于“整体”类的,那么就应该使用“组合”关系来描述 。组合关系是一种非常强的对象间关系,例如,树和它的树叶之间的关系。树是和它的叶子紧密联系在一起,叶子完全属于这树,它们不能被其它的树所分享,并且当树死掉,叶子也会随之死去这就是组合,组合是一种强的聚合关系。组合的表示如图2-15所示。2.关系泛化关系描述了从特殊事物到一般事物之间的关系,也就是子类到父类之间的关系。从父类到子类的关系,则是特化关系。图2-16泛化关系3.关系实现关系是用来规定接口和实现接口的类或组件之间的关系。接口是操作的集合,这些操作用于规定类或组件提供的服务。实现关系是从类指向接口的带空心箭头的虚线表示。如图2-17所示。类接口图2-17实现关系4.关系有两个元素X、Y,如果修改元素X的定义可能会引起对另一个元素Y的定义的修改,则称元素Y依赖(Dependency)于元素X。 图2-18依赖关系如果两个元素是类,则类间的依赖现象有多种,如:一个类向另一个类发消息:一个类是另一个类的数据成员:一个类是另一个类的某个方法的参数。本质上说,关联和泛化以及实现关系都属于依赖关系的一种,但是它们有更特别的语义,因此定义了其自己的名字和详细的语义。5.关系扩展表示把一个构造型附加到一个元类上,使得元类的定义中包括这个构造型。它是一种UML提供的底层的扩展机制,与用例之间的扩展(Extend)关系是不同的。在UML中,用一个带箭头的实线表示,如图2-19所示。由于它的应用并不广泛,因此只需有一个了解即可。图2-19 扩展关系2.4 图和视图基本元素描述了事物,关系描述了事物间的关系。在UML中,通过关系把多个事物连接在一起,构成了图。图可视化地描绘了系统某一方面的特征。在UML 2.0中共定义了13种图,比UML 1.0新增了3种。表2-2列出了这13种图的功能。表2-2 UML2.0的图型图名功能备注类图描述类、类的特性以及类之间的关系UML 1原有对象图描述一个时间点上系统中各个对象的一个快照UML 1非正式图复合结构图描述类的运行时刻的分解UML 2.0新增构件图描述构件的结构与连接UML 1原有部署图描述在各个节点上的部署UML 1原有包图描述编译时的层次结构UML中非正式图用例图描述用户与系统如何交互UML 1原有活动图描述过程行为与并行行为UML 1原有状态机图描述事件如何改变对象生命周期UML 1原有顺序图描述对象之间的交互,重点在强调顺序UML 1原有通信图描述对象之间的交互,重点在于连接UML 1中的协作图定时图描述对象之间的交互,重点在于定时UML 2.0 新增交互概观图是一种顺序图与活动图的混合UML 2.0新增UML的作者们并没有把图作为UML的主要部分,因此各种图形并不是精确定义的,往往可以将一种图形中的成分合法地绘制到另外一种图形中。在UML参与手册第2版中,将UML图划分为四大领域9种视图,如表2-3所示。表2-3 UML图和视图领域视图图结构静态视图类图设计视图复合结构图、协作图、构件图用例视图用例图动态状态视图状态机图活动视图活动图交互视图顺序图、通信图物理部署视图部署图模型管理模型管理视图包图特性描述包图一个图只能反映系统中某个侧面和特征,多个图结合在一起可以反映系统的某些侧面和多个特征。我们把能反映系统某些侧面和特征的多个图的集合称为视图。其中,结构领域的视图和图,描述了系统中的结构成员及其相互关系;动态领域的视图和图,描述了系统随时间变化的行为;物理领域的视图和图,描述了系统的计算资源和部署在这些资源上的系统工件;模型管理领域的视图和图,说明了模型自身的分层组织结构。从使用的角度来看,将UML的13种图分为结构模型(也称为静态模型)和行为模型(也称为动态模型)两大类,但这里讲的结构、行为其含义与前面所说的是有一定区别的:前者是从定义角度,后者则是从使用角度。分类如图2-20所示。图2-20 从使用的角度对UML图分类25 规则在UML中,基本元素在使用时,应该遵守一序列规则,其中,最常用的3种语义规则如下:1命名:也就是为事物、关系和图起名字。和任何语言一样,名字都是一个标识符。2范围:指基本元素起作用的范围,相当于程序设计语言中的变量的”作用域”。 3可见性:我们知道,UML元素可能属于一个类或包中,因此,所有元素都具有可见性这一属性。在UML中共定义了4种可见性,如表2-4所示。表2-4UML的可见性可见性规则标准表示法public任一元素,若能访问包容器,就可以访问它+protected只有包容器中的元素或包容器的后代才能够看到它#private只有包容器中的元素才能够看得到它-package只有声明在同一个包中的元素才能够看到该元素2.6 公共机制在UML语言中,定义了4种公共机制:规格描述、修饰、通用划分、扩展机制。2.6.1 规格描述在UML语言中,每个元素都用一个图形符号表示,同时,对图形符号的语义可以用详细的文字进行描述,这种对图形符号的文字描述称为规格描述,也称为详述。如图2-21所示,对每个用例来说,既有图形描述,也有对应的文字描述,即,详细描述。图 2-21 图形与规格描述2.6.2 修饰UML中,基本元素的符号对事物最重要的的方面提供了可视化表示,而要把元素的细节方面表示出来,就必须通过对元素进行修饰。例如,用具体的可视性的符号修饰元素、用斜体字表示抽象类,这些都是对元素细节的描述。2.6.3 通用划分UML通用划分,就是对UML元素进行分类。有2种分类方法:类与实例、接口与实现。 1. 类与对象的划分:类是一种抽象,一个模型,对象是类的实例。 2. 接口与实现的分离:接口是一种声明、是一个合同、一个计划;实现则是完成一个计划、一个合同、执行声明。在UML中,用例就是一种对功能的声明和定义,是对事物功能的抽象描述;而协作则是实现用例声明的功能实现;操作名是声明服务的,而方法体则是实现服务的,因此,用例与协作、操作名与方法体之间就是接口与实现的关系。2.6.4 扩展机制由于,UML中的基本元素不能表示所有事物,因此,我们通过一些方法对基本元素进行扩展,主要的扩展机制有:构造型、标记值和约束。1.构造型构造型就是构造一种新的UML元素,例如,我们构造一个元素exception,用该元素来表示软件的异常。表示构造型的符号有三种,图2-22就是用3种不同的方式来表示”异常”这种构造型。假设Overflow是类名称。exceptionOverflow构造型标准表示法exceptionOverflow小图标表示法新图标表示法图2-22 构造型的三种表示方法第一种表示法:创建一种新的UML元素符号的方法是,用符号把构造名字括起来,这是一种标准表示方法。如,exception就是新构造的元素。第二种表示方法:用符号把构造名字括起来,并为元素增加一个图标。第三种表示方法:直接用一个图标表示新的构造元素。2.标记值标记值是用来为事物(元素)添加新特征的。标记值的表示方法是用形如“标记信息”的字符串表示。标记信息通常由名称、分隔符和值组成。标记值是对元素属性的表示,因此,标记值放在UML元素中的,如,name=”邓小平”。3.约束约束是用来标识元素之间约束条件,是用来增加新的语义或改变已存在规则的一种机制(自由文本和OCL两种表示法)。约束的表示法和标记值法类似,都是使用花括号括起来的串来表示,不过,不能够把它放在元素中,而是放在相关的元素附近。2.7 用视图表示系统体系结构在RUP中,从5个角度对系统进行建模,5个视图分别是用例视图、设计视图、组件视图、并发视图、部署视图。即,从5个角度来描述系统。1.用例视图描述了系统的功能和参与者,由多个用例图组成,是主要的需求模型。2.设计视图又称逻辑视图,描述了软件系统的组成、结构、行为,是软件系统的蓝图,该种视图常由类图、交互图、状态图和活动图组成。3.组件视图描述了软件系统的组成成分,即,软件发布时,系统包含的软件构件和文件。这种视图常用构件图、交互图、状态图、活动图描述。4.并发视图描述系统各部分之间的同步和异步执行情况。常用状态图和协作图来描述。5.部署视图描述了软件系统的各部分,如何部署到各硬件节点上。常用部署图、交互图、状态图、活动图描述。下面是描述软件系统的5种视图,图 2-23图 2-23 软件系统小结本章一开始,指出了UML是由构造块、规则和公共机制三个方面所组成的,然后对这三个方面展开进一步说明。首先,阐述了事物构造块、关系构造块,它们是UML建模元素的主体。其中事物构造块又包括结构事物、行为事物、分组事物、和注释事物四种类型;关系构造块详细地描述了关联、泛化

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论