標籤:style http 使用 strong 檔案 資料
物件導向設計的任務是對物件導向分析的結果作進一步的正常化整理,以便可以被物件導向編程直接接受。
概念物件導向設計是一種軟體設計方法,是一種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.資料管理資料管理提供了在資料管理系統中儲存和檢索對象的基本結構,包含對永久性資料的訪問和管理。資料管理的方法主要有三種,即檔案管理、關聯式資料庫管理,以及物件導向的資料庫管理。資料管理設計包含:— 資料存放設計。資料存放設計選擇資料存放的方式(檔案存放、關聯式資料庫表格存放或物件導向的資料庫存放)。— 設計對應的操作。為每一個須要儲存的對象和類添加?用於儲存管理的屬性和操作,在類和對象的定義中加以描寫敘述。在每個過程中,物件導向設計的基本操作步驟包含:— 細化重組類。— 細化和實作類別間關係,明白其可見度。— 添加?屬性,指定屬性的類型與可見度。— 分配職責,定義運行每一個職責的方法。— 對訊息驅動的系統,明白訊息傳遞方式。— 利用設計模式進行局部設計。— 畫出具體的類圖與順序圖表。