第4章 顺序图和协作图
软件工程---交互建模之交互图,顺序图与协作图

2.5 消息
格式
[前缀][守卫条件][顺序表达式][返回值:=]消息名([参数列表])
例:
2: display ()
简单消息
1.3.1: p:=find()
带返回值的嵌套消息
[x<0] 4: invert(x, color) 条件消息
3.1 *[x = 1..10] : update() 循环消息
[ 条件子句 ] 条件子句一般用来表示分枝而不是用作守卫条件[x<0]是两个可
以用来分枝的条件子句这两个条件只能有一个为真因而只有一 个分枝被执行(即发送与分枝有关的消息) 条件子句和循环子句都可以用伪代码或真正的编程语言来表示 序列表达式用冒号结束
返回值、消息名和参数表
返回值表示一个操作调用(即一个消息)的结 果
顺序图中消息编号可显示,也可不显示。 协作图中必须显示Procedure Call) 异步(Asynchronous) 返回(Return) 自关联消息(Self Message)
2.5 消息
UML三种消息:
调用(Procedure Call) 发送者把消息发送后,等待直到接收者返回控制, 可以表示同步(synchronous message); 实心箭头符号
包括对象名和类名 类名(匿名对象) 对象名(不关心类)
2.3 生命线
生命线(Lifeline):
每个对象都有自己的生命线,用来表示在该用例中一个对象在一段时 间内的存在
垂直的虚线 如果对象生命期结束, 则用注销符号表示 对象默认的位置在图 顶部,表示对象在交互 之前已经存在 如果是在交互过程中 由另外的对象所创建, 则位于图的中间某处。
顺序图
面向时间描述对象交互的图
协作图
第4章顺序图和协作图

Q:这两种消息可以看做是同步or异步消息?
UML
- 24 -
•消息
格式
[前缀][警戒条件][顺序表达式][返回值:=]消息名([参数列表])
例:
2: display ()
简单消息
1.3.1: p:=find()
信息亭发Request (count, performance)消息给售票中心,表示调用售票中心类的Request (count, performance)操 作,来查询演出的信息。
售票中心发Show Available(seat-list)消息给信息亭,表示调用信息亭类中的Show Available(seat-list)操作,给出 可用的座位表。…………
UML
- 17 -
4.2 顺序图
复杂的例子
信息亭
售票中心
信用卡服务
从这个例子中可以看出: Kjosk类中的操作有
Show Available (seat-list) Demand Payment (cost) printtickets (performance, seats) eject card Box Office中的操作有 Request (count, performance) Select Seats Insert Card (Card Number) authorized Credit Card Service类中的操作有 charge(card number, cost)
※发送者把消息发送后,等待直到接收者返回控制,可 以表示同步;
※实心箭头符号
UML
- 20 -
•消息
顺序图和协作图

第4章顺序图和协作图4.1 交互图概述在一个待开发的系统中,任何对象都不是孤立存在的,系统中的这些对象都是通过传递消息进行交互的。
因此在设计系统时,就免不了对交互进行缄默,并用交互图展现出来。
4.1.1 交互的定义当需要对类操作、类、构件、用例乃至整个系统的控制流进行建模时,一定离不开“交互”。
交互:一次交互就是指在特定语境中,为了实现某一个目标,而在一组对象之间进行交换的一组消息所表示的行为。
交互图:是用来描述对象之间以及对象与参与者之间的动态协作关系以及协作过程中行为次序的图形文档。
通常用来描述一个用例的行为,显示该用例中所涉及的对性和这些对象之间的消息传递情况在大多数情况下,消息通常是指启动一个操作或发送一个信号,以及创建或销毁一个对象。
4.1.2 UML交互图的类型顺序图:是一种强调消息时间顺序的交互图,着重描述对象按照时间顺序的消息交换,为读者提供了控制流随着时间推移的清晰的可视化轨迹。
协作图(UML 2.0中的通信图):强调的是参加交互的对象的组织,着重描述系统成分如何协同工作,为读者提供了在协作对象结构组织的语境中观察控制流的一个清晰的可视化轨迹。
顺序图和协作图从不同的角度表达了系统中的交互和系统的行为,它们可以相互转化,并且转换过程不会丢失信息。
定时图(UML 2.0中新增):采用了一种带数字刻度的时间轴来精确地描述消息的顺序,而不是像顺序图那样只是指定消息的相对顺序,而且它还允许可视化的表示每条生命线的状态变化,当需要对实时时间进行定义时,采用定时图可以很好的满足。
交互概述图(UML 2.0中新增):是交互图和活动图的混合物。
定时图和交互概述图是两种特殊的变体。
4.1.3交互图和类(图)4.2 顺序图顺序图:显示的是参与交互的对象及对象之间消息交换的顺序,用来表示用例中的行为顺序。
图显示的是汽车租赁系统中客户取车的顺序图,涉及5个对象:客户、预定请求、工作人员、工作记录和汽车。
顺序图和协作图

