面向?qū)ο笙到y(tǒng)分析與設(shè)計(jì)_第1頁
已閱讀1頁,還剩156頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、面向?qū)ο笙到y(tǒng)分析與設(shè)計(jì),,2,面向?qū)ο笙到y(tǒng)分析與設(shè)計(jì),7.1 面向?qū)ο蟮陌l(fā)展歷史7.2 面向?qū)ο蟮幕靖拍?.3 面向?qū)ο蟮姆椒ㄕ?.4 面向?qū)ο蟮姆治?.5 面向?qū)ο蟮脑O(shè)計(jì)7.6 面向?qū)ο笈c統(tǒng)一建模語言,3,面向?qū)ο笙到y(tǒng)分析與設(shè)計(jì),面向?qū)ο蟮臍v史與發(fā)展,古希臘哲學(xué)家的論著,K.Nyguard等設(shè)計(jì)的Simula 67,Alan Keyz主持設(shè)計(jì)的Smalltalk,以Smalltalk 80和 C++為代表的語言,面向?qū)ο蟮?/p>

2、系統(tǒng)開發(fā),面向?qū)ο蟮膽?yīng)用深入,,4,面向?qū)ο笙到y(tǒng)分析與設(shè)計(jì),數(shù)據(jù)抽象 – 一種設(shè)計(jì)方法把一組數(shù)據(jù)及作用與其上的操作組成一個(gè)設(shè)計(jì)實(shí)體或單位。接口說明外部可見,其實(shí)現(xiàn)是隱蔽的,不可見的。發(fā)展的三個(gè)階段,5,面向?qū)ο笙到y(tǒng)分析與設(shè)計(jì),抽象數(shù)據(jù)類型抽象數(shù)據(jù)類型是指“一個(gè)值集和作用在該值集上的操作集”。抽象數(shù)據(jù)類型的定義只決定于其邏輯特性,與其具體的計(jì)算機(jī)內(nèi)部實(shí)現(xiàn)無關(guān)。一個(gè)抽象數(shù)據(jù)類型可以分解為語法、語義、表示和算法4個(gè)部分。,6,面向?qū)ο笙?/p>

3、統(tǒng)分析與設(shè)計(jì),抽象數(shù)據(jù)類型的實(shí)現(xiàn)實(shí)現(xiàn)抽象數(shù)據(jù)類型需要借助于高級(jí)程序設(shè)計(jì)語言(Pascal,C,C++,…);在面向過程的語言中,用戶可以自己定義數(shù)據(jù)類型;(ADA Package, Pascal Unit)在面向?qū)ο蟮某绦蛟O(shè)計(jì)語言中,借助于對(duì)象描述抽象數(shù)據(jù)類型。(Class),7,面向?qū)ο笙到y(tǒng)分析與設(shè)計(jì),問題求解面向?qū)ο笤O(shè)計(jì)方法:實(shí)現(xiàn)問題空間和問題求解空間的近似和直接模擬。,意識(shí)部分教室,物質(zhì)部分303教室,抽象部分

4、教室類,具體部分一個(gè)對(duì)象:教室實(shí)例,,,現(xiàn)實(shí)問題空間,解空間,8,面向?qū)ο蠹夹g(shù)概述,面向?qū)ο蟮奶攸c(diǎn)封裝機(jī)制基于消息的通信繼承機(jī)制多態(tài)機(jī)制,9,面向?qū)ο笙到y(tǒng)分析與設(shè)計(jì),7.1 面向?qū)ο蟮陌l(fā)展歷史7.2 面向?qū)ο蟮幕靖拍?.3 面向?qū)ο蟮姆椒ㄕ?.4 面向?qū)ο蟮姆治?.5 面向?qū)ο蟮脑O(shè)計(jì)7.6 面向?qū)ο笈c統(tǒng)一建模語言,10,7.2面向?qū)ο蟮幕靖拍?基本概念與特點(diǎn)對(duì)象(Object)消息(Message)類(C

5、lass)實(shí)例(Instance)繼承(Inheritance)封裝(Encapsulation)多態(tài)(Polymorphism),11,面向?qū)ο蟮氖澜缬^,把客觀世界從概念上看成是一個(gè)由相互配合而協(xié)作的對(duì)象所組成的系統(tǒng)面向?qū)ο?對(duì)象+分類+繼承+通信一個(gè)實(shí)例——椅子,12,一個(gè)面向?qū)ο蟮膶?shí)例——椅子,13,對(duì)象,對(duì)象(Object)對(duì)象是用來描述客觀存在的事物,它是構(gòu)成系統(tǒng)的基本單位,是對(duì)客觀世界中事物的抽象描述。,對(duì)象

6、= 行為(功能、方法、服務(wù)) + 屬性(數(shù)據(jù)),屬性,行為,,,,,,,接口,對(duì)象,對(duì)象,對(duì)象,,7.2面向?qū)ο蟮幕靖拍?14,對(duì)象是由私有數(shù)據(jù)(屬性)及作用于其上的一組操作(行為)所構(gòu)成的一個(gè)封閉整體由于對(duì)象的數(shù)據(jù)是私有的,所以要想訪問其數(shù)據(jù)的正確方法是向該對(duì)象發(fā)送消息,讓對(duì)象自身選擇其內(nèi)部相應(yīng)的操作以完成對(duì)該項(xiàng)數(shù)據(jù)的訪問對(duì)象的動(dòng)作取決于外界給對(duì)象的刺激,這就是消息,消息告訴對(duì)象所要求它完成的功能。對(duì)象具有一定的智能功能,即“知

7、道”如何選擇相應(yīng)的操作來處理對(duì)象所接收的消息從設(shè)計(jì)人員的角度看,對(duì)象是一個(gè)完成特定功能的程序塊從用戶的角度看,對(duì)象為他們提供了所希望的行為,7.2面向?qū)ο蟮幕靖拍?15,對(duì)象(Object)對(duì)象標(biāo)識(shí)對(duì)象生命周期一般對(duì)象主動(dòng)對(duì)象永久對(duì)象,7.2面向?qū)ο蟮幕靖拍?16,類(Class)一個(gè)對(duì)象類描述的是具有相似性質(zhì)(屬性)的一組對(duì)象,這組對(duì)象具有一般行為(操作),一般的關(guān)系(對(duì)象之間)及一般語義。類是對(duì)象類的縮寫,類

8、中的對(duì)象有著相同的屬性、行為模式。,將事物進(jìn)行歸納劃分成不同的一些類是人們認(rèn)識(shí)客觀世界的基本思維方法。這種方法依據(jù)的原則是抽象,它忽略了客觀事物非本質(zhì)特性,將客觀事物所具有的共同點(diǎn),即本質(zhì)特性劃分為一類,形成對(duì)事物的本質(zhì)認(rèn)識(shí),得出事物的抽象結(jié)果。,7.2面向?qū)ο蟮幕靖拍?17,類(Class),,結(jié)構(gòu)化程序設(shè)計(jì),面向?qū)ο蟮某绦蛟O(shè)計(jì),7.2面向?qū)ο蟮幕靖拍?18,7.2面向?qū)ο蟮幕靖拍?消息(Message)對(duì)象之間的聯(lián)系是通過傳

