第4章(構(gòu)件配置圖)_第1頁
第4章(構(gòu)件配置圖)_第2頁
第4章(構(gòu)件配置圖)_第3頁
第4章(構(gòu)件配置圖)_第4頁
第4章(構(gòu)件配置圖)_第5頁
已閱讀5頁,還剩108頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、l用例圖用例圖顯示一組用例,參與者以及它們之間的關(guān)系。顯示一組用例,參與者以及它們之間的關(guān)系。用用于需求分析階段,即確定于需求分析階段,即確定“誰使用系統(tǒng)以及做什么誰使用系統(tǒng)以及做什么”。l畫好用例圖是由軟件需求到最終實現(xiàn)的第一步。畫好用例圖是由軟件需求到最終實現(xiàn)的第一步。l用例圖包括以下用例圖包括以下3方面內(nèi)容。方面內(nèi)容。(1)用例()用例(use case)(2)參與者(參與者(actor)(3)關(guān)系(依賴、泛化以及關(guān)聯(lián))關(guān)系(依賴、泛化以及關(guān)聯(lián))l用例圖的主要元素是用例和用例圖的主要元素是用例和參與者參與者:所謂用例是指對系:所謂用例是指對系統(tǒng)提供的功能統(tǒng)提供的功能( (或系統(tǒng)的用途或系

2、統(tǒng)的用途) )的描述;的描述;參與者參與者是指可能是指可能使用用例的人或外部系統(tǒng)。兩者的關(guān)系是使用用例的人或外部系統(tǒng)。兩者的關(guān)系是“誰使用了哪誰使用了哪個用例個用例”.”.l用例圖著重于從系統(tǒng)外部用例圖著重于從系統(tǒng)外部參與參與者的角度來描述系統(tǒng)需要者的角度來描述系統(tǒng)需要提供哪些功能,并且指明這些功能的參與者是誰。提供哪些功能,并且指明這些功能的參與者是誰。l參與者(參與者(actor)是系統(tǒng)外部的一個實體(可以是是系統(tǒng)外部的一個實體(可以是任何的事物或人),它以某種方式參與了用例的任何的事物或人),它以某種方式參與了用例的執(zhí)行過程。執(zhí)行過程。l參與者通過向系統(tǒng)輸入或請求系統(tǒng)輸入某些事件參與者通

3、過向系統(tǒng)輸入或請求系統(tǒng)輸入某些事件來觸發(fā)系統(tǒng)的執(zhí)行。參與者是系統(tǒng)之外,透過系來觸發(fā)系統(tǒng)的執(zhí)行。參與者是系統(tǒng)之外,透過系統(tǒng)邊界與系統(tǒng)進(jìn)行有意義交互的任何事物(人或統(tǒng)邊界與系統(tǒng)進(jìn)行有意義交互的任何事物(人或事物)。事物)。l在處理參與者時,應(yīng)考慮其參與系統(tǒng)的身份,而在處理參與者時,應(yīng)考慮其參與系統(tǒng)的身份,而不是人名或工作名。不是人名或工作名。l在在uml中,參與者用人形圖符表示。中,參與者用人形圖符表示。l但參與者未必是人,可以是一個外部系統(tǒng)。但參與者未必是人,可以是一個外部系統(tǒng)。 customer(from actor)l誰使用該系統(tǒng)誰使用該系統(tǒng)l誰改變系統(tǒng)的數(shù)據(jù)誰改變系統(tǒng)的數(shù)據(jù)l誰從系統(tǒng)獲取信

4、息誰從系統(tǒng)獲取信息l誰需要系統(tǒng)的支持以完成日常工作任務(wù)誰需要系統(tǒng)的支持以完成日常工作任務(wù)l誰負(fù)責(zé)維護(hù)、管理并保持系統(tǒng)正常運(yùn)行誰負(fù)責(zé)維護(hù)、管理并保持系統(tǒng)正常運(yùn)行l(wèi)系統(tǒng)需要應(yīng)付那些硬件設(shè)備系統(tǒng)需要應(yīng)付那些硬件設(shè)備l系統(tǒng)需要和那些外部系統(tǒng)交互系統(tǒng)需要和那些外部系統(tǒng)交互l誰對系統(tǒng)運(yùn)行產(chǎn)生的結(jié)果感興趣誰對系統(tǒng)運(yùn)行產(chǎn)生的結(jié)果感興趣 某汽車制造廠需要一套庫存管理系統(tǒng),某汽車制造廠需要一套庫存管理系統(tǒng),該系統(tǒng)實現(xiàn)的業(yè)務(wù):生產(chǎn)工人根據(jù)生產(chǎn)計該系統(tǒng)實現(xiàn)的業(yè)務(wù):生產(chǎn)工人根據(jù)生產(chǎn)計劃領(lǐng)取物料,庫存操作員根據(jù)生產(chǎn)系統(tǒng)的劃領(lǐng)取物料,庫存操作員根據(jù)生產(chǎn)系統(tǒng)的派單準(zhǔn)備,交付給領(lǐng)料工人,余料即時歸派單準(zhǔn)備,交付給領(lǐng)料工人,余料

5、即時歸還庫房。庫房管理人員定期盤點庫存,通還庫房。庫房管理人員定期盤點庫存,通知供應(yīng)商供貨,對長期積存的貨物,申請知供應(yīng)商供貨,對長期積存的貨物,申請退貨。退貨。l誰使用該系統(tǒng)l誰改變系統(tǒng)的數(shù)據(jù) l誰從系統(tǒng)獲取信息 l誰需要系統(tǒng)的支持以完成日常工作任務(wù) l誰負(fù)責(zé)維護(hù)、管理并保持系統(tǒng)正常運(yùn)行l(wèi)系統(tǒng)需要應(yīng)付那些硬件設(shè)備l系統(tǒng)需要和那些外部系統(tǒng)交互 l誰對系統(tǒng)運(yùn)行產(chǎn)生的結(jié)果感興趣 操作員,管理員操作員,管理員操作員,管理員領(lǐng)料員,退料員,操作員,管理員,供應(yīng)商管理員生產(chǎn)系統(tǒng), 供應(yīng)商系統(tǒng)操作員,管理員,領(lǐng)料員,退料員操作員管理員領(lǐng)料員退料員供應(yīng)商生產(chǎn)系統(tǒng)供應(yīng)商系統(tǒng)時間用例用例描述了系統(tǒng)的功能需求,描

6、述了系統(tǒng)的功能需求,是系統(tǒng)的一組動作序是系統(tǒng)的一組動作序列的描述列的描述. .用例的本質(zhì)是用戶與計算機(jī)之間的一次交互作用。用例的本質(zhì)是用戶與計算機(jī)之間的一次交互作用。在在uml的概念中用例是系統(tǒng)作出的一系列動作的概念中用例是系統(tǒng)作出的一系列動作,而參而參與者能夠察覺到這一系列動作的結(jié)果。與者能夠察覺到這一系列動作的結(jié)果。uml中用例用一個橢圓來表示,用例的名字可以寫中用例用一個橢圓來表示,用例的名字可以寫在橢圓的內(nèi)部或下方。在橢圓的內(nèi)部或下方。用例的特點。用例的特點。識別用例識別用例 l識別用例最好的辦法就是從分析系統(tǒng)的參與者開識別用例最好的辦法就是從分析系統(tǒng)的參與者開始,先列出所有的參與者,

7、在根據(jù)每個參與者列始,先列出所有的參與者,在根據(jù)每個參與者列出與它有關(guān)的用例出與它有關(guān)的用例。在識別用例的過程中,通過在識別用例的過程中,通過以下的幾個問題可以幫助識別用例:以下的幾個問題可以幫助識別用例:(1)參與者希望系統(tǒng)提供什么功能?)參與者希望系統(tǒng)提供什么功能?(2)系統(tǒng)是否存儲和檢索信息?如果是,這個行為)系統(tǒng)是否存儲和檢索信息?如果是,這個行為由哪個參與者觸發(fā)由哪個參與者觸發(fā)?(3)當(dāng)系統(tǒng)改變狀態(tài)時,通知參與者嗎?)當(dāng)系統(tǒng)改變狀態(tài)時,通知參與者嗎?(4)存在影響系統(tǒng)的外部事件嗎?)存在影響系統(tǒng)的外部事件嗎?(5)是哪個參與者通知系統(tǒng)這些事件?)是哪個參與者通知系統(tǒng)這些事件?用例分析

