自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

解析UML動態(tài)建模中消息 狀態(tài)圖和順序圖

開發(fā) 架構
你對UML動態(tài)建模機制是否熟悉,本文就向大家介紹一下,對象間的交互是通過對象間消息的傳遞來完成的,而在UML的四個動態(tài)模型中均用到消息這個概念。

本文和大家 重點討論一下UML動態(tài)建模機制問題,主要包括消息,狀態(tài)圖和順序圖等內(nèi)容,希望通過本文的學習你對UML動態(tài)建模機制有一定的認識。首先看一下消息的概念。

1.消息

  在面向?qū)ο蠹夹g中,對象間的交互是通過對象間消息的傳遞來完成的。在UML的四個動態(tài)模型中均用到消息這個概念。通常,當一個對象調(diào)用另一個對象中的操作時,即完成了一次消息傳遞。當操作執(zhí)行后,控制便返回到調(diào)用者。對象通過相互間的通信(消息傳遞)進行合作,并在其生命周期中根據(jù)通信的結果不斷改變自身的狀態(tài)。

  在UML動態(tài)建模中,消息的圖形表示是用帶有箭頭的線段將消息的發(fā)送者和接收者聯(lián)系起來,箭頭的類型表示消息的類型,如圖2所示。

  


  UML定義的消息類型有三種:

  簡單消息(SimpleMessage)表示簡單的控制流。用于描述控制如何在對象間進行傳遞,而不考慮通信的細節(jié)。

  同步消息(SynchronousMessage)表示嵌套的控制流。操作的調(diào)用是一種典型的同步消息。調(diào)用者發(fā)出消息后必須等待消息返回,只有當處理消息的操作執(zhí)行完畢后,調(diào)用者才可繼續(xù)執(zhí)行自己的操作。

  異步消息(AsynchronousMessage)表示異步控制流。當調(diào)用者發(fā)出消息后不用等待消息的返回即可繼續(xù)執(zhí)行自己的操作。異步消息主要用于描述實時系統(tǒng)中的并發(fā)行為。

  2.狀態(tài)圖

  UML動態(tài)建模中狀態(tài)圖(StateDiagram)用來描述一個特定對象的所有可能狀態(tài)及其引起狀態(tài)轉(zhuǎn)移的事件。大多數(shù)面向?qū)ο蠹夹g都用狀態(tài)圖表示單個對象在其生命周期中的行為。一個狀態(tài)圖包括一系列的狀態(tài)以及狀態(tài)之間的轉(zhuǎn)移。

  (1)狀態(tài) 所有對象都具有狀態(tài),狀態(tài)是對象執(zhí)行了一系列活動的結果。當某個事件發(fā)生后,對象的狀態(tài)將發(fā)生變化。狀態(tài)圖中定義的狀態(tài)有:初態(tài)、終態(tài)、中間狀態(tài)、復合狀態(tài)。其中,初態(tài)是狀態(tài)圖的起始點,而終態(tài)則是狀態(tài)圖的終點。一個狀態(tài)圖只能有一個初態(tài),而終態(tài)則可以有多個。

 中間狀態(tài)包括兩個區(qū)域:名字域和內(nèi)部轉(zhuǎn)移域,如圖3所示。圖中內(nèi)部轉(zhuǎn)移域是可選的,其中所列的動作將在對象處于該狀態(tài)時執(zhí)行,且該動作的執(zhí)行并不改變對象的狀態(tài)。

  

  一個狀態(tài)可以進一步地細化為多個子狀態(tài),我們將可以進一步細化的狀態(tài)稱作復合狀態(tài)。子狀態(tài)之間有"或關系"和"與關系"兩種關系?;蜿P系(如圖4)說明在某一時刻僅可到達一個子狀態(tài)。例如,一個處于行駛狀態(tài)的汽車,在"行駛"這個復合狀態(tài)中有向前和向后兩個不同的子狀態(tài),在某一時刻汽車要么向前,要么向后。與關系(如圖5)說明復合狀態(tài)中在某一時刻可同時到達多個子狀態(tài)(稱為并發(fā)子狀態(tài))。具有并發(fā)子狀態(tài)的狀態(tài)圖稱為并發(fā)狀態(tài)圖。

  

 

  (2)轉(zhuǎn)移 狀態(tài)圖中狀態(tài)之間帶箭頭的連線被稱為轉(zhuǎn)移。狀態(tài)的變遷通常是由事件觸發(fā)的,此時應在轉(zhuǎn)移上標出觸發(fā)轉(zhuǎn)移的事件表達式。如果轉(zhuǎn)移上未標明事件,則表示在源狀態(tài)的內(nèi)部活動執(zhí)行完畢后自動觸發(fā)轉(zhuǎn)移。

  3.順序圖

  順序圖(SequenceDiagram)用來描述對象之間動態(tài)的交互關系,著重體現(xiàn)對象間消息傳遞的時間順序。UML動態(tài)建模中順序圖存在兩個軸:水平軸表示不同的對象,垂直軸表示時間。順序圖中的對象用一個帶有垂直虛線的矩形框表示,并標有對象名和類名。垂直虛線是對象的生命線,用于表示在某段時間內(nèi)對象是存在的。對象間的通信通過在對象的生命線間畫消息來表示。消息的箭頭指明消息的類型。