9、遞消息來實(shí)現(xiàn)的。是對(duì)象之間進(jìn)行通訊的一種數(shù)據(jù)結(jié)構(gòu)。消息統(tǒng)一了“數(shù)據(jù)流”和“控制流”。,19,7.2面向?qū)ο蟮幕靖拍?消息 - 消息傳送與函數(shù)調(diào)用的區(qū)別函數(shù)調(diào)用可以帶或不帶參數(shù),但是消息至少帶一個(gè)參數(shù),它表明接收該消息的對(duì)象,消息中告訴對(duì)象做什么的部分稱為消息操作;消息操作名類似于函數(shù)名,其本質(zhì)區(qū)別在于:函數(shù)名代表一段可執(zhí)行的代碼,但消息操作名具體功能的選定還取決于接收消息的對(duì)象本身函數(shù)調(diào)用是過程式的(如何做),消息傳送是說明

10、式的(做什么),具體如何做,由對(duì)象根據(jù)收到的消息自行確定。,20,屬于某類的具體對(duì)象就是該類的實(shí)例。一個(gè)類的不同實(shí)例必定具有:相同的操作(或行為)的集合相同的信息結(jié)構(gòu)或?qū)傩远x,但可以有不同的屬性值不同的對(duì)象標(biāo)識(shí),7.2面向?qū)ο蟮幕靖拍?21,7.2面向?qū)ο蟮幕靖拍?實(shí)例(Instance),22,7.2面向?qū)ο蟮幕靖拍?繼承(Inheritance)是自動(dòng)共享類、子類和對(duì)象中的方法和數(shù)據(jù)的機(jī)制。是實(shí)現(xiàn)從可重用成分構(gòu)造系統(tǒng)

11、的最有效的特性,23,封裝(Encapsulation)封裝封裝是一種信息隱蔽技術(shù),就是把對(duì)象的屬性和行為相結(jié)合構(gòu)成一個(gè)獨(dú)立的基本單位,用戶只能見到對(duì)象封裝界面上的信息,對(duì)象內(nèi)部對(duì)用戶是隱蔽的。封裝的目的在于將對(duì)象的使用者和對(duì)象的設(shè)計(jì)者分開,使用者不必知道行為實(shí)現(xiàn)的細(xì)節(jié),只需使用設(shè)計(jì)者提供的消息訪問對(duì)象,7.2面向?qū)ο蟮幕靖拍?24,PosColor… …,公有消息,私有消息,,,,存儲(chǔ)結(jié)構(gòu),方法,協(xié)..……議,,一個(gè)對(duì)象,7.

12、2面向?qū)ο蟮幕靖拍?封裝的定義為:(1)一個(gè)限定所有對(duì)象內(nèi)部軟件的一個(gè)清楚界面;(2)一個(gè)描述這個(gè)對(duì)象和其它對(duì)象之間相互作用的接口(3)受保護(hù)的內(nèi)部實(shí)現(xiàn),這個(gè)實(shí)現(xiàn)給出了由軟件對(duì)象提供的功能細(xì)節(jié),實(shí)現(xiàn)細(xì)節(jié)不能在定義這個(gè)對(duì)象的類的外面訪問,25,7.2面向?qū)ο蟮幕靖拍?多態(tài)(Polymorphism)即一個(gè)名字具有多種語義。同一對(duì)象接收到不同消息采用不同的行為方式不同對(duì)象收到相同消息時(shí)產(chǎn)生不同的動(dòng)作重載(overload)

13、動(dòng)態(tài)綁定類屬,26,面向?qū)ο笙到y(tǒng)分析與設(shè)計(jì),7.1 面向?qū)ο蟮陌l(fā)展歷史7.2 面向?qū)ο蟮幕靖拍?.3 面向?qū)ο蟮姆椒ㄕ?.4 面向?qū)ο蟮姆治?.5 面向?qū)ο蟮脑O(shè)計(jì)7.6 面向?qū)ο笈c統(tǒng)一建模語言,27,分析方法的改進(jìn),分析工作面臨的問題問題域和系統(tǒng)任務(wù)通信需求變化重用,28,7.3面向?qū)ο蟮姆椒ㄕ?處理復(fù)雜問題的原則抽象(Abstract)封裝(Encapsulation)繼承(Inheritance)相關(guān)

14、(Association)消息通訊(Communication with message)組織方法(Method of organization)規(guī)模(Scale)行為規(guī)范(Categories of behavior),29,7.3面向?qū)ο蟮姆椒ㄕ?從認(rèn)識(shí)論看面向?qū)ο?信息系統(tǒng)認(rèn)識(shí)的三個(gè)方面,30,采用面向?qū)ο蟮母拍罴捌涑橄髾C(jī)制建立應(yīng)用系統(tǒng)模型,將系統(tǒng)開發(fā)視為對(duì)象模型的轉(zhuǎn)換和不斷細(xì)化過程優(yōu)點(diǎn)與其他建模方法的關(guān)系,7.

15、3面向?qū)ο蟮姆椒ㄕ?31,面向?qū)ο蠓椒ǖ膬?yōu)點(diǎn),它是在人類思維的3個(gè)基本方法的框架(即:對(duì)象分類、封裝和繼承)之內(nèi)定義并表達(dá)需求;主要集中于對(duì)問題空間的分析與理解;使屬性和對(duì)屬性的服務(wù)作為一個(gè)整體看待;使對(duì)象之間的依賴達(dá)到最??;可以對(duì)一類對(duì)象的共同特征顯式的表示;使分析與設(shè)計(jì)擁有共同和一致的基本表示,32,分析方法的改進(jìn),分析方法功能分解法數(shù)據(jù)流法信息模擬法面向?qū)ο蠓?33,分析方法的改進(jìn),分析方法 – 功能分解法功能

16、分解 = 功能 + 子功能 + 功能接口將問題域映射為功能和子功能。為系統(tǒng)必須提供的功能和子功能編寫文檔。產(chǎn)生的規(guī)格說明只能間接的反映問題域。,34,分析方法的改進(jìn),分析方法 – 數(shù)據(jù)流法(結(jié)構(gòu)化方法)數(shù)據(jù)流法 = 數(shù)據(jù)流 + 數(shù)據(jù)變換 + 數(shù)據(jù)存儲(chǔ) + 過程規(guī)格說明 + 數(shù)據(jù)字典將現(xiàn)實(shí)世界映射為數(shù)據(jù)流圖。刻畫數(shù)據(jù)從輸入到輸出的信息流。面向?qū)ο蠓椒ù砹讼鄬?duì)于面向過程的根本性變化。面向過程的觀點(diǎn)是系統(tǒng)被分解后,用過程來實(shí)現(xiàn)

17、系統(tǒng)的基礎(chǔ)構(gòu)造,把對(duì)問題域的分析轉(zhuǎn)化為對(duì)求解域的設(shè)計(jì),分析的結(jié)果是設(shè)計(jì)階段的輸入,35,分析方法的改進(jìn),分析方法 – 信息模擬法信息模擬法 = 對(duì)象 + 屬性 + 關(guān)系 + 超類/子類 + 有關(guān)對(duì)象面向?qū)ο蠓椒ㄏ鄬?duì)于面向數(shù)據(jù)的方法學(xué)僅僅是適當(dāng)增補(bǔ),36,分析方法的改進(jìn),分析方法 – 面向?qū)ο蠓嫦驅(qū)ο蠓?= 對(duì)象 + 類 + 繼承 + 消息通信 面向?qū)ο蟮姆椒ㄊ遣捎脴?gòu)造模型的觀點(diǎn)。在系統(tǒng)的開發(fā)過程中,各個(gè)步驟的共同目標(biāo)是建

