面向?qū)ο蠓椒▽W(xué)引論新._第1頁
面向?qū)ο蠓椒▽W(xué)引論新._第2頁
面向?qū)ο蠓椒▽W(xué)引論新._第3頁
面向?qū)ο蠓椒▽W(xué)引論新._第4頁
面向?qū)ο蠓椒▽W(xué)引論新._第5頁
已閱讀5頁,還剩62頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第第9章章 面向?qū)ο蠓椒▽W(xué)引論面向?qū)ο蠓椒▽W(xué)引論n教學(xué)目標(biāo)教學(xué)目標(biāo) 掌握面向?qū)ο蠓椒▽W(xué)的概念、掌握用于面向掌握面向?qū)ο蠓椒▽W(xué)的概念、掌握用于面向?qū)ο蠓治?、設(shè)計的對象分析、設(shè)計的3種模型(對象模型、動態(tài)模種模型(對象模型、動態(tài)模型、功能模型)。型、功能模型)。n教學(xué)重點教學(xué)重點 面向?qū)ο蠓椒▽W(xué)的基本概念面向?qū)ο蠓椒▽W(xué)的基本概念n教學(xué)難點教學(xué)難點 面向?qū)ο蠼5牧私饷嫦驅(qū)ο蠼5牧私獾诘?章章 面向?qū)ο蠓椒▽W(xué)引論面向?qū)ο蠓椒▽W(xué)引論q教學(xué)內(nèi)容教學(xué)內(nèi)容 9.1 面向?qū)ο蠓椒▽W(xué)概述面向?qū)ο蠓椒▽W(xué)概述 9.2 面向?qū)ο蟮母拍蠲嫦驅(qū)ο蟮母拍?9.3 面向?qū)ο蠼C嫦驅(qū)ο蠼?9.4 對象模型對象模型9.5

2、動態(tài)模型動態(tài)模型 9.6 功能模型功能模型 9.7 三三種種模型之間的關(guān)系模型之間的關(guān)系傳統(tǒng)的軟件工程方法是面向過程的,將數(shù)據(jù)和傳統(tǒng)的軟件工程方法是面向過程的,將數(shù)據(jù)和處理過程分離,求解過程是先對應(yīng)用領(lǐng)域(問題處理過程分離,求解過程是先對應(yīng)用領(lǐng)域(問題空間)進行分析,建立起問題空間的邏輯模型,空間)進行分析,建立起問題空間的邏輯模型,再通過一系列復(fù)雜的轉(zhuǎn)換和算法,構(gòu)造計算機系再通過一系列復(fù)雜的轉(zhuǎn)換和算法,構(gòu)造計算機系統(tǒng),獲得解空間。統(tǒng),獲得解空間。由于問題空間與解空間的模型、描述方式的不由于問題空間與解空間的模型、描述方式的不同,存在著復(fù)雜的轉(zhuǎn)換過程,需求變化就更難適同,存在著復(fù)雜的轉(zhuǎn)換過程,

3、需求變化就更難適應(yīng)。傳統(tǒng)的軟件工程方法難于支持軟件復(fù)用。應(yīng)。傳統(tǒng)的軟件工程方法難于支持軟件復(fù)用。第第9章章 面向?qū)ο蠓椒▽W(xué)引論面向?qū)ο蠓椒▽W(xué)引論面向?qū)ο蟮乃枷胱畛醭霈F(xiàn)于挪威斯陸大學(xué)和挪面向?qū)ο蟮乃枷胱畛醭霈F(xiàn)于挪威斯陸大學(xué)和挪威計算機中心共同研制的威計算機中心共同研制的SimulaSimula 67 67 語言中,其語言中,其后,隨著位于美國加利福尼亞的后,隨著位于美國加利福尼亞的XeroxXerox(施樂)(施樂) 研究中心推出的研究中心推出的Smalltalk-76 Smalltalk-76 和和80 80 語言,面語言,面向?qū)ο蟮牡某绦蛟O(shè)計技術(shù)迅猛的發(fā)展。向?qū)ο蟮牡某绦蛟O(shè)計技術(shù)迅猛的發(fā)展。

4、到了到了2020世紀(jì)世紀(jì)9090年代,面向?qū)ο蠓椒▽W(xué)已經(jīng)成為年代,面向?qū)ο蠓椒▽W(xué)已經(jīng)成為人們在開發(fā)軟件是首選的成熟的范型,成為當(dāng)前人們在開發(fā)軟件是首選的成熟的范型,成為當(dāng)前最好的軟件開發(fā)技術(shù)。最好的軟件開發(fā)技術(shù)。第第9章章 面向?qū)ο蠓椒▽W(xué)引論面向?qū)ο蠓椒▽W(xué)引論9.1.1 什么是面向?qū)ο蟮拈_發(fā)方法什么是面向?qū)ο蟮拈_發(fā)方法 OOSD(Object-Oriented Software Development)法是一種把面向?qū)ο蟮乃枷霊?yīng)用于軟件開發(fā)過程,法是一種把面向?qū)ο蟮乃枷霊?yīng)用于軟件開發(fā)過程,指導(dǎo)開發(fā)活動的系統(tǒng)方法。指導(dǎo)開發(fā)活動的系統(tǒng)方法。面向?qū)ο蟮姆椒ㄊ且环N運用對象、類、繼承、面向?qū)ο蟮姆椒ㄊ且?/p>

5、種運用對象、類、繼承、封裝、聚合、消息傳送、多態(tài)性等概念來構(gòu)造系封裝、聚合、消息傳送、多態(tài)性等概念來構(gòu)造系統(tǒng)的軟件開發(fā)方法。統(tǒng)的軟件開發(fā)方法。9.1 面向?qū)ο蠓椒ǜ攀雒嫦驅(qū)ο蠓椒ǜ攀鍪裁词敲嫦驅(qū)ο笫裁词敲嫦驅(qū)ο蟾鶕?jù)根據(jù)CoadCoad和和YourdonYourdon的定義,按照以下的定義,按照以下4 4個概念個概念設(shè)計和實現(xiàn)的系統(tǒng),稱為是面向?qū)ο蟮?。設(shè)計和實現(xiàn)的系統(tǒng),稱為是面向?qū)ο蟮摹?面向?qū)ο竺嫦驅(qū)ο? =對象對象 (object) (object) + +類類 (classification) (classification) + +繼承繼承(inheritance)(inheritanc

6、e) + +通信通信 (communication with messages) (communication with messages)9.1.1 什么是面向?qū)ο蟮拈_發(fā)方法什么是面向?qū)ο蟮拈_發(fā)方法 面向?qū)ο蠹夹g(shù)的特點面向?qū)ο蠹夹g(shù)的特點1 1、對軟件開發(fā)過程所有階段進行綜合考慮。、對軟件開發(fā)過程所有階段進行綜合考慮。2 2、軟件生存期各階段所使用的方法、技術(shù)具有、軟件生存期各階段所使用的方法、技術(shù)具有高度的連續(xù)性,用符合人類認(rèn)識世界的思維方式高度的連續(xù)性,用符合人類認(rèn)識世界的思維方式來分析、解決問題。來分析、解決問題。3 3、將、將OOAOOA、OODOOD、OOPOOP有機地集成在一起。有

