UML 作為藍圖

2003 年 5 月 28 日

長期以來,受工程影響的軟體流程一直尋求一種方法,可以用這種方法表達軟體設計,以便將設計移交給不同的群組撰寫程式碼,就像在建造橋樑時使用藍圖一樣。這將允許稀有且昂貴的軟體設計人員專注於藍圖,而許多較便宜的編碼人員則專注於建造。

因此,UmlAsBlueprint 是一種UmlMode,專注於完整性。在正向工程中,這個概念是設計人員開發藍圖,其工作是為程式設計人員建立詳細的設計以進行編碼。該設計應足夠完整,以便制定所有設計決策,而程式設計應作為一項相當直接的活動,幾乎不需要思考。設計人員可能是與程式設計人員相同的人,但通常設計人員是為程式設計人員團隊設計的資深開發人員。

在逆向工程中,藍圖旨在傳達有關程式碼的詳細資訊,無論是在紙本文檔中或作為互動式圖形瀏覽器。藍圖可以用圖形形式顯示類別的每個詳細資訊,讓開發人員更容易理解。

藍圖需要比草圖更精密的工具,才能處理任務所需的詳細資訊。專門的 CASE(電腦輔助軟體工程)工具屬於此類別(儘管 CASE 一詞已成為髒話,供應商現在試圖避免使用它。)正向工程工具支援繪製圖表,並備有儲存庫來儲存資訊。逆向工程工具會讀取原始碼,並從中解釋到儲存庫中,並產生圖表。像這樣可以進行正向和逆向工程的工具稱為雙向工具。

有些工具使用原始碼本身作為儲存庫,並使用圖表作為程式碼的圖形視窗。這些工具與程式設計的關聯性更高,而且通常會直接與程式設計編輯器整合。我喜歡將這些工具視為三向工具。