软工UML画图
學(xué)習(xí)如何畫圖,如類圖,順序圖,流程圖,E-R圖和類代碼等
一個一個來
起始
數(shù)據(jù)流圖(功能模型)
基本符號
加工:命名要用動賓詞組;
外部實體、數(shù)據(jù)存儲、數(shù)據(jù)流:命名要用名詞;
題目說明解法
下面用個題來說明:
假設(shè)一家工廠的采購部每天需要一張定貨報表,報表按零件編號排序,表中列出所有需要再次定貨的零件。對于每個需要再次定貨的零件應(yīng)該列出下述數(shù)據(jù):零件編號、零件名稱、定貨數(shù)量、目前價格、主要供應(yīng)者和次要供應(yīng)者。零件入庫或出庫稱為事務(wù),通過放在倉庫中的CRT終端把事務(wù)報告給定貨系統(tǒng)。當(dāng)某種零件的庫存數(shù)量少于庫存量臨界值時就應(yīng)該再次定貨。
采購部是數(shù)據(jù)起點,然后最后倉庫是數(shù)據(jù)終點。中間是訂貨系統(tǒng)。
所以基本的畫圖是
然后確定好目標(biāo)后再進(jìn)行細(xì)化:
確定處理 :
零件入庫或出庫稱為事務(wù),通過放在倉庫中的CRT終端把事務(wù)報告給定貨系統(tǒng)。當(dāng)某種零件的庫存數(shù)量少于庫存量臨界值時就應(yīng)該再次定貨。
“事務(wù)的后果是改變零件庫存量,實時統(tǒng)計定貨情況” →必須有一個用于處理事物的處理
工廠的采購部每天需要一張定貨報表,報表按零件編號排序,表中列出所有需要再次定貨的零件。對于每個需要再次定貨的零件應(yīng)該列出下述數(shù)據(jù):零件編號、零件名稱、定貨數(shù)量、目前價格、主要供應(yīng)者和次要供應(yīng)者。
“采購部需要報表”→必須有一個用于產(chǎn)生報表的處理
確定數(shù)據(jù)存儲:
對于每個需要再次定貨的零件應(yīng)該列出下述數(shù)據(jù):零件編號、零件名稱、定貨數(shù)量、目前價格、主要供應(yīng)者和次要供應(yīng)者。
當(dāng)某種零件的庫存數(shù)量少于庫存量臨界值時就應(yīng)該再次定貨。
“在某個地方要有零件庫存量和臨界值數(shù)據(jù)” →必須有一個用于保存庫存清單的數(shù)據(jù)存儲
“產(chǎn)生報表和處理事務(wù)這兩個處理在時間上明顯不匹配”→必須有一個用于存放定貨信息的數(shù)據(jù)存儲
分析完上面畫圖
剛開始畫出來框架:(把系統(tǒng),起始點和終點畫好)
然后把處理和數(shù)據(jù)流和數(shù)據(jù)結(jié)構(gòu)畫上
這里解答下為啥庫存清單是雙向的,因為處理事務(wù)(進(jìn)貨)需要看庫存清單,所以會產(chǎn)生一個指向處理事務(wù)的箭頭
細(xì)化(第二層)
到這里還可以繼續(xù)細(xì)化
因為你看
當(dāng)某種零件的庫存數(shù)量少于庫存量臨界值時就應(yīng)該再次定貨。
這句話中缺貨-》訂貨-》修改庫存量等沒有體現(xiàn)出來
所以:
細(xì)化處理事務(wù)
- 接收事務(wù)
- 按照事務(wù)去修改庫存清單
- 如果更新后的庫存量少于臨界值,則應(yīng)填寫訂貨信息,這就需要一個處理定貨的加工
我畫的不太好,我用下ppt的
這里說明下定貨信息(貨物的名字啥的,數(shù)量)。因為處理事務(wù)(需要看數(shù)量)和生成報表(需要看貨物信息)都用上,所以這樣畫。
然后二層要進(jìn)行合并
合并
數(shù)據(jù)流圖中的信息提取
結(jié)束其他
我感覺這個視頻講解的還行:
軟件工程數(shù)據(jù)流圖畫法 我在tyut
鏈接:
然后我使用的ppt:
使用的視頻:數(shù)據(jù)流圖的繪制
其他例題:
高考錄取統(tǒng)分子系統(tǒng)
結(jié)構(gòu)化系統(tǒng)分析——交通違章處理
房屋中介系統(tǒng)的功能模型
軟件結(jié)構(gòu)圖(模塊層次圖(H圖)和模塊結(jié)構(gòu)圖)
模塊結(jié)構(gòu)圖
模塊結(jié)構(gòu)圖三大成分:模塊、調(diào)用、接口數(shù)據(jù)(純數(shù)據(jù)和控制信息)
基本符號
三大成分:模塊,調(diào)用,數(shù)據(jù)(純數(shù)據(jù)◎、控制信息?)
模塊結(jié)構(gòu)圖中的主要成分有:
- 模塊:用長方形表示
- 調(diào)用:從一個模塊指向另一模塊的箭頭表示前一個模塊調(diào)用后一個模塊。有循環(huán)調(diào)用和條件調(diào)用
- 純數(shù)據(jù):用帶圓圈的小箭頭表示從一個模塊傳遞給另一模塊的數(shù)據(jù)(有實義)
- 控制信息:帶涂黑圓圈的小箭頭表示一個模塊傳送給另一模塊的控制信息
所以模塊結(jié)構(gòu)圖中的調(diào)用是有箭頭指向的
題目分析解法
高考錄取統(tǒng)分子系統(tǒng)有如下功能:
(1) 計算標(biāo)準(zhǔn)分:根據(jù)考生原始分計算,得到標(biāo)準(zhǔn)分,存入考生分?jǐn)?shù)文件;
(2) 計算錄取線分:根據(jù)標(biāo)準(zhǔn)分、招生計劃文件中的招生人數(shù),計算錄取線,存入錄取線文件。
看上面視頻鏈接,數(shù)據(jù)流圖已經(jīng)畫出來了。。(后面加個數(shù)據(jù)終點(->考生))
那么看結(jié)構(gòu)圖
先畫一個基本結(jié)構(gòu):
一般上面三個是輸入,處理,輸出
他把原始分傳過去,那么下面咋樣計算原始分之類的還要細(xì)分
根據(jù)原始分得到標(biāo)準(zhǔn)分,說明在分?jǐn)?shù)處理里面使用了,再細(xì)分
那么如果使用分?jǐn)?shù)處理,也得細(xì)分。
下面加個計算標(biāo)準(zhǔn)分,把原始分傳過去,再標(biāo)準(zhǔn)分傳給分?jǐn)?shù)處理
我們還要計算錄取線等
我們看右邊,先把標(biāo)準(zhǔn)分傳過來
結(jié)果輸出要把標(biāo)準(zhǔn)分存入考生分?jǐn)?shù)文件
還差個錄取線,要計算錄取線。
根據(jù)標(biāo)準(zhǔn)分、招生計劃文件中的招生人數(shù),計算錄取線,存入錄取線件。
招生人數(shù)傳給分?jǐn)?shù)處理
然后根據(jù)標(biāo)準(zhǔn)分和招生人數(shù)計算錄取線
分?jǐn)?shù)處理得到錄取線,返回給系統(tǒng)
分?jǐn)?shù)處理如何得到錄取線?
要來個計算錄取線模塊
傳入標(biāo)準(zhǔn)分
傳入招生人數(shù)
傳回錄取線給分?jǐn)?shù)處理模塊
系統(tǒng)把錄取線,存入錄取線文件。
加一個存入錄取線文件模塊
把從系統(tǒng)來的錄取線0-》結(jié)果輸出-》存入錄取線文件
最后自己美化下
標(biāo)準(zhǔn)答案見這篇文章高考錄取統(tǒng)分子系統(tǒng)
其他東西
標(biāo)準(zhǔn)答案見這篇文章高考錄取統(tǒng)分子系統(tǒng)
借用視頻:
數(shù)據(jù)流圖轉(zhuǎn)軟件結(jié)構(gòu)圖方法tyut
鏈接:
其他例題:
也可以不像上面那樣輸入輸出處理三個模塊
自己設(shè)置模塊
比如這個題:
“工資處理”子系統(tǒng)的結(jié)構(gòu)圖
模塊層次圖(H圖)
這個就比較簡單了
就按照功能模塊往下分層
注意: 模塊層次圖(H圖)二大成分:模塊和調(diào)用(調(diào)用不要畫箭頭)
還是拿上面那個題為例:
這樣寫就行,如果還有得話可以細(xì)化
數(shù)據(jù)流圖+結(jié)構(gòu)圖綜合題
高考錄取統(tǒng)分子系統(tǒng)
基于Web的房屋中介系統(tǒng)
N-S圖(盒圖)+類C語言PDL
五種結(jié)構(gòu):順序結(jié)構(gòu)、條件選擇、多重分支選擇、當(dāng)循環(huán)、直到循環(huán)。
詳細(xì)看這篇文章:
N-S圖詳解
注意:盒圖沒有開始和結(jié)束標(biāo)志,默認(rèn)從圖的頂部開始,到圖的底部結(jié)束,單入口單出口。注意直到循環(huán)until的條件,千萬不要搞反了。
題目分析解法
N-S圖
閱讀下面的程序流程圖,試分別用N-S圖和PDL(類C語言描述)表示。
其實前面的都好看,就最后那個結(jié)束時候要注意下
你看這個題目
直到i>=50條件成立時候才結(jié)束循環(huán)
所以使用直到型循環(huán)結(jié)構(gòu) (先執(zhí)行后判斷,當(dāng)P1條件不成立的情況下,反復(fù)執(zhí)行A語句,直到P1條件成立為止)
下面畫好:
! 注意:
盒圖沒有開始和結(jié)束標(biāo)志,默認(rèn)從圖的頂部開始,到圖的底部結(jié)束,單入口單出口。注意直到循環(huán)until的條件,千萬不要搞反了。
PDL類c語言
注意:使用類C語言的偽代碼形式,注意,直到循環(huán)do…while,直到循環(huán)的條件,千萬不要搞反了。
比如上面這題
i = 1do{if ( g >=80 )輸出n、 gi = i + 1}while(i<50)比較難的也就是最后一點,直到循環(huán)do…while
關(guān)鍵在于這里的條件
學(xué)過C其實懂的
直到循環(huán)do…while
只要后面那個while的條件符合就繼續(xù)執(zhí)行那個框{}里面的內(nèi)容
所以是while(i<50)
其他題目可以仿照這個寫
其他
其他例子:
例子1
這里舉個他倆一般結(jié)合的例子:
閱讀下面的程序算法,試分別用程序流程圖和N-S圖表示。
void SortNum(int num , int flag) {int x = 0; int y = 0;while (num > 0){if (flag = = 0)x = y +2; else if (flag = = 1) x = y + 3; else x = y +4; num--} }畫出程序流程圖
畫出盒圖
這里使用當(dāng)型循環(huán),先判斷后執(zhí)行,當(dāng)P1條件成立的情況下,反復(fù)執(zhí)行A語句,直到P1條件不成立為止
例子2
下面舉下PDL偽代碼:
閱讀下面的程序流程圖,試分別用N-S圖和PDL(類C語言描述)表示
這里使用直到型循環(huán),先執(zhí)行后循環(huán),當(dāng)P1條件不成立的情況下,反復(fù)執(zhí)行A語句,直到P1條件成立為止
然后偽代碼:
這里使用do while循環(huán),可以看著上面的盒圖畫,基本一致
基本路徑測試
這個我就直接用題目講解了
int isLeap(int year){if ( year % 4= =0) ----------------------------------------1{if ( year % 100= =0) -------------------------------- 2{if ( year %400= =0) ----------------------------- 3leap=1; ----------------------------- 4elseleap=0; ------------------------------5 //endif -----------------------------6}elseleap=1; --------------------------------7//endif -------------------------------8}elseleap=0; -------------------------------- 9 // endif ---------------------------------10return leap; ---------------------------------11 }請用基本路徑測試技術(shù)完成該程序的測試,分別實現(xiàn):
(1)畫出上述程序的有向流圖,并計算該程序的環(huán)形復(fù)雜度。(各占5分,共10分)
(2)給出基本路徑集,并給出測試用例。(各占5分,共10分)
注:不能修改程序中已有的程序行號,否則不給分。
流圖
注意:
- 一般流圖給的序號都要用上,
- 記得畫T,F (對錯)
- 那些沒用的當(dāng)作中轉(zhuǎn)節(jié)點,還要最后終點,最后一個,且路徑一定要寫到程序結(jié)束,不要漏掉最后的節(jié)點,否則獨立路徑寫不完整。
- 有向流圖的路徑一定要畫箭頭
或者這樣:
環(huán)形復(fù)雜度
看有幾個環(huán)
最后+1(整體是一個環(huán))
或者:注意畫T F
這里 V(G)=邊數(shù)13-11節(jié)點數(shù)+2=4
V(G)=判定節(jié)點3個+1=4
基本路徑集+測試
測試用例設(shè)計既要寫輸入數(shù)據(jù),也要寫預(yù)期的輸出數(shù)據(jù),其他
可以見我的另一篇概念文章,
或者ppt:
下面的是UML圖,即順序,類,用例,
用例圖
基本符號
參與者(Actor)(活動者)——與應(yīng)用程序或系統(tǒng)進(jìn)行交互的用戶、組織或外部系統(tǒng)。用一個小人表示。
用例(Use Case)——用例就是外部可見的系統(tǒng)功能,對系統(tǒng)提供的服務(wù)進(jìn)行描述。(用戶能做什么事情)用橢圓表示。
子系統(tǒng)(Subsystem)——用來展示系統(tǒng)的一部分功能,這部分功能聯(lián)系緊密。
關(guān)系
用例圖中涉及的關(guān)系有:關(guān)聯(lián)、泛化、包含、擴(kuò)展。
借用這篇博客的圖片
UML建?!美龍D(Use Case Diagram)
關(guān)于它們的具體介紹一定要看上面那篇文章,理解很清楚
這里要特別說明下,我們老師講的關(guān)聯(lián)是有箭頭指向的,指向用例。
還是要看具體情況的(一般關(guān)聯(lián)實線無箭頭)
然后來畫用例圖
題目分析解法
可以看一下上面鏈接的文章下面的例題
下面我們看道例題:
學(xué)生成績管理系統(tǒng)
需求陳述:
某高校欲開發(fā)學(xué)生成績管理系統(tǒng),其基本功能包括:
(1) 基本信息管理
管理員登錄系統(tǒng)后,輸入或修改教學(xué)計劃、學(xué)生名單和教師名單。
(2) 學(xué)生選課
學(xué)生登錄系統(tǒng)后,根據(jù)教學(xué)計劃進(jìn)行選課。
(3) 分配任課教師
管理員為符合條件的課程分配教師,并打印任課通知單給教師。
(4) 成績管理
每門課程的教師在考試評分結(jié)束后,登錄系統(tǒng)錄入成績;管理員維護(hù)成績,系統(tǒng)可生成成績單(發(fā)給學(xué)生),成績統(tǒng)計分?jǐn)?shù)表(發(fā)給管理員)。
附:學(xué)生成績管理系統(tǒng)的“分配任課教師”用例的描述。
主事件流:
(1) 管理員登錄到“學(xué)生成績管理”系統(tǒng)的分配任課教師頁面,如果登錄失敗,轉(zhuǎn)A1。
(2) 管理員查詢課程庫,查詢符合條件的課程,然后查詢教師信息,為符合條件的課程分配任課教師,并打印任課通知單給教師。如果沒有合適的人選,則放棄則轉(zhuǎn)入A2。用例結(jié)束。
擴(kuò)展事件流:
A1:管理員身份驗證不合法
若管理員賬號不存在或無效,顯示提示信息,可以重新輸入或終止該用例。。
A2:取消
如果沒有符合條件的課程,則放棄;沒有合適的教師,則按取消按鈕放棄。
要求:用面向?qū)ο蠓椒▽W(xué)對該成績管理系統(tǒng)進(jìn)行分析與設(shè)計,分別完成以下工作:
(1) 給出成績管理系統(tǒng)的用例模型 (10分)
1. 先找參與者,從題目中看出有三個參與者(教師,管理員,學(xué)生)
先畫上三個小人
2. 一個一個參與者分析用例
先分析管理人員:
這里要從大方面考慮,所以從題目主事件流看出
(1) 基本信息管理
管理員登錄系統(tǒng)后,輸入或修改教學(xué)計劃、學(xué)生名單和教師名單。
(3) 分配任課教師
管理員為符合條件的課程分配教師,并打印任課通知單給教師。
(4) 成績管理
每門課程的教師在考試評分結(jié)束后,登錄系統(tǒng)錄入成績;管理員維護(hù)成績,系統(tǒng)可生成成績單(發(fā)給學(xué)生),成績統(tǒng)計分?jǐn)?shù)表(發(fā)給管理員)。
是管理信息,分配任課教師,管理成績
再分析教師:
看題目得到,好像也就這句話提到過教師干嘛
成績管理
每門課程的教師在考試評分結(jié)束后,登錄系統(tǒng)錄入成績;
所以教師用例為錄入成績
最后分析學(xué)生:
看題目得到,好像也就這句話提到過學(xué)生干嘛
(2) 學(xué)生選課
學(xué)生登錄系統(tǒng)后,根據(jù)教學(xué)計劃進(jìn)行選課。
所以學(xué)生用例為選課
這樣基本的用例和參與者畫好了
3. 補(bǔ)全關(guān)系和漏的東西
看題目:
這幾個功能都涉及到了登錄
某高校欲開發(fā)學(xué)生成績管理系統(tǒng),其基本功能包括:
(1) 基本信息管理
管理員登錄系統(tǒng)后,輸入或修改教學(xué)計劃、學(xué)生名單和教師名單。
(2) 學(xué)生選課
學(xué)生登錄系統(tǒng)后,根據(jù)教學(xué)計劃進(jìn)行選課。
(3) 分配任課教師
管理員為符合條件的課程分配教師,并打印任課通知單給教師。
(4) 成績管理
每門課程的教師在考試評分結(jié)束后,登錄系統(tǒng)錄入成績;管理員維護(hù)成績,系統(tǒng)可生成成績單(發(fā)給學(xué)生),成績統(tǒng)計分?jǐn)?shù)表(發(fā)給管理員)。
那么這些用例中包含了登錄系統(tǒng),就選用包含關(guān)系
這里為啥錄入成績不包含登錄系統(tǒng)呢?我們往下看就知道了
看題目:
(4) 成績管理
每門課程的教師在考試評分結(jié)束后,登錄系統(tǒng)錄入成績;管理員維護(hù)成績,系統(tǒng)可生成成績單(發(fā)給學(xué)生),成績統(tǒng)計分?jǐn)?shù)表(發(fā)給管理員)。
成績管理包含了錄入成績
所以它們二個是包含關(guān)系
但是我們還有其他漏的關(guān)系,還有擴(kuò)展事件流
繼續(xù)分析
(3) 分配任課教師
管理員為符合條件的課程分配教師,并打印任課通知單給教師。
這里說明分配任課教師包含打印任課通知單
/
繼續(xù)分析
(4) 成績管理
每門課程的教師在考試評分結(jié)束后,登錄系統(tǒng)錄入成績;管理員維護(hù)成績,系統(tǒng)可生成成績單(發(fā)給學(xué)生),成績統(tǒng)計分?jǐn)?shù)表(發(fā)給管理員)。
這里說明管理成績包含生成成績單,成績統(tǒng)計表
最后畫出大致:
其他
-
注意參與者和用例規(guī)范化的圖形表示,用例之間的《include》、《extend》關(guān)系的識別和表示,不要搞反了。尤其虛線箭頭的方向,表示依賴關(guān)系,《include》、《extend》的依賴關(guān)系是相反的,所以箭頭的指向也是相反的,畫圖時不要畫反了。
-
參與者要命名成名詞,用例要命名成動賓詞組。
-
參與者與用例之間用實線連接。
文章:UML建?!美龍D(Use Case Diagram)
ppt:
其他題目:
圖書館系統(tǒng)的用例圖
用例圖——門診掛號
用例圖——客戶提出申請要求貸款…
用例圖——空調(diào)公司維修服務(wù)流程
類圖
借鑒教學(xué)視頻:
uml圖做題方法(上)tyut
視頻
基本符號
類
這里簡單介紹下
詳細(xì)的看類圖詳解
- 名稱
- 特性 (類似于string name這種)
- 操作 (類似于函數(shù)方法 void add()這種)
注意類特性操作前面有符號的 + -
”+“ :Public 公有
”-“ : Private 私有
”#“:Protected 保護(hù)
接口《interface》
? 一組操作的集合,只有操作的聲明而沒有實現(xiàn)
接口名稱
接口方法
例如: 飛翔接口
public 飛方法()
或者還有另外一種寫法(”棒棒糖表示法“)關(guān)聯(lián)其他接口
例如:唐老鴨接口
public 講話
但是它會講話是講人話的,需要接口講人話
關(guān)系
繼承關(guān)系
就是泛化關(guān)系,這里叫做繼承關(guān)系
- 三角形連接大的方向
比如鳥類屬于動物類
實現(xiàn)關(guān)系(類和接口)
實現(xiàn)關(guān)系——對應(yīng)于類和接口之間的關(guān)系
例如:大雁飛方法需要接口飛翔
關(guān)聯(lián)關(guān)系(類與類)
關(guān)聯(lián)關(guān)系——描述了類的結(jié)構(gòu)之間的關(guān)系。具有方向、名字、角色和多重性等信息。一般的關(guān)聯(lián)關(guān)系語義較弱。
例如:大雁下單與氣候關(guān)聯(lián)
其實這樣的關(guān)聯(lián)很弱,如果不確定可以不寫
聚合關(guān)系(整體部分)
特殊關(guān)聯(lián)關(guān)系,指明一個聚集(整體)和組成部分之間的關(guān)系
- 菱形:連接大的方向
例如:雁陣飛包含大雁飛
組合關(guān)系(擁有)(聲明周期一樣)
組合關(guān)系——語義更強(qiáng)的聚合,部分和整體具有相同的生命周期
- 菱形:連接大的方向
嚴(yán)謹(jǐn)?shù)陌凑章暶髦芷谝粯?/li>
例如:鳥的翅膀和鳥
依賴關(guān)系
依賴關(guān)系——※描述了一個類的變化對依賴于它的類產(chǎn)生影響的情況。有多種表現(xiàn)形式, 例如綁定(bind)、友元(friend)等
比如:動物依賴水
多重性
題目分析解法
一本書有一個封面、一個目錄、一個前言、若干章、每章有若干節(jié)、每節(jié)有若干段,有若干句子,有0個或多個插圖,還有0個或多個表格,書最后有一個附錄。試建立該書的對象模型。
書,封面,目錄、前言,前言,節(jié),段,句子,插頭,表格,附錄
組合關(guān)系
書包含封面,目錄,前言,章,附錄
章包含節(jié)
節(jié)包含段
段包含句子,插圖,表格
多重性加上:這里書有若干章,一對多- 1… 1…*
章有若干節(jié) ,一對多- 1… 1…*
節(jié)有若干段,一對多- 1… 1…*
段有若干句子,一對多- 1… 1…*
有0個或多個插圖,1… 0… * …
還有0個或多個表格 1… 0… * …
其他
使用的ppt
上面那題書的題目視頻講解:
uml圖解法(下)tyut
其他題目舉例:
酒店預(yù)訂
更具體的圖書館系統(tǒng)的類圖
空調(diào)維修系統(tǒng) 類圖
學(xué)生成績管理系統(tǒng):
順序圖(時序圖)
顯示一組按時間排列的對象之間進(jìn)行交互的圖
組成元素
順序圖的元素:
- 參與者
- 對象
- 生命線
- 激活框
- 消息
- 控制框架(分支、循環(huán)、可選)
舉例:
下面一個一個講解:
參與者
參與者(Actor): 實例是一個交互過程(用例)的發(fā)起者,通常放置在最左邊。
比如上面的圖書管理員。
對象
對象就是類的一個實例,在順序圖中上方以和類相同的圖形符號表示,并帶有一條叫做“生命線”的垂直虛線。
生命線上的矩形條表示對象在特定時間的生存期。
例如:
生命線
說明了對象的生命周期。對象如果被銷毀了,其生命線就會中斷。
激活框
表明交互中對象何時起作用,激活框在順序圖中是可選的。
消息
消息是對象之間的通信,消息傳遞的同時對應(yīng)活動隨之發(fā)生。
→→→→→→→→→→
在順序圖中,消息被表示為從一個對象的生命線到另一個對象的生命線的水平箭頭。
箭頭通過消息名稱及消息參數(shù)來標(biāo)記,箭頭自上至下的垂直位置來表示時間的先后順序。
消息響應(yīng)后可能會回送結(jié)果,發(fā)送請求的消息采用實線箭頭,返回結(jié)果的消息采用反向的虛線箭頭。
如果事件流較多,可備選流單獨繪制
如果用例的備選事件流的步驟較多,可另外為備選事件流單獨繪制一個順序圖。
利用交互框架來標(biāo)示.
- 框架可以將順序圖中的某個區(qū)域框起,并劃分成若干片斷
- 每個框架有一個操作符。
- 對于循環(huán)操作,可以使用loop操作符,條件操作則使用alt操作符
- 每個分支片斷有一個監(jiān)護(hù)條件,滿足該條件才會執(zhí)行該片斷內(nèi)的事件流
舉例:
其他
可以看我的另外一篇文章
見ppt
例子:圖書館結(jié)借書順序圖:
還書順序圖:
備選事件流可以使用opt框架表示可選
手機(jī)撥號順序圖
學(xué)生成績管理系統(tǒng)順序圖
活動圖
活動圖描述系統(tǒng)中各種活動的執(zhí)行順序,通常用于描述一個操作中所要進(jìn)行的各項活動的執(zhí)行流程(如業(yè)務(wù)過程、工作流程等)。
它常被用來描述一個用例的處理流程,具有交互性(利用泳道)。
活動圖由一些活動組成,圖中同時包括了對這些活動的說明。當(dāng)一個活動執(zhí)行完畢之后,控制將沿著控制轉(zhuǎn)移箭頭轉(zhuǎn)向下一個活動。
活動圖中還可以方便地描述控制轉(zhuǎn)移的條件以及并行執(zhí)行等要求。
活動圖是另一種描述交互的方式,它描述采取何種動作,動作的結(jié)果是什么(動作狀態(tài)改變),何時發(fā)生(動作序列),以及在何處發(fā)生(泳道)。
組成元素
!注意:一張活動圖只有一個開始,可以有多個終止。
舉例畫圖:
其他
可以看我的另外一篇文章
見ppt
學(xué)生成績管理系統(tǒng)活動圖
狀態(tài)圖
在UML2.0命名為狀態(tài)機(jī)圖(state machine diagram),它是表述系統(tǒng)行為的一種技術(shù),在面向?qū)ο蠓椒ㄖ?#xff0c;對單一的類繪制一個狀態(tài)機(jī)圖以表示該對象的生命期行為和狀態(tài)轉(zhuǎn)換。
對象可能存在的狀態(tài):
- 初態(tài):是狀態(tài)圖的起始點,表示對象的初始狀態(tài),初態(tài)只有一個,用實心圓●表示。
- 終態(tài):是狀態(tài)圖的終點,表示一個對象完成必要操作后的最終狀態(tài),終態(tài)不能是復(fù)合狀態(tài)。實心圓外加一個圓圈?來表示終態(tài)。
- 復(fù)合狀態(tài):一種狀態(tài)中還嵌套有其它多個狀態(tài)(子狀態(tài))。
組成元素
狀態(tài)
轉(zhuǎn)換(transition):指出由一種狀態(tài)到另一種狀態(tài)的運動。每個轉(zhuǎn)換上有可選標(biāo)記,標(biāo)記含有三部分內(nèi)容事件:
- 事件[監(jiān)護(hù)條件]/活動(event[guard]/activity)
- 只有發(fā)生指定的事件后才有可能引發(fā)狀態(tài)的改變
- 需要監(jiān)護(hù)條件為真時轉(zhuǎn)換才會生效
- 活動是在轉(zhuǎn)換執(zhí)行中的行為
舉例畫圖:讀者借書&歸還
其他
可以看我的另外一篇文章
見ppt
狀態(tài)圖思考題——繪制信用卡的狀態(tài)圖
總結(jié)
- 上一篇: javascript --- JSON
- 下一篇: Educational Codeforc