統一建模語言UML輕鬆入門(4) 動態建模

2021-05-25 05:06:18 字數 4152 閱讀 5451

靜可描形,動可描行。動和靜是辯證的兩面,在

uml中,靜態建模可以描述系統的組織和結構,而動態建模則可描述系統的行為和動作。

前一節中介紹的類圖和物件圖主要用於靜態建模,本節我們將描述

uml中的動態建模機制。在動態建模機制中,以訊息來完成物件之間的互動,用狀態圖、順序圖、協作圖和活**來描述系統的行為。

4.1

訊息

在物件導向領域,兩個物件的互動是通過訊息的傳送和接收來完成的。訊息分為簡單訊息、同步訊息和非同步訊息:(1

)簡單訊息:只是表示控制如何從乙個物件發給另乙個物件,並不包含控制的細節;(2

)同步訊息:同步意味著阻塞和等待,如果物件

a給物件

b傳送乙個訊息,物件

a會等待物件

b執行完這個訊息,接著才進行自身的工作;(3

)非同步訊息:非同步意味著非阻塞,如果物件

a給物件

b傳送乙個訊息,物件

a不必等待物件

b執行完這個訊息,就可以接著進行自身的工作。

4.2

順序圖

順序圖(也稱序列圖)是一種互動圖(

interaction diagram

,用於描述執行系統功能的各個角色之間相互傳遞訊息的順序關係,顯示跨越多個物件的系統控制流程),強調的是時間和訊息的次序,用來說明系統的動態情況,順序圖由參與者、物件、物件生命線和訊息組成。乙個順序圖顯示了一系列的物件(通常是類的例項,也可以代表其他事物的例項,例如協作、元件和節點)和在這些物件之間傳送和接收的訊息。

4.1

圖書入庫順序圖

圖書管理系統中圖書入庫的順序圖如圖

4.1所示,對於順序圖,往往在文字表述上會出現「當…時…」、「首先」、「然後」、「接著」、「…發出…訊息」,「…響應…訊息」等詞彙。例如圖

4.1的順序圖可用文字表達為:

當管理人員把新書入庫時,首先要求登入(輸入使用者名稱和口令),經系統的「登錄檔單」驗證,若正確無誤,則可繼續下一步互動,否則拒絕該管理人員進入系統。若登入正確,管理人員可發出查詢請求訊息,系統的「圖書入庫表單」物件響應請求。若管理人員發出增加或刪除庫存圖書請求,「庫存圖書」物件將響應該訊息,找出資料庫中的相關資料並執行相應的操作。此後,管理人員應按下提交鍵確認請求,「圖書入庫表單」介面物件應該響應該請求,並發出儲存訊息,才由「庫存圖書 」物件響應儲存訊息,進行資料庫儲存操作。如果管理人員結束圖書入庫,發出退出系統的請求,則系統的「登錄檔單」介面物件響應請求,關閉系統。

4.2

購買商品順序圖而圖

4.2則給出了電子購物系統中購買商品的順序圖,通過觀察順序圖,我們可以很清晰地看出顧客購買商品的流程。

4.3

狀態圖

狀態圖是

uml中的狀態機檢視。狀態機由物件的各個狀態和連線這些狀態的轉換組成。每個狀態對乙個物件在其生命期中滿足某種條件的乙個時間段建模,當乙個事件發生時,它會觸發狀態間的轉換,導致物件從一種狀態轉化到另一新的狀態。與轉換相關的活動執行時,轉換也同時發生。

狀態圖用於描述物件可以擁有的狀態以及引起狀態相互轉移的事件和條件,它揭示了物件的生命週期,是針對類的一種建模工具。狀態是物件前一次操作的結果,事件是引起狀態向另一狀態轉化的活動。所有物件都有狀態,但通常只對具有複雜行為的類建立狀態圖。狀態圖強調的是事件驅動的物件的動作,這在對反應式系統的建模是相當重要的。

兩個類的狀態圖之間可以相互傳送訊息,乙個狀態還可以有巢狀的子狀態,各子狀態之間的關係可以為與

/或關係。

在如圖4.3

所示的車載

gps終端系統中,車載

gps終端一方面與

gps衛星通訊,另一方面將從

gps衛星獲得的位置資訊(經度、維度等)通過

gsm短訊息與車輛監控排程中心進行互動。

4.3

車載

gps終端系統

在這樣的系統中,鑑於通訊過程中

gps終端可能處於不同的狀態,我們可用狀態圖來對其進行描述,這樣很直觀和明確。圖

4.4給出了

gps終端的狀態(待命、有問題、通話中、短訊息通訊中)及其狀態之間的變遷關係。

