筆記一:OOAD與UML

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的擴展機制:

-          註釋

-          構造型

-          標記值

-          限制

相關文章
相關標籤/搜索