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

2021-09-08 06:28:35 字數 2921 閱讀 2120

靜可描形,動可描行。動和靜是辯證的兩面,在uml中,靜態建模可以描述系統的組織和結構,而動態建模則可描述系統的行為和動作。

前一節中介紹的類圖和物件圖主要用於靜態建模,本節我們將描述uml中的動態建模機制。在動態建模機制中,以訊息來完成物件之間的互動,用狀態圖、順序圖、協作圖和活**來描述系統的行為。

4.1訊息

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

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

(2)同步訊息:同步意味著阻塞和等待,如果物件a給物件b傳送乙個訊息,物件a會等待物件b執行完這個訊息,接著才進行自身的工作;

(3)非同步訊息:非同步意味著非阻塞,如果物件a給物件b傳送乙個訊息,物件a不必等待物件b執行完這個訊息,就可以接著進行自身的工作。

4.2順序圖

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

圖書管理系統中圖書入庫的順序圖如圖4.1所示,對於順序圖,往往在文字表述上會出現"當…時…"、"首先"、"然後"、"接著"、"…發出…訊息","…響應…訊息"等詞彙。例如圖4.1的順序圖可用文字表達為:

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

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

4.3狀態圖

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

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

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

在如圖4.3所示的車載gps終端系統中,車載gps終端一方面與gps衛星通訊,另一方面將從gps衛星獲得的位置資訊(經度、維度等)通過gsm短訊息與車輛監控排程中心進行互動。

在這樣的系統中,鑑於通訊過程中gps終端可能處於不同的狀態,我們可用狀態圖來對其進行描述,這樣很直觀和明確。圖4.4給出了gps終端的狀態(待命、有問題、通話中、短訊息通訊中)及其狀態之間的變遷關係。

4.4 活**

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

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

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

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

活**用於低層次程式 模組的作用類似於流程圖,但活**還可以描述並行操作,而流程圖則只能描述序列操作。例如,圖4.5給出了生產管理系統中的定單處理用例的活**,它明顯 地帶有流程圖的特色,但是,它還表示了處理過程中的並行過程。圖4.5中的付款認可活動屬於財務管理用部門的職責,其它活動屬於銷售部門的職責,這兩個部 門在並行運作。

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

4.5協作圖

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

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

4.6 uml圖之間的關係

**2-4給出了多種型別的圖,這些圖之間存在著或直接或間接的關係(如圖4.8),這體現了uml中的辯證法。

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

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

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

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

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

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

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

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