7、機地集成在一起。 OOA(Object-Oriented Analysis)OOA(Object-Oriented Analysis)面向?qū)ο蠓治雒嫦驅(qū)ο蠓治鯫OD( Object-Oriented Design )OOD( Object-Oriented Design )面向?qū)ο笤O(shè)計面向?qū)ο笤O(shè)計OOP( Object-Oriented Program )OOP( Object-Oriented Program )面向?qū)ο蟮拿嫦驅(qū)ο蟮某绦蛟O(shè)計程序設(shè)計9.1.1 什么是面向?qū)ο蟮拈_發(fā)方法什么是面向?qū)ο蟮拈_發(fā)方法 OOSD由三部分組成:由三部分組成: OOA(Object-Oriented Ana

8、lysis)面向?qū)ο蟮姆治雒嫦驅(qū)ο蟮姆治?OOD(Object-Oriented Design)面向?qū)ο蟮脑O(shè)計面向?qū)ο蟮脑O(shè)計 OOP (Object-Oriented Program)面向?qū)ο蟮某绦蛟O(shè)計面向?qū)ο蟮某绦蛟O(shè)計OOAOOA強調(diào)的是對一個系統(tǒng)中的對象特征和行強調(diào)的是對一個系統(tǒng)中的對象特征和行為的定義。建立系統(tǒng)的三類(對象、狀為的定義。建立系統(tǒng)的三類(對象、狀態(tài)、處理)模型。態(tài)、處理)模型。OODOODOOD與與OOAOOA密切配合順序?qū)崿F(xiàn)對現(xiàn)實世界的進密切配合順序?qū)崿F(xiàn)對現(xiàn)實世界的進一步建模。一步建模。OOPOOPOOP是面向?qū)ο蟮募夹g(shù)中發(fā)展最快的,使用是面向?qū)ο蟮募夹g(shù)中發(fā)展最快的,使用

9、面向?qū)ο蟮某绦蛟O(shè)計語言,進行編碼。面向?qū)ο蟮某绦蛟O(shè)計語言,進行編碼。9.1.2 面向?qū)ο箝_發(fā)方法的組成面向?qū)ο箝_發(fā)方法的組成OOAOODOOP 就是要解決就是要解決“做什么做什么”的問題。的問題。OOA 法的基本任務(wù)就是要法的基本任務(wù)就是要建立三種模型:建立三種模型:狀態(tài)模型狀態(tài)模型(動態(tài)模型)(動態(tài)模型) 描述任何時刻對象的聯(lián)系及其聯(lián)系的改變,即時序。常描述任何時刻對象的聯(lián)系及其聯(lián)系的改變,即時序。常用狀態(tài)圖用狀態(tài)圖, , 事件追蹤圖描述。事件追蹤圖描述。功能功能/ /處理模型處理模型(函數(shù)模型)(函數(shù)模型) 描述系統(tǒng)內(nèi)部數(shù)據(jù)的傳送處理。描述系統(tǒng)內(nèi)部數(shù)據(jù)的傳送處理。 顯然,在三大模型中,最重

10、要的是對象模型。顯然,在三大模型中,最重要的是對象模型。對象模型對象模型(信息模型)(信息模型) 定義構(gòu)成系統(tǒng)的類和對象,它們的屬性與操作。定義構(gòu)成系統(tǒng)的類和對象,它們的屬性與操作。9.1.2 面向?qū)ο箝_發(fā)方法的組成面向?qū)ο箝_發(fā)方法的組成在需求分析的基礎(chǔ)上,進一步解決在需求分析的基礎(chǔ)上,進一步解決“如何作如何作”的問題,的問題,OOD OOD 法也分為概要設(shè)計和詳細(xì)設(shè)計。法也分為概要設(shè)計和詳細(xì)設(shè)計。細(xì)化對象行為,添加新對象,認(rèn)定類,組類細(xì)化對象行為,添加新對象,認(rèn)定類,組類庫,確定外部接口及主要數(shù)據(jù)結(jié)構(gòu)庫,確定外部接口及主要數(shù)據(jù)結(jié)構(gòu)詳細(xì)設(shè)計:詳細(xì)設(shè)計:加細(xì)對象描述加細(xì)對象描述 使用面向?qū)ο蟮某?/p>

11、序設(shè)計語言,如使用面向?qū)ο蟮某绦蛟O(shè)計語言,如C+C+進行程序設(shè)計。進行程序設(shè)計。 CoadCoad和和YourdonYourdon給出一個面向?qū)ο蟮亩x:給出一個面向?qū)ο蟮亩x:面向?qū)ο竺嫦驅(qū)ο? =對象對象+ +類類+ +繼承繼承+ +消息消息如果一個軟件系統(tǒng)是按照這樣四個概念設(shè)計和實現(xiàn)的,如果一個軟件系統(tǒng)是按照這樣四個概念設(shè)計和實現(xiàn)的,則可以認(rèn)為這個軟件系統(tǒng)是面向?qū)ο蟮摹t可以認(rèn)為這個軟件系統(tǒng)是面向?qū)ο蟮摹?.1.2 面向?qū)ο箝_發(fā)方法的組成面向?qū)ο箝_發(fā)方法的組成面向?qū)ο蠓椒ǖ闹饕攸c:面向?qū)ο蠓椒ǖ闹饕攸c:按照人類習(xí)慣的思維方法,對軟件開發(fā)過程所有階段進行按照人類習(xí)慣的思維方法,對軟件開

