UML基礎(chǔ)專題:UML簡(jiǎn)介及UML用例圖
本節(jié)和大家一起學(xué)習(xí)一下UML用例圖,主要包括UML簡(jiǎn)介和UML用例圖兩部分內(nèi)容,為了便于大家理解本節(jié)使用了圖解,希望通過本節(jié)的介紹大家能夠掌握有關(guān)UML用例圖的設(shè)計(jì)思想。
統(tǒng)一建模語言UML基礎(chǔ)專題之UML簡(jiǎn)介及UML用例圖
為什么要學(xué)習(xí)統(tǒng)一建模語言UML?
面向?qū)ο缶幊谭椒▽W(xué)是面向?qū)ο缶幊痰闹笇?dǎo)思想。進(jìn)行面向?qū)ο缶幊叹幊痰牡谝徊绞抢脤?duì)象建模技術(shù)(ObjectModelingTechnique,OMT)來分析目標(biāo)問題,抽象出相關(guān)對(duì)象的共性,對(duì)它們進(jìn)行分類,并分析各類之間的關(guān)系,再用類來描述同一類對(duì)象,歸納出類之間的關(guān)系。Coad和Yourdon在對(duì)象建模技術(shù)、面向?qū)ο缶幊毯椭R(shí)庫系統(tǒng)的基礎(chǔ)之上設(shè)計(jì)了一整套面向?qū)ο蟮姆椒ǎ譃槊嫦驅(qū)ο蠓治?Object-OrientedAnalysis,OOA)和面向?qū)ο笤O(shè)計(jì)(Object-OrientedDesign,OOD)。對(duì)象建模技術(shù)、面向?qū)ο蠓治龊兔嫦驅(qū)ο笤O(shè)計(jì)共同構(gòu)成了系統(tǒng)設(shè)計(jì)的過程,如圖所示。這是編寫代碼的基礎(chǔ)。
在進(jìn)行對(duì)象建模、面向?qū)ο蠓治龊驮O(shè)計(jì)的過程中,需要使用建模語言來描述分析的過程和結(jié)果。統(tǒng)一建模語言(UnifiedModelingLanguage,UML)是為了這個(gè)目標(biāo)而設(shè)計(jì)的一種標(biāo)準(zhǔn)通用的設(shè)計(jì)語言。任何想要真正理解面向?qū)ο缶幊趟枷氲娜?,都需要具備一定的UML知識(shí)。
在這個(gè)專題中我們會(huì)陸續(xù)介紹統(tǒng)一建模語言UML中的UML用例圖(usecasediagram)、類圖(classdiagram)、對(duì)象圖(objectdiagram)、序列圖(sequencediagram)、狀態(tài)圖(statechartdiagram)、活動(dòng)圖(activitydiagram)、組件圖(componentdiagram)和部署圖(deploymentdiagram)。
統(tǒng)一建模語言UML簡(jiǎn)介
UML不是一種方法學(xué),而是一種描述語言,它提供了多種類型的模型描述圖(diagram),當(dāng)在某種給定的方法學(xué)中使用這些圖時(shí),人們就能更容易理解和交流設(shè)計(jì)思想。UML的圖可劃分為如下三種類型。
—靜態(tài)圖(staticdiagram):描述了那些不發(fā)生變化的軟件元素的邏輯結(jié)構(gòu),描繪了類、對(duì)象、數(shù)據(jù)結(jié)構(gòu)及其存在于它們之間的關(guān)系。
—動(dòng)態(tài)圖(dynamicdiagram):展示了在運(yùn)行期間的軟件實(shí)體的變化,描繪了執(zhí)行流程、實(shí)體改變狀態(tài)的方式。
—物理圖(physicaldiagram):顯示了軟件實(shí)體的不變化的物理結(jié)構(gòu),描繪庫文件、字節(jié)文件、數(shù)據(jù)文件等,以及存在于它們之間的關(guān)系。
下表說明了三類圖中最常用的一些UML圖,以及它們適用的軟件開發(fā)階段。
提示MicrosoftVisio可以用來方便地繪制UML圖。VisualStudio2005的類關(guān)系圖也可以顯示類似UML的圖,但是與標(biāo)準(zhǔn)的UML稍有不同。
統(tǒng)一建模語言UML用例圖
UML用例圖描述了系統(tǒng)提供的一個(gè)功能單元。用例圖的主要目的是幫助開發(fā)團(tuán)隊(duì)以一種可視化的方式來理解系統(tǒng)的功能需求,包括基于基本流程的“角色”之間的關(guān)系,以及系統(tǒng)內(nèi)用例之間的關(guān)系。用例圖一般用于表示用例的組織關(guān)系,要么是整個(gè)系統(tǒng)的全部用例,要么是完成具有功能(例如,所有安全管理相關(guān)的用例)的一組用例。
用例(usecase)指的是系統(tǒng)的功能,它是系統(tǒng)某個(gè)功能的所有執(zhí)行動(dòng)作的集合。用例是從一個(gè)用戶的觀點(diǎn)來描述的。這個(gè)用戶告訴系統(tǒng)去做一些特定的事情。一個(gè)用例捕獲一個(gè)事件的可視化序列,這個(gè)事件是一個(gè)系統(tǒng)對(duì)單個(gè)用戶的激勵(lì)(stimulus)的響應(yīng)過程。
動(dòng)作者(actor)表示系統(tǒng)用戶能扮演的角色(role) 。這些用戶可能是人,也可能是其他的計(jì)算機(jī)、一些硬件,或者甚至是其他的軟件系統(tǒng)。對(duì)用例的唯一要求是,它們必須位于用例描述的系統(tǒng)部分之外,它們必須能刺激系統(tǒng)部分,并接收返回。
用例描述了當(dāng)動(dòng)作者之一給系統(tǒng)特定的刺激時(shí)的系統(tǒng)活動(dòng)。這些活動(dòng)用文本來描述。它描述了觸發(fā)用例的刺激的本質(zhì),輸入和輸出到其他活動(dòng)者,以及從輸入到輸出的活動(dòng)。用例文本通常也描述每一個(gè)活動(dòng)可能的錯(cuò)誤和系統(tǒng)應(yīng)采取的補(bǔ)救措施。
在UML用例圖中,用橢圓來表示用例,并將用例的名稱放在橢圓的中心或橢圓下面的中間位置。人形符號(hào)用來表示角色(用戶)。角色和用例之間的關(guān)系使用簡(jiǎn)單的線段來描述,表示角色可以操作此用例。
在UML用例圖中,用一個(gè)方框來表示系統(tǒng)的邊界。所有系統(tǒng)用例都放在框內(nèi),所有動(dòng)作者都位于框外。動(dòng)作者和用例之間用直線相連。方框內(nèi)的每一件事物都是系統(tǒng)的一部分,方框外的每一件事物都是系統(tǒng)的外部。用例圖也可以表示方框內(nèi)的系統(tǒng)用例之間的關(guān)系,最常見的是“使用關(guān)系”,用帶箭頭的直線來表示,箭頭指向被使用的用例。還有一種關(guān)系是擴(kuò)展關(guān)系,用來表示繼承。
【編輯推薦】