面向?qū)ο蟮姆治雠c設(shè)計(jì)課件-分析篇_第1頁
面向?qū)ο蟮姆治雠c設(shè)計(jì)課件-分析篇_第2頁
面向?qū)ο蟮姆治雠c設(shè)計(jì)課件-分析篇_第3頁
面向?qū)ο蟮姆治雠c設(shè)計(jì)課件-分析篇_第4頁
面向?qū)ο蟮姆治雠c設(shè)計(jì)課件-分析篇_第5頁
已閱讀5頁,還剩182頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、主講教師:劉主講教師:劉 杰杰2 2第第5 5章章建立需求模型建立需求模型用況圖用況圖5.1 需求分析和系統(tǒng)分析需求分析和系統(tǒng)分析需求分析需求分析的確切含義是對(duì)用戶需求進(jìn)行分析,旨在產(chǎn)生一份的確切含義是對(duì)用戶需求進(jìn)行分析,旨在產(chǎn)生一份明確、規(guī)范的需求定義。明確、規(guī)范的需求定義。OOA的主要內(nèi)容是研究問題域中與需求有關(guān)的事物,把它們的主要內(nèi)容是研究問題域中與需求有關(guān)的事物,把它們抽象為系統(tǒng)中的對(duì)象,建立類圖。確切地講,這些工作應(yīng)該抽象為系統(tǒng)中的對(duì)象,建立類圖。確切地講,這些工作應(yīng)該叫做叫做系統(tǒng)分析系統(tǒng)分析,而不是嚴(yán)格意義上的需求分析。,而不是嚴(yán)格意義上的需求分析。早期的早期的OOA缺乏一個(gè)良好的

2、基礎(chǔ)缺乏一個(gè)良好的基礎(chǔ)對(duì)需求的規(guī)范描述。對(duì)需求的規(guī)范描述。需求說明需求說明需求分析需求分析健壯分析健壯分析需求模型需求模型分析模型分析模型分析過程分析過程Jacobson方法(方法(OOSE)提出用況()提出用況(use case)概念,)概念,解決了對(duì)需求的描述問題,其分析過程如下:解決了對(duì)需求的描述問題,其分析過程如下:3 3問題域問題域(抽象的來源)(抽象的來源)OOA模型模型(類圖)(類圖)抽象抽象OOA是將問題域中的事物抽象為系統(tǒng)中的對(duì)象是將問題域中的事物抽象為系統(tǒng)中的對(duì)象系統(tǒng)責(zé)任系統(tǒng)責(zé)任(抽象的目標(biāo))(抽象的目標(biāo))抽象的目標(biāo)是系統(tǒng)責(zé)任抽象的目標(biāo)是系統(tǒng)責(zé)任需求需求用況的概念解決了對(duì)需

3、求的描述問題用況的概念解決了對(duì)需求的描述問題需求模型需求模型(用況圖)(用況圖)4 45.2 5.2 基本思路基本思路問題的提出:?jiǎn)栴}的提出:在系統(tǒng)尚未存在時(shí),如何描繪用戶需要一個(gè)什么樣的系統(tǒng)?如何規(guī)范地定義用戶需求?考慮問題的思路:考慮問題的思路:把系統(tǒng)看作一個(gè)黑箱,看它對(duì)外部的客觀世界發(fā)揮什么作用,描述其外部可見的行為外部可見的行為。系統(tǒng)是由一條系統(tǒng)是由一條邊界包圍起來邊界包圍起來的未知空間的未知空間只通過有限只通過有限的幾個(gè)接口的幾個(gè)接口與外部交互與外部交互系統(tǒng)邊界以外系統(tǒng)邊界以外是與系統(tǒng)進(jìn)行是與系統(tǒng)進(jìn)行交互的參與者交互的參與者把內(nèi)外交互情況描把內(nèi)外交互情況描述清楚,就確切地述清楚,就確

4、切地定義了系統(tǒng)的需求定義了系統(tǒng)的需求5 5系統(tǒng)邊界系統(tǒng)邊界系統(tǒng)邊界:系統(tǒng)邊界:一個(gè)系統(tǒng)所包含的所有系統(tǒng)成分與系統(tǒng)以外一個(gè)系統(tǒng)所包含的所有系統(tǒng)成分與系統(tǒng)以外各種事物的分界線。各種事物的分界線。系統(tǒng):系統(tǒng):被開發(fā)的計(jì)算機(jī)軟硬件系統(tǒng),不是指現(xiàn)實(shí)系統(tǒng)。被開發(fā)的計(jì)算機(jī)軟硬件系統(tǒng),不是指現(xiàn)實(shí)系統(tǒng)。系統(tǒng)成分:系統(tǒng)成分:在在OOA和和OOD中定義并且在編程時(shí)加以實(shí)中定義并且在編程時(shí)加以實(shí)現(xiàn)的系統(tǒng)元素現(xiàn)的系統(tǒng)元素對(duì)象對(duì)象對(duì)對(duì)象象對(duì)象對(duì)象對(duì)象對(duì)象對(duì)象對(duì)象對(duì)象對(duì)象對(duì)象對(duì)象參與者參與者( (人員人員) )參與者參與者( (設(shè)備設(shè)備) )參與者參與者( (外系統(tǒng)外系統(tǒng)) )參與者:參與者:在系在系統(tǒng)邊界以外,統(tǒng)邊界以外

5、,與系統(tǒng)進(jìn)行交與系統(tǒng)進(jìn)行交互的事物互的事物人員、設(shè)備、人員、設(shè)備、外系統(tǒng)外系統(tǒng)5.3 系統(tǒng)邊界與參與者系統(tǒng)邊界與參與者6 6現(xiàn)實(shí)世界中的事物與系統(tǒng)之間的關(guān)系現(xiàn)實(shí)世界中的事物與系統(tǒng)之間的關(guān)系分四種情況分四種情況(1)被抽象為系統(tǒng)中的對(duì)象)被抽象為系統(tǒng)中的對(duì)象汽車飛機(jī)獎(jiǎng)杯鐘表起重機(jī)職員樓房天平(2)只作為系統(tǒng)外部的參與者與系統(tǒng)交互)只作為系統(tǒng)外部的參與者與系統(tǒng)交互(4)與系統(tǒng)無關(guān))與系統(tǒng)無關(guān)操作員(3)既是系統(tǒng)中的對(duì)象,本身又作為參與者與系統(tǒng)交互)既是系統(tǒng)中的對(duì)象,本身又作為參與者與系統(tǒng)交互7 7人員人員系統(tǒng)的直接使用者系統(tǒng)的直接使用者直接為系統(tǒng)服務(wù)的人員直接為系統(tǒng)服務(wù)的人員設(shè)備設(shè)備與系統(tǒng)直接相聯(lián)

6、的設(shè)備與系統(tǒng)直接相聯(lián)的設(shè)備為系統(tǒng)提供信息為系統(tǒng)提供信息在系統(tǒng)控制下運(yùn)行在系統(tǒng)控制下運(yùn)行不與系統(tǒng)相連的設(shè)備不與系統(tǒng)相連的設(shè)備 計(jì)算機(jī)設(shè)備計(jì)算機(jī)設(shè)備 外系統(tǒng)外系統(tǒng)上級(jí)系統(tǒng)上級(jí)系統(tǒng)子系統(tǒng)子系統(tǒng)其它系統(tǒng)其它系統(tǒng)如何發(fā)現(xiàn)參與者如何發(fā)現(xiàn)參與者考慮人員、設(shè)備、外系統(tǒng)考慮人員、設(shè)備、外系統(tǒng)8 8什么是用況什么是用況I. Jacobson:用況是通過使用系統(tǒng)功能的某些部分而使用系統(tǒng)的一種具體方式。每個(gè)用況是通過使用系統(tǒng)功能的某些部分而使用系統(tǒng)的一種具體方式。每個(gè)用況包括用況包括一一個(gè)個(gè)由參與者發(fā)動(dòng)的由參與者發(fā)動(dòng)的完整的事件過程。它詳細(xì)說明了參與者和完整的事件過程。它詳細(xì)說明了參與者和系統(tǒng)之間發(fā)生的交互。因此,一

7、個(gè)用況是一個(gè)由參與者和系統(tǒng)在一次對(duì)系統(tǒng)之間發(fā)生的交互。因此,一個(gè)用況是一個(gè)由參與者和系統(tǒng)在一次對(duì)話中執(zhí)行的特定的相關(guān)事務(wù)序列。全部用況的集合則說明了所有可能存話中執(zhí)行的特定的相關(guān)事務(wù)序列。全部用況的集合則說明了所有可能存在的系統(tǒng)使用方式。在的系統(tǒng)使用方式。對(duì)象技術(shù)詞典對(duì)象技術(shù)詞典:1對(duì)一個(gè)系統(tǒng)或者一個(gè)應(yīng)用的一種單一的使用方式所進(jìn)行的描述。對(duì)一個(gè)系統(tǒng)或者一個(gè)應(yīng)用的一種單一的使用方式所進(jìn)行的描述。2關(guān)于關(guān)于單個(gè)參與者單個(gè)參與者在與系統(tǒng)的對(duì)話中所執(zhí)行的處理的行為陳述序列。在與系統(tǒng)的對(duì)話中所執(zhí)行的處理的行為陳述序列。UML:對(duì)對(duì)系統(tǒng)系統(tǒng)在與它的參與者交互時(shí)所能執(zhí)行的一組動(dòng)作序列(包括其變體)在與它的參

