面向?qū)ο蟮脑O(shè)計_第1頁
面向?qū)ο蟮脑O(shè)計_第2頁
面向?qū)ο蟮脑O(shè)計_第3頁
面向?qū)ο蟮脑O(shè)計_第4頁
面向?qū)ο蟮脑O(shè)計_第5頁
已閱讀5頁,還剩25頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、概而言之,面向?qū)ο蟮脑O(shè)計(OOD)就是運(yùn)用面向?qū)ο蠓椒ㄟM(jìn)行系統(tǒng)設(shè)計;但不同時期有不同內(nèi)容及特點。(一)早期的(一)早期的OODOOD(八十年代至九十年代初)(八十年代至九十年代初)(二)現(xiàn)今(二)現(xiàn)今(9090年代)的年代)的OODOOD(一)早期的(一)早期的OOD(八十年代至九十年代初)(八十年代至九十年代初)G. Booch 1982 年發(fā)表“Object-Oriented Design” ,首次稱“面向?qū)ο蟮脑O(shè)計”。1986 年發(fā)表“Object-Oriented Development”較完整地闡述了OOD思想。R. J. Abbott 1983年提出正文分析方法(用規(guī)范的英語描述對

2、一個問題的解釋,然后從描述中提取對象及其特征。)1986年后,相繼出現(xiàn)了一批(早期的)OOD方法。(一)早期的(一)早期的OODOOD(八十年代至九十年代初)(八十年代至九十年代初)Booch86Object-Oriented Development(面向?qū)ο蟮拈_發(fā))GOODGeneral Object-Oriented Development(通用面向?qū)ο蟮拈_發(fā))HOODHierarchical Object-Oriented Design(層次式面向?qū)ο蟮脑O(shè)計)OOSDObject-Oriented Structured Design(面向?qū)ο蟮慕Y(jié)構(gòu)設(shè)計)早期的OODOOD方法(二)現(xiàn)今(

3、二)現(xiàn)今(9090年代)的年代)的OODOOD面向?qū)ο蟮脑O(shè)計(OOD)就在是OOA模型基礎(chǔ)上運(yùn)用面向?qū)ο蠓椒ㄟM(jìn)行系統(tǒng)設(shè)計,目標(biāo)是產(chǎn)生一個符合具體實現(xiàn)條件的OOD模型。OOD的特點:的特點:1. 以面向?qū)ο蟮姆治鰹榛A(chǔ),一般不依賴結(jié)構(gòu)化分析。2. 與相應(yīng)的OOA方法共同構(gòu)成一種OOA&D方法體系。OOA和OOD采用一致的概念與原則,但屬于軟件生命周期的不同階段,有不同的目標(biāo)及策略。3. 較全面地體現(xiàn)面向?qū)ο蠓椒ǖ母拍钆c原則。4. 大多數(shù)方法獨立于編程語言,通過面向?qū)ο蟮姆治雠c設(shè)計所得到的系統(tǒng)模型可以由不同的編程語言實現(xiàn)。(一)(一)OOAOOA和和OODOOD的關(guān)系的關(guān)系(二)(二)OO

4、DOOD的基本思想的基本思想(三)(三)OODOOD模型框架模型框架(四)(四)OODOOD過程過程(一)(一)OOAOOA和和OODOOD的關(guān)系的關(guān)系概念:運(yùn)用與OOA相同的概念(類、對象、屬性、操作、封裝、繼承、消息、關(guān)聯(lián)、聚合、多態(tài)等等)表示法:采用與OOA一致的表示法傳統(tǒng)方法分析與設(shè)計之間的鴻溝面向?qū)ο蟮姆治雠c設(shè)計之間不存在鴻溝分析設(shè)計數(shù)據(jù)流圖(DFD)模塊結(jié)構(gòu)圖(MSD)實體-關(guān)系圖(ERD)OOAOOD類圖類圖一致的概念一致的表示法(二)(二) OOD OOD的基本思想的基本思想以O(shè)OA模型為基礎(chǔ),繼續(xù)運(yùn)用面向?qū)ο蟮母拍钆c原則,針對具體的實現(xiàn)條件進(jìn)行系統(tǒng)設(shè)計。以平臺無關(guān)的OOA模型

