第5章面向?qū)ο箝_發(fā)技術(shù)_第1頁
第5章面向?qū)ο箝_發(fā)技術(shù)_第2頁
第5章面向?qū)ο箝_發(fā)技術(shù)_第3頁
第5章面向?qū)ο箝_發(fā)技術(shù)_第4頁
第5章面向?qū)ο箝_發(fā)技術(shù)_第5頁
已閱讀5頁,還剩82頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第第5章章 面向?qū)ο箝_發(fā)技術(shù)面向?qū)ο箝_發(fā)技術(shù) 5.2 面向?qū)ο蠓椒ǜ攀雒嫦驅(qū)ο蠓椒ǜ攀?2 5.3 面向?qū)ο蠓治雒嫦驅(qū)ο蠓治?3 5.4 面向?qū)ο笤O(shè)計面向?qū)ο笤O(shè)計 4 5.1 面向?qū)ο蟮南嚓P(guān)概念面向?qū)ο蟮南嚓P(guān)概念1 5.5 面向?qū)ο蠓治龊驮O(shè)計實例面向?qū)ο蠓治龊驮O(shè)計實例 5 5.6 實驗五實驗五 Rational Rose應(yīng)用應(yīng)用 6 5.7 本章小結(jié)本章小結(jié) 75.2 面向?qū)ο蠓椒ǜ攀雒嫦驅(qū)ο蠓椒ǜ攀?.2 面向?qū)ο蠓椒ǜ攀雒嫦驅(qū)ο蠓椒ǜ攀?(Object Oriented,OO)是計算機(jī)界是計算機(jī)界關(guān)注的關(guān)注的重點重點,是,是9090年代軟件開發(fā)方法的年代軟件開發(fā)方法的主流主流。如如數(shù)據(jù)庫系

2、統(tǒng)、數(shù)據(jù)庫系統(tǒng)、交互式界面、應(yīng)用結(jié)構(gòu)、應(yīng)用平臺、分布式系統(tǒng)、網(wǎng)絡(luò)管理交互式界面、應(yīng)用結(jié)構(gòu)、應(yīng)用平臺、分布式系統(tǒng)、網(wǎng)絡(luò)管理結(jié)構(gòu)、結(jié)構(gòu)、CADCAD技術(shù)、人工智能技術(shù)、人工智能等領(lǐng)域等領(lǐng)域。 從世界觀的角度從世界觀的角度認(rèn)為:認(rèn)為:1.1.面向?qū)ο蟮幕菊軐W(xué)認(rèn)為世界面向?qū)ο蟮幕菊軐W(xué)認(rèn)為世界是由各種各樣具有其運(yùn)動規(guī)律和內(nèi)部狀態(tài)的是由各種各樣具有其運(yùn)動規(guī)律和內(nèi)部狀態(tài)的對象對象所組成;所組成;2.2.不同對象之間的不同對象之間的相互作用和通訊相互作用和通訊構(gòu)成了完整的現(xiàn)實世界。構(gòu)成了完整的現(xiàn)實世界。 從方法學(xué)的角度從方法學(xué)的角度認(rèn)為:認(rèn)為:1.1.面向?qū)ο蟮姆椒ㄊ敲嫦驅(qū)ο蟮拿嫦驅(qū)ο蟮姆椒ㄊ敲嫦驅(qū)ο蟮氖?/p>

3、界觀在開發(fā)方法中的直接運(yùn)用;世界觀在開發(fā)方法中的直接運(yùn)用;2.2.強(qiáng)調(diào)系統(tǒng)的結(jié)構(gòu)應(yīng)直接強(qiáng)調(diào)系統(tǒng)的結(jié)構(gòu)應(yīng)直接與現(xiàn)實世界的結(jié)構(gòu)相對應(yīng),應(yīng)圍繞現(xiàn)實世界中的對象構(gòu)造系與現(xiàn)實世界的結(jié)構(gòu)相對應(yīng),應(yīng)圍繞現(xiàn)實世界中的對象構(gòu)造系統(tǒng),而不是圍繞功能構(gòu)造系統(tǒng)。統(tǒng),而不是圍繞功能構(gòu)造系統(tǒng)。案例案例5-15-15.1 面向?qū)ο蟮南嚓P(guān)概念面向?qū)ο蟮南嚓P(guān)概念 5.1.1 對象與類對象與類 1)對象)對象 對象對象是描述客觀事物的是描述客觀事物的實體實體,是構(gòu)成系統(tǒng)的,是構(gòu)成系統(tǒng)的基本單位基本單位。 對象對象具有具有:對象標(biāo)識、屬性和服務(wù)對象標(biāo)識、屬性和服務(wù)。 對象標(biāo)識對象標(biāo)識為對象的名字,為對象的名字,用于用于唯一地識別系

4、統(tǒng)內(nèi)部對唯一地識別系統(tǒng)內(nèi)部對象,在定義或使用對象時指定。象,在定義或使用對象時指定。 屬性屬性也稱也稱狀態(tài)狀態(tài)或或數(shù)據(jù)數(shù)據(jù), 用于用于描述描述對象對象的的靜態(tài)特征靜態(tài)特征。在。在某些某些OOP(Object Oriented Programming面向?qū)ο缶幊堂嫦驅(qū)ο缶幊蹋┱Z)語言中,言中,屬性屬性通常被稱為通常被稱為成員變量成員變量或簡稱或簡稱變量變量。 服務(wù)服務(wù)也稱也稱操作操作、行為行為或或方法方法, 用于用于描述對象的描述對象的動態(tài)特動態(tài)特征征,在某些,在某些OOP語言中語言中,通常被稱為通常被稱為成員函數(shù)成員函數(shù)或簡稱或簡稱函數(shù)函數(shù)。窗體、對話框、菜單、按鈕5.1 面向?qū)ο蟮南嚓P(guān)概念面

5、向?qū)ο蟮南嚓P(guān)概念 2)封裝)封裝 封裝封裝(Encapsulation)有)有兩層含義兩層含義:一是:一是是其全部屬性和全部服務(wù)緊密結(jié)合而形成的一個是其全部屬性和全部服務(wù)緊密結(jié)合而形成的一個不可分割的不可分割的;二是;二是如同一個密封的如同一個密封的“黑盒黑盒子子”,表示對象狀態(tài)的數(shù)據(jù)和實現(xiàn)操作的代碼都被,表示對象狀態(tài)的數(shù)據(jù)和實現(xiàn)操作的代碼都被封裝在其中。封裝在其中。 封裝封裝是對象的一個重要特性。在面向?qū)ο蟮南凳菍ο蟮囊粋€重要特性。在面向?qū)ο蟮南到y(tǒng)中統(tǒng)中,是一個封裝數(shù)據(jù)屬性和操作行為的是一個封裝數(shù)據(jù)屬性和操作行為的。5.1 面向?qū)ο蟮南嚓P(guān)概念面向?qū)ο蟮南嚓P(guān)概念 3)類和實例)類和實例 類類(

6、Class)也稱)也稱對象類對象類(Object Class)是對)是對具有具有相同屬性和服務(wù)的相同屬性和服務(wù)的一組對象一組對象的的抽象定義抽象定義。類與對象是抽。類與對象是抽象描述與具體實例的關(guān)系,一個象描述與具體實例的關(guān)系,一個具體的對象具體的對象被稱為被稱為類的類的一個實例一個實例(Instance)。)。 “張三轎車張三轎車”等等具體對象具體對象可得到可得到 “轎車轎車”類類, 而這些具體的對象就是該而這些具體的對象就是該類的實例類的實例。如圖。如圖5-1所示所示。圖圖5-1 對象、類與實例對象、類與實例 案例案例5-25-25.1 面向?qū)ο蟮南嚓P(guān)概念面向?qū)ο蟮南嚓P(guān)概念 5.1.2 繼

7、承及多態(tài)性繼承及多態(tài)性 1) 繼承繼承 繼承繼承(Inheritance)是父類和子類之間)是父類和子類之間共享共享數(shù)據(jù)結(jié)數(shù)據(jù)結(jié)構(gòu)和方法構(gòu)和方法的一種的一種機(jī)制機(jī)制,是以現(xiàn)存的定義的內(nèi)容為基礎(chǔ),是以現(xiàn)存的定義的內(nèi)容為基礎(chǔ),建立新定義內(nèi)容的技術(shù),是類之間的一種建立新定義內(nèi)容的技術(shù),是類之間的一種關(guān)系關(guān)系。繼承有。繼承有:單重繼承、多重繼承。:單重繼承、多重繼承。繼承性繼承性通常表示父類與子通常表示父類與子類的關(guān)系,如圖類的關(guān)系,如圖5-2所示。所示。圖圖5-3 是繼承性描述的一種是繼承性描述的一種圖圖示方法示方法。圖圖5-2繼承性繼承性 圖圖5-3繼承性描述繼承性描述5.1 面向?qū)ο蟮南嚓P(guān)概念面