8、用例分析l用例分析是處于系統(tǒng)的需求分析階段,這用例分析是處于系統(tǒng)的需求分析階段,這個階段應(yīng)該盡量的避免去考慮系統(tǒng)實現(xiàn)的個階段應(yīng)該盡量的避免去考慮系統(tǒng)實現(xiàn)的細(xì)節(jié)問題。也就是說,用例描述的是一個細(xì)節(jié)問題。也就是說,用例描述的是一個系統(tǒng)做什么,而不是怎么做。系統(tǒng)做什么,而不是怎么做。案例2:零件銷售系統(tǒng)的參與者案例2:零件銷售系統(tǒng)的用例注冊注冊會員登錄會員登錄管理訂單管理訂單檢索零件檢索零件購物購物結(jié)帳結(jié)帳修改個人資料修改個人資料查詢歷史紀(jì)錄查詢歷史紀(jì)錄貨管員登錄貨管員登錄管理價格管理價格管理庫存管理庫存打印報表打印報表開放帳戶開放帳戶經(jīng)理登錄經(jīng)理登錄檢索會員檢索會員檢查帳戶檢查帳戶潛在會員潛在會員

9、會員會員貨管員貨管員經(jīng)理經(jīng)理時間時間案例2:零件銷售系統(tǒng)注冊注冊會員登錄會員登錄管理訂單管理訂單檢索零件檢索零件購物購物結(jié)帳結(jié)帳修改個人資料修改個人資料查詢歷史紀(jì)錄查詢歷史紀(jì)錄貨管員登錄貨管員登錄管理價格管理價格管理庫存管理庫存打印報表打印報表開放帳戶開放帳戶經(jīng)理登錄經(jīng)理登錄檢索會員檢索會員檢查帳戶檢查帳戶潛在會員潛在會員會員會員貨管員貨管員經(jīng)理經(jīng)理時間時間l參與者與用例之間參與者與用例之間關(guān)聯(lián)關(guān)系關(guān)聯(lián)關(guān)系l用例與用例之間用例與用例之間包含關(guān)系包含關(guān)系 (include)擴(kuò)展關(guān)系擴(kuò)展關(guān)系 (extend)泛化關(guān)系泛化關(guān)系 (generalization)l參與者與參與者之間參與者與參與者之間泛

10、化關(guān)系泛化關(guān)系 (generalization)l關(guān)聯(lián)關(guān)系 描述參與者與使用用例之間的關(guān)系。在uml中,關(guān)系用實線表示,實線可以有箭頭,也可以沒有箭頭。l例:參與者與用例通過關(guān)聯(lián)相連。1)包含關(guān)系)包含關(guān)系(include) 包含關(guān)系中一個用例總是使用另一個用例的功能包含關(guān)系中一個用例總是使用另一個用例的功能* 如果兩個以上用例有大量一致的功能,則可以將這個功能分解如果兩個以上用例有大量一致的功能,則可以將這個功能分解到另一個用例中。到另一個用例中。 * 一個用例的功能太多時,可以用包含關(guān)系建模兩個小用例。一個用例的功能太多時,可以用包含關(guān)系建模兩個小用例。 包含關(guān)系中基用例本身是不完整的包含

11、關(guān)系中基用例本身是不完整的。l例例1:本例中,用例本例中,用例“check credit” 檢查輸入的信用卡號是否有效,檢查輸入的信用卡號是否有效,信用卡是否有足夠的資金。信用卡是否有足夠的資金。purchase ticket check credit用例間的關(guān)系用例間的關(guān)系包含關(guān)系包含關(guān)系2)擴(kuò)展關(guān)系)擴(kuò)展關(guān)系(extend)l擴(kuò)展關(guān)系允許一個用例(可選)擴(kuò)展另一個用例的功能。擴(kuò)展關(guān)系允許一個用例(可選)擴(kuò)展另一個用例的功能。l當(dāng)某個新用例在原來的用例基礎(chǔ)上增加了新的步驟當(dāng)某個新用例在原來的用例基礎(chǔ)上增加了新的步驟序列,則原用例被稱作基用例,這種關(guān)系被稱為擴(kuò)序列,則原用例被稱作基用例,這種關(guān)

12、系被稱為擴(kuò)展關(guān)系。展關(guān)系。l基用例可以單獨(dú)存在,但在一定的條件下,他的行基用例可以單獨(dú)存在,但在一定的條件下,他的行為可以被另一個用例的行為延伸。擴(kuò)展只能發(fā)生在為可以被另一個用例的行為延伸。擴(kuò)展只能發(fā)生在基用例的序列中某個特定的點上,這個點叫擴(kuò)展點?;美男蛄兄心硞€特定的點上,這個點叫擴(kuò)展點。l擴(kuò)展關(guān)系中基用例本身是完整的。擴(kuò)展關(guān)系中基用例本身是完整的。用例間的關(guān)系用例間的關(guān)系擴(kuò)展關(guān)系擴(kuò)展關(guān)系包含關(guān)系與擴(kuò)展關(guān)系的區(qū)別包含關(guān)系與擴(kuò)展關(guān)系的區(qū)別用例間的關(guān)系用例間的關(guān)系泛化關(guān)系泛化關(guān)系3)泛化關(guān)系(也稱類屬或概括關(guān)系)泛化關(guān)系(也稱類屬或概括關(guān)系) l泛化關(guān)系其實是子類與父類的關(guān)系。象類之間泛化關(guān)

13、系其實是子類與父類的關(guān)系。象類之間的泛化關(guān)系一樣,用例和參與者也可以繼承另的泛化關(guān)系一樣,用例和參與者也可以繼承另一個用例和參與者。一個用例和參與者。l泛化關(guān)系customercompany personal關(guān)系類型說明表示符號關(guān)聯(lián)(association)actor和use case之間的關(guān)系泛化(generalization) actor之間或use case之間的關(guān)系包含(include)use case之間的關(guān)系 擴(kuò)展(extend)use case之間的關(guān)系 參與者、用例間的關(guān)系類型參與者、用例間的關(guān)系類型 建立實際的系統(tǒng),還需要更多的細(xì)節(jié),這些細(xì)建立實際的系統(tǒng),還需要更多的細(xì)節(jié),這

14、些細(xì)節(jié)寫在事件流文檔中。節(jié)寫在事件流文檔中。事件流是通過文字描述一個用例的行為,說明事件流是通過文字描述一個用例的行為,說明用例的邏輯流程。發(fā)起用例的參與者是誰,用用例的邏輯流程。發(fā)起用例的參與者是誰,用例的前置條件是什么,主事件流,其他事件流例的前置條件是什么,主事件流,其他事件流和完成后的后置條件是什么,從用例中獲益的和完成后的后置條件是什么,從用例中獲益的參與者是誰。參與者是誰。事件流包括:簡要說明、前置條件、主事件流、事件流包括:簡要說明、前置條件、主事件流、其他事件流和后置條件。其他事件流和后置條件。l簡要說明:每個用例應(yīng)有一個相關(guān)說明,描述簡要說明:每個用例應(yīng)有一個相關(guān)說明,描述該

