面向對象設計

面向對象設計的任務是對面向對象分析的結果做進一步的規範化整理,以即可以被面向對象編程直接接受。
     概念
面向對象設計是一種軟件設計方法,是一種project化規範。這是毫無疑問的。面向對象設計的主要工做包含:
— 肯定需要的類;
— 給每個類提供一組完整的操做;
— 明白地使用繼承來表現共同點。
歸納地說,面向對象設計就是「依據需求決定所需的類、類的操做,以及類之間關聯的過程」。
從面向對象分析到面向對象設計是一個逐步擴充模型的過程。面向對象分析以實際問題爲中心,可以不考慮與軟件實現相關的不論什麼問題,主要考慮「作什麼」的問題;面向對象設計則是面向軟件實現的實際開發活動,主要考慮「怎麼作」的問題。
面向對象設計的目標是管理程序內部各部分的相互依賴。爲了達到這個目標,面向對象設計要求將程序分紅塊,每個塊的規模應該小到可以管理的程度,而後分別將各個塊隱藏在接口(interface)的後面,讓它們僅僅經過接口相互交流。比方說,假設用面向對象設計的方法來設計一個client-server應用,那麼server和client之間不該該有直接的依賴,而是應該讓server的接口和client的接口相互依賴。
這樣的依賴關係的轉換使得系統的各部分具備了可複用性。仍是拿上面那個樣例來講,client就沒必要依賴於特定的server,因此就可以複用到其它的環境下。假設要複用某一個程序塊,僅僅要實現必需的接口便可了。
面向對象設計是一種解決軟件問題的設計範式(paradigm),一種抽象的範式。使用OOD這樣的設計範式,咱們可以用對象來表現問題領域的實體,每個對象都有對應的狀態和行爲。面向對象設計是一種抽象的範式,抽象可以分紅許多層次,從很歸納的到很特殊的都有,而對象可能處於不論什麼一個抽象層次上。另外,彼此不一樣但又互有關聯的對象可以共同構成抽象:僅僅要這些對象之間有相似性,就可以把它們當成同一類的對象來處理。
     原則
面向對象設計的主要原則例如如下。
1.模塊化
面向對象開發方法很是天然地支持了把系統分解成模塊的設計原則:對象就是模塊。它是把數據結構和操做這些數據的方法緊密地結合在一塊兒所構成的模塊。
2.抽象
面向對象方法不只支持過程抽象,而且支持數據抽象。
3.信息隱藏
在面向對象方法中,信息隱藏經過對象的封裝性來實現。
4.低耦合
在面向對象方法中,對象是最主要的模塊,所以,耦合主要指不一樣對象之間相互關聯的緊密程度。低耦合是設計的一個重要標準,因爲這有助於使得系統中某一部分的變化對其它部分的影響降到最低程度。
5.高內聚
— 操做內聚。
— 類內聚。
— 通常-詳細內聚。
      任務
面向對象設計的主要任務例如如下。
1.對象定義規格的求精
對於面向對象分析所抽象出來的對象、類,以及聚集的分析文檔,面向對象設計需要有一個依據設計要求整理和求精的過程,使之更能符合面向對象編程的需要。這個整理和求精過程主要有兩個方面:一是要依據面向對象的概念模型整理分析所肯定的對象結構、屬性、方法等內容,改正錯誤的內容,刪去沒必要要和反覆的內容等。二是進行分類整理,以便於下一步數據庫設計和程序處理模塊設計的需要。整理的方法主要是進行歸類,對類、對象、屬性、方法和結構、主題進行歸類。
2.數據模型和數據庫設計
數據模型的設計需要肯定類、對象屬性的內容、消息鏈接的方式、系統訪問、數據模型的方法等。最後,每個對象實例的數據都必須落實到面向對象的庫結構模型中。
3.優化
面向對象設計的優化設計過程是從還有一個角度對分析結果和處理業務過程的整理概括,優化包含對象和結構的優化、抽象、集成。
對象和結構的模塊化表示爲面向對象設計提供了一種範式,這樣的範式支持對類和結構的模塊化。這樣的模塊符合通常模塊化所要求的所有特色,如信息隱蔽性好,內部聚合度強和模塊之間耦合度弱等。集成化使得單個構件有機地結合在一塊兒,相互支持。
      階段