8、向?qū)ο蟮南嚓P(guān)概念 通過繼承關(guān)系還可通過繼承關(guān)系還可構(gòu)成層次關(guān)系構(gòu)成層次關(guān)系,單重繼承單重繼承構(gòu)成的構(gòu)成的類之間的層次關(guān)系為一類之間的層次關(guān)系為一樹狀樹狀,若將所有無子類的類,若將所有無子類的類,都看成還有一個公共子類都看成還有一個公共子類, 多重繼承多重繼承構(gòu)成的類之間的關(guān)構(gòu)成的類之間的關(guān)系為一個系為一個網(wǎng)格網(wǎng)格, 而且繼承關(guān)系可傳遞。而且繼承關(guān)系可傳遞。 建立繼承結(jié)構(gòu)建立繼承結(jié)構(gòu)的的有有3個:一是易編程、易理解個:一是易編程、易理解且代碼短且代碼短, 結(jié)構(gòu)清晰;二是易修改,共同部分只在一處結(jié)構(gòu)清晰;二是易修改,共同部分只在一處修改即可;三是易增加新類,只須描述不同部分。修改即可;三是易增加新

9、類,只須描述不同部分。多重繼承多重繼承是一個類別可同時從多于一個是一個類別可同時從多于一個父類繼承行為與特征的功能。父類繼承行為與特征的功能。單一繼承單一繼承指一個類別指一個類別只可繼承自一個父類只可繼承自一個父類。 5.1 面向?qū)ο蟮南嚓P(guān)概念面向?qū)ο蟮南嚓P(guān)概念 2) 多態(tài)性和動態(tài)綁定多態(tài)性和動態(tài)綁定 多態(tài)性多態(tài)性(Polymorphism)是指多種類型的)是指多種類型的對象對象在在相同的相同的操作或函數(shù)、過程操作或函數(shù)、過程中取得中取得不同結(jié)果的特性不同結(jié)果的特性。多態(tài)。多態(tài)有多種不同形式,其中參數(shù)多態(tài)和包含多態(tài)有多種不同形式,其中參數(shù)多態(tài)和包含多態(tài)統(tǒng)稱為統(tǒng)稱為通用通用多態(tài)多態(tài),過載多態(tài)和強(qiáng)

10、制多態(tài)則,過載多態(tài)和強(qiáng)制多態(tài)則統(tǒng)稱為統(tǒng)稱為特定多態(tài)特定多態(tài)。 動態(tài)綁定動態(tài)綁定(Dynamic-binding)是多態(tài)性的基石之)是多態(tài)性的基石之一。將函數(shù)一。將函數(shù)調(diào)用調(diào)用與目標(biāo)代碼塊的與目標(biāo)代碼塊的連接連接延遲到運(yùn)行時進(jìn)行延遲到運(yùn)行時進(jìn)行,只有發(fā)送消息時才與接收消息實例的一個操作只有發(fā)送消息時才與接收消息實例的一個操作綁定綁定。5.1 面向?qū)ο蟮南嚓P(guān)概念面向?qū)ο蟮南嚓P(guān)概念 5.1.3 消息與方法消息與方法 1) 消息與消息通信消息與消息通信 消息消息(Message)是向)是向?qū)ο髮ο蟀l(fā)出的發(fā)出的服務(wù)請求信息服務(wù)請求信息,包含信息包含信息為:提供服務(wù)的對象標(biāo)識、消息名、輸入信息為:提供服務(wù)

11、的對象標(biāo)識、消息名、輸入信息和回答信息。和回答信息。 消息通信消息通信(Communication with messages)與對)與對象的封裝原則密切相關(guān)。象的封裝原則密切相關(guān)。 2)方法)方法 方法方法(Method) 指在指在對象內(nèi)對象內(nèi)的的操作操作。數(shù)據(jù)描述對象的。數(shù)據(jù)描述對象的狀態(tài),操作可進(jìn)行數(shù)據(jù)處理,改變對象的狀態(tài)。當(dāng)其他狀態(tài),操作可進(jìn)行數(shù)據(jù)處理,改變對象的狀態(tài)。當(dāng)其他對象向該對象發(fā)出消息并響應(yīng)時,其操作才得以實現(xiàn)。對象向該對象發(fā)出消息并響應(yīng)時,其操作才得以實現(xiàn)。方法是類中操作的方法是類中操作的實現(xiàn)過程實現(xiàn)過程,一個一個方法方法包括包括方法名、參數(shù)方法名、參數(shù)及方法體。及方法體。

12、向?qū)ο笙驅(qū)ο蠓?wù)請求信息服務(wù)請求信息的傳輸方式的傳輸方式5.1 面向?qū)ο蟮南嚓P(guān)概念面向?qū)ο蟮南嚓P(guān)概念 11討論思考討論思考: (1) 什么是對象及其三要素?什么是類及實例?什么是對象及其三要素?什么是類及實例? (2) 怎樣理解繼承及多態(tài)性?舉例說明。怎樣理解繼承及多態(tài)性?舉例說明。 (3) 舉例說明消息與方法及其之間的關(guān)系。舉例說明消息與方法及其之間的關(guān)系。5.2 面向?qū)ο蠓椒ǜ攀雒嫦驅(qū)ο蠓椒ǜ攀?.2 面向?qū)ο蠓椒ǜ攀雒嫦驅(qū)ο蠓椒ǜ攀?.2 面向?qū)ο蠓椒ǜ攀雒嫦驅(qū)ο蠓椒ǜ攀?.2 面向?qū)ο蠓椒ǜ攀雒嫦驅(qū)ο蠓椒ǜ攀?.2 面向?qū)ο蠓椒ǜ攀雒嫦驅(qū)ο蠓椒ǜ攀?如例圖。-定義系統(tǒng)基本結(jié)構(gòu)-系統(tǒng)邏輯

13、構(gòu)造。5.2 面向?qū)ο蠓椒ǜ攀雒嫦驅(qū)ο蠓椒ǜ攀?OOSE 的的開發(fā)活動開發(fā)活動主要主要分為分為分析、構(gòu)造和測試分析、構(gòu)造和測試三個過程三個過程,如圖,如圖5-4所示。所示。 圖圖5-4 OOSE 的開發(fā)活動的開發(fā)活動5.2 面向?qū)ο蠓椒ǜ攀雒嫦驅(qū)ο蠓椒ǜ攀?用例用例(Use case)是貫穿是貫穿OOSE 活動的活動的核心核心,描述了系,描述了系統(tǒng)的需求及功能。用例實際上是從使用者的角度統(tǒng)的需求及功能。用例實際上是從使用者的角度確定系統(tǒng)確定系統(tǒng)的功能的功能,描述系統(tǒng)用戶(也稱使用者)對于系統(tǒng)的使用情,描述系統(tǒng)用戶(也稱使用者)對于系統(tǒng)的使用情況。圖況。圖5-5所示,以所示,以人形人形表示表示使

14、用者使用者,橢圓橢圓表示表示用例用例,大的,大的矩形框矩形框表示表示系統(tǒng)的邊界系統(tǒng)的邊界。用連接使用者和用例的。用連接使用者和用例的箭頭線箭頭線,表示使用者驅(qū)動事件的完成。表示使用者驅(qū)動事件的完成。 用例之間通常有用例之間通常有“使用使用”和和“擴(kuò)展擴(kuò)展”兩種關(guān)系兩種關(guān)系。圖圖5-5 用例圖用例圖5.2 面向?qū)ο蠓椒ǜ攀雒嫦驅(qū)ο蠓椒ǜ攀?*2常見的面向?qū)ο箝_發(fā)方法常見的面向?qū)ο箝_發(fā)方法 開發(fā)方法有開發(fā)方法有Booch 方法、方法、 Coad方法、方法、OMT方法和方法和UML語言等。語言等。 (1)Booch方法方法-最先最先OOM 。 (2)Coad方法方法-較早的較早的OOM。 (3)OM

15、T方法方法-對象建模技術(shù)對象建模技術(shù)(美國通用電氣公司提出)。 (4)UML語言。語言。11討論思考討論思考: (1) (1) 面向?qū)ο蟀男┲饕拍??它們的具體含義是什么?面向?qū)ο蟀男┲饕拍??它們的具體含義是什么? (2) (2) 面向?qū)ο缶哂心男┨卣??面向?qū)ο缶哂心男┨卣鳎?(3) (3) 面向?qū)ο蟮能浖_發(fā)過程是怎樣的?面向?qū)ο蟮能浖_發(fā)過程是怎樣的?5.3 面向?qū)ο蠓治雒嫦驅(qū)ο蠓治?5.3 面向?qū)ο蠓治雒嫦驅(qū)ο蠓治?面向?qū)ο蠓治觯嫦驅(qū)ο蠓治觯∣OA)的的目標(biāo)目標(biāo)是是獲取獲取用戶需求用戶需求并并建立建立一系列問題域的精確模型一系列問題域的精確模型,描述描述滿足用戶需要滿足用戶需

