統一模組化語言UML輕松入門(4)――動态模組化
---------------------------------------------------------------------
宋寶華 email:[email][email protected][/email]
靜可描形,動可描行。動和靜是辯證的兩面,在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圖的關系
用 例圖主要用來描述系統的外部行為;類圖和對象圖用來定義類和對象以及它們的屬性和操作;狀态圖描述類的對象所有可能的狀态以及事件發生時狀态的轉移條件; 順序圖顯示對象之間的動态合作關系,它強調對象之間消息發送的順序,同時顯示對象之間的互動;合作圖強調對象間的動态合作關系;活動圖描述滿足用例要求所 要進行的活動以及活動間的限制關系,有利于識别并行活動。
除此之外,我們還沒有詳細講解的包圖用于描述系統的分層結構,構件圖描述代碼部件的實體結構及各部件之間的依賴關系,配置圖定義系統中軟硬體的實體體系結構。
本文轉自 21cnbao 51CTO部落格,原文連結:http://blog.51cto.com/21cnbao/120269,如需轉載請自行聯系原作者