面向對象方法uml分析第4章_第1頁
面向對象方法uml分析第4章_第2頁
面向對象方法uml分析第4章_第3頁
面向對象方法uml分析第4章_第4頁
面向對象方法uml分析第4章_第5頁
已閱讀5頁,還剩17頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、1第4章 活動圖 用例圖顯示系統(tǒng)應該做什么,活動圖則指明了系統(tǒng)將如何實現(xiàn)它的目標。活動圖顯示鏈接在一起的高級動作,代表系統(tǒng)中發(fā)生的操作流程。活動圖是融合了Jim Odell的事件流圖、SDL狀態(tài)建模、工作流建模以及Peri網(wǎng)等技術,用來在面向對象系統(tǒng)的不同組件之間建模工作流和并行過程行為。例如,可以使用活動圖描述某個用例的基本操作流程。 活動圖的主要作用就是來描述工作流,其中每個活動都代表工作流中一組動作的執(zhí)行?;顒訄D可用來為不同類型的工作流建模,一個工作流是能產生一個可觀測值或在執(zhí)行時生成的一個實體的動作序列。2本章學習要點:理解活動圖的功能了解創(chuàng)建活動圖的步驟掌握活動圖基本標記符掌握條件的

2、使用掌握分叉和連結的使用掌握泳道概念及其標記符理解對象流概念及標記符34.1 定義活動圖 活動圖本質上是一種流程圖,其中幾乎所有或大多數(shù)的狀態(tài)都處于活動狀態(tài),它描述從活動到活動的控制流。用來建模工作流時,活動圖可以顯示用例內部和用例之間的路徑;活動圖還可以向讀者說明需要滿足什么條件用例才會有效,以及用例完成后系統(tǒng)保留的條件或者狀態(tài);在建模活動圖時,常常會發(fā)現(xiàn)前面沒有想到、附加的用例。在某些情況下,常用的功能可以分離到它們自己的用例中,這樣便大大減少了開發(fā)應用程序的時間。 活動圖在用例圖之后提供了系統(tǒng)分析中對系統(tǒng)的進一步充分描述?;顒訄D允許讀者了解系統(tǒng)的執(zhí)行,以及如何根據(jù)不同的條件和刺激改變執(zhí)行

3、方向。 44.2 認識活動圖標記符除了標記符略微不同之外,活動圖保留了許多傳統(tǒng)的流程圖特征?;顒訄D中有三種主要的標記組件:活動、狀態(tài)和轉移。另外,還有判斷、分叉和匯合等多種標記符,只有綜合熟練地使用它們才能完成優(yōu)秀的活動圖?;顒右卜Q為動作狀態(tài)(action state),它是活動圖中指示要完成某項工作的指示符;狀態(tài)指示內部的值,它可以指示每個域是否為臟,也可以指示成功或者失敗。轉移可以組合活動和狀態(tài),顯示活動圖的遷移和路徑。圖4-1演示了簡單的活動圖。4.2.1 活動活動(動作狀態(tài))是活動圖的核心符號,它表示工作流過程中命令的執(zhí)行或活動的進行。與等待事件發(fā)生的一般等待狀態(tài)不同,活動狀態(tài)用于等待

4、計算處理工作的完成。當活動完成后,執(zhí)行流程轉入到活動圖的下一個活動?;顒泳哂幸韵绿攸c:原子性 活動是原子的,它是構造活動圖中最小單位,已經(jīng)無法分解為更小的部分。不可中斷性 活動是不可中斷的,它一旦開始運行就不能中斷,一直運行到結束。瞬時行為性 活動是瞬時的行為,它所占用的處理時間極短,有時甚至可以忽略。存在入轉換 活動可以有入轉換,入轉換可以是動作流,也可以是對象流。動作狀態(tài)至少有一條出轉換,這條轉換以內部動作的完成為起點,與外部事件無關。4.2.2 狀態(tài)狀態(tài)通常使用一個批示系統(tǒng)當前狀態(tài)的詞來或短語來標識。狀態(tài)可以在活動圖中為讀者說明轉折點的轉移,或者用來標記工作流中以后的條件。狀態(tài)具有以下特

