統(tǒng)一建模語言 UML_第1頁
統(tǒng)一建模語言 UML_第2頁
統(tǒng)一建模語言 UML_第3頁
統(tǒng)一建模語言 UML_第4頁
統(tǒng)一建模語言 UML_第5頁
已閱讀5頁,還剩82頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、第第2章章統(tǒng)一建模語言統(tǒng)一建模語言UML本章內(nèi)容本章內(nèi)容2.1 2.1 UML概述概述 2.2 2.2 UML的關(guān)系的關(guān)系 2.3 2.3 用例圖用例圖2.4 2.4 類圖和對象圖類圖和對象圖2.5 2.5 交互作用圖交互作用圖2.6 2.6 活動圖活動圖2.7 2.7 用例驅(qū)動開發(fā)用例驅(qū)動開發(fā)2.8 2.8 Rational Rose的安裝與使用的安裝與使用2.1 UML概述概述n 建模目的建模目的n UML簡介簡介n UML的術(shù)語和概念的術(shù)語和概念n UML的組成的組成 n UML模型種類和用途模型種類和用途2.1.1 建模目的建模目的 p 必要性必要性 對于多數(shù)程序員而言,在腦海里設(shè)想一

2、個軟件的實(shí)現(xiàn)對于多數(shù)程序員而言,在腦海里設(shè)想一個軟件的實(shí)現(xiàn)與用代碼來實(shí)現(xiàn)這個軟件是沒有距離的,怎么想,就與用代碼來實(shí)現(xiàn)這個軟件是沒有距離的,怎么想,就怎么用代碼來實(shí)現(xiàn)它。這種做法會產(chǎn)生下列問題:怎么用代碼來實(shí)現(xiàn)它。這種做法會產(chǎn)生下列問題:n不利于交流。不利于交流。n如果不建立模型,軟件系統(tǒng)中的有些東西很難用文如果不建立模型,軟件系統(tǒng)中的有些東西很難用文本的編程語言來表達(dá)清楚。本的編程語言來表達(dá)清楚。n如果程序員在修改代碼時,沒有將他腦海中的模型如果程序員在修改代碼時,沒有將他腦海中的模型記錄下來,這個信息可能會永遠(yuǎn)丟失,不便于軟件記錄下來,這個信息可能會永遠(yuǎn)丟失,不便于軟件維護(hù)。維護(hù)。p 重要

3、性重要性n模型是對現(xiàn)實(shí)世界的簡化和抽象。建模是為了更好模型是對現(xiàn)實(shí)世界的簡化和抽象。建模是為了更好地理解正在開發(fā)的系統(tǒng)。地理解正在開發(fā)的系統(tǒng)。n模型是溝通的手段。模型可以精確描述系統(tǒng),保證模型是溝通的手段。模型可以精確描述系統(tǒng),保證系統(tǒng)開發(fā)過程中語義的一致性。系統(tǒng)開發(fā)過程中語義的一致性。p 建模原理建模原理n每一種模型可以在不同的精度級別上表示,最好的每一種模型可以在不同的精度級別上表示,最好的模型是與現(xiàn)實(shí)相聯(lián)系的。單個模型是不充分的。對模型是與現(xiàn)實(shí)相聯(lián)系的。單個模型是不充分的。對重要的系統(tǒng)應(yīng)采用一組幾乎獨(dú)立的模型進(jìn)行建模。重要的系統(tǒng)應(yīng)采用一組幾乎獨(dú)立的模型進(jìn)行建模。p 建模方法建模方法n從算

4、法的角度建模(結(jié)構(gòu)化)從算法的角度建模(結(jié)構(gòu)化)n從面向?qū)ο蟮慕嵌冉拿嫦驅(qū)ο蟮慕嵌冉=D康慕D康?2.1.2 UML簡介簡介 p UML的發(fā)展的發(fā)展n1989到到1994年,不同建模語言(約年,不同建模語言(約50多種)引發(fā)多種)引發(fā)了面向?qū)ο蠓椒ǖ牧嗣嫦驅(qū)ο蠓椒ǖ摹胺椒ù髴?zhàn)方法大戰(zhàn)”;nUML不僅結(jié)合了不僅結(jié)合了Booch、OMT和和OOSE方法,而且方法,而且對其做了進(jìn)一步的發(fā)展,統(tǒng)一了符號體系,并從其它對其做了進(jìn)一步的發(fā)展,統(tǒng)一了符號體系,并從其它的方法和軟件工程實(shí)踐中吸收了許多經(jīng)過實(shí)踐檢驗的的方法和軟件工程實(shí)踐中吸收了許多經(jīng)過實(shí)踐檢驗的概念和技術(shù);概念和技術(shù);nUML是是Gr

5、ady Booch、James Rumbaugh、Ivar Jacobson和許多其他人員集體智慧的結(jié)晶,并和許多其他人員集體智慧的結(jié)晶,并最終統(tǒng)一為大眾所接受的標(biāo)準(zhǔn)建模語言。最終統(tǒng)一為大眾所接受的標(biāo)準(zhǔn)建模語言。uml官網(wǎng),官網(wǎng),nhttp:/ uml相關(guān)相關(guān)case工具工具p UML的特點(diǎn)的特點(diǎn)nUML是一種建模語言是一種建模語言nUML是一種可視化語言是一種可視化語言nUML是一種可用于詳細(xì)描述的語言是一種可用于詳細(xì)描述的語言nUML是一種構(gòu)造語言是一種構(gòu)造語言nUML是一種文檔化語言是一種文檔化語言p UML的功能的功能n為軟件系統(tǒng)的產(chǎn)出建立可視化模型為

6、軟件系統(tǒng)的產(chǎn)出建立可視化模型n規(guī)約軟件系統(tǒng)的產(chǎn)出規(guī)約軟件系統(tǒng)的產(chǎn)出n構(gòu)造軟件系統(tǒng)的產(chǎn)出構(gòu)造軟件系統(tǒng)的產(chǎn)出UML簡介簡介 2.1.3 UML的術(shù)語和概念的術(shù)語和概念 p 系統(tǒng)和模型系統(tǒng)和模型n系統(tǒng)和子系統(tǒng)系統(tǒng)和子系統(tǒng)n模型模型n視圖視圖l用例視圖用例視圖l設(shè)計視圖設(shè)計視圖l過程視圖過程視圖l實(shí)現(xiàn)視圖實(shí)現(xiàn)視圖l配置視圖配置視圖n圖圖系統(tǒng)和子系統(tǒng)系統(tǒng)和子系統(tǒng)p 包包 包是一個用來將模型單元分組的通用機(jī)制,可以將一包是一個用來將模型單元分組的通用機(jī)制,可以將一個系統(tǒng)看作一個單一的、高級的包。個系統(tǒng)看作一個單一的、高級的包。n可見性可見性n引入與輸出引入與輸出n類屬關(guān)系類屬關(guān)系PackageUML的術(shù)語

7、和概念的術(shù)語和概念 p 注釋注釋n注釋是附加在元素或元素集上,用來表示約束或注注釋是附加在元素或元素集上,用來表示約束或注釋的圖形符號。釋的圖形符號。 UML的術(shù)語和概念的術(shù)語和概念 p 協(xié)作協(xié)作n協(xié)作是一組類、接口和其他元素的群體,它們共同協(xié)作是一組類、接口和其他元素的群體,它們共同工作,提供比各組成部分的功能總和更強(qiáng)的合作行工作,提供比各組成部分的功能總和更強(qiáng)的合作行為。為。n包括包括n結(jié)構(gòu)部分結(jié)構(gòu)部分n行為部分行為部分UML的術(shù)語和概念的術(shù)語和概念 p 對象對象n對象對象(Object)代表了類的一個特定實(shí)例,具有身代表了類的一個特定實(shí)例,具有身份份(Identity)和屬性值和屬性值(

8、Attribute Values)。n為了與上下文中的其他對象相區(qū)別,每個對象都應(yīng)為了與上下文中的其他對象相區(qū)別,每個對象都應(yīng)該有一個名字。對象可以用該有一個名字。對象可以用3種方式命名:對象名、種方式命名:對象名、對象名和類名、只用類名。對象名和類名、只用類名。n在實(shí)踐中,對象名常用從問題域詞匯表中抽取的名在實(shí)踐中,對象名常用從問題域詞匯表中抽取的名詞或名詞短語表示詞或名詞短語表示objectobject:Class:ClassUML的術(shù)語和概念的術(shù)語和概念 p 消息消息n消息是對象消息是對象間的通信,間的通信,它傳達(dá)了要它傳達(dá)了要執(zhí)行動作的執(zhí)行動作的信息,它能信息,它能觸發(fā)事件。觸發(fā)事件。