16、要的的軟件。軟件。OOA應(yīng)表示出系統(tǒng)的數(shù)據(jù)、功能應(yīng)表示出系統(tǒng)的數(shù)據(jù)、功能和行為和行為3方面的基本特征方面的基本特征。先要進(jìn)行調(diào)研分析,在理解。先要進(jìn)行調(diào)研分析,在理解需求的基礎(chǔ)上建立并驗證模型。需求的基礎(chǔ)上建立并驗證模型。5.3 面向?qū)ο蠓治雒嫦驅(qū)ο蠓治?5.3.1 面向?qū)ο蠓治龅娜蝿?wù)面向?qū)ο蠓治龅娜蝿?wù) 1面向?qū)ο蠓治龅脑瓌t面向?qū)ο蠓治龅脑瓌t OOA階段階段是是獲取獲取和和描述描述用戶需求并用戶需求并建立建立問題域?qū)栴}域?qū)ο竽P偷倪^程。分析系統(tǒng)中所含的所有對象及其相互象模型的過程。分析系統(tǒng)中所含的所有對象及其相互間的關(guān)系,為間的關(guān)系,為建立分析模型建立分析模型,應(yīng)遵照,應(yīng)遵照5個基本原則個基

17、本原則:建立信息域模型;建立信息域模型;描述功能;描述功能;表達(dá)行為;表達(dá)行為;劃劃分功能、數(shù)據(jù)、行為模型,揭示更多的細(xì)節(jié);分功能、數(shù)據(jù)、行為模型,揭示更多的細(xì)節(jié);以早以早期模型描述問題實質(zhì),以后期模型給出實現(xiàn)細(xì)節(jié),這期模型描述問題實質(zhì),以后期模型給出實現(xiàn)細(xì)節(jié),這是是OOA的基礎(chǔ)。的基礎(chǔ)。5.3 面向?qū)ο蠓治雒嫦驅(qū)ο蠓治?2面向?qū)ο蠓治龅娜蝿?wù)面向?qū)ο蠓治龅娜蝿?wù) OOA的的關(guān)鍵關(guān)鍵是是定義定義所有與待解決問題相關(guān)的所有與待解決問題相關(guān)的類類,包括包括類的操作和屬性、類與類之間的關(guān)系,以及它們表現(xiàn)出類的操作和屬性、類與類之間的關(guān)系,以及它們表現(xiàn)出的行為,主要的行為,主要完成完成6項任務(wù)項任務(wù):(1

18、 1)全面深入調(diào)研分析,掌握用戶業(yè)務(wù)需求細(xì)節(jié)及流程;)全面深入調(diào)研分析,掌握用戶業(yè)務(wù)需求細(xì)節(jié)及流程;(2 2)準(zhǔn)確標(biāo)識類,包括定義其屬性和操作;)準(zhǔn)確標(biāo)識類,包括定義其屬性和操作;(3 3)認(rèn)真分析定義類的層次關(guān)系;)認(rèn)真分析定義類的層次關(guān)系;(4 4)明確表達(dá)對象與對象之間的關(guān)系)明確表達(dá)對象與對象之間的關(guān)系( (對象的連接對象的連接) );(5 5)具體確定模型化對象的行為。)具體確定模型化對象的行為。(6 6)建立系統(tǒng)模型。)建立系統(tǒng)模型。5.3 面向?qū)ο蠓治雒嫦驅(qū)ο蠓治?5.3.2 面向?qū)ο蠓治龅倪^程面向?qū)ο蠓治龅倪^程 OOA是利用面向?qū)ο蟮母拍詈头椒ㄊ抢妹嫦驅(qū)ο蟮母拍詈头椒?為軟件

19、需求為軟件需求建造建造模型模型,使用戶需求逐步精確化、一致化、完全化的分析,使用戶需求逐步精確化、一致化、完全化的分析過程,也是提取需求的過程,過程,也是提取需求的過程,主要包括主要包括理解、表達(dá)和驗理解、表達(dá)和驗證證3個過程個過程。 OOA中中建造的模型建造的模型主要有對象模型、動態(tài)模型和功主要有對象模型、動態(tài)模型和功能模型能模型3種種。對象模型對象模型常由常由五個層次五個層次組成組成:類與對象層、:類與對象層、屬性層、服務(wù)層、結(jié)構(gòu)層和主題層,其層次屬性層、服務(wù)層、結(jié)構(gòu)層和主題層,其層次對應(yīng)著對應(yīng)著OOA過程中過程中建立建立對象模型的對象模型的五項主要活動五項主要活動:發(fā)現(xiàn)對象、定義:發(fā)現(xiàn)對

20、象、定義 類、定義屬性、定義服務(wù)、劃分結(jié)構(gòu)。類、定義屬性、定義服務(wù)、劃分結(jié)構(gòu)。 OOA過程過程如圖如圖5-6所示。所示。 5.3 面向?qū)ο蠓治雒嫦驅(qū)ο蠓治?圖圖5-6 面向?qū)ο蠓治鲞^程面向?qū)ο蠓治鲞^程5.3 面向?qū)ο蠓治雒嫦驅(qū)ο蠓治?5.3.3 對象建模技術(shù)對象建模技術(shù) 對象建模技術(shù)對象建模技術(shù)(Object Modeling Technique,OMT)用于用于OOA、系統(tǒng)設(shè)計和對象級設(shè)計??蓪⒎治鰰r獲取的需求信息,構(gòu)建在對象模系統(tǒng)設(shè)計和對象級設(shè)計。可將分析時獲取的需求信息,構(gòu)建在對象模型、功能模型和動態(tài)模型型、功能模型和動態(tài)模型三類模型中三類模型中。構(gòu)造對象模型構(gòu)造對象模型的的目的目的是找

21、出與是找出與應(yīng)用程序密切相關(guān)的概念。應(yīng)用程序密切相關(guān)的概念。 1. 建立對象模型建立對象模型 對象模型對象模型是是OOA最關(guān)鍵最關(guān)鍵的模型之一的模型之一,主要描述主要描述系統(tǒng)中對象的靜態(tài)系統(tǒng)中對象的靜態(tài)結(jié)構(gòu)、對象之間關(guān)系、對象的屬性和操作。利用包含對象和類的結(jié)構(gòu)、對象之間關(guān)系、對象的屬性和操作。利用包含對象和類的關(guān)系關(guān)系圖圖表示,通過表示靜態(tài)的、結(jié)構(gòu)上的、系統(tǒng)的表示,通過表示靜態(tài)的、結(jié)構(gòu)上的、系統(tǒng)的“數(shù)據(jù)數(shù)據(jù)特征,為動態(tài)特征,為動態(tài)模型和功能模型提供模型和功能模型提供基本框架基本框架。 建立對象模型時,首先確定對象和類,然后分析對象的類及其建立對象模型時,首先確定對象和類,然后分析對象的類及其

22、相互之間關(guān)系。相互之間關(guān)系。對象類與對象間的關(guān)系對象類與對象間的關(guān)系可分為可分為3種種:一般一般特殊(繼承特殊(繼承或歸納)關(guān)系、聚集(組合)關(guān)系和關(guān)聯(lián)關(guān)系。或歸納)關(guān)系、聚集(組合)關(guān)系和關(guān)聯(lián)關(guān)系。對象模型對象模型用類符號、用類符號、類實例符號、類的繼承關(guān)系、聚集關(guān)系和關(guān)聯(lián)等類實例符號、類的繼承關(guān)系、聚集關(guān)系和關(guān)聯(lián)等表示表示。 對象模型對象模型描述系統(tǒng)的描述系統(tǒng)的靜態(tài)結(jié)構(gòu)靜態(tài)結(jié)構(gòu)包括:類和對象包括:類和對象, 它們的屬性和操它們的屬性和操作作, 以及它們之間的關(guān)系。以及它們之間的關(guān)系。5.3 面向?qū)ο蠓治雒嫦驅(qū)ο蠓治?對象模型對象模型以以包含的對象及其包含的對象及其關(guān)系圖關(guān)系圖表示表示。在對

23、象模型中在對象模型中用于用于表示表示“類、類的關(guān)聯(lián)關(guān)系和鏈屬性類、類的關(guān)聯(lián)關(guān)系和鏈屬性”的的圖形符號圖形符號,分別如圖,分別如圖5-7所示中所示中(a)、(b)和和(c)。其中。其中,類的類的關(guān)聯(lián)關(guān)系關(guān)聯(lián)關(guān)系反映對象之間相互依賴及作用關(guān)系,反映對象之間相互依賴及作用關(guān)系,鏈鏈屬性屬性是關(guān)聯(lián)中鏈(實例對象間的物理或概念上的連接)是關(guān)聯(lián)中鏈(實例對象間的物理或概念上的連接)的性質(zhì)。的性質(zhì)。(a) (b) (c) 圖圖5-7 表示類、關(guān)聯(lián)關(guān)系和鏈屬性表示類、關(guān)聯(lián)關(guān)系和鏈屬性案例案例5-35-35.3 面向?qū)ο蠓治雒嫦驅(qū)ο蠓治?使用使用OMT建立對象模型建立對象模型的的主要步驟主要步驟為:為: (1)

