UML和模式應用(1):面向對象的分析與設計
學習筆記:1小時
1.一、什麼是分析和設計
分析(analysis):強調的是對問題和需求的調查研究,而不是解決方案,即應該如何使用系統,系統應該具備哪些功能。
設計(design):強調的是知足需求的概念上的解決方案(在軟件和硬件方面),而不是其實現。最終,分析能夠實現,而實現則表達了真實和完整的設計。
分析和設計一詞最好加以限制,如面向對象的設計、數據庫設計。
有益的分析和設計能夠歸納爲:作正確的事(分析)和正確地作事(設計)。
1.二、什麼是面向對象的分析和設計
在面向對象分析(OOA)過程當中,強調的是在問題領域內發現和描述對象(或概念)。如,明確一些概念,這些概念也許對應着一些對象。
在面向對象設計(OOD)過程當中,強調的是定義軟件對象以及它們如何協做以實現需求。如,明確類的屬性和方法。
1.三、分析和設計的大概步驟
1)、定義用例
需求分析可能包括人們如何使用應用的情節或場景,這些情節或場景能夠被編寫成用例。
2)、定義領域模型
OOA關注從對象的角度建立領域描述。OOA須要鑑別重要的概念、屬性和關聯。
OOA的結果能夠表示爲領域模型(domain model),在領域模型中展現重要的領域概念或對象。
須要注意的是:領域模型並非對軟件對象的描述,它是真實世界領域中的概念和想像可視化。所以也被稱爲概念對象模型。
3)分配對象職責並繪製交互圖
OOD關注軟件對象的定義----他們的職責和協做。經常使用UML順序圖來描述。
4)定義設計類圖
除了在交互圖中顯示對象協做的動態視圖外,還能夠用設計類圖來有效的表示類定義的靜態視圖。這樣能夠描述類的屬性和方法。
1.四、什麼是UML
統一建模語言(UML)是描述、構造和文檔化系統製品的可視化語言。
UML是一個龐大的語法體系,UML定義了各類UML簡檔(UML profile),這些簡檔專用於某些經常使用主題領域的表示法子集,例如對EJB使用EJB簡檔。
1.5 應用UML的三種方式
1)、UML做爲草圖----用於探討問題或解決方案空間的複雜部分。
2)、UML做爲藍圖----相對詳細的設計圖,用於:逆向工程或代碼生成(前向工程)。
3)、UML做爲編程語言----用UML完成軟件系統可執行規格說明,代碼可能被自動生成。
若是不具有良好的OO設計和編程技能,那麼即便使用UML,也只能畫出拙劣的設計。
敏捷建模(agile modeling)強調了UML做爲草圖的方式,這也是使用UML的普通方式,並且一般對時間投入具備高回報。
1.5 應用UML的三種透視圖
1)、概念透視圖:用圖來描述現實世界或關注領域中的事物。
2)、規格說明(軟件)透視圖:用圖來描述軟件抽象物或具備規格說明和接口的構建,但並不約定特定的實現。
3)、實現(軟件)透視圖:用圖來描述特定技術(如Java)中的軟件實現。
1.6 不一樣透視圖中「類」的含義
以上三種透視圖中「類」的含義分別爲:
1)、概念類----現實世界中的概念或事物。
2)、軟件類----軟件構建在規格說明或實現透視圖中的類。
3)、實現圖----特定OO語言中類。
1.7 可視化建模的優勢
可視化的工做方式更容易理解和開發大腦,快速掌握符號、單元及關係。
圖能夠幫助咱們更爲遍歷的觀察全景,發現軟件元素或分析之間的聯繫,同時容許咱們忽略和隱藏旁枝末節。這是UML或其餘圖形化語言的本質價值。