12、發(fā)過程所有階段進行綜合考慮綜合考慮傳統(tǒng)的程序設(shè)計技術(shù)是面向過程的設(shè)計方法,是以算法為傳統(tǒng)的程序設(shè)計技術(shù)是面向過程的設(shè)計方法,是以算法為核心,把數(shù)據(jù)和過程作為相互獨立的部分,程序代碼用于處核心,把數(shù)據(jù)和過程作為相互獨立的部分,程序代碼用于處理這些數(shù)據(jù)。將數(shù)據(jù)和代碼分離,反映了計算機的觀點,但理這些數(shù)據(jù)。將數(shù)據(jù)和代碼分離,反映了計算機的觀點,但卻忽視了數(shù)據(jù)和操作之間的內(nèi)在聯(lián)系,所以用這種方法設(shè)計卻忽視了數(shù)據(jù)和操作之間的內(nèi)在聯(lián)系,所以用這種方法設(shè)計的軟件系統(tǒng)其解空間與問題空間不一致。的軟件系統(tǒng)其解空間與問題空間不一致。而面向?qū)ο蟮姆椒ㄒ詫ο鬄楹诵模瑥娬{(diào)模擬現(xiàn)實世界中的而面向?qū)ο蟮姆椒ㄒ詫ο鬄楹诵?,?/p>

13、調(diào)模擬現(xiàn)實世界中的概念而不是算法,盡量用符合人類認(rèn)識世界的思維方式來漸概念而不是算法,盡量用符合人類認(rèn)識世界的思維方式來漸進地分析、解決問題,使問題空間與解空間具有一致性,便進地分析、解決問題,使問題空間與解空間具有一致性,便于對軟件開發(fā)過程所有階段進行綜合考慮,能有效地降低軟于對軟件開發(fā)過程所有階段進行綜合考慮,能有效地降低軟件開發(fā)的復(fù)雜度,提高軟件質(zhì)量。件開發(fā)的復(fù)雜度,提高軟件質(zhì)量。面向?qū)ο蟮姆椒ǖ拇硇猿晒校好嫦驅(qū)ο蟮姆椒ǖ拇硇猿晒校?、B.Henderson-sellers 和和 J.m.Edwards提出的面向?qū)ο筌浖岢龅拿嫦驅(qū)ο筌浖嫫趪娙P图懊嫦驅(qū)ο蟮南到y(tǒng)開發(fā)方法。生

14、存期噴泉模型及面向?qū)ο蟮南到y(tǒng)開發(fā)方法。2、G.Booch提出的面向?qū)ο蟮拈_發(fā)方法。提出的面向?qū)ο蟮拈_發(fā)方法。3、P.Coad和和E.Yourd提出的提出的OOA和和OOD法。法。 4、J. Rumbaugh等人提出的對象建模技術(shù)等人提出的對象建模技術(shù)(OMT)。5、Jacobson 提出的面向?qū)ο蟮能浖こ烫岢龅拿嫦驅(qū)ο蟮能浖こ?OOSE)。6、G.Booch J.Rumbough Jacobson等人在等人在Booch方法、方法、OMT和和OOSE的基礎(chǔ)上推出了統(tǒng)一建模語言的基礎(chǔ)上推出了統(tǒng)一建模語言UML。 理解面向?qū)ο蟮幕靖拍顚τ趯W(xué)習(xí)和掌握面向?qū)ο蟮睦斫饷嫦驅(qū)ο蟮幕靖拍顚τ趯W(xué)習(xí)和掌握

15、面向?qū)ο蟮拈_發(fā)方法是十分重要的。開發(fā)方法是十分重要的。9.2 面向?qū)ο蟮母拍蠲嫦驅(qū)ο蟮母拍?對客觀對客觀存在的事物的描述存在的事物的描述可以是事、物、或抽象可以是事、物、或抽象概念概念 ,是將一組數(shù)據(jù)和使用該數(shù)據(jù)的一組基本操作或過程,是將一組數(shù)據(jù)和使用該數(shù)據(jù)的一組基本操作或過程封裝在一起的實體封裝在一起的實體。對象都存在一定的對象都存在一定的,內(nèi)部,內(nèi)部可可以給對象定義以給對象定義對象通過其運算所展示對象通過其運算所展示的特定行為稱為的特定行為稱為對象本身的性質(zhì)稱為對象本身的性質(zhì)稱為,對象將它自身的屬性及運算,對象將它自身的屬性及運算“包裝起來包裝起來”,稱為稱為對象的最基本的特征是封裝性和繼