24、 確定對象類。通過分析確定所有的對象類;確定對象類。通過分析確定所有的對象類; (2) 定義數(shù)據(jù)詞典。主要用于描述類、屬性和關(guān)系;定義數(shù)據(jù)詞典。主要用于描述類、屬性和關(guān)系; (3) 組織并簡化對象類。通過繼承進(jìn)行組織和簡化對象類;組織并簡化對象類。通過繼承進(jìn)行組織和簡化對象類; (4) 測試訪問路徑。測試所有的訪問路徑;測試訪問路徑。測試所有的訪問路徑; (5) 對象分組建立模塊。對象分組建立模塊。 2. 建立動態(tài)模型建立動態(tài)模型 動態(tài)模型動態(tài)模型主要主要用于用于系統(tǒng)的控制邏輯,注重對象及其關(guān)系的改系統(tǒng)的控制邏輯,注重對象及其關(guān)系的改變,描述涉及時序和改變的狀態(tài)。動態(tài)模型變,描述涉及時序和改變

25、的狀態(tài)。動態(tài)模型包括包括狀態(tài)圖和事件跟狀態(tài)圖和事件跟蹤圖。蹤圖。建立動態(tài)模型建立動態(tài)模型的的主要步驟主要步驟為:為: (1) 準(zhǔn)備場景。為典型的交互序列準(zhǔn)備好場景;準(zhǔn)備場景。為典型的交互序列準(zhǔn)備好場景; (2) 建立事件跟蹤圖。確定對象之間的事件,為每個場景建立建立事件跟蹤圖。確定對象之間的事件,為每個場景建立事件跟蹤圖;事件跟蹤圖; (3) 繪出事件流程圖。為每個系統(tǒng)準(zhǔn)備一個事件流程圖;繪出事件流程圖。為每個系統(tǒng)準(zhǔn)備一個事件流程圖; (4) 建立狀態(tài)圖。為具有重要動態(tài)行為的類建立狀態(tài)圖;建立狀態(tài)圖。為具有重要動態(tài)行為的類建立狀態(tài)圖; (5) 檢驗。檢驗不同狀態(tài)圖中共享事件的一致性和完整性。檢

26、驗。檢驗不同狀態(tài)圖中共享事件的一致性和完整性。對象建模技術(shù)5.3 面向?qū)ο蠓治雒嫦驅(qū)ο蠓治?賓館信息系統(tǒng)賓館信息系統(tǒng)中旅客和床位的狀態(tài)轉(zhuǎn)換圖。中旅客和床位的狀態(tài)轉(zhuǎn)換圖。如圖如圖5-8和和5-9所示。所示。 圖5-8 旅客的狀態(tài)轉(zhuǎn)換圖圖圖5-9 床位在系統(tǒng)中狀態(tài)轉(zhuǎn)換圖床位在系統(tǒng)中狀態(tài)轉(zhuǎn)換圖 空空已住已住案例案例5-45-45.3 面向?qū)ο蠓治雒嫦驅(qū)ο蠓治?3. 建立功能模型建立功能模型 功能模型功能模型用于用于系統(tǒng)內(nèi)部系統(tǒng)內(nèi)部數(shù)據(jù)數(shù)據(jù)的傳送和處理。功能模型的傳送和處理。功能模型表明,經(jīng)過處理從輸入數(shù)據(jù)能得到具體的輸出數(shù)據(jù),但忽表明,經(jīng)過處理從輸入數(shù)據(jù)能得到具體的輸出數(shù)據(jù),但忽略參加處理的數(shù)據(jù)以怎

27、樣的時序執(zhí)行。略參加處理的數(shù)據(jù)以怎樣的時序執(zhí)行。功能模型功能模型由多個數(shù)由多個數(shù)據(jù)流圖據(jù)流圖組成組成,指明從外部輸入,通過操作和內(nèi)部存儲,直,指明從外部輸入,通過操作和內(nèi)部存儲,直到外部輸出的整個數(shù)據(jù)流情況。功能模型到外部輸出的整個數(shù)據(jù)流情況。功能模型還包括還包括了對象模了對象模型內(nèi)部數(shù)據(jù)間的限制。型內(nèi)部數(shù)據(jù)間的限制。 功能模型中的功能模型中的數(shù)據(jù)流圖數(shù)據(jù)流圖可形成一個層次結(jié)構(gòu),可形成一個層次結(jié)構(gòu),建立功建立功能模型能模型的的主要步驟主要步驟為:為: (1) 確定輸出和輸出值;確定輸出和輸出值; (2) 用數(shù)據(jù)流圖表示功能的依賴性。用數(shù)據(jù)流圖表示功能的依賴性。 (3) 具體描述每個功能;具體描

28、述每個功能; (4) 確定具體限制。確定具體限制。 (5) 對功能確定優(yōu)化的準(zhǔn)則。對功能確定優(yōu)化的準(zhǔn)則。5.3 面向?qū)ο蠓治雒嫦驅(qū)ο蠓治?賓館客房信息系統(tǒng)賓館客房信息系統(tǒng)數(shù)據(jù)流圖數(shù)據(jù)流圖,如圖如圖5-10所示。所示。 圖圖5-10 旅館客房管理系統(tǒng)數(shù)據(jù)流圖旅館客房管理系統(tǒng)數(shù)據(jù)流圖 案例案例5-55-55.3 面向?qū)ο蠓治雒嫦驅(qū)ο蠓治?5.3.4 UML概述概述 UML(Unified Modeling Language)是一種定義)是一種定義良好、易于表達(dá)、功能強(qiáng)大且普遍適用的(良好、易于表達(dá)、功能強(qiáng)大且普遍適用的(一種標(biāo)準(zhǔn)的圖形化(即可視化) )結(jié)構(gòu)化建模語言結(jié)構(gòu)化建模語言。 1UML組成組

29、成 UML綜合綜合OOM使用使用的各種圖形描述的技術(shù),旨在給的各種圖形描述的技術(shù),旨在給出這些圖形描述的語法和語義的語言,是出這些圖形描述的語法和語義的語言,是一種標(biāo)準(zhǔn)的圖一種標(biāo)準(zhǔn)的圖形化(即可視化)形化(即可視化)建模語言建模語言。從。從,UML由圖由圖和元模型和元模型,圖是,圖是UML的的語法語法,而元模型給出圖的含,而元模型給出圖的含義成為義成為UML語義語義。一種專門設(shè)計的統(tǒng)一描述一種專門設(shè)計的統(tǒng)一描述OOM的的標(biāo)準(zhǔn)圖形符號標(biāo)準(zhǔn)圖形符號建模語言建模語言。5.3 面向?qū)ο蠓治雒嫦驅(qū)ο蠓治?1)UML的體系結(jié)構(gòu)的體系結(jié)構(gòu) UML的體系結(jié)構(gòu)的體系結(jié)構(gòu)如圖如圖5-11所示。從體系結(jié)構(gòu)上,所示。

30、從體系結(jié)構(gòu)上,UML由三部由三部分分組成組成:基本構(gòu)造塊、規(guī)則和公用機(jī)制。其中:基本構(gòu)造塊、規(guī)則和公用機(jī)制。其中基本構(gòu)造塊基本構(gòu)造塊又包括又包括3種類型:事物、關(guān)系和圖。種類型:事物、關(guān)系和圖。事物事物劃分為劃分為4種類型種類型:(1 1)結(jié)構(gòu)事物)結(jié)構(gòu)事物- -類、接口、用例。類、接口、用例。(2 2)行為事物)行為事物- -交互機(jī)和狀態(tài)等。交互機(jī)和狀態(tài)等。(3 3)分組事物)分組事物- -包包( (整體整體- -根包,子系統(tǒng)根包,子系統(tǒng)- -特殊包特殊包) )。(4 4)注釋事物)注釋事物- -信息、說明。信息、說明。 圖圖5-11 UML的體系結(jié)構(gòu)的體系結(jié)構(gòu)5.3 面向?qū)ο蠓治雒嫦驅(qū)ο蠓?/p>