9、UML的術(shù)語和概念的術(shù)語和概念 p 接口接口n接口是用來規(guī)定類或組件服務(wù)的操作的集合。接口是用來規(guī)定類或組件服務(wù)的操作的集合。n接口可以有名字,以與其他的接口相區(qū)分。實(shí)踐中,接口可以有名字,以與其他的接口相區(qū)分。實(shí)踐中,接口名通常是從問題域的詞匯表中抽取出的短名詞接口名通常是從問題域的詞匯表中抽取出的短名詞或名詞詞組。或名詞詞組。n和類一樣,接口可以參與類屬關(guān)系、關(guān)聯(lián)關(guān)系和依和類一樣,接口可以參與類屬關(guān)系、關(guān)聯(lián)關(guān)系和依賴關(guān)系,還可以參與實(shí)現(xiàn)關(guān)系。賴關(guān)系,還可以參與實(shí)現(xiàn)關(guān)系。UML的術(shù)語和概念的術(shù)語和概念 n接口的符號如圖所示有接口的符號如圖所示有3中表示方法。第一種是圖中表示方法。第一種是圖標(biāo)

10、(標(biāo)(Icon)形式,第二種是修飾()形式,第二種是修飾(Decoration)形式,第三種是標(biāo)簽(形式,第三種是標(biāo)簽(Label)形式。對于后兩種)形式。對于后兩種表示方法,還可以將屬性、操作、或兩部分都隱藏表示方法,還可以將屬性、操作、或兩部分都隱藏起來起來UML的術(shù)語和概念的術(shù)語和概念 InterfaceInterfaceInterfacep 類型類型n類型是類的構(gòu)造型,用于描述對象的域。類型是類的構(gòu)造型,用于描述對象的域。UML的術(shù)語和概念的術(shù)語和概念 p 角色角色n角色是一個參與特定語境的實(shí)體的行為。角色是一個參與特定語境的實(shí)體的行為。UML的術(shù)語和概念的術(shù)語和概念 p 實(shí)例實(shí)例n實(shí)

11、例是抽象的具體表示,對它可使用一組操作,它實(shí)例是抽象的具體表示,對它可使用一組操作,它有用來存儲操作結(jié)果的狀態(tài)。有用來存儲操作結(jié)果的狀態(tài)。l名稱名稱l操作操作l狀態(tài)狀態(tài)l主動對象主動對象l連接連接l類范圍的屬性類范圍的屬性和操作和操作l暫時暫時UML的術(shù)語和概念的術(shù)語和概念 p 事件事件n事件是對一個在時間和空間上占有一定位置的有意事件是對一個在時間和空間上占有一定位置的有意義的事情的規(guī)格說明。義的事情的規(guī)格說明。l種類種類 l消息信號消息信號l調(diào)用調(diào)用UML的術(shù)語和概念的術(shù)語和概念 p UML的擴(kuò)充機(jī)制的擴(kuò)充機(jī)制nUML支持自身的擴(kuò)充與調(diào)整,以便使其與一個特支持自身的擴(kuò)充與調(diào)整,以便使其與一

12、個特定的方法、組織或用戶相一致,定的方法、組織或用戶相一致,UML中包含中包含3種種主要的擴(kuò)充組件:原型、標(biāo)記值和約束。主要的擴(kuò)充組件:原型、標(biāo)記值和約束。l原型原型stereotype:能夠擴(kuò)充領(lǐng)域中的詞匯,且看起:能夠擴(kuò)充領(lǐng)域中的詞匯,且看起來仍像原有構(gòu)造塊的新事物。來仍像原有構(gòu)造塊的新事物。l標(biāo)記值標(biāo)記值value:為:為UML事物增加新的特性。事物增加新的特性。l約束約束constraint:增加新的語義或改變已存在的規(guī):增加新的語義或改變已存在的規(guī)則。則。UML的術(shù)語和概念的術(shù)語和概念 p 狀態(tài)機(jī)狀態(tài)機(jī)n說明對象在生命期中響應(yīng)事件所經(jīng)歷的狀態(tài)序列,說明對象在生命期中響應(yīng)事件所經(jīng)歷的狀

13、態(tài)序列,以及它們對事件的響應(yīng)。以及它們對事件的響應(yīng)。l狀態(tài):對象生命期中的一個條件或狀況,在此期間,狀態(tài):對象生命期中的一個條件或狀況,在此期間,對象將滿足某些條件,執(zhí)行某些活動,或等待某些對象將滿足某些條件,執(zhí)行某些活動,或等待某些事件。事件。l初態(tài):狀態(tài)機(jī)或子狀態(tài)的缺省開始位置;初態(tài):狀態(tài)機(jī)或子狀態(tài)的缺省開始位置;l終態(tài):狀態(tài)機(jī)或外圍狀態(tài)的執(zhí)行已經(jīng)完成。終態(tài):狀態(tài)機(jī)或外圍狀態(tài)的執(zhí)行已經(jīng)完成。l轉(zhuǎn)換:一個轉(zhuǎn)換是兩個狀態(tài)之間的一種關(guān)系,表示轉(zhuǎn)換:一個轉(zhuǎn)換是兩個狀態(tài)之間的一種關(guān)系,表示對象將在第一個狀態(tài)中執(zhí)行一定的動作,并在某個對象將在第一個狀態(tài)中執(zhí)行一定的動作,并在某個特定事件發(fā)生而某個特定的

14、條件滿足時進(jìn)入第二個特定事件發(fā)生而某個特定的條件滿足時進(jìn)入第二個狀態(tài)。狀態(tài)。UML的術(shù)語和概念的術(shù)語和概念 p 時間和空間時間和空間n時間標(biāo)記:表示事件發(fā)生時刻的符號,由交互中的時間標(biāo)記:表示事件發(fā)生時刻的符號,由交互中的消息名形成的表達(dá)式。消息名形成的表達(dá)式。n時間表達(dá)式:用來判斷絕對或相對時間值的表達(dá)式。時間表達(dá)式:用來判斷絕對或相對時間值的表達(dá)式。n時間約束:關(guān)于絕對或相對時間值的語義陳述。時間約束:關(guān)于絕對或相對時間值的語義陳述。n位置:一個構(gòu)件在一個節(jié)點(diǎn)上的位置。位置:一個構(gòu)件在一個節(jié)點(diǎn)上的位置。n實(shí)時系統(tǒng):是時間關(guān)鍵系統(tǒng)。事件可以在規(guī)則或不實(shí)時系統(tǒng):是時間關(guān)鍵系統(tǒng)。事件可以在規(guī)則或

15、不規(guī)則的時間發(fā)生;對一個事件的響應(yīng)必須在可預(yù)料規(guī)則的時間發(fā)生;對一個事件的響應(yīng)必須在可預(yù)料的絕對時間或者相對于事件本身的時間發(fā)生。的絕對時間或者相對于事件本身的時間發(fā)生。UML的術(shù)語和概念的術(shù)語和概念 p UML的內(nèi)容的內(nèi)容nUML語義語義nUML表示法表示法p UML的構(gòu)成的構(gòu)成n元素元素l結(jié)構(gòu)元素:模型的靜態(tài)部分,描述概念或物理元素,結(jié)構(gòu)元素:模型的靜態(tài)部分,描述概念或物理元素,包括類、接口、協(xié)作、用例、主動類、組件和節(jié)點(diǎn)。包括類、接口、協(xié)作、用例、主動類、組件和節(jié)點(diǎn)。l行為元素:模型的動態(tài)部分,描述跨越時間和空間行為元素:模型的動態(tài)部分,描述跨越時間和空間的行為,包括交互和狀態(tài)機(jī)。的行為

16、,包括交互和狀態(tài)機(jī)。l分組元素:模型的組織部分,如包。分組元素:模型的組織部分,如包。l注釋元素:模型的解釋部分,用來描述、說明和標(biāo)注釋元素:模型的解釋部分,用來描述、說明和標(biāo)注模型的任何元素,如注解。注模型的任何元素,如注解。2.1.4 UML的組成的組成 n關(guān)系關(guān)系 關(guān)系說明元素之間的相互聯(lián)系,關(guān)系說明元素之間的相互聯(lián)系,即事物之間的聯(lián)即事物之間的聯(lián)系,在面向?qū)ο蠼V邢?,在面向?qū)ο蠼V?,有四種很重要的關(guān)系:,有四種很重要的關(guān)系:l依賴依賴(Dependency)關(guān)系關(guān)系l類屬類屬(Generalization)關(guān)系關(guān)系或稱泛化關(guān)系或稱泛化關(guān)系l關(guān)聯(lián)關(guān)聯(lián)(Association)關(guān)系關(guān)系