15、用例的作用。該用例的作用。l前置條件(前置條件(前提條件):列出開始用例之前必前提條件):列出開始用例之前必須滿足的條件。須滿足的條件。l主事件流:顯示用例從開始到結(jié)束的完整的正主事件流:顯示用例從開始到結(jié)束的完整的正常流程。常流程。l其他事件流:顯示異常條件或錯誤。其他事件流:顯示異常條件或錯誤。l后置條件(后置條件(事后條件):用例結(jié)束后系統(tǒng)應(yīng)具事后條件):用例結(jié)束后系統(tǒng)應(yīng)具備的狀態(tài)。備的狀態(tài)。 簡要說明:簡要說明:客戶可以從atm機(jī)上取出自己帳目上的部分或者全部存款。 前提條件:無前提條件:無 主事件流:主事件流: (見下頁)1.客戶將卡插入客戶將卡插入atm機(jī),開始用例。機(jī),開始用例。

16、2.atm顯示歡迎消息并提示客戶輸入密碼。顯示歡迎消息并提示客戶輸入密碼。3.客戶輸入密碼??蛻糨斎朊艽a。4.atm確認(rèn)密碼有效。如果無效則執(zhí)行其他事件流確認(rèn)密碼有效。如果無效則執(zhí)行其他事件流a1。如果如果與主機(jī)聯(lián)接有問題,則執(zhí)行異常事件流與主機(jī)聯(lián)接有問題,則執(zhí)行異常事件流e1。5.5.atmatm提供以下選項:提供以下選項:存錢,取錢,存錢,取錢,查詢查詢 。6.6.用戶選擇取錢選項。用戶選擇取錢選項。 7.7.atmatm提示輸入所取金額。提示輸入所取金額。8.8.用戶輸入所取金額。用戶輸入所取金額。 9.9.atmatm確定該帳戶是否有足夠的金額。如果余額不夠,則執(zhí)行確定該帳戶是否有足夠

17、的金額。如果余額不夠,則執(zhí)行其他事件流其他事件流a2a2,如果與主機(jī)聯(lián)接有問題,則執(zhí)行異常事件如果與主機(jī)聯(lián)接有問題,則執(zhí)行異常事件流流e1e1。 10.10.atmatm從客戶帳戶中減去所取金額。從客戶帳戶中減去所取金額。 11.atm向客戶提供要取的錢。向客戶提供要取的錢。 12.atm打印清單。打印清單。 13.atm退出客戶的卡,用例結(jié)束。退出客戶的卡,用例結(jié)束。其他事件流其他事件流a1:輸入無效密碼輸入無效密碼 1.atm告訴客戶該密碼錯誤。 2.atm退出客戶的卡,用例結(jié)束。其他事件流其他事件流a2:余額不足余額不足1. atm告訴客戶該帳戶余額不足。2.atm退出客戶的卡,用例結(jié)束

18、。 異常事件流異常事件流e1e1:連接主機(jī)出現(xiàn)錯誤連接主機(jī)出現(xiàn)錯誤1. atm告訴客戶連連接主機(jī)出現(xiàn)錯誤。2. atm在錯誤日志記下錯誤。3.atm退出客戶的卡,用例結(jié)束。 事后條件:無事后條件:無l例:網(wǎng)上選課系統(tǒng)l 類圖(類圖(class diagram)描述了類與類之間的描述了類與類之間的靜態(tài)關(guān)系。靜態(tài)關(guān)系。它不僅定義系統(tǒng)中的類類,表示類之間的聯(lián)系聯(lián)系(關(guān)聯(lián)、依賴、聚合等),還包括類的內(nèi)部結(jié)構(gòu)內(nèi)部結(jié)構(gòu)(類的屬性和操作)。l類圖描述的是一種靜態(tài)關(guān)系,在系統(tǒng)的整個生命周期都是有效的。l類分為類分為3種類型:實體類種類型:實體類(entity)、邊界類邊界類(boundary)和控制類和控制類

19、(control)。boundarycontrolentity(entity)l實體類保存要放入永久存儲體的信息。實體類保存要放入永久存儲體的信息。l每個實體類在數(shù)據(jù)庫中有相應(yīng)的表。每個實體類在數(shù)據(jù)庫中有相應(yīng)的表。正常情況下,我正常情況下,我們把每個們把每個實體實體類映射為一個表,每個屬性映射為一個類映射為一個表,每個屬性映射為一個列。列。 l例:定義實體類例:定義實體類student。標(biāo)簽形式標(biāo)簽形式(label)圖標(biāo)形式圖標(biāo)形式(icon)l邊界類位于系統(tǒng)與外界的交界處。邊界類位于系統(tǒng)與外界的交界處。直接與外部設(shè)備交互的類直接與外部系統(tǒng)交互的類l包括窗體包括窗體、對話框?qū)υ捒?、報表,還有打

20、印機(jī)和掃描儀報表,還有打印機(jī)和掃描儀等硬件接口以及與外部系統(tǒng)的接口。等硬件接口以及與外部系統(tǒng)的接口。l通常,一個參與者與一個用例之間的交互對應(yīng)一通常,一個參與者與一個用例之間的交互對應(yīng)一個邊界類。邊界類接受來自參與者的信息,這些個邊界類。邊界類接受來自參與者的信息,這些信息可以被實體類和控制類使用。信息可以被實體類和控制類使用。l例:例:l控制類負(fù)責(zé)協(xié)調(diào)邊界類和實體類的工作,通??刂祁愗?fù)責(zé)協(xié)調(diào)邊界類和實體類的工作,通常在現(xiàn)實世界中沒有對應(yīng)的事物,它負(fù)責(zé)接收邊在現(xiàn)實世界中沒有對應(yīng)的事物,它負(fù)責(zé)接收邊界類的信息,并將其分發(fā)給實體類。界類的信息,并將其分發(fā)給實體類。l一般,一個用例對應(yīng)一個控制類,控

21、制用例中一般,一個用例對應(yīng)一個控制類,控制用例中的事件順序,控制類也可以在多個用例間共用。的事件順序,控制類也可以在多個用例間共用。l控制類是可選的,本身沒有任何業(yè)務(wù)功能,但控制類是可選的,本身沒有任何業(yè)務(wù)功能,但可以向其他的類發(fā)消息,控制總體邏輯流程??梢韵蚱渌念惏l(fā)消息,控制總體邏輯流程。l例:網(wǎng)上選課系統(tǒng)中的類例:網(wǎng)上選課系統(tǒng)中的類類的關(guān)系有:l泛化 generalizationl關(guān)聯(lián) association連接 link聚合 aggregation組合 compositionl依賴 dependencyl是一般和特殊的關(guān)系 is a kind ofl泛化即類的繼承,子類繼承父類屬性和操

22、作。l子類可以應(yīng)用在父類對象可能出現(xiàn)的地方l例:選課系統(tǒng)的泛化關(guān)系的分析。例:選課系統(tǒng)的泛化關(guān)系的分析。l關(guān)聯(lián)是一種結(jié)構(gòu)關(guān)系,它描述了給定類之間的語義連接,是兩個類或多個類之間的一個關(guān)系。librarybook*1+ +owner1*ownsl如果兩個類都彼此知道對方,則應(yīng)該使用實線來表示關(guān)聯(lián)關(guān)系;如果只有其中一個類知道該關(guān)聯(lián)關(guān)系,則使用開箭頭表示。 l l在上圖中,我們同時看到了繼承關(guān)系和兩個關(guān)聯(lián)關(guān)系。cdsalesreport類繼承自report類。一個cdsalesreport類與一個cd類關(guān)聯(lián),但是cd類并不知道關(guān)于cdsalesreport類的任何信息。cd類和band類都彼此知道對

