[摘]UML学习三:标准建模语言UML的动态建模机制

1. 消息

以面向对象技术中,
对象中的互动是经过对象中音讯之传递来就的。
以UML的季独动态模型中全都用到音讯者概念。
日常,当一个目的调用另一个目标被的操作时,
就是完成了一样不成信息传递。
当操作实践后,控制就归到调用者。
目的通过互动间的通信(信息传递)举行合作,
连当其生命周期中冲通信的结果连变动我的状态。

在UML中,
音信之图表示是用含箭头的线条将信息之发送者和接收者联系起来,
箭头的类型表示信息之门类
UML定义之音信类型有两种:
简言之音信(Simple Message)
    表示简单的控制流。
    用于描述控制什么在目标中开展传递,而非考虑通信的细节。
联手信息(Synchronous Message)
    表示嵌套的控制流。
    操作的调用是同样种典型的一头音讯。
    调用者发出消息后必等音信再次来到,
    唯有当处理音讯的操作实施完毕后,调用者才可继续执行自己之操作。
异步音讯(Asynchronous Message)
    表示异步控制流。
    当调用者发出音信继不用等音讯的回来即可继续执行自己之操作。
    异步新闻至关紧要用于描述实时系统面临的产出行为。

2. 状态图

状态图(State Diagram)
从而来叙述一个特定对象的具备可能状态及其引起状态转移的波。
大多数面向目的技术还用状态图表示单个对象在这生命周期中之行。
一个态图包括同样雨后春笋的状态及状态之间的变换。
(1) 状态 
抱有目的还有状态,
状态是目标进行了相同多级活动之结果。
当某个事件有后,对象的状态将爆发变化。
状态图备受定义之状态暴发:初态、终态、中间状态、复合状态。
里面,初态是状态图的起头点,而终态则是状态图的顶。
一个态图只好有一个初态,而终态则可以有五只。

一个状态可以更地细化为两个子状态,
大家用得以进一步细化的状态称为复合状态。
旁状态里有”或涉”和”与涉及”两种植涉。
要么涉嫌表明当有平整日才可到一个子状态。
比如,一个处行驶状态的汽车,
以”行驶”这些复合状态被爆发进同于后少只例外之子状态,
当有平随时汽车如故前进,要么为后。
跟涉及表达复合状态被当某某平日时可又抵达多少个子状态(称为并发子状态)。
富有并发子状态的状态图名并发状态图。

(2) 转移 
状态图中状态里带箭头的连线为名转移。
状态的转移日常是由事件触发的,
这会儿许以转换上标明触发转移的风波表达式。
只要换上未注明事件,
虽说意味于起点状态的里活动实践完毕后自行触发转移。

3. 顺序图

顺序图(Sequence Diagram)
故而来讲述对象中动态的并行关系,
重点呈现对象中音信传递的时刻各样。
逐图是个别单轴:
水平轴表示不同的目标,垂直轴代表时间。
次第图中之目的用一个富含垂直虚线的矩形框表示,并标有对象名及类名。
笔直虚线是目标的生命线,用于表示以某段时间外对象是有的。
目的中的通信通过以靶的生命线间写音讯来代表。
音信之箭头指明消息之项目。

依次图中之信息可以是信号(Signal)、操作调用
仍然类似于C++中的RPC(RemoteProce dure Calls)和Java中之RMI(Remote Method
Invocation)。
当接过信时,接收目的就起初进行活动,即对象被激活了。
透过当靶生命线上出示一个细细矩形框来表示激活。

信息可以据此信息名及参数来标识。
新闻也可含蓄顺序号,但正如少使用。
信还只是含蓄条件表达式,表示分支或决定是否发送信息。
而用于表示分支,则每个分支是并行排斥的,
尽管以有平随时才只是发送分支中的一个信。

每当顺序图的左手可以生证实消息,
用来注脚音信发送的每一天、描述动作之履意况及约音信非常。
一个卓越的例证就是用来注明一个音讯是又发送的。
除此以外,可以定义七个消息里的年月限制。

一个目的好经过发送信息来创设另一个对象,
当一个目的吃删去或我删除时,该对象用”X”标识。

除此以外,在重重算法中,递归是平等种植万分重点之技艺。
当一个操作直接或间接调用自身时,即暴发了递归。
有递归的信息总是同步音讯,重返新闻应是一个简易音信。

4. 合作图

合作图(Collaboration Diagram)
用以描述互相合作的靶子中的相互关系及链接关系。
虽顺序图和搭档图都用于描述对象中的相关系,
然则重点不一致。
各样图要显示互相的日子各类,
经合图虽着重反映相互对象中的静态链接关系。

