解析UML動態建模中消息 狀態圖和順序圖

2021-01-10 51CTO

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

1.消息

在面向對象技術中,對象間的交互是通過對象間消息的傳遞來完成的。在UML的四個動態模型中均用到消息這個概念。通常,當一個對象調用另一個對象中的操作時,即完成了一次消息傳遞。當操作執行後,控制便返回到調用者。對象通過相互間的通信(消息傳遞)進行合作,並在其生命周期中根據通信的結果不斷改變自身的狀態。

在UML動態建模中,消息的圖形表示是用帶有箭頭的線段將消息的發送者和接收者聯繫起來,箭頭的類型表示消息的類型,如圖2所示。


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

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

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

異步消息(AsynchronousMessage)表示異步控制流。當調用者發出消息後不用等待消息的返回即可繼續執行自己的操作。異步消息主要用於描述實時系統中的並發行為。

2.狀態圖

UML動態建模中狀態圖(StateDiagram)用來描述一個特定對象的所有可能狀態及其引起狀態轉移的事件。大多數面向對象技術都用狀態圖表示單個對象在其生命周期中的行為。一個狀態圖包括一系列的狀態以及狀態之間的轉移。

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

 中間狀態包括兩個區域:名字域和內部轉移域,如圖3所示。圖中內部轉移域是可選的,其中所列的動作將在對象處於該狀態時執行,且該動作的執行並不改變對象的狀態。

一個狀態可以進一步地細化為多個子狀態,我們將可以進一步細化的狀態稱作複合狀態。子狀態之間有"或關係"和"與關係"兩種關係。或關係(如圖4)說明在某一時刻僅可到達一個子狀態。例如,一個處於行駛狀態的汽車,在"行駛"這個複合狀態中有向前和向後兩個不同的子狀態,在某一時刻汽車要麼向前,要麼向後。與關係(如圖5)說明複合狀態中在某一時刻可同時到達多個子狀態(稱為並發子狀態)。具有並發子狀態的狀態圖稱為並發狀態圖。

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

  3.順序圖

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

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

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

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

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

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

【編輯推薦】

UML動態建模機制詳解 UML動態建模中合作圖和活動圖解析 名師講解UML動態建模機制中消息,狀態圖和順序圖用法 五大UML建模工具免費體驗 深入剖析UML動態建模機制中的四種動態模型

【責任編輯:

程華權

TEL:(010)68476606】

點讚 0