16、承性對象的最基本的特征是封裝性和繼承性。 9.2.1 對象對象1、 類(類(Class)類類又稱又稱對象類對象類(Object Class),是一組具有相同),是一組具有相同屬性和相同操作的對象的集合。在一個類中,每個對屬性和相同操作的對象的集合。在一個類中,每個對象都是類的象都是類的實例實例(instance) ,它們都可以使用類中提,它們都可以使用類中提供的函數(shù)。供的函數(shù)。類具有屬性類具有屬性,用數(shù)據(jù)結(jié)構(gòu)來描述類的屬性,用數(shù)據(jù)結(jié)構(gòu)來描述類的屬性,類具類具有操作有操作,它是對象的行為的抽象,操作實現(xiàn)的過程稱,它是對象的行為的抽象,操作實現(xiàn)的過程稱為方法(為方法(method) ,方法有方法名

17、,方法體和參數(shù)。,方法有方法名,方法體和參數(shù)。由于對象是類的實例,在進行分析和設(shè)計時,通由于對象是類的實例,在進行分析和設(shè)計時,通常把注意力集中在類上,而不是具體的對象上。常把注意力集中在類上,而不是具體的對象上。9.2.2 其它概念其它概念幾何對象幾何對象顏色顏色位置位置移動(移動(delta:矢量):矢量)選擇(選擇(P:指針型)指針型):布爾型布爾型旋轉(zhuǎn)旋轉(zhuǎn)(角度角度)圖圖9.19.1對象類的描述對象類的描述人人姓姓 名名:字符串字符串年年 齡齡: 整整 型型改換工作改換工作改換地址改換地址文件文件文件名文件名文件大小文件大小最近更新日期最近更新日期打印打印(人人)張紅兵張紅兵28繪圖員

18、繪圖員人民路人民路8號號(人人)李軍李軍24程序員程序員無無圖圖9.2 9.2 對象的描述對象的描述類名類名屬性屬性運算運算 對象圖對象圖 類圖類圖 繼承是使用現(xiàn)存的定義作為基礎(chǔ),建立新定義的技術(shù)。是父繼承是使用現(xiàn)存的定義作為基礎(chǔ),建立新定義的技術(shù)。是父類和子類之間共享數(shù)據(jù)結(jié)構(gòu)和方法的機制,這是類之間的一種類和子類之間共享數(shù)據(jù)結(jié)構(gòu)和方法的機制,這是類之間的一種關(guān)系。在定義和實現(xiàn)一個類的時候,可以在一個已經(jīng)存在的類關(guān)系。在定義和實現(xiàn)一個類的時候,可以在一個已經(jīng)存在的類的基礎(chǔ)上來進行,把這個已經(jīng)存在的類所定義的內(nèi)容做為自己的基礎(chǔ)上來進行,把這個已經(jīng)存在的類所定義的內(nèi)容做為自己的內(nèi)容,并加入若干新內(nèi)

19、容。的內(nèi)容,并加入若干新內(nèi)容。 繼承性分類:繼承性分類: :一個子類只有一個父類。即子類只繼承一個父類:一個子類只有一個父類。即子類只繼承一個父類 的數(shù)據(jù)結(jié)構(gòu)和方法。的數(shù)據(jù)結(jié)構(gòu)和方法。 :一個子類可有多個父類。繼承多個父類的數(shù)據(jù)結(jié):一個子類可有多個父類。繼承多個父類的數(shù)據(jù)結(jié)構(gòu)和方法。構(gòu)和方法?;惢愖宇愖宇怉子類子類B繼承性描述繼承性描述現(xiàn)存類定義現(xiàn)存類定義父類父類( (基類基類) )新類定義新類定義子類子類( (派生類派生類) )繼繼 承承繼承性繼承性 互相聯(lián)系、協(xié)同工互相聯(lián)系、協(xié)同工作等作等對象之間的聯(lián)系可表示為對象間的消息傳遞,即對象之間的聯(lián)系可表示為對象間的消息傳遞,即對象間的通訊機

20、制。對象間的通訊機制。 一個消息應(yīng)該包含以下信息:消息名、接收消息對象的一個消息應(yīng)該包含以下信息:消息名、接收消息對象的標(biāo)識、服務(wù)標(biāo)識標(biāo)識、服務(wù)標(biāo)識 、消息和方法、輸入信息、回答信息。、消息和方法、輸入信息、回答信息。注意:注意:在并發(fā)系統(tǒng)中,多個控制線程(在并發(fā)系統(tǒng)中,多個控制線程(Thread of Control)并發(fā)執(zhí)行,情況就復(fù)雜得多,消息可以是發(fā)出服并發(fā)執(zhí)行,情況就復(fù)雜得多,消息可以是發(fā)出服務(wù)請求、提交數(shù)據(jù)、發(fā)布事件信息、或是傳遞同步控制信務(wù)請求、提交數(shù)據(jù)、發(fā)布事件信息、或是傳遞同步控制信息。息。在對象的操作中當(dāng)一個消息發(fā)送給某個對象時,消息在對象的操作中當(dāng)一個消息發(fā)送給某個對象時

21、,消息包含接收對象去執(zhí)行某種操作的消息。包含接收對象去執(zhí)行某種操作的消息。n 多態(tài)性多態(tài)性(Polymorphism)是指相同的操作或函數(shù),過程作是指相同的操作或函數(shù),過程作用于不同的對象上并獲得不同的結(jié)果。用于不同的對象上并獲得不同的結(jié)果。n 即相同的操作的消息發(fā)送給不同的對象時,每個對象將即相同的操作的消息發(fā)送給不同的對象時,每個對象將根據(jù)自己所屬類中所定義的操作去執(zhí)行,故產(chǎn)生不同的結(jié)根據(jù)自己所屬類中所定義的操作去執(zhí)行,故產(chǎn)生不同的結(jié)果。果。n 例如:例如: “繪圖繪圖”操作,作用在操作,作用在“橢圓橢圓” 和和“矩形矩形” 上,上,畫出不同的圖形。畫出不同的圖形。n動態(tài)綁定動態(tài)綁定(dy

22、namic binding)是在運行時根據(jù)對象接收的是在運行時根據(jù)對象接收的消息動態(tài)地確定要連接的服務(wù)代碼。消息動態(tài)地確定要連接的服務(wù)代碼。類中操作的實現(xiàn)過程稱為方法。類中操作的實現(xiàn)過程稱為方法。 一個方法包括方法名、參數(shù)及方法體。一個方法包括方法名、參數(shù)及方法體。 方法描述了類與對象的行為,每一個對象都封裝了數(shù)據(jù)和方法描述了類與對象的行為,每一個對象都封裝了數(shù)據(jù)和算法兩個方面,數(shù)據(jù)由一組屬性表示,而算法即是當(dāng)一個對算法兩個方面,數(shù)據(jù)由一組屬性表示,而算法即是當(dāng)一個對象接收到一條消息后,它所包含的方法決定對象如何動作。象接收到一條消息后,它所包含的方法決定對象如何動作。通常是在某種編程語言(如

23、通常是在某種編程語言(如Java、C+)下實施的運算。)下實施的運算。9.3 面向?qū)ο蠼C嫦驅(qū)ο蠼?用面向?qū)ο蠓椒ǔ晒Φ亻_發(fā)軟件的關(guān)鍵,同樣用面向?qū)ο蠓椒ǔ晒Φ亻_發(fā)軟件的關(guān)鍵,同樣是對問題域的理解。面向?qū)ο蠓椒ㄗ罨镜脑瓌t,是對問題域的理解。面向?qū)ο蠓椒ㄗ罨镜脑瓌t,是按照人們習(xí)慣的思維方式,用面向?qū)ο笥^點建是按照人們習(xí)慣的思維方式,用面向?qū)ο笥^點建立問題域的模型,開發(fā)出盡可能自然地表現(xiàn)求解立問題域的模型,開發(fā)出盡可能自然地表現(xiàn)求解方法的軟件。方法的軟件。用面向?qū)ο蠓椒ㄩ_發(fā)軟件,通常需要建立用面向?qū)ο蠓椒ㄩ_發(fā)軟件,通常需要建立3種形種形式的模型,它們分別是描述系統(tǒng)數(shù)據(jù)結(jié)構(gòu)的式的模型,它們分