8、與者交互時(shí)所能執(zhí)行的一組動(dòng)作序列(包括其變體)的描述。的描述。?本書的定義:本書的定義:用況是對(duì)參與者使用系統(tǒng)的一項(xiàng)功能時(shí)所進(jìn)行的交互過程用況是對(duì)參與者使用系統(tǒng)的一項(xiàng)功能時(shí)所進(jìn)行的交互過程的描述,其中包含由雙方交替執(zhí)行的一系列動(dòng)作。的描述,其中包含由雙方交替執(zhí)行的一系列動(dòng)作。5.4 用況(用況(use case)9 9術(shù)語術(shù)語“use case”use case”的準(zhǔn)確含義的準(zhǔn)確含義使用情況使用情況是對(duì)一項(xiàng)系統(tǒng)功能使用情況的一般描述,它對(duì)于每一次使是對(duì)一項(xiàng)系統(tǒng)功能使用情況的一般描述,它對(duì)于每一次使用都普遍適應(yīng),既不是應(yīng)用實(shí)例,也不是舉例說明。用都普遍適應(yīng),既不是應(yīng)用實(shí)例,也不是舉例說明。因此譯

9、為因此譯為“用況用況”,而不是,而不是“用例用例”。幾點(diǎn)說明:幾點(diǎn)說明:(1 1)一個(gè)用況只描述參與者對(duì)一個(gè)用況只描述參與者對(duì)單獨(dú)一項(xiàng)單獨(dú)一項(xiàng)系統(tǒng)功能的使用情況;系統(tǒng)功能的使用情況;(2 2)通常是平鋪直敘的)通常是平鋪直敘的文字文字描述,描述,UMLUML也允許其他描述方式;也允許其他描述方式;(3 3)陳述參與者和系統(tǒng)在交互過程中)陳述參與者和系統(tǒng)在交互過程中雙方雙方所做的事;所做的事;(4 4)所描述的交互既可能由所描述的交互既可能由參與者發(fā)起參與者發(fā)起也可能由也可能由系統(tǒng)發(fā)起系統(tǒng)發(fā)起 ;(5 5)描述彼此為對(duì)方)描述彼此為對(duì)方直接地直接地做什么事,不描述怎么做;做什么事,不描述怎么做;

10、(6 6)描述應(yīng)力求準(zhǔn)確,允許概括,但)描述應(yīng)力求準(zhǔn)確,允許概括,但不要把雙方的行為混在一起不要把雙方的行為混在一起;(7 7)一個(gè)用況可以由一個(gè)用況可以由多種參與者多種參與者分別參與或共同參與。分別參與或共同參與。 1010內(nèi)容與書寫格式內(nèi)容與書寫格式 :名稱名稱行為陳述(分左右欄)行為陳述(分左右欄)調(diào)用語句調(diào)用語句控制語句控制語句括號(hào)或標(biāo)號(hào)括號(hào)或標(biāo)號(hào)收款收款輸入開始本次收款的命令; 作好收款準(zhǔn)備,應(yīng)收款總作好收款準(zhǔn)備,應(yīng)收款總 數(shù)置為數(shù)置為0 0,輸出提示信息;,輸出提示信息;forfor 顧客選購(gòu)的每種商品 dodo 輸入商品編號(hào); ifif 此種商品多于一件 thenthen 輸入商

11、品數(shù)量 end ifend if; 檢索商品名稱及單價(jià);檢索商品名稱及單價(jià); 貨架商品數(shù)減去售出數(shù);貨架商品數(shù)減去售出數(shù); if 貨架商品數(shù)低于下限貨架商品數(shù)低于下限 then call 通知上貨通知上貨 end if; 計(jì)算本種商品總價(jià)并打印編號(hào)、計(jì)算本種商品總價(jià)并打印編號(hào)、 名稱、數(shù)量、單價(jià)、總價(jià);名稱、數(shù)量、單價(jià)、總價(jià); 總價(jià)累加到應(yīng)收款總數(shù);總價(jià)累加到應(yīng)收款總數(shù);end forend for; 打印應(yīng)收款總數(shù);打印應(yīng)收款總數(shù);輸入顧客付款數(shù); 計(jì)算應(yīng)找回款數(shù),計(jì)算應(yīng)找回款數(shù), 打印付款數(shù)及找回款,打印付款數(shù)及找回款, 應(yīng)收款數(shù)應(yīng)收款數(shù)計(jì)入賬冊(cè)。計(jì)入賬冊(cè)。例例1111如何定義用況如何定義

12、用況針對(duì)單個(gè)用況的描述策略:針對(duì)單個(gè)用況的描述策略:把自己當(dāng)作參與者,與設(shè)想中的系統(tǒng)進(jìn)行交互。考慮:交互的目的是什么?需要向系統(tǒng)輸入什么信息?希望由系統(tǒng)進(jìn)行什么處理并從它得到何種結(jié)果?把上述交互過程描述出來 。定義系統(tǒng)中所有的用況:定義系統(tǒng)中所有的用況:(1)全面地了解和收集用戶所要求的各項(xiàng)系統(tǒng)功能,找出所有的參與者,了解與各項(xiàng)功能相關(guān)的業(yè)務(wù)流程;(2)把用戶提出的功能組織成適當(dāng)?shù)膯挝?,每一?xiàng)功能完成一項(xiàng)完整而相對(duì)獨(dú)立的工作;(3)窮舉每一類參與者所使用的每一項(xiàng)系統(tǒng)功能,定義相應(yīng)的用況;(4)檢查用戶對(duì)系統(tǒng)的各項(xiàng)功能需求是否都通過相應(yīng)的用況做了描述。1212參與者參與者基用況基用況 inclu

13、deextendinclude用況用況 基用況基用況 基用況基用況 被包含用況被包含用況 延伸用況延伸用況 用況用況 5.5 5.5 用況圖用況圖參與者參與者參與者參與者模型元素:模型元素:參與者參與者用況用況延伸延伸包含包含泛化泛化5.5 5.5 用況圖用況圖1313用況之間的關(guān)系用況之間的關(guān)系包含、延伸、泛化包含、延伸、泛化延伸延伸包含包含問題:?jiǎn)栴}:延伸與包含的相似性延伸與包含的相似性延伸的方向問題延伸的方向問題“條件條件”和和“延伸點(diǎn)延伸點(diǎn)”問題問題“泛化泛化”問題問題系統(tǒng)邊界問題系統(tǒng)邊界問題Perform ATMPerform ATMTransactionTransactionWit

14、hdrawWithdrawDepositDepositFundsFunds泛化泛化TransfeTransfer r FundsFunds 1414用況的兩種復(fù)雜情況用況的兩種復(fù)雜情況1 1、兩個(gè)(或多個(gè))參與者共享一個(gè)用況、兩個(gè)(或多個(gè))參與者共享一個(gè)用況不同種類的參與者可能都要使用某一項(xiàng)系統(tǒng)功能,因不同種類的參與者可能都要使用某一項(xiàng)系統(tǒng)功能,因此它們可能共享同一個(gè)用況此它們可能共享同一個(gè)用況例:例:系統(tǒng)維護(hù)系統(tǒng)維護(hù)登錄登錄系統(tǒng)管理員系統(tǒng)管理員普通用戶普通用戶15152、一個(gè)用況的執(zhí)行,可能需要兩個(gè)(甚至多個(gè))參與者同時(shí)一個(gè)用況的執(zhí)行,可能需要兩個(gè)(甚至多個(gè))參與者同時(shí)與系統(tǒng)交互。與系統(tǒng)交互

15、。例:網(wǎng)上購(gòu)物例:網(wǎng)上購(gòu)物網(wǎng)上購(gòu)物客戶供貨商1616用況圖的開發(fā)過程用況圖的開發(fā)過程確定系統(tǒng)邊界確定系統(tǒng)邊界發(fā)現(xiàn)參與者發(fā)現(xiàn)參與者 定義用況定義用況 建立用況之間的關(guān)系建立用況之間的關(guān)系 確定參與者和用況之間的關(guān)系確定參與者和用況之間的關(guān)系 繪制用況圖繪制用況圖 使用用況圖的幾條建議使用用況圖的幾條建議最重要的工作是對(duì)用況的描述最重要的工作是對(duì)用況的描述不要過分深入地描述系統(tǒng)內(nèi)部的行為細(xì)節(jié)不要過分深入地描述系統(tǒng)內(nèi)部的行為細(xì)節(jié) 運(yùn)用最主要概念,加強(qiáng)用況內(nèi)容的描述運(yùn)用最主要概念,加強(qiáng)用況內(nèi)容的描述不要陷入延伸與包含、延伸點(diǎn)、泛化等問題的爭(zhēng)論和辨別不要陷入延伸與包含、延伸點(diǎn)、泛化等問題的爭(zhēng)論和辨別了解