17、l實(shí)現(xiàn)實(shí)現(xiàn)(Realization)關(guān)系關(guān)系UML的組成的組成 n圖圖 圖是由一組元素和關(guān)系組成的連通圖,包括靜態(tài)結(jié)圖是由一組元素和關(guān)系組成的連通圖,包括靜態(tài)結(jié)構(gòu)圖和動態(tài)行為圖(構(gòu)圖和動態(tài)行為圖(1.x版本)版本)l類圖類圖l對象圖對象圖(非正式圖)(非正式圖)l包圖(非正式圖)包圖(非正式圖)l組件圖組件圖l配置圖配置圖UML的組成的組成 l用例圖用例圖l順序圖順序圖l協(xié)作圖協(xié)作圖l狀態(tài)圖狀態(tài)圖l活動圖活動圖描述靜態(tài)結(jié)構(gòu)描述外部執(zhí)行者理解的功能描述對象間的交互關(guān)系描述動態(tài)模型和組成對象間的交互關(guān)系描述代碼部件物理結(jié)構(gòu)及各部件依賴關(guān)系定義系統(tǒng)中軟硬件的物理體系結(jié)構(gòu)2.1.5 UML模型種類和用

18、途模型種類和用途 模型模型用途用途業(yè)務(wù)模型建立問題領(lǐng)域的業(yè)務(wù)內(nèi)容、業(yè)務(wù)流程、組織結(jié)構(gòu)的抽象需求模型對捕獲的需求進(jìn)行整理和分析的工具,表達(dá)系統(tǒng)功能,幫助開發(fā)人員和用戶交流溝通分析模型對基本功能進(jìn)行分析,包含實(shí)現(xiàn)功能的對象以及對象間的關(guān)系設(shè)計模型系統(tǒng)具體解決方案,包含高層設(shè)計(架構(gòu))和詳細(xì)設(shè)計的模型,由調(diào)整和完善分析模型完成,用于開發(fā)人員統(tǒng)一、溝通設(shè)計信息進(jìn)程模型描述系統(tǒng)開發(fā)和同步機(jī)制,有多線程的并發(fā)系統(tǒng)時才建立進(jìn)程模型實(shí)現(xiàn)模型用來理清軟件系統(tǒng)的組成,為安裝和維護(hù)人員的工作提供指導(dǎo)部署模型部署方案,描述系統(tǒng)軟件在硬件上的配置,為安裝和維護(hù)人員的工作提供指導(dǎo)測試模型描述驗證系統(tǒng)功能的途徑2.2 UM