24、別是描述系統(tǒng)數(shù)據(jù)結(jié)構(gòu)的對象對象模型模型,描述系統(tǒng)控制結(jié)構(gòu)的,描述系統(tǒng)控制結(jié)構(gòu)的動態(tài)模型動態(tài)模型和描述系統(tǒng)和描述系統(tǒng)功能的功能的功能模型功能模型。這這3種模型各自從不同側(cè)面反映了系統(tǒng)的實質(zhì)性內(nèi)種模型各自從不同側(cè)面反映了系統(tǒng)的實質(zhì)性內(nèi)容,綜合起來則全面地反映了對目標(biāo)系統(tǒng)的需求。容,綜合起來則全面地反映了對目標(biāo)系統(tǒng)的需求。一個典型的軟件系統(tǒng)組合了上述一個典型的軟件系統(tǒng)組合了上述3方面內(nèi)容:它使方面內(nèi)容:它使用數(shù)據(jù)結(jié)構(gòu)用數(shù)據(jù)結(jié)構(gòu)(對象模型對象模型),執(zhí)行操作,執(zhí)行操作(動態(tài)模型動態(tài)模型),并且,并且完成數(shù)據(jù)值的變化完成數(shù)據(jù)值的變化(功能模型功能模型)。用面向?qū)ο蠓椒ㄩ_發(fā)軟件,在任何情況下,對象用面向?qū)?/p>

25、象方法開發(fā)軟件,在任何情況下,對象模型始終都是最重要、最基本、最核心的。模型始終都是最重要、最基本、最核心的。9.4 對象模型對象模型面向?qū)ο蠓椒◤娬{(diào)圍繞對象而不是圍繞功能來面向?qū)ο蠓椒◤娬{(diào)圍繞對象而不是圍繞功能來構(gòu)造系統(tǒng)。對象模型為建立動態(tài)模型和功能模型,構(gòu)造系統(tǒng)。對象模型為建立動態(tài)模型和功能模型,提供了實質(zhì)性的框架。提供了實質(zhì)性的框架。統(tǒng)一建模語言統(tǒng)一建模語言UMLUML;定義類(屬性、服務(wù))、類的圖形符號;定義類(屬性、服務(wù))、類的圖形符號;類與類之間的關(guān)聯(lián)、泛化(繼承)、依賴和細(xì)類與類之間的關(guān)聯(lián)、泛化(繼承)、依賴和細(xì)化等關(guān)系及其表示等等。化等關(guān)系及其表示等等。9.4 對象模型對象模型

26、n1.類圖簡介類圖簡介n我們看到的大多數(shù)UML圖都是類圖。類圖是最廣泛的一種模型,用來表述系統(tǒng)中各個對象的類型以及其間存在的各種靜態(tài)關(guān)系。顯示出類、接口以及它們之間的靜態(tài)結(jié)構(gòu)和關(guān)系;我們常用類圖描述系統(tǒng)的結(jié)構(gòu)。右是一個典型的類圖。類圖中的關(guān)系包括:依賴關(guān)系(Dependency)、泛化關(guān)系(Generalization)、關(guān)聯(lián)關(guān)系(Association)、實現(xiàn)關(guān)系(Realization) 。9.4 對象模型對象模型n2.類圖的作用類圖的作用n 類圖常用來描述業(yè)務(wù)或軟件系統(tǒng)的組成、結(jié)構(gòu)和關(guān)系。我們通常通過下面三種方式使用類圖:n(1)為系統(tǒng)詞匯建模型n為系統(tǒng)的詞匯建模實際上是從詞匯表中發(fā)現(xiàn)類

27、,發(fā)現(xiàn)它的責(zé)任。n(2)模型化簡單的協(xié)作n協(xié)作是指一些類、接口和其他的元素一起工作,提供一些合作的行為,這些行為不是簡單地將元素加在一起就能實現(xiàn)的。例如:當(dāng)我們?yōu)橐粋€分布式的系統(tǒng)中的事務(wù)處理過程創(chuàng)建模型時,我們不可能只通過一個類來表明事務(wù)是怎樣執(zhí)行的,事實上這個過程的執(zhí)行涉及到一系列的類的協(xié)同工作。使用類圖來可視化這些類和他們的關(guān)系。n(3)模型化一個邏輯數(shù)據(jù)庫模式n我們常用類圖設(shè)計數(shù)據(jù)庫的藍(lán)圖。在很多領(lǐng)域,我們想把持久性數(shù)據(jù)保存到關(guān)系數(shù)據(jù)庫或面向?qū)ο蟮臄?shù)據(jù)庫中。我們可以用類圖為這些數(shù)據(jù)庫模式建立模型。9.4.1類圖的基本符號類圖的基本符號nUML中,表示一個類,主要是標(biāo)識它的名稱、屬性和操作

28、。如圖所示,類由一個矩形表示,它包含3欄,在每欄中分別寫入類的名稱、類的屬性和類的操作/服務(wù)服務(wù)。圖3-2 Order類9.4.1類圖的基本符號類圖的基本符號n1名稱n每個類都必須有一個有別于其他類的名稱, 類名部分是不能省略的,其他組成部分可以省略。名稱(Name)是一個文本串,表示方法有兩種:n(1).簡單名:如圖中的Order(訂單),它就只是一個單獨的名稱。n(2).全名:也稱為路徑名,就是在類名前面加上包的名稱,例如java:awt:Rectangel、businessRule:order等。n對于類的命名規(guī)范要求,由字符、數(shù)字、下劃線組成的惟一的字符串即可。但在實際應(yīng)用中,有一個普

29、遍采用的命名原則:采用CamelCase格式(大寫字母開頭、混合大小寫,每個單詞以大寫開始,避免使用特殊符號),盡可能避免使用縮寫。圖3-2 Order類9.4.1類圖的基本符號類圖的基本符號n2.屬性n屬性描述了類的靜態(tài)特征,在面向?qū)ο缶幊讨?,把屬性表示為成員變量。例如,在圖3-2所示的Order類中,列出了orderDate(下訂單時間)、destArea(送貨區(qū)域)、price(訂單總價格)、paymentType(支付類型)四個屬性,它們是用來描述每個具體的訂單對象的。n在屬性的前面有一個修飾,用來表示屬性的可見性,屬性的可見性一般都是private,這樣才符合面向?qū)ο蟮摹胺庋b”思想。

30、通常屬性名的第一個字母是小寫的。圖3-2 Order類9.4.1類圖的基本符號類圖的基本符號n3.操作n操作是類所提供的服務(wù),通俗地說,操作就是定義了對象所能做的事情。在面向?qū)ο缶幊陶Z言中,它通常表示為成員方法。對于操作的圖示,有以下幾點需要說明:n(1) 操作名的命名規(guī)范也未硬性規(guī)定的,大家習(xí)慣采用和屬性名相同的命名規(guī)則。n(2) 對于操作,也經(jīng)常會提供可見性修飾,只是通常應(yīng)該聲明為public,否則它難以向其他類提供服務(wù)。n(3) 操作在表示時可以只寫出操作名,也可以將操作擁有的參數(shù)也寫出來,即寫成員方法的完整簽名。n屬性和操作名之前可附加的可見性修飾符: 加號(+)表示public;減號