16、用況的局限性了解用況的局限性主要作用是描述功能需求主要作用是描述功能需求5.6 開發(fā)過程與建議開發(fā)過程與建議1717概念:概念:對(duì)象(對(duì)象(object)是系統(tǒng)中用來描述客觀事物的一個(gè)實(shí)體,是系統(tǒng)中用來描述客觀事物的一個(gè)實(shí)體,它是構(gòu)成系統(tǒng)的一個(gè)基本單位,由一組屬性和施加于這組它是構(gòu)成系統(tǒng)的一個(gè)基本單位,由一組屬性和施加于這組屬性的一組操作構(gòu)成。屬性的一組操作構(gòu)成。類(類(class)是具有相同屬性和操作的一組對(duì)象的集合,是具有相同屬性和操作的一組對(duì)象的集合,它為屬于該類的全部對(duì)象提供了統(tǒng)一的抽象描述,它由一它為屬于該類的全部對(duì)象提供了統(tǒng)一的抽象描述,它由一個(gè)類名、一組屬性和一組操作構(gòu)成。個(gè)類名

17、、一組屬性和一組操作構(gòu)成。 類和對(duì)象的關(guān)系類和對(duì)象的關(guān)系集合與成員,對(duì)象是類的實(shí)例集合與成員,對(duì)象是類的實(shí)例在一般在一般-特殊結(jié)構(gòu)中,特殊類特殊結(jié)構(gòu)中,特殊類的對(duì)象實(shí)例在邏輯上也都是其的對(duì)象實(shí)例在邏輯上也都是其一般類的對(duì)象實(shí)例。一般類的對(duì)象實(shí)例。不直接創(chuàng)建對(duì)象實(shí)例的類稱為不直接創(chuàng)建對(duì)象實(shí)例的類稱為抽象類(抽象類(abstract class) 學(xué)生學(xué)生本科生本科生研究生研究生例:例:第第6 6章章 發(fā)現(xiàn)對(duì)象,定義對(duì)象類發(fā)現(xiàn)對(duì)象,定義對(duì)象類6.1 對(duì)象和類的概念及其運(yùn)用對(duì)象和類的概念及其運(yùn)用1818主動(dòng)對(duì)象(主動(dòng)對(duì)象(active object)至少有一個(gè)操作不需至少有一個(gè)操作不需要接收消息就能

18、主動(dòng)執(zhí)行的對(duì)象要接收消息就能主動(dòng)執(zhí)行的對(duì)象用于描述具有主動(dòng)行為的事物用于描述具有主動(dòng)行為的事物主動(dòng)對(duì)象的類叫做主動(dòng)對(duì)象的類叫做主動(dòng)類(主動(dòng)類(active class)被動(dòng)對(duì)象(被動(dòng)對(duì)象(passive object) 每個(gè)操作都必須在每個(gè)操作都必須在消息的驅(qū)動(dòng)下才能執(zhí)行的對(duì)象消息的驅(qū)動(dòng)下才能執(zhí)行的對(duì)象1919類的語義類的語義OO方法中的類在不同的語境下有兩種不同的語義:方法中的類在不同的語境下有兩種不同的語義:1. 一個(gè)類代表由它的全部對(duì)象實(shí)例所構(gòu)成的群體一個(gè)類代表由它的全部對(duì)象實(shí)例所構(gòu)成的群體日常語言表達(dá)中的例子:日常語言表達(dá)中的例子:“公司里有管理人員、技術(shù)人員和市場(chǎng)人員公司里有管理人員

19、、技術(shù)人員和市場(chǎng)人員”“馬路上汽車很多馬路上汽車很多” 在在OO模型中:模型中:每個(gè)類都是由它的全部對(duì)象實(shí)例所構(gòu)成的集合每個(gè)類都是由它的全部對(duì)象實(shí)例所構(gòu)成的集合類代表了它的全部對(duì)象實(shí)例。類代表了它的全部對(duì)象實(shí)例。2. 一個(gè)類代表屬于該類的任意一個(gè)對(duì)象實(shí)例一個(gè)類代表屬于該類的任意一個(gè)對(duì)象實(shí)例從大量的個(gè)體中抽象出一個(gè)概念,再運(yùn)用這個(gè)概念時(shí)就從大量的個(gè)體中抽象出一個(gè)概念,再運(yùn)用這個(gè)概念時(shí)就可以代表其中的任何一個(gè)個(gè)體,例如:可以代表其中的任何一個(gè)個(gè)體,例如: “學(xué)生有一個(gè)學(xué)號(hào),屬于一個(gè)班級(jí),要上課學(xué)生有一個(gè)學(xué)號(hào),屬于一個(gè)班級(jí),要上課” 在在OO系統(tǒng)模型中定義了一個(gè)類,它就可以代表它的任系統(tǒng)模型中定義了

20、一個(gè)類,它就可以代表它的任何一個(gè)對(duì)象實(shí)例,例如:何一個(gè)對(duì)象實(shí)例,例如:汽車與發(fā)動(dòng)機(jī)之間的聚合關(guān)系,表示任何一輛汽車都有一臺(tái)發(fā)汽車與發(fā)動(dòng)機(jī)之間的聚合關(guān)系,表示任何一輛汽車都有一臺(tái)發(fā)動(dòng)機(jī),任何一臺(tái)發(fā)動(dòng)機(jī)都可以裝在動(dòng)機(jī),任何一臺(tái)發(fā)動(dòng)機(jī)都可以裝在01輛汽車上輛汽車上2020在類的抽象層次建模在類的抽象層次建模理由:理由:(1)充分性:模型中一個(gè)類描述了它的全部對(duì)象實(shí)例)充分性:模型中一個(gè)類描述了它的全部對(duì)象實(shí)例(2)必要性:個(gè)別對(duì)象實(shí)例不能代表其他對(duì)象實(shí)例)必要性:個(gè)別對(duì)象實(shí)例不能代表其他對(duì)象實(shí)例(3)符合人類的思維方式:在概念層次上表達(dá)描述事物規(guī)律)符合人類的思維方式:在概念層次上表達(dá)描述事物規(guī)律(

21、4)與)與OOPL保持良好的對(duì)應(yīng)保持良好的對(duì)應(yīng)(5)避免建模概念復(fù)雜化)避免建模概念復(fù)雜化 (6)消除抽象層次的混亂)消除抽象層次的混亂2121如何運(yùn)用類和對(duì)象的概念如何運(yùn)用類和對(duì)象的概念從對(duì)象出發(fā)認(rèn)識(shí)問題域從對(duì)象出發(fā)認(rèn)識(shí)問題域?qū)栴}域中的事物抽象為對(duì)象;將問題域中的事物抽象為對(duì)象;將具有共同特征的對(duì)象抽象為類將具有共同特征的對(duì)象抽象為類用類以及它們之間的關(guān)系構(gòu)成整個(gè)系統(tǒng)模型;用類以及它們之間的關(guān)系構(gòu)成整個(gè)系統(tǒng)模型;歸納歸納演繹演繹在模型中用類表示屬于該類的任何對(duì)象在模型中用類表示屬于該類的任何對(duì)象在類的規(guī)約中說明這個(gè)類將創(chuàng)建那些對(duì)象實(shí)例在類的規(guī)約中說明這個(gè)類將創(chuàng)建那些對(duì)象實(shí)例在程序中用類定義

