暢談UML面向?qū)ο蟮姆治雠c設(shè)計(jì)
本文和大家重點(diǎn)討論一下UML面向?qū)ο蟮姆治雠c設(shè)計(jì),在UML面向?qū)ο蠓治觯∣OA)過(guò)程中,強(qiáng)調(diào)的是在問(wèn)題領(lǐng)域內(nèi)發(fā)現(xiàn)和描述對(duì)象(或概念)。而設(shè)計(jì)強(qiáng)調(diào)的是定義軟件對(duì)象以及它們?nèi)绾螀f(xié)作以實(shí)現(xiàn)需求。
UML和模式應(yīng)用 UML面向?qū)ο蟮姆治雠c設(shè)計(jì)
1.1、什么是分析和設(shè)計(jì)
分析(analysis):強(qiáng)調(diào)的是對(duì)問(wèn)題和需求的調(diào)查研究,而不是解決方案,即應(yīng)該如何使用系統(tǒng),系統(tǒng)應(yīng)該具有哪些功能。
設(shè)計(jì)(design):強(qiáng)調(diào)的是滿足需求的概念上的解決方案(在軟件和硬件方面),而不是其實(shí)現(xiàn)。最終,分析可以實(shí)現(xiàn),而實(shí)現(xiàn)則表達(dá)了真實(shí)和完整的設(shè)計(jì)。
分析和設(shè)計(jì)一詞***加以限制,如UML面向?qū)ο蟮脑O(shè)計(jì)、數(shù)據(jù)庫(kù)設(shè)計(jì)。
有益的分析和設(shè)計(jì)可以概括為:做正確的事(分析)和正確地做事(設(shè)計(jì))。
1.2、什么是UML面向?qū)ο蟮姆治龊驮O(shè)計(jì)
在UML面向?qū)ο蠓治觯∣OA)過(guò)程中,強(qiáng)調(diào)的是在問(wèn)題領(lǐng)域內(nèi)發(fā)現(xiàn)和描述對(duì)象(或概念)。如,明確一些概念,這些概念也許對(duì)應(yīng)著一些對(duì)象。
在UML面向?qū)ο笤O(shè)計(jì)(OOD)過(guò)程中,強(qiáng)調(diào)的是定義軟件對(duì)象以及它們?nèi)绾螀f(xié)作以實(shí)現(xiàn)需求。如,明確類的屬性和方法。
1.3、UML面向?qū)ο蠓治龊驮O(shè)計(jì)的大概步驟
1)、定義用例
需求分析可能包括人們?nèi)绾问褂脩?yīng)用的情節(jié)或場(chǎng)景,這些情節(jié)或場(chǎng)景可以被編寫(xiě)成用例。
2)、定義領(lǐng)域模型
OOA關(guān)注從對(duì)象的角度創(chuàng)建領(lǐng)域描述。OOA需要鑒別重要的概念、屬性和關(guān)聯(lián)。
OOA的結(jié)果可以表示為領(lǐng)域模型(domainmodel),在領(lǐng)域模型中展示重要的領(lǐng)域概念或?qū)ο蟆?br />
需要注意的是:領(lǐng)域模型并不是對(duì)軟件對(duì)象的描述,它是真實(shí)世界領(lǐng)域中的概念和想像可視化。因此也被稱為概念對(duì)象模型。
3)分配對(duì)象職責(zé)并繪制交互圖
OOD關(guān)注軟件對(duì)象的定義----他們的職責(zé)和協(xié)作。常用UML順序圖來(lái)描述。
4)定義設(shè)計(jì)類圖
除了在交互圖中顯示對(duì)象協(xié)作的動(dòng)態(tài)視圖外,還可以用設(shè)計(jì)類圖來(lái)有效的表示類定義的靜態(tài)視圖。這樣可以描述類的屬性和方法。
1.4、什么是UML
統(tǒng)一建模語(yǔ)言(UML)是描述、構(gòu)造和文檔化系統(tǒng)制品的可視化語(yǔ)言。
UML是一個(gè)龐大的語(yǔ)法體系,UML定義了各種UML簡(jiǎn)檔(UMLprofile),這些簡(jiǎn)檔專用于某些常用主題領(lǐng)域的表示法子集,例如對(duì)EJB使用EJB簡(jiǎn)檔。
1.5應(yīng)用UML面向?qū)ο蟮娜N方式
1)、UML作為草圖----用于探討問(wèn)題或解決方案空間的復(fù)雜部分。
2)、UML作為藍(lán)圖----相對(duì)詳細(xì)的設(shè)計(jì)圖,用于:逆向工程或代碼生成(前向工程)。
3)、UML作為編程語(yǔ)言----用UML完成軟件系統(tǒng)可執(zhí)行規(guī)格說(shuō)明,代碼可能被自動(dòng)生成。
如果不具備良好的OO設(shè)計(jì)和編程技能,那么即使使用UML,也只能畫(huà)出拙劣的設(shè)計(jì)。
敏捷建模(agilemodeling)強(qiáng)調(diào)了UML作為草圖的方式,這也是使用UML的普通方式,而且通常對(duì)時(shí)間投入具有高回報(bào)。
1.5應(yīng)用UML面向?qū)ο蟮娜N透視圖
1)、概念透視圖:用圖來(lái)描述現(xiàn)實(shí)世界或關(guān)注領(lǐng)域中的事物。
2)、規(guī)格說(shuō)明(軟件)透視圖:用圖來(lái)描述軟件抽象物或具有規(guī)格說(shuō)明和接口的構(gòu)建,但并不約定特定的實(shí)現(xiàn)。
3)、實(shí)現(xiàn)(軟件)透視圖:用圖來(lái)描述特定技術(shù)(如Java)中的軟件實(shí)現(xiàn)。
1.6不同透視圖中“類”的含義
以上三種透視圖中“類”的含義分別為:
1)、概念類----現(xiàn)實(shí)世界中的概念或事物。
2)、軟件類----軟件構(gòu)建在規(guī)格說(shuō)明或?qū)崿F(xiàn)透視圖中的類。
3)、實(shí)現(xiàn)圖----特定OO語(yǔ)言中類。
1.7可視化建模的優(yōu)點(diǎn)
可視化的工作方式更容易理解和開(kāi)發(fā)大腦,快速掌握符號(hào)、單元及關(guān)系。
圖可以幫助我們更為遍歷的觀察全景,發(fā)現(xiàn)軟件元素或分析之間的聯(lián)系,同時(shí)允許我們忽略和隱藏旁枝末節(jié)。這是UML或其他圖形化語(yǔ)言的本質(zhì)價(jià)值。
【編輯推薦】
- 詳解以UML面向?qū)ο蠼榛A(chǔ)的幾種開(kāi)發(fā)模式
- UML構(gòu)件圖的設(shè)計(jì)步驟和應(yīng)用說(shuō)明
- UML面向?qū)ο笾R(shí)入門(mén)
- 淺析UML面向?qū)ο蟮南到y(tǒng)分析設(shè)計(jì)方法
- 解析UML面向?qū)ο蠓治雠c建模中交互圖