23、方,兩個類彼此都可以與一個或者多個對方類相關(guān)聯(lián)。 l雙向連接代碼l單向連接代碼類的關(guān)聯(lián)-聚合、組合l例:選課系統(tǒng)的關(guān)聯(lián)關(guān)系的分析。例:選課系統(tǒng)的關(guān)聯(lián)關(guān)系的分析。l表示類之間的使用關(guān)系表示類之間的使用關(guān)系當(dāng)客戶類的操作需要提供者類的參數(shù)當(dāng)客戶類的操作需要提供者類的參數(shù)客戶類的操作返回提供者類的值客戶類的操作返回提供者類的值客戶類的操作在實現(xiàn)中使用提供者類的對象客戶類的操作在實現(xiàn)中使用提供者類的對象客戶類提供者類案例案例1:零件銷售系統(tǒng)的類圖:零件銷售系統(tǒng)的類圖案例案例2:學(xué)校信息管理系統(tǒng)的類圖:學(xué)校信息管理系統(tǒng)的類圖l一個系統(tǒng)通常要創(chuàng)建幾個類框圖:有些要顯示一個系統(tǒng)通常要創(chuàng)建幾個類框圖:有些要顯

24、示類及其關(guān)系;有些顯示類的子集,包括屬性和類及其關(guān)系;有些顯示類的子集,包括屬性和操作;還有些顯示類包及包之間的關(guān)系,把概操作;還有些顯示類包及包之間的關(guān)系,把概念上或語義上相近的模型元素納入一個包。念上或語義上相近的模型元素納入一個包。 l默認(rèn)情況下,有一個主類框圖,直接放在邏輯默認(rèn)情況下,有一個主類框圖,直接放在邏輯視圖視圖(logic view)下面,在復(fù)雜的系統(tǒng)中,這下面,在復(fù)雜的系統(tǒng)中,這個類框圖顯示模型中的類包及其關(guān)系,即包圖。個類框圖顯示模型中的類包及其關(guān)系,即包圖。包中存放語義上相近的多個類。包中存放語義上相近的多個類。l在大型系統(tǒng)中,包圖是一種重要的工具。有些在大型系統(tǒng)中,包

25、圖是一種重要的工具。有些專家建議,當(dāng)整個系統(tǒng)的類圖不能壓縮到一張專家建議,當(dāng)整個系統(tǒng)的類圖不能壓縮到一張a4紙時,就應(yīng)該用包圖。紙時,就應(yīng)該用包圖。例例:例:例:java程序程序 “helloworld”的的 uml建模。建模。import java.awt.graphics;public class helloworld extends java.applet.applet public void paint(graphics g) g.drawstring(“hello world!”,20,30); 在在uml中中,對上述程序?qū)ι鲜龀绦虻慕H缬覉D的建模如右圖:三、三、 對象圖對象圖l在

26、在umluml中,對象圖(中,對象圖(object diagramobject diagram)是表示在某一時刻一是表示在某一時刻一組對象以及它們之間的關(guān)系的圖。組對象以及它們之間的關(guān)系的圖。l對象圖可以被看作是類圖在系統(tǒng)某一時刻的實例。對象圖可以被看作是類圖在系統(tǒng)某一時刻的實例。l對象之間的連接對象之間的連接( (link)link)是類之間關(guān)聯(lián)關(guān)系的實例。是類之間關(guān)聯(lián)關(guān)系的實例。l對象圖標(biāo)和類圖基本一樣,但對象名下面要帶下劃線,對象對象圖標(biāo)和類圖基本一樣,但對象名下面要帶下劃線,對象名位于冒號的左邊,該對象所屬的類名位于冒號的右邊名位于冒號的左邊,該對象所屬的類名位于冒號的右邊。rose不

27、支持對象圖,需要用其他的圖來代替。不支持對象圖,需要用其他的圖來代替。l例例:類圖和對象圖的區(qū)別類圖和對象圖的區(qū)別:haier washer:washing machine:washing machine狀態(tài)圖是狀態(tài)圖是uml中對系統(tǒng)動態(tài)建模的圖之一。狀態(tài)中對系統(tǒng)動態(tài)建模的圖之一。狀態(tài)圖用來描述圖用來描述某個對象某個對象的所有可能狀態(tài)及其狀態(tài)轉(zhuǎn)換的所有可能狀態(tài)及其狀態(tài)轉(zhuǎn)換信息。通常用于表示單個對象在其生命周期中行為。信息。通常用于表示單個對象在其生命周期中行為。一個狀態(tài)圖包括一系列的狀態(tài)及狀態(tài)之間的轉(zhuǎn)移。一個狀態(tài)圖包括一系列的狀態(tài)及狀態(tài)之間的轉(zhuǎn)移。但不是每個類都應(yīng)該有一個狀態(tài)圖。只對但不是每個

28、類都應(yīng)該有一個狀態(tài)圖。只對“感興感興趣的趣的”狀態(tài)的類(也就是說,在系統(tǒng)活動期間具有狀態(tài)的類(也就是說,在系統(tǒng)活動期間具有三個或更多潛在狀態(tài)的類)才進(jìn)行狀態(tài)圖描述。三個或更多潛在狀態(tài)的類)才進(jìn)行狀態(tài)圖描述。1、狀態(tài)(、狀態(tài)(state)狀態(tài)是對象執(zhí)行了一系列活動的結(jié)果。當(dāng)某個事件狀態(tài)是對象執(zhí)行了一系列活動的結(jié)果。當(dāng)某個事件發(fā)生后,對象的狀態(tài)將發(fā)生變化,狀態(tài)的改變叫做發(fā)生后,對象的狀態(tài)將發(fā)生變化,狀態(tài)的改變叫做轉(zhuǎn)移。轉(zhuǎn)移。2、狀態(tài)圖中狀態(tài)之間帶箭頭的連線被稱為、狀態(tài)圖中狀態(tài)之間帶箭頭的連線被稱為轉(zhuǎn)移轉(zhuǎn)移。浸泡洗滌漂洗脫水 在在uml里,轉(zhuǎn)移由五個部分組成,它們分別是:初始里,轉(zhuǎn)移由五個部分組成,

29、它們分別是:初始狀態(tài)狀態(tài)、終止?fàn)顟B(tài)終止?fàn)顟B(tài)、觸發(fā)事件(觸發(fā)事件(trigger event)、)、守護(hù)條守護(hù)條件(件(guard condition)、)、動作(動作(action)。)。 狀態(tài)圖用初始狀態(tài)表示對象創(chuàng)建時的狀態(tài),每一個狀態(tài)狀態(tài)圖用初始狀態(tài)表示對象創(chuàng)建時的狀態(tài),每一個狀態(tài)圖只有一個初始狀態(tài),用實心圓點表示;每一個狀態(tài)圖圖只有一個初始狀態(tài),用實心圓點表示;每一個狀態(tài)圖可能有多個終止?fàn)顟B(tài),用一個實心圓外加一個圓圈表示??赡苡卸鄠€終止?fàn)顟B(tài),用一個實心圓外加一個圓圈表示。l狀態(tài)圖可有多個狀態(tài)框,每個狀態(tài)框中有兩格:上格放狀態(tài)圖可有多個狀態(tài)框,每個狀態(tài)框中有兩格:上格放名稱,下格說明處于該

30、狀態(tài)時,系統(tǒng)或?qū)ο笠M(jìn)行的活名稱,下格說明處于該狀態(tài)時,系統(tǒng)或?qū)ο笠M(jìn)行的活動。動。l狀態(tài)之間的觸發(fā)事件狀態(tài)之間的觸發(fā)事件(event),對應(yīng)對象的操作。對應(yīng)對象的操作。l事件在特定的條件下發(fā)生,這樣的條件稱為守護(hù)條件。事件在特定的條件下發(fā)生,這樣的條件稱為守護(hù)條件。l發(fā)生事件時的處理稱為動作發(fā)生事件時的處理稱為動作(action)。l是兩個狀態(tài)之間的一種關(guān)系,表示處于是兩個狀態(tài)之間的一種關(guān)系,表示處于某狀態(tài)的對象,在特定事件發(fā)生且某特某狀態(tài)的對象,在特定事件發(fā)生且某特定的條件滿足時進(jìn)入第二個狀態(tài)。定的條件滿足時進(jìn)入第二個狀態(tài)。l描述格式:描述格式:event(arg) guard-condi