5、為基礎(chǔ),按實現(xiàn)平臺進(jìn)行必要的調(diào)整,作為OOD模型的核心部分,即問題域部分;針對實現(xiàn)平臺的三個主要方面,增補(bǔ)三個平臺相關(guān)的外圍部分,盡可能隔離實現(xiàn)條件對核心部分的影響,構(gòu)成完整的OOD模型。(三)(三)OODOOD模型框架模型框架(四)(四)OODOOD過程過程逐個設(shè)計OOD模型的四個部分:問題域部分的設(shè)計人機(jī)交互部分的設(shè)計控制驅(qū)動部分的設(shè)計數(shù)據(jù)接口部分的設(shè)計不強(qiáng)調(diào)次序每個部分均采用與OOA一致的概念、表示法及活動,但具有自己獨特的策略(一)(一)單一職責(zé)原則單一職責(zé)原則(二)(二)開放封閉原則開放封閉原則(三)(三)依賴倒置原則依賴倒置原則(四)(四)接口隔離原則接口隔離原則(五)(五)Lis

6、kov替換原則替換原則(一)(一)單一職責(zé)原則單一職責(zé)原則對于單一職責(zé)原則,其核心思想為:一個類,最好只做一件事,只有一個引起它的變化。單一職責(zé)原則可以看做是低耦合、高內(nèi)聚在面向?qū)ο笤瓌t上的引申,將職責(zé)定義為引起變化的原因,以提高內(nèi)聚性來減少引起變化的原因。通常意義下的單一職責(zé),就是指只有一種單一功能,不要為類實現(xiàn)過多的功能點,以保證實體只有一個引起它變化的原因。(二)(二)開放封閉原則開放封閉原則對于開放封閉原則,它是面向?qū)ο笏性瓌t的核心,軟件設(shè)計說到底追求的目標(biāo)就是封裝變化、降低耦合,而開放封閉原則就是這一目標(biāo)的最直接體現(xiàn)。開放封閉原則,其核心思想是:軟件實體應(yīng)該是可擴(kuò)展的,而不可修改的

7、。也就是,對擴(kuò)展開放,對修改封閉的。實現(xiàn)開開放封閉原則的核心思想就是對抽象編程,而不對具體編程,因為抽象相對穩(wěn)定。讓類依賴于固定的抽象,所以修改就是封閉的;而通過面向?qū)ο蟮睦^承和多態(tài)機(jī)制,又可以實現(xiàn)對抽象類的繼承,通過覆寫其方法來改變固有行為,實現(xiàn)新的拓展方法,所以就是開放的。(二)(二)開放封閉原則開放封閉原則開放封閉原則主要體現(xiàn)在兩個方面:一、對擴(kuò)展開放,意味著有新的需求或變化時,可以對現(xiàn)有代碼進(jìn)行擴(kuò)展,以適應(yīng)新的情況。二、對修改封閉,意味著類一旦設(shè)計完成,就可以獨立完成其工作,而不要對其進(jìn)行任何嘗試的修改。(三)(三)依賴倒置原則依賴倒置原則對于依賴倒置原則,其核心思想是:依賴于抽象。具

8、體而言就是高層模塊不依賴于底層模塊,二者都同依賴于抽象;抽象不依賴于具體,具體依賴于抽象。當(dāng)兩個模塊之間存在緊密的耦合關(guān)系時,最好的方法就是分離接口和實現(xiàn):在依賴之間定義一個抽象的接口使得高層模塊調(diào)用接口,而底層模塊實現(xiàn)接口的定義,以此來有效控制耦合關(guān)系,達(dá)到依賴于抽象的設(shè)計目標(biāo)。抽象的穩(wěn)定性決定了系統(tǒng)的穩(wěn)定性,因為抽象是不變的,依賴于抽象是面向?qū)ο笤O(shè)計的精髓,也是依賴倒置原則的核心。(四)(四)接口隔離原則接口隔離原則對于接口隔離原則,其核心思想是:使用多個小的專門的接口,而不要使用一個大的總接口。具體而言,接口隔離原則體現(xiàn)在:接口應(yīng)該是內(nèi)聚的,應(yīng)該避免“胖”接口。一個類對另外一個類的依賴應(yīng)