协作图
消息(Message)
协作图中的消息类型与顺序图中的相同,只不 过为了说明交互过程中消息的时间顺序,需要 给消息添加顺序号。 顺序号是消息的一个数字前缀,是一个整数, 由1开始递增,每个消息都必须由唯一的顺序 号。可以通过点表示法代表控制的嵌套关系。 嵌套可以具有任意深度。与顺序图相比,协作 图可以显示更为复杂的分支。
顺序图
概念
顺序图
顺序图包含了4个元素:
对象(Object) 生命线(Lifeline) 消息(Message) 激活(Activation)
顺序图
对象(Object)
顺序图中对象的符号和对象图中对象所用的符 号一样。 将对象置于顺序图的顶部意味着在交互开始的 时候对象就已经存在了,如果对象的位置不在 顶部,那么表示对象是在交互的过程中被创建 的。
系统管理员添加书籍的顺序图
: Administrator
: Maintenance Window 1: add item( ) 2: find(String)
: Title
: Item
Check if corresponding title exist
3: return true
4: create(Integer, Title)
2: find(String)
1: identify borrower( ) 3: reserve title( ) : Borrower : Reservation Window
teacher
Req stu info Get stu data Load stu Return stu info Load grades
第4章 顺序图和协作图

4.3.5 消息的语法格式
□ UML中规定的消息语法格式如下: [predecessor] [guard-condition] [sequenceexpression] [return-value := ] message-name([argument-list])
4.3.5 消息的语法格式
□ 上述定义中用方括号括起来的是可选部分,各语 法成分的含义如下。 □ predecessor:必须先发生的消息的列表。其中消息 列表中的各消息号用逗号分隔,格式如下: sequence-number ','... '/' guard-condition:警戒条件,是一个在方括号中的布 尔表达式,表示只有在guard-condition满足时才能 发送该消息。格式如下: '[' Boolean-expression ']' □ 这里的方括号放在单引号中,表示这个方括号是 一个字符,是消息的组成部分。
4.7 顺序图和协作图的比较
□ 和协作图相比,顺序图在表示算法、对象 的生命期、具有多线程特性的对象等方面相 对来说更容易一些,但在表示并发控制流方 面会困难一些。
4.7 顺序图和协作图的比较
□ 顺序图和协作图在语义上是等价的,两者 之间可以相互转换,但两者并不能完全相互 代替。顺序图可以表示某些协作图无法表示 的信息,同样,协作图也可以表示某些顺序 图无法表示的信息。例如,在顺序图中不能 表示对象与对象之间的链,对于多对象和主 动对象也不能直接显示出来,在协作图中则 可以表示;协作图不能表示生命线的分叉, 在顺序图中则可以表示。
: Driver oper() : Car
: Driver oper() : Car
知识点学习(顺序图和协作图 )