5、點:狀態(tài)可以分解成其他活動或狀態(tài),由于它是一組不可中斷的動作或操作的組合,所以可以被中斷。狀態(tài)內部活動可以用另一個活動圖來表示。和活動不同,狀態(tài)可以有入口動作和出口動作,也可以有內部轉移。活動是狀態(tài)的一個特例,如果某個活動狀態(tài)只包括一個動作,那么它就是一個活動。64.2.3 轉移 一個活動圖有很多動作或者活動狀態(tài),活動圖通常開始于初始狀態(tài),然后自動轉換到活動圖的第一個動作狀態(tài),一旦該狀態(tài)的動作完成后,控制就會不加延遲地轉換到下一個動作狀態(tài)或者活動狀態(tài)。所有活動之間的轉換稱之為轉移。轉移不斷重復進行,直到碰到一個分支或者終止狀態(tài)為止。 本章前面的活動圖中已經(jīng)多次用到了轉移。轉移是狀態(tài)圖重要組成部

6、分,是活動圖中不可缺少的內容,它指定了活動之間、狀態(tài)之間或活動與狀態(tài)之間的關系。 74.2.4 控制點從活動轉移到其他活動或狀態(tài)時都可以有轉移條件,這些條件是讓轉移修改任何工作流方向所必需的。如果沒有這些條件任何事件都會從開始狀態(tài)一直到結束狀態(tài),這里把控制轉移方向的條件稱為控制點??刂泣c(guard)標記兩個活動或狀態(tài)之間的轉移條件,用來允許控制流僅沿著滿足預置條件的方向轉移。 84.2.5 判斷節(jié)點與合并節(jié)點 當想根據(jù)不同條件執(zhí)行不同動作序列時,可以使用判斷點。在UML的活動圖中,使用菱形作為判斷的標記符。菱形標記符除了標記判斷外還能表示多條控制流的合并。本節(jié)將詳細講解有關菱形標記符進行判斷

7、和合并的相關知識。94.2.6 綜合應用前面我們講到了活動圖的幾種基本標記符,這里就來使用這些標記符來建造一個很簡單的物流查詢系統(tǒng)查詢并顯示貨物信息的活動圖。該系統(tǒng)需要鍵入貨物號,依據(jù)貨物號進行查找貨物相關信息,圖為完整的活動圖。104.3 其他標記符 除了前面講到的基本標記符外,活動圖還具有其他一些標記符。如分叉、匯合、泳道和對象流等,它們也是活動圖中不可缺少的標記符。這些標記符與基本標記符一起構建了活動圖的豐富內容,綜合使用它們能增強繪圖技術豐富了活動圖表達能力。114.3.1 事件和觸發(fā)器事件(event)和觸發(fā)器(trigger)的用法和控制點相似,區(qū)別是它們不是通過表達式的控制工作流

8、,而是被觸發(fā)來把控制流移到對應的方向。事件非常類似于操作和方法與其對應的操作相比是較高層的分析標記符組件(本書大部分章節(jié)還處理分析階段)。事件是動作發(fā)生的指示符,它可以包含一個或多個參數(shù),參數(shù)放在事件名后的括號中,圖演示了事件的使用方法。124.3.2 分叉和匯合在前面曾經(jīng)講過菱形標記符,它能根據(jù)條件不同將控制流分為多個方向,也可以將多個控制流合并成一個路徑。但對象在運行時可能會存在兩個或多個并發(fā)運行的控制流,此時菱形標記符,但不能完成這些功能。為了對并發(fā)的控制流建模,UML中引入了分叉和匯合的概念。分叉和匯合與轉移形影不離。分叉是用于將一個控制流分為兩個或多個并發(fā)運行的分支,它可以用來描述并