31、析 2)UML模型元素模型元素 UML是一種專門設(shè)計的統(tǒng)一描述面向?qū)ο蠓椒ǖ氖且环N專門設(shè)計的統(tǒng)一描述面向?qū)ο蠓椒ǖ臉?biāo)標(biāo)準(zhǔn)圖形符號系統(tǒng)準(zhǔn)圖形符號系統(tǒng)。 (1)UML的語義。的語義。語義定義在一個語義定義在一個4 4層(抽象級別)層(抽象級別) 建模概念框架建模概念框架中:中:UMLUML的基本元模型層、元模型層、的基本元模型層、元模型層、模型層、用戶模型層模型層、用戶模型層(模型的例子組成)。 (2)UML模型元素模型元素。UML兩類兩類模型元素模型元素。一類模。一類模型元素型元素用于用于表示模型中的某個概念,如類、對象、用例、表示模型中的某個概念,如類、對象、用例、結(jié)點、構(gòu)件、包、接口等;另一

32、類模型元素結(jié)點、構(gòu)件、包、接口等;另一類模型元素用于用于表示模表示模型元素之間相互連接的關(guān)系,主要有關(guān)聯(lián)、泛化(表示型元素之間相互連接的關(guān)系,主要有關(guān)聯(lián)、泛化(表示一般與特殊的關(guān)系)、依賴、聚集(表示整體與部分的一般與特殊的關(guān)系)、依賴、聚集(表示整體與部分的關(guān)系)等。關(guān)系)等。模型元素圖形表示如圖模型元素圖形表示如圖5-12所示。所示。5.3 面向?qū)ο蠓治雒嫦驅(qū)ο蠓治鰣D圖5-12模型元素圖形表示模型元素圖形表示 一類模型元素一類模型元素用于用于表示模型表示模型中的某個概念中的某個概念二類模型元素二類模型元素用于用于表示模型表示模型元素之間相互元素之間相互連接的關(guān)系連接的關(guān)系表示表示一般與特殊

33、的關(guān)系一般與特殊的關(guān)系表示表示整體與部分的關(guān)系整體與部分的關(guān)系5.3 面向?qū)ο蠓治雒嫦驅(qū)ο蠓治?(3)UML模型圖及表示法模型圖及表示法。常用的。常用的UML模型圖模型圖有有五類五類圖圖(共(共9種種圖形)圖形)用于用于定義定義UML的的主要內(nèi)容主要內(nèi)容:用例:用例圖、靜態(tài)圖(類圖、對象圖)、行為圖(狀態(tài)圖、活圖、靜態(tài)圖(類圖、對象圖)、行為圖(狀態(tài)圖、活動圖)、交互圖(順序圖、協(xié)作圖)、實現(xiàn)圖(構(gòu)件動圖)、交互圖(順序圖、協(xié)作圖)、實現(xiàn)圖(構(gòu)件圖、配置圖)。圖、配置圖)。 描述描述軟件系統(tǒng)軟件系統(tǒng)動態(tài)特性動態(tài)特性使用使用5種種圖圖:用例圖、順序:用例圖、順序圖、協(xié)作圖、狀態(tài)圖和活動圖??赏ㄟ^

34、表圖、協(xié)作圖、狀態(tài)圖和活動圖??赏ㄟ^表5-1可見可見UML的視圖的視圖及其所包括的圖及與每種圖有關(guān)的主要概念。及其所包括的圖及與每種圖有關(guān)的主要概念。5.3 面向?qū)ο蠓治雒嫦驅(qū)ο蠓治鲆晥D域視圖域視圖視圖圖圖主要概念主要概念結(jié)構(gòu)分類結(jié)構(gòu)分類靜態(tài)視圖靜態(tài)視圖類圖類圖類、關(guān)聯(lián)、泛化、依賴關(guān)系、實現(xiàn)、接口類、關(guān)聯(lián)、泛化、依賴關(guān)系、實現(xiàn)、接口用例視圖用例視圖用例圖用例圖用例、執(zhí)行者、關(guān)聯(lián)、擴(kuò)展、包含、用例用例、執(zhí)行者、關(guān)聯(lián)、擴(kuò)展、包含、用例繼承繼承實現(xiàn)視圖實現(xiàn)視圖構(gòu)件圖構(gòu)件圖構(gòu)件、接口、依賴關(guān)系、實現(xiàn)構(gòu)件、接口、依賴關(guān)系、實現(xiàn) 動態(tài)行為動態(tài)行為部署視圖部署視圖部署圖部署圖結(jié)點、構(gòu)件、依賴關(guān)系、位置。結(jié)點

35、、構(gòu)件、依賴關(guān)系、位置。狀態(tài)視圖狀態(tài)視圖狀態(tài)圖狀態(tài)圖狀態(tài)、事件、轉(zhuǎn)換、動作狀態(tài)、事件、轉(zhuǎn)換、動作活動視圖活動視圖活動圖活動圖狀態(tài)、活動、轉(zhuǎn)換、分叉、連接狀態(tài)、活動、轉(zhuǎn)換、分叉、連接交互視圖交互視圖順序圖順序圖交互、對象、消息、激活交互、對象、消息、激活協(xié)作圖協(xié)作圖協(xié)作、交互、角色、消息協(xié)作、交互、角色、消息模型管理模型管理模型管理視模型管理視圖圖類圖類圖包、子系統(tǒng)、模型。包、子系統(tǒng)、模型??蓴U(kuò)展性可擴(kuò)展性所有所有所有所有約束、版型、標(biāo)簽值約束、版型、標(biāo)簽值表表5-1 UML視圖及其包含圖的主要概念視圖及其包含圖的主要概念 【注意注意】容易混淆容易混淆的是有時也將的是有時也將圖圖稱為稱為模型模型

36、,兩者都包含一組模型元素的信息。,兩者都包含一組模型元素的信息。: 模型模型描述的是信息的描述的是信息的邏輯結(jié)構(gòu)邏輯結(jié)構(gòu),而,而圖圖是模型的是模型的特殊物理表示特殊物理表示。5.3 面向?qū)ο蠓治雒嫦驅(qū)ο蠓治?)UML模型結(jié)構(gòu)模型結(jié)構(gòu) 根據(jù)根據(jù)UML語義,語義,UML模型結(jié)構(gòu)模型結(jié)構(gòu)可可分為分為元元模型、元模型、模元元模型、元模型、模型和用戶模型四個抽象層次結(jié)構(gòu),如圖型和用戶模型四個抽象層次結(jié)構(gòu),如圖5-13所示。層次關(guān)系是下所示。層次關(guān)系是下一層為上一層的一層為上一層的基礎(chǔ)基礎(chǔ),上一層為下一層的,上一層為下一層的實例實例。圖圖5-13 UML模型結(jié)構(gòu)模型結(jié)構(gòu)/示例示例 5.3 面向?qū)ο蠓治雒嫦?/p>

37、對象分析 2. UML模型及建模規(guī)則模型及建模規(guī)則 OOM主要有主要有4種模型種模型:用例模型、靜態(tài)模型、動態(tài)模:用例模型、靜態(tài)模型、動態(tài)模型和實現(xiàn)模型。型和實現(xiàn)模型。 UML建模規(guī)則建模規(guī)則包括對以下內(nèi)容的包括對以下內(nèi)容的描述描述。 (1)名字:任何一個)名字:任何一個UML成員都必須包含一個成員都必須包含一個名字名字。 (2)作用域:)作用域:UML成員所定義的成員所定義的內(nèi)容內(nèi)容起作用起作用的上下文的上下文環(huán)境。環(huán)境。 (3)可見性:)可見性:UML成員能被其他成員成員能被其他成員引用引用的方式。的方式。 (4)完整性)完整性:UML成員之間成員之間互相連接互相連接的的合法性合法性和和一

38、致性一致性 (5)運(yùn)行屬性:)運(yùn)行屬性:UML成員在成員在運(yùn)行時運(yùn)行時的的特性特性。5.3 面向?qū)ο蠓治雒嫦驅(qū)ο蠓治?3. UML特點及應(yīng)用特點及應(yīng)用 (1)UML的的特點特點。主要包括:。主要包括: 統(tǒng)一的標(biāo)準(zhǔn),易使用,可視化,表達(dá)力強(qiáng),易于在統(tǒng)一的標(biāo)準(zhǔn),易使用,可視化,表達(dá)力強(qiáng),易于在不同背景的人員之間進(jìn)行交流。不同背景的人員之間進(jìn)行交流。 UML可運(yùn)用于任何軟件開發(fā)過程,各種模型都可采可運(yùn)用于任何軟件開發(fā)過程,各種模型都可采用用UML建模。建模。 UML內(nèi)部有擴(kuò)展機(jī)制,可以對一些概念進(jìn)行進(jìn)一步內(nèi)部有擴(kuò)展機(jī)制,可以對一些概念進(jìn)行進(jìn)一步地擴(kuò)展。地擴(kuò)展。 UML的一個最重要的特征是用于建模。的