19、L的關(guān)系的關(guān)系 n 依賴關(guān)系(依賴關(guān)系(Dependency) n 類屬關(guān)系(類屬關(guān)系(Generalization) n 關(guān)聯(lián)關(guān)系(關(guān)聯(lián)關(guān)系(Association)n 實(shí)現(xiàn)關(guān)系(實(shí)現(xiàn)關(guān)系(Realizarion)2.2.1 依賴關(guān)系依賴關(guān)系p 依賴關(guān)系描述了類之間的使用關(guān)系依賴關(guān)系描述了類之間的使用關(guān)系(use a)。p 如果一個模型元素發(fā)生變化會影響另一個模如果一個模型元素發(fā)生變化會影響另一個模型元素(這種影響不必是可逆的),那么就型元素(這種影響不必是可逆的),那么就說在這兩個模型元素之間存在依賴關(guān)系。說在這兩個模型元素之間存在依賴關(guān)系。p 例如:有兩個元素例如:有兩個元素X、Y,如果

20、修改元素,如果修改元素X的的定義會引起對元素定義會引起對元素Y的定義的修改,則稱元的定義的修改,則稱元素素Y依賴于元素依賴于元素X。依賴關(guān)系依賴關(guān)系p 依賴關(guān)系依賴關(guān)系的的UML符符號表示是號表示是帶箭頭的帶箭頭的虛線,指虛線,指向被依賴向被依賴的模型元的模型元素。素。依賴關(guān)系依賴關(guān)系p在類圖中,依賴可以由許多原因引起,例如,在類圖中,依賴可以由許多原因引起,例如,一個類向另一個類發(fā)送消息(也即,一個類的一個類向另一個類發(fā)送消息(也即,一個類的操作調(diào)用另一個類的操作),或者一個類是另操作調(diào)用另一個類的操作),或者一個類是另一個類的數(shù)據(jù)成員,或者一個類是另一個類的一個類的數(shù)據(jù)成員,或者一個類是另

21、一個類的某個操作參數(shù),那么就可以說這兩個類之間存某個操作參數(shù),那么就可以說這兩個類之間存在著依賴關(guān)系。在著依賴關(guān)系。p語義上,所有的關(guān)系(包括關(guān)聯(lián)關(guān)系、類屬關(guān)語義上,所有的關(guān)系(包括關(guān)聯(lián)關(guān)系、類屬關(guān)系、實(shí)現(xiàn)關(guān)系)都是各種各樣的依賴關(guān)系,因系、實(shí)現(xiàn)關(guān)系)都是各種各樣的依賴關(guān)系,因為這為這3種關(guān)系具有很重要的語義,所以在種關(guān)系具有很重要的語義,所以在UML中被分離出來成為獨(dú)立的關(guān)系。中被分離出來成為獨(dú)立的關(guān)系。2.2.2 類屬關(guān)系類屬關(guān)系p 類之間的類屬關(guān)系表示子類繼承一個或類之間的類屬關(guān)系表示子類繼承一個或多個父類的結(jié)構(gòu)與行為。類屬關(guān)系描述了多個父類的結(jié)構(gòu)與行為。類屬關(guān)系描述了類之間的類之間的“

22、是一種是一種”(is-a-kind-of)的的關(guān)系,類屬關(guān)系用來連接一般類與特殊類,關(guān)系,類屬關(guān)系用來連接一般類與特殊類,用來描述父類與子類或父與子的關(guān)系,子用來描述父類與子類或父與子的關(guān)系,子類繼承父類的特性,尤其是屬性和操作。類繼承父類的特性,尤其是屬性和操作。p 類屬關(guān)系的類屬關(guān)系的UML符號表示是帶空心箭頭符號表示是帶空心箭頭的實(shí)線,箭頭指向父元素。的實(shí)線,箭頭指向父元素。 一個類可以有零個到多個父類,沒有父類且有一個一個類可以有零個到多個父類,沒有父類且有一個 或多個子類的類被稱為根類或基類。或多個子類的類被稱為根類或基類。 沒有子類的類被稱為葉類。沒有子類的類被稱為葉類。 如果在繼

23、承關(guān)系中,每個類只能有一個父類,則是如果在繼承關(guān)系中,每個類只能有一個父類,則是單繼承。單繼承。 如果一個類有多于一個的父類存在,則被稱為多繼如果一個類有多于一個的父類存在,則被稱為多繼承。承。 2.2.3 關(guān)聯(lián)關(guān)系關(guān)聯(lián)關(guān)系p關(guān)聯(lián)關(guān)系是一種結(jié)構(gòu)關(guān)系,規(guī)定了一種事物的對關(guān)聯(lián)關(guān)系是一種結(jié)構(gòu)關(guān)系,規(guī)定了一種事物的對象可以與另一種事物的對象在語義上的聯(lián)系。象可以與另一種事物的對象在語義上的聯(lián)系。p例如,雇員為公司工作,一個公司有很多部門,例如,雇員為公司工作,一個公司有很多部門,可以認(rèn)為雇員和公司、公司和部門之間存在某種可以認(rèn)為雇員和公司、公司和部門之間存在某種語義上的聯(lián)系。在類圖模型中,可以在類語義

24、上的聯(lián)系。在類圖模型中,可以在類Employee(雇員雇員)和類和類Company(公司公司)、類、類Company(公司公司)和類和類Department(部門部門)之之間建立關(guān)聯(lián)關(guān)系。間建立關(guān)聯(lián)關(guān)系。p關(guān)聯(lián)關(guān)系的關(guān)聯(lián)關(guān)系的UML符號表示為一條實(shí)線。符號表示為一條實(shí)線。關(guān)聯(lián)關(guān)系關(guān)聯(lián)關(guān)系p 應(yīng)用于關(guān)聯(lián)關(guān)系的四種基本修飾是:應(yīng)用于關(guān)聯(lián)關(guān)系的四種基本修飾是:n名稱:描述關(guān)系的性質(zhì)。名稱:描述關(guān)系的性質(zhì)。n角色:關(guān)聯(lián)中靠近它一端的類對另外一端的類呈角色:關(guān)聯(lián)中靠近它一端的類對另外一端的類呈現(xiàn)的職責(zé)?,F(xiàn)的職責(zé)。n階元(階元(Multiplicity):說明一個關(guān)聯(lián)的實(shí)例中有:說明一個關(guān)聯(lián)的實(shí)例中有多少

25、個相互連接的對象。多少個相互連接的對象。n聚合(聚合(Aggregation)和組合)和組合(Composition):整體對象擁有部分對象):整體對象擁有部分對象(has a)。聚合中的部分可以獨(dú)立于整體存在,)。聚合中的部分可以獨(dú)立于整體存在,組合不可以。組合不可以。n關(guān)聯(lián)名通關(guān)聯(lián)名通常是一個常是一個動詞或動動詞或動詞詞組,詞詞組,用來表示用來表示關(guān)聯(lián)關(guān)系關(guān)聯(lián)關(guān)系的類型或的類型或目的。所目的。所選擇的關(guān)選擇的關(guān)聯(lián)名應(yīng)該聯(lián)名應(yīng)該有助于理有助于理解該模型。解該模型。p 關(guān)聯(lián)關(guān)系中的相關(guān)術(shù)語和概念關(guān)聯(lián)關(guān)系中的相關(guān)術(shù)語和概念n角色角色n階元階元n導(dǎo)航導(dǎo)航n聚合關(guān)系聚合關(guān)系n組合關(guān)系組合關(guān)系n關(guān)聯(lián)類

26、關(guān)聯(lián)類n可見性可見性n限定符限定符n接口說明符接口說明符關(guān)聯(lián)關(guān)系關(guān)聯(lián)關(guān)系2.2.4 實(shí)現(xiàn)關(guān)系實(shí)現(xiàn)關(guān)系p 實(shí)現(xiàn)關(guān)系是規(guī)格說明和它的實(shí)現(xiàn)之間的關(guān)實(shí)現(xiàn)關(guān)系是規(guī)格說明和它的實(shí)現(xiàn)之間的關(guān)系。系。p 可以在兩種情況下使用實(shí)現(xiàn)關(guān)系:可以在兩種情況下使用實(shí)現(xiàn)關(guān)系:n實(shí)現(xiàn)被用在接口與實(shí)現(xiàn)它們的類或組件之間;實(shí)現(xiàn)被用在接口與實(shí)現(xiàn)它們的類或組件之間;n實(shí)現(xiàn)被用在用例和實(shí)現(xiàn)該用例的協(xié)作之間。實(shí)現(xiàn)被用在用例和實(shí)現(xiàn)該用例的協(xié)作之間。p 實(shí)現(xiàn)關(guān)系的實(shí)現(xiàn)關(guān)系的UML符號表示是一條帶有空心符號表示是一條帶有空心箭頭的虛線。箭頭的虛線。2.3 用例圖用例圖 n 用例圖概述用例圖概述 n 用例圖的構(gòu)成用例圖的構(gòu)成 n 用例圖的應(yīng)用

27、用例圖的應(yīng)用 2.3.1 用例圖概述用例圖概述p 參與者觸發(fā)用例,并與用例進(jìn)行信息交換。參與者觸發(fā)用例,并與用例進(jìn)行信息交換。單個參與者可以和多個用例連接,一個用例單個參與者可以和多個用例連接,一個用例也可以與多個參與者連接。也可以與多個參與者連接。p 對同一個用例而言,不同參與者有著不同活對同一個用例而言,不同參與者有著不同活動:可以從用例獲取值,也可以輸出信息到動:可以從用例獲取值,也可以輸出信息到用例中。用例中。p 在參與者和用例之間存在的關(guān)聯(lián)關(guān)系通常被在參與者和用例之間存在的關(guān)聯(lián)關(guān)系通常被稱為通信關(guān)聯(lián),因為它代表著參與者與用例稱為通信關(guān)聯(lián),因為它代表著參與者與用例之間的通信。之間的通信

28、。用例圖概述用例圖概述p不帶箭頭的線段代表關(guān)聯(lián)是雙向?qū)Ш剑◤膮⑴c者不帶箭頭的線段代表關(guān)聯(lián)是雙向?qū)Ш剑◤膮⑴c者到用例,并從用例到參與者);帶箭頭的線段代到用例,并從用例到參與者);帶箭頭的線段代表關(guān)聯(lián)是單向?qū)Ш剑◤膮⑴c者到用例,或從用例表關(guān)聯(lián)是單向?qū)Ш剑◤膮⑴c者到用例,或從用例到參與者),導(dǎo)航的方向表明了是參與者發(fā)起和到參與者),導(dǎo)航的方向表明了是參與者發(fā)起和用例的通信還是用例發(fā)起和參與者的通信。用例的通信還是用例發(fā)起和參與者的通信。p用例捕捉了系統(tǒng)的行為但沒有規(guī)定怎樣實(shí)現(xiàn)這些用例捕捉了系統(tǒng)的行為但沒有規(guī)定怎樣實(shí)現(xiàn)這些行為,這一點(diǎn)很重要,因為系統(tǒng)分析(規(guī)定行為)行為,這一點(diǎn)很重要,因為系統(tǒng)分析(

29、規(guī)定行為)應(yīng)該盡可能多地不被實(shí)現(xiàn)的細(xì)節(jié)(規(guī)定怎樣執(zhí)行應(yīng)該盡可能多地不被實(shí)現(xiàn)的細(xì)節(jié)(規(guī)定怎樣執(zhí)行行為)所影響。行為)所影響。 協(xié)作是一起工作以實(shí)現(xiàn)用例行為的類和其他協(xié)作是一起工作以實(shí)現(xiàn)用例行為的類和其他元素構(gòu)成的群體,顯式說明用例的實(shí)現(xiàn)元素構(gòu)成的群體,顯式說明用例的實(shí)現(xiàn)。p最終,用例需要被實(shí)現(xiàn),在最終,用例需要被實(shí)現(xiàn),在UML中用來實(shí)現(xiàn)用中用來實(shí)現(xiàn)用例的元素是協(xié)作(例的元素是協(xié)作(Collaboration)。2.3.2 用例圖的構(gòu)成用例圖的構(gòu)成p 參與者參與者n在在UML中,參與者代表與系統(tǒng)交互的人、硬件、中,參與者代表與系統(tǒng)交互的人、硬件、或另一個系統(tǒng),是用例使用者與用例交互時所或另一個系統(tǒng)

30、,是用例使用者與用例交互時所扮演的角色。參與者的扮演的角色。參與者的UML符號表示是圖示的符號表示是圖示的“小人小人”,并可在符號下標(biāo)出參與者名。參與,并可在符號下標(biāo)出參與者名。參與者可以只向系統(tǒng)輸入信息或只從系統(tǒng)接受信息,者可以只向系統(tǒng)輸入信息或只從系統(tǒng)接受信息,也可以既可以輸入信息給系統(tǒng),還可以接受系也可以既可以輸入信息給系統(tǒng),還可以接受系統(tǒng)的輸出信息。參與者與參與者之間也可以存統(tǒng)的輸出信息。參與者與參與者之間也可以存在類屬關(guān)系。在類屬關(guān)系。n為了準(zhǔn)確獲取用例,首先需要識別系統(tǒng)的參與為了準(zhǔn)確獲取用例,首先需要識別系統(tǒng)的參與者,可以通過問題的答案來幫助發(fā)現(xiàn)系統(tǒng)的參者,可以通過問題的答案來幫助

31、發(fā)現(xiàn)系統(tǒng)的參與者。與者。n識別參與者須注意的問題:識別參與者須注意的問題:l盡管參與者在用例圖中是用類似人的圖形盡管參與者在用例圖中是用類似人的圖形來表示,但參與者并不一定必須是人。來表示,但參與者并不一定必須是人。l參與者代表角色。參與者代表角色。l一個實(shí)體可以扮演多種角色(參與者),一個實(shí)體可以扮演多種角色(參與者),在確定實(shí)體的參與者身份時,應(yīng)考慮其所在確定實(shí)體的參與者身份時,應(yīng)考慮其所扮演的角色,而不是實(shí)體的頭銜或名稱。扮演的角色,而不是實(shí)體的頭銜或名稱。l角色不是對職位建模。角色不是對職位建模。用例圖的構(gòu)成用例圖的構(gòu)成p 用例用例n用例描述了系統(tǒng)所執(zhí)行的一組動作序列,系用例描述了系統(tǒng)

32、所執(zhí)行的一組動作序列,系統(tǒng)執(zhí)行該動作序列來為參與者產(chǎn)生一個可供統(tǒng)執(zhí)行該動作序列來為參與者產(chǎn)生一個可供觀察的結(jié)果。觀察的結(jié)果。n用例的用例的UML符號表示是橢圓,并可在符號符號表示是橢圓,并可在符號下標(biāo)出用例名。下標(biāo)出用例名。n在實(shí)踐中,用例的名字通常是用動詞詞組命在實(shí)踐中,用例的名字通常是用動詞詞組命名從問題域中發(fā)現(xiàn)的一些行為。名從問題域中發(fā)現(xiàn)的一些行為。n用例表示了系統(tǒng)的功能,也就是系統(tǒng)提供給用例表示了系統(tǒng)的功能,也就是系統(tǒng)提供給參與者的功能。系統(tǒng)的用例構(gòu)成了系統(tǒng)的所參與者的功能。系統(tǒng)的用例構(gòu)成了系統(tǒng)的所有使用功能。有使用功能。用例圖的構(gòu)成用例圖的構(gòu)成用例圖的構(gòu)成用例圖的構(gòu)成n構(gòu)造一個好的用

33、例應(yīng)該遵循的原則:構(gòu)造一個好的用例應(yīng)該遵循的原則:l一個用例應(yīng)該描述一個從頭至尾的完整的功能,用例要與參與者交互。n用例的獲取是需求分析時首先要做的工作,大部分用例的獲取是需求分析時首先要做的工作,大部分用例將在需求分析時產(chǎn)生,并且隨著工作深入會發(fā)用例將在需求分析時產(chǎn)生,并且隨著工作深入會發(fā)現(xiàn)更多的用例,這些都應(yīng)及時添加到已有的用例集現(xiàn)更多的用例,這些都應(yīng)及時添加到已有的用例集中。用例集中的每個用例都是一個潛在的需求。中。用例集中的每個用例都是一個潛在的需求。n參與者的識別對識別用例很有用。面對一個大系統(tǒng),參與者的識別對識別用例很有用。面對一個大系統(tǒng),可先列出參與者清單,再對每個參與者列出它的

34、用可先列出參與者清單,再對每個參與者列出它的用例,問題就會容易很多。例,問題就會容易很多。n在識別出了參與者后,可以通過一些問題的答案來在識別出了參與者后,可以通過一些問題的答案來幫助發(fā)現(xiàn)系統(tǒng)的用例。幫助發(fā)現(xiàn)系統(tǒng)的用例。用例圖的構(gòu)成用例圖的構(gòu)成n對于每個用例,都可以用事件流來規(guī)定用例的行為。用對于每個用例,都可以用事件流來規(guī)定用例的行為。用例的事件流是對完成用例規(guī)定行為所需要的事件的描述。例的事件流是對完成用例規(guī)定行為所需要的事件的描述。n在描述用例的事件流時,既可以用非正式的結(jié)構(gòu)化文本,在描述用例的事件流時,既可以用非正式的結(jié)構(gòu)化文本,也可以用正式的結(jié)構(gòu)化文本,還可以用偽代碼。在創(chuàng)建也可以用

35、正式的結(jié)構(gòu)化文本,還可以用偽代碼。在創(chuàng)建事件流文檔時,每個項目都應(yīng)使用一個標(biāo)準(zhǔn)模板,模板事件流文檔時,每個項目都應(yīng)使用一個標(biāo)準(zhǔn)模板,模板內(nèi)容如下所示:內(nèi)容如下所示: X “X “用例名用例名” X.1 X.1 簡單描述簡單描述 X.2 X.2 前置條件前置條件 X.3 X.3 后置條件后置條件 X.4 X.4 事件流事件流 X.4.1 X.4.1 基流基流 X.4.2 X.4.2 分支流(可選)分支流(可選) X.4.3 X.4.3 替代流替代流p 用例間的關(guān)系用例間的關(guān)系n類屬關(guān)系類屬關(guān)系(Generalization)l用例間的類屬關(guān)系如同類間的類屬關(guān)系。也就是說,用例間的類屬關(guān)系如同類間

36、的類屬關(guān)系。也就是說,子用例繼承父用例的行為和含義,子用例可添加新子用例繼承父用例的行為和含義,子用例可添加新行為或覆蓋父用例的行為。行為或覆蓋父用例的行為。n包含關(guān)系包含關(guān)系(Include)l多個用例可能具有一些相同的功能,共享的功能通多個用例可能具有一些相同的功能,共享的功能通常被放在一個單獨(dú)的用例中,可在該用例和其他需常被放在一個單獨(dú)的用例中,可在該用例和其他需要使用其功能的用例之間創(chuàng)建要使用其功能的用例之間創(chuàng)建Include關(guān)系。關(guān)系。l使用使用Include關(guān)系可以避免重復(fù)描述同樣的事件流,關(guān)系可以避免重復(fù)描述同樣的事件流,因為公共的行為被放入一個專門的用例中,這個專因為公共的行為

37、被放入一個專門的用例中,這個專門的用例是被基用例包含的。門的用例是被基用例包含的。用例圖的構(gòu)成用例圖的構(gòu)成n擴(kuò)充關(guān)系擴(kuò)充關(guān)系(Extend)l擴(kuò)充關(guān)系用來說明可選的、只在特定條件下運(yùn)行的擴(kuò)充關(guān)系用來說明可選的、只在特定條件下運(yùn)行的行為,具有擴(kuò)充關(guān)系的用例基于參與者的選擇,可行為,具有擴(kuò)充關(guān)系的用例基于參與者的選擇,可以運(yùn)行幾個不同的流。以運(yùn)行幾個不同的流。l用例間的擴(kuò)充關(guān)系表示基用例在指定的擴(kuò)充點(diǎn)隱式用例間的擴(kuò)充關(guān)系表示基用例在指定的擴(kuò)充點(diǎn)隱式地含有另一個用例的行為?;美梢元?dú)立存在,地含有另一個用例的行為?;美梢元?dú)立存在,但在特定條件下,它的行為會被另一個用例的行為但在特定條件下,它的