18、造一個(gè)問題域的模型,因此雖然分析與設(shè)計(jì)是不同的系統(tǒng)開發(fā)階段,但它們?nèi)菫閷?shí)現(xiàn)這一目的而努力的。系統(tǒng)分析不是設(shè)計(jì)的輸入,從分析到設(shè)計(jì)的轉(zhuǎn)移是一致的。這就是在分析階段把系統(tǒng)分解成實(shí)體及其關(guān)系,設(shè)計(jì)則是解決這些實(shí)體和關(guān)系如何實(shí)現(xiàn)的問題,37,面向?qū)ο蟮姆椒ㄕ?解決語言的鴻溝,38,面向?qū)ο蟮姆椒ㄕ?語言的鴻溝變窄,39,面向?qū)ο蟮姆椒ㄕ?分析與設(shè)計(jì)的鴻溝,40,面向?qū)ο蠓治鲈O(shè)計(jì)的基本思路,識(shí)別對(duì)象和類通過一組互相關(guān)聯(lián)的模型詳細(xì)表示類之間的關(guān)

19、系和對(duì)象的行為,并最終描述系統(tǒng)的信息、功能和行為靜態(tài)邏輯模型動(dòng)態(tài)邏輯模型,41,識(shí)別對(duì)象和類,為了發(fā)現(xiàn)對(duì)象和類,開發(fā)人員要在系統(tǒng)需求分析的文檔中查找名詞和名詞短語,包括可感知的事物(雷達(dá)、火炮、傳感器);角色(指揮官、操作員、士兵);事件(線路中斷、登陸、收到命令);互相作用(指揮、控制、戰(zhàn)斗);人員;場所;組織;設(shè)備;地點(diǎn)等發(fā)現(xiàn)重要的對(duì)象和其責(zé)任,是面向?qū)ο蠓治鲈O(shè)計(jì)的初期重要的技術(shù),42,靜態(tài)邏輯模型,靜態(tài)邏輯模型描述實(shí)例化(類

20、成員關(guān)系)、關(guān)聯(lián)、聚集(整體/部分)、和一般化(繼承)等關(guān)系。這被稱為對(duì)象模型。一般化關(guān)系表示屬性和方法的繼承關(guān) 系。定義對(duì)象模型的圖形符號(hào)體系通常是從用于數(shù)據(jù)建模的實(shí)體關(guān)系圖導(dǎo)出的。對(duì)設(shè)計(jì)十分重要的約束,如基數(shù)(一對(duì)一、一對(duì)多、多對(duì)多),也在對(duì)象模型中表示,43,動(dòng)態(tài)邏輯模型,動(dòng)態(tài)邏輯模型描述對(duì)象之間的互相作用?;ハ嘧饔猛ㄟ^一組協(xié)同的對(duì)象,對(duì)象之間消息的有序的序列,加上對(duì)象的可見性定義,來定義系統(tǒng)運(yùn)行時(shí)的行為,44,面向?qū)ο?/p>

21、方法綜述,Booch方法Coad/Yourdon方法Jocobson方法(OOSE方法)Rambaugh方法(OMT方法)Wirfs-Brock方法RDD方法VMT方法,45,Booch方法,46,把系統(tǒng)的開發(fā)工作分為兩個(gè)部分:微觀過程和宏觀過程。,微觀過程,宏觀過程,Booch方法,47,Coad/Yourdon方法,五個(gè)層次的問題域模型,48,Jocobson方法(OOSE方法),使用實(shí)例(use case)驅(qū)動(dòng),它

22、建立的所有模型都是以使用實(shí)例模型為基礎(chǔ)的。使用實(shí)例——用以描述用戶和系統(tǒng)間如何交互的場景,49,Rambaugh方法(OMT方法),創(chuàng)建三個(gè)模型:對(duì)象模型(對(duì)象類、層次和關(guān)系的表示)、動(dòng)態(tài)模型(對(duì)象和系統(tǒng)行為的表示)和功能模型(高層的類似DFD的系統(tǒng)信息流的表示),50,主要分為分析、設(shè)計(jì)和實(shí)現(xiàn)三個(gè)階段。分析階段:確定對(duì)象模型、動(dòng)態(tài)模型和功能模型設(shè)計(jì)階段:系統(tǒng)設(shè)計(jì)和對(duì)象設(shè)計(jì)實(shí)現(xiàn)階段的細(xì)節(jié)和具體的實(shí)現(xiàn)環(huán)境有關(guān)OMT方法突出的特點(diǎn)

23、是在分析階段,它可以較為全面地描述系統(tǒng)的靜杰結(jié)構(gòu),所以0MT方法適合于數(shù)據(jù)密集型的信息系統(tǒng)的開發(fā)。,Rambaugh方法(OMT方法),51,Wirfs-Brock方法,評(píng)估客戶規(guī)約使用語法分析從規(guī)約中抽取候選類組合類以試圖標(biāo)識(shí)超類為每個(gè)類定義責(zé)任為每個(gè)類賦予責(zé)任標(biāo)識(shí)類之間的關(guān)系定義類之間基于責(zé)任的協(xié)作構(gòu)造類的層次表示以顯示繼承關(guān)系構(gòu)造系統(tǒng)的協(xié)作圖,52,RDD方法,主要思想強(qiáng)調(diào)對(duì)象行為以及對(duì)象間的關(guān)系 使用責(zé)任、合

24、作、合作者、顧客、服務(wù)者、合約等概念。它用擬人的手法把對(duì)象的行為比喻為責(zé)任,對(duì)象間的關(guān)系比喻為合作,具有責(zé)任的對(duì)象比喻為合作者。基本過程探查階段。尋找類,確定責(zé)任和合作 分析階段。細(xì)化對(duì)象的行為和服務(wù) 工具:CRC卡片,53,CRC卡片,54,RDD方法對(duì)于小型項(xiàng)目具有較好的靈活性和適應(yīng)性。但是對(duì)于大型系統(tǒng),這個(gè)方法則顯得力不從心了。,RDD方法,55,VMT方法,作為第三代面向?qū)ο箝_發(fā)方法,VMT方法結(jié)合了OMT,OOSE,R

25、DD等方法的優(yōu)點(diǎn),并且結(jié)合了可視化編程和原型技術(shù) 選擇OMT方法作為整個(gè)方法的框架,并采用其表示方法 引入了OOSE方法中的使用實(shí)例概念加強(qiáng)對(duì)需求的分析引入了RDD方法中的CRC卡片代替OMT方法中用數(shù)據(jù)流圖表示的功能模型,56,面向?qū)ο笙到y(tǒng)分析與設(shè)計(jì),7.1 面向?qū)ο蟮陌l(fā)展歷史7.2 面向?qū)ο蟮幕靖拍?.3 面向?qū)ο蟮姆椒ㄕ?.4 面向?qū)ο蟮姆治?.5 面向?qū)ο蟮脑O(shè)計(jì)7.6 面向?qū)ο笈c統(tǒng)一建模語言,57,面向?qū)ο蟮姆?/p>

26、析,面向?qū)ο蠓治龇椒ń⒌恼J(rèn)識(shí)基礎(chǔ):從現(xiàn)實(shí)世界中區(qū)分特定的客體及其屬性。 區(qū)分事物的整體及其組成部分。 對(duì)不同種類的事物給出形式化表示,然后在此基礎(chǔ)上加以區(qū)分。,58,面向?qū)ο蟮姆治?面向?qū)ο蟮南到y(tǒng)分析原則:抽象封裝 繼承 分類聚合關(guān)聯(lián)消息通信粒度控制,59,面向?qū)ο蟮姆治?面向?qū)ο蟮南到y(tǒng)分析模型的過程:發(fā)現(xiàn)對(duì)象,定義問題域的類;識(shí)別對(duì)象的內(nèi)部特征(定義屬性,定義方法)識(shí)別對(duì)象的外部關(guān)系建立一般-特殊結(jié)構(gòu);