31、(-)表示private;#號表示protected;省略這些修飾符表示具有package(包)級別的可見性。 如果屬性或操作名具有下劃線,則說明它是靜態(tài)的。 圖3-2 Order類9.4.1類圖的基本符號類圖的基本符號n4職責(zé)n 職責(zé)指類承擔(dān)的責(zé)任和義務(wù)。在矩形框中最后一欄中寫明類的職責(zé)。如圖9-3最后一行所示。圖9-3 職責(zé)的表示9.4.1類圖的基本符號類圖的基本符號n5約束n約束指定了類所要滿足的一個或多個規(guī)則。 在UML中,約束是用花括號括起來的自由文本。如圖9-4所示。圖9-4 約束的表示9.4.2表示關(guān)系的基本符號表示關(guān)系的基本符號 按照關(guān)系的性質(zhì),把關(guān)系分為4種,它們是關(guān)聯(lián)關(guān)系、

32、泛化/繼承關(guān)系、依賴關(guān)系、細(xì)化/實現(xiàn)關(guān)系。下面分別說明其語義。1 關(guān)聯(lián)關(guān)系關(guān)聯(lián)關(guān)系是比較抽象的高層次關(guān)系,為了對關(guān)聯(lián)進一步具體化,我們需要了解關(guān)聯(lián)的屬性。關(guān)聯(lián)的屬性包括名稱,角色,多重性,限定,導(dǎo)航。它具體包括聚合關(guān)系和組合關(guān)系。9.4.2表示關(guān)系的基本符號表示關(guān)系的基本符號 (1) 名稱可以使用一個動詞或動詞短語給關(guān)聯(lián)取名,用來描述關(guān)聯(lián)的性質(zhì)。在描述關(guān)聯(lián)時,關(guān)聯(lián)的名稱并不是必需的,在關(guān)聯(lián)名和角色中選一即可。可以在關(guān)聯(lián)上標(biāo)識閱讀方向的方向指示符,以消除閱讀的歧義。下面的例子表示,關(guān)聯(lián)名稱是”使用” ,即,用戶使用計算機。圖9-16關(guān)聯(lián)名稱9.4.2 關(guān)聯(lián)的屬性n(2)角色n在關(guān)聯(lián)關(guān)系中,角色表

33、明了關(guān)聯(lián)的每一端在關(guān)聯(lián)中承擔(dān)的職責(zé),即,關(guān)聯(lián)發(fā)生時,關(guān)聯(lián)的每一端在關(guān)聯(lián)中扮演的角色。角色的名稱應(yīng)該是名詞或名詞短語,以解釋對象是如何參與關(guān)聯(lián)的。如圖9-16關(guān)聯(lián)的角色。n學(xué)生在關(guān)聯(lián)中,扮演的是學(xué)習(xí)者的角色;學(xué)校扮演的是教學(xué)者的角色。圖9-16關(guān)聯(lián)的角色332 關(guān)聯(lián)的屬性n(3)多重性n多重性就是某個類有多少個對象可以和另一個類的單個對象關(guān)聯(lián)。如圖3-18所示。上圖的多重性表示:一個顧客(customer)可以擁有一個到多個的賬戶(account),但是一個賬戶只能由一個顧客所擁有。圖3-18關(guān)聯(lián)的多重性CustermerAccount11.n942 關(guān)聯(lián)的屬性n(4)導(dǎo)航性n導(dǎo)航性描述了源對象

34、通過鏈接訪問目標(biāo)對象。箭頭表明了導(dǎo)航的方向性,即,只有源對象才能訪問目標(biāo)對象,反之,目標(biāo)對象不能訪問源對象。如圖9-18所示。圖9-19導(dǎo)航性942 關(guān)聯(lián)的屬性n(5)限定符n如果源對象到目標(biāo)對象是1對多關(guān)聯(lián),為了在多個目標(biāo)對象的集合中查找到需要的目標(biāo)對象,我們必須在目標(biāo)對象集合中,選一個唯一標(biāo)識目標(biāo)對象的查找鍵(限定符,從目標(biāo)對象的屬性中選擇),它應(yīng)該是目標(biāo)對象中的某個屬性,當(dāng)然,也可以是表達(dá)式。n一個俱樂部(Club)可以有多個成員(Member),為了在成員集合(目標(biāo)對象)上找到需要的對象,我們選擇memberId作為查找關(guān)鍵字,即,限定符。圖9-20 限定符ClubmemberIdMe

35、mbermemberId:String10.1受限多重性源對象目標(biāo)對象限定符9.4.2表示關(guān)系的基本符號表示關(guān)系的基本符號 按照關(guān)系的性質(zhì),把關(guān)系分為4種,它們是依賴關(guān)系、泛化關(guān)系、 關(guān)聯(lián)關(guān)系、實現(xiàn)關(guān)系。下面分別說明其語義。1 關(guān)聯(lián)關(guān)系關(guān)聯(lián)關(guān)系是比較抽象的高層次關(guān)系,表示兩個類的對象之間存在某種語義上的聯(lián)系。為了對關(guān)聯(lián)進一步具體化,我們需要了解關(guān)聯(lián)的屬性。關(guān)聯(lián)的屬性包括名稱,角色,多重性,限定,導(dǎo)航。9.4.2表示關(guān)系的基本符號表示關(guān)系的基本符號 2 聚集關(guān)系聚集關(guān)系是關(guān)聯(lián)關(guān)系的特例,它表示類與類的關(guān)系是整體與部分之間的關(guān)系。在陳述需求時使用“包含”、“組成”、“分為部分”等字句,往往意味著存

36、在聚集關(guān)系。具體包括聚合關(guān)系/共享聚集關(guān)系和組合聚集關(guān)系。(1)聚合關(guān)系:在聚集關(guān)系中處于部分方的對象可參與多個處于整體方的對象的構(gòu)成。例如,大學(xué)由多個學(xué)院組成。(2)組合關(guān)系:在聚集關(guān)系中處于部分方的對象與處于整體方的對象共存。例如,窗口中的菜單和按鈕不能離開窗口獨立存在,因此,是組合關(guān)系。圖3-13組合關(guān)系圖3-12 聚合關(guān)系9.4.2表示關(guān)系的基本符號表示關(guān)系的基本符號 3泛化關(guān)系/繼承關(guān)系是從特殊元素到一般元素的分類關(guān)系稱為泛化關(guān)系。模型元素可以是類、用例以及其他。如圖9-11所示。圖9-11 泛化關(guān)系9.4.2表示關(guān)系的基本符號表示關(guān)系的基本符號 4依賴關(guān)系和細(xì)化關(guān)系(1) 依賴關(guān)系