38、行為會被另一個用例的行為擴(kuò)充?;美辉诒环Q為擴(kuò)充點(diǎn)的特定點(diǎn)被擴(kuò)充。擴(kuò)充。基用例只在被稱為擴(kuò)充點(diǎn)的特定點(diǎn)被擴(kuò)充??梢哉J(rèn)為,擴(kuò)充用例將行為推進(jìn)基用例??梢哉J(rèn)為,擴(kuò)充用例將行為推進(jìn)基用例。l包含關(guān)系(抽取公共行為)和擴(kuò)充關(guān)系(識別變種)包含關(guān)系(抽取公共行為)和擴(kuò)充關(guān)系(識別變種)對于創(chuàng)建簡單、易于理解的系統(tǒng)用例集是非常重要對于創(chuàng)建簡單、易于理解的系統(tǒng)用例集是非常重要的。的。用例圖的構(gòu)成用例圖的構(gòu)成2.3.3 用例圖的應(yīng)用用例圖的應(yīng)用p為系統(tǒng)的上下文建模為系統(tǒng)的上下文建模n為系統(tǒng)的上下文建模,涉及到圍繞整個系統(tǒng)劃一條線,為系統(tǒng)的上下文建模,涉及到圍繞整個系統(tǒng)劃一條線,并確保位于系統(tǒng)外的參與者與系統(tǒng)