9、發(fā)線程,每個分叉可以有一個輸入轉移和兩個或多個輸出轉移,每個轉移都可以是獨立的控制流。 134.3.3 泳道對于程序設計而言,活動圖沒有指出每個活動是由哪個類負責。而對于建模而言,活動圖沒有表達出某些活動是由哪些人或哪些部門負責。雖然可以在每個活動上標記出其所負責的類或者部門,但難免帶出諸多麻煩。泳道的引用解決了這些問題。泳道將活動圖劃分為若干組,每一組指定給負責這組活動的業(yè)務組織,即對象。在活動圖中泳道區(qū)分了負責活動的對象,它明確地表示了哪些活動是由哪些對象進行的。在包含泳道的活動圖中每個活動只能明確地屬于一個泳道。 144.3.4 對象流用活動圖描述某個對象時,可以將涉及到的對象放到活動圖

10、中并用一個依賴將其連接到進行創(chuàng)建、修改和撤銷的活動或狀態(tài)上,對象的這種使用方法就構成了對象流。對象流是活動圖中活動或狀態(tài)與對象之間的依賴關系,表示活動使用對象或者活動或狀態(tài)對對象的影響。在活動圖中,對象流標記符用帶箭頭的虛線表示。如果箭頭從活動出發(fā)指向對象,則表示該活動對對象施加了一定的影響,施加的影響包括創(chuàng)建、修改和撤銷等;如果箭頭是從對象指向活動,則表示該活動對使用對象流所指示的對象。 154.4 建造活動圖模型本書在第二章中曾經(jīng)給出了圖書館管理系統(tǒng)的用例圖,在第三章中給出了圖書館管理系統(tǒng)的類圖,本節(jié)就在前面兩章的基礎上綜合運用講到活動圖的相關知識,并分析用例圖,畫出圖書館管理系統(tǒng)的活動圖

11、。用例圖分為兩部分,一部分是圖書管理員的用例圖,而另外一部分則是圖書館系統(tǒng)的系統(tǒng)管理員用例圖。本節(jié)選取兩個用例圖中某一個基本用例,并逐步實現(xiàn)其狀態(tài)圖,讓讀者了解繪制活動圖的基本步驟和技術要領。164.4.1 建?;顒訄D步驟活動圖描述用例圖,用活動流來描述系統(tǒng)參與者和系統(tǒng)之間的關系。建?;顒訄D也是一個反復的過程,活動圖具有復雜的動作和工作流,檢查修改活動圖時也許會修改整個工程。所以有條理的建模會避免許多錯誤,從而提高建模效率。建模活動圖時,可以按照以下五步來進行:(1)標識需要活動圖的用例。(2)建模每一個用例的主路徑。(3)建模每一個用例的從路徑。(4)添加泳道來標識活動的事務分區(qū)。(5)改進

12、高層活動并添加到更多活動圖。174.4.2 標識用例建?;顒訄D時,首先要確定對誰進行建模。在圖書館中,圖書管理員用到最多的應該就是借書操作和還書操作。這里單以借書用例為例,來建模借書用例的活動圖。在例圖一章中曾經(jīng)給出了完整的用例圖,這里把圖書管理員借書用例從完整的用例圖中獨立出來,如圖 184.4.3 建模主路徑 建模用例的活動圖時,往往利用一條顯示的路徑執(zhí)行工作,然后從該路徑進行擴展。前面曾給出獨立的借書用例圖,這里就建模該用例的活動圖主路徑。 4.4.4 建模從路徑活動圖的主路徑描述了用例圖的主要工作流,此時的活動圖沒有任何轉移條件或錯誤處理。建模從路徑的目標就是進一步添加活動圖的內容,包括判斷、轉移條件和錯誤處理等。在主路徑的基礎上完善活動圖。例如,在Check這一活動的作用包括了對借閱者是否存在超期圖書和借書數(shù)量是不否超過規(guī)定要求的判斷。如果兩種判斷同時滿足條件,才開始下面活動的進行。 4.4.5 添加泳道 前面曾經(jīng)講到過泳道的相關知識,在活動圖中加入泳道能夠清晰地表達出各個活動所由哪些

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論