http://blog.csdn.net/elegant_design/article/details/9259609
一、總述
面向對象分析的輸入是用戶的功能需求,輸出是簡單的、理性化的分析模型,此階段的工作更多側重於如何理解軟件的功能需求;
面向對象設計的輸入是面向對象分析的結果,蔬菜水果最終的、細化后的設計模型,此階段的工作更多側重於如何得到一個合適的、完整的解決方案。
二、主要區別
(1) 在側重點上,面向對象分析側重於理解問題,描述軟件要做什么,而面向對象設計側重於理解解決方案,描述軟件要如何做。
(2) 面向對象分析一般只考慮理想餓設計,不關心技術和實現層面的細節,而面向對象設計需要得到更具體、更詳盡,更接近於真實的代碼的設計方案。
(3) 在設計結果的描方式上,面向對象分析階段側重於描述對象的行為,而面向對象設計階段側重於描述對象的屬性和方法。
(4) 面向對象分析只關注功能性需求,而面向對象設計既關注功能性需求,也關注非功能性需求。
(5) 面向對象分析產生的系統模型通常規模較小,而面向對象設計產生的系統模型規模較大,內容也比較詳盡、完整。
三、分析設計工具(RationalRose + UML)
1、需求分析階段
常借助於“用例圖”、“順序圖”對功能模型進行建模;
用例描述,一般包括:用例名稱,系統范圍,用戶目標,前置條件,執行過程,擴展情況,后置條件。
順序圖着眼於整個系統。
2、面向對象分析階段(包含需求分析階段的用例建模)
常借助於“類圖、對象圖”,“順序圖、協作圖”,“狀態圖”進行靜態模型建模和動態模型建模。
這里的類圖主要指通過用例分析得到的實體類、控制類和邊界類。
順序圖也着眼於各個分析類對象間的協作。
3、面向對象設計階段
常借助於“類圖”,“順序圖、協作圖”,“狀態圖”來細化各個類以及對象間的協作、關系的可見性;
這里的類圖,要具體到屬性、方法,類之間的關系依賴(繼承、組合、聚合)
這里的順序圖要具體到各個類的實例之間的消息傳遞、函數調用。
面向對象設計階段常借助一些設計模式達到軟件的可擴展行,應對軟件的可預測到的變化。