经合图备受目的的外观与各样图被的同样。
万一一个靶在信的互相中于创设,
即便只是当目的名称从此标以{new}。
仿佛地,如若一个目的在相互中让剔除,
则可每当对象名称从此标以{destroy}。
靶中的链接关系近乎于类图被的关联(但不论是多重性标志)。
因此在对象中的链接上标明带有音讯串的信(简单、异步或一块信息)
来发布对象中的音讯传递。

(1) 链接 
链接用于表示对象中的各类涉及,
席卷组成关系的链接(Composition Li nk)、
会聚关系的链接(Aggregation Link)、
限定关系的链接(Qualified Link)
同导航链接(Navigation Link)。
各类链接关系以及类图中之概念相同,
在链接的端点地点好显得对象的角色称及模板信息。

(2) 消息流 
当合作图的链接线上,
足据此富含信息串的音讯来叙述对象中的相。
信的箭头指明音信的流淌方向。
信息串表明要发送的音、消息之参数、信息之再次来到值
与新闻之体系号等音信

5. 活动图

活动图(Activity Diagram)
的施用很普遍,
它既是可用来讲述操作(类的措施)的行为,
否可以描述用例和目的中的做事过程。
活动图是由于状态图变化而来的,它们各自用于不同之目标。
移步图依照对象状态的转变来捕获动作(将要执行的办事要挪动)与动作之结果。
挪动图备受一个走截止晚
将这进入下一个移动(在状态图中状态的扭转可能要事件之接触)。

举手投足及换
相同件操作可以描述为同样雨后春笋有关的走。
挪动仅仅来一个先导点,但好发多单截至点。
动里的易允许带有guard-condition、send-clause和action-expression,
夫语法与状态图备受定义的一致。
一个倒可以顺序地及当任何一个平移之后,这是概括的依次关系。
要当倒图备受以一个菱形的判断标志,则好表明规范关系,
判定标志能够生出差不六只输入和输出转移,
不过每当移动的运转中仅仅点其中的一个出口转移。

倒图对代表并发行也为蛮有由此。
每当移动图被,
利用一个称为同步条之档次粗线能够用一律条转移分为多独冒出执行之分层,
或者以大半只转移并为同样长条转移。
此时,唯有输入的换全体使得,同步条才会接触转移,进而实施后的倒,

泳道
挪图告诉你来了啊,
不过尚未报您该项活动由哪位来好。
在先后设计中,那表示活动图没有描述来各种活动由什么人类来就。
泳道解决了就同题材。
它将活动图的逻辑描述和各样图、合作图的事描述成起来。
泳道用矩形框来表示,
属有泳道的运动在该矩形框内,
以对象名在矩形框的顶部,表示泳道中之走由该对象承担。
对象
当运动图备受好出现对象。
目的足以看作移动的输入或输出,
对象与移动其中的输入/输出关系由虚线箭头来表示。
一经仅表示对象被某同运动之震慑,
即使可用不带箭头的虚线来连接对象和移动。
信号
当走图备受好代表信号的出殡和收,分别用发送和接纳标志来代表。
发送和吸收标志吗只是与对象相连,用于表示信息的发送者和接收者。

6. 季栽图的运

点对UML中用来描述系统动态行为之季单图
(状态图、顺序图、合作图和活动图)做了概括地介绍。
即时四只图俱只是用于系的动态建模,
然它分其它主题不同,分别用于不同的目的。
脚对怎么着正确使用即时几乎单图做同简约的下结论,
于实质上的建模过程中如依据具体境况灵活运用那个指出。

第一,不要对系统受之每个接近都写状态图。
尽管那样做老大完善,但不过浪费精力,其实乃恐怕一味关注某些类的一言一行。
对的做法是:
为扶持通晓类设写它的状态图。
状态图描述跨越三个用例的单个对象的行为,而未称描述多单目的中的作为合作。
啊夫,常以状态图跟外技术(如顺序图、合作图和运动图)组合使用。

顺序图和合作图称描述单个用例中几乎只目的的行事。
个中顺序图卓越对象中互为的依次,
倘合作图的布局方法能再了然地意味着出目的之间静态的连天关系。
当行较为简单时,顺序图和合作图是最好好的取舍。
然当作为比变复杂时,这一点儿只图将失去其清晰度。
于是,即使想显示超越多用例或多线程的错综复杂行为,可考虑下移动图。
此外,顺序图和合作图仅符合描述对象之间的协作关系,
假定未抱对作为展开准确定义,
假诺想描述跨越多独用例的么对象的行,应当采取状态图。