39、一個最重要的特征是用于建模。 模型可視化。模型可視化。5.3 面向?qū)ο蠓治雒嫦驅(qū)ο蠓治?(2)使用準(zhǔn)則)使用準(zhǔn)則 使用準(zhǔn)則使用準(zhǔn)則主要包括:選擇使用合適的主要包括:選擇使用合適的UML圖,只對關(guān)圖,只對關(guān)鍵事物建立模型,分層次地畫模型圖,模型應(yīng)具有協(xié)調(diào)性,鍵事物建立模型,分層次地畫模型圖,模型應(yīng)具有協(xié)調(diào)性,模型和模型的元素大小適中。模型和模型的元素大小適中。 (3)應(yīng)用領(lǐng)域)應(yīng)用領(lǐng)域 建立用例模型建立用例模型主要是主要是識別識別角色和用例,角色和用例,給出給出系統(tǒng)用例系統(tǒng)用例視圖(可以分層次的)描述和每個用例的實例腳本(文字)視圖(可以分層次的)描述和每個用例的實例腳本(文字)描述。描述。UM

40、L中,用例視圖由角色、用例、關(guān)聯(lián)和系統(tǒng)邊界中,用例視圖由角色、用例、關(guān)聯(lián)和系統(tǒng)邊界組成組成。 5.3 面向?qū)ο蠓治雒嫦驅(qū)ο蠓治?保險業(yè)務(wù)信息系統(tǒng)保險業(yè)務(wù)信息系統(tǒng)的用例視圖例,的用例視圖例,如圖如圖5-14所示所示圖圖5-14 保險業(yè)務(wù)系統(tǒng)的用例視圖例保險業(yè)務(wù)系統(tǒng)的用例視圖例 案例案例5-65-65.4 面向?qū)ο笤O(shè)計面向?qū)ο笤O(shè)計 1討論思考: (1) OOA的原則是什么?的原則是什么? (2) OOA的主要任務(wù)和過程有哪些?的主要任務(wù)和過程有哪些? (3) OOA的主要方法有哪些?的主要方法有哪些?5.4 面向?qū)ο笤O(shè)計面向?qū)ο笤O(shè)計 5.4.1面向?qū)ο笤O(shè)計的準(zhǔn)則及任務(wù)面向?qū)ο笤O(shè)計的準(zhǔn)則及任務(wù) 1.

41、面向?qū)ο笤O(shè)計準(zhǔn)則面向?qū)ο笤O(shè)計準(zhǔn)則 OOD準(zhǔn)則包括準(zhǔn)則包括5個方面:個方面:(1)抽象。強(qiáng)調(diào)實體本質(zhì)內(nèi)在屬性,忽略無關(guān))抽象。強(qiáng)調(diào)實體本質(zhì)內(nèi)在屬性,忽略無關(guān)緊要屬性。緊要屬性。(2)信息隱蔽。)信息隱蔽。(3)高內(nèi)聚。)高內(nèi)聚。(4)低耦合。)低耦合。(5)可重用。)可重用。5.4 面向?qū)ο笤O(shè)計面向?qū)ο笤O(shè)計 2.OOD的基本任務(wù)的基本任務(wù) OOD是是OOM在軟件設(shè)計階段在軟件設(shè)計階段應(yīng)用與擴(kuò)展應(yīng)用與擴(kuò)展,是將是將OOA 所創(chuàng)建的分析模型所創(chuàng)建的分析模型轉(zhuǎn)換為轉(zhuǎn)換為設(shè)計模型,設(shè)計模型,解決解決“怎么做怎么做”的問題的問題。主要目標(biāo)主要目標(biāo)是提高開發(fā)效率、質(zhì)量和可維護(hù)性。是提高開發(fā)效率、質(zhì)量和可維護(hù)

42、性。 (1)系統(tǒng)設(shè)計。)系統(tǒng)設(shè)計。主要任務(wù)主要任務(wù)是是:將分析模型中緊密相關(guān)將分析模型中緊密相關(guān)的的類類劃分為劃分為子系統(tǒng)子系統(tǒng)(也稱為(也稱為主題主題),子系統(tǒng)應(yīng)具有良),子系統(tǒng)應(yīng)具有良好的接口,且其中的類相互協(xié)作。好的接口,且其中的類相互協(xié)作。 (2)對象設(shè)計。模塊、數(shù)據(jù)結(jié)構(gòu)及接口等都集中地)對象設(shè)計。模塊、數(shù)據(jù)結(jié)構(gòu)及接口等都集中地體現(xiàn)在體現(xiàn)在對象對象和和對象層次結(jié)構(gòu)對象層次結(jié)構(gòu)中,系統(tǒng)開發(fā)的全過程都中,系統(tǒng)開發(fā)的全過程都與對象層次結(jié)構(gòu)直接相關(guān),是面向?qū)ο笙到y(tǒng)的與對象層次結(jié)構(gòu)直接相關(guān),是面向?qū)ο笙到y(tǒng)的基礎(chǔ)和基礎(chǔ)和核心核心。 (3)設(shè)計優(yōu)化。)設(shè)計優(yōu)化。5.4 面向?qū)ο笤O(shè)計面向?qū)ο笤O(shè)計 5.

43、4.2 系統(tǒng)設(shè)計的過程系統(tǒng)設(shè)計的過程 在以在以O(shè)OM設(shè)計軟件時,設(shè)計軟件時,OOD模型模型(求解域?qū)ο竽P停┡c(求解域?qū)ο竽P停┡cOOA模型模型(問題域?qū)ο竽P蛦栴}域?qū)ο竽P?類似,類似,組成組成的的5個層次個層次為為:主題層、:主題層、類與對象層、結(jié)構(gòu)層、屬性層和服務(wù)層,大多數(shù)系統(tǒng)的類與對象層、結(jié)構(gòu)層、屬性層和服務(wù)層,大多數(shù)系統(tǒng)的OOD模型模型,在,在邏輯上都由邏輯上都由4大部分大部分組成組成對應(yīng)組成目標(biāo)系統(tǒng)的對應(yīng)組成目標(biāo)系統(tǒng)的4個子個子系統(tǒng)系統(tǒng):人機(jī)交互子系統(tǒng)、問題域子系統(tǒng)、任務(wù)管理子系統(tǒng)和數(shù):人機(jī)交互子系統(tǒng)、問題域子系統(tǒng)、任務(wù)管理子系統(tǒng)和數(shù)據(jù)管理子系統(tǒng)。分別據(jù)管理子系統(tǒng)。分別包括包括:有

44、效的人機(jī)交互所必須的實際顯示:有效的人機(jī)交互所必須的實際顯示和輸入;放置和輸入;放置OOA結(jié)果并管理分析的某些類及對象、結(jié)構(gòu)、結(jié)果并管理分析的某些類及對象、結(jié)構(gòu)、屬性和方法;任務(wù)定義、通信和協(xié)調(diào)、硬件分配及外部系統(tǒng);屬性和方法;任務(wù)定義、通信和協(xié)調(diào)、硬件分配及外部系統(tǒng);對永久性數(shù)據(jù)的訪問和管理。對永久性數(shù)據(jù)的訪問和管理。OOD模型如圖模型如圖5-15所示。所示。圖圖5-15 OOD模型模型 5.4 面向?qū)ο笤O(shè)計面向?qū)ο笤O(shè)計 OOD是是將將分析階段獲得的分析階段獲得的需求需求,轉(zhuǎn)變成轉(zhuǎn)變成符合成本和質(zhì)量要求的、符合成本和質(zhì)量要求的、抽象的系統(tǒng)實現(xiàn)方案的抽象的系統(tǒng)實現(xiàn)方案的過程過程。分為分為系統(tǒng)設(shè)

45、計和對象設(shè)計系統(tǒng)設(shè)計和對象設(shè)計兩個階段兩個階段,系統(tǒng)設(shè)計系統(tǒng)設(shè)計確定實現(xiàn)系統(tǒng)的策略和目標(biāo)系統(tǒng)的高層結(jié)構(gòu),確定實現(xiàn)系統(tǒng)的策略和目標(biāo)系統(tǒng)的高層結(jié)構(gòu),對象設(shè)計對象設(shè)計確確定解空間中的類、關(guān)聯(lián)、接口形式及實現(xiàn)服務(wù)的算法。定解空間中的類、關(guān)聯(lián)、接口形式及實現(xiàn)服務(wù)的算法。 系統(tǒng)設(shè)計過程系統(tǒng)設(shè)計過程主要按照主要按照5個步驟個步驟: 1系統(tǒng)分解系統(tǒng)分解 軟件中軟件中子系統(tǒng)結(jié)構(gòu)子系統(tǒng)結(jié)構(gòu)組成組成有兩種方案:水平層次組織和塊狀組織。有兩種方案:水平層次組織和塊狀組織。 (1)層次組織??梢苑譃閮煞N模式:封閉式和開放式。)層次組織??梢苑譃閮煞N模式:封閉式和開放式。 (2)塊狀組織。將系統(tǒng)分解成幾個相對獨立的、低耦