37、表示兩個或多個模型元素之間語義上的關(guān)系, 客戶元素以某種形式依賴于提供者元素。 實際上,關(guān)聯(lián)、實現(xiàn)/細(xì)化和泛化/繼承都是依賴關(guān)系。 如圖9-10所示。圖9-10 依賴關(guān)系9.4.2表示關(guān)系的基本符號表示關(guān)系的基本符號 n依賴關(guān)系可以細(xì)分為4大類:使用依賴、抽象依賴、 授權(quán)依賴、 綁定依賴。nA、使用依賴n表示客戶使用提供者提供的服務(wù),以實現(xiàn)它的行為,下面都屬于使用依賴的具體形式:n使用(use)n調(diào)用(call)n參數(shù)(parameter)n發(fā)送(send)n實例化(instantiate)9.4.2表示關(guān)系的基本符號表示關(guān)系的基本符號nB、 抽象依賴n表示客戶與提供者之間的關(guān)系,客戶與提供者

38、屬于不同的抽象事物,具體依賴形式:n跟蹤(trace)n精化(refine)n派生(derive)nC、 授權(quán)依賴n表達(dá)一個事物訪問另一個事物的能力,具體依賴形式:n訪問(access)n導(dǎo)入(import)n友元(friend)nD、 綁定依賴n綁定依賴屬于較高級的依賴類型,用綁定模板以創(chuàng)建新的模型元素,具體依賴形式:綁定(bind)9.4.2表示關(guān)系的基本符號表示關(guān)系的基本符號n(2) 細(xì)化關(guān)系n表示兩個或多個模型元素之間語義上的關(guān)系, 客戶元素以某種形式對提供者元素進行細(xì)化或精化。 如圖9-11所示。圖9-11 細(xì)化關(guān)系分析類設(shè)計類細(xì)化9.5 動態(tài)模型動態(tài)模型動態(tài)模型表示瞬時的、行為化的

39、系統(tǒng)的動態(tài)模型表示瞬時的、行為化的系統(tǒng)的“控制控制”性質(zhì),性質(zhì),它規(guī)定了對象模型中的對象的合法變化序列。它規(guī)定了對象模型中的對象的合法變化序列。對一個對象來說,生命周期由許多階段組成,在每個特對一個對象來說,生命周期由許多階段組成,在每個特定階段中,都有適合該對象的一組運行規(guī)律和行為規(guī)則,定階段中,都有適合該對象的一組運行規(guī)律和行為規(guī)則,用以規(guī)范該對象的行為。生命周期中的階段也就是對象的用以規(guī)范該對象的行為。生命周期中的階段也就是對象的狀態(tài)。狀態(tài)。各對象之間相互觸發(fā)就形成了一系列的狀態(tài)變化。我們各對象之間相互觸發(fā)就形成了一系列的狀態(tài)變化。我們把一個觸發(fā)行為稱作一個事件。把一個觸發(fā)行為稱作一個事

40、件。狀態(tài)與事件密不可分,一個事件分開兩個狀態(tài),一個狀狀態(tài)與事件密不可分,一個事件分開兩個狀態(tài),一個狀態(tài)隔開兩個事件。事件表示時刻,狀態(tài)代表時間間隔。態(tài)隔開兩個事件。事件表示時刻,狀態(tài)代表時間間隔。9.6 功能模型功能模型圖圖6-1狀態(tài)圖狀態(tài)圖9.6 功能模型功能模型功能模型表示變化的系統(tǒng)的功能模型表示變化的系統(tǒng)的“功能功能”性質(zhì),它性質(zhì),它指明了系統(tǒng)應(yīng)該指明了系統(tǒng)應(yīng)該“做什么做什么”,因此更直接地反映,因此更直接地反映了用戶對目標(biāo)系統(tǒng)的需求。了用戶對目標(biāo)系統(tǒng)的需求。功能模型由一組數(shù)據(jù)流圖組成。在面向?qū)ο蠓焦δ苣P陀梢唤M數(shù)據(jù)流圖組成。在面向?qū)ο蠓椒▽W(xué)中,數(shù)據(jù)流圖遠(yuǎn)不如在結(jié)構(gòu)分析、設(shè)計方法法學(xué)中,

41、數(shù)據(jù)流圖遠(yuǎn)不如在結(jié)構(gòu)分析、設(shè)計方法中那樣重要。中那樣重要。同對象模型和動態(tài)模型比較,數(shù)據(jù)流圖并沒有同對象模型和動態(tài)模型比較,數(shù)據(jù)流圖并沒有增加新的信息,但是,建立功能模型有助于軟件增加新的信息,但是,建立功能模型有助于軟件開發(fā)人員更深入地理解問題域,改進和完善自己開發(fā)人員更深入地理解問題域,改進和完善自己的設(shè)計。的設(shè)計。因此,不能完全忽視功能模型的作用。因此,不能完全忽視功能模型的作用。9.6.1 用例圖用例圖n1. 用例圖的概念n用例圖是外部參與者所能觀察到的系統(tǒng)功能的模型圖,該圖呈現(xiàn)了一些參與者和一些用例,以及它們之間的關(guān)系,主要用于對系統(tǒng)、子系統(tǒng)或類的功能行為進行建模。圖圖9-1棋牌管理

42、系統(tǒng)的用例圖棋牌管理系統(tǒng)的用例圖9.6.1 用例圖用例圖n2. 用例圖的作用n用例圖展示了用例之間以及用例與參與者之間是怎樣相互聯(lián)系的。用例圖對系統(tǒng)、子系統(tǒng)或類的行為進行了可視化,使用戶能夠理解如何使用這些元素,并使開發(fā)者能夠?qū)崿F(xiàn)這些元素。n用例圖主要用來描述用戶的功能需求。UML側(cè)重從最終用戶的角度來理解軟件系統(tǒng)的需求,強調(diào)誰在使用系統(tǒng)、系統(tǒng)可以完成哪些功能。用例分析技術(shù)已經(jīng)是一種公認(rèn)有效的用戶需求獲取、分析和描述技術(shù)。9.6.1 用例圖用例圖n3. 用例圖的組成元素n用例圖的組成元素包括用例、參與者、關(guān)系(用例間的關(guān)系,參與者之間的關(guān)系,參與者與用例之間的關(guān)系)。n多個用例組成一個系統(tǒng),參