39、相互作用。這個上并確保位于系統(tǒng)外的參與者與系統(tǒng)相互作用。這個上下文定義了系統(tǒng)存在的環(huán)境。在建立用例圖時,首先下文定義了系統(tǒng)存在的環(huán)境。在建立用例圖時,首先要確定圍繞系統(tǒng)的參與者,確定參與者很重要,因為要確定圍繞系統(tǒng)的參與者,確定參與者很重要,因為這樣就確定了與系統(tǒng)交互作用的一類事物。這樣就確定了與系統(tǒng)交互作用的一類事物。p對系統(tǒng)的需求建模對系統(tǒng)的需求建模n需求規(guī)定了用戶期望系統(tǒng)做什么。需求的表達(dá)可以有需求規(guī)定了用戶期望系統(tǒng)做什么。需求的表達(dá)可以有很多方式,例如:事件流描述、活動圖。系統(tǒng)的全部很多方式,例如:事件流描述、活動圖。系統(tǒng)的全部或大部分功能需求可以表達(dá)為用例。或大部分功能需求可以表達(dá)為

40、用例。UML的用例圖的用例圖對于管理這些需求是很重要的。為系統(tǒng)的需求建模涉對于管理這些需求是很重要的。為系統(tǒng)的需求建模涉及到規(guī)定系統(tǒng)應(yīng)該做什么,不需要知道系統(tǒng)應(yīng)該怎樣及到規(guī)定系統(tǒng)應(yīng)該做什么,不需要知道系統(tǒng)應(yīng)該怎樣實(shí)現(xiàn)這些行為,即用例圖用來規(guī)定系統(tǒng)的行為。實(shí)現(xiàn)這些行為,即用例圖用來規(guī)定系統(tǒng)的行為。2.4 類圖和對象圖類圖和對象圖 n 類的相關(guān)概念類的相關(guān)概念 n 類圖類圖 n 對象圖對象圖 2.4.1 類的相關(guān)概念類的相關(guān)概念 p 類是一組具有相同屬性、操作、關(guān)系和語義的對象類是一組具有相同屬性、操作、關(guān)系和語義的對象的描述,是現(xiàn)實(shí)世界中的事物的抽象,當(dāng)這些事物的描述,是現(xiàn)實(shí)世界中的事物的抽象,

41、當(dāng)這些事物存在于真實(shí)世界中時,它們是類的實(shí)例,被稱為對存在于真實(shí)世界中時,它們是類的實(shí)例,被稱為對象。象。p 類的類的UML符號表示是劃分為符號表示是劃分為3個格子的長方形,頂個格子的長方形,頂部的格子放類名,中間格子放類的屬性、屬性的類部的格子放類名,中間格子放類的屬性、屬性的類型和值,下面的格子放操作、操作的參數(shù)表和返回型和值,下面的格子放操作、操作的參數(shù)表和返回類型。類型。p 有實(shí)例的建模元素稱為類元,它具有結(jié)構(gòu)特征有實(shí)例的建模元素稱為類元,它具有結(jié)構(gòu)特征(屬屬性性)和行為特征和行為特征(操作操作)。包括類、接口、數(shù)據(jù)類型、。包括類、接口、數(shù)據(jù)類型、信號、構(gòu)件、節(jié)點(diǎn)、用例和子系統(tǒng)。信號、

42、構(gòu)件、節(jié)點(diǎn)、用例和子系統(tǒng)。p類的名稱類的名稱n每個類都有一個名字,與其他類相區(qū)別。每個類都有一個名字,與其他類相區(qū)別。n在實(shí)踐中,類名通常用問題域中的短名詞或名詞詞組來表示。在實(shí)踐中,類名通常用問題域中的短名詞或名詞詞組來表示。通常將類名中的每個組成詞的第一個字母大寫,如通常將類名中的每個組成詞的第一個字母大寫,如Student、HelloWorld等。等。n類的命名應(yīng)盡量用問題域中的術(shù)語,應(yīng)明確、無歧義,以利類的命名應(yīng)盡量用問題域中的術(shù)語,應(yīng)明確、無歧義,以利于開發(fā)人員與用戶之間的相互理解與交流。于開發(fā)人員與用戶之間的相互理解與交流。p類的屬性類的屬性n屬性描述了類的所有對象所共有的特性。屬

43、性描述了類的所有對象所共有的特性。一個類可以有一個一個類可以有一個或多個屬性或者根本沒有屬性。屬性是類的對象所包含的數(shù)或多個屬性或者根本沒有屬性。屬性是類的對象所包含的數(shù)據(jù)或狀態(tài)的抽象。在特定的時刻,類的對象對類的每個屬性據(jù)或狀態(tài)的抽象。在特定的時刻,類的對象對類的每個屬性都有特定的值。都有特定的值。n不同的屬性具有不同的可見性,可見性用來描述特征能否為不同的屬性具有不同的可見性,可見性用來描述特征能否為其他類元使用。常見的可見性有公用的其他類元使用。常見的可見性有公用的(public)、私有的、私有的(private)、受保護(hù)的、受保護(hù)的(protected)類的相關(guān)概念類的相關(guān)概念 p類的

44、操作類的操作n操作是類的所有對象所共有的行為的抽象。操操作是類的所有對象所共有的行為的抽象。操作用于修改、檢索類的屬性或執(zhí)行某些動作。作用于修改、檢索類的屬性或執(zhí)行某些動作。一個類可以有任何數(shù)量的操作或根本沒有操作。一個類可以有任何數(shù)量的操作或根本沒有操作。n操作通常也被稱為功能或方法,但是它們被約操作通常也被稱為功能或方法,但是它們被約束在類的內(nèi)部,只能作用到該類的對象上。操束在類的內(nèi)部,只能作用到該類的對象上。操作名、返回類型和參數(shù)表組成操作的接口。作名、返回類型和參數(shù)表組成操作的接口。p類的類型類的類型n邊界類邊界類n實(shí)體類實(shí)體類n控制類控制類類的相關(guān)概念類的相關(guān)概念 2.4.2 類圖類

45、圖 p 概述概述n類圖是面向?qū)ο蠼W畛R姷膱D,它是顯示一組類、接口、類圖是面向?qū)ο蠼W畛R姷膱D,它是顯示一組類、接口、協(xié)作以及它們之間關(guān)系的圖。協(xié)作以及它們之間關(guān)系的圖。n類圖由類、接口、協(xié)作、依賴關(guān)系、類屬關(guān)系、實(shí)現(xiàn)關(guān)系以類圖由類、接口、協(xié)作、依賴關(guān)系、類屬關(guān)系、實(shí)現(xiàn)關(guān)系以及關(guān)聯(lián)關(guān)系這幾部分組成,像其他的圖一樣,類圖也可以含及關(guān)聯(lián)關(guān)系這幾部分組成,像其他的圖一樣,類圖也可以含有注釋和約束。有注釋和約束。p 劃分劃分n雖然在軟件開發(fā)的不同階段都使用類圖,但這些類圖描述了雖然在軟件開發(fā)的不同階段都使用類圖,但這些類圖描述了不同層次的抽象。在需求分析階段,類圖是所研究的問題域不同層次的抽象。在