31、tion /actionabcdevent x0 狀態(tài)轉(zhuǎn)換的條件:狀態(tài)轉(zhuǎn)換的條件:l事件觸發(fā)狀態(tài)轉(zhuǎn)換l源狀態(tài)的內(nèi)部活動執(zhí)行完畢自動觸發(fā)轉(zhuǎn)移l給定的狀態(tài)只能產(chǎn)生一個轉(zhuǎn)移l發(fā)生事件時的處理稱為動作。發(fā)生事件時的處理稱為動作。l4種基本的動作類型:種基本的動作類型:entry:用來指定進(jìn)入狀態(tài)時發(fā)生的動作;用來指定進(jìn)入狀態(tài)時發(fā)生的動作;exit:用來指定退出狀態(tài)時發(fā)生的動作;用來指定退出狀態(tài)時發(fā)生的動作;do:用來指定處于狀態(tài)時發(fā)生的動作;用來指定處于狀態(tài)時發(fā)生的動作;event:用來指定當(dāng)特定事件觸發(fā)時發(fā)生的用來指定當(dāng)特定事件觸發(fā)時發(fā)生的動作。動作。lightingentry/ turn onex

32、it/ turn offdo/ computedegreeevent power off/ power supply狀態(tài)名狀態(tài)名退退出出動動作作事件事件進(jìn)入動作進(jìn)入動作活動活動手機(jī)開機(jī)時,處于空閑狀態(tài);當(dāng)用戶開始手機(jī)開機(jī)時,處于空閑狀態(tài);當(dāng)用戶開始呼叫某人時,手機(jī)進(jìn)入撥號狀態(tài);如果呼叫某人時,手機(jī)進(jìn)入撥號狀態(tài);如果呼叫成功,進(jìn)入通話狀態(tài);如果呼叫不呼叫成功,進(jìn)入通話狀態(tài);如果呼叫不成功,重新進(jìn)入空閑狀態(tài)。在空閑狀態(tài)成功,重新進(jìn)入空閑狀態(tài)。在空閑狀態(tài)被呼叫,進(jìn)入響鈴狀態(tài);如果用戶接聽,被呼叫,進(jìn)入響鈴狀態(tài);如果用戶接聽,進(jìn)入通話狀態(tài);如果一分鐘不接聽,重進(jìn)入通話狀態(tài);如果一分鐘不接聽,重新進(jìn)入空

33、閑狀態(tài)。新進(jìn)入空閑狀態(tài)。 idledialingworkingringingfinish connection (1)不要對系統(tǒng)中的每個類都畫狀態(tài)圖。盡管)不要對系統(tǒng)中的每個類都畫狀態(tài)圖。盡管這樣做很完美,但太浪費(fèi)精力,其實你可能只這樣做很完美,但太浪費(fèi)精力,其實你可能只關(guān)心某些類的行為。正確的做法是:為幫助理關(guān)心某些類的行為。正確的做法是:為幫助理解類而畫它的狀態(tài)圖。解類而畫它的狀態(tài)圖。(2)狀態(tài)圖描述跨越多個用例的單個對象的行)狀態(tài)圖描述跨越多個用例的單個對象的行為,而不適合描述多個對象間的行為合作。為為,而不適合描述多個對象間的行為合作。為此,常將狀態(tài)圖與其它技術(shù)此,常將狀態(tài)圖與其它技術(shù)

34、(如順序圖、合作如順序圖、合作圖和活動圖圖和活動圖)組合使用。組合使用。狀態(tài)圖的創(chuàng)建狀態(tài)圖的創(chuàng)建 例:例:選課系統(tǒng)課程類(對象)選課系統(tǒng)課程類(對象)(course)的狀態(tài)變化的狀態(tài)變化過程。過程。 l 一般學(xué)習(xí)過一般學(xué)習(xí)過c語言或別的程序設(shè)計語言的讀者一語言或別的程序設(shè)計語言的讀者一定接觸過流程圖,因為流程圖清晰的表達(dá)了程序的定接觸過流程圖,因為流程圖清晰的表達(dá)了程序的每一個步驟序列、過程、判定點和分支。每一個步驟序列、過程、判定點和分支。l在在uml里,活動圖本質(zhì)上就是流程圖,他描述系里,活動圖本質(zhì)上就是流程圖,他描述系統(tǒng)的活動、判定點、分支等,可用于對系統(tǒng)的業(yè)務(wù)統(tǒng)的活動、判定點、分支等,

35、可用于對系統(tǒng)的業(yè)務(wù)需求建模,因此它對于開發(fā)人員來說是一種重要的需求建模,因此它對于開發(fā)人員來說是一種重要的工具。工具。luml uml 活動圖記錄了單個操作或方法的邏輯,單個用活動圖記錄了單個操作或方法的邏輯,單個用戶案例或者單個業(yè)務(wù)流程的邏輯。戶案例或者單個業(yè)務(wù)流程的邏輯。l也可以說,活動圖是用圖形化的方式描述事件流也可以說,活動圖是用圖形化的方式描述事件流(即描述用例圖中某個用例(即描述用例圖中某個用例的的邏輯流程邏輯流程)5.1 活動圖的基本概念和組成活動圖的基本概念和組成 從系統(tǒng)內(nèi)部視角來看,從系統(tǒng)內(nèi)部視角來看,活動圖活動圖反映的是系統(tǒng)功能所要完成反映的是系統(tǒng)功能所要完成的動作過程的動

36、作過程 。它定義了工作流從何時開始、哪里開始、它定義了工作流從何時開始、哪里開始、按什么順序發(fā)生、最終在哪結(jié)束按什么順序發(fā)生、最終在哪結(jié)束。活動圖由起始狀態(tài)活動圖由起始狀態(tài)、終止?fàn)顟B(tài)終止?fàn)顟B(tài)、活動、狀態(tài)轉(zhuǎn)移活動、狀態(tài)轉(zhuǎn)移、決策決策、守護(hù)條件守護(hù)條件、同步棒和泳道組成。同步棒和泳道組成。l活動圖的起始狀態(tài)和終止?fàn)顟B(tài)的表示同狀態(tài)圖?;顒訄D的起始狀態(tài)和終止?fàn)顟B(tài)的表示同狀態(tài)圖。l活動圖中的活動用圓角四邊形表示,內(nèi)部文字說明采取活動圖中的活動用圓角四邊形表示,內(nèi)部文字說明采取的動作。動作間的轉(zhuǎn)移用帶有箭頭的實線表示。的動作。動作間的轉(zhuǎn)移用帶有箭頭的實線表示?;顒咏Y(jié)束開始5.1 活動圖的基本概念和活動圖的

37、基本概念和組成組成l守護(hù)條件:用來約束轉(zhuǎn)移,守守護(hù)條件:用來約束轉(zhuǎn)移,守護(hù)條件為真時轉(zhuǎn)移才可以開始。護(hù)條件為真時轉(zhuǎn)移才可以開始。l決策:活動圖中的決策用一個決策:活動圖中的決策用一個菱形表示。分支表示一個觸發(fā)菱形表示。分支表示一個觸發(fā)事件在不同的觸發(fā)條件下引起事件在不同的觸發(fā)條件下引起多 個 不 同 的 轉(zhuǎn) 移 。多 個 不 同 的 轉(zhuǎn) 移 。分支可以有一個進(jìn)入轉(zhuǎn)移和兩分支可以有一個進(jìn)入轉(zhuǎn)移和兩個或多個輸出轉(zhuǎn)移。在每條輸個或多個輸出轉(zhuǎn)移。在每條輸出轉(zhuǎn)移上都有守護(hù)條件(即一出轉(zhuǎn)移上都有守護(hù)條件(即一個布爾表達(dá)式)保護(hù),當(dāng)且僅個布爾表達(dá)式)保護(hù),當(dāng)且僅當(dāng)守護(hù)條件的值為真時,該輸當(dāng)守護(hù)條件的值為真時