27、建立整體-部分結(jié)構(gòu)建立實(shí)例連接;建立消息通信(上述三個(gè)活動(dòng)建立基本模型)劃分主題,建立主題圖定義Use-Case,建立交互圖(上述兩個(gè)過程在某些情況下可以省略)給出詳細(xì)說明原型開發(fā),60,面向?qū)ο蟮姆治?面向?qū)ο蟮南到y(tǒng)分析工作的前提:(1)研究用戶需求,明確系統(tǒng)責(zé)任(2)研究問題域(3)確定系統(tǒng)邊界,61,面向?qū)ο蟮姆治?面向?qū)ο蟮姆治鰞?nèi)容:標(biāo)識(shí)發(fā)現(xiàn)對(duì)象定義屬性定義方法結(jié)構(gòu)的認(rèn)定主題的認(rèn)定,62,標(biāo)識(shí)對(duì)象,

28、步驟和內(nèi)容尋找對(duì)象那些可以作為對(duì)象對(duì)候選對(duì)象審查和篩選質(zhì)疑和調(diào)整對(duì)象命名,63,標(biāo)識(shí)對(duì)象,對(duì)象表示,表示一個(gè)類和對(duì)象,表示一個(gè)類,類的名稱,類的屬性,類的方法,64,標(biāo)識(shí)對(duì)象,尋找對(duì)象考慮:系統(tǒng)責(zé)任素材:問題域、文字說明、圖形表示等等。,65,標(biāo)識(shí)對(duì)象,哪些可以作為對(duì)象問題域人員、組織、物品、設(shè)備、事件、表格、結(jié)構(gòu);系統(tǒng)邊界從系統(tǒng)外部邊界出發(fā),尋找系統(tǒng)以外的與系統(tǒng)直接交互的相關(guān)人員、外部系統(tǒng)、設(shè)備,從而找出對(duì)象系

29、統(tǒng)責(zé)任,66,標(biāo)識(shí)對(duì)象,對(duì)候選對(duì)象的審查和篩選舍棄無用對(duì)象對(duì)象精簡,67,標(biāo)識(shí)對(duì)象,質(zhì)疑和調(diào)整類的屬性或服務(wù)不適合該類的全部對(duì)象 屬性和服務(wù)相同的類 屬性和服務(wù)相似的類同一事物的重復(fù)描述,68,標(biāo)識(shí)對(duì)象,命名對(duì)象原則上講,對(duì)象名應(yīng)該能描述對(duì)象的實(shí)例的基本特征,因此,為對(duì)象命名的主要方法可以是:?用單個(gè)名詞或形容詞加名詞作為對(duì)象名;?采用標(biāo)準(zhǔn)名稱作為對(duì)象名;?盡量采用可讀性好的名字。,69,標(biāo)識(shí)對(duì)象例子,,假定商場銷售

30、系統(tǒng)有如下功能需求:為顧客選購的商品計(jì)價(jià)、收費(fèi)、打印清單;記錄每一種商品的編號(hào)、單價(jià)及現(xiàn)有數(shù)量;幫助供貨員發(fā)現(xiàn)哪些商品將要脫銷,以及時(shí)補(bǔ)充貨源;隨時(shí)按上級(jí)系統(tǒng)的要求報(bào)告當(dāng)前的款貨數(shù)量、增減商品種類或修改商品定價(jià);交接班時(shí)結(jié)算貨款數(shù)目,報(bào)告上級(jí)系統(tǒng)。系統(tǒng)以外與系統(tǒng)進(jìn)行交互的活動(dòng)者有收款員、供貨員和它的上級(jí)系統(tǒng)。據(jù)此,可以啟發(fā)我們發(fā)現(xiàn)如下一些對(duì)象:收款機(jī);供貨員;上級(jí)系統(tǒng)接口??紤]該系統(tǒng)問題域內(nèi)部的事物和系統(tǒng)責(zé)任可以發(fā)現(xiàn)下述對(duì)

31、象:商品;特價(jià)商品;計(jì)量商品;商品一覽表:考慮系統(tǒng)責(zé)任,根據(jù)商品編號(hào)快速地找到相應(yīng)商品的信息,需要設(shè)立一個(gè)“商品一覽表”對(duì)象,它保持一個(gè)商品目錄表,并提供對(duì)商品項(xiàng)的檢索及增刪等功能。銷售事件;賬冊(cè):記錄一個(gè)收款員在一個(gè)班次內(nèi)經(jīng)手的。,70,標(biāo)識(shí)對(duì)象例子,,例子以商場銷售管理系統(tǒng)為例建立OOA的模型 。,71,定義屬性,1. 認(rèn)定屬性2. 確定屬性的位置3. 重新修改關(guān)于對(duì)象的認(rèn)定4. 對(duì)屬性及實(shí)例關(guān)聯(lián)進(jìn)行規(guī)格說明,72,認(rèn)

32、定一個(gè)屬性需要3個(gè)基本原則。 首先,要確認(rèn)它對(duì)于相應(yīng)對(duì)象或分類結(jié)構(gòu)的每一個(gè)實(shí)例都是適用的。 其次,一個(gè)屬性即使對(duì)某種對(duì)象的實(shí)例都是適用的,也還要考察在現(xiàn)實(shí)世界中它與這種事物的關(guān)系是不是最密切。 第三,認(rèn)定的屬性應(yīng)當(dāng)是一種相對(duì)的原子概念,也就是說,不依賴于并列的其他屬性就可以被理解。,定義屬性-認(rèn)定屬性,73,定義屬性-確定屬性的位置,確定屬性的位置 確定一個(gè)屬性的位置主要是針對(duì)分類結(jié)構(gòu)而言,采用的是繼承的