46、需求分析階段,類圖是所研究的問題域中的概念(概念層);在設(shè)計階段,類圖描述類與類之間的中的概念(概念層);在設(shè)計階段,類圖描述類與類之間的接口(說明層);在實(shí)現(xiàn)階段,類圖描述軟件系統(tǒng)中類的實(shí)接口(說明層);在實(shí)現(xiàn)階段,類圖描述軟件系統(tǒng)中類的實(shí)現(xiàn)(實(shí)現(xiàn)層)?,F(xiàn)(實(shí)現(xiàn)層)。n要正確的理解類圖,首先應(yīng)正確的理解要正確的理解類圖,首先應(yīng)正確的理解3種層次:概念層、種層次:概念層、說明層、實(shí)現(xiàn)層。說明層、實(shí)現(xiàn)層。類圖的抽象層次n概念層概念層領(lǐng)域模型領(lǐng)域模型n說明層說明層分析模型分析模型n實(shí)現(xiàn)層實(shí)現(xiàn)層設(shè)計模型設(shè)計模型n各層之間沒有一個清晰的界限,過渡是漸進(jìn)的!各層之間沒有一個清晰的界限,過渡是漸進(jìn)的!n繪

47、制類圖不要過早陷入實(shí)現(xiàn)細(xì)節(jié)繪制類圖不要過早陷入實(shí)現(xiàn)細(xì)節(jié)! 分析階段畫概念層類圖,分析階段畫概念層類圖,著手軟件設(shè)計時畫說明層類圖,考察特定實(shí)現(xiàn)技術(shù)時,畫實(shí)著手軟件設(shè)計時畫說明層類圖,考察特定實(shí)現(xiàn)技術(shù)時,畫實(shí)現(xiàn)層類圖?,F(xiàn)層類圖。n領(lǐng)域模型偏重對業(yè)務(wù)領(lǐng)域的分析,分析模型主要針對軟件系領(lǐng)域模型偏重對業(yè)務(wù)領(lǐng)域的分析,分析模型主要針對軟件系統(tǒng)的分析,設(shè)計模型是在分析模型基礎(chǔ)上添加設(shè)計元素。統(tǒng)的分析,設(shè)計模型是在分析模型基礎(chǔ)上添加設(shè)計元素。相關(guān)元素1、類的主要職責(zé)2、類間關(guān)系3、重要的多重性關(guān)系4、部分業(yè)務(wù)規(guī)則性約束相關(guān)元素1、邊界、控制、實(shí)體類2、從系統(tǒng)實(shí)現(xiàn)角度整理3、進(jìn)一步細(xì)化類的職責(zé)4、進(jìn)一步細(xì)化類

48、的關(guān)系5、進(jìn)一步細(xì)化業(yè)務(wù)規(guī)則相關(guān)元素1、用構(gòu)造型細(xì)化類間關(guān)系2、模板、關(guān)聯(lián)、嵌套類3、引用對象、值對象4、抽象類與接口、OCL5、設(shè)計類(框架與設(shè)計模式)類圖建模CRC是類(是類(Class)、職責(zé)()、職責(zé)(Responsibility)和協(xié)作()和協(xié)作(Collaboration)名詞或動詞可用順序圖類圖建模p步驟步驟n(1)研究分析問題領(lǐng)域,確定系統(tǒng)需求。)研究分析問題領(lǐng)域,確定系統(tǒng)需求。n(2)確定類,明確類的含義和職責(zé)、確定屬性和操作。)確定類,明確類的含義和職責(zé)、確定屬性和操作。n(3)確定類之間的關(guān)系,把類之間的關(guān)系用關(guān)聯(lián)、泛化、)確定類之間的關(guān)系,把類之間的關(guān)系用關(guān)聯(lián)、泛化、聚

49、合、組合、依賴等關(guān)系表達(dá)出來。聚合、組合、依賴等關(guān)系表達(dá)出來。n(4)調(diào)整和細(xì)化已得到的類和類之間的關(guān)系,確定諸如)調(diào)整和細(xì)化已得到的類和類之間的關(guān)系,確定諸如命名沖突、功能重復(fù)等問題。命名沖突、功能重復(fù)等問題。n(5)繪制為圖并增加相應(yīng)的說明。)繪制為圖并增加相應(yīng)的說明。類圖類圖 p 如何篩選得到分析類并畫出分析類圖如何篩選得到分析類并畫出分析類圖n在系統(tǒng)分析階段的前半部分內(nèi)容中,使用用例圖、在系統(tǒng)分析階段的前半部分內(nèi)容中,使用用例圖、活動圖和用例的一種結(jié)構(gòu)化文檔描述方法對系統(tǒng)活動圖和用例的一種結(jié)構(gòu)化文檔描述方法對系統(tǒng)的需求進(jìn)行分析。下一步的工作是找出實(shí)體類、的需求進(jìn)行分析。下一步的工作是找

50、出實(shí)體類、控制類和邊界類,然后再使用協(xié)作圖分析它們之控制類和邊界類,然后再使用協(xié)作圖分析它們之間的交互情況,從而不僅又一次明確了功能需求,間的交互情況,從而不僅又一次明確了功能需求,也為在設(shè)計階段設(shè)計出真正的可編程的類打下了也為在設(shè)計階段設(shè)計出真正的可編程的類打下了基礎(chǔ),因此這是一個承前啟后的過程?;A(chǔ),因此這是一個承前啟后的過程。類圖的應(yīng)用類圖的應(yīng)用 p 設(shè)計階段類圖的作用設(shè)計階段類圖的作用n對簡單的協(xié)作建模對簡單的協(xié)作建模n對數(shù)據(jù)庫概念設(shè)計建模對數(shù)據(jù)庫概念設(shè)計建模p 類圖的應(yīng)用類圖的應(yīng)用 類圖用于對系統(tǒng)的靜態(tài)視圖建模,靜態(tài)視圖類圖用于對系統(tǒng)的靜態(tài)視圖建模,靜態(tài)視圖主要支持系統(tǒng)的功能需求,即

51、系統(tǒng)要提供給用主要支持系統(tǒng)的功能需求,即系統(tǒng)要提供給用戶的服務(wù)。戶的服務(wù)。n對系統(tǒng)的詞匯建模對系統(tǒng)的詞匯建模n對簡單的協(xié)作建模對簡單的協(xié)作建模n對邏輯數(shù)據(jù)庫模式建模對邏輯數(shù)據(jù)庫模式建模2.4.3 對象圖對象圖 p 概述概述n表示在某一時間點(diǎn)上一組對象以及它們之間的關(guān)系的圖,表示在某一時間點(diǎn)上一組對象以及它們之間的關(guān)系的圖,模擬類圖中所含有的類的實(shí)例。它為處在時域空間某一模擬類圖中所含有的類的實(shí)例。它為處在時域空間某一點(diǎn)的系統(tǒng)建模,描繪了系統(tǒng)的對象、對象的狀態(tài)及對象點(diǎn)的系統(tǒng)建模,描繪了系統(tǒng)的對象、對象的狀態(tài)及對象間的關(guān)系。對象圖主要用來為對象結(jié)構(gòu)建模。間的關(guān)系。對象圖主要用來為對象結(jié)構(gòu)建模。n對

52、象圖可以看作是類圖的一個實(shí)例。對象是類的實(shí)例,對象圖可以看作是類圖的一個實(shí)例。對象是類的實(shí)例,對象之間的連接是類之間的關(guān)聯(lián)關(guān)系的實(shí)例。對象圖常對象之間的連接是類之間的關(guān)聯(lián)關(guān)系的實(shí)例。對象圖常用于描述復(fù)雜類圖的一個實(shí)例。用于描述復(fù)雜類圖的一個實(shí)例。n對象圖中通常含有:對象對象圖中通常含有:對象(Objects)、連接、連接(Links),對象圖可以含有注解和約束;對象圖也可以含有包或子對象圖可以含有注解和約束;對象圖也可以含有包或子系統(tǒng),包或子系統(tǒng)用來將模型的元素封裝成比較大的模系統(tǒng),包或子系統(tǒng)用來將模型的元素封裝成比較大的模塊。塊。對象圖對象圖 p 應(yīng)用應(yīng)用n對象圖通常用于為對象結(jié)構(gòu)建模。對象