38、,該輸出路徑才有效出路徑才有效。 例例:“記錄學(xué)生分?jǐn)?shù)記錄學(xué)生分?jǐn)?shù)”的活動圖的活動圖注注:活動圖與狀態(tài)圖的標(biāo)記符非常相似活動圖與狀態(tài)圖的標(biāo)記符非常相似,有時會讓人混淆。其實,有時會讓人混淆。其實,活動圖是用來建模不同區(qū)域的工作如何彼此交互的;而狀態(tài)活動圖是用來建模不同區(qū)域的工作如何彼此交互的;而狀態(tài)圖用來表示單個的對象,以及對象的行為如何改變其狀態(tài)。圖用來表示單個的對象,以及對象的行為如何改變其狀態(tài)。l同步棒:在建模過程中,可能會遇到對象在運(yùn)同步棒:在建模過程中,可能會遇到對象在運(yùn)行時存在兩個或多個并發(fā)運(yùn)行的控制流。所有行時存在兩個或多個并發(fā)運(yùn)行的控制流。所有的并行轉(zhuǎn)移在合并前必須被執(zhí)行。的并

39、行轉(zhuǎn)移在合并前必須被執(zhí)行。在在uml中,一條粗黑線表示將轉(zhuǎn)移分解成兩中,一條粗黑線表示將轉(zhuǎn)移分解成兩個或多個并發(fā)流,同樣用粗黑線表示分支的合個或多個并發(fā)流,同樣用粗黑線表示分支的合并。粗黑線稱為同步棒。并。粗黑線稱為同步棒。加水到容器中將咖啡放到過濾器中點燃咖啡爐取出咖啡杯把過濾器放到咖啡爐上沖調(diào)咖啡倒咖啡找飲料取一聽可口可樂喝飲料人找到可口可樂沒有可口可樂沒有咖啡找到咖啡熄滅咖啡爐例例1:( (a)a)客戶在線輸入采購清單客戶在線輸入采購清單( (b)b)客戶服務(wù)部接收到訂單,客戶服務(wù)部接收到訂單, 檢查訂單是否正確檢查訂單是否正確l正確,執(zhí)行正確,執(zhí)行c cl不正確,發(fā)訂購失敗不正確,發(fā)訂

40、購失敗emailemail,結(jié)束。結(jié)束。( (c)c)同步:定單轉(zhuǎn)倉管部出貨同步:定單轉(zhuǎn)倉管部出貨定單轉(zhuǎn)財務(wù)部收款定單轉(zhuǎn)財務(wù)部收款( (d)d)確認(rèn)客戶收到貨品確認(rèn)客戶收到貨品l正確,執(zhí)行正確,執(zhí)行e el不正確,執(zhí)行不正確,執(zhí)行d d(e)(e)確認(rèn)客戶已完成收貨付款確認(rèn)客戶已完成收貨付款l正確,執(zhí)行正確,執(zhí)行f fl不正確,執(zhí)行不正確,執(zhí)行e e(f)(f)確認(rèn)送貨人將所收款項交財務(wù)部確認(rèn)送貨人將所收款項交財務(wù)部l正確,執(zhí)行正確,執(zhí)行g(shù) gl不正確,執(zhí)行不正確,執(zhí)行f f(g)(g)財務(wù)部做訂單結(jié)案處理財務(wù)部做訂單結(jié)案處理( (h)h)結(jié)束結(jié)束活動圖的基本概念和組成活動圖的基本概念和組成-

41、泳道泳道活動圖告訴你發(fā)生了什么,但沒有告訴你該項活動由活動圖告訴你發(fā)生了什么,但沒有告訴你該項活動由誰來完誰來完成成。在程序設(shè)計中,這意味著活動圖沒有描述出各個活動。在程序設(shè)計中,這意味著活動圖沒有描述出各個活動由哪個類來完成。泳道解決了這一問題。由哪個類來完成。泳道解決了這一問題。泳道泳道:用矩形框來表示,屬于某個泳道的活動放在該矩形框:用矩形框來表示,屬于某個泳道的活動放在該矩形框內(nèi),將對象名放在矩形框的頂部,表示泳道中的活動由該內(nèi),將對象名放在矩形框的頂部,表示泳道中的活動由該對象負(fù)責(zé)。對象負(fù)責(zé)。 泳道可以提高活動圖的可讀性泳道可以提高活動圖的可讀性, ,可用于建模某些復(fù)雜的活可用于建模

42、某些復(fù)雜的活動圖。動圖。例例2:“修改學(xué)生信息修改學(xué)生信息” 活動活動圖圖l活動圖最適合支持描述并行行為,這使活動圖最適合支持描述并行行為,這使之成為支持工作流建模的最好工具。之成為支持工作流建模的最好工具。l活動圖最大的缺點是很難清楚地描述動活動圖最大的缺點是很難清楚地描述動作與對象之間的關(guān)系。作與對象之間的關(guān)系?;顒訄D的用途活動圖的用途 活動圖用于對系統(tǒng)的動態(tài)行為建模?;顒訄D描述活動圖用于對系統(tǒng)的動態(tài)行為建模?;顒訄D描述了從活動到活動的流。了從活動到活動的流。 在對一個系統(tǒng)建模時,通常有兩種使用活動圖的在對一個系統(tǒng)建模時,通常有兩種使用活動圖的方式:方式:(1)為工作流建模)為工作流建模

43、對工作流建模強(qiáng)調(diào)與系統(tǒng)進(jìn)行交互的對象所觀察對工作流建模強(qiáng)調(diào)與系統(tǒng)進(jìn)行交互的對象所觀察到的活動。用于可視化、詳述、構(gòu)造和文檔化開到的活動。用于可視化、詳述、構(gòu)造和文檔化開發(fā)系統(tǒng)所涉及的業(yè)務(wù)流程。發(fā)系統(tǒng)所涉及的業(yè)務(wù)流程。(2)為對象的操作建模)為對象的操作建模 活動圖本質(zhì)上就是流程圖,他描述系統(tǒng)的活動、活動圖本質(zhì)上就是流程圖,他描述系統(tǒng)的活動、判定點、分支等部分。因此,在判定點、分支等部分。因此,在uml中,可以中,可以把活動圖作為流程圖來使用,用于對系統(tǒng)的操作把活動圖作為流程圖來使用,用于對系統(tǒng)的操作建模。建模。 l對于以下情況可以使用活動圖:對于以下情況可以使用活動圖:(1 1)分析用例,即用

44、圖形化的方式描述用)分析用例,即用圖形化的方式描述用例的事件流;例的事件流;(2 2)理解牽涉多個用例的工作流,即描述)理解牽涉多個用例的工作流,即描述系統(tǒng)的業(yè)務(wù)流程系統(tǒng)的業(yè)務(wù)流程;(3 3)處理多線程應(yīng)用。)處理多線程應(yīng)用。相似:都是對系統(tǒng)的動態(tài)行為建模。區(qū)別:l描述重點不同:狀態(tài)圖描述對象的狀態(tài)及狀態(tài)之間的轉(zhuǎn)移,而活動圖描述從活動到活動的控制流。l使用場合不同:如果是為了表示一個對象在其生命周期內(nèi)的行為,使用狀態(tài)圖較好;如果目的是為了分析用例,或者理解涉及多個用例的工作流程,或者處理多線程應(yīng)用等,則使用活動圖較好?;顒訄D的創(chuàng)建活動圖的創(chuàng)建例:例:選課系統(tǒng)中添加課程選課系統(tǒng)中添加課程(cou

45、rse)用例用例的活動圖的創(chuàng)建。的活動圖的創(chuàng)建。l在在uml中,用例的實現(xiàn)用交互圖來指定和說中,用例的實現(xiàn)用交互圖來指定和說明。交互圖通過顯示對象之間的關(guān)系和對象之明。交互圖通過顯示對象之間的關(guān)系和對象之間處理的消息來對系統(tǒng)的動態(tài)特性建模。間處理的消息來對系統(tǒng)的動態(tài)特性建模。l交互圖包括:時序圖(也稱順序圖或序列圖)交互圖包括:時序圖(也稱順序圖或序列圖)和協(xié)作圖。和協(xié)作圖。l交互圖一步步地顯示用例的實現(xiàn)流程。交互圖一步步地顯示用例的實現(xiàn)流程。包括需包括需要什么對象、對象之間發(fā)送什么、什么角色啟要什么對象、對象之間發(fā)送什么、什么角色啟動流、消息按什么順序發(fā)送等。動流、消息按什么順序發(fā)送等。l創(chuàng)