9、該建立在最小的接口上,不要強(qiáng)迫依賴不用的方法,這是一種接口污染。接口有效地將細(xì)節(jié)和抽象隔離,體現(xiàn)了對抽象編程的一切好處,接口隔離強(qiáng)調(diào)接口的單一性,而胖接口存在明顯的弊端,會導(dǎo)致實現(xiàn)的類型必須完全實現(xiàn)接口的所有方法、屬性等。(四)(四)接口隔離原則接口隔離原則分離的手段主要有以下兩種:一、委托分離,通過增加一個新的類型來委托客戶的請求,隔離客戶和接口的直接依賴,但是會增加系統(tǒng)的開銷。二、多重繼承分離,通過接口多繼承來實現(xiàn)客戶的需求,這種方式是較好的。(五)(五)Liskov替換原則替換原則對于Liskov替換原則,其核心思想是:子類必須能夠替換其基類。這一思想體現(xiàn)為對繼承機(jī)制的約束規(guī)范,只有子類

10、能夠替換基類時,才能保證系統(tǒng)在運(yùn)行期內(nèi)識別子類,這是保證繼承復(fù)用的基礎(chǔ)。在父類和子類的具體行為中,必須嚴(yán)格把握繼承層次中的關(guān)系和特征,將基類替換為子類,程序的行為不會發(fā)生任何變化。同時,這一約束反過來則是不成立的,子類可以替換基類,但是基類不一定能替換子類。(五)(五)Liskov替換原則替換原則Liskov替換原則,主要著眼于對抽象和多態(tài)建立在繼承的基礎(chǔ)上,因此只有遵循了Liskov替換原則,才能保證繼承復(fù)用是可靠地。實現(xiàn)的方法是面向接口編程:將公共部分抽象為基類接口或抽象類,通過Extract Abstract Class,在子類中通過覆寫父類的方法實現(xiàn)新的方式支持同樣的職責(zé)。Liskov

11、替換原則是關(guān)于繼承機(jī)制的設(shè)計原則,違反了Liskov替換原則就必然導(dǎo)致違反開放封閉原則。Liskov替換原則能夠保證系統(tǒng)具有良好的拓展性,同時實現(xiàn)基于多態(tài)的抽象機(jī)制,能夠減少代碼冗余,避免運(yùn)行期的類型判別。(一)什么是人機(jī)交互部分(一)什么是人機(jī)交互部分(二)人機(jī)交互部分的需求分析(二)人機(jī)交互部分的需求分析(三)人機(jī)界面的設(shè)計準(zhǔn)則(三)人機(jī)界面的設(shè)計準(zhǔn)則(四)人機(jī)界面的(四)人機(jī)界面的OOOO設(shè)計設(shè)計(一)什么是人機(jī)交互部分(一)什么是人機(jī)交互部分人機(jī)交互部分是OOD模型的外圍組成部分之一,是系統(tǒng)中負(fù)責(zé)人機(jī)交互的部分。其中所包含的對象(稱作界面對象)構(gòu)成了系統(tǒng)的人機(jī)界面。現(xiàn)今的系統(tǒng)大多采用圖