面向對象設計分爲兩個階段,即高層設計和低層設計。
高層設計階段開發系統的結構,構造軟件的總體模型。在這個階段中,應該標識出在詳細的計算機環境中進行問題求解所需要的概念,並添加一批需要的類,當中包含那些能使軟件系統與外部世界進行交互的類。高層設計階段的輸出是適合應用軟件要求的類、類之間的關係,以及應用子系統的視圖規格說明。圖6-13說明了面向對象設計導出的系統結構的大體形式。
在高層設計的過程當中,應當使子系統的高層部件之間的通訊量達到最小,把子系統中相互之間存在高度交互的類劃分在同一組中。
低層設計集中於類的具體設計階段。類設計的目標是造成單一律唸的模型(即一個概念用一個獨立的類來表示),而且設計的部件應該是可複用的和可靠的。在類的設計過程當中需要採用信息隱蔽、高內聚、低耦合等設計原則。反覆使用現有的類是面嚮對象的技術的主要長處之中的一個。
圖6-13  面向對象設計導出的系統結構
      過程和步驟
Coad與Yourdon在設計階段繼續採用面向對象分析階段中提到的5個層次(對象和類、結構、屬性、服務和主題),這樣有助於從分析到設計的天然過渡。依據Coad與Yourdon的面向對象設計方法,設計階段的主要任務是利用這5個層次來創建系統的4個組成部分,即問題領域、用戶界面、任務管理和數據管理。
1.問題領域
問題領域包含與咱們所面對的應用問題直接相關的所有類和對象。實際上,在面向對象分析階段就已經開始進行問題領域的分析。此時需要對它進行進一步的細化。面向對象分析獲得了與應用有關的概念模型,面向對象設計應該對這個概念模型進行改進和增補。主要依據需求的變化來對面向對象分析階段產生的模型中的類和對象、結構、屬性和操做進行組合和分解,依據面向對象設計原則來添加必要的類、屬性和關係。問題領域部分的設計包含:
— 複用設計
— 關聯問題領域中的類
— 增長通常化的類以創建類間協議
— 調整繼承的支持級別
— 改進性能
— 增長較低層的組件
2.用戶界面
一般在面向對象分析階段給出了所需的屬性和操做,在面向對象設計階段必須依據需求把交互的細節增長用戶界面的設計中,包含有效的人機交互所必需的實際顯示和輸入。用戶界面部分的設計主要由下面幾個方面組成:
— 用戶分類
— 描寫敘述人及其任務的腳本
— 設計命令層
— 設計具體的交互
— 繼續擴展用戶界面原型
— 設計人機交互類
— 依據圖形用戶界面進行設計任務管理部分的設計
3.任務管理
任務是進程的別稱,是運行一系列活動的一段程序。當系統中有不少併發行爲時,需要按照各個行爲的協調和通訊關係來劃分各類任務,以簡化併發行爲的設計和編碼。任務管理主要包含任務的選擇和調整,它的工做包含:
— 識別事件驅動任務。
— 識別時鐘驅動任務。
— 識別優先任務和關鍵任務。
— 識別任務之間的協調者。
— 對各個任務進行評審保證它能夠知足選擇任務的過程標準。
— 定義各個任務,說明它是什麼任務、任務之間怎樣協調工做、怎樣通訊。
4.數據管理
數據管理提供了在數據管理系統中存儲和檢索對象的基本結構,包含對永久性數據的訪問和管理。數據管理的方法主要有三種,即文件管理、關係數據庫管理,以及面向對象的數據庫管理。數據管理設計包含:
— 數據存放設計。數據存放設計選擇數據存放的方式(文件存放、關係數據庫表格存放或面向對象的數據庫存放)。
— 設計對應的操做。爲每個需要存儲的對象和類添加用於存儲管理的屬性和操做,在類和對象的定義中加以描寫敘述。
在每一個過程當中,面向對象設計的基本操做步驟包含:
— 細化重組類。
— 細化和實現類間關係,明白其可見性。
— 添加屬性,指定屬性的類型與可見性。
— 分配職責,定義運行每個職責的方法。
— 對消息驅動的系統,明白消息傳遞方式。
— 利用設計模式進行局部設計。
— 畫出具體的類圖與序列圖。
 
相關文章
相關標籤/搜索