46、建時序圖和協(xié)作圖的步驟:創(chuàng)建時序圖和協(xié)作圖的步驟:1)尋找對象;)尋找對象;2)尋找角色;)尋找角色;3)將消息加進(jìn)圖中。)將消息加進(jìn)圖中。l時序圖(時序圖(sequence diagram)是強(qiáng)調(diào)消息時是強(qiáng)調(diào)消息時間順序的交互圖。間順序的交互圖。l時時序圖顯示具體用例(或者是用例的一部分)序圖顯示具體用例(或者是用例的一部分)的詳細(xì)流程。的詳細(xì)流程。一般放在相應(yīng)用例的下面。一般放在相應(yīng)用例的下面。l時序圖描述了類與類之間相互交換以完成期時序圖描述了類與類之間相互交換以完成期望行為的消息。望行為的消息。l注意:時序圖注意:時序圖只顯示對象,不顯示類。即只顯示對象,不顯示類。即時時序圖序圖是針對

47、某個特定情況、特定對象進(jìn)行的描是針對某個特定情況、特定對象進(jìn)行的描述。述。時序圖由活動者、對象、消息、生命線和控制焦點組成。時序圖由活動者、對象、消息、生命線和控制焦點組成。時序圖存在兩個軸:水平軸表示不同的對象,垂直軸表示時時序圖存在兩個軸:水平軸表示不同的對象,垂直軸表示時間。間。時序圖中的時序圖中的對象對象:用一個帶有垂直虛線的矩形框表示,并標(biāo):用一個帶有垂直虛線的矩形框表示,并標(biāo)有對象名和類名。垂直虛線是對象的有對象名和類名。垂直虛線是對象的生命線生命線,用于表示在某,用于表示在某段時間內(nèi)對象是存在的。段時間內(nèi)對象是存在的。對象間的通信:通過在對象的生命線間畫對象間的通信:通過在對象的

48、生命線間畫消息消息來表示。來表示。時序圖中的消息:當(dāng)收到消息時,接收對象立即開始執(zhí)行活時序圖中的消息:當(dāng)收到消息時,接收對象立即開始執(zhí)行活動,即對象被激活了。動,即對象被激活了??刂平裹c控制焦點:是時序圖中表示時間段的符號,在這段時間內(nèi),:是時序圖中表示時間段的符號,在這段時間內(nèi),對象將執(zhí)行相應(yīng)的操作。通過在對象生命線上顯示一個細(xì)長對象將執(zhí)行相應(yīng)的操作。通過在對象生命線上顯示一個細(xì)長矩形框來矩形框來表示激活表示激活。生命線控制焦點消息時序圖的建模技術(shù)時序圖的建模技術(shù) 時時序圖的繪制非常簡單。橫跨圖的頂部,每個框序圖的繪制非常簡單。橫跨圖的頂部,每個框表示每個類的實例(對象)。在框中,類實例名表

49、示每個類的實例(對象)。在框中,類實例名稱和類名稱之間用冒號來分隔,稱和類名稱之間用冒號來分隔, 對象名對象名 : : 類名。類名。l如果某個類實例向另一個類實例發(fā)送一條消息,如果某個類實例向另一個類實例發(fā)送一條消息,則繪制一條具有指向接收類實例的開箭頭的連線,則繪制一條具有指向接收類實例的開箭頭的連線,并把消息并把消息/ /方法的名稱放在連線上面。方法的名稱放在連線上面。l時序圖一般放在用例的下面,對應(yīng)用例的執(zhí)行路時序圖一般放在用例的下面,對應(yīng)用例的執(zhí)行路徑。徑。1.通過進(jìn)水管向洗滌缸注水。通過進(jìn)水管向洗滌缸注水。2.洗滌缸保持洗滌缸保持5分鐘靜止?fàn)罘昼婌o止?fàn)顟B(tài)。態(tài)。3.水注滿,停止注水。水

50、注滿,停止注水。4.洗滌缸往返旋轉(zhuǎn)洗滌缸往返旋轉(zhuǎn)15分鐘。分鐘。5.通過排水管排掉洗滌后的通過排水管排掉洗滌后的臟水。臟水。6.重新開始注水。重新開始注水。7.洗滌缸繼續(xù)往返旋轉(zhuǎn)洗滌。洗滌缸繼續(xù)往返旋轉(zhuǎn)洗滌。8.停止向洗衣機(jī)中注水。停止向洗衣機(jī)中注水。9.通過排水管排掉漂洗衣物通過排水管排掉漂洗衣物的水。的水。10.洗滌缸加速單方向旋轉(zhuǎn)洗滌缸加速單方向旋轉(zhuǎn)5分鐘。分鐘。11.洗滌缸停止旋轉(zhuǎn),洗衣洗滌缸停止旋轉(zhuǎn),洗衣過程結(jié)束。過程結(jié)束。當(dāng)當(dāng)“洗衣服洗衣服”這個用例被執(zhí)行時,將會依次發(fā)生什么事情這個用例被執(zhí)行時,將會依次發(fā)生什么事情呢?假設(shè)你已經(jīng)完成了呢?假設(shè)你已經(jīng)完成了“加衣物加衣物”、“加洗滌

51、加洗滌”和和“開機(jī)開機(jī)”的操作,那么洗衣步驟如下:的操作,那么洗衣步驟如下: 進(jìn)水管洗滌缸排水管注入新水保持靜止停止注水往返旋轉(zhuǎn)排掉洗滌后的臟水注入新水往返旋轉(zhuǎn)排掉漂洗過的水單向旋轉(zhuǎn)停止轉(zhuǎn)動停止注水例例2:理理解解時時序序圖圖通過上述時序圖,我們得知有以下通過上述時序圖,我們得知有以下8個過程:個過程:1. flooringclient新建一個對象新建一個對象thesurface2. flooringclient新建一個對象新建一個對象theflooring3. flooringclient發(fā)送一個消息給對象發(fā)送一個消息給對象theflooring,并以并以thesurface為變量為變量4.

52、 theflooring發(fā)送一個消息發(fā)送一個消息getlength()給給thesurface5. thesurface發(fā)送一個回應(yīng)給發(fā)送一個回應(yīng)給theflooring6. theflooring發(fā)送一個消息發(fā)送一個消息getwidth ()給給thesurface7. thesurface發(fā)送一個回應(yīng)給發(fā)送一個回應(yīng)給theflooring8. theflooring發(fā)送一個回應(yīng)給發(fā)送一個回應(yīng)給flooringclientl尋找角色尋找角色列出啟動該用例的參與者列出啟動該用例的參與者;l尋找對象尋找對象邊界對象:列出啟動用例時參與者使用的邊界對象。邊界對象:列出啟動用例時參與者使用的邊界對象