12、形方式的人機(jī)界面形象、直觀、易學(xué)、易用,遠(yuǎn)遠(yuǎn)勝于命令行方式的人機(jī)界面,是使軟件系統(tǒng)嬴得廣大用戶的關(guān)鍵因素之一。支持圖形用戶界面開發(fā)的軟件系統(tǒng):窗口系統(tǒng)(如X Window,News,MS-Windows)圖形用戶界面(GUI)(如OSF/Motif,Open Look)可視化開發(fā)環(huán)境(如Visual C+,Visual Basic, Delphi)(二)人機(jī)交互部分的需求分析(二)人機(jī)交互部分的需求分析一、分析與系統(tǒng)交互的人(參與者)(1)列舉所有的人員參與者(2)調(diào)查研究(3)區(qū)分人員類型(4)統(tǒng)計(或估算)各類人員的比例(5)了解使用者的主觀需求(二)人機(jī)交互部分的需求分析(二)人機(jī)交互部

13、分的需求分析二、從用況分析人機(jī)交互(1)用況的構(gòu)成:參與者的行為和系統(tǒng)行為按時間順序交替出現(xiàn),左右分明。形成交叉排列的段落。每個段落至少含有一個輸入語句或輸出語句;有若干純屬參與者自身或系統(tǒng)自身的行為陳述;可能包含一些控制語句或括號。(2)抽取方法:刪除所有與輸入、輸出無關(guān)的語句刪除不再包含任何內(nèi)容的控制語句與括號剩下的就是對參與者(人)使用一項系統(tǒng)功能時的人機(jī)交互描述(三)人機(jī)界面的設(shè)計準(zhǔn)則(三)人機(jī)界面的設(shè)計準(zhǔn)則使用簡便一致性啟發(fā)性減少人腦記憶的負(fù)擔(dān)減少重復(fù)的輸入容錯性及時反饋(四)(四)人機(jī)界面的人機(jī)界面的OOOO設(shè)計設(shè)計一、選擇界面支持系統(tǒng)0級:操作系統(tǒng)和普通編程語言(全部人工編程)1

14、級:圖形軟件包(提供基本圖形元素的繪制函數(shù))2級:窗口系統(tǒng)(提供實現(xiàn)人機(jī)界面基本成分的支撐機(jī)制如實現(xiàn)窗口、菜單、對話框的庫函數(shù))3級:GUI(為實現(xiàn)具有特定的風(fēng)格和視感的圖形用戶界面提供了更強(qiáng)的支持)4級:可視化編程環(huán)境(以“所見即所得”的方式構(gòu)造用戶界面)(四)(四)人機(jī)界面的人機(jī)界面的OOOO設(shè)計設(shè)計二、根據(jù)人機(jī)交互需求選擇界面元素(1)系統(tǒng)的啟動系統(tǒng)的啟動 選用實現(xiàn)主界面的界面元素,如窗口、對話框窗口(2)高層命令組織結(jié)構(gòu)的實現(xiàn)高層命令組織結(jié)構(gòu)的實現(xiàn)通過界面元素的構(gòu)造層次體現(xiàn)高層命令的組織結(jié)構(gòu)(3)基本命令的執(zhí)行基本命令的執(zhí)行高層命令的執(zhí)行是在人機(jī)界面上把用戶引向基本命令,基本命令的執(zhí)行則是從界面給實現(xiàn)其功能的對象送消息(4)詳細(xì)交互過程的輸入與輸出詳細(xì)交互過程的輸入與輸出選擇適當(dāng)?shù)慕缑嬖赝瓿擅總€命令步的輸入與輸出(5)異常命令的輸入異常命令的輸入使用支持異常命令輸入的界面功能,如鼠標(biāo)右鍵菜單(四)(四)人機(jī)界面的人機(jī)界面的OOOO設(shè)計設(shè)計三、用OO概念與表示法表達(dá)所有的界面成分(1)用對象表示各種界面元素)用對象表示各種界面元素(2)屬性與操作)屬性與操作a a、用屬性表示界面對象的靜態(tài)特征物理特征如:位置、尺寸、顏色、立體效果邏輯特征聚合、關(guān)聯(lián)b b、用操作表示界面對象的行為例如:創(chuàng)建、激活、最大化、最小化、移動、選中、單擊、雙擊 (四)(四)人機(jī)界面的人機(jī)界面

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論