22、它的全部對(duì)象在程序中用類定義它的全部對(duì)象編程時(shí)靜態(tài)聲明類的對(duì)象編程時(shí)靜態(tài)聲明類的對(duì)象運(yùn)行時(shí)動(dòng)態(tài)創(chuàng)建類的對(duì)象運(yùn)行時(shí)動(dòng)態(tài)創(chuàng)建類的對(duì)象2222類類 名名壓縮方式壓縮方式類類 名名屬性名屬性名:類型名類型名操作名操作名()展開方式展開方式主動(dòng)類主動(dòng)類active類類 名名衍型(衍型(stereotype)用關(guān)鍵字或者用關(guān)鍵字或者用圖標(biāo)表示用圖標(biāo)表示類名類名UML2 主動(dòng)類表示法主動(dòng)類表示法主動(dòng)主動(dòng)類類 名名6.2 表示法表示法在在模型模型中用類符號(hào)來表示一個(gè)類中用類符號(hào)來表示一個(gè)類它代表了屬于該類的全部對(duì)象實(shí)例它代表了屬于該類的全部對(duì)象實(shí)例2323對(duì)象名對(duì)象名: :類名類名壓縮方式壓縮方式屬性名屬性名

23、=值值UML的對(duì)象的對(duì)象表示法:表示法:細(xì)節(jié)方式細(xì)節(jié)方式對(duì)象名對(duì)象名: :類名類名匿名對(duì)象匿名對(duì)象: :類名類名壓縮方式壓縮方式屬性名屬性名=值值細(xì)節(jié)方式細(xì)節(jié)方式: :類名類名用所謂“匿名對(duì)象”代表類的任何一個(gè)對(duì)象實(shí)例,然而這恰恰是類的作用。24246.3 發(fā)現(xiàn)對(duì)象發(fā)現(xiàn)對(duì)象研究問題域研究問題域親臨現(xiàn)場(chǎng)深入調(diào)查研究親臨現(xiàn)場(chǎng)深入調(diào)查研究直接觀察并向用戶及相關(guān)的業(yè)務(wù)人員進(jìn)行調(diào)查和直接觀察并向用戶及相關(guān)的業(yè)務(wù)人員進(jìn)行調(diào)查和交流交流,考察問題域中各種各樣的事物、它們的特征及相互關(guān)系 聽取問題域?qū)<业囊娊饴犎栴}域?qū)<业囊娊忸I(lǐng)域?qū)<翌I(lǐng)域?qū)<野夹g(shù)人員、管理者、老職員和包括技術(shù)人員、管理者、老職員和富有經(jīng)

24、驗(yàn)的工人等富有經(jīng)驗(yàn)的工人等閱讀相關(guān)材料閱讀相關(guān)材料閱讀各種與問題域有關(guān)的材料,學(xué)習(xí)相關(guān)行業(yè)和閱讀各種與問題域有關(guān)的材料,學(xué)習(xí)相關(guān)行業(yè)和領(lǐng)域的基本知識(shí)領(lǐng)域的基本知識(shí)借鑒以往的系統(tǒng)借鑒以往的系統(tǒng)查閱以往在該問題域中開發(fā)過的同類系統(tǒng)的分析查閱以往在該問題域中開發(fā)過的同類系統(tǒng)的分析文檔文檔 ,吸取經(jīng)驗(yàn),發(fā)現(xiàn)可以復(fù)用的類,吸取經(jīng)驗(yàn),發(fā)現(xiàn)可以復(fù)用的類 2525正確地運(yùn)用抽象原則正確地運(yùn)用抽象原則對(duì)什么進(jìn)行抽象對(duì)什么進(jìn)行抽象問題域問題域當(dāng)前目標(biāo)當(dāng)前目標(biāo)系統(tǒng)責(zé)任系統(tǒng)責(zé)任忽略與系統(tǒng)責(zé)任無關(guān)的事物忽略與系統(tǒng)責(zé)任無關(guān)的事物只注意與之有關(guān)的事物只注意與之有關(guān)的事物 ,抽象為系統(tǒng)中的對(duì)象,抽象為系統(tǒng)中的對(duì)象 例如:學(xué)校

25、的教師、學(xué)生、教務(wù)員例如:學(xué)校的教師、學(xué)生、教務(wù)員 和和 警衛(wèi)警衛(wèi)忽略與系統(tǒng)責(zé)任無關(guān)的事物特征忽略與系統(tǒng)責(zé)任無關(guān)的事物特征只注意與之有關(guān)的特征,抽象為對(duì)象的屬性或操作只注意與之有關(guān)的特征,抽象為對(duì)象的屬性或操作 例如:教師的專業(yè)、職稱例如:教師的專業(yè)、職稱 和和 身高、體重身高、體重正確地提煉對(duì)象正確地提煉對(duì)象 例如:對(duì)書的不同抽象例如:對(duì)書的不同抽象在圖書館管理系統(tǒng)中以在圖書館管理系統(tǒng)中以一本書一本書作為一個(gè)對(duì)象實(shí)例作為一個(gè)對(duì)象實(shí)例在書店管理系統(tǒng)中以在書店管理系統(tǒng)中以一種書一種書作為一個(gè)對(duì)象實(shí)例作為一個(gè)對(duì)象實(shí)例2626如何發(fā)現(xiàn)各種有用的候選對(duì)象? 主要策略主要策略 :從從問題域問題域、系統(tǒng)邊

26、界系統(tǒng)邊界和和系統(tǒng)責(zé)任系統(tǒng)責(zé)任3個(gè)方面考慮各種能夠啟發(fā)自己發(fā)現(xiàn)對(duì)象的個(gè)方面考慮各種能夠啟發(fā)自己發(fā)現(xiàn)對(duì)象的因素,找出可能有用的因素,找出可能有用的候選對(duì)象候選對(duì)象。2727由系統(tǒng)管理或使用由系統(tǒng)管理或使用其信息,或者在系其信息,或者在系統(tǒng)中呈現(xiàn)某些行為統(tǒng)中呈現(xiàn)某些行為的各類人員的各類人員由系統(tǒng)管理或使用由系統(tǒng)管理或使用其信息,或者在系其信息,或者在系統(tǒng)中呈現(xiàn)某些行為統(tǒng)中呈現(xiàn)某些行為的各類組織的各類組織由系統(tǒng)進(jìn)行管由系統(tǒng)進(jìn)行管理的各種物品理的各種物品其他其他策略與啟發(fā)策略與啟發(fā)(1 1)考慮問題域:)考慮問題域:抽象事物抽象事物事件事件文件文件結(jié)構(gòu)結(jié)構(gòu)人員人員組織組織物品物品設(shè)備設(shè)備由系統(tǒng)進(jìn)行管理

27、或由系統(tǒng)進(jìn)行管理或控制,或者在系統(tǒng)控制,或者在系統(tǒng)中呈現(xiàn)某些行為的中呈現(xiàn)某些行為的各種設(shè)備各種設(shè)備例如:課程、計(jì)例如:課程、計(jì)劃、交易、賬戶劃、交易、賬戶需要長(zhǎng)期記憶的事件需要長(zhǎng)期記憶的事件例如:銀行的取款、例如:銀行的取款、存款,保險(xiǎn)公司的索存款,保險(xiǎn)公司的索賠,車輛管理中的駕賠,車輛管理中的駕駛違章駛違章泛指各種表格、檔案、證件、票據(jù)等文件泛指各種表格、檔案、證件、票據(jù)等文件例如:業(yè)務(wù)報(bào)表,人事檔案,身份證,合例如:業(yè)務(wù)報(bào)表,人事檔案,身份證,合同,商品訂單等同,商品訂單等 注意三個(gè)問題:非基礎(chǔ)數(shù)據(jù),同一事物的注意三個(gè)問題:非基礎(chǔ)數(shù)據(jù),同一事物的重復(fù)描述,多種事物信息組合重復(fù)描述,多種事物

28、信息組合從結(jié)構(gòu)得到啟發(fā),從結(jié)構(gòu)得到啟發(fā),聯(lián)想到新的對(duì)象聯(lián)想到新的對(duì)象其他一切有助于發(fā)其他一切有助于發(fā)現(xiàn)對(duì)象的事物現(xiàn)對(duì)象的事物2828(2 2)考慮系統(tǒng)邊界:)考慮系統(tǒng)邊界:考察在系統(tǒng)邊界以外與系統(tǒng)交互的各類參與者考察在系統(tǒng)邊界以外與系統(tǒng)交互的各類參與者考慮通過考慮通過哪哪些對(duì)象處理這些參與者的交互些對(duì)象處理這些參與者的交互人員人員設(shè)備設(shè)備外系統(tǒng)外系統(tǒng)(3 3)考慮系統(tǒng)責(zé)任:)考慮系統(tǒng)責(zé)任:檢查每一項(xiàng)功能需求是否已有相應(yīng)的對(duì)象提供,檢查每一項(xiàng)功能需求是否已有相應(yīng)的對(duì)象提供,發(fā)現(xiàn)遺漏的對(duì)象發(fā)現(xiàn)遺漏的對(duì)象2929審查與篩選審查與篩選(1)舍棄無用的對(duì)象)舍棄無用的對(duì)象通過屬性判斷:通過屬性判斷:是否