53、。如窗體等。一般,一個參與者與一個用例的交互至少如窗體等。一般,一個參與者與一個用例的交互至少對應(yīng)一個邊界對象。對應(yīng)一個邊界對象??刂茖ο螅毫谐龉芾碓撚美目刂茖ο???刂茖ο笫强刂茖ο螅毫谐龉芾碓撚美目刂茖ο???刂茖ο笫强蛇x的對象,控制用例的流程。一般,一個用例對應(yīng)可選的對象,控制用例的流程。一般,一個用例對應(yīng)一個控制對象。一個控制對象。實體對象:列出用例中使用到的實體對象。實體對象實體對象:列出用例中使用到的實體對象。實體對象用于保存信息的對象,最終可能映射成數(shù)據(jù)庫中的表用于保存信息的對象,最終可能映射成數(shù)據(jù)庫中的表和字段。和字段。l將消息加進(jìn)圖中將消息加進(jìn)圖中按時間順序列出分析對象之間進(jìn)

54、行消息訪問的序列。按時間順序列出分析對象之間進(jìn)行消息訪問的序列。舉例舉例1:檢索零件時序圖:檢索零件時序圖時序圖和類圖的映射時序圖中某個對象消息的傳入對應(yīng)于該類對象時序圖中某個對象消息的傳入對應(yīng)于該類對象所具有的操作。所具有的操作。舉例2:采購用例的時序圖列出上圖中所有的類(對象),并分別列出圖中顯示的每個類列出上圖中所有的類(對象),并分別列出圖中顯示的每個類的方法(帶參數(shù))。并填空完成以下的類說明文檔。的方法(帶參數(shù))。并填空完成以下的類說明文檔。文件名稱:類說明文件名稱:類說明. .docdoc類名:類名:方法:方法:1._1._供貨供貨通知退貨通知退貨2._2._業(yè)務(wù)經(jīng)理業(yè)務(wù)經(jīng)理3._

55、3._執(zhí)行采購(采購計劃)執(zhí)行采購(采購計劃)接貨(供貨單,貨物)接貨(供貨單,貨物)4._4._通知拒收通知拒收通知付款通知付款5._5._辦理入庫(入庫單,采購計劃,貨物)辦理入庫(入庫單,采購計劃,貨物)驗貨(入庫單,采購計劃,貨物)驗貨(入庫單,采購計劃,貨物)填寫實際入庫數(shù)量填寫實際入庫數(shù)量6._6._7._7._通知付款(入庫單財務(wù)聯(lián))通知付款(入庫單財務(wù)聯(lián))出納出納8._8._文件名稱:類說明文件名稱:類說明. .docdoc類名:類名:方法:方法:供應(yīng)商供應(yīng)商供貨供貨通知退貨通知退貨付款付款( (采購款采購款) ) 業(yè)務(wù)經(jīng)理業(yè)務(wù)經(jīng)理采購員采購員執(zhí)行采購(采購計劃)執(zhí)行采購(采購

56、計劃)接貨(供貨單,貨物)接貨(供貨單,貨物)核貨(供貨單,貨物)核貨(供貨單,貨物)通知拒收通知拒收通知付款通知付款庫管員庫管員辦理入庫(入庫單,采購計劃,貨物)辦理入庫(入庫單,采購計劃,貨物)驗貨(入庫單,采購計劃,貨物)驗貨(入庫單,采購計劃,貨物)填寫實際入庫數(shù)量填寫實際入庫數(shù)量簽字入庫簽字入庫會計會計通知付款(入庫單財務(wù)聯(lián))通知付款(入庫單財務(wù)聯(lián))出納出納通知付款(付款憑證)通知付款(付款憑證)答案:答案:例 : 以例 : 以 選 課 系 統(tǒng) 中 選 課 用 例選 課 系 統(tǒng) 中 選 課 用 例(select course)為例。為例。l 協(xié)作圖(協(xié)作圖(collaboration

57、 diagram)是交互圖的另一是交互圖的另一種表現(xiàn)形式,它強(qiáng)調(diào)參加交互的各對象的組織。主種表現(xiàn)形式,它強(qiáng)調(diào)參加交互的各對象的組織。主要用于描述一組相互合作的對象間的交互和鏈接要用于描述一組相互合作的對象間的交互和鏈接.l協(xié)作圖只對相互間有交互作用的對象和這些對象間協(xié)作圖只對相互間有交互作用的對象和這些對象間的關(guān)系建模,而忽略了其他對象和關(guān)聯(lián)。的關(guān)系建模,而忽略了其他對象和關(guān)聯(lián)。l時序圖主要描述對象間消息發(fā)送的時間順序,而協(xié)時序圖主要描述對象間消息發(fā)送的時間順序,而協(xié)作圖側(cè)重于描述交互對象之間鏈接關(guān)系(或稱交互作圖側(cè)重于描述交互對象之間鏈接關(guān)系(或稱交互關(guān)系),而不專門突出這些消息發(fā)送的時間順

58、序。關(guān)系),而不專門突出這些消息發(fā)送的時間順序。l協(xié)作圖不像時序圖一樣具備時間維協(xié)作圖不像時序圖一樣具備時間維,為了表示消息的為了表示消息的時間順序時間順序,通常要為消息加一個數(shù)字前綴通常要為消息加一個數(shù)字前綴.l時序圖與協(xié)作圖在語義上是等價的,可以互換,在時序圖與協(xié)作圖在語義上是等價的,可以互換,在rose中按中按f5鍵。鍵。l協(xié)作圖由活動者、對象、連接和消息組協(xié)作圖由活動者、對象、連接和消息組成。成。使用實線表示兩個對象之間的連接使用實線表示兩個對象之間的連接.消息由標(biāo)記在連接上方的帶有標(biāo)記的箭頭表消息由標(biāo)記在連接上方的帶有標(biāo)記的箭頭表示示.例例1:內(nèi)部計時器洗滌缸進(jìn)水管1.停止注水2.往

59、返旋轉(zhuǎn) : 檢索零件ui : 檢索零件uc : 零件 : 會員1: 提交查詢條件( )2: 檢索零件()3: 檢索零件()4: 顯示零件列表()5: 選中零件( )6: 取零件信息()7: 取零件信息()8: 顯示零件詳細(xì)信息()例例2:檢索零件時序協(xié)作圖:檢索零件時序協(xié)作圖多對象:在協(xié)作圖中,多對象指的是由多個多對象:在協(xié)作圖中,多對象指的是由多個對象組成的對象集合,一般這些對象是屬于對象組成的對象集合,一般這些對象是屬于同一個類的。同一個類的。當(dāng)需要把消息同時發(fā)送給多個對象而不是單當(dāng)需要把消息同時發(fā)送給多個對象而不是單個對象的時候,就使用多對象這個概念。個對象的時候,就使用多對象這個概念。

60、在協(xié)作圖中,多對象用多個方框的重疊表示。在協(xié)作圖中,多對象用多個方框的重疊表示。例如:老師讓多個學(xué)生同時交作業(yè)。例如:老師讓多個學(xué)生同時交作業(yè)。時序圖和協(xié)作圖的比較時序圖和協(xié)作圖的比較:時序圖和協(xié)作圖都屬于交互圖,都用于描述時序圖和協(xié)作圖都屬于交互圖,都用于描述系統(tǒng)中對象之間的動態(tài)關(guān)系。兩者可以相互系統(tǒng)中對象之間的動態(tài)關(guān)系。兩者可以相互轉(zhuǎn)換,但兩者強(qiáng)調(diào)的重點不同。轉(zhuǎn)換,但兩者強(qiáng)調(diào)的重點不同。當(dāng)對象及其連接有利于理解對象之間的交互當(dāng)對象及其連接有利于理解對象之間的交互時時,選擇協(xié)作圖選擇協(xié)作圖;當(dāng)強(qiáng)調(diào)消息發(fā)送的時間順序時當(dāng)強(qiáng)調(diào)消息發(fā)送的時間順序時,選擇時序圖。選擇時序圖。時序圖中有對象生命線和控

溫馨提示

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

評論

0/150

提交評論