33、觀點(diǎn)。低層對(duì)象的共有屬性應(yīng)在上層對(duì)象中定義,而自己只定義特有的屬性。,74,這里應(yīng)重點(diǎn)注意下面幾種情況:不能適用于對(duì)象的所有實(shí)例的屬性;只有一個(gè)屬性的對(duì)象;值的數(shù)目不定的對(duì)象;適配參數(shù)。,定義屬性-重新修改關(guān)于對(duì)象的認(rèn)定,75,關(guān)于屬性與實(shí)例關(guān)聯(lián)的說明要包含在對(duì)象的規(guī)格說明之中,對(duì)屬性的說明,包括屬性的名、描述、約束和范疇;對(duì)實(shí)例關(guān)聯(lián)的說明,應(yīng)給出關(guān)聯(lián)的雙方(一般用對(duì)象的名來表示)和映射的種類。,常見的關(guān)聯(lián)類型有表示物理位置的(

34、如毗鄰、包含),動(dòng)作傳遞的(如驅(qū)動(dòng)、發(fā)動(dòng)),通訊聯(lián)系的(如告訴),所有關(guān)系的(如擁有)和條件滿足的(為...工作、與...結(jié)婚、管理)等等。,定義屬性-對(duì)屬性及實(shí)例關(guān)聯(lián)進(jìn)行規(guī)格說明,76,屬性例子,77,定義方法,1. 認(rèn)定基礎(chǔ)的方法2. 認(rèn)定輔助方法3. 認(rèn)定消息關(guān)聯(lián)4. 對(duì)方法進(jìn)行規(guī)格說明,78,定義方法,認(rèn)定基礎(chǔ)的方法 在一個(gè)OOA模型中,對(duì)每一種對(duì)象或分類結(jié)構(gòu)要考慮的基礎(chǔ)方法有三類:存在(實(shí)例的添加、修改、刪除和選

35、擇)、計(jì)算(處理)、監(jiān)控(狀態(tài))。對(duì)這三類方法的認(rèn)定,就是對(duì)一個(gè)系統(tǒng)中專有的方法進(jìn)行認(rèn)定的基本方面。,79,定義方法,認(rèn)定輔助方法 在一個(gè)OOA模型中,對(duì)每一種對(duì)象或分類結(jié)構(gòu)所要考慮的輔助方法有兩類:對(duì)象的生存史、狀態(tài)-事件-響應(yīng)。,80,定義方法,認(rèn)定消息關(guān)聯(lián) 消息關(guān)聯(lián)是事件-響應(yīng)和數(shù)據(jù)流的一種結(jié)合。換句話說,每一個(gè)消息關(guān)聯(lián)都表示著一條要發(fā)出的消息和收到這條消息后要作出的一個(gè)響應(yīng)。,81,定義方法,對(duì)方法進(jìn)行規(guī)格說明

36、 對(duì)方法進(jìn)行規(guī)格說明的重點(diǎn)是那些要求使外部可觀察到的行為,目的是強(qiáng)調(diào)可測(cè)試的部分,作為將來對(duì)系統(tǒng)需求進(jìn)行驗(yàn)證、對(duì)系統(tǒng)實(shí)現(xiàn)進(jìn)行驗(yàn)收和測(cè)試的基準(zhǔn)。,82,方法例子,83,含義:結(jié)構(gòu)指的是對(duì)象的多種組織方式。作用:用來反映問題域中的復(fù)雜事物和復(fù)雜關(guān)系兩種結(jié)構(gòu):分類結(jié)構(gòu)- 組裝結(jié)構(gòu)-標(biāo)識(shí)結(jié)構(gòu)的內(nèi)容如下:,標(biāo)識(shí)結(jié)構(gòu)和連接,1. 分類結(jié)構(gòu)2. 組裝結(jié)構(gòu),事物的類別之間的組織關(guān)系,整體與部件之間的組合關(guān)系,3. 靜態(tài)連接

37、4. 動(dòng)態(tài)連接,84,分類結(jié)構(gòu)-(一般特殊關(guān)系),定義: 如果類A具有類B的全部屬性和服務(wù),而且具有自己特有的某些屬性或服務(wù),則A叫作B的特殊類,B叫作A的一般類。,85,分類結(jié)構(gòu)的表示,表示方法,,,86,分類結(jié)構(gòu)的認(rèn)定,分類結(jié)構(gòu)一般是樹型,但并非總是樹型。當(dāng)對(duì)象之間有多重繼承的時(shí)候,就會(huì)有復(fù)雜的分類結(jié)構(gòu)。,87,分類結(jié)構(gòu)的認(rèn)定,認(rèn)定分類結(jié)構(gòu),總的原則是先從一般向特殊考慮,再從特殊向一般考慮。,對(duì)于一種對(duì)象,首先認(rèn)為它具有最

38、一般的含義。看它在問題域中具有不同特殊性的可能性,即對(duì)于該對(duì)象每一種可能的特殊性,考慮:. 是否可以用不同的屬性和(或)方法來描述;. 是否反映了現(xiàn)實(shí)世界中有意義的特殊性;. 是否在問題域之內(nèi),即是否限定在目標(biāo)系統(tǒng)之內(nèi)。,確定了對(duì)象的特殊性之后,就可以令共有的屬性和方法從屬于一般含義的對(duì)象,而令擴(kuò)充的特殊屬性和方法分屬于特殊含義的對(duì)象,這時(shí)原來認(rèn)定的對(duì)象將會(huì)發(fā)生分解。飛機(jī)→民用+軍用,88,分類結(jié)構(gòu)的認(rèn)定,認(rèn)定分類結(jié)構(gòu),總的原則

39、是先從一般向特殊考慮,再從特殊向一般考慮。,然后,再從特殊向一般考慮。對(duì)于一種對(duì)象,在認(rèn)為它具有某種特殊的含義之后考察:. 問題域中是否還有其它對(duì)象與這種對(duì)象有一些屬性和方法是共有的。若有,則意味著可能存在某種更一般化的對(duì)象,能夠把這些共有的屬性和(或)方法概括在一起;. 如果引入某一種更一般化的對(duì)象,是否反映了現(xiàn)實(shí)世界中更有意義的一般性;. 如果引入某一種更一般化的對(duì)象,那么這種對(duì)象是否在問題域內(nèi)。汽車+飛機(jī)→交通工具,89,

40、一般-特殊結(jié)構(gòu),,,,,,,表示一般與特殊結(jié)構(gòu),90,分類結(jié)構(gòu)的認(rèn)定,舉例。牛奶,羊毛,豬肉三個(gè)對(duì)象,好象風(fēng)馬牛不相及。,但它們?cè)趩栴}域基層部隊(duì)農(nóng)副業(yè)生產(chǎn)管理中都同屬于“農(nóng)副業(yè)產(chǎn)品”這個(gè)一般類。,91,組裝結(jié)構(gòu),如果對(duì)象A是對(duì)象B的一個(gè)組成部分,則稱B是A整體對(duì)象,A是B的部分對(duì)象。并將B和A之間的關(guān)系稱作整體-部分關(guān)系或“has-a”關(guān)系。,組裝結(jié)構(gòu)又稱為整體-部分結(jié)構(gòu),用于描述系統(tǒng)中各類對(duì)象之間的組成關(guān)系,通過它可以看出某個(gè)類

41、的對(duì)象以另外一些類的對(duì)象作為其組成部分。,92,組裝結(jié)構(gòu)的表示,表示,,93,組裝結(jié)構(gòu)的認(rèn)定,認(rèn)定組裝結(jié)構(gòu),總的原則是先從整體向部件考慮,再從部件向整體考慮。,對(duì)于一種對(duì)象,首先認(rèn)為它是一個(gè)整體。這時(shí),看它在問題域中含有部件的可能性,即考察:. 它的部件是什么?. 對(duì)于它的一個(gè)部件,系統(tǒng)是否必要記錄每一個(gè)實(shí)例或值?. 對(duì)于它的一個(gè)部件,每一個(gè)實(shí)例或值是否都可以用屬性來描述?. 它的部件是否反映了現(xiàn)實(shí)世界中存在的部件?. 它的部

42、件是否限定在目標(biāo)系統(tǒng)之內(nèi)?飛機(jī)→引擎、機(jī)翼、座位,94,組裝結(jié)構(gòu)的認(rèn)定,認(rèn)定組裝結(jié)構(gòu),總的原則是先從整體向部件考慮,再從部件向整體考慮。,之后,再從部件向整體考慮。對(duì)于一種對(duì)象,假定它可能是另一種對(duì)象的一個(gè)部件,可以考慮:. 這種對(duì)象適合什么樣的組裝關(guān)系?. 還需要哪些對(duì)象與這種對(duì)象一起來構(gòu)成另一種對(duì)象?. 對(duì)于這樣的組裝而成的對(duì)象,系統(tǒng)是否有必要記錄它的一個(gè)實(shí)例?. 這樣組裝而成的對(duì)象在現(xiàn)實(shí)世界中是否有意義?. 這樣組裝

