Page 1 ?
UML及软件建模
主讲人, 李 唯
clx7000@163.com
Page 2 ?
第十二章 UML的总结
UML简介
UML的构成
其他
Page 3 ?
UML( Unified Modeling Language,统一建模语言)
是一种可视化的建模语言,它能够让系统构造者用标准的
、易于理解的方式建立起能够表达他们设计思想的系统
蓝图,并且提供一种机制,以便于不同的人之间有效的共
享和交流设计成果。
(1)UML是一种语言
(2) UML是一种可视化的语言
(3) UML是一种可以用于详细描述的语言
(4) UML是一种构造语言
1,UML简介
Page 4 ?
1.1,UML的用处
? UML不是一门程序设计语言。但可以使用代码生成器工具
将 UML模型转换为多种程序设计语言代码,或使用反向生
成器工具将程序源代码转换为 UML。 UML不是一种可用
于定理证明的高度形式化的语言,这样的语言有很多种,
但它们通用性较差,不易理解和使用。
UML是一种通用建模语言。对于一些专门领域,例如用户
图形界面( GUI)设计、超大规模集成电路( VLSI)设计
、基于规则的人工智能领域,使用专门的语言和工具可能
会更适合些。
UML是一种离散的建模语言,不适合对诸如工程和物理学
领域中的连续系统建模。它是一个综合的通用建模语言,
适合对诸如由计算机软件、固件或数字逻辑构成的离散系
统建模。
Page 5 ?
1.2,UML的 核心组员
Page 6 ?
提出 UML建议或进行 UML标准修订工作的核心组员有下列人员:
? 数据存取公司,Tom Digre
? DHR 技术公司,Ed Seidewitz
? HP 公司,Martin Griss
? IBM 公司,Steve Brodsky,Steve Cook,Jos Warmer
? I— Lgix 公司,Eran Gery,David Harel
? ICON Computing 公司,Desmond D'Souza
? IntelliCorp and James Martin 公司,Conrad Bock,James Odell
? MCI 系统企业,Cris Kobryn,Joaquin Miller
? ObjecTime 公司,John Hogg,Bran Selic
? Oracle 公司,Guus Ramackers
? 铂技术公司,Dilhar Desilva
? Rational 软件公司,Grady Booch,Ed Eykholt,Ivar Jacobson,Gunnar Overgaard,Karin Palmkvist,James Rumbaugh
? SAP 公司,Oliver Wiegert
? SOFTEAM,Philippe Desfray
? Sterling 软件公司,John Cheesman,Keith Short
? Taskon 公司,Trygve Reenskaug
Page 7 ?
1.3,UML的历史
Page 8 ?
2,UML的构成
? 作为一种建模语言,UML的定义包括 UML语义和 UML表
示法两个部分
? UML语义 描述基于 UML的精确元模型定义。元模型
为 UML的所有元素在语法和语义上提供了简单、一致
、通用的定义性说明,使开发者能在语义上取得一致,消
除了因人而异的最佳表达方法所造成的影响。此外
UML还支持对元模型的扩展定义。
? UML表示法 定义 UML符号的表示法,为开发者或开发
工具使用这些图形符号和文本语法为系统建模提供了标
准。这些图形符号和文字所表达的是应用级的模型,在语
义上它是 UML元模型的实例。
Page 9 ?
2.1,UML中的四种事物
1)结构事物 --- 类、接口、协作(它是一个交互,它是由一组共同工作以
提供某协作行为的角色和其它元素构成的一个群体。)、用例、主动类(至少
拥有一个进程或者线程,其元素的行为可以和其它元素的行为并发)、构件(
如 COM+和 Java Bean)、节点。
2)行为事物 --- 交互、状态 (描述了一个对象或者一个交互在生命期内
响应事件所经历的状态序列)。
3)分组事物 --- 包 。
4) 辅助 事物 --- 注解
Page 10 ?
2.2,UML中的四种关系
1)依赖 (Dependency)--- 两个事物间的语义关系
2)关联 (Association)--- 是一种结构关系,如聚合
3)泛化 (Generalization)--- 一般 /特殊关系
4)实现 (Realization) --- 用在两种地方:接口和实现他们之间
的类和构件之间;用例和实现他们的协作之间。
Page 11 ?
2.3 UML的视图 (View)和图 (
Diagram)
标准建模语言 UML的重要内容可以由下列五类视图 (共 9
种图形 )来定义,
UML中的各种组件和概念之间没有明显的划分界限,
但为方便起见,我们用视图来划分这些概念和组件。
视图只是表达系统某一方面特征的 UML建模组件的子
集。视图的划分带有一定的随意性,但我们希望这种
看法仅仅是直觉上的。在每一类视图中使用一种或两
种特定的图来可视化地表示视图中的各种概念。
Page 12 ?
·2.3.1,第一类是用例 视图 (Use case
View),强调 从用户角度 看到的或需要的 系统功
能,并指出各功能的操作者。 包括用例图。
用例图 用来描述系统功能
Page 13 ?
( 1) 用例图示例
用例
参与者 参与者
用例分析的一个好处是它能够展现出系统和外部世界之间的边界。参与
者是典型的系统外部实体,而用例是典型的属于系统内部。系统的边界
用一个矩形来代表,里面写上系统的名字。系统的用例装入矩形之内。
系统
用例的发起者在用例图的左侧,接受者在用例图的右侧。参与者的名字
放在参与者图标的下方。关联线连接参与者和用例并且表示参与者与用
例之间有通信关系。关联线是实线,和类之间的关联线类似。
Page 14 ?
( 2)用例图的建立步骤:
1) 找出系统外部的活动者和外部系统,确定系统的边界和范围。
2) 确定每一个活动者所希望的系统行为。
3) 把这些系统行为命名为用例。
4) 把一些公共的系统行为分解为一批新的用例,供其它的用例引用
。把一些变更的行为分解为扩展用例。
5) 绘制用例图。
6) 区分主业务流和例外情况的事件流。可以把表达例外的情况的事
件流的用例图画成一个单独的子用例图。
7) 细化用例图,解决用例间的重复与冲入问题,简化用例中的对话
序列,用例图可以有不同的层次,高层次系统的用例可以分解为
若干个下属子系统中的子用例。
Page 15 ?
其中 类图 描述系统中类的静态结构。不仅定义系统中的类,表示
类之间的联系如关联、依赖、聚合等,也包括类的内部结构 (类的
属性和操作 )。类图描述的是一种静态关系,在系统的整个生命周
期都是有效的。
对象图 是类图的实例,几乎使用与类图完全相同的标识。他们的
不同点在于对象图显示类的多个对象实例,而不是实际的类。
一个对象图是类图的一个实例。由于对象存在生命周期,因此对
象图只能在系统某一时间段存在。
包 由包或类组成,表示包与包之间的关系。包图用于描述系统的
分层结构。
3.2.2, 第二类是静态 视图 (Static View),展现系统的
静态或结构组成及特征。 包括类图、对象图和包
图。
Page 16 ?
( 1)类图示例
WashingMachine
brandName
modeName
serialNumber
addClothes(C,String)
removeClothes(C,string)
turnON(),Boolean
在 UML中一个矩形表示一个类的图标。
属性 是类的一个特性,它描叙了类的对象(也就是类的实例)所具有的一
系列特性值。一个类可以具有零个到多个属性。属性名列表放在类名之下,
并且和类名之间用分隔号隔开 。
操作 是类能够做的事情或者你(或者另一个类)能对类做的事情。
操作名列表要放在属性名列表之下,两者之间用分隔线隔开
Page 17 ?
( 2)对象图示例
类的属性在该类的每个对象中都有具体值。
对象名首写字母小写,后面根一个冒号,冒号后面是该对象
所属的类名,并且整个名字要带下划线。
myWasher:WashingMachine
brandName=“海尔”
modeName=“小神童”
serialNumber=,GL0214”
Page 18 ?
1〉 研究分析问题领域,确定系统的需求。
2〉 发现对象和类,明确他们的含义和责任,确定属性和操作。
3〉 发现类之间的静态联系。着重分析找出类之间的一般和特殊关系,部分
与整体关系,研究类的继承性和多态性,把类之间的静态联系用关联、泛化、
聚合、组合、依赖等联系表达出来,虽然对象类图表达的是系统的静态结构特
征,但是应当把对系统的静态分析与动态分析结合起来,更能准确地了解系统
的静态结构特征。
4〉 设计类与联系。调整和细化已得到的对象类和类之间的联系,解决诸如命名
冲突、功能重复等问题。
5〉 绘制对象类图并编制相应的说明。上述做法是直接从领域分析抽取对象和类
开始的,这是常规的面向对象的系统分析与设计的做法。 Rational统一过程
主张采用用例驱动的系统分析与设计方法。从业务领域的分析中先抽取活动者
和用例,建立业务模型。业务模型包括业务用例模型、设计模型、实现模型和
测试模型。
( 3)对象类图的建立步骤
Page 19 ?
( 4)包图示例
包用附有标签的矩形表示
包图名
Page 20 ?
( 5)包图的建立步骤
1〉 分析系统模型元素(通常是类),把概念上或语义上相近的模型元素
纳入一个包。注意可以从类的功能的相关性来确定纳入包中的类。以下
几点可作为分析对象类的功能相关性的参考
( 1)如果一个类的行为和 /或结构的变更要求另一个相应的变更,则这
两个类是功能相关的。
( 2)如果删除一个类后,另一个类便变成是多余的,则这连个类是功
能相关的,这说明该剩余的类只为那个被删除的类所使用,他们之间有
依赖关系。
( 3)如果两个类之间大量的频繁交互或通信,则这两个类是功能相关
的。
( 4)如果两个类之间有一般 /特殊关系,则这两个类是功能相关的。
( 5)如果一个类激发创建另一个类的对象,则这两个类是功能相关的。
( 6)如果两个类不涉及统一个外部活动着,则这两个类不应放在同一
个包中。
( 7)一个包应当具有高内聚性,包中的类应该是功能相关的。
Page 21 ?
2〉 对于每一个包,标出其模型元素的可视性:公共
、保护或私有。
3〉 确定包与包之间的依赖关系,特别是输入依赖。
4〉 确定包与包之间的泛化关系,确定包元素的多态
性和重载。
5〉 绘制包图。
Page 22 ?
·2.2.3、第三类是行为视图 (Behavior
View),描述系统的动态模型和组成对象间
的交互关系。包括状态图和活动图
? 状态图 描述类的对象所有可能的状态以及事件发生时
状态的转移条件。通常,状态图是对类图的补充。在实用上并
不需要为所有的类画状态图,仅为那些有多个状态其行为受外
界环境的影响并且发生改变的类画状态图。
? 活动图 描述满足用例要求所要进行的活动以及活动间的
约束关系,有利于识别并行活动。
Page 23 ?
Initialization
状态用具有圆形拐角的矩形表示,状态间带箭头的实线代表状
态的迁移,箭头指向目标状态。
图中的实心圆代表状态转移的起点,带圆圈的实心圆代表终
点。
Canceled
(1)状态图示例
Page 24 ?
1〉 确定状态机的上下文,它可以是一个类、子系统或整个系统。
2〉 选择初始状态和终结状态。
3〉 发现对象的各种状态。注意应当仔细找出对问题有意义的对象状态属
性,这些属性具有少量的值,且该属性的值的转换受限制。状态属性值
的组合,结合行为有关的事件和动作,就可以确定具有特定的行为特征
的状态。
4〉 确定状态可能发生的装移。注意从一个状态可能转移到哪些状态,对
象的哪些行为可引起状态的转移并找出触发状态转移的事件。
5〉 把必要的动作加到状态或转移上。
6〉 要超状态、子状态、分支、历史状态等概念组织和简化一个复杂的状
态机。
7〉 分析状态的并发和同步情况。
8〉 绘制状态图。
9〉 确认每一个状态在某个时间组合之下都是可到达的。
(2)状态图的建立步骤
Page 25 ?
(3) 活动图示例
活动状态表示成带有圆形边线的矩形,它含有活动的描述(普
通的状态盒为直边圆角)。简单的完成转换用箭头表示。和状
态图相似,活动图也有起点和终点符号,表示法和状态图一样
。
活动 1 活动 2● ●
Page 26 ?
1〉 找出负责实现工作流的业务对象。这些对象可以是现实业务领域中的
实体,也可以是一种抽象的概念或事物。为每一个重要的业务对象建立一条泳道。
2〉 确定工作流的初始状态和终结状态,明确工作流的边界。
3〉 从工作流的初始状态开始,找出随时间而发生的活动和动作,把他们表示成活动状态或动作状态。
4〉 对于复杂的动作或多次重复出现的一组动作,可以把他们组成一个活动状态,并且用另外一个活动图来展开表示。
5〉 给出连接活动和动作的转移(动作流)。首先处理顺序动作流,然后处理条件分支。最后处理分劈和接合。
6〉 在活动图中给出与工作流有关的重要对象,并用虚箭线把他们与活动状态或动作状态相连接。
(5) 活动图的建立步骤
Page 27 ?
2.2.4,第四类是交互图 (Interactive View),描
述对象间的交互关系。 包括顺序图和协作图
顺序图 显示对象之间的动态合作关系,它强调对象之间
消息发 送的顺序,同时显示对象之间的交互 ;
协作图 描述对象间的协作关系,协作图跟顺序图相似,显示对
象间的动态合作关系。除显示信息交换外,协作图还显示对
象以及它们之间的关系。
如果强调时间和顺序,则使用顺序图 ;如果强调上下级关系,则
选择协作图。
Page 28 ?
( 1)顺序图示例
Page 29 ?
1〉 找出参与交互的对象角色,把他们横向排列在顺序图的顶
部,最重要的对象安置在最左边,交互密切的对象尽可能相
邻。在交互中创建的对象在垂直方向应安置在其被创建的时
间点处。
2〉 对每一个对象设置一条垂直的向下的生命线。
3〉 从初始化交互的信息开始,自顶向下在对象的生命线之间
安置信息。注意用箭头的形式区别同步消息和异步消息。根
据顺序图是属于说明层还是属于实例层,给出消息标签的内
容,以及必要的构造型与约束。
4〉 在生命线上绘出对象的激活期,以及对象创建或销毁的构
造型和标记。
5〉 更具消息之间的关系,确定循环结构及循环参数和出口条
件。
( 2)顺序图的建立步骤
Page 30 ?
:对象名 2
协作图是对象的扩展,协作图除了展示出对象之间的关联,还显示
出对象之间的消息传递。通常在协作图中省略掉关联的名字。
关联线附近的箭头线表示对象之间传递的消息,箭头指向消息接收
对象。消息名称和消息序号附在箭头线附近。消息的一般含义是触
发接收消息的对象执行它的一个操作。在协作图中,在消息名前面
加上消息的序号,它代表该消息在消息序列中的顺序。消息名和序
号之间用冒号隔开。
:对象名 1
:对象名 3
(3)协作图示例
Page 31 ?
( 4)协作图的建立步骤
1〉 找出参与交互的对象角色,把他们作为图形的节点置在协作图中。最重
要的对象安置在图的中央,与他有直接交互的对象安置在邻近。
2〉 设置对象的初始性质。
3〉 说明对象之间的链接。首先给出对象之间的关联连接,然后给出其它连
接,并且给出必要的装饰,如构造型, global》,local,等。
4〉 从初始化交互的消息开始,在链接上安置相应的消息,给出消息的序号
。注意用箭头的形式区别同步消息和异步消息。根据顺序图是属于说明层
还是属于实例层,给出消息标签的内容,以及必要的构造型和约束。
5〉 处理一些特殊情况,如循环、自调用、回调、多对象等。
Page 32 ?
·2.2.5,第五类是实现视图 ( Implementation
VIew)。包括构件图和部署图
? 构件图 描述代码部件的物理结构及各部件之间的依赖
关系。 一个部件可能是一个资源代码部件、一个二进制部件
或一个可执行部件。它包含逻辑类或实现类的有关信息。部
件图有助于分析和理解部件之间的相互影响程度。
? 部署图 定义系统中软硬件的物理体系结构。它可以显示
实际的计算机和设备 (用节点表示 )以及它们之间的连接关系
也可显示连接的类型及部件之间的依赖性。 在节点内部,放
置可执行部件和对象以显示节点跟可执行软件单元的对应关
系。
Page 33 ?
构件用一边有两个小矩形的一个长方形表示,它可以用实线与代表构件
接口的圆圈相连 。
构件图表示了构件之间的依赖关系。每个构件实现(支持)一些接口,
并使用另一些接口。如果构件间的依赖关系与接口有关,那么构件可以
被具有同样接口的其他构件替代。
( 1)构件图示例
Page 34 ?
( 2)构件图的建立步骤
1〉确定 构件。首先要分解系统,考虑有关系统的组成管理、
软件的重用核物理节点的配置等因素,把关系密切的可执行程
序和对象库分别归入组件,找出相应的对象类、接口等模型元
素。
2〉对 构件加上必要的构造型。可以使用 uml的标准构造型《
executable》、,library》、,table》、,file》、《
document》,或自定义新的构造型,说明组件的性质。
3〉确定 构件之间的联系。最常见的构件之间的联系是通过接
口依赖。一个构件使用某个接口,另一个构件实现该接口。
4〉必要时把 构件组织成包。构件和对象、协作等模型元素一
样可以组织成包。
5〉绘制 构件图。
Page 35 ?
节点用带有节点名称的立方体表示,节点间的关联代表通信路径。关
联有用来辨别不同路径的构造型。节点也有泛化关系。
( 3)部署图示例
Page 36 ?
1〉 确定节点。注意:标示系统中的硬件设备,包括大型主机、
服务器、前端机、网络设备、输入 /输出设备等。一个处理机是一
个节点,它具有处理功能,能够执行一个组件;一个设备也是一
个节点,她没有处理功能,但他是系统和现实世界的接口。
2〉 对节点加上必要的构造型。可以使用 uml的标准构造型或自
定义新的构造型,说明节点的性质。
3〉 确定联系。这是关键步骤。配置图中的联系包括节点与节点
之间的联系,节电与组件之间的联系,组件与组件之间的联系,
可以使用标准构造型或自定义新的构造型说明联系的性质。把系
统的组件如可执行程序,动态连接库等分配到节点上,并确定节
点与节点之间,节点与组件之间,组件与组件之间的联系,以及
他们的性质。
4〉 绘制配置图。
( 4)配置图的建立步骤
Page 37 ?
3、视图和图的总结
? 用例 视图 (Use case View),
? 动态视图 (Dynamic View), 也称为行为视图 (Behavior View),也称
为并发视图 (Concurrent View)
? 实现视图 ( Implementation View),也称为组件(构件)视图
(Component View)
? 交互 视 图 (Interactive View)
? 静态 视图 (Static View),也称为逻辑视图 (Logic View),也称为结构
模型视图 (Structural Model View)
3.1、视图总结
Page 38 ?
3.2、图的总结
? 用例图 (Use Case Diagram)
? 类图 (Class Diagram)
? 对象图 (Object Diagram)
? 组件图 (Component Diagram)
也被称为构件图
? 配置图 (Deployment Diagram),
也被称为部署图,实施图
静态视图
Page 39 ?
? 时序图 (Sequence Diagram),
也被称为顺序图,序列图
? 协作图 (Collaboration Diagram)
? 状态图 (StateChart Diagram)
? 活动图 (Activity Diagram)
动态视图
Page 40 ?
Dynamic
Diagrams
Static
Diagrams
Activity
Diagrams
Models
Sequence
Diagrams
Collaboration
Diagrams
Statechart
Diagrams
Deployment
Diagrams
Component
Diagrams
Object
Diagrams
Class
Diagrams
Use-Case
Diagrams
结
构
行
为
Page 41 ?
UML
事物 关系 图
结构
事物
行为
事物
分组
事物
辅助
事物
静态
图
实现
关系
泛化
关系
依赖
关系
关联
关系
动态
图
交
互
状
态
机
包 注释
顺
序
图
活
动
图
用
例
图
部
署
图
类
图
构
件
图
对
象
图
状
态
图
协
作
图
节
点
组
件
活
动
类
协
作
接
口类
用
例
4,UML结构图
Page 42 ?
主要的域 视图 图 主要概念
结构 静态视图 类图 类、关联、泛化、依赖关系、实现、接
口
用例视图 用例图 用例、参与者、关联、扩展、包括、用
例泛化
实现视图 构件图 构件、接口、依赖关系、实现
部署视图 部署图 节点、构件、依赖关系、位置
动态 状态视图 状态图 状态、事件、转换、动作、
活动视图 活动图 状态、活动、完成转换、分叉、结合
交互视图 顺序图 交互、对象、消息、激活
协作图 协作、交互、协作角色、消息
模型管理 模型管理视
图
包图 包、子系统、模型
可扩展性 所有 所有 约束、构造型、标记值
5,UML元素列表
Page 43 ?
6、扩展组件
? UML提供了几种扩展机制,允许建模者在不用改变基本建
模语言的情况下做一些通用的扩展。这些扩展机制已经被
设计好,以便于在不需理解全部语义的情况下就可以存储
和使用。
? 这种扩展的方法很可能不能满足出现的多种要求,但是它
以一种易于实现的简单方式容纳建模者对 UML裁制的大部
分要求。
? 一定要记住扩展是违反 UML的标准形式的,并且使用它
们会导致相互影响。在使用扩展机制之前,建模者应该仔
细权衡它的好处和代价,特别是当现有机制能够合理工作
时。典型地,扩展用于特定的应用域或编程环境,但是它
们导致了 UML方言的出现,包括所有方言的优点和缺点。
? 扩展机制包括约束、标记值和构造型。
Page 44 ?
约束是用文字表达式表示的语义限制。每个表达式有一种
隐含的解释语言,这种语言可以是正式的数学符号,如 set-
theoretic表示符号;或是一种基于计算机的约束语言,如 OCL;或是一种编程语言,如 C++;或是伪代码或非正式的自然语
言。当然,如果这种语言是非正式的,那么它的解释也是非正
式的,并且要由人来解释。即使约束由一种正式语言来表示,
也不意味着它自动为有效约束。
约束可以表示不能用 UML表示法来表示的约束和关系。
约束用大括弧内的字符串表达式表示。约束可以附加在表元素
、依赖关系,或注释上。
6.1、约束
Page 45 ?
标记值是一对字符串 — 一个标记字符串和一个值字符串 — 存
储着有关元素的一些信息。标记值可以与任何独立元素相关
,包括模型元素和表达元素。标记是建模者想要记录的一些
特性的名字,而值是给定元素的特性的值。例如,标记可以
是 author,而值是对元素负责的人的名字,如 Charles
Babbage。
标记值可以用来存储元素的任意信息,对于存储项目管
理信息尤其有用的,如元素的创建日期、开发状态、截止日
期和测试状态。除了内部元模型属性名外,任何字符串可以
作为标记名(这是因为标记和属性在一起会被认为是一个元
素的属性并且可以被工具一起访问),而一些标记名已经被
预定义了。
6.2、标 记 值
Page 46 ?
标记值也可以用来存储有关构造型模型元素的信息。
标记值用字符串表示,字符串有标记名、等号和值。它们被规
则地放置在大括弧内。
Page 47 ?
6.3、构造型
许多建模者希望为了一种特定的应用域裁制一种建模
语言,这带来一些风险,因为被裁制的语言不易普遍为人
理解,但人们仍然试图这么做。
构造型是在一个已定义的模型元素的基础上构造的一
种新的模型元素。构造型的信息内容和形式与已存在的基
本模型元素相同,但是含义和使用不同。
构造型建立在已存在的模型元素基础上,构造型元素
的信息内容与已存在的模型元素相同。这样便可允许工具
以相同的方式存储和使用新元素和已存在的元素。构造型
元素可以有它自己的区别符号,并且这很容易由工具所支
持。
Page 48 ?
构造型可以用标记值来存储不被基本模型元素所支持
的附加特性。
构造型用双尖括号内的文字字符串表示,它可以放在
表示基本模型元素的符号的里边或旁边,建模者也可以为
特殊的构造型创建一个符号,这个符号替代了原来的基本
模型元素的符号。
Page 49 ?
6.4、裁制 UML
约束的扩展机制、标记值和构造型使得为了特殊的应
用域而裁制 UML轮廓成为可能。并已经形成了几种轮廓,
此外用户还提出了其他。这种裁制建模语言的能力意味着
应用域的用户可以使建模语言适应应用域的需要,还能够
共享在所有领域中通用的概念。
Page 50 ?
6.5、扩展组件的应用实例
下图举例说明了约束、构造型,和标记值的使用。
下图中对剧目类的约束保证了剧目具有唯一的名称,用文字表达约束
效果较好。
TicketdDB构件构造型表明这个是一个数据库构件,建模者可以增加
新的构造型来表示专门的模型元素。一个构造型可以带有多个约束、标
记值。如图所示,建模者可以为命名的构造型定义一个图标,作为可视
化的辅助工具。
Scheduling包中的标记值说明 Frank Martin要在 1999年年底前完成计划的
制定。使用文字有益于描述项目管理和代码生成参数。大部分标记值
保存为编辑工具中的弹出信息,在正式打印出的图表中通常没有标记值 。
Page 51 ?
Page 52 ?
? 从应用的角度看,当采用面向对象技术设计系统时,首先是描述需求 ;其
次根据需求建立系统的静态模型,以构造系统的结构 ;第三步是描述系统的
行为。
其中在第一步与第二步中所建立的模型都是静态的,包括用例图、类图 (包
含包 )、对象图、组件图和配置图等五个图形,是标准建模语言 UML的静态
建模机制。
其中第三步中所建立的模型或者可以执行,或者表示执行时的时序状态或
交互关系。它包括状态图、活动图、顺序图和合作图等四个图形,是标准
建模语言 UML的动态建模机制。
因此,标准建模语言 UML的主要内容也可以归纳为静态建模机制和动态建
模机制两大类。
7,UML建模
UML及软件建模
主讲人, 李 唯
clx7000@163.com
Page 2 ?
第十二章 UML的总结
UML简介
UML的构成
其他
Page 3 ?
UML( Unified Modeling Language,统一建模语言)
是一种可视化的建模语言,它能够让系统构造者用标准的
、易于理解的方式建立起能够表达他们设计思想的系统
蓝图,并且提供一种机制,以便于不同的人之间有效的共
享和交流设计成果。
(1)UML是一种语言
(2) UML是一种可视化的语言
(3) UML是一种可以用于详细描述的语言
(4) UML是一种构造语言
1,UML简介
Page 4 ?
1.1,UML的用处
? UML不是一门程序设计语言。但可以使用代码生成器工具
将 UML模型转换为多种程序设计语言代码,或使用反向生
成器工具将程序源代码转换为 UML。 UML不是一种可用
于定理证明的高度形式化的语言,这样的语言有很多种,
但它们通用性较差,不易理解和使用。
UML是一种通用建模语言。对于一些专门领域,例如用户
图形界面( GUI)设计、超大规模集成电路( VLSI)设计
、基于规则的人工智能领域,使用专门的语言和工具可能
会更适合些。
UML是一种离散的建模语言,不适合对诸如工程和物理学
领域中的连续系统建模。它是一个综合的通用建模语言,
适合对诸如由计算机软件、固件或数字逻辑构成的离散系
统建模。
Page 5 ?
1.2,UML的 核心组员
Page 6 ?
提出 UML建议或进行 UML标准修订工作的核心组员有下列人员:
? 数据存取公司,Tom Digre
? DHR 技术公司,Ed Seidewitz
? HP 公司,Martin Griss
? IBM 公司,Steve Brodsky,Steve Cook,Jos Warmer
? I— Lgix 公司,Eran Gery,David Harel
? ICON Computing 公司,Desmond D'Souza
? IntelliCorp and James Martin 公司,Conrad Bock,James Odell
? MCI 系统企业,Cris Kobryn,Joaquin Miller
? ObjecTime 公司,John Hogg,Bran Selic
? Oracle 公司,Guus Ramackers
? 铂技术公司,Dilhar Desilva
? Rational 软件公司,Grady Booch,Ed Eykholt,Ivar Jacobson,Gunnar Overgaard,Karin Palmkvist,James Rumbaugh
? SAP 公司,Oliver Wiegert
? SOFTEAM,Philippe Desfray
? Sterling 软件公司,John Cheesman,Keith Short
? Taskon 公司,Trygve Reenskaug
Page 7 ?
1.3,UML的历史
Page 8 ?
2,UML的构成
? 作为一种建模语言,UML的定义包括 UML语义和 UML表
示法两个部分
? UML语义 描述基于 UML的精确元模型定义。元模型
为 UML的所有元素在语法和语义上提供了简单、一致
、通用的定义性说明,使开发者能在语义上取得一致,消
除了因人而异的最佳表达方法所造成的影响。此外
UML还支持对元模型的扩展定义。
? UML表示法 定义 UML符号的表示法,为开发者或开发
工具使用这些图形符号和文本语法为系统建模提供了标
准。这些图形符号和文字所表达的是应用级的模型,在语
义上它是 UML元模型的实例。
Page 9 ?
2.1,UML中的四种事物
1)结构事物 --- 类、接口、协作(它是一个交互,它是由一组共同工作以
提供某协作行为的角色和其它元素构成的一个群体。)、用例、主动类(至少
拥有一个进程或者线程,其元素的行为可以和其它元素的行为并发)、构件(
如 COM+和 Java Bean)、节点。
2)行为事物 --- 交互、状态 (描述了一个对象或者一个交互在生命期内
响应事件所经历的状态序列)。
3)分组事物 --- 包 。
4) 辅助 事物 --- 注解
Page 10 ?
2.2,UML中的四种关系
1)依赖 (Dependency)--- 两个事物间的语义关系
2)关联 (Association)--- 是一种结构关系,如聚合
3)泛化 (Generalization)--- 一般 /特殊关系
4)实现 (Realization) --- 用在两种地方:接口和实现他们之间
的类和构件之间;用例和实现他们的协作之间。
Page 11 ?
2.3 UML的视图 (View)和图 (
Diagram)
标准建模语言 UML的重要内容可以由下列五类视图 (共 9
种图形 )来定义,
UML中的各种组件和概念之间没有明显的划分界限,
但为方便起见,我们用视图来划分这些概念和组件。
视图只是表达系统某一方面特征的 UML建模组件的子
集。视图的划分带有一定的随意性,但我们希望这种
看法仅仅是直觉上的。在每一类视图中使用一种或两
种特定的图来可视化地表示视图中的各种概念。
Page 12 ?
·2.3.1,第一类是用例 视图 (Use case
View),强调 从用户角度 看到的或需要的 系统功
能,并指出各功能的操作者。 包括用例图。
用例图 用来描述系统功能
Page 13 ?
( 1) 用例图示例
用例
参与者 参与者
用例分析的一个好处是它能够展现出系统和外部世界之间的边界。参与
者是典型的系统外部实体,而用例是典型的属于系统内部。系统的边界
用一个矩形来代表,里面写上系统的名字。系统的用例装入矩形之内。
系统
用例的发起者在用例图的左侧,接受者在用例图的右侧。参与者的名字
放在参与者图标的下方。关联线连接参与者和用例并且表示参与者与用
例之间有通信关系。关联线是实线,和类之间的关联线类似。
Page 14 ?
( 2)用例图的建立步骤:
1) 找出系统外部的活动者和外部系统,确定系统的边界和范围。
2) 确定每一个活动者所希望的系统行为。
3) 把这些系统行为命名为用例。
4) 把一些公共的系统行为分解为一批新的用例,供其它的用例引用
。把一些变更的行为分解为扩展用例。
5) 绘制用例图。
6) 区分主业务流和例外情况的事件流。可以把表达例外的情况的事
件流的用例图画成一个单独的子用例图。
7) 细化用例图,解决用例间的重复与冲入问题,简化用例中的对话
序列,用例图可以有不同的层次,高层次系统的用例可以分解为
若干个下属子系统中的子用例。
Page 15 ?
其中 类图 描述系统中类的静态结构。不仅定义系统中的类,表示
类之间的联系如关联、依赖、聚合等,也包括类的内部结构 (类的
属性和操作 )。类图描述的是一种静态关系,在系统的整个生命周
期都是有效的。
对象图 是类图的实例,几乎使用与类图完全相同的标识。他们的
不同点在于对象图显示类的多个对象实例,而不是实际的类。
一个对象图是类图的一个实例。由于对象存在生命周期,因此对
象图只能在系统某一时间段存在。
包 由包或类组成,表示包与包之间的关系。包图用于描述系统的
分层结构。
3.2.2, 第二类是静态 视图 (Static View),展现系统的
静态或结构组成及特征。 包括类图、对象图和包
图。
Page 16 ?
( 1)类图示例
WashingMachine
brandName
modeName
serialNumber
addClothes(C,String)
removeClothes(C,string)
turnON(),Boolean
在 UML中一个矩形表示一个类的图标。
属性 是类的一个特性,它描叙了类的对象(也就是类的实例)所具有的一
系列特性值。一个类可以具有零个到多个属性。属性名列表放在类名之下,
并且和类名之间用分隔号隔开 。
操作 是类能够做的事情或者你(或者另一个类)能对类做的事情。
操作名列表要放在属性名列表之下,两者之间用分隔线隔开
Page 17 ?
( 2)对象图示例
类的属性在该类的每个对象中都有具体值。
对象名首写字母小写,后面根一个冒号,冒号后面是该对象
所属的类名,并且整个名字要带下划线。
myWasher:WashingMachine
brandName=“海尔”
modeName=“小神童”
serialNumber=,GL0214”
Page 18 ?
1〉 研究分析问题领域,确定系统的需求。
2〉 发现对象和类,明确他们的含义和责任,确定属性和操作。
3〉 发现类之间的静态联系。着重分析找出类之间的一般和特殊关系,部分
与整体关系,研究类的继承性和多态性,把类之间的静态联系用关联、泛化、
聚合、组合、依赖等联系表达出来,虽然对象类图表达的是系统的静态结构特
征,但是应当把对系统的静态分析与动态分析结合起来,更能准确地了解系统
的静态结构特征。
4〉 设计类与联系。调整和细化已得到的对象类和类之间的联系,解决诸如命名
冲突、功能重复等问题。
5〉 绘制对象类图并编制相应的说明。上述做法是直接从领域分析抽取对象和类
开始的,这是常规的面向对象的系统分析与设计的做法。 Rational统一过程
主张采用用例驱动的系统分析与设计方法。从业务领域的分析中先抽取活动者
和用例,建立业务模型。业务模型包括业务用例模型、设计模型、实现模型和
测试模型。
( 3)对象类图的建立步骤
Page 19 ?
( 4)包图示例
包用附有标签的矩形表示
包图名
Page 20 ?
( 5)包图的建立步骤
1〉 分析系统模型元素(通常是类),把概念上或语义上相近的模型元素
纳入一个包。注意可以从类的功能的相关性来确定纳入包中的类。以下
几点可作为分析对象类的功能相关性的参考
( 1)如果一个类的行为和 /或结构的变更要求另一个相应的变更,则这
两个类是功能相关的。
( 2)如果删除一个类后,另一个类便变成是多余的,则这连个类是功
能相关的,这说明该剩余的类只为那个被删除的类所使用,他们之间有
依赖关系。
( 3)如果两个类之间大量的频繁交互或通信,则这两个类是功能相关
的。
( 4)如果两个类之间有一般 /特殊关系,则这两个类是功能相关的。
( 5)如果一个类激发创建另一个类的对象,则这两个类是功能相关的。
( 6)如果两个类不涉及统一个外部活动着,则这两个类不应放在同一
个包中。
( 7)一个包应当具有高内聚性,包中的类应该是功能相关的。
Page 21 ?
2〉 对于每一个包,标出其模型元素的可视性:公共
、保护或私有。
3〉 确定包与包之间的依赖关系,特别是输入依赖。
4〉 确定包与包之间的泛化关系,确定包元素的多态
性和重载。
5〉 绘制包图。
Page 22 ?
·2.2.3、第三类是行为视图 (Behavior
View),描述系统的动态模型和组成对象间
的交互关系。包括状态图和活动图
? 状态图 描述类的对象所有可能的状态以及事件发生时
状态的转移条件。通常,状态图是对类图的补充。在实用上并
不需要为所有的类画状态图,仅为那些有多个状态其行为受外
界环境的影响并且发生改变的类画状态图。
? 活动图 描述满足用例要求所要进行的活动以及活动间的
约束关系,有利于识别并行活动。
Page 23 ?
Initialization
状态用具有圆形拐角的矩形表示,状态间带箭头的实线代表状
态的迁移,箭头指向目标状态。
图中的实心圆代表状态转移的起点,带圆圈的实心圆代表终
点。
Canceled
(1)状态图示例
Page 24 ?
1〉 确定状态机的上下文,它可以是一个类、子系统或整个系统。
2〉 选择初始状态和终结状态。
3〉 发现对象的各种状态。注意应当仔细找出对问题有意义的对象状态属
性,这些属性具有少量的值,且该属性的值的转换受限制。状态属性值
的组合,结合行为有关的事件和动作,就可以确定具有特定的行为特征
的状态。
4〉 确定状态可能发生的装移。注意从一个状态可能转移到哪些状态,对
象的哪些行为可引起状态的转移并找出触发状态转移的事件。
5〉 把必要的动作加到状态或转移上。
6〉 要超状态、子状态、分支、历史状态等概念组织和简化一个复杂的状
态机。
7〉 分析状态的并发和同步情况。
8〉 绘制状态图。
9〉 确认每一个状态在某个时间组合之下都是可到达的。
(2)状态图的建立步骤
Page 25 ?
(3) 活动图示例
活动状态表示成带有圆形边线的矩形,它含有活动的描述(普
通的状态盒为直边圆角)。简单的完成转换用箭头表示。和状
态图相似,活动图也有起点和终点符号,表示法和状态图一样
。
活动 1 活动 2● ●
Page 26 ?
1〉 找出负责实现工作流的业务对象。这些对象可以是现实业务领域中的
实体,也可以是一种抽象的概念或事物。为每一个重要的业务对象建立一条泳道。
2〉 确定工作流的初始状态和终结状态,明确工作流的边界。
3〉 从工作流的初始状态开始,找出随时间而发生的活动和动作,把他们表示成活动状态或动作状态。
4〉 对于复杂的动作或多次重复出现的一组动作,可以把他们组成一个活动状态,并且用另外一个活动图来展开表示。
5〉 给出连接活动和动作的转移(动作流)。首先处理顺序动作流,然后处理条件分支。最后处理分劈和接合。
6〉 在活动图中给出与工作流有关的重要对象,并用虚箭线把他们与活动状态或动作状态相连接。
(5) 活动图的建立步骤
Page 27 ?
2.2.4,第四类是交互图 (Interactive View),描
述对象间的交互关系。 包括顺序图和协作图
顺序图 显示对象之间的动态合作关系,它强调对象之间
消息发 送的顺序,同时显示对象之间的交互 ;
协作图 描述对象间的协作关系,协作图跟顺序图相似,显示对
象间的动态合作关系。除显示信息交换外,协作图还显示对
象以及它们之间的关系。
如果强调时间和顺序,则使用顺序图 ;如果强调上下级关系,则
选择协作图。
Page 28 ?
( 1)顺序图示例
Page 29 ?
1〉 找出参与交互的对象角色,把他们横向排列在顺序图的顶
部,最重要的对象安置在最左边,交互密切的对象尽可能相
邻。在交互中创建的对象在垂直方向应安置在其被创建的时
间点处。
2〉 对每一个对象设置一条垂直的向下的生命线。
3〉 从初始化交互的信息开始,自顶向下在对象的生命线之间
安置信息。注意用箭头的形式区别同步消息和异步消息。根
据顺序图是属于说明层还是属于实例层,给出消息标签的内
容,以及必要的构造型与约束。
4〉 在生命线上绘出对象的激活期,以及对象创建或销毁的构
造型和标记。
5〉 更具消息之间的关系,确定循环结构及循环参数和出口条
件。
( 2)顺序图的建立步骤
Page 30 ?
:对象名 2
协作图是对象的扩展,协作图除了展示出对象之间的关联,还显示
出对象之间的消息传递。通常在协作图中省略掉关联的名字。
关联线附近的箭头线表示对象之间传递的消息,箭头指向消息接收
对象。消息名称和消息序号附在箭头线附近。消息的一般含义是触
发接收消息的对象执行它的一个操作。在协作图中,在消息名前面
加上消息的序号,它代表该消息在消息序列中的顺序。消息名和序
号之间用冒号隔开。
:对象名 1
:对象名 3
(3)协作图示例
Page 31 ?
( 4)协作图的建立步骤
1〉 找出参与交互的对象角色,把他们作为图形的节点置在协作图中。最重
要的对象安置在图的中央,与他有直接交互的对象安置在邻近。
2〉 设置对象的初始性质。
3〉 说明对象之间的链接。首先给出对象之间的关联连接,然后给出其它连
接,并且给出必要的装饰,如构造型, global》,local,等。
4〉 从初始化交互的消息开始,在链接上安置相应的消息,给出消息的序号
。注意用箭头的形式区别同步消息和异步消息。根据顺序图是属于说明层
还是属于实例层,给出消息标签的内容,以及必要的构造型和约束。
5〉 处理一些特殊情况,如循环、自调用、回调、多对象等。
Page 32 ?
·2.2.5,第五类是实现视图 ( Implementation
VIew)。包括构件图和部署图
? 构件图 描述代码部件的物理结构及各部件之间的依赖
关系。 一个部件可能是一个资源代码部件、一个二进制部件
或一个可执行部件。它包含逻辑类或实现类的有关信息。部
件图有助于分析和理解部件之间的相互影响程度。
? 部署图 定义系统中软硬件的物理体系结构。它可以显示
实际的计算机和设备 (用节点表示 )以及它们之间的连接关系
也可显示连接的类型及部件之间的依赖性。 在节点内部,放
置可执行部件和对象以显示节点跟可执行软件单元的对应关
系。
Page 33 ?
构件用一边有两个小矩形的一个长方形表示,它可以用实线与代表构件
接口的圆圈相连 。
构件图表示了构件之间的依赖关系。每个构件实现(支持)一些接口,
并使用另一些接口。如果构件间的依赖关系与接口有关,那么构件可以
被具有同样接口的其他构件替代。
( 1)构件图示例
Page 34 ?
( 2)构件图的建立步骤
1〉确定 构件。首先要分解系统,考虑有关系统的组成管理、
软件的重用核物理节点的配置等因素,把关系密切的可执行程
序和对象库分别归入组件,找出相应的对象类、接口等模型元
素。
2〉对 构件加上必要的构造型。可以使用 uml的标准构造型《
executable》、,library》、,table》、,file》、《
document》,或自定义新的构造型,说明组件的性质。
3〉确定 构件之间的联系。最常见的构件之间的联系是通过接
口依赖。一个构件使用某个接口,另一个构件实现该接口。
4〉必要时把 构件组织成包。构件和对象、协作等模型元素一
样可以组织成包。
5〉绘制 构件图。
Page 35 ?
节点用带有节点名称的立方体表示,节点间的关联代表通信路径。关
联有用来辨别不同路径的构造型。节点也有泛化关系。
( 3)部署图示例
Page 36 ?
1〉 确定节点。注意:标示系统中的硬件设备,包括大型主机、
服务器、前端机、网络设备、输入 /输出设备等。一个处理机是一
个节点,它具有处理功能,能够执行一个组件;一个设备也是一
个节点,她没有处理功能,但他是系统和现实世界的接口。
2〉 对节点加上必要的构造型。可以使用 uml的标准构造型或自
定义新的构造型,说明节点的性质。
3〉 确定联系。这是关键步骤。配置图中的联系包括节点与节点
之间的联系,节电与组件之间的联系,组件与组件之间的联系,
可以使用标准构造型或自定义新的构造型说明联系的性质。把系
统的组件如可执行程序,动态连接库等分配到节点上,并确定节
点与节点之间,节点与组件之间,组件与组件之间的联系,以及
他们的性质。
4〉 绘制配置图。
( 4)配置图的建立步骤
Page 37 ?
3、视图和图的总结
? 用例 视图 (Use case View),
? 动态视图 (Dynamic View), 也称为行为视图 (Behavior View),也称
为并发视图 (Concurrent View)
? 实现视图 ( Implementation View),也称为组件(构件)视图
(Component View)
? 交互 视 图 (Interactive View)
? 静态 视图 (Static View),也称为逻辑视图 (Logic View),也称为结构
模型视图 (Structural Model View)
3.1、视图总结
Page 38 ?
3.2、图的总结
? 用例图 (Use Case Diagram)
? 类图 (Class Diagram)
? 对象图 (Object Diagram)
? 组件图 (Component Diagram)
也被称为构件图
? 配置图 (Deployment Diagram),
也被称为部署图,实施图
静态视图
Page 39 ?
? 时序图 (Sequence Diagram),
也被称为顺序图,序列图
? 协作图 (Collaboration Diagram)
? 状态图 (StateChart Diagram)
? 活动图 (Activity Diagram)
动态视图
Page 40 ?
Dynamic
Diagrams
Static
Diagrams
Activity
Diagrams
Models
Sequence
Diagrams
Collaboration
Diagrams
Statechart
Diagrams
Deployment
Diagrams
Component
Diagrams
Object
Diagrams
Class
Diagrams
Use-Case
Diagrams
结
构
行
为
Page 41 ?
UML
事物 关系 图
结构
事物
行为
事物
分组
事物
辅助
事物
静态
图
实现
关系
泛化
关系
依赖
关系
关联
关系
动态
图
交
互
状
态
机
包 注释
顺
序
图
活
动
图
用
例
图
部
署
图
类
图
构
件
图
对
象
图
状
态
图
协
作
图
节
点
组
件
活
动
类
协
作
接
口类
用
例
4,UML结构图
Page 42 ?
主要的域 视图 图 主要概念
结构 静态视图 类图 类、关联、泛化、依赖关系、实现、接
口
用例视图 用例图 用例、参与者、关联、扩展、包括、用
例泛化
实现视图 构件图 构件、接口、依赖关系、实现
部署视图 部署图 节点、构件、依赖关系、位置
动态 状态视图 状态图 状态、事件、转换、动作、
活动视图 活动图 状态、活动、完成转换、分叉、结合
交互视图 顺序图 交互、对象、消息、激活
协作图 协作、交互、协作角色、消息
模型管理 模型管理视
图
包图 包、子系统、模型
可扩展性 所有 所有 约束、构造型、标记值
5,UML元素列表
Page 43 ?
6、扩展组件
? UML提供了几种扩展机制,允许建模者在不用改变基本建
模语言的情况下做一些通用的扩展。这些扩展机制已经被
设计好,以便于在不需理解全部语义的情况下就可以存储
和使用。
? 这种扩展的方法很可能不能满足出现的多种要求,但是它
以一种易于实现的简单方式容纳建模者对 UML裁制的大部
分要求。
? 一定要记住扩展是违反 UML的标准形式的,并且使用它
们会导致相互影响。在使用扩展机制之前,建模者应该仔
细权衡它的好处和代价,特别是当现有机制能够合理工作
时。典型地,扩展用于特定的应用域或编程环境,但是它
们导致了 UML方言的出现,包括所有方言的优点和缺点。
? 扩展机制包括约束、标记值和构造型。
Page 44 ?
约束是用文字表达式表示的语义限制。每个表达式有一种
隐含的解释语言,这种语言可以是正式的数学符号,如 set-
theoretic表示符号;或是一种基于计算机的约束语言,如 OCL;或是一种编程语言,如 C++;或是伪代码或非正式的自然语
言。当然,如果这种语言是非正式的,那么它的解释也是非正
式的,并且要由人来解释。即使约束由一种正式语言来表示,
也不意味着它自动为有效约束。
约束可以表示不能用 UML表示法来表示的约束和关系。
约束用大括弧内的字符串表达式表示。约束可以附加在表元素
、依赖关系,或注释上。
6.1、约束
Page 45 ?
标记值是一对字符串 — 一个标记字符串和一个值字符串 — 存
储着有关元素的一些信息。标记值可以与任何独立元素相关
,包括模型元素和表达元素。标记是建模者想要记录的一些
特性的名字,而值是给定元素的特性的值。例如,标记可以
是 author,而值是对元素负责的人的名字,如 Charles
Babbage。
标记值可以用来存储元素的任意信息,对于存储项目管
理信息尤其有用的,如元素的创建日期、开发状态、截止日
期和测试状态。除了内部元模型属性名外,任何字符串可以
作为标记名(这是因为标记和属性在一起会被认为是一个元
素的属性并且可以被工具一起访问),而一些标记名已经被
预定义了。
6.2、标 记 值
Page 46 ?
标记值也可以用来存储有关构造型模型元素的信息。
标记值用字符串表示,字符串有标记名、等号和值。它们被规
则地放置在大括弧内。
Page 47 ?
6.3、构造型
许多建模者希望为了一种特定的应用域裁制一种建模
语言,这带来一些风险,因为被裁制的语言不易普遍为人
理解,但人们仍然试图这么做。
构造型是在一个已定义的模型元素的基础上构造的一
种新的模型元素。构造型的信息内容和形式与已存在的基
本模型元素相同,但是含义和使用不同。
构造型建立在已存在的模型元素基础上,构造型元素
的信息内容与已存在的模型元素相同。这样便可允许工具
以相同的方式存储和使用新元素和已存在的元素。构造型
元素可以有它自己的区别符号,并且这很容易由工具所支
持。
Page 48 ?
构造型可以用标记值来存储不被基本模型元素所支持
的附加特性。
构造型用双尖括号内的文字字符串表示,它可以放在
表示基本模型元素的符号的里边或旁边,建模者也可以为
特殊的构造型创建一个符号,这个符号替代了原来的基本
模型元素的符号。
Page 49 ?
6.4、裁制 UML
约束的扩展机制、标记值和构造型使得为了特殊的应
用域而裁制 UML轮廓成为可能。并已经形成了几种轮廓,
此外用户还提出了其他。这种裁制建模语言的能力意味着
应用域的用户可以使建模语言适应应用域的需要,还能够
共享在所有领域中通用的概念。
Page 50 ?
6.5、扩展组件的应用实例
下图举例说明了约束、构造型,和标记值的使用。
下图中对剧目类的约束保证了剧目具有唯一的名称,用文字表达约束
效果较好。
TicketdDB构件构造型表明这个是一个数据库构件,建模者可以增加
新的构造型来表示专门的模型元素。一个构造型可以带有多个约束、标
记值。如图所示,建模者可以为命名的构造型定义一个图标,作为可视
化的辅助工具。
Scheduling包中的标记值说明 Frank Martin要在 1999年年底前完成计划的
制定。使用文字有益于描述项目管理和代码生成参数。大部分标记值
保存为编辑工具中的弹出信息,在正式打印出的图表中通常没有标记值 。
Page 51 ?
Page 52 ?
? 从应用的角度看,当采用面向对象技术设计系统时,首先是描述需求 ;其
次根据需求建立系统的静态模型,以构造系统的结构 ;第三步是描述系统的
行为。
其中在第一步与第二步中所建立的模型都是静态的,包括用例图、类图 (包
含包 )、对象图、组件图和配置图等五个图形,是标准建模语言 UML的静态
建模机制。
其中第三步中所建立的模型或者可以执行,或者表示执行时的时序状态或
交互关系。它包括状态图、活动图、顺序图和合作图等四个图形,是标准
建模语言 UML的动态建模机制。
因此,标准建模语言 UML的主要内容也可以归纳为静态建模机制和动态建
模机制两大类。
7,UML建模