46、合的子系)塊狀組織。將系統(tǒng)分解成幾個相對獨立的、低耦合的子系統(tǒng),每一子系統(tǒng)相當(dāng)于一塊,每塊提供一種類型的服務(wù)。統(tǒng),每一子系統(tǒng)相當(dāng)于一塊,每塊提供一種類型的服務(wù)。 (3)設(shè)計系統(tǒng)的拓補(bǔ)結(jié)構(gòu)??衫脤哟魏蛪K的各種組合,將多)設(shè)計系統(tǒng)的拓補(bǔ)結(jié)構(gòu)??衫脤哟魏蛪K的各種組合,將多個子系統(tǒng)構(gòu)成完整的軟件系統(tǒng)。個子系統(tǒng)構(gòu)成完整的軟件系統(tǒng)。 2. 設(shè)計問題域子系統(tǒng)設(shè)計問題域子系統(tǒng) 設(shè)計問題域子系統(tǒng)的設(shè)計問題域子系統(tǒng)的主要工作主要工作為:調(diào)整需求、重用設(shè)計、組合為:調(diào)整需求、重用設(shè)計、組合問題域類、添加一般化類等。問題域類、添加一般化類等。5.4 面向?qū)ο笤O(shè)計面向?qū)ο笤O(shè)計 3.設(shè)計任務(wù)管理子系統(tǒng)設(shè)計任務(wù)管理子系

47、統(tǒng) (1)分析并發(fā)性。)分析并發(fā)性。 (2)設(shè)計任務(wù)管理子系統(tǒng)。通常有以下)設(shè)計任務(wù)管理子系統(tǒng)。通常有以下6項工作項工作:確:確定事件驅(qū)動任務(wù)、辨識時鐘驅(qū)動任務(wù)、辨識優(yōu)先及關(guān)鍵定事件驅(qū)動任務(wù)、辨識時鐘驅(qū)動任務(wù)、辨識優(yōu)先及關(guān)鍵任務(wù)、明確協(xié)調(diào)者、評審任務(wù)、確定資源需求。任務(wù)、明確協(xié)調(diào)者、評審任務(wù)、確定資源需求。 (3)定義任務(wù)。主要工作包括:明確具體任務(wù)、協(xié))定義任務(wù)。主要工作包括:明確具體任務(wù)、協(xié)調(diào)工作方法和通信方式。調(diào)工作方法和通信方式。 4. 設(shè)計數(shù)據(jù)管理子系統(tǒng)設(shè)計數(shù)據(jù)管理子系統(tǒng) (1)選取數(shù)據(jù)存儲管理模式。)選取數(shù)據(jù)存儲管理模式。 (2)設(shè)計數(shù)據(jù)管理子系統(tǒng)。)設(shè)計數(shù)據(jù)管理子系統(tǒng)。5.4 面

48、向?qū)ο笤O(shè)計面向?qū)ο笤O(shè)計 5. 設(shè)計人機(jī)交互子系統(tǒng)設(shè)計人機(jī)交互子系統(tǒng) 通常設(shè)計人機(jī)交互子系統(tǒng)時,遵循以下通常設(shè)計人機(jī)交互子系統(tǒng)時,遵循以下準(zhǔn)則和策略準(zhǔn)則和策略。 1)設(shè)計人機(jī)交互界面的準(zhǔn)則)設(shè)計人機(jī)交互界面的準(zhǔn)則 (1)達(dá)到一致。盡量使術(shù)語、步驟和動作達(dá)到完全一致。)達(dá)到一致。盡量使術(shù)語、步驟和動作達(dá)到完全一致。 (2)提高效率。盡量減少擊鍵次數(shù)、點擊鼠標(biāo)的頻率及)提高效率。盡量減少擊鍵次數(shù)、點擊鼠標(biāo)的頻率及下拉菜單的距離,減少輸出時間。下拉菜單的距離,減少輸出時間。 (3)反饋及時。使用戶及時了解系統(tǒng)正在完成操作任務(wù))反饋及時。使用戶及時了解系統(tǒng)正在完成操作任務(wù)的進(jìn)展情況。的進(jìn)展情況。 (4)

49、提供)提供“撤銷撤銷”命令。使用戶及時撤銷錯誤動作,避命令。使用戶及時撤銷錯誤動作,避免免/減少錯誤的影響。減少錯誤的影響。 (5)減少記憶。最好不用記住操作信息再使用界面,盡)減少記憶。最好不用記住操作信息再使用界面,盡量簡單或在操作同時給出提示。量簡單或在操作同時給出提示。 (6)幫助使用。提供聯(lián)機(jī)幫助和參考資料,供隨時查閱。)幫助使用。提供聯(lián)機(jī)幫助和參考資料,供隨時查閱。 (7)便捷友好。易于操作,快捷新穎,富有吸引力。)便捷友好。易于操作,快捷新穎,富有吸引力。5.4 面向?qū)ο笤O(shè)計面向?qū)ο笤O(shè)計 2)設(shè)計人機(jī)交互子系統(tǒng)的策略)設(shè)計人機(jī)交互子系統(tǒng)的策略 (1)用戶分類用戶分類。有利于設(shè)計和

50、實現(xiàn)人機(jī)交互子系統(tǒng)各項。有利于設(shè)計和實現(xiàn)人機(jī)交互子系統(tǒng)各項功能。功能。 按組織層次分類:行政人員、管理人員、專業(yè)技術(shù)人員、按組織層次分類:行政人員、管理人員、專業(yè)技術(shù)人員、其他辦事員。其他辦事員。 按職能分類:顧客、職員。按職能分類:顧客、職員。 按技能層次分類:外行、初學(xué)者、熟練者、專家。按技能層次分類:外行、初學(xué)者、熟練者、專家。 (2)用戶描述用戶描述。對用戶的描述主要包括。對用戶的描述主要包括6個方面:個方面: 用戶具體類型。用戶具體類型。 使用系統(tǒng)所要達(dá)到的目的。使用系統(tǒng)所要達(dá)到的目的。 特征(年齡、性別、受教育程度、限制因素等)。特征(年齡、性別、受教育程度、限制因素等)。 關(guān)鍵的

51、成功因素(需求、愛好、習(xí)慣等)。關(guān)鍵的成功因素(需求、愛好、習(xí)慣等)。 業(yè)務(wù)及操作的技能水平。業(yè)務(wù)及操作的技能水平。 完成本崗位業(yè)務(wù)工作的腳本。完成本崗位業(yè)務(wù)工作的腳本。5.4 面向?qū)ο笤O(shè)計面向?qū)ο笤O(shè)計 (3)設(shè)計命令層次設(shè)計命令層次。有利于設(shè)計和實現(xiàn)人機(jī)交互子系統(tǒng)各。有利于設(shè)計和實現(xiàn)人機(jī)交互子系統(tǒng)各種操作命令。種操作命令。 詳細(xì)調(diào)研現(xiàn)有的人機(jī)交互含義、準(zhǔn)則和操作流程。詳細(xì)調(diào)研現(xiàn)有的人機(jī)交互含義、準(zhǔn)則和操作流程。 確定初始的命令層次:如一系列選擇屏幕、一個按鈕或確定初始的命令層次:如一系列選擇屏幕、一個按鈕或一系列圖標(biāo)。一系列圖標(biāo)。 精化命令層次:調(diào)研命令的次序及歸納關(guān)系、命令層次精化命令層次

52、:調(diào)研命令的次序及歸納關(guān)系、命令層次的寬度和深度要小且操作簡單。的寬度和深度要小且操作簡單。 (4)設(shè)計人機(jī)交互類設(shè)計人機(jī)交互類。便于提供人機(jī)交互的類別操作。便于提供人機(jī)交互的類別操作。如如Visual C+語言提供了語言提供了MFC類庫,設(shè)計人機(jī)交互類時,只需類庫,設(shè)計人機(jī)交互類時,只需從其類庫中選擇合適的類,再派生出需要的類。從其類庫中選擇合適的類,再派生出需要的類。5.4 面向?qū)ο笤O(shè)計面向?qū)ο笤O(shè)計 5.4.3 對象設(shè)計的過程對象設(shè)計的過程 1) 對象描述對象描述對象的設(shè)計描述可選擇以下對象的設(shè)計描述可選擇以下2種形式種形式。 (1)協(xié)議描述。)協(xié)議描述。 (2)實現(xiàn)描述。)實現(xiàn)描述。2)

