使用 UML 作為工程語言
為什么要建模
??????必須到用戶中去,以一種訓(xùn)練有素的方式訪問客戶,揭示系統(tǒng)的真實需求;
??????如果正在建造一座大廈,有時需要從宏觀的角度上讓投資者看到大廈的樣子,感受到大廈的整體效果;而有時也需要認(rèn)真的思考細(xì)節(jié)問題,例如復(fù)雜棘手的管道鋪設(shè);
??????對于很多軟件工程師來說,從考慮實現(xiàn)到編寫代碼,其實不需要花費太多時間,就是思考和編碼。程序員會在心中做一些建模,甚至在白板或者草稿上模擬出一些想法。然而別人對這些概念容器產(chǎn)生誤解;同時閱讀某種層次分布中的代碼,雖然可以推斷出它的大概意思,但我們卻很難直接領(lǐng)會它,一旦編碼者另尋高就,信息將會永遠(yuǎn)丟失。

圖形概念
元素:如類、主動類、接口、構(gòu)件、協(xié)作、用況、制品、結(jié)點、包、注釋 等;
元素關(guān)系:如依賴·dependency、關(guān)聯(lián)·association、泛化·generalization、實現(xiàn)·realization
元素與關(guān)系組成的圖:如結(jié)構(gòu)圖:類圖、構(gòu)件圖、部署圖、制品圖、對象圖;行為圖:交互圖(時間順序圖、通信圖)、狀態(tài)圖、活動圖、用況圖;
具體應(yīng)用場景
軟件工程中,在需求溝通階段,最重要的就是畫出描述各類用戶及其使用場景的 use case;
再根據(jù)每種用戶場景,依次設(shè)計 design view 表達(dá)了現(xiàn)實世界中的問題及其解決方案:
首先畫出活動圖,盡量確定每個 use case 所包含的活動;
再畫出通信圖,盡量確定每個活動中,每個收發(fā)信息的領(lǐng)域模型,和信息的內(nèi)容;
確定領(lǐng)域模型后,我們需要為各個模型和消息添加時間維度,畫出領(lǐng)域模型之間的時序圖,進(jìn)一步梳理每個 use case 業(yè)務(wù)流程;
此時我們已經(jīng)盡可能地明白了領(lǐng)域模型之間的關(guān)系邏輯,現(xiàn)在我們可能需要對某些復(fù)雜的領(lǐng)域模型進(jìn)一步畫狀態(tài)圖(如訂單)從而了解它所存在的業(yè)務(wù)復(fù)雜性;
還有其他進(jìn)一步的UML應(yīng)用場景,未完待續(xù)...