UML輕鬆入門–動態建模

來源:互聯網
上載者:User
靜可描形,動可描行。動和靜是辯證的兩面,在UML中,靜態建模可以描述系統的組織和結構,而動態建模則可描述系統的行為和動作。

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

  1訊息

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

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

  (2)同步訊息:同步意味著阻塞和等待,如果對象A給對象B發送一個訊息,對象A會等待對象B執行完這個訊息,接著才進行自身的工作;

  (3)非同步訊息:非同步意味著非阻塞,如果對象A給對象B發送一個訊息,對象A不必等待對象B執行完這個訊息,就可以接著進行自身的工作。

  2順序圖

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


圖1 圖書入庫順序圖

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

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

  3狀態圖

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

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

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

  例如車載GPS終端系統中,車載GPS終端一方面與GPS衛星通訊,另一方面將從GPS衛星獲得的位置資訊(經度、維度等)通過GSM短訊息與車輛監控調度中心進行互動。

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


圖2 GPS終端的狀態圖

  4 活動圖表

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

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

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

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

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

 5共同作業圖表

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

  6 UML圖之間的關係

  以上我們給出了多種類型的圖,這些圖之間存在著或直接或間接的關係(3),這體現了UML中的辯證法。


圖3 UML圖的關係

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

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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.