43、與者是系統(tǒng)外部的一個實體,它以某種方式與系統(tǒng)交互,請求系統(tǒng)執(zhí)行用例,以獲得參與者需要的價值。n在用例圖中最為核心的兩個元素是參與者(Actor)和用例(Use Case)。9.6.1 用例圖用例圖nA. 參與者n參與者是為了完成某個任務(wù),而與系統(tǒng)進行交互的實體。參與者是用戶相對系統(tǒng)而言所扮演的角色。nA.1 參與者有兩種表示方法,如圖9-2所示。圖9-2 參與者的兩種表示法9.6.1 用例圖用例圖nA.2 參與者分類n 參與者不僅可以由人承擔(dān),還可以是其他系統(tǒng)、硬件設(shè)備,甚至是時鐘。對參與者有兩種分類方法:一種是按參與者本身的性質(zhì)分,一種是按參與者的重要性來分。n(1) 按參與者性質(zhì)分n1)其

44、它系統(tǒng):當(dāng)系統(tǒng)需要與其它系統(tǒng)交互時,如ATM柜員機系統(tǒng)中,銀行后臺系統(tǒng)就是一個參與者;2)硬件設(shè)備:如果系統(tǒng)需要與硬件設(shè)備交互時,如在開發(fā)IC卡門禁系統(tǒng)時,IC卡讀寫器就是一個參與者;3)時鐘:當(dāng)系統(tǒng)需要定時觸發(fā)時,時鐘就是參與者n(2)按參與者重要性分:n與某個用例交互的參與者可能有多個,按參與者對用例的重要性分為以下兩類:n1)主要參與者:從系統(tǒng)獲得可度量價值的用戶,他的需求驅(qū)動了用例所表示的行為或功能。n2)次要參與者:在系統(tǒng)中提供服務(wù),并且不能脫離主要參與者而存在。9.6.1 用例圖用例圖nB. 用例nB.1 用例的概念n 用例是對一組場景共同特征的抽象,即,用例是對一組場景共同行為的

45、抽象,場景就是用例的一次完整的、具體的執(zhí)行過程。用例與場景的關(guān)系,如同類與對象的關(guān)系,用例應(yīng)該給參與者帶來可見的價值。n. 場景n在系統(tǒng)中,按照某個順序執(zhí)行的一系列相關(guān)的動作后,實現(xiàn)了某種功能,把完成了這一功能的操作的集合稱為場景。 “場景”就是用戶使用系統(tǒng)的一個實際的、特定的場面 。n下面列舉一個場景例子。n開發(fā)者與用戶、客戶進行交流,構(gòu)建場景和用例規(guī)格描述。一個場景就是描述用戶與系統(tǒng)之間的一系列交互活動,描述了系統(tǒng)一次具體執(zhí)行的行為路徑,即,一次完整的事件流。如,小劉通過銀行柜圓機(ATM系統(tǒng))取款3000元的場景,如圖9-3所示。9.6.1 用例圖用例圖場景名稱場景名稱 取款取款3000

46、元元參與者參與者 客戶小劉客戶小劉事件流事件流 (1) 小劉將銀行卡插入柜員機。小劉將銀行卡插入柜員機。(2)柜員柜員機要求客戶輸入卡密碼。機要求客戶輸入卡密碼。(3)小劉輸入卡密碼,并確認(rèn)密碼。)小劉輸入卡密碼,并確認(rèn)密碼。(4)柜員柜員機屏幕提示,請客戶選擇服務(wù)類型。機屏幕提示,請客戶選擇服務(wù)類型。(5)小劉選擇取款服務(wù)。)小劉選擇取款服務(wù)。(6)柜員柜員機提示:請客戶輸入取款數(shù)目。機提示:請客戶輸入取款數(shù)目。(7)客戶輸入)客戶輸入3000,并確認(rèn)。,并確認(rèn)。(8)柜員柜員機出錢口輸出機出錢口輸出30張一佰元的人民幣。張一佰元的人民幣。(9)小劉取回)小劉取回30張張100元面額的人民幣

47、。元面額的人民幣。(10)柜員柜員機提示服務(wù)類型:確認(rèn)、或繼續(xù),或退卡。機提示服務(wù)類型:確認(rèn)、或繼續(xù),或退卡。(11)小劉選擇服務(wù)類型退卡,結(jié)束服務(wù)。)小劉選擇服務(wù)類型退卡,結(jié)束服務(wù)。圖9-3 小劉取款場景9.6.1 用例圖用例圖nB.2 用例的表示n每個用例都有一個名字,即,用例的名稱,用例的名稱有兩種表示方法:n簡單名:沒有標(biāo)識用例所屬的包。n路徑名:在用例名前標(biāo)識了用例所屬的包。圖6-用例的名稱表示 9.6.1.1 參與者之間的泛化關(guān)系n參與者之間的關(guān)系一般表現(xiàn)為特殊/一般化關(guān)系,即,泛化關(guān)系。泛化關(guān)系的表示如圖9-5所示。圖9-5 參與者是泛化關(guān)系9.6.1.1 參與者之間的泛化關(guān)系n

48、對于參與者而言,泛化關(guān)系的引用可以有效地降低模型的復(fù)雜度。例如:在圖96所示的用例圖中,我們引入一個“迎賓員”的角色,希望讓迎賓員能完成“安排座位”的職責(zé)。總臺服務(wù)員是一種“特殊”地迎賓員,它不僅可以安排座位,還能夠辦理結(jié)帳。那么通過泛化來更有效地組織這個用例圖。圖9-6參與者泛化9.6.1.2 標(biāo)識用例間的關(guān)系n包含關(guān)系n在UML中,包含關(guān)系用構(gòu)造型include表示,它是指基用例(base use case)在它內(nèi)部的某一個位置上顯式地合并了另一個用例的行為。n(1) 包含用例的表示n包含是指一個用例被另一個用例使用,被使用的用例就是包含用例,使用包含用例的是基用例。9.6.1.2 標(biāo)識用例間的關(guān)系圖圖9-7 包含用例包含用例n圖9-7說明:查詢、提款、轉(zhuǎn)帳三個是基用例,它們都包含打印回執(zhí)用例基

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論