53、 設(shè)計類中的服務(wù)設(shè)計類中的服務(wù) (1)確定類中應(yīng)有的服務(wù)。)確定類中應(yīng)有的服務(wù)。 (2)設(shè)計實現(xiàn)服務(wù)的方法。)設(shè)計實現(xiàn)服務(wù)的方法。3) 設(shè)計類中的關(guān)聯(lián)設(shè)計類中的關(guān)聯(lián)4) 實現(xiàn)鏈屬性實現(xiàn)鏈屬性5) 優(yōu)化設(shè)計優(yōu)化設(shè)計5.4 面向?qū)ο笤O(shè)計面向?qū)ο笤O(shè)計 5.4.4 類設(shè)計的目標(biāo)及方法類設(shè)計的目標(biāo)及方法 1. 類設(shè)計的主要目標(biāo)類設(shè)計的主要目標(biāo)類設(shè)計的主要目標(biāo):類設(shè)計的主要目標(biāo): (1)單一概念的模型。)單一概念的模型。 (2)可復(fù)用的)可復(fù)用的“插接相容性插接相容性”構(gòu)件。構(gòu)件。 (3)可靠的構(gòu)件。)可靠的構(gòu)件。 (4)可集成的構(gòu)件。)可集成的構(gòu)件。 2. 類設(shè)計的方法類設(shè)計的方法 類的設(shè)計描述包括:類

54、的設(shè)計描述包括: (1)協(xié)議描述。)協(xié)議描述。 (2)實現(xiàn)描述。)實現(xiàn)描述。11討論思考討論思考: (1) OOD的準(zhǔn)則和任務(wù)有哪些?的準(zhǔn)則和任務(wù)有哪些? (2) 系統(tǒng)設(shè)計及對象設(shè)計的過程分別是什么?系統(tǒng)設(shè)計及對象設(shè)計的過程分別是什么? (3) 類設(shè)計的目標(biāo)和方法有哪些?類設(shè)計的目標(biāo)和方法有哪些?5.5 面向?qū)ο蠓治龊驮O(shè)計實例面向?qū)ο蠓治龊驮O(shè)計實例 5.5.1 圖書管理信息系統(tǒng)圖書管理信息系統(tǒng)OOA實例實例 圖書管理信息系統(tǒng)圖書管理信息系統(tǒng)(以下簡稱圖書館系(以下簡稱圖書館系統(tǒng)或系統(tǒng)),院校廣大師生都使用過比較熟悉圖書借閱、統(tǒng)或系統(tǒng)),院校廣大師生都使用過比較熟悉圖書借閱、還書和其它方面的實際

55、業(yè)務(wù)過程、角色、用例和行為等。還書和其它方面的實際業(yè)務(wù)過程、角色、用例和行為等。具體問題描述具體問題描述:(1)一個圖書館藏有圖書和期刊雜志兩大類書籍,每種圖書)一個圖書館藏有圖書和期刊雜志兩大類書籍,每種圖書/雜雜志可以有多冊。志可以有多冊。(2)圖書館可以維護(hù)(注冊、更新和刪除)圖書資料。)圖書館可以維護(hù)(注冊、更新和刪除)圖書資料。(3)圖書管理員在系統(tǒng)支持下,為借書者進(jìn)行借還圖書服務(wù)。)圖書管理員在系統(tǒng)支持下,為借書者進(jìn)行借還圖書服務(wù)。(4)所有人員可以網(wǎng)上瀏覽圖書館的圖書信息和各種告示。)所有人員可以網(wǎng)上瀏覽圖書館的圖書信息和各種告示。(5)借書者可以預(yù)約暫時借閱不到的書或雜志。)借

56、書者可以預(yù)約暫時借閱不到的書或雜志。(6)系統(tǒng)能夠在所有流行的技術(shù)環(huán)境下運(yùn)行,有一個良好的圖)系統(tǒng)能夠在所有流行的技術(shù)環(huán)境下運(yùn)行,有一個良好的圖形交互界面。形交互界面。(7)系統(tǒng)應(yīng)該具有良好的可擴(kuò)展性。)系統(tǒng)應(yīng)該具有良好的可擴(kuò)展性。案例案例5-75-75.4 面向?qū)ο笤O(shè)計面向?qū)ο笤O(shè)計 1 1建立用例模型建立用例模型 (1 1)畫出網(wǎng)上圖書館系統(tǒng)的)畫出網(wǎng)上圖書館系統(tǒng)的用例視圖用例視圖. .如圖如圖5-165-16所示所示. . (2 2)給出系統(tǒng)每個)給出系統(tǒng)每個用例的腳本描述用例的腳本描述,包括正常情景和,包括正常情景和異常情景的腳本描述。異常情景的腳本描述。 圖圖5-16 圖書館系統(tǒng)的用例

57、視圖圖書館系統(tǒng)的用例視圖 5.5 面向?qū)ο蠓治龊驮O(shè)計實例面向?qū)ο蠓治龊驮O(shè)計實例 2 2建立侯選類建立侯選類 通過篩選的通過篩選的侯選類侯選類有有3 3類類:借書者類、圖書書目類和圖:借書者類、圖書書目類和圖書標(biāo)題類,分別建立它們的書標(biāo)題類,分別建立它們的CRCCRC卡。如表卡。如表5-35-3所示。所示。 表表 5-3 圖書館系統(tǒng)的圖書館系統(tǒng)的CRC卡卡借書者類借書者類責(zé)任責(zé)任:借的書目的數(shù)據(jù)和罰金,請求借、還、續(xù)借書目功能借的書目的數(shù)據(jù)和罰金,請求借、還、續(xù)借書目功能 協(xié)作者:圖書書目類協(xié)作者:圖書書目類 圖書書目類圖書書目類責(zé)任責(zé)任:維護(hù)一個具體書目數(shù)據(jù),通知相應(yīng)的圖書標(biāo)題完成借、還功能:

58、維護(hù)一個具體書目數(shù)據(jù),通知相應(yīng)的圖書標(biāo)題完成借、還功能 協(xié)作者:圖書標(biāo)題類協(xié)作者:圖書標(biāo)題類圖書標(biāo)題類圖書標(biāo)題類責(zé)任責(zé)任:維護(hù)一個抽象書的數(shù)據(jù),知道該書的可借數(shù)、預(yù)約數(shù):維護(hù)一個抽象書的數(shù)據(jù),知道該書的可借數(shù)、預(yù)約數(shù) 協(xié)作者:圖書書目類協(xié)作者:圖書書目類Class-Responsibility-Collaborator類類責(zé)任責(zé)任- -協(xié)作者協(xié)作者5.5 面向?qū)ο蠓治龊驮O(shè)計實例面向?qū)ο蠓治龊驮O(shè)計實例 3. 構(gòu)建類圖構(gòu)建類圖 建立一個建立一個“借借/還還”類類存儲存儲借書者借書者的借書記錄,以一個的借書記錄,以一個預(yù)預(yù)約者約者的的“預(yù)約預(yù)約”類類存儲預(yù)約記錄存儲預(yù)約記錄。最終的類最終的類包括:借

59、書者、包括:借書者、圖書標(biāo)題、圖書書目、借圖書標(biāo)題、圖書書目、借/還、預(yù)約。構(gòu)成了還、預(yù)約。構(gòu)成了圖書館系統(tǒng)的類圖書館系統(tǒng)的類圖圖,如圖,如圖5-17所示所示。1n借借/還還預(yù)約預(yù)約借書者圖書標(biāo)題圖書書目 圖圖5-17 圖書館系統(tǒng)的類圖圖書館系統(tǒng)的類圖包含11nn借/還/續(xù)借預(yù)約/刪除預(yù)約5.5 面向?qū)ο蠓治龊驮O(shè)計實例面向?qū)ο蠓治龊驮O(shè)計實例 4. 動態(tài)建模動態(tài)建模 圖書館系統(tǒng)圖書館系統(tǒng)借書(未預(yù)約)功能借書(未預(yù)約)功能的的動態(tài)建模動態(tài)建模,可以,可以進(jìn)行描述。分別進(jìn)行描述。分別如圖如圖5-18、圖、圖5-19和圖和圖5-20所示。所示。:借書者:圖書書目:圖書標(biāo)題2.1驗證可借圖圖5-18

60、圖書館系統(tǒng)借書功能的時序圖圖書館系統(tǒng)借書功能的時序圖:借書者借書者借書2.借書3.創(chuàng)建借書記錄4.更新圖書標(biāo)題5.更新圖書書目6.更新借書者:借/還1.驗證可借性5.5 面向?qū)ο蠓治龊驮O(shè)計實例面向?qū)ο蠓治龊驮O(shè)計實例 1.驗證可借性:借書者借書借書:借書者借書者6.更新借書者:借/還 new:圖書書目:圖書標(biāo)題圖圖5-19 圖書館系統(tǒng)借書功能的協(xié)作圖圖書館系統(tǒng)借書功能的協(xié)作圖2.1 驗證可借4.更新圖書標(biāo)題2.借書5.更新圖書書目3.創(chuàng)建借書記錄5.5 面向?qū)ο蠓治龊驮O(shè)計實例面向?qū)ο蠓治龊驮O(shè)計實例圖書館管理員圖書館管理員圖圖5-20 圖書館系統(tǒng)借圖書館系統(tǒng)借/還書業(yè)務(wù)層的活動圖還書業(yè)務(wù)層的活動圖

溫馨提示

  • 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

提交評論