29、通過屬性記錄了某些有用的信息?是否通過屬性記錄了某些有用的信息?通過操作判斷:通過操作判斷:是否通過操作提供了某些有用的功能?是否通過操作提供了某些有用的功能?二者都不是二者都不是無用無用3030(2)對(duì)象的精簡(jiǎn))對(duì)象的精簡(jiǎn)只有一個(gè)屬性的對(duì)象只有一個(gè)屬性的對(duì)象班級(jí)班級(jí)班主任班主任姓名姓名11班級(jí)班級(jí)班主任姓名班主任姓名只有一個(gè)操作的對(duì)象只有一個(gè)操作的對(duì)象輸出設(shè)備輸出設(shè)備格式轉(zhuǎn)換器格式轉(zhuǎn)換器文件格式轉(zhuǎn)換文件格式轉(zhuǎn)換輸出設(shè)備輸出設(shè)備文件格式轉(zhuǎn)換文件格式轉(zhuǎn)換call3131(3)與實(shí)現(xiàn)條件有關(guān)的對(duì)象)與實(shí)現(xiàn)條件有關(guān)的對(duì)象例如:例如:圖形用戶界面(圖形用戶界面(GUI)數(shù)據(jù)管理系統(tǒng)數(shù)據(jù)管理系統(tǒng)硬件硬件

30、操作系統(tǒng)操作系統(tǒng) 有關(guān)的對(duì)象有關(guān)的對(duì)象推遲到推遲到OOD考慮考慮32326.4 對(duì)象分類對(duì)象分類(1 1)將對(duì)象抽象為類,用類表示它的全部對(duì)象)將對(duì)象抽象為類,用類表示它的全部對(duì)象為每一組具有相同屬性和操作的對(duì)象定義為一個(gè)類,用一為每一組具有相同屬性和操作的對(duì)象定義為一個(gè)類,用一個(gè)類符號(hào)表示。個(gè)類符號(hào)表示。(2 2)審查和調(diào)整)審查和調(diào)整類的屬性或操作不適合該類的全部對(duì)象實(shí)例類的屬性或操作不適合該類的全部對(duì)象實(shí)例例:例:“汽車汽車”類的類的“乘客限量乘客限量”屬性屬性進(jìn)一步劃分特殊類進(jìn)一步劃分特殊類屬性及操作相同的類屬性及操作相同的類經(jīng)過抽象,差別很大的事物可能只保留相同的特征經(jīng)過抽象,差別很

31、大的事物可能只保留相同的特征 (服裝服裝和計(jì)算機(jī)和計(jì)算機(jī))考慮能否合并為一個(gè)類考慮能否合并為一個(gè)類屬性及操作相似的類屬性及操作相似的類例如:例如: “轎車轎車”和和“貨車貨車” 考慮能否提升出一個(gè)一般類考慮能否提升出一個(gè)一般類同一事物的重復(fù)描述同一事物的重復(fù)描述例:例:“職員職員”和和“工作證工作證”取消其中一個(gè)取消其中一個(gè)3333(3 3)類的命名)類的命名類的名字應(yīng)適合該類(及其特殊類)的全部對(duì)象實(shí)例類的名字應(yīng)適合該類(及其特殊類)的全部對(duì)象實(shí)例反映個(gè)體而不是群體反映個(gè)體而不是群體使用名詞使用名詞 或或 帶定語的名詞帶定語的名詞避免避免市井俚語和市井俚語和無意義的符號(hào)無意義的符號(hào)使用問題域

32、通用的詞匯使用問題域通用的詞匯使用便于交流的語言文字使用便于交流的語言文字可以用本地文字和英文雙重命名可以用本地文字和英文雙重命名3434屬性屬性(attributeattribute)是用來描述對(duì)象靜態(tài)特征的一個(gè)數(shù)據(jù)項(xiàng)。)是用來描述對(duì)象靜態(tài)特征的一個(gè)數(shù)據(jù)項(xiàng)。實(shí)例屬性實(shí)例屬性(instance attribute)和和類屬性類屬性(class attribute)的區(qū)別的區(qū)別例如:儀表類例如:儀表類輸入電壓、功率及各種規(guī)定的質(zhì)量指標(biāo)輸入電壓、功率及各種規(guī)定的質(zhì)量指標(biāo)類屬性類屬性編號(hào)、出廠日期、精度等實(shí)際性能參數(shù)編號(hào)、出廠日期、精度等實(shí)際性能參數(shù)實(shí)例屬性實(shí)例屬性第第7 7章章 定義對(duì)象的屬性和操

33、作定義對(duì)象的屬性和操作7.1 屬性和操作屬性和操作 3535操作操作(operationoperation)是用來描述對(duì)象動(dòng)態(tài)特征(行為)的)是用來描述對(duì)象動(dòng)態(tài)特征(行為)的一個(gè)動(dòng)作序列一個(gè)動(dòng)作序列 。近義詞:方法(近義詞:方法(methodmethod),服務(wù)(),服務(wù)(serviceservice) 被動(dòng)操作被動(dòng)操作(passive operation):):只有接收到消息才能執(zhí)行的操作只有接收到消息才能執(zhí)行的操作 編程語言中的函數(shù)、過程等被動(dòng)成分編程語言中的函數(shù)、過程等被動(dòng)成分主動(dòng)操作主動(dòng)操作(active operation):):不需要接收消息就能主動(dòng)執(zhí)行的操作不需要接收消息就能主動(dòng)

34、執(zhí)行的操作編程語言中的進(jìn)程、線程等主動(dòng)成分編程語言中的進(jìn)程、線程等主動(dòng)成分 3636實(shí)現(xiàn)級(jí)細(xì)節(jié)方式實(shí)現(xiàn)級(jí)細(xì)節(jié)方式分析級(jí)細(xì)節(jié)方式分析級(jí)細(xì)節(jié)方式7.2 屬性和操作的表示法屬性和操作的表示法類類 名名屬性名屬性名:類型名類型名=值值操作名操作名(參數(shù)表參數(shù)表):返回類型:返回類型類類 名名屬性名屬性名:類型名類型名操作名操作名()用衍型表示用衍型表示主動(dòng)操作主動(dòng)操作主動(dòng)主動(dòng) 類名類名操作名操作名()主動(dòng)主動(dòng)操作名操作名()類名類名操作名操作名()主動(dòng)主動(dòng)操作名操作名()操作名操作名()主動(dòng)主動(dòng)操作名操作名()3737 確定對(duì)象屬性的要點(diǎn): 以系統(tǒng)責(zé)任為目標(biāo),對(duì)問題域中實(shí)際事物的特征進(jìn)行正確的抽象,從

35、而找出對(duì)象應(yīng)有的屬性。 針對(duì)每一個(gè)類,首先從各種不同的角度努力發(fā)現(xiàn)可能有用的屬性,然后進(jìn)行審查和篩選,以確定哪些屬性是真正有用的。7.3 定義屬性定義屬性38387.3 7.3 定義屬性定義屬性(1 1)策略與啟發(fā))策略與啟發(fā)按常識(shí)這個(gè)對(duì)象應(yīng)該有哪些屬性?按常識(shí)這個(gè)對(duì)象應(yīng)該有哪些屬性?人人姓名、地址、出生年月姓名、地址、出生年月在當(dāng)前的問題域中,對(duì)象應(yīng)該有哪些屬性?在當(dāng)前的問題域中,對(duì)象應(yīng)該有哪些屬性?商品商品條形碼條形碼根據(jù)系統(tǒng)責(zé)任,這個(gè)對(duì)象應(yīng)具有哪些屬性?根據(jù)系統(tǒng)責(zé)任,這個(gè)對(duì)象應(yīng)具有哪些屬性?乘客乘客手機(jī)號(hào)碼手機(jī)號(hào)碼建立這個(gè)對(duì)象是為了保存和管理哪些信息?建立這個(gè)對(duì)象是為了保存和管理哪些信息

36、?物資物資型號(hào)、規(guī)格、庫存量型號(hào)、規(guī)格、庫存量為實(shí)現(xiàn)操作的功能,需要增設(shè)哪些屬性?為實(shí)現(xiàn)操作的功能,需要增設(shè)哪些屬性?傳感器(信號(hào)采集功能)傳感器(信號(hào)采集功能)時(shí)間間隔時(shí)間間隔是否需要增加描述對(duì)象狀態(tài)的屬性?是否需要增加描述對(duì)象狀態(tài)的屬性?設(shè)備設(shè)備狀態(tài)狀態(tài) 用什么屬性表示關(guān)聯(lián)和聚合?用什么屬性表示關(guān)聯(lián)和聚合?課程課程任課教師,汽車任課教師,汽車發(fā)動(dòng)機(jī)發(fā)動(dòng)機(jī)3939(2)審查與篩選)審查與篩選是否體現(xiàn)了以系統(tǒng)責(zé)任為目標(biāo)的抽象是否體現(xiàn)了以系統(tǒng)責(zé)任為目標(biāo)的抽象例:書例:書重量?重量?是否描述對(duì)象本身的特征是否描述對(duì)象本身的特征例:課程例:課程電話號(hào)碼?電話號(hào)碼?是否可通過繼承得到?是否可通過繼承得

37、到?是否可從其他屬性直接導(dǎo)出?是否可從其他屬性直接導(dǎo)出?(3)推遲到)推遲到OOD考慮的問題考慮的問題規(guī)范化問題規(guī)范化問題對(duì)象標(biāo)識(shí)對(duì)象標(biāo)識(shí)性能問題性能問題(4)屬性的命名與定位)屬性的命名與定位命名:原則與類的命名相同命名:原則與類的命名相同定位:針對(duì)所描述的對(duì)象定位:針對(duì)所描述的對(duì)象適合類(及其子類)的全部對(duì)象實(shí)例適合類(及其子類)的全部對(duì)象實(shí)例4040 通過分析對(duì)象在問題域中呈現(xiàn)的行為以及它所履行的系統(tǒng)責(zé)任來發(fā)現(xiàn)和定義對(duì)象的每個(gè)操作。 和屬性定義一樣,首先針對(duì)每一個(gè)類,從各種不同的角度盡可能把可能有的操作都找到,然后進(jìn)行審查和篩選,以確定哪些操作是真正有用的。7.4 定義操作定義操作414

