解析軟件工程的UML建模方法與技術(shù)
本節(jié)和大家一起學(xué)習(xí)一下軟件工程的UML建模方法與技術(shù),主要包括UML統(tǒng)一建模的概念,UML的發(fā)展,UML的組成與優(yōu)勢(shì)。相信通過本節(jié)的學(xué)習(xí)你對(duì)UML建模一定會(huì)有深刻的認(rèn)識(shí)。
軟件工程的UML建模方法與技術(shù)
論文分析了UML的概念,特點(diǎn)以及組成,指出了UML在應(yīng)用中的特點(diǎn)。通過UML可以很好的應(yīng)用其圖形化的特征,輔助進(jìn)行系統(tǒng)的建模與分析,介紹了兩種開發(fā)應(yīng)用的建模工具,***指出應(yīng)用學(xué)習(xí)UML的難點(diǎn),使用UML應(yīng)該注意的地方,可以起到很好的借鑒作用。
0引言
UML這三個(gè)字母的全稱是Unified Modeling Language,即統(tǒng)一建模語(yǔ)言,簡(jiǎn)單地說就是一種有特殊用途的語(yǔ)言。其實(shí)有很多內(nèi)容文字是無(wú)法表達(dá)的。比如建筑界有一套標(biāo)準(zhǔn)來(lái)描述,來(lái)輔助表達(dá)清楚建筑的設(shè)計(jì),就是建筑設(shè)計(jì)圖紙。同樣的情況在軟件開發(fā)過程中,特別是當(dāng)前的數(shù)據(jù)庫(kù)看軟件工程方面,也需要一套標(biāo)準(zhǔn)來(lái)輔助軟件開發(fā)工作。UML就是其中的一種標(biāo)準(zhǔn),(注意并不是唯一標(biāo)準(zhǔn),只是UML是比較推崇的一種標(biāo)準(zhǔn))雖然UML并不是官方的標(biāo)準(zhǔn),也沒有法律規(guī)定在軟件開發(fā)中一定要用UML,但是通過妥善使用UML在內(nèi)的各種標(biāo)準(zhǔn),往往能夠提高軟件開發(fā)的水平。UML可以實(shí)現(xiàn)大型復(fù)雜系統(tǒng)各種成分描述的可視化、說明并構(gòu)造系統(tǒng)模型,以及建立各種所需的文檔,它是一種定義良好、易于表達(dá)、功能強(qiáng)大且普遍適用的建模語(yǔ)言。
1統(tǒng)一建模的概念
現(xiàn)代的軟件開發(fā)采用面向?qū)ο蟮挠^點(diǎn)進(jìn)行建模。按照這種方法,所有軟件系統(tǒng)都用對(duì)象或類作為其主要構(gòu)造塊。對(duì)象通常是從問題空間或解空間的詞匯中抽取出來(lái)的東西;類是對(duì)具有共同性質(zhì)的一組對(duì)象(從建模者的視角)的描述。而UML正式這種面向?qū)ο蠼y(tǒng)一建模的方法。UML合并了許多面向?qū)ο蠓椒ㄖ斜黄毡榻邮艿母拍睿瑢?duì)每一種概念它都給出了清晰的定義、表示法和有關(guān)術(shù)語(yǔ)。使用UML可以對(duì)已有的用各種方法建立的模型進(jìn)行描述,并比原來(lái)的方法描述得更好。
(1)在應(yīng)用領(lǐng)域方面。UML適用于各種應(yīng)用領(lǐng)域的建模,包括大型的、復(fù)雜的、實(shí)時(shí)的、分布式的、集中式數(shù)據(jù)或計(jì)算的、嵌入式的系統(tǒng)。
(2)在實(shí)現(xiàn)的編程語(yǔ)言和開發(fā)平臺(tái)方面。UML可應(yīng)用于運(yùn)行各種不同的編程實(shí)現(xiàn)語(yǔ)言和開發(fā)平臺(tái)的系統(tǒng)。其中包括程序設(shè)計(jì)語(yǔ)言、數(shù)據(jù)庫(kù)、4GL、組織文檔及固件等。
(3)在開發(fā)全過程方面。UML是一個(gè)建模型語(yǔ)言,不是對(duì)開發(fā)過程的細(xì)節(jié)進(jìn)行描述的工具。就像通用程序設(shè)計(jì)語(yǔ)言可以用于許多風(fēng)格的程序設(shè)計(jì)一樣,UML適用于大部分現(xiàn)有的或新出現(xiàn)的開發(fā)過程。尤其適用于迭代式增量開發(fā)過程。
2UML建模的發(fā)展
從二十世紀(jì)八十年代初期開始眾多的方法學(xué)家都在嘗試用不同的方法進(jìn)行面向?qū)ο蟮姆治雠c設(shè)計(jì)。有少數(shù)幾種方法開始在一些關(guān)鍵性的項(xiàng)目中發(fā)揮作用包括Booch OMTShlaer/Mellor Odell/Martin RDD OBA 和Objectory。到了二十世紀(jì)九十年代中期出現(xiàn)了第二代面向?qū)ο蠓椒ǎ挠蠦ooch'94 OMT的沿續(xù)以及Fusion等。此時(shí)面向?qū)ο蠓椒ㄒ呀?jīng)成為軟件分析和設(shè)計(jì)方法的主流。這些方法所做的最重要的嘗試是在程序設(shè)計(jì)藝術(shù)與計(jì)算機(jī)科學(xué)之間尋求合理的平衡,來(lái)進(jìn)行復(fù)雜軟件的開發(fā)。由于Booch 和OMT 方法都已經(jīng)獨(dú)自成功地發(fā)展成為世界上主要的面向?qū)ο蠓椒ǎ虼薐im Rumbaugh 和Grady Booch 在1994 年10 月共同合作把他們的工作統(tǒng)一起來(lái)。到1995 年成為統(tǒng)一方法Unified Method 版本0.8 隨后Ivar Jacobson 加入并采用。
UML 版本1.0 被提交給OMG 組織作為軟件建模語(yǔ)言標(biāo)準(zhǔn)化的候選其后的半年多時(shí)間里一些重要的軟件開發(fā)商和系統(tǒng)集成商都成為UML 伙伴,如Mircrosoft IBM HP等。它們積極地使用UML 并提出反饋意見。***于1997 年9 月再次提交給OMG 組織于1997 年11 月7 日正式被OMG 采納作為業(yè)界標(biāo)準(zhǔn)。現(xiàn)在OMG 已經(jīng)把UML 作為公共可得到的規(guī)格說明,提交給國(guó)際標(biāo)準(zhǔn)化組織ISO 進(jìn)行國(guó)際標(biāo)準(zhǔn)化。
3 UML建模的組成與優(yōu)勢(shì)
UML由圖和元模型組成。在這里圖是語(yǔ)法,元模型是語(yǔ)義。UML主要地包括了三個(gè)基本構(gòu)造塊:事物(Things)、關(guān)系(Relationships)和圖(Diagrams)。UML在系統(tǒng)模型分析與設(shè)計(jì)中有著良好的優(yōu)勢(shì),主要體現(xiàn)在如下的一些方面:
(1)完全獨(dú)立于過程。它是系統(tǒng)建模語(yǔ)言,完全的獨(dú)立在開發(fā)過程之外。
(2)是面向?qū)ο蟮摹KС置嫦驅(qū)ο蠹夹g(shù)的主要概念,而且有許多模型元素的表示圖形和方法,能夠簡(jiǎn)潔地表達(dá)面向?qū)ο笾鞣N概念。
(3)易于掌握使用。這些所囊括的圖形結(jié)構(gòu)清晰,非常利于建模,也比較容易掌握。
(4)具有可視化的特點(diǎn)。UML模型圖可以清楚地表示系統(tǒng)的邏輯模型,這個(gè)特點(diǎn)非常適于復(fù)雜系統(tǒng)的建模。
(5)獨(dú)立于程序設(shè)計(jì)語(yǔ)言。用UML建立的軟件系統(tǒng)模型可以用Java、VC++、SmalltaIk等任何一種面向?qū)ο蟮某绦蛟O(shè)計(jì)來(lái)實(shí)現(xiàn)。
4UML建模詳細(xì)分析
4.1UML建模中的主要圖
圖是事物集合的分類,UML中包含多種圖:
(1)部署圖:部署圖定義系統(tǒng)中軟硬件的物理體系結(jié)構(gòu);
(2)順序圖:順序圖表示對(duì)象之間動(dòng)態(tài)合作的關(guān)系;
(3)活動(dòng)圖:活動(dòng)圖描述系統(tǒng)中各種活動(dòng)的執(zhí)行順序。
(4)組件圖:組件圖描述代碼部件的物理結(jié)構(gòu)以及各部件之間的依賴關(guān)系;
(5)類圖:類圖描述系統(tǒng)所包含的類、類的內(nèi)部結(jié)構(gòu)及類之間的關(guān)系;
(6)包圖:包圖表明包及其之間的依賴類圖;
(7)狀態(tài)圖:狀態(tài)圖描述一類對(duì)象的所有可能的狀態(tài)以及事件發(fā)生時(shí)狀態(tài)的轉(zhuǎn)移條件;
(8)協(xié)作圖:合作圖描述對(duì)象之間的協(xié)作關(guān)系;
(9)對(duì)象圖:對(duì)象圖是類圖的一個(gè)具體實(shí)例;
(10)用例圖:用例圖從用戶的角度出發(fā)描述系統(tǒng)的功能、需求,展示系統(tǒng)外部的各類角色與系統(tǒng)內(nèi)部的各種用例之間的關(guān)系;實(shí)際上UML的分析過程,就是這些圖的具體應(yīng)用。
【編輯推薦】
- 學(xué)習(xí)筆記 MES系統(tǒng)的UML建模方法
- 兩大開源UML建模工具UMLet和ArgoUML用法解析
- 學(xué)習(xí)筆記 UML建模語(yǔ)言的特點(diǎn)和應(yīng)用領(lǐng)域
- 免費(fèi)UML建模工具盡情體驗(yàn)
- UML建模工具Rose與PowerDesigner,兩款建模工具的對(duì)比

