43、而成的對(duì)象是否限定在目標(biāo)系統(tǒng)之內(nèi)?單位 職員 駕駛證注冊(cè),95,整體-部分結(jié)構(gòu),,,,,表示整體與部分結(jié)構(gòu),,,,,,,,96,標(biāo)識(shí)結(jié)構(gòu)例子,(1)分類結(jié)構(gòu)一般類“商品”和它的兩個(gè)特殊類“特價(jià)商品”及“計(jì)量商品”構(gòu)成分類結(jié)構(gòu)。在這個(gè)結(jié)構(gòu)中一部分屬性和服務(wù)是多態(tài)的。(2)組裝結(jié)構(gòu)“商品一覽表”和“商品”構(gòu)成一個(gè)組裝結(jié)構(gòu),通過前者的“商品目錄”屬性體現(xiàn)這種關(guān)系?!百~冊(cè)”和“銷售事件”構(gòu)成另一個(gè)組裝結(jié)構(gòu),通過前者的“銷售事件表

44、”屬性體現(xiàn)這種關(guān)系。,97,實(shí)例關(guān)聯(lián),認(rèn)定和定義實(shí)例關(guān)聯(lián) 實(shí)例關(guān)聯(lián)是一個(gè)實(shí)例集合到另一個(gè)實(shí)例集合的映射。稱為實(shí)例關(guān)聯(lián)而不是對(duì)象關(guān)聯(lián),是因?yàn)橛嘘P(guān)聯(lián)關(guān)系的兩個(gè)實(shí)例集合,既可以是兩種對(duì)象的實(shí)例集合,也可以是同一種對(duì)象之實(shí)例集合的兩個(gè)子集。,98,實(shí)例關(guān)聯(lián)又稱為鏈接,用于表達(dá)對(duì)象之間的靜態(tài)關(guān)系。,靜態(tài)關(guān)系是指可通過對(duì)象屬性來表示的一個(gè)對(duì)象對(duì)另一個(gè)對(duì)象的依賴關(guān)系。,實(shí)例關(guān)聯(lián),99,消息連接,在應(yīng)用面對(duì)象方法構(gòu)造的系統(tǒng)中,消息體現(xiàn)了對(duì)象行為

45、之間的依賴關(guān)系。它是實(shí)現(xiàn)對(duì)象之間的動(dòng)態(tài)聯(lián)系,使系統(tǒng)成為一個(gè)能活動(dòng)的整體,并使各個(gè)部分能夠協(xié)調(diào)工作的關(guān)鍵因素。,100,消息連接,消息特征語法上,消息的描述應(yīng)包括:消息名;入口參數(shù);返回參數(shù)。語義上,消息應(yīng)包括:發(fā)送者;接收者;其它需要的傳送的信息。,101,消息連接,OOA方法應(yīng)該識(shí)別和表示的主要問題包括:(1)對(duì)象之間是否存在著某種消息?(2)每一種消息是從發(fā)送者的哪個(gè)服務(wù)發(fā)出的?是由接收者的哪個(gè)服務(wù)響應(yīng)和處理的?(3)消息

46、是同步的還是異步的?(4)發(fā)送者是否等待消息的處理結(jié)果?,102,消息連接,定義: 消息連接是OOA和OOD模型中對(duì)對(duì)象之間行為依賴關(guān)系的表示。即:若類A的對(duì)象在它的服務(wù)執(zhí)行時(shí)需要向類B的對(duì)象發(fā)送消息,則稱存在著從A到B的消息連接。,103,消息連接,根據(jù)對(duì)上述問題的思考與回答,在相應(yīng)的類符號(hào)之間畫出用虛線箭頭表示的消息連接符。,104,標(biāo)識(shí)結(jié)構(gòu)例子,105,定義主題,1. 主題的概念2. 主題的表示方法3. 主題的劃分

47、,人同時(shí)可以考慮和理解的問題數(shù)目受到記憶能力和處理能力的制約,為7±2個(gè)。因此人類在認(rèn)識(shí)復(fù)雜事物時(shí),學(xué)會(huì)了采用粒度控制的原則。當(dāng)對(duì)象太多時(shí),人們對(duì)它觀察和理解時(shí)就會(huì)感到困難。需要引進(jìn)一種比類和對(duì)象抽象層次更高、粒度更大的概念,用以建立系統(tǒng)的高層抽象視圖。OOA方法將這種概念稱為主題。,為什么要引入主題的概念?,106,主題的定義,主題是把一組具有較強(qiáng)聯(lián)系的類組織在一起而得到的類的集合。主題:是一種指導(dǎo)研究大型復(fù)雜模型的機(jī)制

48、機(jī)制:控制必須考慮的模型數(shù)目。同時(shí)可以給出OOA模型的總體概貌依據(jù):整體 – 部分關(guān)系的擴(kuò)充。,107,主題的概念,主題的概念具有以下特點(diǎn):(1)它是由一組類構(gòu)成的集合,但它本身并不是一個(gè)類。(2)一個(gè)主題內(nèi)部的對(duì)象類應(yīng)具有某種意義上的內(nèi)在聯(lián)系。每個(gè)主題內(nèi)部應(yīng)該是高內(nèi)聚的,各個(gè)主題之間應(yīng)該是低耦合的。(3)主題的劃分有一定的靈活性或隨意性。強(qiáng)調(diào)的重點(diǎn)不同可以得到不同的主題劃分,可能每一種劃分都是合理的。,108,主題的表示方法

49、,主題有三種表示方式:壓縮方式-半展開方式-全展開方式-,帶編號(hào)和主題名的矩形,上欄填寫主題的編號(hào)和主題名。下欄列出這個(gè)主題中所包含的類和下層主題名,在類圖上用一個(gè)多邊形框出這個(gè)主題所包含的類符號(hào),并在凸角位置上標(biāo)出主題的編號(hào);它的內(nèi)部是類圖上原有的全部內(nèi)容,在OOA工具的幫助下,主題的展開與壓縮可以很方便的進(jìn)行,109,主題(子系統(tǒng))的圖形化表示,主題1,主題2,主題3,主題4,主題5,,,,,,,,110,主題的劃分,主題的

50、劃分包含兩個(gè)部分(步驟)的工作:主題的劃分主題的合并,一種是自底向上的。即,先建立類圖,然后把類圖中每一組聯(lián)系較強(qiáng)的類組織為一個(gè)主題。如果主題數(shù)量仍然大多,則進(jìn)一步把聯(lián)系較強(qiáng)的小主題組織成一個(gè)大主題,直到系統(tǒng)中最上層的主題數(shù)量為七個(gè)左右。,基本方法,111,主題的劃分,主題的劃分包含兩個(gè)部分(步驟)的工作:主題的劃分主題的合并,另一種方式是自頂向下的。即先對(duì)系統(tǒng)做初步的分析,確定幾個(gè)大的主題,每個(gè)主題相當(dāng)于一個(gè)子系統(tǒng),按這些子系