38、1(1 1)對(duì)象行為分類)對(duì)象行為分類 區(qū)分為三類:區(qū)分為三類:系統(tǒng)行為系統(tǒng)行為 系統(tǒng)施加于對(duì)象的,不是對(duì)象自身行為系統(tǒng)施加于對(duì)象的,不是對(duì)象自身行為例:例:對(duì)象的對(duì)象的創(chuàng)建、刪除、復(fù)制、轉(zhuǎn)存創(chuàng)建、刪除、復(fù)制、轉(zhuǎn)存封裝原則引起的附加行為封裝原則引起的附加行為算法簡(jiǎn)單的操作算法簡(jiǎn)單的操作例:讀、寫屬性值例:讀、寫屬性值對(duì)象自身的行為對(duì)象自身的行為算法復(fù)雜的操作算法復(fù)雜的操作計(jì)算或監(jiān)控計(jì)算或監(jiān)控4242考慮系統(tǒng)責(zé)任考慮系統(tǒng)責(zé)任有哪些功能要求在本對(duì)象提供?有哪些功能要求在本對(duì)象提供?考慮問題域考慮問題域?qū)ο笤趩栴}域?qū)?yīng)的事物有哪些行為?對(duì)象在問題域?qū)?yīng)的事物有哪些行為?分析對(duì)象狀態(tài)分析對(duì)象狀態(tài)對(duì)象狀

39、態(tài)的轉(zhuǎn)換是由哪些操作引起的對(duì)象狀態(tài)的轉(zhuǎn)換是由哪些操作引起的?追蹤操作的執(zhí)行路追蹤操作的執(zhí)行路徑徑模擬操作的執(zhí)行,并在整個(gè)系統(tǒng)中跟蹤模擬操作的執(zhí)行,并在整個(gè)系統(tǒng)中跟蹤(3)策略與啟發(fā))策略與啟發(fā)4343審查對(duì)象的每個(gè)操作是否審查對(duì)象的每個(gè)操作是否真正有用真正有用是否直接提供系統(tǒng)責(zé)任所要求的某項(xiàng)功能?是否直接提供系統(tǒng)責(zé)任所要求的某項(xiàng)功能?或者或者 響應(yīng)其它操作的請(qǐng)求間接地完成這種功能響應(yīng)其它操作的請(qǐng)求間接地完成這種功能的某些局部操作?的某些局部操作?調(diào)整調(diào)整取消無用的操作取消無用的操作審查操作是不是審查操作是不是高內(nèi)聚高內(nèi)聚的的一個(gè)操作應(yīng)該只完成一項(xiàng)單一的、完整的功能一個(gè)操作應(yīng)該只完成一項(xiàng)單一的、

40、完整的功能調(diào)整調(diào)整拆分拆分 或或 合并合并(3 3)審查與調(diào)整)審查與調(diào)整4444考慮問題域考慮問題域?qū)ο笮袨槭潜灰l(fā)的,對(duì)象行為是被引發(fā)的,還是主動(dòng)呈現(xiàn)的?還是主動(dòng)呈現(xiàn)的?(4 4)認(rèn)識(shí)對(duì)象的主動(dòng)行為)認(rèn)識(shí)對(duì)象的主動(dòng)行為操作執(zhí)行路徑逆向追蹤操作執(zhí)行路徑逆向追蹤與參與者直接交互的對(duì)象操作與參與者直接交互的對(duì)象操作4545問題:分析階段為什么要給出操作流程?問題:分析階段為什么要給出操作流程?關(guān)于關(guān)于OOA/OOD分工的兩種不同觀點(diǎn)分工的兩種不同觀點(diǎn)(5)操作過程描述)操作過程描述可采用流程圖或活動(dòng)圖可采用流程圖或活動(dòng)圖yesno動(dòng)作陳述框,在框內(nèi)動(dòng)作陳述框,在框內(nèi)填寫要執(zhí)行的動(dòng)作。填寫要執(zhí)行的

41、動(dòng)作。條件判斷框,給出一條件判斷框,給出一個(gè)判斷條件。個(gè)判斷條件。轉(zhuǎn)接,用于連接各個(gè)框,轉(zhuǎn)接,用于連接各個(gè)框,表示它們之間的轉(zhuǎn)接關(guān)系。表示它們之間的轉(zhuǎn)接關(guān)系。入口入口/出口標(biāo)記,指出出口標(biāo)記,指出操作的開始或結(jié)束。操作的開始或結(jié)束。流程圖:流程圖:活動(dòng)圖:活動(dòng)圖:在流程圖基礎(chǔ)上進(jìn)行了一些擴(kuò)展,在流程圖基礎(chǔ)上進(jìn)行了一些擴(kuò)展,有更強(qiáng)的描述能力(第有更強(qiáng)的描述能力(第9章介紹)章介紹)4646命名:動(dòng)詞或動(dòng)賓結(jié)構(gòu)命名:動(dòng)詞或動(dòng)賓結(jié)構(gòu)定位:定位:與實(shí)際事物一致與實(shí)際事物一致例:售貨員例:售貨員售貨,商品售貨,商品售出售出在一般在一般-特殊結(jié)構(gòu)中的位置特殊結(jié)構(gòu)中的位置適合類的全部對(duì)象實(shí)例適合類的全部對(duì)象

42、實(shí)例(6)操作的命名和定位)操作的命名和定位商品商品售出售出從主語從主語-謂語謂語-賓語結(jié)構(gòu)看對(duì)象操作的設(shè)置賓語結(jié)構(gòu)看對(duì)象操作的設(shè)置“售貨員銷售商品售貨員銷售商品”操作應(yīng)該放在哪里?操作應(yīng)該放在哪里?售貨員售貨員售貨售貨call47477.5 接口的概念及用途接口的概念及用途早期的面向?qū)ο蠓椒ú]有把接口作為正式的早期的面向?qū)ο蠓椒ú]有把接口作為正式的OO概念概念 和系統(tǒng)成分,只是用來解釋和系統(tǒng)成分,只是用來解釋OO概念概念“操作是對(duì)象(類)對(duì)外提供的訪問接口操作是對(duì)象(類)對(duì)外提供的訪問接口”20世紀(jì)世紀(jì)90年代中后期,接口才作為一種系統(tǒng)成分出現(xiàn)年代中后期,接口才作為一種系統(tǒng)成分出現(xiàn)在在O