4.4 gps

終端的狀態圖

4.4

活**

活**用於描述系統、用例、程式模組中的邏輯流程的先後執行次序、並行次序,是對人類組織的現實世界中的工作流程的建模,有助於理解系統高層活動的執行行為。

活**中的主要概念是「活動」,而「活動」的具體含義又取決於作圖目的和抽象層次:(1

)當活**用於描述系統行為時,主要側重於系統多個用例活動之間相互制約的執行順序,同時,識別出系統中存在的可以並行進行的用例,此時,活動表示系統要完成的任務;(2

)當活**用於描述用例時,用於描述用例中的操作執行次序和操作完成的結果,顯示多個物件的操作是如何相互結合起來共同完成用例的乙個指令碼,揭示出操作之間的並行性,為編碼實現提供開發並行程式的便利,此時,活動表示類中的方法,即操作。允許將某個組織或執行者要完成的若干操作聚集在泳道中,以明確責任。

活**用於低層次程式模組的作用類似於流程圖,但活**還可以描述並行操作,而流程圖則只能描述序列操作。例如,圖

4.5給出了生產管理系統中的定單處理用例的活**,它明顯地帶有流程圖的特色,但是,它還表示了處理過程中的並行過程。圖

4.5中的付款認可活動屬於財務管理用部門的職責,其它活動屬於銷售部門的職責,這兩個部門在並行運作。

4.5

定單處理的活**

4.6則給出了藥品管理系統中藥品採購入庫過程的活**。

4.6

藥品入庫的活**

4.5

協作圖

與順序圖一樣,協作圖也是一種互動圖,用於描述物件之間的協作關係,其模型元素與序列圖的基本相同,但它側重於描述物件之間是如何相互連線的,強調的是傳送和接收訊息的物件之間的組織結構。順序圖著重體現物件間訊息傳遞的時間順序,協作圖著重於哪些物件間有訊息傳遞,表達了物件之間的靜態連線關係。順序圖和協作圖是同構的,它們相互之間可以轉化而不損失資訊,依靠工具協作圖和順序圖可互相轉換。

4.7

註冊新課程的協作圖

4.7給出了註冊新課程的協作圖,圖中描述了註冊者、課程表單、管理員和課程物件之間的協作關係,物件之間的連線關係上給出了傳送和接收的訊息。

4.6 uml

圖之間的關係**

2-4給出了多種型別的圖,這些圖之間存在著或直接或間接的關係(如圖

4.8),這體現了

uml中的辯證法。

4.8 uml

圖的關係

用例圖主要用來描述系統的外部行為;類圖和物件圖用來定義類和物件以及它們的屬性和操作;狀態圖描述類的物件所有可能的狀態以及事件發生時狀態的轉移條件;順序圖顯示物件之間的動態合作關係,它強調物件之間訊息傳送的順序,同時顯示物件之間的互動;合作圖強調物件間的動態合作關係;活**描述滿足用例要求所要進行的活動以及活動間的約束關係,有利於識別並行活動。

除此之外,我們還沒有詳細講解的包圖用於描述系統的分層結構,構件圖描述**部件的物理結構及各部件之間的依賴關係,配置圖定義系統中軟硬體的物理體系結構。

統一建模語言UML輕鬆入門之動態建模

靜可描形,動可描行。動和靜是辯證的兩面,在uml中,靜態建模可以描述系統的組織和結構,而動態建模則可描述系統的行為和動作。前一節中介紹的類圖和物件圖主要用於靜態建模,本節我們將描述uml中的動態建模機制。在動態建模機制中,以訊息來完成物件之間的互動,用狀態圖 順序圖 協作圖和活 來描述系統的行為。4...

統一建模語言UML輕鬆入門之用例

目前,在的內地版 神鵰俠侶 中,楊過和小龍女有乙份不為人知的默契與浪漫,那就是他們所繪製的並肩小人圖。這樣的小人圖,是uml用例圖的一部分,被稱為參與者。2.1 用例與用例圖 用例是需求分析中最重要的概念,需求表徵了乙個系統的設計特性 特徵和行為,描述乙個系統的需求意味著描述了建立在該系統外部的事物...

統一建模語言UML輕鬆入門之用例

統一建模語言uml輕鬆入門之用例 目前,在的內地版 神鵰俠侶 中,楊過和小龍女有乙份不為人知的默契與浪漫,那就是他們所繪製的並肩小人圖。這樣的小人圖,是uml用例圖的一部分,被稱為參與者。2.1 用例與用例圖 用例是需求分析中最重要的概念,需求表徵了乙個系統的設計特性 特徵和行為,描述乙個系統的需求...