7.2 通信图
•图10从订单生成订货单的通信图。
2 通信图
• 1.通信图的作用
• 通信图常用来描述业务或软件系统中,每个对象在交互发生时承担的 角色,即强调了交互发生时,每个对象承担的职责。 • 使用协作图可以显示对象相互协作时充当的角色。如果需要强调时间 和序列,最好选择顺序图建模;如果需要强调上下文相关,最好选择 协作图建模。 • 协作图用于显示对象之间如何进行交互,以实现特定用例或用例中特 定部分的行为。设计员使用协作图和顺序图确定并阐明对象的角色, 这些对象执行用例的特定事件流。这些图提供的信息主要用来确定类 的职责和接口。 • 2.通信图的组成元素
1 顺序图
对象
控制焦点 消息
•图2 顺序图
生命线
1 顺序图
• 2.对象:
• 顺序图中对象的符号和对象图中对象所用的符号一样。将对象置于顺 序图的顶部意味着在交互开始的时候对象就已经存在了,如果对象的 位置不在顶部,那么表示对象是在交互的过程中被创建的。 • 3.生命线 • 生命线是一条垂直的虚线,表示顺序图中的对象在一段时间内的存在。 每个对象的底部中心的位置都带有生命线。生命线是一个时间线,所 用的时间取决于交互持续的时间。 • 4.控制焦点 • 在对象的生命线上,包含一个矩形,表示对象处于激活状态,处于激 活状态的对象正在执行某个任务。对象在完成自己的工作后,被去激 活,对象就处于空闲状态。
1.1: findStudent(name) 1.2: findCourse(course) <<self>> 1: register(name,course) :Registrar :RegistrationManager [(!s)&c]1:studentNotFound [s&(!c)]1:courseNotFound [(!s)&(!c)]1:allNotFound [s&c]1:OK :StudentList
第4章 顺序图和协作图
第4章顺序图和协作图4.1 交互图概述交互图(interaction diagram)是用来描述对象之间以及对象与参与者(actor)之间的动态协作关系以及协作过程中行为次序的图形文档。
它通常用来描述一个用例的行为,显示该用例图中所涉及的对象和这些对象之间的消息传递情况。
交互图包括顺序图(sequence diagram)和协作图(collaboration diagram)两种形式。
顺序图着重描述对象按照时间顺序的消息交互,协作图着重描述系统成分如何协同工作。
顺序图和协作图从不同的角度表达了系统中的交互和系统的行为,它们之间可以相互转化。
一个用例需要多个顺序图或协作图,除非特别简单的用例。
交互图可以帮助分析人员对照检查每个用例中所描述的用户需求,如这些需求是否已经落实到能够完成这些功能的类中去实现,提醒分析人员去补充遗漏的类或方法。
交互图和类图可以相互补充,类图对类的描述比较充分,但对象之间的交互情况的表达不够详细;而交互图不考虑系统中的所有类及对象,但可以表示系统中某几个对象之间的交互。
需要说明的是,交互图描述的是对象之间的消息发送关系,而不是类之间的关系。
在交互图中一般不会包括系统中所有类的对象,但同一个类可以有多个对象出现在交互图中。
4.2 顺序图顺序图也称时序图。
Rumbaugh对顺序图的定义是:顺序图是现实对象之间交互的图,这些对象是按时间顺序排列的[RJB99]。
特别地,顺序图中显示的是参与交互的对象,及对象之间消息交互的顺序。
如图4.1所示是一个简单的顺序图例子。
图4.1 顺序图顺序图是一个二维图形。
在顺序图中水平方向为对象维,沿水平方向排列的是参与交互的对象。
其中对象间的排列顺序并不重要,但一般把表是参与者的对象放在图的两侧,主要参与者放在最左边,次要参与者放在最右边(或表示人的参与者放在最左边,表示系统的参与者放在最右边)。
顺序图中的垂直方向为时间维,沿垂直向下方向按时间递增顺序列出各对象所发出和接收的消息。
第4章顺序图和协作图
对象的创建和撤销
如果对象位于时序图的顶部,说明在交互 开始之前该对象已经存在了。如果对象是 在交互的过程中创建的,那么它应当位于 图的中间部分。 对象在创建消息发生之后才能存在,对象 的生命线也是在创建消息之后才存在的。
对象的创建和撤销
创建对象的两种表示方法(zj:被创建的对象比原来就有的 对象低):
加粗边框
链
链是关联的实例,当一个类与另一个类之间有关 联时,这两个类的实例之间就有链,一个对象就 能向另一个对象发送消息。所以链是对象间的发 送消息的路径(zj:信息通道)。 要在协作图中增加消息,必须先建立对象之间的 链接。 消息显示在链的旁边,一个链可以有多个消息 类间可能有不止一种类型的关联,因此可以存在 多个链
4: create(Integer, Title)
2. 图书管理员处理借书的时序图 (不包括预留书籍的情况)
3. 系统管理员删除书目的时序图
4. 借阅者预留书籍的时序图
theBorrower : Borrower 1: Login Web Application theTitle : Title
2: find(String)
3: Return true
4: reserve( )
4.11实例—图书馆管理系统的协作图
1. 2. 3. 4. 5. 系统管理员添加书籍的协作图 图书管理员处理借书的协作图 图书管理员处理还书的协作图 系统管理员删除书籍的协作图 借阅者预留书籍的协作图
1. 系统管理员添加书籍的协作图
3:buyBook( bookID)
3:buyBook( bookID)
返回消息
表示控制流显式地从接收消息的对象返回。 图形表示
3:buyBook( bookID)
UML中的协作图和顺序图的区别与实践应用
UML中的协作图和顺序图的区别与实践应用在软件开发过程中,UML(统一建模语言)是一种常用的工具,它用于描述和设计软件系统的结构和行为。
UML中有多种类型的图表,其中协作图和顺序图是两种常见的用于描述系统交互的图表。
虽然它们都可以用于描述系统的交互行为,但协作图和顺序图在表达方式、重点和实践应用上存在一些区别。
首先,协作图主要用于描述系统中的对象之间的协作关系。
它通过展示对象之间的交互和消息传递来揭示系统的结构和行为。
协作图强调对象之间的合作,通过展示对象之间的关联、消息和角色来描述系统的动态行为。
协作图通常以对象为中心,通过展示对象之间的交互来描述系统的运行过程。
与之相反,顺序图主要用于描述系统中的对象之间的时序关系。
它通过展示对象之间的消息传递顺序来揭示系统的行为和交互。
顺序图强调对象之间的时序关系,通过展示消息在对象之间的传递顺序和时序关系来描述系统的运行过程。
顺序图通常以时间为轴,通过展示对象之间的消息传递顺序来描述系统的执行流程。
在实践应用方面,协作图常用于分析和设计系统的结构和行为。
它可以帮助开发人员理解系统中对象之间的交互关系,从而提供系统设计的基础。
协作图可以用于描述系统的静态结构,例如对象之间的关联关系和角色。
同时,它也可以用于描述系统的动态行为,例如对象之间的消息传递和交互流程。
通过使用协作图,开发人员可以更好地理解系统的整体结构和行为,从而更好地进行系统设计和开发。
而顺序图则常用于描述系统的执行流程和时序关系。
它可以帮助开发人员理解系统中对象之间的消息传递顺序和时序关系,从而提供系统设计和实现的指导。
顺序图可以用于描述系统的执行流程,例如对象之间的消息传递顺序和执行顺序。
同时,它也可以用于描述系统的时序关系,例如对象之间的时序关系和时序约束。
通过使用顺序图,开发人员可以更好地理解系统的执行流程和时序关系,从而更好地进行系统设计和实现。
在实际应用中,协作图和顺序图常常结合使用。
第4章 顺序图和协作图-2
4.6 建立协作图的步骤
(1)确定交互过程的上下文 (2)识别参与交互过程的对象。 (3)如果需要,为每个对象设置初始特性。 (4)确定对象之间的链,以及沿着链的消息。 (5)从引发这个交互过程的初始消息开始,将随后的每个 消息附到相应的链上。 (6)如果需要表示消息的嵌套,则用Dewey十进制数表示 法。 (7)如果需要说明时间约束,则在消息旁边加上约束说明。 (8)如果需要,可以为每个消息附上前置条件和后置条件。
4.5 协作图
协作图中对象表示方法
ObjectA
ObjectA:ClassA
:ClassA
4.5 协作图
□ 多对象指的是由多个对象组成的对象集合, 一般这些对象是属于同一个类的。当需要把 消息同时发给多个对象而不是单个对象的时 候,就要使用多对象这个概念。在协作图中, 多对象用多个方框的重叠表示,如图4.12所 示。
练习:画出“添加借阅者”协作图
:Management : Window Administrator 1: addBorrower() :AddBorrower Dialog :Borrower
2: createAddDialog() 3: dialogCreated 4: dialogReady 5: typeinBorrowerInfo() 6: findBorrower() 7: notExisted 8: addNewBorrower() 9: newBorrowerAdded 10: borrowerAdded
练习
练习
5: checkStaff 1: login() : WebInterface 4: showValidatedInfo() : Administrator 8: showStaffInfo()
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
4.3.3 返回消息
: Driver
: Car
oper()
4.3.4 阻止消息和超时消息
□ 除了调用消息、异步消息和返回消息这3种 消息外,Rose还对消息类型做了扩充,增加 了阻止消息和超时消息。 □ 阻止消息是指消息发送者发出消息给接收 者,如果接收者无法立即接收消息,则发送 者放弃这个消息。Rose中用折回的箭头表示 阻止消息,如图4.10所示。
4.3.1 调用消息
□ 调用(procedure call)消息的发送者把控 制传递给消息的接收者,然后停止活动,等 待消息接收者放弃或者返回控制。
: Driver oper() : Car
图4.6 调用消息
4.3.2 异步消息
□ 异步(asynchronous)消息的发送者通过消 息把信号传递给消息的接收者,然后继续自 己的活动,不等待接收者返回消息或控制。 异步消息的接收者和发送者是并发工作的。
表4.1是一些消息的例子。 4.1是一些消息的例子。
2:display(x, y) 1.3.1:p:=find(specs) [x<0] 4:invert(x, color) 3.1 * :update() A3,B4/C2:copy(a, b) 简单消息 嵌套消息,消息带返回值 条件消息 循环消息 线程间同步
第4章 顺序图和协作图
4.1 交互图概述
○ 交互图 用来描述对象之间以及对象与参与者之 间的动态协作关系以及协作过程中行为次序的图 形文档。 顺序图 着重描述对象按照时间顺序的消息交换 协作图 着重描述系统成分如何协同工作
4.2 顺序图
○ 定义 顺序图是显示对象之间交互的图,这 些对象之间是按时间顺序排列的。 · 水平方向 对象维 · 垂直方向 时间维
4.8 工具支持
□ 第二种类型的工具是支持软件开发的正向 工程(forward engineering)和逆向工程 (reverse engineering)的工具,即支持双向 工程(round-trip engineering)的工具。 round-trip engineering
4.9 常见问题分析
objectName : ClassName : ClassName objectName
显显显显显显显显
只显显显显
只显显显显显
图4.2 顺序图中对象的命名方式
4.2 顺序图
□ 生命线在顺序图中表示为从对象图标向下 延伸的一条虚线,表示对象存在的时间,如 图4.3所示。
Driver
图4.3 生命线
: Driver oper() : Car
: Driver oper() : Car
4.3.3 返回消息
□ 返回(return)消息表示从过程调用返回。 如果是从过程调用返回,则返回消息是隐含 的,所以返回消息可以不用画出来。对于非 过程调用,如果有返回消息,必须明确表示 出来。如图4.9所示是返回消息的表示符号, 其中的虚线箭头表示对应于oper()这个消息 的返回消息。
【例1】如何在顺序图中表示消息的循环发送? 答:在4.3.5节介绍消息的语法格式时已给出了循 环发送消息的方法,即在消息名前加循环条件。 例如下面消息中的message1和message2表示要 message1 message2 重复发送的消息,其中1.1、1.2是消息序号。 1.1 * [for all order lines]:message1() 1.2 * [i:=1..n]:message2()
:Driv er oper() :Car
4.1 顺序图
4.2 顺序图
□ 顺序图中包括的建模元素有:对象(参与 者实例也是对象)、生命线(lifeline)、控 制焦点(focus of control FOC)、消息 (message)等。 message
4.2 顺序图
□ 顺序图中对象的命名方式主要有3种(协作 图中的对象命名方式也一样),如图4.2所 示:
: Robot
: Robot
active
4.6 建立协作图的步骤
□ 在分析和设计过程中,建立协作图并没有 一个标准的步骤,下面给出的步骤只是指导 性的原则: (1)确定交互过程的上下文(context)。 1 context (2)识别参与交互过程的对象。 (3)如果需要,为每个对象设置初始特性。 (4)确定对象之间的链(link),以及沿着 链的消息。
4.3.5 消息的语法格式
[integer |name ] [recurrence] □ 其中integer表示消息序号,name表示并发 的控制线程。例如,如果两个消息为3.1a, 3.1b,则表示这两个消息在激活期3.1内是并 发的。recurrence表示消息是条件执行或循 环执行,有几种格式: '*' ['[' iteration-clause ']'] 表示消息要循环发送。 '[' condition-clause ']' 表示消息要根据条件发送的。
4.5 协作图
□ 前面介绍了交互图的一种形式—顺序图, 下面介绍交互图的另一种形式—协作图。协 作图是用于描述系统的行为是如何由系统的 成分协作实现的图,协作图中包括的建模元 素有对象(包括参与者实例、多对象、主动 对象等)、消息、链等。
1 多对象
□ 在协作图中,多对象指的是由多个对象组 成的对象集合,一般这些对象是属于同一个 类的。当需要把消息同时发给多个对象而不 是单个对象的时候,就要使用多对象这个概 念。在协作图中,多对象用多个方框的重叠 表示,如图4.12所示。
4.3.5 消息的语法格式
□ 例如下面的两个子句分别表示消息要循环 发送或条件发送: * [i:=1..n] * [x>y]
4.3.5 消息的语法格式
④ return-value:将赋值为消息的返回值的名 字列表。如果消息没有返回值,则returnvalue部分被省略。 ⑤ message-name:消息名。 message-name ⑥ argument-list:消息的参数列表。
objectName : ClassName
图4.12 多对象
2 主动对象
□ 主动对象是一组属性和一组方法的封装体, 其中至少有一个方法不需要接收消息就能主 动执行(称作主动方法)。也就是说,主动 对象可以在不接收外部消息的情况下自己并 开始一个控制流。除含有主动方法外,主动 对象的其他方面与被动对象没有区别。
4.3.5 消息的语法格式
③ sequence-expression:消息顺序表达式。消 息顺序表达式是用句点“.”分隔、以冒号 “:”结束的消息顺序项(sequence-term) 列表,格式如下: sequence-term '.' …':' □ 其中可能有多个消息顺序项,各消息顺序 项之间用句点(“.”)分隔,每个消息顺序 项的语法格式为:
4.7 顺序图和协作图的比较
□ 和协作图相比,顺序图在表示算法、对象 的生命期、具有多线程特性的对象等方面相 对来说更容易一些,但在表示并发控制流方 面会困难一些。
4.7 顺序图和协作图的比较
□ 顺序图和协作图在语义上是等价的,两者 之间可以相互转换,但两者并不能完全相互 代替。顺序图可以表示某些协作图无法表示 的信息,同样,协作图也可以表示某些顺序 图无法表示的信息。例如,在顺序图中不能 表示对象与对象之间的链,对于多对象和主 动对象也不能直接显示出来,在协作图中则 可以表示;协作图不能表示生命线的分叉, 在顺序图中则可以表示。
4.4 建立顺序图的步骤
□ 在分析和设计过程中,建立顺序图并没有 一个标准的步骤,下面给出的步骤只是指导 性原则: (1) 确定交互过程的上下文(context)。 1 context (2) 识别参与交互过程的对象。 (3) 为每个对象设置生命线,即确定哪些对 象存在于整个交互过程中,哪些对象在交互 过程中被创建和撤销。
4.6 建立协作图的步骤
(5)从引发这个交互过程的初始消息开始, 将随后的每个消息附到相应的链上。 (6)如果需要表示消息的嵌Байду номын сангаас,则用Dewey 十进制数表示法。 (7)如果需要说明时间约束,则在消息旁边 加上约束说明。 (8)如果需要,可以为每个消息附上前置条 件和后置条件。
4.7 顺序图和协作图的比较
4.4 建立顺序图的步骤
(4) 从引发这个交互过程的初始消息开始, 在生命线之间自顶向下依次画出随后的各个 消息。 (5) 如果需要表示消息的嵌套,或/和表示 消息发生时的时间点,则采用控制焦点。 (6) 如果需要说明时间约束,则在消息旁边 加上约束说明。(约束是UML的3种扩展机 制之一。) (7) 如果需要,可以为每个消息附上前置条 件和后置条件。
图4.11 超时消息
4.3.5 消息的语法格式
□ UML中规定的消息语法格式如下: [predecessor] [guard-condition] [sequenceexpression] [return-value := ] message-name([argument-list])
4.3.5 消息的语法格式
4.8 工具支持
□ 制定UML规范说明的一个目的就是为了有 利于UML支持工具的开发,以吸引更多的 开发商提供与UML有关的工具。Booch在 [BRJ99] [BRJ99]中对一些可能出现的工具进行过分 析,认为以下两种类型的工具是迫切需要的, 也是将来最有可能出现的。
4.8 工具支持
□ 第一种类型的工具是支持模型以动画方式执行, 这样在分析和设计阶段就能发现系统中可能存在 的问题。事实上,目前已出现了一些支持UML模 型以动画方式执行的工具,如iUML (/products/iuml)。当然,一些 工具在提供动画支持时,对UML做了一些扩充, 增加了一些动作语义(action semantics),有关动 作语义的部分也是UML规范说明2.0中重点考虑的 一个内容。