43、OPL中,并且被中,并且被UML作為一種模型元素作為一種模型元素UML對(duì)接口的定義及解釋:對(duì)接口的定義及解釋:“接口(接口(interface)是一種類目()是一種類目(classifier) ,它,它表示對(duì)一組緊湊的公共特征和職責(zé)的聲明。一個(gè)接表示對(duì)一組緊湊的公共特征和職責(zé)的聲明。一個(gè)接口說明了一個(gè)合約;實(shí)現(xiàn)接口的任何類目的實(shí)例必口說明了一個(gè)合約;實(shí)現(xiàn)接口的任何類目的實(shí)例必須履行這個(gè)合約。須履行這個(gè)合約?!薄耙粋€(gè)給定的類目可以實(shí)現(xiàn)多個(gè)接口,而一個(gè)接口一個(gè)給定的類目可以實(shí)現(xiàn)多個(gè)接口,而一個(gè)接口可以由多個(gè)不同的類目來實(shí)現(xiàn)。可以由多個(gè)不同的類目來實(shí)現(xiàn)。” 4848為什么引入接口的概念為什么引入接口

44、的概念售貨員售貨員商品商品采購(gòu)員采購(gòu)員callcall針對(duì)不同的應(yīng)用場(chǎng)合組織對(duì)象的操作針對(duì)不同的應(yīng)用場(chǎng)合組織對(duì)象的操作售貨員售貨員商品商品銷售銷售采購(gòu)員采購(gòu)員采購(gòu)采購(gòu)把與銷售有關(guān)把與銷售有關(guān)的操作組織成的操作組織成銷售接口銷售接口把與采購(gòu)有關(guān)把與采購(gòu)有關(guān)的操作組織成的操作組織成采購(gòu)接口采購(gòu)接口可替換(例如根據(jù)銷可替換(例如根據(jù)銷售策略的變化開發(fā)一售策略的變化開發(fā)一個(gè)新的商品類)個(gè)新的商品類)接口提供了更靈活的銜接機(jī)制接口提供了更靈活的銜接機(jī)制4949接口(接口(interface)是由一組操作所形成的一個(gè)集合,它由一個(gè)名字和代表其是由一組操作所形成的一個(gè)集合,它由一個(gè)名字和代表其中每個(gè)操作的特

45、征標(biāo)記構(gòu)成。中每個(gè)操作的特征標(biāo)記構(gòu)成。特征標(biāo)記(特征標(biāo)記(signature)代表了一個(gè)操作,但并不具體地定義操作的實(shí)現(xiàn)代表了一個(gè)操作,但并不具體地定義操作的實(shí)現(xiàn)特征標(biāo)記特征標(biāo)記 := (:,:): interface接口名稱接口名稱操作操作1()()操作操作n()()表示法表示法(詳細(xì)方式):(詳細(xì)方式):5050接口與類的關(guān)系接口與類的關(guān)系接口由某些類實(shí)現(xiàn)(提供),被另外某些類使用(需要)接口由某些類實(shí)現(xiàn)(提供),被另外某些類使用(需要)前者與接口的關(guān)系稱為前者與接口的關(guān)系稱為實(shí)現(xiàn)實(shí)現(xiàn)(realization)后者與接口的關(guān)系稱為后者與接口的關(guān)系稱為使用使用(use)interface銷售

46、銷售查詢()查詢()售出()售出()售貨員售貨員商品商品使用使用實(shí)現(xiàn)實(shí)現(xiàn)同一個(gè)接口同一個(gè)接口 對(duì)實(shí)現(xiàn)者而言是對(duì)實(shí)現(xiàn)者而言是供接口供接口(provided interface) 對(duì)使用者而言是對(duì)使用者而言是需接口需接口(required interface)5151表示法表示法(簡(jiǎn)略方式):(簡(jiǎn)略方式):托球托球-托座托座使用者使用者提供者提供者提供者的供接口(托球)提供者的供接口(托球)使用者的需接口(托座)使用者的需接口(托座)售貨員售貨員商品商品銷售銷售例:例:interface銷售銷售查詢()查詢()售出()售出()售貨員售貨員商品商品5252在一個(gè)類上可以畫出它所有的供接口和需接口在一

47、個(gè)類上可以畫出它所有的供接口和需接口類類供接口供接口需接口需接口一個(gè)接口可以由多個(gè)類使用,它也可以由多個(gè)類實(shí)現(xiàn)一個(gè)接口可以由多個(gè)類使用,它也可以由多個(gè)類實(shí)現(xiàn)類類B類類D類類A類類E類類C多個(gè)類可以共同使用多個(gè)類可以共同使用同一個(gè)接口同一個(gè)接口正如對(duì)象的一個(gè)操作正如對(duì)象的一個(gè)操作可以被多個(gè)對(duì)象調(diào)用可以被多個(gè)對(duì)象調(diào)用多個(gè)類都可以分別實(shí)多個(gè)類都可以分別實(shí)現(xiàn)同一個(gè)接口現(xiàn)同一個(gè)接口這里表示它們可以這里表示它們可以相互替換相互替換5353接口與類的區(qū)別接口與類的區(qū)別類既有屬性又有操作;類既有屬性又有操作;接口只是聲明了一組操作,沒有屬性。接口只是聲明了一組操作,沒有屬性。在一個(gè)類中定義了一個(gè)操作,就要在這

48、個(gè)類中真正地實(shí)現(xiàn)它;在一個(gè)類中定義了一個(gè)操作,就要在這個(gè)類中真正地實(shí)現(xiàn)它;接口中的操作只是一個(gè)聲明,不需要在接口中加以實(shí)現(xiàn)。接口中的操作只是一個(gè)聲明,不需要在接口中加以實(shí)現(xiàn)。類可以創(chuàng)建對(duì)象實(shí)例;類可以創(chuàng)建對(duì)象實(shí)例;接口則沒有任何實(shí)例。接口則沒有任何實(shí)例。引入接口概念的好處引入接口概念的好處在接口的使用者和提供者之間建立了一種靈活的銜接機(jī)制,有在接口的使用者和提供者之間建立了一種靈活的銜接機(jī)制,有利于對(duì)類、構(gòu)件等軟件成分進(jìn)行靈活的組裝和復(fù)用。利于對(duì)類、構(gòu)件等軟件成分進(jìn)行靈活的組裝和復(fù)用。將操作的聲明與實(shí)現(xiàn)相分離,隔離了接口的使用者和提供者的將操作的聲明與實(shí)現(xiàn)相分離,隔離了接口的使用者和提供者的相

49、互影響。使用者只需關(guān)注接口的聲明,不必關(guān)心它的實(shí)現(xiàn);相互影響。使用者只需關(guān)注接口的聲明,不必關(guān)心它的實(shí)現(xiàn);提供者不必關(guān)心哪些類將使用這個(gè)接口,只是根據(jù)接口的聲明提供者不必關(guān)心哪些類將使用這個(gè)接口,只是根據(jù)接口的聲明中所承諾的功能來實(shí)現(xiàn)它,并且可以有多種不同的實(shí)現(xiàn)。中所承諾的功能來實(shí)現(xiàn)它,并且可以有多種不同的實(shí)現(xiàn)。 接口概念對(duì)描述構(gòu)件之間的關(guān)系具有更重要的意義接口概念對(duì)描述構(gòu)件之間的關(guān)系具有更重要的意義教材第教材第9章將做進(jìn)一步介紹章將做進(jìn)一步介紹5454接口與多繼承的比較接口與多繼承的比較接口果真能部分地解決多繼承問題嗎?接口果真能部分地解決多繼承問題嗎?interfaceinterface接

50、口接口 A A操作操作A-1A-1()()操作操作A-nA-n()()interfaceinterface接口接口 B B操作操作B-1B-1()()操作操作B-mB-m()()類類 C C類類 E操作操作A-1()()操作操作A-n()()操作操作B-1()()操作操作B-m()()類類 D D操作操作A-1()()操作操作A-n()()操作操作B-1()()操作操作B-m()()類類 A A操作操作A-1A-1()()操作操作A-nA-n()()類類 B B操作操作B-1B-1()()操作操作B-mB-m()()類類 C C操作操作A-1A-1()()操作操作A-nA-n()()操作操作B

51、-1()()操作操作B-m()()類類 E E類類 D D5555對(duì)象之間的四種關(guān)系對(duì)象之間的四種關(guān)系1 1一般一般- -特殊關(guān)系特殊關(guān)系 又稱又稱繼承繼承關(guān)系,反映事物關(guān)系,反映事物的分類。由這種關(guān)系可以形成的分類。由這種關(guān)系可以形成一般一般- -特殊結(jié)構(gòu)特殊結(jié)構(gòu)。2 2整體整體- -部分關(guān)系部分關(guān)系即即聚合聚合關(guān)系。反映事物的構(gòu)關(guān)系。反映事物的構(gòu)成。由這種關(guān)系可以形成成。由這種關(guān)系可以形成整體整體- -部分結(jié)構(gòu)部分結(jié)構(gòu)。3 3關(guān)聯(lián)關(guān)系關(guān)聯(lián)關(guān)系對(duì)象實(shí)例集合(類)上的一個(gè)關(guān)對(duì)象實(shí)例集合(類)上的一個(gè)關(guān)系,其中的元素提供了被開發(fā)系統(tǒng)的應(yīng)用領(lǐng)域中一系,其中的元素提供了被開發(fā)系統(tǒng)的應(yīng)用領(lǐng)域中一組有意

52、義的信息。組有意義的信息。4 4消息關(guān)系消息關(guān)系 對(duì)象之間的動(dòng)態(tài)聯(lián)系,即一個(gè)對(duì)對(duì)象之間的動(dòng)態(tài)聯(lián)系,即一個(gè)對(duì)象在執(zhí)行其操作時(shí),請(qǐng)求其他對(duì)象為它執(zhí)行某個(gè)操象在執(zhí)行其操作時(shí),請(qǐng)求其他對(duì)象為它執(zhí)行某個(gè)操作,或者向其他對(duì)象傳送某些信息。反映了事物之作,或者向其他對(duì)象傳送某些信息。反映了事物之間的行為依賴關(guān)系。間的行為依賴關(guān)系。這些關(guān)系形成了類圖的關(guān)系層這些關(guān)系形成了類圖的關(guān)系層第第8 8章章定義對(duì)象間的關(guān)系定義對(duì)象間的關(guān)系5656概念概念同義詞同義詞 和和 近義詞近義詞繼承(繼承(inheritance)是描述一般類和特殊類之間關(guān)系的最傳統(tǒng)、是描述一般類和特殊類之間關(guān)系的最傳統(tǒng)、最經(jīng)典的術(shù)語。有時(shí)作為動(dòng)

53、詞或形容詞出現(xiàn)。最經(jīng)典的術(shù)語。有時(shí)作為動(dòng)詞或形容詞出現(xiàn)。一般一般-特殊(特殊(generalization-specialization)含義最準(zhǔn)確,而且不含義最準(zhǔn)確,而且不容易產(chǎn)生誤解,恰切地反映了一般類(概念)和特殊類(概念)之容易產(chǎn)生誤解,恰切地反映了一般類(概念)和特殊類(概念)之間的相對(duì)(二元)關(guān)系;也用于描述結(jié)構(gòu),即一般間的相對(duì)(二元)關(guān)系;也用于描述結(jié)構(gòu),即一般-特殊結(jié)構(gòu)。缺特殊結(jié)構(gòu)。缺點(diǎn)是書寫和閱讀比較累贅。點(diǎn)是書寫和閱讀比較累贅。泛化(泛化(generalization)取取“一般一般-特殊特殊” 的一半,是的一半,是UML的做法的做法。比較簡(jiǎn)練,但是只反映了問題的一方面。作

54、為關(guān)系的名稱尚可,。比較簡(jiǎn)練,但是只反映了問題的一方面。作為關(guān)系的名稱尚可,說結(jié)構(gòu)是一個(gè)說結(jié)構(gòu)是一個(gè)“泛化泛化”則很勉強(qiáng)。則很勉強(qiáng)。分類(分類(classification)接近人類日常的語言習(xí)慣,接近人類日常的語言習(xí)慣, 體現(xiàn)了類的層體現(xiàn)了類的層次劃分,也作為結(jié)構(gòu)的名稱。在許多的場(chǎng)合被作為一種原則。次劃分,也作為結(jié)構(gòu)的名稱。在許多的場(chǎng)合被作為一種原則。本書主要采用本書主要采用“一般一般-特殊特殊”這個(gè)術(shù)語這個(gè)術(shù)語8.1一般一般-特殊結(jié)構(gòu)特殊結(jié)構(gòu)相關(guān)概念:一般類、特殊類、繼承、多繼承、多態(tài)相關(guān)概念:一般類、特殊類、繼承、多繼承、多態(tài)語義:語義:“is a kind of ”5757一般一般-特

55、殊關(guān)系(繼承關(guān)系)是類之間的一種二元關(guān)系特殊關(guān)系(繼承關(guān)系)是類之間的一種二元關(guān)系是一種是一種基本的模型元素基本的模型元素;由這種關(guān)系所形成的結(jié)構(gòu)是一般由這種關(guān)系所形成的結(jié)構(gòu)是一般-特殊結(jié)構(gòu)特殊結(jié)構(gòu)是一種是一種復(fù)合的模型成分復(fù)合的模型成分。人員人員股東股東職員職員顧客顧客股東職員股東職員例:例:這是這是1個(gè)一般個(gè)一般-特殊結(jié)構(gòu)特殊結(jié)構(gòu) 包含包含5個(gè)一般特殊關(guān)系個(gè)一般特殊關(guān)系5858特殊類一般類的特征一般類特殊類的特征只要有這些特征必須有這些特征對(duì)象實(shí)例集合對(duì)象實(shí)例集合特征集合特征集合理解一般類與特殊類之間的關(guān)系定義定義1:如果類如果類A A具有類具有類B B的全部屬性和全部操作,而且具的全部屬

56、性和全部操作,而且具有自己特有的某些屬性或操作,則有自己特有的某些屬性或操作,則A A叫做叫做B B的特殊類,的特殊類,B B叫叫做做A A的一般類。一般類與特殊類又稱父類與子類。的一般類。一般類與特殊類又稱父類與子類。定義定義2 2:如果類如果類A A的全部對(duì)象都是類的全部對(duì)象都是類B B的對(duì)象,而且類的對(duì)象,而且類B B中存中存在不屬于類在不屬于類A A的對(duì)象,則的對(duì)象,則A A是是B B的特殊類,的特殊類,B B是是A A的一般類。的一般類。書中證明,以上兩種定義是等價(jià)的書中證明,以上兩種定義是等價(jià)的一般類和特殊類的兩個(gè)定義一般類和特殊類的兩個(gè)定義5959表示法表示法 * 對(duì)繼承的屬性或

57、操作重新定義對(duì)繼承的屬性或操作重新定義 拒絕繼承拒絕繼承 多態(tài)性的表示符號(hào)多態(tài)性的表示符號(hào)一般類一般類特殊類特殊類特殊類特殊類集中式集中式一般類一般類特殊類特殊類特殊類特殊類分散式分散式人員人員股東股東職員職員顧客顧客股東職員股東職員例:例:6060如何發(fā)現(xiàn)一般如何發(fā)現(xiàn)一般-特殊結(jié)構(gòu)特殊結(jié)構(gòu)(1)學(xué)習(xí)當(dāng)前領(lǐng)域的分類學(xué)知識(shí))學(xué)習(xí)當(dāng)前領(lǐng)域的分類學(xué)知識(shí)(2)按常識(shí)考慮事物的分類)按常識(shí)考慮事物的分類(3)根據(jù)一般類和特殊類的兩種定義)根據(jù)一般類和特殊類的兩種定義(4)考察屬性與操作的適應(yīng)范圍)考察屬性與操作的適應(yīng)范圍?公司人員公司人員姓名姓名身份證號(hào)身份證號(hào)股份股份工資工資 ?公司人員公司人員姓名姓

58、名身份證號(hào)身份證號(hào) 股東股東股份股份 職員職員工資工資 股東股東姓名姓名身份證號(hào)身份證號(hào)股份股份 職員職員姓名姓名身份證號(hào)身份證號(hào)工資工資 股東股東股份股份職員職員工資工資 ?公司人員公司人員姓名姓名身份證號(hào)身份證號(hào) 6161(5 5)考慮領(lǐng)域范圍內(nèi)的復(fù)用)考慮領(lǐng)域范圍內(nèi)的復(fù)用現(xiàn)鈔收款機(jī)現(xiàn)鈔收款機(jī) A A B B C C D D E E F F X X Y Y Z Z收款機(jī)收款機(jī)A AB BC CX XY Y現(xiàn)鈔收款機(jī)現(xiàn)鈔收款機(jī) D D E E F F Z Z領(lǐng)域構(gòu)件6262(1 1)問題域是否需要這樣的分類?(例:書)問題域是否需要這樣的分類?(例:書線裝書)線裝書)(2 2)系統(tǒng)責(zé)任是否需

59、要這樣的分類?(例:職員)系統(tǒng)責(zé)任是否需要這樣的分類?(例:職員本市職員)本市職員)(3 3)是否符合分類學(xué)的常識(shí)?(用)是否符合分類學(xué)的常識(shí)?(用“is a kind of ”is a kind of ”來衡量)來衡量)審查與調(diào)整審查與調(diào)整(4 4)是否真正的繼承了一些屬性或操作?)是否真正的繼承了一些屬性或操作? 飛機(jī)飛行高度 自動(dòng)導(dǎo)航 ? 汽車發(fā)動(dòng)機(jī)載重量速度運(yùn)輸運(yùn)輸工具發(fā)動(dòng)機(jī)載重量速度 飛機(jī)飛行高度 自動(dòng)導(dǎo)航 汽車運(yùn)輸6363一般一般- -特殊結(jié)構(gòu)的簡(jiǎn)化特殊結(jié)構(gòu)的簡(jiǎn)化(1 1)取消沒有特殊性的特殊類)取消沒有特殊性的特殊類運(yùn)輸工具發(fā)動(dòng)機(jī)載重量速度 飛機(jī)飛行高度 自動(dòng)導(dǎo)航 汽車運(yùn)輸運(yùn)輸工

