UML 活動圖(轉載)

 活動圖:用於表示系統中各類活動的次序,它的應用很是普遍,便可用來描述用例的工做流程,也可用來描述類中某個方法的操做行爲。經常使用於表示業務流程,對系統功能建模,強調對象之間的控制流。活動圖是由狀態圖變化而來的,活動圖依據對象狀態的變化來捕獲動做。活動圖中一個活動結束後將當即進入下一個活動,狀態圖中狀態的變遷可能須要事件的觸發。主要用於系統功能建模。編程

      活動圖VS傳統流程圖:程序流程圖明確地指定了每一個活動的前後順序,而活動圖僅描述了活動和必要的工做順序,這是二者的根本區別。另外,流程圖限於順序進程,而活動圖支持併發進程。併發

      活動圖VS狀態圖:狀態圖注重於由事件驅動的系統的變化狀態;活動圖注重於從活動到活動的控制流。活動圖是狀態機的一種特殊狀況,其中所有或大多數狀態是活動狀態,而且所有或大多數轉換時經過源狀態中活動的完成來觸發的。活動圖適應狀態機的所有特徵。活動圖和狀態圖在對一個對象的生命週期建模時都是有用的。對象

      注:數據流圖和流程圖是結構化方法中的概念。生命週期

 

類模型體現了系統的靜態結構,用例模型則從用戶的角度對系統的動態行爲進行了宏觀建模,並經過交互模型將對象與消息有機地結合在一塊兒。但有些時候,咱們還須要更好地表示行爲的細節,這就能夠藉助於活動圖和狀態圖來實現。進程

   1.簡單活動圖事件

   圖2-10展現了一個用戶訂單處理過程的流程圖,接下來就結合這個基本的活動圖來學會正確的閱讀方法。事務

12.jpg

圖2-10用戶訂單處理簡單活動圖同步

   (1)初始節點和活動終點。在活動圖中有兩個特殊的節點,一個用來表示活動的初始節點,它用一個實心圓表示,在一張不包括子圖的活動圖中有且只有一個初始節點。而另外一個則是表示活動處理完成的活動終點,它用一個圓圈內加一個實心圓來表示,在活動圖中可能包含多個活動終點。例如,在本例中,用戶取消和訂單完成就是兩個可能的活動終點。工作流

   (2)活動節點。活動節點是活動圖中最主要的元素之一,它用來表示一個活動,例如圖2-10中的「用戶下訂單」、「用戶選擇支付方式」、「生成送貨單」等都是活動節點。在UML中,活動節點所描述的活動能夠是原子的動做,也能夠是能進一步分解的一系列操做;它能夠是文字描述、表達式、事件等。在圖2-11中列出的就是一些可能的活動節點描述。產品

13.jpg

圖2-11活動節點

   (3)轉換。當一個活動結束時,控制流就會立刻傳遞給下一個活動節點,在活動圖中稱之爲轉換,用一條帶箭頭的直線來表示。若是須要對這些轉換設置一些條件,使其在知足特定的條件時才觸發,則能夠藉助監護條件來完成。

    (4)分支與監護條件。對於任何一個控制流而言,都必定會存在分支、循環等形式的控制流。在活動圖中,分支用一個菱形表示,它有一個進入轉換(箭頭從外指向分支符號),一個或多個離開轉換(箭頭從分支符號指向外)。而每一個離開轉換上都會有一個監護條件,用來表示知足什麼條件的時候執行該轉換。但要注意,在多個離開轉換上的監護條件不能有矛盾,不然就會使得流程產生混亂。

   雖然在活動圖中,沒有直接提供表示循環的建模元素,但能夠利用分支來實現「循環」控制流的表示。例如,在圖2-10所示的例子中,一個訂單可能對應多個供應商,若是訂單沒有完成的話,說明還有供應商沒有完成送貨任務,所以能夠在分支「全部訂單項已送貨完畢」中,增長一個離開轉換,指向「供應商送貨」活動節點來表示這種循環,修改後的活動圖如圖2-12所示。

14.jpg

圖2-12修改後的簡單活動圖

   (5)分岔與匯合。在實際的控制流中,除了順序結構、分支結構和循環結構以外,還可能存在併發的事件流。在UML中,能夠採用一個同步線來講明這些並行控制流的分岔和匯合。如圖2-13所示,同步線是一條水平或垂直的粗線段。如圖2-13所示,分岔是有一個進入轉換,兩個或多個離開轉換;而匯合則是兩個或多個進入轉換,一個離開轉換。例如,在本例中,當「用戶下訂單」以後,系統將並行處理兩方面事務:一是根據訂單所涉及的產品生成送貨單;二是處理用戶的支付。這兩類事件是併發處理。當這兩個併發處理都完成時,這時控制流匯合,轉到「供應商送貨」活動中。

15.jpg

圖2-13分岔與匯合圖示

   2.帶泳道的活動圖

   簡單活動圖雖然明確地說明了整個控制流的過程,可是卻沒有說明每一個活動是由誰作的。對應到編程而言,就是沒有明確地表示出每一個活動是由什麼類來負責的;對應到業務建模,就是沒有明確地表示出機構中的哪個部門負責實施什麼操做。

   爲了在簡單活動圖的基礎上,有效地表示各個活動由誰負責的信息,能夠經過泳道(SwimLane)來實現。例如針對圖2-12所示的活動圖,活動的主要負責人包括客戶、系統、供應商,所以能夠將其分紅三個泳道,繪製出如圖2-14所示的活動圖。

16.jpg

圖2-14帶泳道的活動圖

   在圖2-14中,泳道將活動圖中的活動節點分紅了幾個小組,每一個小組都顯示出了負責實施這些操做的角色。在本圖中,這些都是一些現實世界中的實體,而一樣,也能夠用來表示不一樣的類。

   每一個泳道在視覺上是用一條垂直的線將它們分開,而且每一個泳道都必須有一個惟一的名稱,例如本圖中的客戶、系統、供應商。從圖中也能夠看出,每一個活動節點、分支是必須只屬於一個泳道的,而轉換、分岔與匯合是能夠跨泳道的。經過泳道,咱們不只體現了整個活動控制流,還體現出了每一個活動的實施者。

相關文章
相關標籤/搜索