53、圖可以用對象圖通常用于為對象結(jié)構(gòu)建模。對象圖可以用來可視化、規(guī)范、構(gòu)造、并文檔化系統(tǒng)中特定實(shí)來可視化、規(guī)范、構(gòu)造、并文檔化系統(tǒng)中特定實(shí)例的存在以及實(shí)例間的關(guān)系。例的存在以及實(shí)例間的關(guān)系。n為對象結(jié)構(gòu)建模時,需要考慮以下幾點(diǎn):為對象結(jié)構(gòu)建模時,需要考慮以下幾點(diǎn):l確定想要模擬的機(jī)制。機(jī)制代表了所模擬的部分系確定想要模擬的機(jī)制。機(jī)制代表了所模擬的部分系統(tǒng)的由類、接口等交互作用產(chǎn)生的功能或行為。統(tǒng)的由類、接口等交互作用產(chǎn)生的功能或行為。l對于每個機(jī)制,識別參加這個協(xié)作的類、接口以及對于每個機(jī)制,識別參加這個協(xié)作的類、接口以及其他元素,并確定這些元素間的關(guān)系。其他元素,并確定這些元素間的關(guān)系。l考慮貫

54、穿這個機(jī)制的一個腳本,顯示在腳本的某一考慮貫穿這個機(jī)制的一個腳本,顯示在腳本的某一時間點(diǎn)參與這個機(jī)制的對象。時間點(diǎn)參與這個機(jī)制的對象。l如果必要,揭示每個對象的狀態(tài)和屬性值。如果必要,揭示每個對象的狀態(tài)和屬性值。l類似地,揭示對象間的連接,這些連接是關(guān)聯(lián)關(guān)系類似地,揭示對象間的連接,這些連接是關(guān)聯(lián)關(guān)系的實(shí)例。的實(shí)例。類圖與對象圖2.5 交互圖交互圖p 顯示一個交互,由一組對象和它們之間的關(guān)系顯示一個交互,由一組對象和它們之間的關(guān)系構(gòu)成,其中包括在對象間傳遞的消息。順序圖和構(gòu)成,其中包括在對象間傳遞的消息。順序圖和協(xié)作圖都被稱為交互圖。協(xié)作圖都被稱為交互圖。p 順序圖強(qiáng)調(diào)消息的時間順序,適合于描

55、述實(shí)時順序圖強(qiáng)調(diào)消息的時間順序,適合于描述實(shí)時系統(tǒng);協(xié)作圖強(qiáng)調(diào)發(fā)送和接收消息的對象的組織系統(tǒng);協(xié)作圖強(qiáng)調(diào)發(fā)送和接收消息的對象的組織結(jié)構(gòu),描述了對象間的關(guān)系。結(jié)構(gòu),描述了對象間的關(guān)系。p 交互圖的組成元素:交互圖的組成元素:n對象;對象;n連接;連接;n消息;消息;n注解和約束。注解和約束。2.5.1 交互交互 p 交互是由實(shí)現(xiàn)某一目標(biāo)的一組對象之間進(jìn)行交換的交互是由實(shí)現(xiàn)某一目標(biāo)的一組對象之間進(jìn)行交換的一組消息所構(gòu)成的行為。它包括連接和消息,連接一組消息所構(gòu)成的行為。它包括連接和消息,連接是關(guān)聯(lián)的一個實(shí)例,它指明了一個對象向另一個對是關(guān)聯(lián)的一個實(shí)例,它指明了一個對象向另一個對象發(fā)送消息的路徑;消

56、息是傳送信息的對象之間進(jìn)象發(fā)送消息的路徑;消息是傳送信息的對象之間進(jìn)行的通訊的詳述。行的通訊的詳述。p 消息的傳送將引起如下動作:消息的傳送將引起如下動作:n調(diào)用調(diào)用(Call)n返回返回(Return)n發(fā)送發(fā)送(Send)n創(chuàng)建創(chuàng)建(Create)n撤消撤消(Destroy)2.5.2 順序圖概述順序圖概述p 順序圖存在兩個軸:水平軸表示不同的順序圖存在兩個軸:水平軸表示不同的對象對象,垂直軸表示垂直軸表示時間時間。p 順序圖中的對象用一個帶有垂直虛線的矩形順序圖中的對象用一個帶有垂直虛線的矩形框表示,并標(biāo)有對象名和類名,對于對象,框表示,并標(biāo)有對象名和類名,對于對象,可以只標(biāo)對象名,也可

57、以只標(biāo)類名,還可以可以只標(biāo)對象名,也可以只標(biāo)類名,還可以都標(biāo)出。都標(biāo)出。p 垂直虛線是對象的垂直虛線是對象的生命線生命線,用于表示在某段,用于表示在某段時間內(nèi)對象是存在的。對象間的通信通過在時間內(nèi)對象是存在的。對象間的通信通過在對象的生命線間畫消息來表示。對象的生命線間畫消息來表示。 : Actorobject1:ClassNameobject2:ClassName1eventoperation1operation2(parameter list)operation3(parameter list)順序圖概述順序圖概述p 順序圖中的消息可以是信號、操作調(diào)用等。順序圖中的消息可以是信號、操作調(diào)用

58、等。當(dāng)收到消息時,接收對象立即開始執(zhí)行活動,當(dāng)收到消息時,接收對象立即開始執(zhí)行活動,即對象被激活了,通過對象生命線上的一個即對象被激活了,通過對象生命線上的一個細(xì)長矩形框(細(xì)長矩形框(控制焦點(diǎn)控制焦點(diǎn))來表示激活。消息)來表示激活。消息以帶有標(biāo)簽的箭頭表示。以帶有標(biāo)簽的箭頭表示。p 消息還可帶有條件表達(dá)式,表示分支或決定消息還可帶有條件表達(dá)式,表示分支或決定是否發(fā)送消息。如果用于表示分支,則每個是否發(fā)送消息。如果用于表示分支,則每個分支是相互排斥的,即在某一時刻僅可發(fā)送分支是相互排斥的,即在某一時刻僅可發(fā)送分支中的一個消息。分支中的一個消息。 : Actorobject1:ClassNameo

59、bject2:ClassName1eventoperation1operation2(parameter list)operation3(parameter list) : Actorobject1:ClassNameobject2:ClassName1eventoperation1operation2(parameter list)operation3(parameter list) 順序圖強(qiáng)調(diào)了消息的時間順序。在畫順序圖時,首先將順序圖強(qiáng)調(diào)了消息的時間順序。在畫順序圖時,首先將參與交互作用的對象沿著參與交互作用的對象沿著X X軸放在圖的頂端,將軸放在圖的頂端,將啟動交互作啟動交互作用的對象

60、用的對象放在左邊,將放在左邊,將從屬的對象從屬的對象放在右邊,將這些對象發(fā)放在右邊,將這些對象發(fā)送和接收的送和接收的消息按照時間增加的順序消息按照時間增加的順序沿著沿著Y Y軸由上而下地放軸由上而下地放置。置。 當(dāng)消息的源和目標(biāo)為當(dāng)消息的源和目標(biāo)為對象或類時,對象或類時,標(biāo)簽標(biāo)簽是響是響應(yīng)消息時所調(diào)用的方法應(yīng)消息時所調(diào)用的方法的簽名。不過,如果源的簽名。不過,如果源或目標(biāo)中有一方是參與或目標(biāo)中有一方是參與者,那么消息就以描述者,那么消息就以描述交流信息的簡要文本為交流信息的簡要文本為標(biāo)簽。標(biāo)簽。 : Clerk:LoginDialog:BankGUIstart systemnewLDialog

溫馨提示

  • 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

提交評論