60、具發(fā)動(dòng)機(jī)載重量速度 飛機(jī)飛行高度 自動(dòng)導(dǎo)航 運(yùn)輸6464(2 2)增加屬性簡(jiǎn)化一般特殊結(jié)構(gòu))增加屬性簡(jiǎn)化一般特殊結(jié)構(gòu) 人員人員男男 人人女女 人人中國(guó)人中國(guó)人美國(guó)人美國(guó)人日本人日本人人員人員性別性別國(guó)籍國(guó)籍6565(3 3)取消用途單一的一般類,減少繼承層次)取消用途單一的一般類,減少繼承層次一般類存在的理由:一般類存在的理由:* * 有兩個(gè)或兩個(gè)上以上的特殊類有兩個(gè)或兩個(gè)上以上的特殊類* * 需要用它創(chuàng)建對(duì)象實(shí)例需要用它創(chuàng)建對(duì)象實(shí)例* * 有助于軟件復(fù)用有助于軟件復(fù)用設(shè)設(shè) 備備型號(hào)型號(hào)生產(chǎn)廠生產(chǎn)廠開啟開啟關(guān)閉關(guān)閉 雷雷 達(dá)達(dá)安裝地點(diǎn)安裝地點(diǎn) 監(jiān)控監(jiān)控 雷達(dá)雷達(dá)型號(hào)型號(hào)生產(chǎn)廠生產(chǎn)廠安裝地點(diǎn)安裝

溫馨提示

  • 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. 人人文庫網(wǎng)僅提供信息存儲(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)論