暢談UML面向對象的分析與設計
本文和大家重點討論一下UML面向對象的分析與設計,在UML面向對象分析(OOA)過程中,強調的是在問題領域內發現和描述對象(或概念)。而設計強調的是定義軟件對象以及它們如何協作以實現需求。
UML和模式應用 UML面向對象的分析與設計
1.1、什么是分析和設計
分析(analysis):強調的是對問題和需求的調查研究,而不是解決方案,即應該如何使用系統,系統應該具有哪些功能。
設計(design):強調的是滿足需求的概念上的解決方案(在軟件和硬件方面),而不是其實現。最終,分析可以實現,而實現則表達了真實和完整的設計。
分析和設計一詞***加以限制,如UML面向對象的設計、數據庫設計。
有益的分析和設計可以概括為:做正確的事(分析)和正確地做事(設計)。
1.2、什么是UML面向對象的分析和設計
在UML面向對象分析(OOA)過程中,強調的是在問題領域內發現和描述對象(或概念)。如,明確一些概念,這些概念也許對應著一些對象。
在UML面向對象設計(OOD)過程中,強調的是定義軟件對象以及它們如何協作以實現需求。如,明確類的屬性和方法。
1.3、UML面向對象分析和設計的大概步驟
1)、定義用例
需求分析可能包括人們如何使用應用的情節或場景,這些情節或場景可以被編寫成用例。
2)、定義領域模型
OOA關注從對象的角度創建領域描述。OOA需要鑒別重要的概念、屬性和關聯。
OOA的結果可以表示為領域模型(domainmodel),在領域模型中展示重要的領域概念或對象。
需要注意的是:領域模型并不是對軟件對象的描述,它是真實世界領域中的概念和想像可視化。因此也被稱為概念對象模型。
3)分配對象職責并繪制交互圖
OOD關注軟件對象的定義----他們的職責和協作。常用UML順序圖來描述。
4)定義設計類圖
除了在交互圖中顯示對象協作的動態視圖外,還可以用設計類圖來有效的表示類定義的靜態視圖。這樣可以描述類的屬性和方法。
1.4、什么是UML
統一建模語言(UML)是描述、構造和文檔化系統制品的可視化語言。
UML是一個龐大的語法體系,UML定義了各種UML簡檔(UMLprofile),這些簡檔專用于某些常用主題領域的表示法子集,例如對EJB使用EJB簡檔。
1.5應用UML面向對象的三種方式
1)、UML作為草圖----用于探討問題或解決方案空間的復雜部分。
2)、UML作為藍圖----相對詳細的設計圖,用于:逆向工程或代碼生成(前向工程)。
3)、UML作為編程語言----用UML完成軟件系統可執行規格說明,代碼可能被自動生成。
如果不具備良好的OO設計和編程技能,那么即使使用UML,也只能畫出拙劣的設計。
敏捷建模(agilemodeling)強調了UML作為草圖的方式,這也是使用UML的普通方式,而且通常對時間投入具有高回報。
1.5應用UML面向對象的三種透視圖
1)、概念透視圖:用圖來描述現實世界或關注領域中的事物。
2)、規格說明(軟件)透視圖:用圖來描述軟件抽象物或具有規格說明和接口的構建,但并不約定特定的實現。
3)、實現(軟件)透視圖:用圖來描述特定技術(如Java)中的軟件實現。
1.6不同透視圖中“類”的含義
以上三種透視圖中“類”的含義分別為:
1)、概念類----現實世界中的概念或事物。
2)、軟件類----軟件構建在規格說明或實現透視圖中的類。
3)、實現圖----特定OO語言中類。
1.7可視化建模的優點
可視化的工作方式更容易理解和開發大腦,快速掌握符號、單元及關系。
圖可以幫助我們更為遍歷的觀察全景,發現軟件元素或分析之間的聯系,同時允許我們忽略和隱藏旁枝末節。這是UML或其他圖形化語言的本質價值。
【編輯推薦】