相關焦點

  • UML實踐---UML活動圖、順序圖、狀態圖、協作圖
    UML實踐----UML活動圖、順序圖、狀態圖、協作圖 本文向大家介紹一下UML實踐,UML中有九種建模的圖標,即用例圖、類圖、對象圖、順序圖等,這裡就向大家介紹一下UML實踐中UML活動圖,順序圖,狀態圖花費協作圖。
  • 解析UML順序圖通用規則
    順序圖,主要有UML順序圖簡介,通用規則和消息的原則等內容,相信通過本文的學習你對UML順序圖的概念應該有深刻的理解。UML順序圖簡介UML順序圖是將交互關係表示為一個二維圖。縱向是時間軸,時間沿豎線向下延伸。橫向軸代表了在協作中各獨立對象的類元角色。類元角色用生命線表示。當對象存在時,角色用一條虛線表示,當對象的過程處於激活狀態時,生命線是一個雙道線。
  • UML動態建模中合作圖和活動圖解析
    本節我們來學習一下UML動態建模機制,主要學習一下動態行為中的合作圖和活動圖,相信通過本節的學習你對UML動態建模機制有一定的認識。下面就是合作圖和活動圖的詳細介紹了。
  • 深入剖析建模工具UML中有哪些UML圖
    一個對象圖是類圖的一個實例。由於對象存在生命周期,因此對象圖只能在系統某一時間段存在。4)狀態圖描述一個實體基於事件反應的動態行為,顯示了該實體如何根據當前所處的狀態對不同的時間做出反應的。通常創建一個UML狀態圖是為了以下的研究目的:研究類、角色、子系統、或組件的複雜行為。
  • 解析UML順序圖中分類器分層
    解析UML順序圖中分類器分層 UML順序圖有很多值得學習的地方,對它的概念你是否了解,本文就向大家介紹一下UML順序圖中分類器分層,希望本文的介紹對你的學習有所幫助。
  • 需求分析——掌握和使用UML建模語言順序圖模型
    在前面的文章中,我們建立了類圖模型,類圖模型描述了系統的類及類之間的關係。類圖模型也稱為系統的靜態結構,因此從類圖模型中我們還看不到業務的處理過程以及類與類交互的信息,在UML建模語言中,這些信息是通過順序圖來描述的。
  • 面向對象中包括哪些UML圖及每件圖的作用
    UML面向對象分析及其包括的圖、建模步驟一、敘述基於UML的面向對象分析設計過程1)識別系統的用例和角色首先對項目進行需求調研,依據項目的業務流程圖和數據流程圖以及項目中涉及的各級操作人員,通過分析,識別出系統中的所有用例和角色;接著分析系統中各角色和用例間的聯繫,再使用UML建模工具畫出系統的用例圖
  • UML建模在財會管理系統中的應用
    UML包括概念的語義,表示法和說明,提供了靜態、動態、系統環境及組織結構的模型。同時UML對建模提供了兩種圖形,靜態圖和動態圖。UML建模中靜態圖包括:用例圖(UsecaseDiagram)、類圖(ClassDiagram)、對象圖(ObjectDiagram)、組件圖(ComponentDiagram)和配置圖(DeploymentDiagram);動態圖包括時序圖(SequenceDiagram)、協作圖(CollaborationDiagram)、狀態圖(StateDiagram)和活動圖(ActivityDiagram
  • 全面認識九種基本的UML模型圖
    本文和大家重點討論一下UML模型圖的概念,標準建模語言UML定義了下列5類、共9種模型圖,每種模型圖都有各自的特點,相互之間也有一定的聯繫。具體內容請看本文詳細介紹。九種基本的UML模型圖從考察系統的不同角度出發,UML定義了不同的模型圖。
  • UML實例:ATM的狀態圖 活動圖和協作圖詳解
    UML實例:ATM的狀態圖 活動圖和協作圖詳解 UML統一建模語言在軟體開發過程中經常會用到,這裡就向大家介紹一個UML實例:ATM取款機系統,本文向大家介紹一下ATM中的狀態圖,活動圖和協作圖,希望本文的介紹對你的學習有所幫助。
  • UML靜態結構圖與動態行為圖的定義與作用
    UML靜態結構圖與動態行為圖的定義與作用 UML靜態結構圖與動態行為圖的定義與作用你是否了解,本文就向大家簡單介紹一下,希望通過本文的介紹你對UML靜態結構圖和動態行為圖有深入的了解。
  • 專家解析UML面向對象分析過程及包含圖形
    專家解析UML面向對象分析過程及包含圖形 本文向大家介紹一下UML面向對象分析及其包括的圖、建模步驟,在學習UML建模語言的過程中,你可能會遇到UML面向對象問題,這裡和大家分享一下。
  • 產品經理進階:如何用UML的順序圖表達思想?
    今天,要說的就是這門共同語言——UML(統一建模語言),它包括:活動圖、順序圖、用例圖、部署圖、類圖、包圖、對象圖、合作圖、狀態圖等,每種圖都適用於不同的場景,各有各的適用範圍,綜合起來就是一套全方位、立體化模型,可從不同角度詮釋產品。
  • 解析UML活動圖的七大組成元素
    本文和大家重點討論一下UML活動圖的概念,UML活動圖是UML用於對系統的動態行為建模的另一種常用工具,它描述活動的順序,展現從一個活動到另一個活動的控制流。UML活動圖在本質上是一種流程圖。
  • 產品經理必看:常用的UML建模詳解
    翻譯過來就是統一建模語言。它對產品經理最主要的作用是用於需求分析中更好的梳理邏輯,同時能夠提升溝通效率。UML主要包括圖表中的十一種,那在本次的介紹中,只講解類圖、構件圖、部署圖、活動圖、狀態機圖、順序圖、用例圖。
  • UML圖繪製的注意點和實例分析
    狀態圖是描述一個實體基於事件反應的動態行為,顯示了該實體所有可能的狀態,以及事件發生時狀態的轉移條件。總結一句話,狀態圖就是把類的狀態的改變連城一張圖。狀態圖的元素包括狀態、轉移和動作。元素的形式如下圖所示,黑點分別為起始點,矩形為狀態,箭頭上時狀態改變的動作和事件。狀態圖可以看做是類圖的補充,因為狀態本身就是類的狀態。
  • UML設計的九種圖例及其區別
    4、活動圖描述用例要求所要進行的活動,以及活動間的約束關係,有利於識別並行活動。能夠演示出系統中哪些地方存在功能,以及這些功能和系統中其他組件的功能如何共同滿足前面使用用例圖建模的商務需求。5、狀態圖描述類的對象所有可能的狀態,以及事件發生時狀態的轉移條件。可以捕獲對象、子系統和系統的生命周期。
  • 學習筆記 全面認識UML活動圖
    UML活動圖是UML用於對系統的動態行為建模的另一種常用工具,它描述活動的順序,展現從一個活動到另一個活動的控制流。活動圖在本質上是一種流程圖。UML活動圖著重表現從一個活動到另一個活動的控制流,是內部處理驅動的流程。
  • UML基礎與應用--UML活動圖解析
    UML基礎與應用--UML活動圖解析 UML建模語言有很多值得學習的地方,你對UML活動圖是否熟悉,這裡就向大家介紹一下UML基礎與應用--UML活動圖,希望通過本文的介紹你對UML活動圖有全面的認識。
  • 時序圖、活動圖、狀態圖、協作圖的區別
    時序圖 時序圖用於描述對象之間的傳遞消息的時間順序, 即用例中的行為順序.當執行一個用例時, 時序圖中的每條消息對應了一個類操作或者引起轉換的觸發事件. 在 UML 中, 時序圖表示為一個二維的關係圖, 其中, 縱軸是時間軸, 時間延豎線向下延伸. 橫軸代表在協作中各個獨立的對象. 當對象存在時, 生命線用一條虛線表示, 消息用從一個對象的生命線到另一個對象的生命線的箭頭表示.