1、面向對象的概念與方法編程
一、 面向對象架構
1.1. 面向對象是一種系統建模技術框架
1.2. 面向對象編程是按照OO的方法學來開發程序的過程性能
1.3. 經過分析系統內對象的交互來描述或建模一個系統測試
1.4. 交互的對象最終以類的形式組織優化
1.5. OO的方法由三部分組成:過程、標識、規則設計
二、 對象對象
2.1. 是一個客觀存在的、惟一的實體繼承
2.2. 是面向對象編程過程當中分析與解決問題的出發點與基礎生命週期
2.3. 擁有本身的標識、數據與行爲
2.4. 能夠簡單或複雜
2.5. 能夠抽象或具體
2.6. 在OOP中是一個類的動態實例
三、 類
3.1. 類是對象的模板
3.2. 對象經過類實例化產生
3.3. 一個類能夠建立多個對象
四、 OOAD(面向對象的)
4.1. OOAD是根據OO的方法學,對軟件系統進行分析和設計的過程
4.2. OOA 分析階段(What to do )
4.2.1. 創建針對業務問題域的清晰視圖
4.2.2. 列出系統必需要完成的核心任務
4.2.3. 針對問題域創建公共詞彙表
4.2.4. 列出針對此問題域的最佳解決方案
4.3. OOD 設計階段(How to do)
4.3.1. 如何解決具體的業務問題
4.3.2. 引入系統工做所需的支持元素
4.3.3. 定義系統的實現策略
4.4. OOP的主要特徵
4.4.1. 抽象(abstract)
忽略掉一個對象或實體的細節而只關注其本質特徵的過程
簡化功能與格式
幫助用戶與對象交互
4.4.2. 封裝(encapsulation)
隱藏數據和實現
提供公共方法供用戶調用功能
對象的兩種視圖:
--外部視圖 對象能作的工做
--內部視圖 對象如何完成工做
4.4.3. 繼承(inheritance)
經過存在的類型定義新類型的機制
一般在兩個類型之間存在的「is a」或「kind of」這樣的關係
經過繼承可實現代碼重用,另外繼承也是多態的基礎
4.4.4. 多態(polymorphism)
一個名稱,多種形式
基於繼承的多態
調用方法時根據所給對象的不一樣選擇不一樣的處理方式
4.4.5. 關聯(association)
對象之間交互時的一種引用方式
當一個對象經過對另外一個對象的引用,達到去使用另外一個對象的服務或操做時,兩個對象之間便產生了聯繫
4.4.6. 聚合(aggregation)
關聯關係的一種,一個對象成爲另一個對象的組成部分
是一種關係較強的關聯
在兩個對象之間存在「has a」這樣的關係,一個對象做爲另外一個對象的屬性存在,在外部對象被生產時,可由客戶端指定與其關聯的內部對象。
4.4.7. 組合(composition)
當一個對象包含另外一個對象時,外部對象負責管理內部對象的生命週期的狀況
關聯關係中最爲強烈的一種
內部對象的建立由外部對象本身控制
外部對象不存在時,內部對象也不能存在
4.4.8. 內聚與耦合(cohesion&coupling)
內聚度量一個類獨立完成某項工做的能力
耦合度量系統內或系統之間依賴關係的複雜度
設計原則:增長內聚,減小耦合
4.5. 域 模型(設計模型)
域模型是面向對象的。在面向對象術語中域模型也可稱爲設計模型。
域模型由如下內容組成:
- 具備狀態和行爲的域對象
- 域對象之間的關係(關聯-Association、依賴-Dependency、彙集-Aggregation、通常化(泛化)-Generalization)
4.6. 開發過程概述
- 傳統開發過程
----- 瀑布模型<需求-分析-設計-實現-測試>
- OOAD開發過程
----- 統一軟件開發過程(USDP)<迭代、遞增>
4.7. 迭代、遞增的項目生命週期
項目是迭代、遞增的,迭代指生命週期中的一個步驟,迭代致使「遞增」或者是整個項目的增加,大項目分解爲子項目
在每個迭代的階段,應該作如下工做:
- 選擇並分析相關用例
- 根據所選架構進行設計
- 在組件層次實現設計
- 驗證組件知足用例的須要
當一次迭代知足目標後,開發進入下一個迭代週期。
每個週期包含了一次或屢次迭代
一個階段的結束稱之爲「里程碑」
4.8. 迭代、遞增生命週期的階段
4.8.1. 初始化階段
- 項目啓動
- 創建業務模型
- 定義業務問題域
- 找出主要的風險因素
- 定義項目需求的外延
- 建立業務問題域的相關說明文檔
4.8.2. 細化階段
- 高層的分析與設計
- 創建項目的基礎框架
- 監督主要的風險因素
- 制定達成項目目標的建立計劃
4.8.3. 構建階段
- 代碼及功能的實現
4.8.4. 移交階段
- 向用戶發佈產品
- Beta測試
- 執行性能調優,用戶培訓和接收測試
4.9. 每一個階段所含的工做流
- 需求與初始分析
- 分析
- 設計
- 實現
- 測試
- 每一次迭代執行工做流的深度不一樣
- 早期的迭代在深度上覆蓋初始工做流,後期迭代在深度上覆蓋後期工做流
- 80/20原則
4.10. 迭代、遞增生命週期的優化
- 下降成本
- 便於更好地維護項目進度
- 便於團隊的協做開發
- 便於適應用戶需求的動態變化
2、使用UML
一、 UML簡介
統一建模語言是一種圖形化的語言,它能夠幫助咱們在OOAD過程當中標識元素、構建模塊、分析過程並能夠經過文檔說明系統中的重要細節。
二、 UML分類
- 靜態模型
建立並記錄一個系統的靜態特徵,反映一個軟件系統基礎、固定的框架結構,建立相關問題域主要元素的視圖
包含:用例圖、類圖、對象圖、組件圖、部署圖
- 動態模型
用於展現系統的行爲
包含:時序圖、協做圖、狀態圖、活動圖
三、 其餘UML元素
包(Package)
UML的擴展機制:
- 註釋
- 構造型
- 標記值
- 限制