UML建?;A(chǔ)教程
本節(jié)向大家介紹一下UML建模,主要包括UML建模意義,歷史,特點(diǎn)和應(yīng)用領(lǐng)域等內(nèi)容,相信通過本文的學(xué)習(xí),你對UML建模一定會有全面的認(rèn)識。下面讓我們一起來學(xué)習(xí)UML建模的相關(guān)知識吧。
UML建模
一、為什么要學(xué)習(xí)UML?
UML是UnifiedModelingLanguage(統(tǒng)一建模語言)的簡稱。UML是對軟件密集型系統(tǒng)中的制品進(jìn)行可視化、詳述、構(gòu)造和文檔化的語言。制品{Artifact}是指軟件開發(fā)過程中產(chǎn)生的各種各樣的產(chǎn)物,如模型、源代碼、測試用例等。
◆UML建模可以達(dá)到以下目的:
◆使用模型可以更好地理解問題
◆使用模型可以加強(qiáng)人員之間的溝通
◆使用模型可以更早地發(fā)現(xiàn)錯(cuò)誤或疏漏的地方
◆使用模型可以獲得設(shè)計(jì)結(jié)果
◆模型為最后的代碼提供依據(jù)
二、UML建模的歷史
1997年,OMG組織(ObjectManagementGroup對象管理組織)發(fā)布了統(tǒng)一建模語言(UnifiedModelingLanguage,UML)。UML的目標(biāo)之一就是為開發(fā)團(tuán)隊(duì)提供標(biāo)準(zhǔn)通用的設(shè)計(jì)語言來開發(fā)和構(gòu)建計(jì)算機(jī)應(yīng)用。UML提出了一套IT專業(yè)人員期待多年的統(tǒng)一的標(biāo)準(zhǔn)建模符號。通過使用UML,這些人員能夠閱讀和交流系統(tǒng)架構(gòu)和設(shè)計(jì)規(guī)劃--就像建筑工人多年來所使用的建筑設(shè)計(jì)圖一樣。
2003年,UML已經(jīng)獲得了業(yè)界的認(rèn)同。在所見過的專業(yè)人員的簡歷中,75%都聲稱具備UML的知識。然而,在同絕大多數(shù)求職人員面談之后,可以明顯地看出他們并不真正了解UML。通常地,他們將UML用作一個(gè)術(shù)語,或?qū)ML一知半解。大家對UML缺乏理解的這種狀況,促進(jìn)我撰寫這篇關(guān)于UML1.4的快速入門文章。當(dāng)閱讀完本文時(shí),您還不具備足夠的知識可以在簡歷上聲稱自己掌握了UML,但是您已具有了進(jìn)一步鉆研該語言的良好起點(diǎn)。
三、UML建模的特點(diǎn)
◆UML的主要特點(diǎn)包括:
◆統(tǒng)一的標(biāo)準(zhǔn)
◆面向?qū)ο?。UML是支持面向?qū)ο筌浖_發(fā)的建模語言。
◆可視化、表現(xiàn)能力強(qiáng)
◆獨(dú)立于過程,UML不依賴于特定的軟件開發(fā)過程。
◆概念明確,建模表示法簡潔,圖形結(jié)構(gòu)清晰,容易掌握和使用。
四、UML建模中的視圖
UML中的視圖包括用例視圖(UseCaseView)、邏輯視圖(LogicalView)、實(shí)現(xiàn)視圖(ImplementationView)、進(jìn)程視圖(ProcessView)、部署視圖(DeploymentView)等,這5個(gè)視圖被稱作”4+1”視
圖.如下圖所示:
邏輯視圖。邏輯視圖關(guān)注功能,不僅包括用戶可見的功能,還包括為實(shí)現(xiàn)用戶功能而必須提供的"輔助功能模塊";它們可能是邏輯層、功能模塊等。
開發(fā)視圖。開發(fā)視圖關(guān)注程序包,不僅包括要編寫的源程序,還包括可以直接使用的第三方SDK和現(xiàn)成框架、類庫,以及開發(fā)的系統(tǒng)將運(yùn)行于其上的系統(tǒng)軟件或中間件。開發(fā)視圖和邏輯視圖之間可能存在一定的映射關(guān)系:比如邏輯層一般會映射到多個(gè)程序包等。
處理視圖。處理視圖關(guān)注進(jìn)程、線程、對象等運(yùn)行時(shí)概念,以及相關(guān)的并發(fā)、同步、通信等問題。處理視圖和開發(fā)視圖的關(guān)系:開發(fā)視圖一般偏重程序包在編譯時(shí)期的靜態(tài)依賴關(guān)系,而這些程序運(yùn)行起來之后會表現(xiàn)為對象、線程、進(jìn)程,處理視圖比較關(guān)注的正是這些運(yùn)行時(shí)單元的交互問題。
物理視圖。物理視圖關(guān)注"目標(biāo)程序及其依賴的運(yùn)行庫和系統(tǒng)軟件"最終如何安裝或部署到物理機(jī)器,以及如何部署機(jī)器和網(wǎng)絡(luò)來配合軟件系統(tǒng)的可靠性、可伸縮性等要求。物理視圖和處理視圖的關(guān)系:處理視圖特別關(guān)注目標(biāo)程序的動態(tài)執(zhí)行情況,而物理視圖重視目標(biāo)程序的靜態(tài)位置問題;物理視圖是綜合考慮軟件系統(tǒng)和整個(gè)IT系統(tǒng)相互影響的架構(gòu)視圖。#P#
五、UML建模工具
市面上UML建模工具很多,比較流行的有RationalRose,MicrosoftVisio、EnterpriseArchitect、VisualUML等?!禪ML建模-面向?qū)ο笤O(shè)計(jì)》系列文章使用的UML建模工具是EnterpriseArchitect7.0,此工具還是比較好用的。
六、UML的應(yīng)用領(lǐng)域
UML具有很廣泛的應(yīng)用領(lǐng)域,其中最常用的是為軟件系統(tǒng)建模,主要領(lǐng)域有:企業(yè)信息系統(tǒng)、銀行金融系統(tǒng)、電信、交通、國防、航空、零售領(lǐng)域、科學(xué)計(jì)算、分布式的基于Web的服務(wù)。UML還可以用來描述其他非軟件系統(tǒng),比如一個(gè)機(jī)構(gòu)的組成和機(jī)構(gòu)的工作流程等等。
七、UML的構(gòu)成
《UML建模-面向?qū)ο笤O(shè)計(jì)》系列文章描述了常見的一些UML圖,主要包括了用例圖(UseCaseDiagram)、類圖(ClassDiagram)、活動圖(ActivityDiagram)、時(shí)序圖(SequenceDiagram)、狀態(tài)圖(StatechartMachineDiagram)、部署圖(DeploymentDiagram)、業(yè)務(wù)處理模型(BusinessProcessModel)、數(shù)據(jù)建模(DataModelingDiagram)等等。
1、需求階段如何書寫UseCase
用例描述文檔的書寫是系統(tǒng)分析人員對用戶需求的深刻理解的體現(xiàn)。是后期時(shí)序圖和實(shí)際開發(fā)的重要依據(jù)。也可以對作為項(xiàng)目估算的依據(jù),以及根據(jù)UC復(fù)雜度和開發(fā)周期來衡量開發(fā)人員的工作效率。因此UC的書寫規(guī)范及其重要,就工作用的一些經(jīng)驗(yàn),比如書寫格式、書寫內(nèi)容及其注意事項(xiàng)與大家分享。
2、設(shè)計(jì)階段如何畫用例圖(Use-CaseDiagram)
例試圖描概括了用例中角色和系統(tǒng)之間的關(guān)系,描述了系統(tǒng)功能需求,角色和系統(tǒng)的交互以及系統(tǒng)的反應(yīng)。是客戶和開發(fā)人員全貌理解項(xiàng)目需求功能比較好的一個(gè)方式,也是后續(xù)功能迭代的依據(jù)和方向。
3、類與類之間的關(guān)系圖(ClassDiagram,UML圖)
本文針對類之間常用的關(guān)系進(jìn)行了簡單的描述,主要有:關(guān)聯(lián)關(guān)系、泛化、依賴、聚合和組合。
4、UML建模之活動圖介紹(ActivityDiagram)
活動圖描述的是對象活動的順序關(guān)系所遵循的規(guī)則,它著重表現(xiàn)的是系統(tǒng)的行為,而非系統(tǒng)的處理過程。活動圖能夠表示并發(fā)活動的情形,活動圖是面向?qū)ο蟮摹?/P>
5、UML建模之狀態(tài)圖(StatechartDiagram)
狀態(tài)圖重點(diǎn)在于描述對象的狀態(tài)及其狀態(tài)之間的轉(zhuǎn)移,狀態(tài)圖的基本元素主要有:狀態(tài)、轉(zhuǎn)移、動作、自身轉(zhuǎn)移、組合狀態(tài)、進(jìn)入節(jié)點(diǎn)、退出節(jié)點(diǎn)、歷史狀態(tài)、并發(fā)區(qū)域等,狀態(tài)中的事件分為調(diào)用事件(Call)、變化事件(Change)、時(shí)間事件(Time)和信號事件(Singal)。最后以實(shí)例對狀態(tài)對進(jìn)行了分析。
6、UML建模之時(shí)序圖(SequenceDiagram)
時(shí)序圖(SequenceDiagram)是顯示對象之間交互的圖,這些對象是按時(shí)間順序排列的。順序圖中顯示的是參與交互的對象及其對象之間消息交互的順序。時(shí)序圖中包括的建模元素主要有:對象(Actor)、生命線(Lifeline)、控制焦點(diǎn)(Focusofcontrol)、消息(Message)等等。最后,以課程創(chuàng)建功能演示一時(shí)序圖實(shí)例。
7、UML建模之業(yè)務(wù)處理模型(BusinessProcessModel,BPM)
業(yè)務(wù)處理模型是一組活動的集合,描述了活動從開始到結(jié)束在時(shí)間或者空間上的順序,以及輸入和輸出。業(yè)務(wù)處理模型最終輸出要能夠滿足業(yè)務(wù)需要。包括輸入、輸出、資源、消息和目標(biāo)等元素。最后以實(shí)例進(jìn)一步說明了業(yè)務(wù)邏輯模型。
8、UML建模之?dāng)?shù)據(jù)建模(DataModelDiagram)
主要介紹了數(shù)據(jù)庫建模所涉及建模元素,主要包括模式Schema、主鍵Primary、外鍵Foreignkey、關(guān)系Relationship、約束constraint、索引Index、觸發(fā)器Trigger、存儲過程StoredProcedure、視圖View等等,并配以實(shí)例加以說明。
八、總結(jié)
至此,《UML建模-面向?qū)ο笤O(shè)計(jì)》系列文章已經(jīng)寫完,UML建模也就告一段落,在整理這些文中的過程中,參考了許多國內(nèi)外有價(jià)值的文章,在此對這些文章的作者表示感謝。在寫這些文章的過程中也得到園子里朋友的鼓勵(lì)和支持,是你們的支持和鼓勵(lì)使的我寫文章更加有士氣和信心,在此表示感謝。希望《UML建模-面向?qū)ο笤O(shè)計(jì)》系列文章對園子里的朋友有幫助,并希望園子里的朋友批評指正。后續(xù)還會發(fā)布一些《Net設(shè)計(jì)模式》系列的文章,主要是以設(shè)計(jì)原理,實(shí)例,源碼的方式說明各個(gè)設(shè)計(jì)模式,請大家關(guān)注,再此感謝。
最后以一本UML書中的一個(gè)例子結(jié)束:
如果以建造房子比喻,那么學(xué)習(xí)UML的過程,就是學(xué)習(xí)如何從建筑工人成長為建筑師的過程。一個(gè)軟件工程師不能簡單地只是掌握堆砌磚瓦的技術(shù),還應(yīng)該有設(shè)計(jì)高樓大廈的能力。
【編輯推薦】