學(xué)習(xí)c++必不可少UML,UML從考慮系統(tǒng)的不同角度出發(fā),定義了用例圖、類(lèi)圖、對(duì)象圖、狀態(tài)圖、活動(dòng)圖、序列圖、協(xié)作圖、構(gòu)件圖、部署圖等9種圖。這些圖從不同的側(cè)面對(duì)系統(tǒng)進(jìn)行描述。系統(tǒng)模型將這些不同的側(cè)面綜合成一致的整體,便于系統(tǒng)的分析和構(gòu)造。盡管UML和其它開(kāi)發(fā)工具還會(huì)設(shè)計(jì)出許多派生的視圖,但上述這些圖和其它輔助性的文檔是軟件開(kāi)發(fā)人員所見(jiàn)的最基本的構(gòu)造。
用例圖。
用例圖是用來(lái)描述用戶需求的,從用戶的角度來(lái)描述系統(tǒng)的功能,并指出各個(gè)執(zhí)行者。強(qiáng)調(diào)誰(shuí)在使用,系統(tǒng)的執(zhí)行者是誰(shuí)。
【用途】:幫助開(kāi)發(fā)團(tuán)隊(duì)以一種可視化的方式理解系統(tǒng)的功能需求。
類(lèi)圖。
用來(lái)定義系統(tǒng)中的類(lèi),包括描述類(lèi)的結(jié)構(gòu)和類(lèi)之間的關(guān)系。類(lèi)圖的主要作用于描述系統(tǒng)的靜態(tài)結(jié)構(gòu)。類(lèi)加上他們之間的關(guān)系就構(gòu)成了類(lèi)圖,類(lèi)圖中還可以包含接口、包等元素,也可以包括對(duì)象、鏈等實(shí)例。
對(duì)象圖。
對(duì)象圖是類(lèi)圖的一個(gè)實(shí)例,描述了系統(tǒng)在具體時(shí)間點(diǎn)上所包含的對(duì)象以及各個(gè)對(duì)象之間的關(guān)系。
狀態(tài)圖。
狀態(tài)圖說(shuō)明對(duì)象在它的生命周期中響應(yīng)事件所經(jīng)歷的狀態(tài)序列,以及它們對(duì)那些事件的響應(yīng)。
構(gòu)件圖。
構(gòu)件圖用來(lái)描述代碼構(gòu)件的物理結(jié)構(gòu)以及構(gòu)件之間的依賴關(guān)系。一個(gè)構(gòu)件可以是一個(gè)資源文件、一個(gè)二進(jìn)制文件或者已給可執(zhí)行文件。
實(shí)施圖(部署圖)。
用來(lái)定義了系統(tǒng)中硬件的物理體系結(jié)構(gòu),用來(lái)描述實(shí)際的物理設(shè)備以及它們之間的連接關(guān)系。
順序圖(序列圖)。
描述對(duì)象之間的交互順序,著重體現(xiàn)對(duì)象之間消息傳遞的時(shí)間順序,強(qiáng)調(diào)了對(duì)象之間消息的發(fā)送順序,同時(shí)也顯示了對(duì)象之間的交互過(guò)程。
協(xié)作圖。
協(xié)作圖是一種交互圖,強(qiáng)調(diào)的是發(fā)送和接受消息的對(duì)象之間的組織結(jié)構(gòu)。
協(xié)作圖主要描述協(xié)作對(duì)象的交互和鏈接。
顯示對(duì)象間的連接以及對(duì)象之間如何發(fā)送消息。
協(xié)作圖可以表示類(lèi)操作的實(shí)現(xiàn)。
活動(dòng)圖。
概述系統(tǒng)的動(dòng)態(tài)行為,包括活動(dòng)狀態(tài),活動(dòng)狀態(tài)是指業(yè)務(wù)用例的一個(gè)執(zhí)行步驟或一個(gè)操作,不是普通對(duì)象的狀態(tài)。活 動(dòng) 圖適合描述在沒(méi)有外部事件觸發(fā)的情況下,系統(tǒng)內(nèi)部的邏輯執(zhí)行過(guò)程,否則狀態(tài)圖更容易描述類(lèi)似與傳統(tǒng)意義上的流程圖。業(yè)務(wù)建模時(shí),用于詳述業(yè)務(wù)用例,描述一項(xiàng)業(yè)務(wù)的執(zhí)行過(guò)程設(shè)計(jì)時(shí),描述操作的流程。
下面在援引一位老鳥(niǎo)的文章 http://blog.csdn.net/fengart/article/details/1588366
3. UML的特點(diǎn)
(1)統(tǒng)一標(biāo)準(zhǔn)。
UML融合了當(dāng)前一些流行的面向?qū)ο箝_(kāi)發(fā)方法的主要概念和技術(shù),成為一種面向?qū)ο蟮臉?biāo)準(zhǔn)化的統(tǒng)一建模語(yǔ)言,結(jié)束了以往各種方法的建模語(yǔ)言的不一致和差別。
UML提供了標(biāo)準(zhǔn)的面向?qū)ο蟮哪P驮氐亩x和表示法,以及對(duì)模型的表示法的規(guī)定,使得對(duì)系統(tǒng)的建模有章可循,有標(biāo)準(zhǔn)的語(yǔ)言工具可用,有利于保質(zhì)保量地建立起軟件系統(tǒng)模型。
UML己經(jīng)成為工業(yè)標(biāo)準(zhǔn)化組織OMG的正式標(biāo)準(zhǔn),OMG將負(fù)責(zé)語(yǔ)言標(biāo)準(zhǔn)的進(jìn)一步的開(kāi)發(fā)。UML在統(tǒng)一和標(biāo)準(zhǔn)化方面的努力,將有利于建模語(yǔ)言本身的發(fā)展,也有利于工業(yè)化應(yīng)用。
(2)面向?qū)ο蟆?/p>
UML支持面向?qū)ο蠹夹g(shù)的主要概念。UML提供了一批基本的模型元素的表示圖形和方法,能簡(jiǎn)潔明了地表達(dá)面向?qū)ο蟮母鞣N概念和模型元素。
(3)可視化、表示能力強(qiáng)大。
UML是一種圖形化語(yǔ)言,系統(tǒng)的邏輯模型或?qū)崿F(xiàn)模型都能用UML的模型圖形清晰地表示。UML不只是一堆圖形符號(hào),在每一個(gè)UML的圖形表示符號(hào)背后,都有良好定義的語(yǔ)義。
UML還可以處理與軟件的說(shuō)明和文檔有關(guān)的問(wèn)題,包括需求說(shuō)明、體系結(jié)構(gòu)、設(shè)計(jì)、源代碼、項(xiàng)目計(jì)劃、測(cè)試、原型、發(fā)布等。
UML提供了語(yǔ)言的擴(kuò)展機(jī)制,用戶可以根據(jù)需求增加定義自己的構(gòu)造型、標(biāo)記值和約束等。
UML的強(qiáng)大表示能力使它可以用于各種復(fù)雜類(lèi)型的軟件系統(tǒng)的建模。
(4)獨(dú)立于過(guò)程。
UML是系統(tǒng)建模語(yǔ)言,獨(dú)立于開(kāi)發(fā)過(guò)程。雖然UML與Rational統(tǒng)一過(guò)程配合使用,將發(fā)揮強(qiáng)大的效用,但是UML也可以在其他面向?qū)ο蟮拈_(kāi)發(fā)過(guò)程中使用,甚至在常規(guī)的軟件生命周期法中使用。
(5)容易掌握使用。
UML的概念明確,建模表示法簡(jiǎn)潔明了,圖形結(jié)構(gòu)清晰,容易掌握使用。學(xué)習(xí)UML應(yīng)著重學(xué)習(xí)它的三方面的主要內(nèi)容:UML的基本模型元素,把這些模型元素組織在一起的規(guī)則,UML語(yǔ)言中的公共機(jī)制。只要具備一定的軟件工程和面向?qū)ο蠹夹g(shù)的基礎(chǔ)知識(shí),通過(guò)運(yùn)用UML建立實(shí)際問(wèn)題的系統(tǒng)模型的實(shí)踐,很快就能掌握和熟悉UML。
4. UML的用途
使用UML進(jìn)行軟件系統(tǒng)的分析與設(shè)計(jì),能夠加速軟件開(kāi)發(fā)的進(jìn)程,提高代碼的質(zhì)量,支持變動(dòng)的業(yè)務(wù)需求。UML適用于各種大小規(guī)模的軟件系統(tǒng)項(xiàng)目,能促進(jìn)軟件復(fù)用,方便地集成已有的系統(tǒng)軟件資源。使用UML將有助于處理軟件開(kāi)發(fā)中的各種風(fēng)險(xiǎn)。UML的這些特點(diǎn)和優(yōu)點(diǎn)使它獲得了計(jì)算機(jī)業(yè)界和越來(lái)越多的軟件人員的青睞。
UML不是一個(gè)獨(dú)立的軟件工程方法,而是面向?qū)ο筌浖こ谭椒ㄖ械囊粋€(gè)部分。UML只是一種標(biāo)準(zhǔn)的系統(tǒng)分析和設(shè)計(jì)的語(yǔ)言,用于系統(tǒng)的建模。UML適用于對(duì)各類(lèi)軟件系統(tǒng)的建模,從應(yīng)用系統(tǒng)到計(jì)算機(jī)系統(tǒng)的支持軟件,從一般的企業(yè)的信息管理系統(tǒng)到基于WEB的分布式應(yīng)用系統(tǒng),甚至實(shí)時(shí)系統(tǒng)。
UML不是程序設(shè)計(jì)語(yǔ)言,不能用來(lái)直接書(shū)寫(xiě)程序,實(shí)現(xiàn)系統(tǒng)。UML所建立的系統(tǒng)模型(邏輯模型和實(shí)現(xiàn)模型),必須轉(zhuǎn)換為某個(gè)程序設(shè)計(jì)語(yǔ)言的源代碼程序,然后經(jīng)過(guò)該語(yǔ)言的編譯系統(tǒng)生成可執(zhí)行的軟件系統(tǒng)。但是,用UML建立系統(tǒng)模型可以很好地支持軟件開(kāi)發(fā)的前向工程(Forward engineering)和逆向工程(Reverse engineering)。[2]