UML活動圖教案



單擊此處編輯母版文本樣式,第二級,第三級,第四級,第五級,單擊此處編輯母版標(biāo)題樣式,單擊此處編輯母版標(biāo)題樣式,單擊此處編輯母版文本樣式,第二級,第三級,第四級,第五級,*,*,單擊此處編輯母版標(biāo)題樣式,單擊此處編輯母版文本樣式,第二級,第三級,第四級,第五級,*,*,單擊此處編輯母版標(biāo)題樣式,單擊此處編輯母版文本樣式,第二級,第三級,第四級,第五級,*,*,單擊此處編輯母版標(biāo)題樣式,單擊此處編輯母版文本樣式,第二級,第三級,第四級,第五級,*,*,單擊此處編輯母版標(biāo)題樣式,單擊此處編輯母版文本樣式,第二級,第三級,第四級,第五級,*,*,單擊此處編輯母版標(biāo)題樣式,單擊此處編輯母版文本樣式,第二級,第三級,第四級,第五級,*,UML活動圖教案,1.描述工作流,訂貨處理活動圖,2.描述工程組織過程,建筑工程過程活動圖,3.描述算法流程,2 活動圖的圖形表示,在UML中,活動表示成圓角矩形如果一個活動引發(fā)下一個活動,兩個活動的圖標(biāo)之間用帶箭頭的直線連接活動圖也有起點和終點活動圖中還包括分支與合并、分叉與匯合等模型元素分支與合并的圖標(biāo)和狀態(tài)圖中的判定的圖標(biāo)相同,而分叉與匯合則用一條加粗的線段表示。
活動起點,活動,分叉,匯合,活動終點,分支,合并,活動圖的圖形表示,3 活動圖的組成元素,組成UML的圖形元素:,動作狀態(tài)(,Action State,),活動狀態(tài)(,Activity State,),動作流(,Action Flow,),分支(,Branch,),與合并(,Merge,),分叉(,Fork,),與匯合(,Join,),泳道(,Swimlane,),對象流(,Object Flow,),動作狀態(tài),動作狀態(tài)是指執(zhí)行原子的、不可中斷的動作,并在此動作完成后通過完成轉(zhuǎn)換轉(zhuǎn)向另一個狀態(tài)的狀態(tài)動作狀態(tài)使用平滑的圓角矩形表示,動作狀態(tài)所表示的動作寫在圓角矩形內(nèi)部活動狀態(tài),活動狀態(tài)用于表達(dá)狀態(tài)機(jī)中的一個非原子的運行,活動狀態(tài)可以分解成其他子活動或動作狀態(tài).,活動狀態(tài)的表示圖標(biāo)也是平滑的圓角矩形,并可以在圖標(biāo)中給出入口動作和出口動作等信息活動狀態(tài)的內(nèi)部活動可以用另一個活動圖來表示和動作狀態(tài)不同,活動狀態(tài)可以有入口動作和出口動作,也可以有內(nèi)部轉(zhuǎn)移動作狀態(tài)是活動狀態(tài)的一個特例,如果某個活動狀態(tài)只包括一個動作,那么它就是一個動作狀態(tài)動作流,所有動作狀態(tài)之間的轉(zhuǎn)換流稱之為動作流活動圖的轉(zhuǎn)換也用帶箭頭的直線表示,箭頭的方向指向轉(zhuǎn)入的方向。
活動流,分支與合并,分支一般用于表示對象類所具有的條件行為條件行為用分支和合并表達(dá)在活動圖中分支與合并用空心小菱形表示一個分支有一個入轉(zhuǎn)換和兩個帶條件的出轉(zhuǎn)換,出轉(zhuǎn)換的條件應(yīng)當(dāng)是互斥的,這樣可以保證只有一條出轉(zhuǎn)換能夠被觸發(fā)一個合并有兩個帶條件的入轉(zhuǎn)換和一個出轉(zhuǎn)換,合并表示從對應(yīng)的分支開始的條件行為的結(jié)束分支與合并,分叉與匯合,分叉用于將動作流分為兩個或者多個并發(fā)運行的分支,而匯合則用于同步這些并發(fā)分支,以達(dá)到共同完成一項事務(wù)的目的分叉可以用來描述并發(fā)線程,每個分叉可以有一個輸入轉(zhuǎn)換和兩個或多個輸出轉(zhuǎn)換,每個轉(zhuǎn)換都可以是獨立的控制流匯合代表兩個或多個并發(fā)控制流同步發(fā)生,當(dāng)所有的控制流都達(dá)到匯合點后,控制才能繼續(xù)往下進(jìn)行每個匯合可以有兩個或多個輸入轉(zhuǎn)換和一個輸出轉(zhuǎn)換分叉和匯合都使用加粗的水平線段表示分叉與匯合:用來對并發(fā)的控制流建模分叉用于將活動流分為兩個或多個并發(fā)運行的分支分叉,匯合,分叉,泳道,泳道將活動圖中的活動化分為若干組,并把每一組指定給負(fù)責(zé)這組活動的業(yè)務(wù)組織即對象泳道區(qū)分了負(fù)責(zé)活動的對象,明確地表示了哪些活動是由哪些對象進(jìn)行的每個活動只能明確地屬于一個泳道泳道用垂直實線繪出,垂直線分隔的區(qū)域就是泳道。
在泳道上方可以給出泳道的名字或?qū)ο螅▽ο箢悾┑拿?,該對象(對象類)?fù)責(zé)泳道內(nèi)的全部活動泳道沒有順序,不同泳道中的活動既可以順序進(jìn)行也可以并發(fā)進(jìn)行,動作流和對象流允許穿越分隔線對象流,對象流是動作狀態(tài)或者活動狀態(tài)與對象之間的依賴關(guān)系,表示動作使用對象或者動作對對象的影響對象流中的對象特點:,一個對象可以由多個動作操縱一個動作輸出的對象可以作為另一個動作輸入的對象在活動圖中,同一個對象可以多次出現(xiàn),它的每一次出現(xiàn)表明該對象正處于對象生存期的不同時間點對象流用帶有箭頭的虛線表示如果箭頭從動作狀態(tài)出發(fā)指向?qū)ο?,則表示動作對對象施加了一定的影響如果箭頭從對象指向動作狀態(tài),則表示該動作使用對象流所指向的對象對象流:反映活動與對象之間的依賴關(guān)系,表示對象對活動的作用或活動對對象的影響,用依賴關(guān)系表示對象流,1)如果箭頭從活動指向?qū)ο?,表示活動對對象的?chuàng)建、修改或撤銷等的影響;,2)如果箭頭從對象指向活動,表示該活動將使用所指向的對象對象下的方括號表示對象的狀態(tài),4 活動圖建模技術(shù),識別要對其工作流描述的,類或?qū)ο?確定工作流的初始狀態(tài)和終止?fàn)顟B(tài),明確工作流的邊界對,動作狀態(tài)或活動狀態(tài),建模對,動作流,建模。
對,對象流,建模對建立的模型進(jìn)行,精化和細(xì)化,用例圖,用例的事件流描述,1 “Deposit fund”(存款),1.1 簡單描述,本用例允許客戶借助Clerk存款到賬戶中1.2 前置條件(Pre-Conditions),在本用例開始前,Clerk必須登錄到系統(tǒng)中1.3 后置條件(Post-Conditions),如果用例成功,則客戶CustomerActor賬戶中存款的金額發(fā)生變化否則,系統(tǒng)狀態(tài)不變1.4 擴(kuò)充點(Extension Points),無1.5 事件流,1.5.1 基流(Basic Flow),當(dāng)CustomerActor想存錢到自己的賬戶時,要向Clerk提交存款單和現(xiàn)金,用例啟動1)系統(tǒng)提示Clerk輸入用戶姓名、用戶的id號、賬號和所存款項的金額2)Clerk輸入相關(guān)信息后提交,系統(tǒng)確認(rèn)賬戶是否存在并有效(當(dāng)用戶名、用戶id與賬戶的戶主信息一致,且賬戶處于非凍結(jié)狀態(tài)時,賬戶有效)(E-1)3)系統(tǒng)建立存款事件記錄,并更新賬戶的相關(guān)信息1.5.2 替代流(Alternative Flow),E-1:賬戶不存在或無效,顯示提示信息,用戶可以重新輸入或終止該用例用例的事件流描述,2 “Withdraw fund”(取款),2.1 簡單描述,本用例允許Clerk按照客戶的要求從客戶的賬戶中取款。
2.2 前置條件(Pre-Conditions),在本用例開始前,用戶必須登錄到系統(tǒng)中2.3 后置條件(Post-Conditions),如果用例成功,則客戶CustomerActor賬戶中存款的金額發(fā)生變化否則,系統(tǒng)狀態(tài)不變2.4 擴(kuò)充點(Extension Points),無2.5 事件流,2.5.1 基流(Basic Flow),當(dāng)Customer想從自己的賬戶中取錢時,要向Clerk提交取款單,用例啟動1)系統(tǒng)提示Clerk輸入用戶姓名、用戶的id號、賬號和取款金額2)Clerk輸入相關(guān)信息后提交,系統(tǒng)確認(rèn)賬戶是否存在并有效(當(dāng)用戶名、用戶id與賬戶的戶主信息一致,且賬戶處于非凍結(jié)狀態(tài)時,賬戶有效)(E-1),賬戶中的存款金額是否足夠支付所取款項(E-2)3)系統(tǒng)建立取款事件記錄,并更新賬戶的相關(guān)信息2.5.2 替代流(Alternative Flow),E-1:若賬戶不存在或無效,顯示提示信息,用戶可以重新輸入或終止該用例E-2:賬戶中的存款金額不足,顯示提示信息,用戶可以重新輸入金額或終止該用例用例的事件流描述,3 “Transfer fund”(轉(zhuǎn)賬),3.1 簡單描述,本用例允許Clerk按照客戶的要求將資金從一個賬戶轉(zhuǎn)到另一個賬戶。
3.2 前置條件(Pre-Conditions),在本用例開始前,用戶必須登錄到系統(tǒng)中3.3 后置條件(Post-Conditions),如果用例成功,則客戶CustomerActor賬戶中存款的金額發(fā)生變化否則,系統(tǒng)狀態(tài)不變3.4 擴(kuò)充點(Extension Points),無3.5 事件流,3.5.1 基流(Basic Flow),當(dāng)Customer要求轉(zhuǎn)賬時,用例啟動,(1)系統(tǒng)提示Clerk輸入用戶姓名、用戶的id號、賬戶號碼和轉(zhuǎn)賬金額2)Clerk輸入相關(guān)信息后提交資金轉(zhuǎn)入賬戶所在的銀行只能在所提供的銀行列表中選擇)3)系統(tǒng)確認(rèn)資金轉(zhuǎn)出賬戶是否存在并有效(當(dāng)用戶名、用戶id與賬戶的戶主信息一致,且賬戶處于非凍結(jié)狀態(tài)時,賬戶有效)(E-1),資金轉(zhuǎn)出賬戶中的金額是否足夠支付所轉(zhuǎn)款項(E-2)4)更新資金轉(zhuǎn)出賬戶的相關(guān)信息5)為資金轉(zhuǎn)出賬戶建立轉(zhuǎn)賬記錄6)存儲轉(zhuǎn)賬記錄7)判斷資金轉(zhuǎn)入賬戶是否屬于同一銀行,,如果資金轉(zhuǎn)入賬戶與資金轉(zhuǎn)出賬戶屬于同一銀行,則執(zhí)行分支流S-1:在同一銀行的賬戶間轉(zhuǎn)賬如果資金轉(zhuǎn)入賬戶與資金轉(zhuǎn)出賬戶屬于不同銀行,則執(zhí)行分支流S-2:在不同銀行的賬戶間轉(zhuǎn)賬用例的事件流描述,3.5.2 分支流(Subflows),S-1:在同一銀行的賬戶間轉(zhuǎn)賬,(1)系統(tǒng)確認(rèn)資金轉(zhuǎn)入賬戶是否存在并有效(當(dāng)賬戶處于非凍結(jié)狀態(tài)時,賬戶有效)(E-1)。
2)更新資金轉(zhuǎn)入賬戶的相關(guān)信息3)為資金轉(zhuǎn)入賬戶建立轉(zhuǎn)賬記錄4)存儲轉(zhuǎn)賬記錄S-2:在不同銀行的賬戶間轉(zhuǎn)賬,(1)發(fā)送轉(zhuǎn)賬通知給另一個銀行3.4.3 替代流(Alternative Flow),E-1:賬戶不存在或無效,顯示提示信息,用戶可以重新輸入或終止該用例E-2:賬戶中的存款金額不足,顯示提示信息,用戶可以修改所轉(zhuǎn)款項的金額或終止該用例使用ROSE創(chuàng)建活動圖,要創(chuàng)建活動圖,首先展開“Logic View”菜單項,然后在“Logic View”圖標(biāo)上單擊鼠標(biāo)右鍵,在彈出的菜單中選擇“New”下的“Activity Diagram”選項建立新的活動圖在狀態(tài)圖建立以后,雙擊狀態(tài)圖圖標(biāo),會出現(xiàn)狀態(tài)圖繪制區(qū)域,活動圖工具條,選擇工具,文本,注釋,狀態(tài),初始狀態(tài),終止?fàn)顟B(tài),狀態(tài)轉(zhuǎn)換,反身轉(zhuǎn)換,活動,水平同步條,垂直同步條,判斷,泳道,活動圖中增加模型元素,活動圖也有初始和終止?fàn)顟B(tài)初始狀態(tài)在活動圖中用實心圓表示,終止?fàn)顟B(tài)在活動圖中用含有實心圓的空心圓表示鼠標(biāo)左鍵點擊活動圖工具欄中初始狀態(tài)圖標(biāo),然后在繪制區(qū)域要繪制的地方單擊鼠標(biāo)左鍵就可以創(chuàng)建初始狀態(tài)終止?fàn)顟B(tài)的創(chuàng)建方法和初始狀態(tài)相同創(chuàng)建初始和終止?fàn)顟B(tài),要創(chuàng)建動作狀態(tài),首先點擊活動圖工具欄中的“Activity”圖標(biāo),然后在繪制區(qū)域要繪制動作狀態(tài)的地方單擊鼠標(biāo)左鍵。
創(chuàng)建動作狀態(tài),修改動作狀態(tài)的屬性信息首先雙擊動作狀態(tài)圖標(biāo),在彈出的對話框“General”選項卡里進(jìn)行如名稱“Name”和文檔說明“Documentation”等屬性的設(shè)置活動規(guī)范,顯示動作類型和動作表達(dá)式,要增加操作,右擊選擇Insert,自動添加類型為Entry的操作,雙擊此處,打開動作規(guī)范窗口,動作規(guī)范窗口,選擇動作執(zhí)行的時機(jī),添加對象與對象流,(1)將對象與對象流按紐顯示在繪圖工作欄中,右擊繪圖工具欄空白處,選擇“Customize”,彈出,如下窗口,將這兩項添加到繪圖工具欄2)添加與設(shè)置對象,a.使用此按紐添加對象,結(jié)果為:,雙擊添加的對象,彈出右側(cè)窗口,在name輸入對象名,在state處選擇,彈出如下窗口,在name處輸入狀態(tài)名后返回,注意:,在同一步活動圖中,同名的對象只能通過復(fù)制來創(chuàng)建,活動圖的應(yīng)用,為工作流建模,為操作建模,The End,謝謝您的聆聽!,期待您的指正!,。
