




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第5章統(tǒng)一建模語(yǔ)言——UML教學(xué)內(nèi)容UML概述UML構(gòu)造需求模型UML構(gòu)造設(shè)計(jì)模型UML補(bǔ)充知識(shí)UML總結(jié)第一部分UML概述Sunnyweiliu_china@163.com大綱UML是什么UML能做什么為什么要學(xué)習(xí)UMLUML是什么UML的誕生在一個(gè)現(xiàn)代化的工程中,人們要相互溝通和合作,就必須使用標(biāo)準(zhǔn)的工業(yè)化設(shè)計(jì)語(yǔ)言,用這些語(yǔ)言來(lái)對(duì)待開發(fā)的產(chǎn)品進(jìn)行建模建模過程把復(fù)雜的問題分解成為易于理解的小問題,以達(dá)到問題的求解的目的建模是開發(fā)優(yōu)秀軟件的所有活動(dòng)中核心部分之一,實(shí)現(xiàn)對(duì)系統(tǒng)的結(jié)構(gòu)的可視化控制UML是什么UML的誕生從1994年起,GradyBooch和JamesRumbaugh在Rational軟件公司開始了UML的創(chuàng)建工作。1995年,OOSE方法和Objectory方法的創(chuàng)建者IvarJacobson也加入其中。UML三位創(chuàng)始人正式聯(lián)手,共同為創(chuàng)建一種標(biāo)準(zhǔn)的建模語(yǔ)言而一起工作,他們將開發(fā)出來(lái)的產(chǎn)品名稱定為UML(UnifiedModelingLanguage,統(tǒng)一建模語(yǔ)言)。UML是什么UML的誕生1997年11月,在IvarJacoboson、GradyBooch以及JamesRumbaugh的共同努力下,UML1.1版本提交給OMG(ObjectManagementGroup,對(duì)象管理組織)并獲得通過,UML1.1成為業(yè)界標(biāo)準(zhǔn)的建模語(yǔ)言。2003年6月,OMG技術(shù)會(huì)議上UML2.0獲得正式通過,UML的發(fā)展與應(yīng)用也上升到一個(gè)新的高度,越來(lái)越多的人開始學(xué)習(xí)和使用UML來(lái)進(jìn)行軟件建模。UML是什么UMLUnifiedModelingLanguage統(tǒng)一建模語(yǔ)言統(tǒng)一建模語(yǔ)言統(tǒng)一建模語(yǔ)言UML是什么IvarJacobosonGradyBoochJamesRumbaughObjectModelingTechnique(OMT)Booch開發(fā)方法Object-OrientedSoftwareEngineering(OOSE)UML其他方法UML是什么你應(yīng)該使用UML嗎?是!舊的面向?qū)ο蠓?hào)正在快速消失,新的書、文章將全部采用UML作為符號(hào)。如果你正要開始使用建模符號(hào),你就該直接學(xué)習(xí)UML。--MartinFowlerUML是什么UML是一種語(yǔ)言,它有屬于自己的標(biāo)準(zhǔn)表達(dá)規(guī)則。它不是一種類似Java、C++的編程語(yǔ)言,而是一種分析設(shè)計(jì)語(yǔ)言,也就是一種建模語(yǔ)言。UML是由圖形符號(hào)表達(dá)的建模語(yǔ)言。UML是一種用于描繪軟件藍(lán)圖的標(biāo)準(zhǔn)語(yǔ)言。UML能做什么文字能描述的需求UML能描述的需求其他符號(hào)能描述的需求UML能做什么UML的結(jié)構(gòu)視圖(View)UML能做什么UML的結(jié)構(gòu)圖(Diagram)用例圖類圖對(duì)象圖包圖(UML2.0)組合結(jié)構(gòu)圖(UML2.0)順序圖通信圖定時(shí)圖(UML2.0)狀態(tài)圖活動(dòng)圖交互概覽圖(UML2.0)組件圖部署圖最重要UML能做什么UML的結(jié)構(gòu)圖(Diagram)UML能做什么UML的結(jié)構(gòu)模型元素(Modelelement)模型元素包括事物以及事物與事物之間的聯(lián)系每一個(gè)模型元素都有一個(gè)與之相對(duì)應(yīng)的圖形元素同一個(gè)模型元素可以在不同的UML圖中使用無(wú)論在哪個(gè)圖中,同一個(gè)模型元素都保持相同的意義和符號(hào)UML能做什么UML的結(jié)構(gòu)通用機(jī)制(Generalmechanism)額外的注釋、修飾和語(yǔ)義等包括規(guī)格說(shuō)明、修飾、公共分類和擴(kuò)展機(jī)制四種允許用戶對(duì)UML進(jìn)行擴(kuò)展為什么要學(xué)習(xí)UML適用人群客戶需求分析師及系統(tǒng)分析師系統(tǒng)設(shè)計(jì)師及架構(gòu)設(shè)計(jì)師開發(fā)工程師測(cè)試工程師維護(hù)工程師……為什么要學(xué)習(xí)UMLUML的特點(diǎn)
工程化
規(guī)范化
可視化
系統(tǒng)化
文檔化
智能化第二部分UML構(gòu)造需求模型Sunnyweiliu_china@163.com大綱用例建模技術(shù)繪制用例圖編寫用例文檔檢查用例模型狀態(tài)圖活動(dòng)圖順序圖用例建模技術(shù)用例建模(UseCaseModeling)是使用用例的方法來(lái)描述系統(tǒng)的功能需求的過程,用例建模促進(jìn)并鼓勵(lì)了用戶參與,這是確保項(xiàng)目成功的關(guān)鍵因素之一。用例建模主要包括以下兩部分內(nèi)容:用例圖(UseCaseDiagram)用例描述文檔(UseCaseSpecification)用例建模技術(shù)用例文檔(規(guī)約)執(zhí)行者用例圖用例模型補(bǔ)充規(guī)約術(shù)語(yǔ)表全局性功能、非功能需求用例建模技術(shù)用例建模步驟識(shí)別執(zhí)行者識(shí)別用例繪制用例圖編寫用例文檔檢查用例模型繪制用例圖識(shí)別執(zhí)行者執(zhí)行者——Actor定義:在系統(tǒng)之外,透過系統(tǒng)邊界與系統(tǒng)進(jìn)行有意義交互的任何事物。引入執(zhí)行者的目的:幫助確定系統(tǒng)邊界。繪制用例圖識(shí)別執(zhí)行者人其他系統(tǒng)自動(dòng)發(fā)生的事件思路誰(shuí)使用系統(tǒng)?誰(shuí)改變系統(tǒng)的數(shù)據(jù)?誰(shuí)從系統(tǒng)獲取信息?誰(shuí)需要系統(tǒng)的支持以完成日常工作任務(wù)?誰(shuí)負(fù)責(zé)維護(hù)、管理并保持系統(tǒng)正常運(yùn)行?系統(tǒng)需要和哪些外部系統(tǒng)交互?有沒有自動(dòng)發(fā)生的事件?繪制用例圖識(shí)別執(zhí)行者都對(duì),不丟用例就行(慢慢清理)哪個(gè)是正確的執(zhí)行者??繪制用例圖識(shí)別執(zhí)行者繪制用例圖識(shí)別執(zhí)行者繪制用例圖識(shí)別用例繪制用例圖識(shí)別用例用例用例是在系統(tǒng)中執(zhí)行的一系列動(dòng)作,這些動(dòng)作將生成特定執(zhí)行者可見的價(jià)值結(jié)果。一個(gè)用例定義一組用例實(shí)例。繪制用例圖識(shí)別用例用例要點(diǎn):有意義的目標(biāo)價(jià)值結(jié)果由系統(tǒng)生成業(yè)務(wù)語(yǔ)言,用戶觀點(diǎn)注意用例的命名用例的“粒度”繪制用例圖識(shí)別用例錯(cuò)!對(duì)!有沒有意義?涉眾說(shuō)了算!有意義的目標(biāo)繪制用例圖識(shí)別用例價(jià)值結(jié)果由系統(tǒng)生成?繪制用例圖識(shí)別用例業(yè)務(wù)語(yǔ)言而非技術(shù)語(yǔ)言繪制用例圖識(shí)別用例用戶觀點(diǎn)而非系統(tǒng)觀點(diǎn)用戶觀點(diǎn)系統(tǒng)觀點(diǎn)對(duì)!錯(cuò)!繪制用例圖識(shí)別用例用例命名
動(dòng)詞(+賓語(yǔ))狀語(yǔ)定語(yǔ)繪制用例圖識(shí)別用例用例命名:慎用弱動(dòng)詞弱名詞弱動(dòng)詞:進(jìn)行、使用、復(fù)制、加載、重復(fù)弱名詞:數(shù)據(jù)、報(bào)表、表格、表單、系統(tǒng)會(huì)掩蓋真正的業(yè)務(wù)!繪制用例圖識(shí)別用例用例的“粒度”粒度原則:用例要有路徑,路徑要有步驟。而這一切都是“可觀測(cè)”的。繪制用例圖識(shí)別用例用例的“粒度”最常犯錯(cuò)誤--把步驟當(dāng)作用例把執(zhí)行者動(dòng)作當(dāng)作用例把系統(tǒng)活動(dòng)當(dāng)作用例繪制用例圖用例的“粒度”四輪馬車警惕CRUD泛濫!識(shí)別用例繪制用例圖用例的“粒度”四輪馬車識(shí)別用例繪制用例圖用例的“粒度”四輪馬車也可以把包含復(fù)雜交互的路徑獨(dú)立出去形成用例識(shí)別用例繪制用例圖形式檢查【執(zhí)行者】使用系統(tǒng)來(lái)【用例】識(shí)別用例繪制用例圖執(zhí)行者與用例之間的關(guān)聯(lián)關(guān)系在用例圖中,執(zhí)行者和用例之間進(jìn)行交互,相互之間的關(guān)系用一根直線來(lái)表示,稱為關(guān)聯(lián)關(guān)系(Association)或通信關(guān)系(Communication)。繪制用例圖執(zhí)行者之間的泛化關(guān)系執(zhí)行者之間可以有泛化(Generalization)關(guān)系(或稱為“繼承”關(guān)系)。
繪制用例圖執(zhí)行者之間的泛化關(guān)系繪制用例圖用例之間的關(guān)系包含關(guān)系描述在多個(gè)用例中都有的公共行為,由用例A指向用例B,表示用例A中使用了用例B中的行為或功能,包含關(guān)系是通過在依賴關(guān)系上應(yīng)用<<include>>構(gòu)造型(衍型)來(lái)表示的。繪制用例圖用例之間的關(guān)系包含關(guān)系繪制用例圖用例之間的關(guān)系擴(kuò)展關(guān)系擴(kuò)展用例可以在基用例之上添加新的行為,但是基用例必須聲明某些特定的“擴(kuò)展點(diǎn)”,并且擴(kuò)展用例只能在這些擴(kuò)展點(diǎn)上擴(kuò)展新的行為。在擴(kuò)展(extend)關(guān)系中,基礎(chǔ)用例(Base)中定義有一至多個(gè)已命名的擴(kuò)展點(diǎn),擴(kuò)展關(guān)系是指將擴(kuò)展用例(Extension)的事件流在一定的條件下按照相應(yīng)的擴(kuò)展點(diǎn)插入到基礎(chǔ)用例(Base)中。擴(kuò)展關(guān)系是通過在依賴關(guān)系上應(yīng)用<<extend>>構(gòu)造型(衍型)來(lái)表示的。繪制用例圖用例之間的關(guān)系擴(kuò)展關(guān)系繪制用例圖用例之間的關(guān)系泛化關(guān)系當(dāng)多個(gè)用例共同擁有一種類似的結(jié)構(gòu)和行為的時(shí)候,可以將它們的共性抽象成為父用例,其他的用例作為泛化關(guān)系中的子用例。在用例的泛化關(guān)系中,子用例是父用例的一種特殊形式,子用例繼承了父用例所有的結(jié)構(gòu)、行為和關(guān)系。泛化關(guān)系一般很少使用。繪制用例圖用例之間的關(guān)系泛化關(guān)系繪制用例圖實(shí)例:討論某酒店訂房系統(tǒng)描述如下:(1)顧客可以選擇在線預(yù)訂,也可以直接去酒店通過前臺(tái)服務(wù)員預(yù)訂;(2)前臺(tái)服務(wù)員可以利用系統(tǒng)直接在前臺(tái)預(yù)訂房間;(3)不管采用哪種預(yù)訂方式,都需要在預(yù)訂時(shí)支付相應(yīng)訂金;(4)前臺(tái)預(yù)訂可以通過現(xiàn)金或信用卡的形式進(jìn)行訂金支付,但是網(wǎng)上預(yù)訂只能通過信用卡進(jìn)行支付;(5)利用信用卡進(jìn)行支付時(shí)需要和信用卡系統(tǒng)進(jìn)行通信;(6)客房部經(jīng)理可以隨時(shí)查看客房預(yù)訂情況和每日收款情況。構(gòu)造該系統(tǒng)的用例模型。繪制用例圖解決方案——識(shí)別執(zhí)行者(1)顧客可以選擇在線預(yù)訂,也可以直接去酒店通過前臺(tái)服務(wù)員預(yù)訂;(2)前臺(tái)服務(wù)員可以利用系統(tǒng)直接在前臺(tái)預(yù)訂房間;(3)不管采用哪種預(yù)訂方式,都需要在預(yù)訂時(shí)支付相應(yīng)訂金;(4)前臺(tái)預(yù)訂可以通過現(xiàn)金或信用卡的形式進(jìn)行訂金支付,但是網(wǎng)上預(yù)訂只能通過信用卡進(jìn)行支付;(5)利用信用卡進(jìn)行支付時(shí)需要和信用卡系統(tǒng)進(jìn)行通信;(6)客房部經(jīng)理可以隨時(shí)查看客房預(yù)訂情況和每日收款情況。繪制用例圖解決方案——識(shí)別用例(1)顧客可以選擇在線預(yù)訂,也可以直接去酒店通過前臺(tái)服務(wù)員預(yù)訂;(2)前臺(tái)服務(wù)員可以利用系統(tǒng)直接在前臺(tái)預(yù)訂房間;(3)不管采用哪種預(yù)訂方式,都需要在預(yù)訂時(shí)支付相應(yīng)訂金;(4)前臺(tái)預(yù)訂可以通過現(xiàn)金或信用卡的形式進(jìn)行訂金支付,但是網(wǎng)上預(yù)訂只能通過信用卡進(jìn)行支付;(5)利用信用卡進(jìn)行支付時(shí)需要和信用卡系統(tǒng)進(jìn)行通信;(6)客房部經(jīng)理可以隨時(shí)查看客房預(yù)訂情況和每日收款情況。繪制用例圖解決方案——繪制用例圖編寫用例文檔用例是文本文檔,而非圖形用例建模主要是編寫文本的活動(dòng),而非制圖編寫用例文檔用例的內(nèi)容用例編號(hào)用例名執(zhí)行者前置條件后置條件涉眾利益基本路徑1…..××××2……××××3…..××××擴(kuò)展路徑2a.××××:2a1….×××××字段列表業(yè)務(wù)規(guī)則非功能需求設(shè)計(jì)約束編寫用例文檔編寫用例文檔前置、后置條件開始用例前所必需的系統(tǒng)及其環(huán)境的狀態(tài)注意:系統(tǒng)必須能檢測(cè)到用例成功結(jié)束后系統(tǒng)應(yīng)該具備的狀態(tài)編寫用例文檔前置、后置條件必須是系統(tǒng)能檢測(cè)到的前置條件:顧客提著商品來(lái)結(jié)賬前置條件:收銀員已通過身份識(shí)別錯(cuò)!對(duì)!編寫用例文檔前置、后置條件前置條件必須是系統(tǒng)在用例開始前能檢測(cè)到的前置條件:用戶賬戶中有足夠的余額錯(cuò)!編寫用例文檔涉眾利益編寫用例文檔基本路徑把基本路徑單獨(dú)分離,凸現(xiàn)用例的核心價(jià)值。核心的核心:客戶最想看到、最關(guān)心的路徑編寫用例文檔基本路徑只編寫“可觀測(cè)”的(說(shuō)人話)使用主動(dòng)語(yǔ)句句子必須以執(zhí)行者或系統(tǒng)作為主語(yǔ)每一句都要朝目標(biāo)邁進(jìn)分支和循環(huán)不要涉及界面細(xì)節(jié)編寫用例文檔基本路徑系統(tǒng)通過ADO建立數(shù)據(jù)庫(kù)連接,傳送SQL查詢語(yǔ)句,從“零件”表查詢…系統(tǒng)按照查詢條件搜索零件只編寫“可觀測(cè)”的錯(cuò)對(duì)編寫用例文檔基本路徑歐文從貝克漢姆處得到傳球,守門員…貝克漢姆傳球給歐文,歐文射門,守門員撲救….主動(dòng)語(yǔ)句--球在誰(shuí)那里?錯(cuò)對(duì)編寫用例文檔基本路徑系統(tǒng)從會(huì)員處獲取用戶名和密碼會(huì)員提交用戶名和密碼用戶名和密碼被驗(yàn)證系統(tǒng)驗(yàn)證用戶名和密碼使用主動(dòng)語(yǔ)句錯(cuò)對(duì)錯(cuò)對(duì)編寫用例文檔基本路徑執(zhí)行者×××××系統(tǒng)×××××系統(tǒng)×××××執(zhí)行者×××××句子必須以執(zhí)行者或系統(tǒng)作為主語(yǔ)編寫用例文檔基本路徑執(zhí)行者填寫姓名執(zhí)行者填寫電話執(zhí)行者填寫聯(lián)系地址執(zhí)行者提交××××××每一句都要朝目標(biāo)邁進(jìn)X編寫用例文檔基本路徑分支:放到擴(kuò)展路徑循環(huán):直接描述分支和循環(huán)編寫用例文檔基本路徑會(huì)員從下拉框中選擇類別會(huì)員在相應(yīng)文本框中輸入查詢條件會(huì)員點(diǎn)擊“確定”按鈕……不要涉及界面細(xì)節(jié)X編寫用例文檔擴(kuò)展路徑注意意外和分支替換路徑異常路徑編寫用例文檔補(bǔ)充約束可以直接放在用例中,也可以單獨(dú)集中到另外的文檔,從用例文檔指向字段列表業(yè)務(wù)規(guī)則非功能需求設(shè)計(jì)約束編寫用例文檔用例文檔實(shí)例編寫用例文檔用例文檔實(shí)例用例文檔示例一用例文檔示例二檢查用例模型用例模型完成之后,需要對(duì)用例模型進(jìn)行檢查,看看是否有遺漏或錯(cuò)誤之處。主要可以從以下幾個(gè)方面來(lái)進(jìn)行檢查:功能需求的完備性模型是否易于理解是否存在不一致性避免語(yǔ)義二義性檢查用例模型用例1用例2用例3用例4用例5…需求1●●需求2●需求3需求4●需求5●●…狀態(tài)圖狀態(tài)圖定義狀態(tài)圖(StateDiagram)用來(lái)描述一個(gè)特定對(duì)象的所有可能狀態(tài)及其引起狀態(tài)轉(zhuǎn)移的事件。通常用狀態(tài)圖來(lái)描述單個(gè)對(duì)象的行為,它確定了由事件序列引出的狀態(tài)序列,但并不是所有的類都需要使用狀態(tài)圖來(lái)描述它的行為,只有那些具有重要交互行為的類,才會(huì)使用狀態(tài)圖來(lái)描述。一個(gè)狀態(tài)圖包括一系列對(duì)象的狀態(tài)及狀態(tài)之間的轉(zhuǎn)換。狀態(tài)圖狀態(tài)圖實(shí)例下圖是某航空訂票系統(tǒng)中訂單對(duì)象的狀態(tài)圖:狀態(tài)圖狀態(tài)圖組成元素狀態(tài)圖用初始狀態(tài)(InitialState)表示對(duì)象創(chuàng)建時(shí)的狀態(tài),每一個(gè)狀態(tài)圖一般只有一個(gè)初始狀態(tài),用實(shí)心的圓點(diǎn)表示。每一個(gè)狀態(tài)圖可能有多個(gè)終止?fàn)顟B(tài)(FinalState),用一個(gè)實(shí)心圓外加一個(gè)圓圈表示。狀態(tài)圖中可有多個(gè)狀態(tài)框,每個(gè)狀態(tài)框中有兩格:上格放置狀態(tài)名稱,下格說(shuō)明處于該狀態(tài)時(shí),系統(tǒng)或?qū)ο笠M(jìn)行的活動(dòng)(Action)。狀態(tài)圖狀態(tài)圖組成元素從一個(gè)狀態(tài)到另一個(gè)狀態(tài)之間的連線稱為轉(zhuǎn)移(Transition)。狀態(tài)之間的過渡事件(Event)對(duì)應(yīng)對(duì)象的動(dòng)作或活動(dòng)(Action)。事件有可能在特定的條件下發(fā)生,在UML中這樣的條件稱為守護(hù)條件(GuardCondition),發(fā)生的事件可通過對(duì)象的動(dòng)作(Action)進(jìn)行處理。狀態(tài)之間的轉(zhuǎn)移可帶有標(biāo)注,由三部分組成(每一部分都可省略),其語(yǔ)法為:事件名[條件]/動(dòng)作名。狀態(tài)圖狀態(tài)圖組成元素初始狀態(tài)終止?fàn)顟B(tài)狀態(tài)轉(zhuǎn)移守護(hù)條件事件動(dòng)作狀態(tài)圖狀態(tài)圖高級(jí)技巧簡(jiǎn)單狀態(tài):不包含其他狀態(tài)的狀態(tài)稱為簡(jiǎn)單狀態(tài)。復(fù)合狀態(tài):又稱為組合狀態(tài),可以將若干狀態(tài)組織在一起可以得到一個(gè)復(fù)合狀態(tài),包含在一個(gè)復(fù)合狀態(tài)中的狀態(tài)稱為子狀態(tài)。狀態(tài)圖狀態(tài)圖高級(jí)技巧復(fù)合狀態(tài):汽車狀態(tài)狀態(tài)圖狀態(tài)圖高級(jí)技巧帶同步條的狀態(tài)圖(分支與合并):請(qǐng)假條狀態(tài)狀態(tài)圖狀態(tài)圖繪制在繪制對(duì)象的狀態(tài)圖時(shí),要考慮以下因素:對(duì)象有哪些有意義的狀態(tài);對(duì)象的哪些狀態(tài)之間可以相互轉(zhuǎn)換;對(duì)象狀態(tài)之間何時(shí)發(fā)生轉(zhuǎn)換;對(duì)象在不同狀態(tài)下有哪些行為;對(duì)象的狀態(tài)圖和其他模型之間如何進(jìn)行映射。狀態(tài)圖狀態(tài)圖繪制技巧狀態(tài)圖適合用于表述在不同用例之間的對(duì)象行為。系統(tǒng)設(shè)計(jì)中可能有多個(gè)對(duì)象,但并不需要給出每個(gè)對(duì)象的狀態(tài)圖,實(shí)際的做法是把注意力集中在整體系統(tǒng)或少數(shù)關(guān)鍵的對(duì)象上,特別是那些狀態(tài)比較多的對(duì)象。狀態(tài)圖狀態(tài)圖與狀態(tài)模式狀態(tài)圖狀態(tài)圖實(shí)例分析某信用卡系統(tǒng)賬戶具有使用狀態(tài)和凍結(jié)狀態(tài),其中使用狀態(tài)又包括正常狀態(tài)和透支狀態(tài)兩種子狀態(tài)。如果賬戶余額小于零則進(jìn)入透支狀態(tài),透支狀態(tài)時(shí)既可以存款又可以取款,但是透支金額不能超過5000元;如果余額大于零則進(jìn)入正常狀態(tài),正常狀態(tài)時(shí)既可以存款又可以取款;如果連續(xù)透支100天,則進(jìn)入凍結(jié)狀態(tài),凍結(jié)狀態(tài)下既不能存款又不能取款,必須要求銀行工作人員解凍。用戶可以在使用狀態(tài)或凍結(jié)狀態(tài)下請(qǐng)求注銷賬戶。根據(jù)上述要求,繪制賬戶類的狀態(tài)圖。狀態(tài)圖狀態(tài)圖實(shí)例分析活動(dòng)圖活動(dòng)圖定義活動(dòng)圖(ActivityDiagram)用來(lái)表示系統(tǒng)中各種活動(dòng)的次序,它的應(yīng)用非常廣泛,既可用來(lái)描述用例的工作流程,也可以用來(lái)描述類中某個(gè)方法的操作行為?;顒?dòng)圖依據(jù)對(duì)象狀態(tài)的變化來(lái)捕獲動(dòng)作(將要執(zhí)行的工作或活動(dòng))與動(dòng)作的結(jié)果。活動(dòng)圖中一個(gè)活動(dòng)結(jié)束后將立即進(jìn)入下一個(gè)活動(dòng)(在狀態(tài)圖中狀態(tài)的變遷可能需要事件的觸發(fā))。活動(dòng)圖活動(dòng)圖定義利用文本描述用例的事件流是很有用的,但如果事件流的邏輯復(fù)雜且有許多其他事件流,則文本形式可能較難閱讀和理解,這時(shí)可使用活動(dòng)圖來(lái)描述事件流。活動(dòng)圖是UML中的流程圖,它是事件流的另一種建模方式。活動(dòng)圖用于以圖形化的方式描述一個(gè)業(yè)務(wù)過程或者一個(gè)用例的活動(dòng)的順序流,它也可以用于建模一個(gè)操作要執(zhí)行的動(dòng)作,以及那些動(dòng)作的結(jié)果?;顒?dòng)圖活動(dòng)圖定義活動(dòng)圖是一種描述工作流的方式,它用來(lái)描述采取何種動(dòng)作、做什么(對(duì)象狀態(tài)改變)、何時(shí)發(fā)生(動(dòng)作序列)以及在何處發(fā)生(泳道)?;顒?dòng)圖活動(dòng)圖作用描述業(yè)務(wù)流程描述用例路徑描述方法執(zhí)行流程(程序流程圖)活動(dòng)圖活動(dòng)圖實(shí)例圖書管理系統(tǒng)活動(dòng)圖活動(dòng)圖組成元素活動(dòng)圖由起始活動(dòng)(StartActivity)、終止活動(dòng)(EndActivity)、活動(dòng)(Activity)、轉(zhuǎn)移(Transition)或流(Flow)、決策(Decision)、守護(hù)條件(Condition)、同步條(Synchronization)和泳道(Swimlane)等組成?;顒?dòng)圖活動(dòng)圖組成元素起始活動(dòng)顯式地表示活動(dòng)圖工作流程的開始,用實(shí)心圓餅來(lái)表示,在一個(gè)活動(dòng)圖中,只有一個(gè)起始活動(dòng)。終止活動(dòng)表示一個(gè)活動(dòng)圖的最后和終結(jié)活動(dòng),一個(gè)活動(dòng)圖中可以有0個(gè)或多個(gè)終止活動(dòng),終止活動(dòng)用實(shí)心圓點(diǎn)外加一個(gè)小圓圈來(lái)表示?;顒?dòng)圖中的活動(dòng)用一個(gè)圓角矩形表示,其內(nèi)部的文本串用來(lái)說(shuō)明采取的動(dòng)作?;顒?dòng)是指一組動(dòng)作,它是實(shí)現(xiàn)操作的一個(gè)步驟,活動(dòng)之間的轉(zhuǎn)移用箭頭來(lái)表示,稱為轉(zhuǎn)移或流,轉(zhuǎn)移是由事件的發(fā)生所引起的活動(dòng)的改變,用帶有箭頭的實(shí)線表示。箭頭上可能還帶有守護(hù)條件,發(fā)送短句和動(dòng)作表達(dá)式?;顒?dòng)圖活動(dòng)圖組成元素守護(hù)條件用來(lái)約束轉(zhuǎn)移,守護(hù)條件為真時(shí)轉(zhuǎn)移才可以開始?;顒?dòng)圖活動(dòng)圖組成元素用菱形符號(hào)來(lái)表示判定,判定符號(hào)可以有一個(gè)或多個(gè)進(jìn)入轉(zhuǎn)移,兩個(gè)或更多的帶有守護(hù)條件的發(fā)出轉(zhuǎn)移。對(duì)象流是活動(dòng)與對(duì)象之間的依賴關(guān)系,可以將與活動(dòng)涉及的對(duì)象放在活動(dòng)圖中,用一個(gè)依賴將其連接到相應(yīng)的活動(dòng)中,對(duì)象的這種使用方法構(gòu)成了對(duì)象流。在活動(dòng)圖中,對(duì)象流使用帶箭頭的虛線表示,對(duì)象用矩形表示,矩形內(nèi)是該對(duì)象的名稱,名稱下的方括號(hào)表示該對(duì)象此時(shí)的狀態(tài)。活動(dòng)圖活動(dòng)圖組成元素活動(dòng)圖活動(dòng)圖組成元素可以將一個(gè)轉(zhuǎn)移分解成兩個(gè)或更多的轉(zhuǎn)移,從而導(dǎo)致并發(fā)的動(dòng)作。所有的并行轉(zhuǎn)移在合并之間必須被執(zhí)行。一條粗黑線表示將轉(zhuǎn)移分解成多個(gè)分支(fork),同樣用粗黑線來(lái)表示分支的合并(join),這種粗黑線稱為同步條?;顒?dòng)圖活動(dòng)圖組成元素活動(dòng)圖活動(dòng)圖組成元素泳道用于劃分活動(dòng)圖,有助于更好地理解執(zhí)行活動(dòng)的場(chǎng)所。泳道劃分負(fù)責(zé)活動(dòng)的對(duì)象,明確地表示哪些活動(dòng)是由哪些對(duì)象進(jìn)行的,每個(gè)活動(dòng)只能明確地屬于一個(gè)泳道。在活動(dòng)圖中,泳道一般用垂直實(shí)線繪出,垂直線分隔的區(qū)域就是泳道?;顒?dòng)圖活動(dòng)圖組成元素活動(dòng)圖活動(dòng)圖的繪制技巧使用活動(dòng)圖來(lái)描述用例路徑更加直觀。對(duì)面向?qū)ο蠼6?,用活?dòng)圖描述業(yè)務(wù)流程并不是對(duì)每個(gè)系統(tǒng)都必不可少的工作。不要把描述業(yè)務(wù)流程的活動(dòng)圖看成可編程的模型,它與系統(tǒng)的實(shí)際構(gòu)造情況和執(zhí)行情況有很大的差距。首先要對(duì)主要的業(yè)務(wù)流建模,然后再標(biāo)出分支、合并和對(duì)象流。盡量減少交叉線,如果圖形較為復(fù)雜,適當(dāng)使用顏色和注釋。活動(dòng)圖活動(dòng)圖實(shí)例分析某教學(xué)管理系統(tǒng)增加課程信息用例路徑如下,繪制相應(yīng)的活動(dòng)圖?;玖鞒?.管理員選擇進(jìn)入課程管理界面,用例開始。2.管理員輸入課程信息。3.系統(tǒng)驗(yàn)證是否和已有課程信息沖突。4.系統(tǒng)添加新課程,提示課程添加成功。5.系統(tǒng)顯示課程添加成功。6.用例結(jié)束。替代流程3a.驗(yàn)證失敗
1.系統(tǒng)提示重新輸入課程信息。
2.回到主流程第2步,管理員輸入課程信息,直到成功為止。4a.添加課程失敗
1.系統(tǒng)顯示課程添加失敗。
2.用例結(jié)束?;顒?dòng)圖活動(dòng)圖實(shí)例分析順序圖順序圖定義UML順序圖一般用于確認(rèn)和豐富一個(gè)使用情境的邏輯。一個(gè)使用情境的邏輯或是一個(gè)用例的一部分;或是一條擴(kuò)展路徑;或是一個(gè)貫穿單個(gè)用例的完整路徑,例如動(dòng)作基本過程的邏輯描述;或是動(dòng)作的基本過程的一部分再加上一個(gè)或多個(gè)的備用情境的邏輯描述;或是包含在幾個(gè)用例中的路徑。順序圖順序圖定義順序圖將交互關(guān)系表現(xiàn)為一個(gè)二維圖,縱向是時(shí)間軸,時(shí)間沿豎線向下延伸。橫向軸代表了在協(xié)作中各獨(dú)立對(duì)象的類元角色,類元角色的活動(dòng)用生命線表示。順序圖順序圖示例順序圖順序圖組成元素生命線用一條縱向虛線表示。在UML中,對(duì)象表示為一個(gè)矩形,其中對(duì)象名稱標(biāo)有下劃線。順序圖順序圖組成元素對(duì)象生命線順序圖順序圖組成元素激活是過程的執(zhí)行,包括等待過程執(zhí)行的時(shí)間。在順序圖中激活部分替換生命線,使用長(zhǎng)條的矩形表示。消息是對(duì)象之間的通信,是兩個(gè)對(duì)象之間的單路通信,是從發(fā)送者到接收者之間的控制信息流。消息在順序圖中由有標(biāo)記的箭頭表示,箭頭從一個(gè)對(duì)象的生命線指向另一個(gè)對(duì)象的生命線,消息按時(shí)間順序在圖中從上到下排列。順序圖順序圖組成元素消息激活順序圖順序圖組成元素在順序圖中,對(duì)象安排在X軸。啟動(dòng)交互的對(duì)象放在最左邊,隨后放入消息的對(duì)象放在啟動(dòng)交互對(duì)象的右邊。交互中對(duì)象發(fā)送和接收的消息沿著Y軸以時(shí)間增加的次序放置。在順序圖中,有的消息對(duì)應(yīng)于激活,表示它將會(huì)激活一個(gè)對(duì)象,這種消息稱為調(diào)用消息(CallMessage);如果消息沒有對(duì)應(yīng)激活框,表示它不是一個(gè)調(diào)用消息,不會(huì)引發(fā)其他對(duì)象的活動(dòng),這種消息稱為發(fā)送消息(SendMessage)。順序圖順序圖組成元素下圖顯示順序圖中對(duì)象和消息的安排:順序圖消息調(diào)用消息返回消息自身消息順序圖消息調(diào)用消息發(fā)送消息順序圖消息創(chuàng)建消息銷毀消息順序圖消息同步消息異步消息順序圖交互片段一個(gè)復(fù)雜的順序圖可以劃分為幾個(gè)小塊,每一個(gè)小塊稱為一個(gè)交互片段。每個(gè)交互片段由一個(gè)大方框包圍,其名稱顯示在方框左上角的間隔區(qū)內(nèi),表示該順序圖的信息。常用操作符如下:alt:多條路徑,條件為真時(shí)執(zhí)行。opt:任選,僅當(dāng)條件為真時(shí)執(zhí)行。par:并行,每一片段都并發(fā)執(zhí)行。loop:循環(huán),片段可多次執(zhí)行。critical:臨界區(qū),只能有一個(gè)線程對(duì)它立即執(zhí)行。順序圖交互片段ATM登錄用例順序圖順序圖作用對(duì)于業(yè)務(wù)人員,順序圖可顯示不同的業(yè)務(wù)對(duì)象如何交互,對(duì)于交流當(dāng)前業(yè)務(wù)如何進(jìn)行很有用。除記錄組織的當(dāng)前事件外,一個(gè)業(yè)務(wù)級(jí)的順序圖能被當(dāng)作一個(gè)需求文件使用,為實(shí)現(xiàn)一個(gè)未來(lái)系統(tǒng)傳遞需求。對(duì)于需求分析人員,順序圖能通過提供一個(gè)深層次的表達(dá),把用例帶入下一層次。通常用例被細(xì)化為一個(gè)或者更多的順序圖。順序圖的主要用途之一,是把用例表達(dá)的需求,轉(zhuǎn)化為進(jìn)一步、更深層次的精細(xì)表達(dá)。對(duì)于技術(shù)人員,順序圖在記錄一個(gè)未來(lái)系統(tǒng)的行為應(yīng)該如何表現(xiàn)時(shí)非常有用。在設(shè)計(jì)階段,架構(gòu)師和開發(fā)者能使用順序圖挖掘出系統(tǒng)對(duì)象間的交互,進(jìn)一步完善整個(gè)系統(tǒng)的設(shè)計(jì)。順序圖順序圖繪制技巧以用例為單位創(chuàng)建順序圖,針對(duì)每個(gè)用例,考察為完成它所描述的功能需要哪些對(duì)象的操作參與執(zhí)行,并且進(jìn)一步考察這些操作的執(zhí)行需要通過消息而引起其他哪些對(duì)象操作的執(zhí)行。把這些對(duì)象以及參與交互的執(zhí)行者組織到一個(gè)順序圖中。理論上需要為每一個(gè)用例創(chuàng)建一個(gè)順序圖,但是如果一個(gè)用例的交互對(duì)象很簡(jiǎn)單可以不需要?jiǎng)?chuàng)建順序圖。順序圖順序圖繪制技巧順序圖繪制步驟:確定參與交互的執(zhí)行者確定與執(zhí)行者直接交互的對(duì)象確定與交互相關(guān)的全部對(duì)象(順藤摸瓜)順序圖順序圖繪制技巧如果需要考察單個(gè)用例內(nèi)部多個(gè)對(duì)象的行為可以使用順序圖;如果需要考察單個(gè)對(duì)象的行為就需要使用狀態(tài)圖;如果需要考察跨用例或者跨線程的行為就需要考慮使用活動(dòng)圖。順序圖順序圖繪制技巧需求分析階段的順序圖:主要用于描述用例中對(duì)象之間的交互,可以使用自然語(yǔ)言來(lái)繪制,用于細(xì)化需求。從業(yè)務(wù)的角度進(jìn)行建模,用描述性的文字?jǐn)⑹鱿⒌膬?nèi)容。系統(tǒng)設(shè)計(jì)階段的順序圖:確切表示系統(tǒng)設(shè)計(jì)中對(duì)象之間的交互,考慮到具體的系統(tǒng)實(shí)現(xiàn),對(duì)象之間通過方法調(diào)用傳遞消息。順序圖順序圖繪制技巧需求分析階段的順序圖順序圖順序圖繪制技巧系統(tǒng)設(shè)計(jì)階段的順序圖順序圖順序圖實(shí)例分析繪制圖書管理系統(tǒng)“借書”用例的順序圖(業(yè)務(wù)模型)。圖書管理員打開借書界面,輸入借書信息并提交借書請(qǐng)求;系統(tǒng)驗(yàn)證借書卡狀態(tài),如果借書卡未借書則記錄借書信息且修改圖書狀態(tài)和借書卡狀態(tài),并提示借書成功;否則提示借書失敗。順序圖順序圖實(shí)例分析第三部分UML構(gòu)造設(shè)計(jì)模型Sunnyweiliu_china@163.com大綱類與類圖正向工程與逆向工程包圖組件圖部署圖類與類圖類與類圖類的定義類(Class)封裝了數(shù)據(jù)和行為,是面向?qū)ο蟮闹匾M成部分,它是具有相同屬性、操作、關(guān)系的對(duì)象集合的總稱。在系統(tǒng)中,每個(gè)類具有一定的職責(zé),職責(zé)指的是類所擔(dān)任的任務(wù),即類要完成什么樣的功能,要承擔(dān)什么樣的義務(wù)。一個(gè)類可以有多種職責(zé),設(shè)計(jì)得好的類一般只有一種職責(zé)(單一職責(zé)原則),在定義類的時(shí)候,將類的職責(zé)分解成為類的屬性和操作(即方法)。類的屬性即類的數(shù)據(jù)職責(zé),類的操作即類的行為職責(zé)。類與類圖類圖定義類圖使用需要出現(xiàn)在系統(tǒng)內(nèi)的不同的類來(lái)描述系統(tǒng)的靜態(tài)結(jié)構(gòu),類圖包含類和它們之間的關(guān)系,它描述系統(tǒng)內(nèi)所聲明的類,但它沒有描述系統(tǒng)運(yùn)行時(shí)類的行為。在UML中,類使用具有類名稱、屬性、操作分隔的長(zhǎng)方形來(lái)表示:類與類圖類圖表示類由三格組成:第一格是類名。第二格是類的屬性。第三格是類的操作。類與類圖定義屬性在UML中,類的屬性表示方式如下:可見性名稱:類型[=默認(rèn)值]類與類圖定義操作在UML中,類的操作表示方式如下:可見性名稱(參數(shù)列表)[:返回類型]類與類圖類之間的關(guān)系關(guān)聯(lián)關(guān)系關(guān)聯(lián)關(guān)系(Association)是類與類之間最常用的一種關(guān)系,它是一種結(jié)構(gòu)化關(guān)系,用于表示一類對(duì)象與另一類對(duì)象之間有聯(lián)系。在UML類圖中,用實(shí)線連接有關(guān)聯(lián)的對(duì)象所對(duì)應(yīng)的類,在使用Java、C#和C++等編程語(yǔ)言實(shí)現(xiàn)關(guān)聯(lián)關(guān)系時(shí),通常將一個(gè)類的對(duì)象作為另一個(gè)類的屬性。在使用類圖表示關(guān)聯(lián)關(guān)系時(shí)可以在關(guān)聯(lián)線上標(biāo)注角色名。類與類圖類之間的關(guān)系關(guān)聯(lián)關(guān)系publicclassLoginForm{privateJButton
loginButton;……}publicclassJButton{
……}成員變量類與類圖類之間的關(guān)系雙向關(guān)聯(lián)默認(rèn)情況下,關(guān)聯(lián)是雙向的。publicclassCustomer{privateProduct[]products;……}publicclassProduct{privateCustomercustomer;……}類與類圖類之間的關(guān)系單向關(guān)聯(lián)類的關(guān)聯(lián)關(guān)系也可以是單向的,單向關(guān)聯(lián)用帶箭頭的實(shí)線表示。publicclassCustomer{privateAddressaddress;……}publicclassAddress{……}類與類圖類之間的關(guān)系自關(guān)聯(lián)在系統(tǒng)中可能會(huì)存在一些類的屬性對(duì)象類型為該類本身,這種特殊的關(guān)聯(lián)關(guān)系稱為自關(guān)聯(lián)。publicclassNode{privateNodesubNode;……}類與類圖類之間的關(guān)系多重性關(guān)聯(lián)多重性關(guān)聯(lián)關(guān)系又稱為重?cái)?shù)性關(guān)聯(lián)關(guān)系(Multiplicity),表示一個(gè)類的對(duì)象與另一個(gè)類的對(duì)象連接的個(gè)數(shù)。在UML中多重性關(guān)系可以直接在關(guān)聯(lián)直線上增加一個(gè)數(shù)字表示與之對(duì)應(yīng)的另一個(gè)類的對(duì)象的個(gè)數(shù)。表示方式多重性說(shuō)明1..1表示另一個(gè)類的一個(gè)對(duì)象只與一個(gè)該類對(duì)象有關(guān)系0..*表示另一個(gè)類的一個(gè)對(duì)象與零個(gè)或多個(gè)該類對(duì)象有關(guān)系1..*表示另一個(gè)類的一個(gè)對(duì)象與一個(gè)或多個(gè)該類對(duì)象有關(guān)系0..1表示另一個(gè)類的一個(gè)對(duì)象沒有或只與一個(gè)該類對(duì)象有關(guān)系m..n表示另一個(gè)類的一個(gè)對(duì)象與最少m、最多n個(gè)該類對(duì)象有關(guān)系(m<=n)類與類圖類之間的關(guān)系多重性關(guān)聯(lián)publicclassForm{
privateButtonbuttons[];……}publicclassButton{…}集合類與類圖類之間的關(guān)系聚合關(guān)系聚合關(guān)系(Aggregation)表示一個(gè)整體與部分的關(guān)系。通常在定義一個(gè)整體類后,再去分析這個(gè)整體類的組成結(jié)構(gòu),從而找出一些成員類,該整體類和成員類之間就形成了聚合關(guān)系。在聚合關(guān)系中,成員類是整體類的一部分,即成員對(duì)象是整體對(duì)象的一部分,但是成員對(duì)象可以脫離整體對(duì)象獨(dú)立存在。在UML中,聚合關(guān)系用帶空心菱形的直線表示。類與類圖類之間的關(guān)系聚合關(guān)系publicclassCar{privateEngineengine;publicCar(Engineengine){
this.engine=engine;}
publicvoidsetEngine(Engineengine){
this.engine=engine;}……}publicclassEngine{
……}成員變量注入類與類圖類之間的關(guān)系組合關(guān)系組合關(guān)系(Composition)也表示類之間整體和部分的關(guān)系,但是組合關(guān)系中部分和整體具有統(tǒng)一的生存期。一旦整體對(duì)象不存在,部分對(duì)象也將不存在,部分對(duì)象與整體對(duì)象之間具有同生共死的關(guān)系。在組合關(guān)系中,成員類是整體類的一部分,而且整體類可以控制成員類的生命周期,即成員類的存在依賴于整體類。在UML中,組合關(guān)系用帶實(shí)心菱形的直線表示。類與類圖類之間的關(guān)系組合關(guān)系publicclassHead{privateMouthmouth;publicHead(){ mouth=newMouth();}……}publicclassMouth{
……}成員變量控制生命周期類與類圖類之間的關(guān)系依賴關(guān)系依賴關(guān)系(Dependency)是一種使用關(guān)系,特定事物的改變有可能會(huì)影響到使用該事物的其他事物,在需要表示一個(gè)事物使用另一個(gè)事物時(shí)使用依賴關(guān)系。大多數(shù)情況下,依賴關(guān)系體現(xiàn)在某個(gè)類的方法使用另一個(gè)類的對(duì)象作為參數(shù)。在UML中,依賴關(guān)系用帶箭頭的虛線表示,由依賴的一方指向被依賴的一方。類與類圖類之間的關(guān)系依賴關(guān)系publicclassDriver{
publicvoiddrive(Carcar){
car.move();}
……}publicclassCar{publicvoidmove(){......}
……}方法參數(shù)類與類圖類之間的關(guān)系依賴關(guān)系classDriver{publicvoiddrive(){
Carcar=newCar();car.move();}……}classCar{publicvoidmove(){……}……}局部變量類與類圖類之間的關(guān)系依賴關(guān)系classDriver{publicvoiddrive(){
Car.move();}……}classCar{publicstaticvoidmove(){……}……}調(diào)用靜態(tài)方法類與類圖類之間的關(guān)系泛化關(guān)系泛化關(guān)系(Generalization)也就是繼承關(guān)系,也稱為“is-a-kind-of”關(guān)系,泛化關(guān)系用于描述父類與子類之間的關(guān)系,父類又稱作基類或超類,子類又稱作派生類。在UML中,泛化關(guān)系用帶空心三角形的直線來(lái)表示。在代碼實(shí)現(xiàn)時(shí),使用面向?qū)ο蟮睦^承機(jī)制來(lái)實(shí)現(xiàn)泛化關(guān)系,如在Java語(yǔ)言中使用extends關(guān)鍵字、在C++/C#中使用冒號(hào)“:”來(lái)實(shí)現(xiàn)。類與類圖類之間的關(guān)系泛化關(guān)系類與類圖類之間的關(guān)系泛化關(guān)系classForm{……}classLoginFormextendsForm{……}classForm{……}classLoginForm:Form{……}JavaC++/C#類與類圖類之間的關(guān)系接口與實(shí)現(xiàn)關(guān)系接口之間也可以有與類之間關(guān)系類似的繼承關(guān)系和依賴關(guān)系,但是接口和類之間還存在一種實(shí)現(xiàn)關(guān)系(Realization),在這種關(guān)系中,類實(shí)現(xiàn)了接口,類中的操作實(shí)現(xiàn)了接口中所聲明的操作。在UML中,類與接口之間的實(shí)現(xiàn)關(guān)系用帶空心三角形的虛線來(lái)表示。
類與類圖類之間的關(guān)系接口與實(shí)現(xiàn)關(guān)系類與類圖類之間的關(guān)系接口與實(shí)現(xiàn)關(guān)系interfaceIUserDAO{……}classJdbcUserDAOimplementsIUserDAO{……}interfaceIUserDAO{……}classOracleUserDAO:IUserDAO{……}JavaC++/C#類與類圖注釋(Comment)類與類圖實(shí)例分析某C/S系統(tǒng)需要提供注冊(cè)功能,注冊(cè)用例基本描述如下:用戶輸入新帳號(hào),系統(tǒng)檢測(cè)該帳號(hào)是否已存在,如果不存在則可注冊(cè)成功,否則提示“帳號(hào)已存在”,用戶再次輸入帳號(hào);用戶輸入其他個(gè)人信息;系統(tǒng)保存用戶個(gè)人信息;用戶個(gè)人信息包括帳號(hào)、密碼、姓名、性別、年齡、電話、電子郵箱。類與類圖實(shí)例分析正向工程與逆向工程正向工程:模型
代碼(演示)逆向工程:代碼模型(演示)正向工程與逆向工程實(shí)例適配器模式之加密算法適配包圖概念包是一種把元素組織到一起的通用機(jī)制,包可以嵌套于其他包中。包圖用于描述包與包之間的關(guān)系,包的圖標(biāo)是一個(gè)帶標(biāo)簽的文件夾。包圖包之間的關(guān)系引入關(guān)系:一個(gè)包中的類可以被另一個(gè)指定包(以及嵌套于其中的那些包)中的類引用。引入關(guān)系是依賴關(guān)系的一種,需要在依賴線上增加一個(gè)<<import>>衍型,包之間一般依賴關(guān)系都屬于引入關(guān)系。包圖包之間的關(guān)系泛化關(guān)系:表示一個(gè)包繼承了另一個(gè)包的內(nèi)容,同時(shí)又補(bǔ)充自己增加的內(nèi)容。包圖包之間的關(guān)系嵌套關(guān)系:一個(gè)包中可以包含若干個(gè)子包,構(gòu)成了包的嵌套層次結(jié)構(gòu)。包圖包圖繪制技巧兩種組包方式:根據(jù)系統(tǒng)分層架構(gòu)組包(推薦使用);根據(jù)系統(tǒng)業(yè)務(wù)功能模塊組包。參照類之間的關(guān)系確定包之間的關(guān)系;減少包的嵌套層次,一般不超過三層;每個(gè)包的子包控制在7±2個(gè);可通過包圖來(lái)體現(xiàn)系統(tǒng)的分層架構(gòu)。包圖包圖體現(xiàn)體系結(jié)構(gòu)包圖包圖實(shí)例(基于C/S的人力資源管理系統(tǒng))包圖包圖實(shí)例(基于B/S的OA系統(tǒng))組件圖組件圖定義組件圖又稱為構(gòu)件圖(ComponentDiagram)。組件圖中通常包括組件、接口,以及各種關(guān)系。組件圖顯示組件以及它們之間的依賴關(guān)系,它可以用來(lái)顯示程序代碼如何分解成模塊或組件。一般來(lái)說(shuō),組件就是一個(gè)實(shí)際文件,可以有以下幾種類型:源代碼組件:一個(gè)源代碼文件或者與一個(gè)包對(duì)應(yīng)的若干個(gè)源代碼文件。二進(jìn)制組件:一個(gè)目標(biāo)碼文件,一個(gè)靜態(tài)的或者動(dòng)態(tài)的庫(kù)文件??蓤?zhí)行組件:在一臺(tái)處理器上可運(yùn)行的一個(gè)可執(zhí)行的程序單位,即所謂可執(zhí)行程序。組件圖組件圖定義組件圖可以用來(lái)顯示編譯、鏈接或執(zhí)行時(shí)組件之間的依賴關(guān)系,以及組件的接口和調(diào)用關(guān)系。組件圖組件圖定義組件間的關(guān)系有兩種:泛化關(guān)系和依賴關(guān)系,如果兩個(gè)不同組件中的類存在泛化關(guān)系或依賴關(guān)系,那么兩個(gè)組件之間的關(guān)系就表示為泛化關(guān)系或依賴關(guān)系。對(duì)于由多個(gè)組件組成的大系統(tǒng)來(lái)說(shuō),組件圖非常重要。組件圖組件圖實(shí)例組件圖組件圖組成元素組件:系統(tǒng)中可以替換的部分,一般對(duì)應(yīng)一個(gè)實(shí)際文件,如exe、jar、dll等文件,它遵循并提供了一組接口的實(shí)現(xiàn)。接口:一組操作的集合,它指明了由類或組件所請(qǐng)求或者所提供的服務(wù)。部件:組件的局部實(shí)現(xiàn)。端口:被封裝的組件與外界的交互點(diǎn),遵循指定接口的組件通過它來(lái)收發(fā)消息。連接件:在特定語(yǔ)境下組件中兩個(gè)部件之間或者兩個(gè)端口之間的通信關(guān)系。組件圖組件圖組成元素供(Provided)接口與需(Required)接口組件圖組件圖繪制技巧當(dāng)需要把系統(tǒng)分成若干組件(構(gòu)件),希望借助接口或組件將系統(tǒng)分解為低層結(jié)構(gòu)并表示其相互關(guān)系時(shí)需要使用組件圖。在繪制組件圖時(shí),應(yīng)該注意側(cè)重于描述系統(tǒng)的靜態(tài)實(shí)現(xiàn)視圖的一個(gè)方面,圖形不要過于簡(jiǎn)化,應(yīng)該為組件圖取一個(gè)直觀的名稱,在繪制時(shí)避免產(chǎn)生線的交叉。注意組件的粒度,粒度過細(xì)的構(gòu)件將導(dǎo)致系統(tǒng)過于龐大,會(huì)給版本管理帶來(lái)問題。組件圖組件圖實(shí)例分析在某銷售終端系統(tǒng)中,客戶端收銀機(jī)可以通過銷售消息接口與銷售服務(wù)器相連。考慮到網(wǎng)絡(luò)可能不可靠,需要提供一個(gè)消息隊(duì)列組件。在網(wǎng)絡(luò)環(huán)境暢通時(shí)收銀機(jī)直接與服務(wù)器相連;如果網(wǎng)絡(luò)不可靠則與消息隊(duì)列交互,當(dāng)網(wǎng)絡(luò)可用時(shí)隊(duì)列再與服務(wù)器交互。服務(wù)器分解為兩個(gè)主要組件,主要包括事務(wù)處理組件和記賬驅(qū)動(dòng)組件,記賬驅(qū)動(dòng)組件需要和記賬系統(tǒng)交互。繪制系統(tǒng)組件圖。組件圖組件圖實(shí)例分析組件圖組件圖實(shí)例分析某JavaEE項(xiàng)目組件圖組件圖組件圖實(shí)例分析某圖書管理系統(tǒng)局部組件圖部署圖部署圖定義部署圖(DeploymentDiagram),也稱為實(shí)施圖,它和組件圖一樣,是面向?qū)ο笙到y(tǒng)的物理方面建模的兩種圖之一。組件圖是說(shuō)明組件之間的邏輯關(guān)系的,而部署圖則是在此基礎(chǔ)上更進(jìn)一步,描述系統(tǒng)硬件的物理拓?fù)浣Y(jié)構(gòu)及在此結(jié)構(gòu)上執(zhí)行的軟件。部署圖可以顯示計(jì)算節(jié)點(diǎn)的拓?fù)浣Y(jié)構(gòu)和通信路徑、節(jié)點(diǎn)上運(yùn)行的軟件組件。部署圖部署圖定義在UML中,部署圖顯示了系統(tǒng)的硬件和安裝在硬件上的軟件,以及用于連接異構(gòu)計(jì)算機(jī)之間的中間件。部署圖通常被認(rèn)為是一個(gè)網(wǎng)絡(luò)圖或者物理架構(gòu)圖。部署圖部署圖實(shí)例部署圖部署圖組成元素節(jié)點(diǎn)和連接:節(jié)點(diǎn)(Node)代表一個(gè)物理設(shè)備。在UML中,使用一個(gè)立方體表示一個(gè)節(jié)點(diǎn)。節(jié)點(diǎn)之間的連線表示系統(tǒng)之間進(jìn)行交互的通信路徑,在UML中被稱為連接。組件:在部署圖中,組件代表可執(zhí)行的物理代碼模塊,如一個(gè)可執(zhí)行程序,邏輯上它可以與類或包對(duì)應(yīng)。部署圖部署圖繪制技巧部署圖用于表示何者部署于何處,任何復(fù)雜的部署都可以使用部署圖描述。一個(gè)部署圖只是系統(tǒng)靜態(tài)部署視圖的一個(gè)圖形表示,在單個(gè)部署圖中不必捕獲系統(tǒng)部署視圖的所有內(nèi)容。部署圖一般用于:對(duì)嵌入式系統(tǒng)建模(硬件之間的交互)對(duì)客戶端/服務(wù)器系統(tǒng)建模(用戶界面與數(shù)據(jù)的分離)對(duì)分布式系統(tǒng)建模(多級(jí)服務(wù)器)部署圖部署圖實(shí)例分析某大型商場(chǎng)的信息管理系統(tǒng)是由一個(gè)數(shù)據(jù)庫(kù)服務(wù)器、中央服務(wù)器、每個(gè)樓層的樓層服務(wù)器、各柜臺(tái)的收款機(jī)和各個(gè)部門的計(jì)算機(jī)終端組成的局域網(wǎng)絡(luò),它們分別負(fù)責(zé)商場(chǎng)數(shù)據(jù)存儲(chǔ)、數(shù)據(jù)的匯總與分析、當(dāng)日數(shù)據(jù)的保存與整理、銷售信息錄入和進(jìn)銷存信息處理等各種業(yè)務(wù)處理。用部署圖描述該系統(tǒng)在不同硬件上的配置情況。部署圖部署圖實(shí)例分析部署圖部署圖實(shí)例分析某嵌入式系統(tǒng)(車載主板)部署圖(局部)部署圖部署圖實(shí)例分析典型B/S系統(tǒng)部署圖第四部分UML補(bǔ)充知識(shí)大綱對(duì)象圖組合結(jié)構(gòu)圖通信圖定時(shí)圖交互概覽圖UML擴(kuò)展機(jī)制對(duì)象圖定義對(duì)象是指某個(gè)事物,大多對(duì)應(yīng)于真實(shí)世界中的某個(gè)客觀實(shí)體,所有的對(duì)象都是有唯一標(biāo)識(shí)的獨(dú)立實(shí)體。對(duì)象之間的區(qū)別是由它們固有的存在性所決定的,任何對(duì)象都是某個(gè)類的實(shí)例。對(duì)象圖是類圖在某一時(shí)刻的一個(gè)實(shí)例。對(duì)象圖對(duì)象圖表示在UML中對(duì)象表示為一個(gè)有兩欄的矩形框。第一欄表示對(duì)象和類的名,第二欄表示對(duì)象的屬性和值。對(duì)象名的完整格式為:對(duì)象名:類名,這兩部分都是可選的。名字下面加上下劃線表示這是一個(gè)對(duì)象。
例如,empObj對(duì)象表示Employee類的特定實(shí)例,如下圖所示:對(duì)象圖對(duì)象圖解釋對(duì)象圖描述一段時(shí)間里特定實(shí)例的靜態(tài)結(jié)構(gòu),它是類圖的實(shí)例。由于對(duì)象存在生命周期,因此對(duì)象圖只能在系統(tǒng)某一時(shí)間段存在。通常在靜態(tài)建模時(shí)只需要繪制類圖,對(duì)象圖的使用頻率相對(duì)較低。對(duì)象圖對(duì)象圖實(shí)例類圖對(duì)象圖對(duì)象圖實(shí)例對(duì)象圖對(duì)象鏈對(duì)象圖對(duì)象圖實(shí)例(樹形結(jié)構(gòu))組合結(jié)構(gòu)圖組合結(jié)構(gòu)圖概述組合結(jié)構(gòu)圖將每一個(gè)類放在一個(gè)整體中,從類的內(nèi)部結(jié)構(gòu)來(lái)審視一個(gè)類。組合結(jié)構(gòu)圖可用于表示一個(gè)類的內(nèi)部結(jié)構(gòu)。組合結(jié)構(gòu)圖組合結(jié)構(gòu)圖主要組成元素部件(Part):表示被描述事物所擁有的內(nèi)部成分。連接件(Connector):表示部件之間的關(guān)系。端口(Port):表示部件和外部環(huán)境的交互點(diǎn)。組合結(jié)構(gòu)圖組合結(jié)構(gòu)圖討論組合結(jié)構(gòu)圖所能夠表達(dá)的信息,使用組合或者聚合也能夠表示,它只是一種新的表達(dá)形式。組合結(jié)構(gòu)圖可以表示一個(gè)類的內(nèi)部成員對(duì)象之間的相互關(guān)系,是對(duì)傳統(tǒng)類圖的一個(gè)補(bǔ)充。組合結(jié)構(gòu)圖適用于表示含有內(nèi)部類的類與外部接口之間的相互關(guān)系。組合結(jié)構(gòu)圖組合結(jié)構(gòu)圖簡(jiǎn)單實(shí)例組合結(jié)構(gòu)圖組合結(jié)構(gòu)圖簡(jiǎn)單實(shí)例TitleSql類包含兩個(gè)內(nèi)部類,TitleImp類包含兩個(gè)部件,它們之間通過接口dmlAccess和java.sql.connection1產(chǎn)生連接。通信圖通信圖定義在UML1.0中,通信圖稱為協(xié)作圖。通信圖強(qiáng)調(diào)參與一個(gè)交互對(duì)象的組織。它與順序圖是同構(gòu)圖,也就是它們包含了相同的信息,只是表達(dá)方式不同而已,通信圖與順序圖可以相互轉(zhuǎn)換。通信圖通信圖定義雖然通信圖和順序圖均顯示了交互,但它們強(qiáng)調(diào)了不同的方面。順序圖清晰地顯示了時(shí)間次序,但沒有顯式指明對(duì)象間關(guān)系。通信圖清晰地顯示了對(duì)象間關(guān)系,但時(shí)間次序必須從順序號(hào)來(lái)獲得。順序圖常用于用例場(chǎng)景描述,通信圖更適合顯示過程設(shè)計(jì)細(xì)節(jié)。采用哪種圖,一般可以根據(jù)這種原則:當(dāng)對(duì)象及其連接有利于理解交互時(shí),選擇通信圖;當(dāng)只需了解交互的次序時(shí),選擇順序圖。通信圖通信圖實(shí)例通信圖通信圖組成元素通信圖由以下基本元素組成:執(zhí)行者(Actor)、對(duì)象(Object)、連接(Link,也稱為鏈)、消息(Message)和守護(hù)條件(Condition)。在UML中,使用實(shí)線表示兩個(gè)對(duì)象之間的連接;通信圖中的消息,由在連接上方的帶有標(biāo)記的箭頭表示,同時(shí)可以用數(shù)字注明消息的次序。通信圖通信圖組成元素執(zhí)行者對(duì)象連接消息通信圖通信圖組成元素守護(hù)條件:以“[條件表達(dá)式]”格式表示通信圖通信圖繪制技巧通信圖中的對(duì)象與順序圖中的對(duì)象對(duì)應(yīng);通信圖中無(wú)法表示對(duì)象的生命線,因此無(wú)法顯式表示對(duì)象的創(chuàng)建和銷毀;通信圖中的消息添加了順序號(hào),用于說(shuō)明交互過程中消息的時(shí)間順序;通信圖用于表示對(duì)象之間的協(xié)作關(guān)系,即強(qiáng)調(diào)參與交互的對(duì)象的組織。通信圖通信圖實(shí)例分析通信圖通信圖實(shí)例分析某電梯控制系統(tǒng):Elevator(電梯)、Queue(命令隊(duì)列)、Order(指令)、ElevatorControl(電梯控制器)、Button(按鈕)通信圖通信圖與領(lǐng)域建模通過通信圖來(lái)研究領(lǐng)域?qū)ο笾g的交互定時(shí)圖定時(shí)圖定義定時(shí)圖采用一種帶數(shù)字刻度的時(shí)間軸來(lái)精確地描述消息的順序,而不是像順序圖那樣只是指定消息的相對(duì)順序,
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 浙江汽車職業(yè)技術(shù)學(xué)院《深度報(bào)道研究》2023-2024學(xué)年第二學(xué)期期末試卷
- 黑龍江林業(yè)職業(yè)技術(shù)學(xué)院《信息系統(tǒng)開發(fā)與應(yīng)用綜合專題》2023-2024學(xué)年第二學(xué)期期末試卷
- 河北醫(yī)科大學(xué)臨床學(xué)院《土地規(guī)劃設(shè)計(jì)》2023-2024學(xué)年第二學(xué)期期末試卷
- 重慶信息技術(shù)職業(yè)學(xué)院《環(huán)境與健康》2023-2024學(xué)年第二學(xué)期期末試卷
- 新疆維吾爾醫(yī)學(xué)專科學(xué)?!缎l(wèi)生監(jiān)督學(xué)A》2023-2024學(xué)年第二學(xué)期期末試卷
- 晉中師范高等??茖W(xué)?!稒C(jī)械基礎(chǔ)與液壓傳動(dòng)》2023-2024學(xué)年第二學(xué)期期末試卷
- 上海中僑職業(yè)技術(shù)大學(xué)《中醫(yī)診斷學(xué)實(shí)驗(yàn)》2023-2024學(xué)年第二學(xué)期期末試卷
- 湖南司法警官職業(yè)學(xué)院《機(jī)器視覺系統(tǒng)設(shè)計(jì)與應(yīng)用》2023-2024學(xué)年第二學(xué)期期末試卷
- 2024年醫(yī)學(xué)研究與試驗(yàn)發(fā)展服務(wù)項(xiàng)目資金申請(qǐng)報(bào)告代可行性研究報(bào)告
- 連續(xù)剛構(gòu)橋畢業(yè)設(shè)計(jì)答辯
- 書法格子(方正)
- 03S702鋼筋混凝土化糞池圖集
- 骨折術(shù)后康復(fù)概述
- 《社會(huì)職業(yè)大調(diào)查》 第一課時(shí)(教案)-三年級(jí)勞動(dòng)北師大版
- 南京曉莊學(xué)院教師招聘考試歷年真題
- 燃?xì)夤こ淘O(shè)計(jì)及施工驗(yàn)收規(guī)范
- Unit3OnthemoveDevelopingideasRunningintoabetterlife教學(xué)設(shè)計(jì)-高一下學(xué)期外研版英語(yǔ)
- 鄉(xiāng)村振興與規(guī)劃建設(shè)知到章節(jié)答案智慧樹2023年同濟(jì)大學(xué)
- 生物醫(yī)藥產(chǎn)業(yè)鏈研究報(bào)告
- 陳長(zhǎng)興《用武要言》(附要點(diǎn)解析)
- 防災(zāi)減災(zāi)日安全隱患排查臺(tái)賬
評(píng)論
0/150
提交評(píng)論