1 建模
建模(Modeling),是指通過對客觀事物建立一種抽象的方法用以表徵事物並獲得對事物本身的理解,同時把這種理解概念化,將這些邏輯概念組織起來,構成一種對所觀察對象的內部結構和工作原理的表達。建模涉及兩個基本問題:
- 怎麼建
即方法論。UML採用面向對象的方法建模。 - 模是什麼
問題領域 = 抽象角度
抽象角度 = 問題領域邊界之外的參與者的業務目標 = 業務用例
業務用例 = 特定的場景
特定場景 = 靜態的事物 + 特定的條件 +特定的動作 或者
特定的事 = 特定的事物 + 特定的規則 + 特定的人的行爲
2 用例驅動
用例驅動是統一過程的重要概念,整個軟件生產過程就是用例驅動的。
- 邏輯視圖
系統只有一個邏輯視圖,以圖形方式說明關鍵的用例實現、子系統、包和類。 - 進程視圖
系統只有一個進程視圖,以圖形方式說明了系統中進程的詳細組織結構,其中包括類和子系統到進程和線程的映射。這個視圖就是我們常說的分析設計視圖。 - 部署視圖
系統只有一個部署視圖,以圖形方式說明了處理活動在系統中各節點的分佈,包括進程和線程的物理分佈,即建模公式中的人、事、物、規則是如何部署到物理節點(主機、網絡環境)上的。 - 實施視圖
獲取爲實施指定的架構決策,包括 - 列舉子系統
- 描述子系統如何組織爲層次和分層結構的構件圖
- 描述子系統間的導入依賴關係的圖解
3 抽象層次
抽象層次是面向對象方法中極其重要,但又非常難以掌握的技巧。
- 抽象層次越高,具體信息越少,但是概括能力越強
- 抽象層次越低,具體信息越豐富,結果越精確,但概括能力越弱。
抽象有兩種方法:
- 自頂向下的方法適用於讓人民從頭開始認識一個事務
- 自底向上的方法適用於在實踐中改進和提高認識。
軟件開發過程主體上應該採用自頂向下的方法,用少量的概念覆蓋系統需求,再逐步降低抽象層次,直到代碼編寫。同時輔以自底向上的方法,通過總結在較低抽象層次的實踐經驗來改進較高抽象層次的概念以提高軟件質量。
4 視圖
視圖用於組織UML元素,表達出模型某一方面的含義。UML定義了用例圖、對象圖、類圖、包圖、活動圖等不同的視圖,從不同的方面描述了一個軟件的結構和組成。所有這些視圖的集合表達了一個軟件的完整含義。同時,由於軟件的干係人很多,如客戶、系統分析員、架構師、設計師、開發人員、測試人員等,因此建模的另一項重要工作是爲不同的干係人展示他們所關心的那部分視角。建模過程需要經常思考如下兩個問題:
- 應該爲哪些軟件信息繪製哪些視圖
- 應該給哪些干係人展示哪些視角
5 對象分析方法
- 一切都是對象
- 對象都是獨立的
- 對象都具有原子性
- 對象都是可抽象的
- 對象都有層次性