順序圖中的消息可以是信號(Signal)、操作調(diào)用或類似于C++中的RPC(RemoteProcedureCalls)和Java中的RMI(RemoteMethodInvocation)。當收到消息時,接收對象立即開始執(zhí)行活動,即對象被激活了。通過在對象生命線上顯示一個細長矩形框來表示激活。

  消息可以用消息名及參數(shù)來標識。消息也可帶有順序號,但較少使用。消息還可帶有條件表達式,表示分支或決定是否發(fā)送消息。如果用于表示分支,則每個分支是相互排斥的,即在某一時刻僅可發(fā)送分支中的一個消息。

  在順序圖的左邊可以有說明信息,用于說明消息發(fā)送的時刻、描述動作的執(zhí)行情況以及約束信息等。一個典型的例子就是用于說明一個消息是重復發(fā)送的。另外,可以定義兩個消息間的時間限制。

  一個對象可以通過發(fā)送消息來創(chuàng)建另一個對象,當一個對象被刪除或自我刪除時,該對象用"X"標識。

  另外,在很多算法中,遞歸是一種很重要的技術。當一個操作直接或間接調(diào)用自身時,即發(fā)生了遞歸。產(chǎn)生遞歸的消息總是同步消息,返回消息應是一個簡單消息。
 

【編輯推薦】

  1. UML動態(tài)建模機制詳解
  2. UML動態(tài)建模中合作圖和活動圖解析
  3. 名師講解UML動態(tài)建模機制中消息,狀態(tài)圖和順序圖用法
  4. 五大UML建模工具免費體驗
  5. 深入剖析UML動態(tài)建模機制中的四種動態(tài)模型

 

 

責任編輯:佚名 來源: csdn.net
相關推薦

2010-06-30 10:42:23

UML動態(tài)建模機制

2010-07-06 11:21:37

UML狀態(tài)圖

2009-12-17 10:14:04

UML建模

2010-06-13 15:03:25

UML實踐

2010-07-06 16:19:56

UML圖形

2010-07-05 12:21:36

UML行為圖

2010-06-09 15:19:20

UML狀態(tài)圖

2010-07-09 16:30:31

UML狀態(tài)圖

2010-07-09 17:21:32

UML狀態(tài)圖

2010-07-06 12:00:23

UML活動圖

2010-07-08 11:20:13

UML動態(tài)建模

2010-07-12 14:16:19

UML活動圖

2010-06-09 14:31:31

UML狀態(tài)圖

2010-06-10 10:20:21

2010-06-10 13:14:48

UML狀態(tài)圖

2010-06-09 14:43:27

2010-06-09 14:21:05

UML狀態(tài)圖

2010-06-09 14:10:04

UML狀態(tài)圖

2010-07-09 11:23:07

UML動態(tài)建模

2010-07-01 15:36:22

UML順序圖
點贊
收藏

51CTO技術棧公眾號