51、統(tǒng)進(jìn)行分工,各個(gè)分析小組對(duì)自己分工的子系統(tǒng)進(jìn)行正規(guī)的面向?qū)ο蠓治?,建立各個(gè)子系統(tǒng)(主題)中的類圖。最后各個(gè)小組的分析結(jié)果將合并為一個(gè)大的OOA模型。,基本方法,112,主題的劃分,把類圖中的類劃分到一些最低層的主題中。類圖中的每個(gè)分類結(jié)構(gòu)和每個(gè)組裝結(jié)構(gòu)都是一組聯(lián)系較為緊密的類,所以首先考慮把每個(gè)結(jié)構(gòu)作為一個(gè)主題。對(duì)于分類結(jié)構(gòu),可以用這個(gè)結(jié)構(gòu)中最上層一般類的類名作為主題名。有少量交叉的兩個(gè)結(jié)構(gòu),可以劃分為兩個(gè)主題;對(duì)于交叉部分大多而很

52、難看成兩個(gè)結(jié)構(gòu)的,可以劃分到一個(gè)主題,并為它取一個(gè)合適的主題名。對(duì)于組裝結(jié)構(gòu),可以用這個(gè)結(jié)構(gòu)中最上層整體類的類名作為主題名。通過實(shí)例連接互相聯(lián)系的類可考慮劃分到一個(gè)主題中。剩下的一些既不屬于任何結(jié)構(gòu),也沒有實(shí)例連接的類。,113,主題的合并,主題合并工作是把一些較小的主題合并為一個(gè)較大的主題。向上抽象一層。,(1)根據(jù)問題域的情況,如果某幾個(gè)主題所包含的對(duì)象類在概念上比較接近,或者有較強(qiáng)的相關(guān)性,則可考慮合并為一個(gè)主題。 (2)

53、考慮系統(tǒng)責(zé)任,如果某幾個(gè)主題所涉及的系統(tǒng)責(zé)任有較大的相關(guān)性,或者說,它們的功能同屬某項(xiàng)大的功能,則可考慮合并為一個(gè)主題。 (3)在類圖上觀察各個(gè)主題之間的關(guān)系強(qiáng)弱,把強(qiáng)耦合的(即各種關(guān)系較多的)主題合并為一個(gè)主題。,114,定義主題的例子,115,116,面向?qū)ο笙到y(tǒng)分析與設(shè)計(jì),7.1 面向?qū)ο蟮陌l(fā)展歷史7.2 面向?qū)ο蟮幕靖拍?.3 面向?qū)ο蟮姆椒ㄕ?.4 面向?qū)ο蟮姆治?.5 面向?qū)ο蟮脑O(shè)計(jì)7.6 面向?qū)ο笈c統(tǒng)一建模語

54、言,117,面向?qū)ο蟮脑O(shè)計(jì),問題域部分的設(shè)計(jì)人機(jī)交互部分的設(shè)計(jì)任務(wù)管理部分的設(shè)計(jì)數(shù)據(jù)管理部分的設(shè)計(jì)OOD的評(píng)價(jià)標(biāo)準(zhǔn),118,從OOA到OOD不是一個(gè)突變的過程, OOA的結(jié)果符合OOD的問題域部分(PDC),OOD是在對(duì)OOA的結(jié)果作深入研究的基礎(chǔ)上的改動(dòng)和增補(bǔ),這是一個(gè)循序漸進(jìn)的過程。,,面向?qū)ο蟮脑O(shè)計(jì),119,人機(jī)交互部分(HIC) 根據(jù)用戶選用的圖形用戶界面系統(tǒng)(GUI)和特定用戶對(duì)人機(jī)界面的要求而設(shè)計(jì)的系

55、統(tǒng)使用界面。它很大程度上依賴于所用的圖形用戶界面環(huán)境(如MS-Windows、Linux等),由新定義的人機(jī)界面類和對(duì)象組成。,,面向?qū)ο蟮脑O(shè)計(jì),120,任務(wù)管理部分(TMC) 用于定義系統(tǒng)中需要并發(fā)執(zhí)行的各個(gè)任務(wù)。包括任務(wù)的定義、通信和協(xié)調(diào),以及硬件分配、外部系統(tǒng)及設(shè)備約定,可能包括的類有“任務(wù)”類和“任務(wù)協(xié)調(diào)”類。,面向?qū)ο蟮脑O(shè)計(jì),121,數(shù)據(jù)管理部分(DMC) 按選定的數(shù)據(jù)管理系統(tǒng)而設(shè)計(jì)的負(fù)責(zé)對(duì)象的

56、存儲(chǔ)及檢索的系統(tǒng)組成部分。它與物理的數(shù)據(jù)管理方法無關(guān),可以是普通文件、帶標(biāo)記語言的文件、關(guān)系型數(shù)據(jù)庫、面向?qū)ο髷?shù)據(jù)庫等等??赡馨ǖ念愑小按鎯?chǔ)服務(wù)”類,協(xié)調(diào)每個(gè)需永久保存的對(duì)象的存儲(chǔ)。,面向?qū)ο蟮脑O(shè)計(jì),122,問題域部分的設(shè)計(jì),問題域部分的設(shè)計(jì)需要對(duì)OOA的結(jié)果加以增補(bǔ)和具體化:1.針對(duì)編程語言支持能力進(jìn)行調(diào)整2.增加一般類,提供共同協(xié)議3.為實(shí)現(xiàn)復(fù)用采取的設(shè)計(jì)策略4.提高性能5.提供數(shù)據(jù)管理部分6.完善對(duì)象細(xì)節(jié),123,針

57、對(duì)語言能力進(jìn)行調(diào)整,不同的實(shí)現(xiàn)語言對(duì)設(shè)計(jì)的影響是不同的,OOD階段需要將OOA階段得到的分析結(jié)果根據(jù)適用語言的進(jìn)行調(diào)整,主要包括:(1)語言對(duì)面向?qū)ο蟮闹С帜芰?。?)一般-特殊結(jié)構(gòu)和整體-部分結(jié)構(gòu)的調(diào)整。(3)其他方面,124,增加一般類,提供共同協(xié)議,在OOA中定義一般類的主要目的是:集中地描述問題域中事物的共同特性,將多個(gè)類都具有的特征提升到一般類中進(jìn)行表示。 在OOD中定義上述一般類的主要目的是:描述特定

58、條件下某些(全部或部分)類的共同實(shí)現(xiàn)策略,用一個(gè)一般類集中地給出多個(gè)類的實(shí)現(xiàn)都要使用的屬性和服務(wù)。,125,為復(fù)用采取的設(shè)計(jì)策略,軟件復(fù)用可分為程序代碼級(jí)、設(shè)計(jì)級(jí)和分析級(jí)等不同級(jí)別。 (1)直接復(fù)用:如果類庫中定義的類恰好與系統(tǒng)的要求完全相符,則可以直接在OOD模型中使用這個(gè)復(fù)用的類。 (2)通過繼承復(fù)用:如果可復(fù)用的類中屬性和服務(wù)都是系統(tǒng)中所需要的,但是并不完整,則可以通過繼承來復(fù)用。,126,改進(jìn)性能,影響性能的因素可分為三個(gè)方

59、面: (1)網(wǎng)絡(luò)傳輸時(shí)間 (2)數(shù)據(jù)存取時(shí)間 (3)數(shù)據(jù)處理時(shí)間 幾種可以改進(jìn)性能的措施:(1)在對(duì)象之間具有高度繁忙的消息流通的情況下,這種高度耦合可能需要把兩個(gè)或更多的類進(jìn)行合并;(2)在類及對(duì)象中擴(kuò)充一些保存臨時(shí)結(jié)果的屬性;(3)避開正常的數(shù)據(jù)抽象原則而允許服務(wù)從其它對(duì)象中強(qiáng)行獲得屬性值。,127,提供數(shù)據(jù)管理部分,為了提供數(shù)據(jù)管理部分,每個(gè)被保存的對(duì)象需要知道自己是怎樣被存儲(chǔ)的。 (1)第一種方法是“每個(gè)對(duì)象

