我獨(dú)不解中國人何以于舊狀況那么心平氣和;于較新的機(jī)運(yùn)就這么疾首蹙額;于已成之局那么委曲求全;于初興之事就這么求全責(zé)備?
——魯迅
引子
前段時間和一個朋友在MSN上聊到UML,他一聲嘆息:“知道UML是好東西但是用不起來。嘗試過,結(jié)果領(lǐng)導(dǎo)要求文檔中要充分使用UML,事無巨細(xì)皆UML,結(jié)果本來很簡單的一份設(shè)計文檔加了一堆圖。評審的時候團(tuán)隊(duì)還有牛人指出UML圖中這里的菱形應(yīng)該是實(shí)心的,那里的要用半個箭頭… …結(jié)果開會大部分時間都在炒圖怎么畫。領(lǐng)導(dǎo)覺得這也沒帶來什么好處,同事們樂得擺脫,后來就不了了之了”
然后順便抱怨了我一下: “你給我推薦的《UML Distilled》也不怎么樣… …”
這個抱怨讓我很惱火,斷定他看得是中文版,果然!我毅然用貨到付款的方式為他定了一本英文影印版《UML Distilled》.問題還要解決, 故有此文
- 為什么要用UML
- 定位:怎么用UML
- UML規(guī)范=束縛?
- UML第一步
為什么要用UML?
1970年以前,軟件開發(fā)人員把軟件開發(fā)工作比作探險活動,但是由于系統(tǒng)日趨復(fù)雜,個人英雄主義的時代在軟件危機(jī)的爆發(fā)中宣告終結(jié)。危機(jī)引出了工程化方法,并催生了各種圖形符號工具。面向?qū)ο罄碚摮霈F(xiàn)之后,相關(guān)設(shè)計方法層出不窮,存在多種設(shè)計格式。
多種設(shè)計格式帶來交流的不便,溝通的障礙,一個統(tǒng)一的建模語言需求已經(jīng)是迫在眉睫。所以可以這樣講,UML的意義不在于它提供的內(nèi)容而在于它的規(guī)范性和統(tǒng)一性。為了得到更好的設(shè)計我們需要更好的溝通,更好的溝通需要基于共同的語言進(jìn)行,方便溝通這是創(chuàng)建UML的初衷,也是應(yīng)該是使用UML最佳理由。后面的論述中希望你不要忘記了我們最初是為什么而出發(fā)的
UML還繼承了圖形建模語言(graphical modeling language )的優(yōu)良傳統(tǒng):高屋建瓴的抽象能力。而普通的編程語言恰恰缺乏這種描述設(shè)計思想的能力:"The fundamental driver behind them all is that programming languages are not at a high enough level of abstraction to facilitate discussions about design."抽象化主要是為了使復(fù)雜度降低,以得到論域中較簡單的概念,好讓人們能夠控制其過程或以綜觀的角度來了解許多特定的事態(tài)。抽象過程必然包含舍棄的細(xì)枝末節(jié),是一個裁剪的過程。抽象的結(jié)果,決定于從什么角度上來抽象,抽象的角度取決于分析問題的目的。
關(guān)于視角,《UML Distilled》有一段精彩的三層視角的論述,這段文字被無數(shù)設(shè)計模式、領(lǐng)域建模的書引了又引,比如《Design Patterns Explained》。《視角的力量--再說OO設(shè)計原則 》一文中我曾經(jīng)探討過下面的三個問題:1.為什么我們過早的糾纏于細(xì)節(jié)?問題的本質(zhì)是什么?2.救命稻草--Martin Fowler的三層視角理論3.三層視角--回頭再說OO設(shè)計原則文中的最后我完整引用了作者三層視角的論述,我是把它作為走出思維泥沼的明燈來看的。這里不再贅述,詳情請查看:源文檔 <http://www.cnblogs.com/me-sa/archive/2008/04/15/ooview.html>在第三版中,作者對視角的觀點(diǎn)做了修正:規(guī)約視角和實(shí)現(xiàn)視角之間的界限是很難劃分清楚的.實(shí)踐過程中發(fā)現(xiàn)也沒有做這種界限的劃分的必要.
出處:回頭再說
責(zé)任編輯:bluehearts
上一頁 下一頁 聚焦UML實(shí)踐第一步 [2]
◎進(jìn)入論壇網(wǎng)絡(luò)編程版塊參加討論
|