60、自己保存自己”。 (2)第二種方法是,每個(gè)對(duì)象把自己傳送給數(shù)據(jù)管理部分,讓數(shù)據(jù)管理部分來存儲(chǔ)對(duì)象自己。 (3)第三種方法是,每個(gè)需要長期保存的對(duì)象由一個(gè)面向?qū)ο髷?shù)據(jù)庫管理系統(tǒng)(OO-DBMS)來管理。,128,增加低層細(xì)節(jié),底層細(xì)節(jié)一般包括: (1)彌補(bǔ)OOA模型的不足 (2)解決OOA階段推遲考慮的問題 (3)設(shè)計(jì)對(duì)象和服務(wù),129,人機(jī)交互部分的設(shè)計(jì),人機(jī)交互部分的設(shè)計(jì)主要包括人機(jī)交互使用的界面,突出人如何命令系統(tǒng)以及

61、系統(tǒng)如何向用戶提交信息,人在使用計(jì)算機(jī)過程中的感受直接影響到用戶對(duì)系統(tǒng)的接受程度。 人機(jī)界面部分不是純粹的設(shè)計(jì)和實(shí)現(xiàn)問題,很大程度上也是分析問題。,130,人機(jī)交互部分的設(shè)計(jì),人機(jī)交互部分的策略由以下幾點(diǎn)構(gòu)成:·對(duì)人分類;·描述每類人的任務(wù)腳本;·設(shè)計(jì)命令層次;·設(shè)計(jì)詳細(xì)的交互;·不斷原型化;·設(shè)計(jì)人機(jī)交互部分的類;,131,人機(jī)交互部分的設(shè)計(jì),例子的設(shè)計(jì)命令

62、層如下:系統(tǒng)登錄 商品銷售 商品維護(hù) 系統(tǒng)查詢 計(jì)價(jià) 增加商品 銷售記錄 收款 刪除商品 商品數(shù)量 打印購貨單 修改

63、商品 帳目 交接班 設(shè)定特價(jià)商品 統(tǒng)計(jì)銷售情況 缺貨登記,132,任務(wù)管理部分的設(shè)計(jì),任務(wù)又稱為進(jìn)程,若干任務(wù)并發(fā)執(zhí)行時(shí)叫做多任務(wù)。任務(wù)增加了設(shè)計(jì)、編碼和過程的復(fù)雜性,因此必須

64、細(xì)心地選擇并作最終調(diào)整。,133,定義每個(gè)任務(wù),(1)任務(wù)的內(nèi)容 首先要說明是什么任務(wù):為任務(wù)命名,并簡要地說明該任務(wù)。(2)如何協(xié)調(diào)任務(wù) 定義每個(gè)任務(wù)怎樣協(xié)調(diào)工作。(3)如何通信 定義每個(gè)任務(wù)如何通信。,134,數(shù)據(jù)管理部分的設(shè)計(jì),數(shù)據(jù)管理部分提供了在數(shù)據(jù)管理協(xié)調(diào)中存儲(chǔ)和檢索東西的基本結(jié)構(gòu)。數(shù)據(jù)管理部分旨在隔離數(shù)據(jù)管理方案的影響,不管該方案是普通文件、關(guān)系型數(shù)據(jù)庫、面向?qū)ο髷?shù)據(jù)庫或其它方式的。,

65、135,數(shù)據(jù)管理部分的設(shè)計(jì),設(shè)計(jì)數(shù)據(jù)管理部分既包括數(shù)據(jù)存放方法的設(shè)計(jì),也包括相應(yīng)服務(wù)的設(shè)計(jì)。數(shù)據(jù)存放設(shè)計(jì) 按普通文件、關(guān)系或面向?qū)ο蟮臄?shù)據(jù)管理來設(shè)計(jì)數(shù)據(jù)的存放。設(shè)計(jì)相應(yīng)的服務(wù) 為每個(gè)需要存儲(chǔ)其對(duì)象的類增加一個(gè)屬性和一個(gè)服務(wù),形成了問題域部分和數(shù)據(jù)管理部分之間的必要橋梁。,136,數(shù)據(jù)管理方法,數(shù)據(jù)管理方法主要有三種——文件、關(guān)系型的及OO方法。(1)文件管理: 文件管理具有基本的文件管理及排序機(jī)制。(2)關(guān)

66、系DBMS: 關(guān)系DBMS是建立在關(guān)系理論的基礎(chǔ)上的。(3)面向?qū)ο髷?shù)據(jù)庫管理系統(tǒng): OO-DBMS是一種新的技術(shù),OO-DBMS的設(shè)計(jì)主要綜合了二種方法:擴(kuò)展的關(guān)系型DBMS與擴(kuò)展的OOPL的結(jié)合。,137,數(shù)據(jù)管理方法,(1)文件管理:OOA&D階段為應(yīng)用系統(tǒng)識(shí)別、定義的對(duì)象,在實(shí)現(xiàn)時(shí)將被表示成文件中的數(shù)據(jù)。,138,數(shù)據(jù)管理方法,(2)關(guān)系數(shù)據(jù)庫系統(tǒng)關(guān)系數(shù)據(jù)庫存儲(chǔ)對(duì)象的方式是將對(duì)象的屬性存儲(chǔ)在數(shù)據(jù)庫中的二維表

67、中,表中的列存儲(chǔ)對(duì)象的簡單屬性,對(duì)于對(duì)象的復(fù)雜屬性可以將其進(jìn)行分解成為簡單屬性,并在其他二維表中存儲(chǔ)。,,139,OOD的評(píng)價(jià)標(biāo)準(zhǔn),優(yōu)秀設(shè)計(jì)是一種權(quán)衡各種因素,最小化整個(gè)生命周期的總系統(tǒng)開銷的設(shè)計(jì)。軟件的耦合、內(nèi)聚以及重用是衡量設(shè)計(jì)好壞的重要標(biāo)準(zhǔn)。,140,耦合性,在OOD中,有兩種情況:由消息連接表示的兩個(gè)對(duì)象之間的耦合和一般類與特殊類之間的耦合。即:交互耦合和繼承耦合。減少交互耦合的原則是盡可能減少消息聯(lián)結(jié)的復(fù)雜性。提高繼承耦合

68、性是十分需要的。,141,內(nèi)聚性,服務(wù)內(nèi)聚 一個(gè)服務(wù)應(yīng)該完成一個(gè)并且僅完成一個(gè)功能。類內(nèi)聚 屬性和服務(wù)應(yīng)該是高內(nèi)聚性的,其中不含無用的屬性和服務(wù),而且全都是描述類的對(duì)象責(zé)任的。一般一特殊內(nèi)聚 一般類應(yīng)該確實(shí)描述一般的屬性與服務(wù),特殊類應(yīng)該確實(shí)描述特殊,并且仔細(xì)斟酌其在結(jié)構(gòu)中的位置。,142,重用性,原因①需要?jiǎng)?chuàng)建可重用的組元;②需要完成高級(jí)質(zhì)量保證,常常需要花多倍的時(shí)間去測(cè)試可重用的組元;③需要維護(hù)一些相應(yīng)的

溫馨提示

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

評(píng)論

0/150

提交評(píng)論