版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、1OOA&D方法總結(jié)第1頁,共120頁。2面向?qū)ο蟮母拍畎ㄒ韵聝煞N情況:(1)用來構(gòu)成系統(tǒng)模型的某種基本成分,稱為建模元素(2)在建模中需要遵守的某種原則,不代表任何模型成分 主要概念主要建模元素 對(duì)象、類(所有的對(duì)象都通過類來表示) 屬性、操作(類屬性和實(shí)例屬性,被動(dòng)操作和主動(dòng)操作) 一般-特殊關(guān)系,一般-特殊結(jié)構(gòu)整體-部分關(guān)系,整體-部分結(jié)構(gòu)關(guān)聯(lián) (二元關(guān)聯(lián)、多元關(guān)聯(lián))消息 (控制流內(nèi)部的消息,控制流之間的消息)第2頁,共120頁。3 主要原則(1)抽象什么叫抽象?OO方法廣泛地運(yùn)用抽象原則,例如:系統(tǒng)中的對(duì)象是對(duì)現(xiàn)實(shí)世界中事物的抽象, 類是對(duì)象的抽象, 一般類是對(duì)特殊類的進(jìn)一步抽象,
2、屬性是事物靜態(tài)特征的抽象, 操作是事物動(dòng)態(tài)特征的抽象。 過程抽象任何一個(gè)完成確定功能的操作序列,其使用者都可把它看作一個(gè)單一的實(shí)體,盡管實(shí)際上它可能是由一系列更低級(jí)的操作完成的。數(shù)據(jù)抽象根據(jù)施加于數(shù)據(jù)之上的操作來定義數(shù)據(jù)類型,并限定數(shù)據(jù)的值只能由這些操作來修改和觀察。第3頁,共120頁。4(2)分類分類就是把具有相同屬性和操作的對(duì)象劃分為一類,用類作為這些對(duì)象的抽象描述。不同程度的抽象可得到不同層次的類,形成一般-特殊結(jié)構(gòu)(又稱分類結(jié)構(gòu))。強(qiáng)調(diào):在類的抽象層次上建模(3)封裝(4)繼承(5)聚合(6)關(guān)聯(lián)(7)消息通信即要求對(duì)象之間只能通過消息進(jìn)行通訊,而不允許在對(duì)象之外直接地存取對(duì)象內(nèi)部的屬
3、性。第4頁,共120頁。5(8)粒度控制人們?cè)谘芯繂栴}時(shí)既需要微觀的思考,也需要宏觀的思考。因此需要控制自己的視野:考慮全局時(shí),注重其大的組成部分,暫時(shí)不詳察每一部分的具體的細(xì)節(jié);考慮某部分的細(xì)節(jié)時(shí)則暫時(shí)撇開其余的部分。這就是粒度控制原則。引入包(package)的概念,把模型中的類按一定的規(guī)則進(jìn)行組合,形成一些包,使模型具有大小不同的粒度層次,從而有利于人們對(duì)復(fù)雜性的控制。第5頁,共120頁。6(9)行為分析以對(duì)象為單位描述系統(tǒng)中的各種行為任何行為都?xì)w屬于某個(gè)對(duì)象,用對(duì)象的操作表示。對(duì)象的操作只作用于對(duì)象自身的屬性。通過消息描述對(duì)象之間的行為依賴關(guān)系如果一個(gè)對(duì)象操作的執(zhí)行需要另一個(gè)對(duì)象為它提
4、供服務(wù),則在模型中表現(xiàn)為前者向后者發(fā)送消息。認(rèn)識(shí)行為的起因,區(qū)分主動(dòng)行為和被動(dòng)行為用主動(dòng)對(duì)象的主動(dòng)操作描述主動(dòng)行為用對(duì)象的被動(dòng)操作描述被動(dòng)行為認(rèn)識(shí)系統(tǒng)的并發(fā)行為在分析階段根據(jù),根據(jù)系統(tǒng)的需求和事物的主動(dòng)性來認(rèn)識(shí)系統(tǒng)的并發(fā)行為。在設(shè)計(jì)階段,根據(jù)具體的實(shí)現(xiàn)條件確定系統(tǒng)中需要設(shè)計(jì)哪些控制流。 第6頁,共120頁。7 模型及其規(guī)約在分析階段和設(shè)計(jì)階段建立的系統(tǒng)模型分別稱為OOA模型和OOD模型 正規(guī)理解:一個(gè)系統(tǒng)模型,應(yīng)包括建模過程中產(chǎn)生的圖形、文字等各種形式的文檔。因?yàn)椋^“模型”是指某一級(jí)別上的系統(tǒng)抽象描述,構(gòu)成這種描述的任何資料都是模型的一部分。習(xí)慣說法:目前大部分OOA/OOD著作談到“模型
5、”,一般是指OOA或OOD過程中產(chǎn)生的圖形文檔。一般習(xí)慣將模型和模型規(guī)約分別討論OOA和OOD模型包括需求模型、基本模型和輔助模型,通過模型規(guī)約 做詳細(xì)說明第7頁,共120頁。8基本模型類圖 面向?qū)ο蟮慕V凶钪匾⒆罨镜哪P蛨D集中而完整地體現(xiàn)了面向?qū)ο蟮母拍?為面向?qū)ο蟮木幊烫峁┝酥苯?、可靠的依?jù) 可以從三個(gè)層次來看 對(duì)象層特征層關(guān)系層需求模型用況圖 每個(gè)用況是一項(xiàng)系統(tǒng)功能使用情況的說明,把每一類參與者對(duì)每一項(xiàng)系統(tǒng)功能的使用情況確切地描述出來,便全面地定義了系統(tǒng)的功能需求 輔助模型其他各種圖 對(duì)類圖起到輔助作用,提供更詳細(xì)的建模信息,或者從不同的視角來描述系統(tǒng)。例如包圖、順序圖、活動(dòng)圖等模
6、型規(guī)約對(duì)上述各種模型圖及其模型元素的詳細(xì)而確切的定義和解釋。 第8頁,共120頁。9OOA模型框架基本模型:類圖模 型 規(guī) 約需求模型:用況圖輔助模型:包圖順序圖活動(dòng)圖對(duì)象層特征層關(guān)系層第9頁,共120頁。10OOD模型框架從兩個(gè)側(cè)面來描述人機(jī)交互部分?jǐn)?shù)據(jù)接口部分控制驅(qū)動(dòng)部分問題域部分從一個(gè)側(cè)面看:OOD模型包括幾個(gè)主要部分?一個(gè)核心加三個(gè)外圍需 求 模 型輔 助 模 型類 圖模 型 規(guī) 約從另一側(cè)面看:OOD模型每個(gè)部分如何用OO概念表達(dá)?采用與OOA相同的概念及模型組織方式第10頁,共120頁。11確定系統(tǒng)邊界發(fā)現(xiàn)參與者定義用況發(fā)現(xiàn)對(duì)象定義對(duì)象的特征定義對(duì)象間的關(guān)系原型開發(fā)建立模型規(guī)約建立
7、需求模型建立基本模型建立包圖建立輔助模型建立活動(dòng)圖建立其他圖建立順序圖 建模過程OOA過程第11頁,共120頁。12問題域部分設(shè)計(jì)輸入OOA模型人機(jī)交互部分設(shè)計(jì)控制驅(qū)動(dòng)部分設(shè)計(jì)數(shù)據(jù)接口部分設(shè)計(jì)構(gòu)件化與系統(tǒng)部署向OOP輸出OOD模型OOD過程第12頁,共120頁。13 OOA與OOD的關(guān)系一致的概念與表示法OOA和OOD采用一致的概念和表示法,從而不存在分析與設(shè)計(jì)之間的鴻溝。不同的內(nèi)容、目標(biāo)和抽象層次OOA:研究問題域和用戶需求,運(yùn)用面向?qū)ο蟮挠^點(diǎn)發(fā)現(xiàn)問題域中與系統(tǒng)責(zé)任有關(guān)的對(duì)象,以及對(duì)象的特征和相互關(guān)系。目標(biāo)是建立一個(gè)直接映射問題域,符合用戶需求的OOA模型。OOD:在OOA模型基礎(chǔ)上,針對(duì)選
8、定的實(shí)現(xiàn)平臺(tái)進(jìn)行系統(tǒng)設(shè)計(jì),按照實(shí)現(xiàn)的要求進(jìn)行具體的設(shè)計(jì),目標(biāo)是產(chǎn)生一個(gè)能夠在選定的軟硬件平臺(tái)上實(shí)現(xiàn)的OOD模型。OOA模型:抽象層次較高,忽略了與實(shí)現(xiàn)有關(guān)的因素OOD模型:抽象層次較低,包含了與實(shí)現(xiàn)平臺(tái)有關(guān)的細(xì)節(jié) 第13頁,共120頁。14在軟件生存周期中的位置可適應(yīng)不同的生存周期模型分析(OOA)設(shè)計(jì)(OOD)編程(OOP)測(cè)試維護(hù)瀑布模型強(qiáng)調(diào)嚴(yán)格的階段劃分和前后次序先做完OOA再進(jìn)行OOD演化集成測(cè)試編程(OOP)設(shè)計(jì)(OOD)分析(OOA)噴泉模型各個(gè)階段之間沒有嚴(yán)格的界限,其活動(dòng)可以交疊和回溯有些工作既可在OOA中進(jìn)行,也可在OOD中進(jìn)行各階段概念和表示法的一致為采用這種模型提供了條件
9、第14頁,共120頁。15OOA與OOD的分工兩種不同的觀點(diǎn)第二種觀點(diǎn)的理由:(1)過分強(qiáng)調(diào)“分析不考慮怎么做”將使某些必須在OOA考慮的問題得不到完整的認(rèn)識(shí)。 (2)把僅與問題域和系統(tǒng)責(zé)任有關(guān)的對(duì)象的描述在分析階段一次完成,避免設(shè)計(jì)階段重復(fù)地認(rèn)識(shí)同一事物,減少了工作量總和。(3)對(duì)那些與問題域和系統(tǒng)責(zé)任緊密相關(guān)的對(duì)象細(xì)節(jié),分析人員比設(shè)計(jì)人員更有發(fā)言權(quán)。 (4)由于OOA和OOD概念和表示法的一致,不存在把細(xì)化工作留給設(shè)計(jì)人員的必然理由。 (5)OOA階段建立平臺(tái)無關(guān)的模型(PIM),OOD階段針對(duì)不同的平臺(tái)建立平臺(tái)專用模型(PSM)可在最大程度上實(shí)現(xiàn)對(duì)OOA結(jié)果的復(fù)用。關(guān)鍵問題:對(duì)象的特征細(xì)
10、節(jié)(如屬性的數(shù)據(jù)類型和操作流程圖),是在分析時(shí)定義還是在設(shè)計(jì)時(shí)定義?做什么怎么做分析設(shè)計(jì)第一種觀點(diǎn)問題域與系統(tǒng)責(zé)任與實(shí)現(xiàn)有關(guān)的因素分 析設(shè) 計(jì)第二種觀點(diǎn)第15頁,共120頁。16 從MDA看OOA與OOD的關(guān)系模型驅(qū)動(dòng)的體系結(jié)構(gòu)(model-driven architecture,MDA ) 是OMG的一個(gè)技術(shù)規(guī)范,是一種加強(qiáng)模型能力的系統(tǒng)開發(fā)途徑。模型驅(qū)動(dòng)( model-driven ):用模型來對(duì)系統(tǒng)的理解、設(shè)計(jì)、構(gòu)造、部署、操作、維護(hù)和更改進(jìn)行指導(dǎo)。體系結(jié)構(gòu)( architecture ):是對(duì)系統(tǒng)的部件和連接件以及這些部件通過連接件進(jìn)行交互的規(guī)約。平臺(tái)(platform):是一組子系統(tǒng)
11、和技術(shù),它通過一些接口和專用規(guī)則提供了一個(gè)連貫的功能集合,任何由該平臺(tái)支持的應(yīng)用都可以使用平臺(tái)所提供的功能而不必關(guān)心其實(shí)現(xiàn)細(xì)節(jié)。平臺(tái)無關(guān)模型(platform independence model,PIM):獨(dú)立于任何一種平臺(tái)特征的模型。平臺(tái)專用模型(platform specific model,PSM):與特定類型的平臺(tái)特征有關(guān)的模型。第16頁,共120頁。17模型轉(zhuǎn)換(model transformation):由系統(tǒng)的一個(gè)模型轉(zhuǎn)化成同一個(gè)系統(tǒng)的另外一個(gè)模型。它是MDA最為關(guān)鍵的部分,其核心問題是從PIM轉(zhuǎn)換到PSM 。MDA提倡:在系統(tǒng)開發(fā)中首先建立平臺(tái)無關(guān)模型(PIM),然后將它轉(zhuǎn)換
12、為平臺(tái)專用模型(PSM)技術(shù)第17頁,共120頁。18把MDA的觀點(diǎn)運(yùn)用于OOA和OODOOA:只針對(duì)問題域和系統(tǒng)責(zé)任,不涉及實(shí)現(xiàn)條件因此可得到一個(gè)平臺(tái)無關(guān)的OOA模型OOD:在OOA模型基礎(chǔ)上針對(duì)特定實(shí)現(xiàn)條件進(jìn)行設(shè)計(jì)轉(zhuǎn)換成一個(gè)平臺(tái)專用的OOD模型好處:使整個(gè)OOA模型可以在針對(duì)不同的實(shí)現(xiàn)平臺(tái)的設(shè)計(jì)中得到復(fù)用 第18頁,共120頁。19需求模型用況圖需求分析和系統(tǒng)分析需求分析的確切含義是對(duì)用戶需求進(jìn)行分析,旨在產(chǎn)生一份明確、規(guī)范的需求定義。OOA的主要內(nèi)容是研究問題域中與需求有關(guān)的事物,把它們抽象為系統(tǒng)中的對(duì)象,建立類圖。確切地講,這些工作應(yīng)該叫做系統(tǒng)分析,而不是嚴(yán)格意義上的需求分析。早期的O
13、OA缺乏一個(gè)良好的基礎(chǔ)對(duì)需求的規(guī)范描述。需求說明需求分析健壯分析需求模型分析模型分析過程Jacobson方法(OOSE)提出用況(use case)概念,解決了對(duì)需求的描述問題,其分析過程如下:第19頁,共120頁。20問題域(抽象的來源)OOA模型(類圖)抽象OOA是將問題域中的事物抽象為系統(tǒng)中的對(duì)象系統(tǒng)責(zé)任(抽象的目標(biāo))抽象的目標(biāo)是系統(tǒng)責(zé)任需求用況的概念解決了對(duì)需求的描述問題需求模型(用況圖)第20頁,共120頁。21基本思路問題的提出:在系統(tǒng)尚未存在時(shí),如何描繪用戶需要一個(gè)什么樣的系統(tǒng)?如何規(guī)范地定義用戶需求?考慮問題的思路:把系統(tǒng)看作一個(gè)黑箱,看它對(duì)外部的客觀世界發(fā)揮什么作用,描述其外
14、部可見的行為。系統(tǒng)是由一條邊界包圍起來的未知空間只通過有限的幾個(gè)接口與外部交互系統(tǒng)邊界以外是與系統(tǒng)進(jìn)行交互的參與者把內(nèi)外交互情況描述清楚,就確切地定義了系統(tǒng)的需求第21頁,共120頁。22系統(tǒng)邊界系統(tǒng)邊界:一個(gè)系統(tǒng)所包含的所有系統(tǒng)成分與系統(tǒng)以外各種事物的分界線。系統(tǒng):被開發(fā)的計(jì)算機(jī)軟硬件系統(tǒng),不是指現(xiàn)實(shí)系統(tǒng)。系統(tǒng)成分:在OOA和OOD中定義并且在編程時(shí)加以實(shí)現(xiàn)的系統(tǒng)元素對(duì)象對(duì)象對(duì)象對(duì)象對(duì)象對(duì)象對(duì)象參與者(人員)參與者(設(shè)備)參與者(外系統(tǒng))參與者:在系統(tǒng)邊界以外,與系統(tǒng)進(jìn)行交互的事物人員、設(shè)備、外系統(tǒng)系統(tǒng)邊界與參與者第22頁,共120頁。23現(xiàn)實(shí)世界中的事物與系統(tǒng)之間的關(guān)系分四種情況(1)被抽
15、象為系統(tǒng)中的對(duì)象汽車飛機(jī)獎(jiǎng)杯鐘表起重機(jī)職員樓房天平(2)只作為系統(tǒng)外部的參與者與系統(tǒng)交互(4)與系統(tǒng)無關(guān)操作員(3)既是系統(tǒng)中的對(duì)象,本身又作為參與者與系統(tǒng)交互第23頁,共120頁。24人員系統(tǒng)的直接使用者直接為系統(tǒng)服務(wù)的人員設(shè)備與系統(tǒng)直接相聯(lián)的設(shè)備為系統(tǒng)提供信息在系統(tǒng)控制下運(yùn)行不與系統(tǒng)相連的設(shè)備 計(jì)算機(jī)設(shè)備 外系統(tǒng)上級(jí)系統(tǒng)子系統(tǒng)其它系統(tǒng)如何發(fā)現(xiàn)參與者考慮人員、設(shè)備、外系統(tǒng)第24頁,共120頁。25什么是用況I. Jacobson:用況是通過使用系統(tǒng)功能的某些部分而使用系統(tǒng)的一種具體方式。每個(gè)用況包括一個(gè)由參與者發(fā)動(dòng)的完整的事件過程。它詳細(xì)說明了參與者和系統(tǒng)之間發(fā)生的交互。因此,一個(gè)用況是一個(gè)
16、由參與者和系統(tǒng)在一次對(duì)話中執(zhí)行的特定的相關(guān)事務(wù)序列。全部用況的集合則說明了所有可能存在的系統(tǒng)使用方式。對(duì)象技術(shù)詞典:1對(duì)一個(gè)系統(tǒng)或者一個(gè)應(yīng)用的一種單一的使用方式所進(jìn)行的描述。2關(guān)于單個(gè)參與者在與系統(tǒng)的對(duì)話中所執(zhí)行的處理的行為陳述序列。UML:對(duì)系統(tǒng)在與它的參與者交互時(shí)所能執(zhí)行的一組動(dòng)作序列(包括其變體)的描述。?本書的定義:用況是對(duì)參與者使用系統(tǒng)的一項(xiàng)功能時(shí)所進(jìn)行的交互過程的描述,其中包含由雙方交替執(zhí)行的一系列動(dòng)作。用況(use case)第25頁,共120頁。26術(shù)語“use case”的準(zhǔn)確含義使用情況是對(duì)一項(xiàng)系統(tǒng)功能使用情況的一般描述,它對(duì)于每一次使用都普遍適應(yīng),既不是應(yīng)用實(shí)例,也不是舉
17、例說明。幾點(diǎn)說明:(1)一個(gè)用況只描述參與者對(duì)單獨(dú)一項(xiàng)系統(tǒng)功能的使用情況;(2)通常是平鋪直敘的文字描述,UML也允許其他描述方式;(3)陳述參與者和系統(tǒng)在交互過程中雙方所做的事;(4)所描述的交互既可能由參與者發(fā)起也可能由系統(tǒng)發(fā)起 ;(5)描述彼此為對(duì)方直接地做什么事,不描述怎么做;(6)描述應(yīng)力求準(zhǔn)確,允許概括,但不要把雙方的行為混在一起;(7)一個(gè)用況可以由多種參與者分別參與或共同參與。 第26頁,共120頁。27內(nèi)容與書寫格式 :名稱行為陳述(分左右欄)調(diào)用語句控制語句括號(hào)或標(biāo)號(hào)收款輸入開始本次收款的命令; 作好收款準(zhǔn)備,應(yīng)收款總 數(shù)置為0,輸出提示信息;for 顧客選購(gòu)的每種商品 d
18、o 輸入商品編號(hào); if 此種商品多于一件 then 輸入商品數(shù)量 end if; 檢索商品名稱及單價(jià); 貨架商品數(shù)減去售出數(shù); if 貨架商品數(shù)低于下限 then call 通知上貨 end if; 計(jì)算本種商品總價(jià)并打印編號(hào)、 名稱、數(shù)量、單價(jià)、總價(jià); 總價(jià)累加到應(yīng)收款總數(shù);end for; 打印應(yīng)收款總數(shù);輸入顧客付款數(shù); 計(jì)算應(yīng)找回款數(shù), 打印付款數(shù)及找回款, 應(yīng)收款數(shù)計(jì)入賬冊(cè)。例第27頁,共120頁。28如何定義用況針對(duì)單個(gè)用況的描述策略:把自己當(dāng)作參與者,與設(shè)想中的系統(tǒng)進(jìn)行交互??紤]:交互的目的是什么?需要向系統(tǒng)輸入什么信息?希望由系統(tǒng)進(jìn)行什么處理并從它得到何種結(jié)果?把上述交互過程
19、描述出來 。定義系統(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)的用況做了描述。第28頁,共120頁。29參與者基用況 includeextendinclude用況 基用況 基用況 被包含用況 延伸用況 用況 參與者參與者模型元素:參與者用況延伸包含泛化用況圖第29頁,共120頁。30用況之間的關(guān)系包含、延伸、泛化延伸包含問題:延伸與包含的相
20、似性延伸的方向問題“條件”和“延伸點(diǎn)”問題“泛化”問題系統(tǒng)邊界問題Perform ATMTransactionWithdrawDepositFunds泛化Transfer Funds 第30頁,共120頁。31用況的兩種復(fù)雜情況1、兩個(gè)(或多個(gè))參與者共享一個(gè)用況不同種類的參與者可能都要使用某一項(xiàng)系統(tǒng)功能,因此它們可能共享同一個(gè)用況例:系統(tǒng)維護(hù)登錄系統(tǒng)管理員普通用戶第31頁,共120頁。322、一個(gè)用況的執(zhí)行,可能需要兩個(gè)(甚至多個(gè))參與者同時(shí)與系統(tǒng)交互。例:網(wǎng)上購(gòu)物網(wǎng)上購(gòu)物客戶供貨商第32頁,共120頁。33用況圖的開發(fā)過程確定系統(tǒng)邊界發(fā)現(xiàn)參與者 定義用況 建立用況之間的關(guān)系 確定參與者和用
21、況之間的關(guān)系 繪制用況圖 使用用況圖的幾條建議最重要的工作是對(duì)用況的描述不要過分深入地描述系統(tǒng)內(nèi)部的行為細(xì)節(jié) 運(yùn)用最主要概念,加強(qiáng)用況內(nèi)容的描述不要陷入延伸與包含、延伸點(diǎn)、泛化等問題的爭(zhēng)論和辨別了解用況的局限性主要作用是描述功能需求開發(fā)過程與建議第33頁,共120頁。34發(fā)現(xiàn)對(duì)象,定義對(duì)象類第34頁,共120頁。35主動(dòng)對(duì)象(active object)至少有一個(gè)操作不需要接收消息就能主動(dòng)執(zhí)行的對(duì)象用于描述具有主動(dòng)行為的事物主動(dòng)對(duì)象的類叫做主動(dòng)類(active class)被動(dòng)對(duì)象(passive object) 每個(gè)操作都必須在消息的驅(qū)動(dòng)下才能執(zhí)行的對(duì)象第35頁,共120頁。36在類的抽象層
22、次建模理由:(1)充分性:模型中一個(gè)類描述了它的全部對(duì)象實(shí)例(2)必要性:個(gè)別對(duì)象實(shí)例不能代表其他對(duì)象實(shí)例(3)符合人類的思維方式:在概念層次上表達(dá)描述事物規(guī)律(4)與OOPL保持良好的對(duì)應(yīng)(5)避免建模概念復(fù)雜化 (6)消除抽象層次的混亂第36頁,共120頁。37如何運(yùn)用類和對(duì)象的概念從對(duì)象出發(fā)認(rèn)識(shí)問題域?qū)栴}域中的事物抽象為對(duì)象;將具有共同特征的對(duì)象抽象為類用類以及它們之間的關(guān)系構(gòu)成整個(gè)系統(tǒng)模型;歸納演繹在模型中用類表示屬于該類的任何對(duì)象在類的規(guī)約中說明這個(gè)類將創(chuàng)建那些對(duì)象實(shí)例在程序中用類定義它的全部對(duì)象編程時(shí)靜態(tài)聲明類的對(duì)象運(yùn)行時(shí)動(dòng)態(tài)創(chuàng)建類的對(duì)象第37頁,共120頁。38發(fā)現(xiàn)對(duì)象研究問題
23、域親臨現(xiàn)場(chǎng)深入調(diào)查研究直接觀察并向用戶及相關(guān)的業(yè)務(wù)人員進(jìn)行調(diào)查和交流,考察問題域中各種各樣的事物、它們的特征及相互關(guān)系 聽取問題域?qū)<业囊娊忸I(lǐng)域?qū)<野夹g(shù)人員、管理者、老職員和富有經(jīng)驗(yàn)的工人等閱讀相關(guān)材料閱讀各種與問題域有關(guān)的材料,學(xué)習(xí)相關(guān)行業(yè)和領(lǐng)域的基本知識(shí)借鑒以往的系統(tǒng)查閱以往在該問題域中開發(fā)過的同類系統(tǒng)的分析文檔 ,吸取經(jīng)驗(yàn),發(fā)現(xiàn)可以復(fù)用的類 第38頁,共120頁。39正確地運(yùn)用抽象原則對(duì)什么進(jìn)行抽象問題域當(dāng)前目標(biāo)系統(tǒng)責(zé)任忽略與系統(tǒng)責(zé)任無關(guān)的事物只注意與之有關(guān)的事物 ,抽象為系統(tǒng)中的對(duì)象 例如:學(xué)校的教師、學(xué)生、教務(wù)員 和 警衛(wèi)忽略與系統(tǒng)責(zé)任無關(guān)的事物特征只注意與之有關(guān)的特征,抽象為對(duì)
24、象的屬性或操作 例如:教師的專業(yè)、職稱 和 身高、體重正確地提煉對(duì)象 例如:對(duì)書的不同抽象在圖書館管理系統(tǒng)中以一本書作為一個(gè)對(duì)象實(shí)例在書店管理系統(tǒng)中以一種書作為一個(gè)對(duì)象實(shí)例第39頁,共120頁。40如何發(fā)現(xiàn)各種有用的候選對(duì)象? 主要策略 :從問題域、系統(tǒng)邊界和系統(tǒng)責(zé)任3個(gè)方面考慮各種能夠啟發(fā)自己發(fā)現(xiàn)對(duì)象的因素,找出可能有用的候選對(duì)象。第40頁,共120頁。41由系統(tǒng)管理或使用其信息,或者在系統(tǒng)中呈現(xiàn)某些行為的各類人員由系統(tǒng)管理或使用其信息,或者在系統(tǒng)中呈現(xiàn)某些行為的各類組織由系統(tǒng)進(jìn)行管理的各種物品其他策略與啟發(fā)(1)考慮問題域:抽象事物事件文件結(jié)構(gòu)人員組織物品設(shè)備由系統(tǒng)進(jìn)行管理或控制,或者在系
25、統(tǒng)中呈現(xiàn)某些行為的各種設(shè)備例如:課程、計(jì)劃、交易、賬戶需要長(zhǎng)期記憶的事件例如:銀行的取款、存款,保險(xiǎn)公司的索賠,車輛管理中的駕駛違章泛指各種表格、檔案、證件、票據(jù)等文件例如:業(yè)務(wù)報(bào)表,人事檔案,身份證,合同,商品訂單等 注意三個(gè)問題:非基礎(chǔ)數(shù)據(jù),同一事物的重復(fù)描述,多種事物信息組合從結(jié)構(gòu)得到啟發(fā),聯(lián)想到新的對(duì)象其他一切有助于發(fā)現(xiàn)對(duì)象的事物第41頁,共120頁。42(2)考慮系統(tǒng)邊界:考察在系統(tǒng)邊界以外與系統(tǒng)交互的各類參與者考慮通過哪些對(duì)象處理這些參與者的交互人員設(shè)備外系統(tǒng)(3)考慮系統(tǒng)責(zé)任:檢查每一項(xiàng)功能需求是否已有相應(yīng)的對(duì)象提供,發(fā)現(xiàn)遺漏的對(duì)象第42頁,共120頁。43審查與篩選(1)舍棄無
26、用的對(duì)象通過屬性判斷:是否通過屬性記錄了某些有用的信息?通過操作判斷:是否通過操作提供了某些有用的功能?二者都不是無用第43頁,共120頁。44(2)對(duì)象的精簡(jiǎn)只有一個(gè)屬性的對(duì)象班級(jí)班主任姓名11班級(jí)班主任姓名只有一個(gè)操作的對(duì)象輸出設(shè)備格式轉(zhuǎn)換器文件格式轉(zhuǎn)換輸出設(shè)備文件格式轉(zhuǎn)換call第44頁,共120頁。45(3)與實(shí)現(xiàn)條件有關(guān)的對(duì)象例如:圖形用戶界面(GUI)數(shù)據(jù)管理系統(tǒng)硬件操作系統(tǒng) 有關(guān)的對(duì)象推遲到OOD考慮第45頁,共120頁。46對(duì)象分類(1)將對(duì)象抽象為類,用類表示它的全部對(duì)象為每一組具有相同屬性和操作的對(duì)象定義為一個(gè)類,用一個(gè)類符號(hào)表示。(2)審查和調(diào)整類的屬性或操作不適合該類的
27、全部對(duì)象實(shí)例例:“汽車”類的“乘客限量”屬性進(jìn)一步劃分特殊類屬性及操作相同的類經(jīng)過抽象,差別很大的事物可能只保留相同的特征 (服裝和計(jì)算機(jī))考慮能否合并為一個(gè)類屬性及操作相似的類例如: “轎車”和“貨車” 考慮能否提升出一個(gè)一般類同一事物的重復(fù)描述例:“職員”和“工作證”取消其中一個(gè)第46頁,共120頁。47(3)類的命名類的名字應(yīng)適合該類(及其特殊類)的全部對(duì)象實(shí)例反映個(gè)體而不是群體使用名詞 或 帶定語的名詞避免市井俚語和無意義的符號(hào)使用問題域通用的詞匯使用便于交流的語言文字可以用本地文字和英文雙重命名第47頁,共120頁。48接口的概念及用途早期的面向?qū)ο蠓椒ú]有把接口作為正式的OO概念
28、 和系統(tǒng)成分,只是用來解釋OO概念“操作是對(duì)象(類)對(duì)外提供的訪問接口”20世紀(jì)90年代中后期,接口才作為一種系統(tǒng)成分出現(xiàn)在OOPL中,并且被UML作為一種模型元素UML對(duì)接口的定義及解釋:“接口(interface)是一種類目(classifier) ,它表示對(duì)一組緊湊的公共特征和職責(zé)的聲明。一個(gè)接口說明了一個(gè)合約;實(shí)現(xiàn)接口的任何類目的實(shí)例必須履行這個(gè)合約?!薄耙粋€(gè)給定的類目可以實(shí)現(xiàn)多個(gè)接口,而一個(gè)接口可以由多個(gè)不同的類目來實(shí)現(xiàn)。” 第48頁,共120頁。49為什么引入接口的概念針對(duì)不同的應(yīng)用場(chǎng)合組織對(duì)象的操作售貨員商品銷售采購(gòu)員采購(gòu)把與銷售有關(guān)的操作組織成銷售接口把與采購(gòu)有關(guān)的操作組織成采
29、購(gòu)接口可替換(例如根據(jù)銷售策略的變化開發(fā)一個(gè)新的商品類)接口提供了更靈活的銜接機(jī)制第49頁,共120頁。50接口(interface)是由一組操作所形成的一個(gè)集合,它由一個(gè)名字和代表其中每個(gè)操作的特征標(biāo)記構(gòu)成。特征標(biāo)記(signature)代表了一個(gè)操作,但并不具體地定義操作的實(shí)現(xiàn)特征標(biāo)記 := (:,:): interface接口名稱操作1()操作n()表示法(詳細(xì)方式):第50頁,共120頁。51接口與類的關(guān)系接口由某些類實(shí)現(xiàn)(提供),被另外某些類使用(需要)前者與接口的關(guān)系稱為實(shí)現(xiàn)(realization)后者與接口的關(guān)系稱為使用(use)interface銷售查詢()售出()售貨員商品
30、使用實(shí)現(xiàn)同一個(gè)接口 對(duì)實(shí)現(xiàn)者而言是供接口(provided interface) 對(duì)使用者而言是需接口(required interface)第51頁,共120頁。52表示法(簡(jiǎn)略方式):托球-托座使用者提供者提供者的供接口(托球)使用者的需接口(托座)售貨員商品銷售例:interface銷售查詢()售出()售貨員商品第52頁,共120頁。53在一個(gè)類上可以畫出它所有的供接口和需接口類供接口需接口一個(gè)接口可以由多個(gè)類使用,它也可以由多個(gè)類實(shí)現(xiàn)類B類D類A類E類C多個(gè)類可以共同使用同一個(gè)接口正如對(duì)象的一個(gè)操作可以被多個(gè)對(duì)象調(diào)用多個(gè)類都可以分別實(shí)現(xiàn)同一個(gè)接口這里表示它們可以相互替換第53頁,共12
31、0頁。54接口與類的區(qū)別類既有屬性又有操作;接口只是聲明了一組操作,沒有屬性。在一個(gè)類中定義了一個(gè)操作,就要在這個(gè)類中真正地實(shí)現(xiàn)它;接口中的操作只是一個(gè)聲明,不需要在接口中加以實(shí)現(xiàn)。類可以創(chuàng)建對(duì)象實(shí)例;接口則沒有任何實(shí)例。引入接口概念的好處在接口的使用者和提供者之間建立了一種靈活的銜接機(jī)制,有利于對(duì)類、構(gòu)件等軟件成分進(jìn)行靈活的組裝和復(fù)用。將操作的聲明與實(shí)現(xiàn)相分離,隔離了接口的使用者和提供者的相互影響。使用者只需關(guān)注接口的聲明,不必關(guān)心它的實(shí)現(xiàn);提供者不必關(guān)心哪些類將使用這個(gè)接口,只是根據(jù)接口的聲明中所承諾的功能來實(shí)現(xiàn)它,并且可以有多種不同的實(shí)現(xiàn)。 接口概念對(duì)描述構(gòu)件之間的關(guān)系具有更重要的意義第
32、54頁,共120頁。55接口與多繼承的比較接口果真能部分地解決多繼承問題嗎?interface接口 A操作A-1()操作A-n()interface接口 B操作B-1()操作B-m()類 C類 E操作A-1()操作A-n()操作B-1()操作B-m()類 D操作A-1()操作A-n()操作B-1()操作B-m()類 A操作A-1()操作A-n()類 B操作B-1()操作B-m()類 C操作A-1()操作A-n()操作B-1()操作B-m()類 E類 D第55頁,共120頁。56對(duì)象之間的四種關(guān)系1一般-特殊關(guān)系 又稱繼承關(guān)系,反映事物的分類。由這種關(guān)系可以形成一般-特殊結(jié)構(gòu)。2整體-部分關(guān)系即
33、聚合關(guān)系。反映事物的構(gòu)成。由這種關(guān)系可以形成整體-部分結(jié)構(gòu)。3關(guān)聯(lián)關(guān)系對(duì)象實(shí)例集合(類)上的一個(gè)關(guān)系,其中的元素提供了被開發(fā)系統(tǒng)的應(yīng)用領(lǐng)域中一組有意義的信息。4消息關(guān)系 對(duì)象之間的動(dòng)態(tài)聯(lián)系,即一個(gè)對(duì)象在執(zhí)行其操作時(shí),請(qǐng)求其他對(duì)象為它執(zhí)行某個(gè)操作,或者向其他對(duì)象傳送某些信息。反映了事物之間的行為依賴關(guān)系。這些關(guān)系形成了類圖的關(guān)系層定義對(duì)象間的關(guān)系第56頁,共120頁。57概念同義詞 和 近義詞繼承(inheritance)是描述一般類和特殊類之間關(guān)系的最傳統(tǒng)、最經(jīng)典的術(shù)語。有時(shí)作為動(dòng)詞或形容詞出現(xiàn)。一般-特殊(generalization-specialization)含義最準(zhǔn)確,而且不容易產(chǎn)生
34、誤解,恰切地反映了一般類(概念)和特殊類(概念)之間的相對(duì)(二元)關(guān)系;也用于描述結(jié)構(gòu),即一般-特殊結(jié)構(gòu)。缺點(diǎn)是書寫和閱讀比較累贅。泛化(generalization)取“一般-特殊” 的一半,是UML的做法。比較簡(jiǎn)練,但是只反映了問題的一方面。作為關(guān)系的名稱尚可,說結(jié)構(gòu)是一個(gè)“泛化”則很勉強(qiáng)。分類(classification)接近人類日常的語言習(xí)慣, 體現(xiàn)了類的層次劃分,也作為結(jié)構(gòu)的名稱。在許多的場(chǎng)合被作為一種原則。一般-特殊結(jié)構(gòu)相關(guān)概念:一般類、特殊類、繼承、多繼承、多態(tài)語義:“is a kind of ”第57頁,共120頁。58一般-特殊關(guān)系(繼承關(guān)系)是類之間的一種二元關(guān)系是一種基
35、本的模型元素;由這種關(guān)系所形成的結(jié)構(gòu)是一般-特殊結(jié)構(gòu)是一種復(fù)合的模型成分。人員股東職員顧客股東職員例:這是1個(gè)一般-特殊結(jié)構(gòu) 包含5個(gè)一般特殊關(guān)系第58頁,共120頁。59特殊類一般類的特征一般類特殊類的特征只要有這些特征必須有這些特征對(duì)象實(shí)例集合特征集合理解一般類與特殊類之間的關(guān)系定義1:如果類A具有類B的全部屬性和全部操作,而且具有自己特有的某些屬性或操作,則A叫做B的特殊類,B叫做A的一般類。一般類與特殊類又稱父類與子類。定義2:如果類A的全部對(duì)象都是類B的對(duì)象,而且類B中存在不屬于類A的對(duì)象,則A是B的特殊類,B是A的一般類。書中證明,以上兩種定義是等價(jià)的一般類和特殊類的兩個(gè)定義第59
36、頁,共120頁。60表示法 * 對(duì)繼承的屬性或操作重新定義 拒絕繼承 多態(tài)性的表示符號(hào)一般類特殊類特殊類集中式一般類特殊類特殊類分散式人員股東職員顧客股東職員例:第60頁,共120頁。61如何發(fā)現(xiàn)一般-特殊結(jié)構(gòu)(1)學(xué)習(xí)當(dāng)前領(lǐng)域的分類學(xué)知識(shí)(2)按常識(shí)考慮事物的分類(3)根據(jù)一般類和特殊類的兩種定義(4)考察屬性與操作的適應(yīng)范圍?公司人員姓名身份證號(hào)股份工資 ?公司人員姓名身份證號(hào) 股東股份 職員工資 股東姓名身份證號(hào)股份 職員姓名身份證號(hào)工資 股東股份職員工資 ?公司人員姓名身份證號(hào) 第61頁,共120頁。62(5)考慮領(lǐng)域范圍內(nèi)的復(fù)用現(xiàn)鈔收款機(jī) A B C D E F X Y Z收款機(jī)AB
37、CXY現(xiàn)鈔收款機(jī) D E F Z領(lǐng)域構(gòu)件第62頁,共120頁。63(1)問題域是否需要這樣的分類?(例:書線裝書)(2)系統(tǒng)責(zé)任是否需要這樣的分類?(例:職員本市職員)(3)是否符合分類學(xué)的常識(shí)?(用“is a kind of ”來衡量)審查與調(diào)整(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)輸?shù)?3頁,共120頁。64一般-特殊結(jié)構(gòu)的簡(jiǎn)化(1)取消沒有特殊性的特殊類運(yùn)輸工具發(fā)動(dòng)機(jī)載重量速度 飛機(jī)飛行高度 自動(dòng)導(dǎo)航 汽車運(yùn)輸運(yùn)輸工具發(fā)動(dòng)機(jī)載重量速度 飛機(jī)飛行高度 自動(dòng)導(dǎo)航 運(yùn)輸?shù)?4頁,共12
38、0頁。65(2)增加屬性簡(jiǎn)化一般特殊結(jié)構(gòu) 人員男 人女 人中國(guó)人美國(guó)人日本人人員性別國(guó)籍第65頁,共120頁。66(3)取消用途單一的一般類,減少繼承層次一般類存在的理由:* 有兩個(gè)或兩個(gè)上以上的特殊類* 需要用它創(chuàng)建對(duì)象實(shí)例* 有助于軟件復(fù)用設(shè) 備型號(hào)生產(chǎn)廠開啟關(guān)閉 雷 達(dá)安裝地點(diǎn) 監(jiān)控 雷達(dá)型號(hào)生產(chǎn)廠安裝地點(diǎn) 開啟關(guān)閉監(jiān)控電子設(shè)備激光打印機(jī)傳真機(jī)通訊設(shè)備設(shè)備電子設(shè)備計(jì)算機(jī)設(shè)備打印機(jī)民用通訊設(shè)備激光打印機(jī)傳真機(jī)第66頁,共120頁。67多繼承:允許一個(gè)特殊類具有一個(gè)以上一般類的繼承模式多繼承特殊類的內(nèi)部情況在職研究生姓名學(xué)號(hào)班級(jí)專業(yè)職稱專業(yè)在職單位來自“人員”類來自“研究生”類來自“教職工”
39、類本類中顯式定義人員姓名教職工職稱專業(yè)研究生學(xué)號(hào)班級(jí)專業(yè)在職研究生在職單位 例:命名沖突第67頁,共120頁。68多態(tài):多態(tài)是指同一個(gè)命名可具有不同的語義。OO方法中,常指在一般類中定義的屬性或操作被特殊類繼承之后,可以具有不同的數(shù)據(jù)類型或表現(xiàn)出不同的行為。多邊形邊數(shù)頂點(diǎn)數(shù)據(jù)繪圖XY矩形邊數(shù)*頂點(diǎn)數(shù)據(jù)*繪圖正多邊形*頂點(diǎn)數(shù)據(jù)*繪圖例:第68頁,共120頁。整體-部分結(jié)構(gòu)概念:聚合(aggregation),組合(composition)整體-部分(whole-part )整體對(duì)象,部分對(duì)象語義:“a part of”或“has a”聚合關(guān)系描述了對(duì)象實(shí)例之間的構(gòu)成情況,然而它的定義卻是在類的抽
40、象層次給出的。從集合論的觀點(diǎn)看聚合關(guān)系整體-部分關(guān)系(聚合關(guān)系)是兩個(gè)類之間的二元關(guān)系,其中一個(gè)類的某些對(duì)象是另一個(gè)類的某些對(duì)象的組成部分。整體-部分結(jié)構(gòu)是把若干具有聚合關(guān)系的類組織在一起所形成的結(jié)構(gòu)。它是一個(gè)以類為結(jié)點(diǎn),以聚合關(guān)系為邊的連通有向圖。一種基本的模型元素由若干聚合關(guān)系形成的復(fù)合模型成分第69頁,共120頁。70可以正確有問題若類 A 的對(duì)象 a 是類 B 對(duì)象 b 的一個(gè)組成部分判斷以下幾種說法正確與否:“對(duì)象 b 和對(duì)象 a 之間具有聚合關(guān)系”“類 B 和類 A 之間具有聚合關(guān)系”“類 A 是類 B 的一個(gè)組成部分”組合(composition)是聚合關(guān)系的一種特殊情況,它表明
41、整體對(duì)于部分的強(qiáng)擁有關(guān)系,即整體與部分之間具有緊密、固定的組成關(guān)系。UML把聚合定義為關(guān)聯(lián)的一種特殊情況而組合關(guān)系是聚合關(guān)系的特殊情況第70頁,共120頁。71數(shù)量數(shù)量數(shù)量數(shù)量整體對(duì)象類部分對(duì)象類整體對(duì)象類部分對(duì)象類表示法在連接符兩端通過數(shù)字或者符號(hào)給出關(guān)系雙方對(duì)象實(shí)例的數(shù)量約束,稱為多重性(multiplicity) 確定的整數(shù) 給出確定的數(shù)量 例如: 1,2 下界上界 給出一個(gè)范圍 例如: 01 ,14 * 表示多個(gè),數(shù)量不確定下界* 表示多個(gè),下界確定 例如 0* , 1* 多重性有以下3種情況:一對(duì)一,一對(duì)多,多對(duì)多照相機(jī)1*0101鏡 頭機(jī) 身1第71頁,共120頁。72如何發(fā)現(xiàn)整體
42、-部分結(jié)構(gòu)基本策略考察問題域中各種具有構(gòu)成關(guān)系的事物(1)物理上的整體事物和它的組成部分例:機(jī)器、設(shè)備和它的零部件(2)組織機(jī)構(gòu)和它的下級(jí)組織及部門例:公司與子公司、部門(3)團(tuán)體(組織)與成員例:公司與職員(4)一種事物在空間上包容其它事物例:生產(chǎn)車間與機(jī)器(5)抽象事物的整體與部分例:學(xué)科與分支學(xué)科、法律與法律條款(6)具體事物和它的某個(gè)抽象方面例:人員與身份、履歷第72頁,共120頁。73審查與篩選(1)是否屬于問題域?例:公司職員與家庭(2)是不是系統(tǒng)責(zé)任的需要?例:?jiǎn)T工與工會(huì)(3)部分對(duì)象是否有一個(gè)以上的屬性?例:汽車與車輪(規(guī)格)(4)是否有明顯的整體-部分關(guān)系?例:學(xué)生與課程第7
43、3頁,共120頁。74整體-部分結(jié)構(gòu)的高級(jí)應(yīng)用技巧(1)簡(jiǎn)化對(duì)象的定義飛 機(jī)有關(guān)發(fā)動(dòng)機(jī)的屬性與操作有關(guān)駕駛室的屬性與操作11141飛 機(jī)發(fā)動(dòng)機(jī)駕駛室第74頁,共120頁。75(2)支持軟件復(fù)用起重機(jī)送料車機(jī)床鉆床刨床車床電動(dòng)機(jī)011011011第75頁,共120頁。76(3)表示數(shù)量不定的組成部分訂 單編號(hào)賣方買方總金額成交日期訂單行商品編號(hào)訂購(gòu)數(shù)量成交價(jià)金額1*1商品商品編號(hào)商品名稱單價(jià)廠商1*一個(gè)訂單可以包含一項(xiàng)到多達(dá)幾十項(xiàng)商品提問:能否不要訂單行,直接用商品作為訂單的部分對(duì)象?第76頁,共120頁。77(4)表示動(dòng)態(tài)變化的對(duì)象特征人員營(yíng)業(yè)員會(huì)計(jì)師經(jīng)理問題:對(duì)象的屬性與操作定義在系統(tǒng)運(yùn)行中
44、動(dòng)態(tài)變化,例如:不理想的解決辦法:刪除、重建Shlaer/ Mellor的子類型遷移“動(dòng)態(tài)對(duì)象”會(huì)計(jì)師身份經(jīng)理身份營(yíng)業(yè)員身份人員身份1m或人員營(yíng)業(yè)員身份01會(huì)計(jì)師身份0101111解:經(jīng)理身份第77頁,共120頁。78“三友”對(duì)問題的描述及解決方法“大多數(shù)面向?qū)ο蟮木幊陶Z言是靜態(tài)類型化的,這意味著在創(chuàng)建對(duì)象時(shí)就限定了對(duì)象的類型。但是隨著時(shí)間的推移對(duì)象還可能扮演不同的角色?!崩樱汉蜻x者,雇員,退休者 persontypecandidatetypeemployeetyperetiree“對(duì)象在其生命期內(nèi)動(dòng)態(tài)地獲得或者丟棄類型”1999年第一版persondynamiccandidatedynam
45、icemployeedynamicretiree2005年第二版總之都是圍繞著繼承想主意,沒有運(yùn)用聚合。第78頁,共120頁。79從上述例子得到的啟示:整體-部分結(jié)構(gòu)有很強(qiáng)的表達(dá)能力運(yùn)用OO方法的基本概念可以自然而有效地解決許多在其他方法中用擴(kuò)充概念解決的問題加強(qiáng)對(duì)基本概念的運(yùn)用,不要輕易創(chuàng)造新的擴(kuò)充概念person010101111用聚合概念解決:CandidateRoleEmployeeRoleRetireeRole第79頁,共120頁。80用一般特殊結(jié)構(gòu)兩種結(jié)構(gòu)的變通汽 車制冷設(shè)備冷藏車解釋:繼承和聚合都是使一類對(duì)象獲得另一類對(duì)象的特征,只是觀察問題的角度不同。兩種結(jié)構(gòu)同用汽 車?yán)洳剀囍?/p>
46、冷設(shè)備冷藏車汽 車制冷設(shè)備用整體部分結(jié)構(gòu)第80頁,共120頁。81概念:關(guān)聯(lián)(association)是兩個(gè)或者多個(gè)類上的一個(gè)關(guān)系(即這些類的對(duì)象實(shí)例集合的笛卡兒積的一個(gè)子集合),其中的元素提供了被開發(fā)系統(tǒng)的應(yīng)用領(lǐng)域中一組有意義的信息。 二元關(guān)聯(lián)(binary association)n元關(guān)聯(lián)(n-ary association) 關(guān)聯(lián)的實(shí)例有序?qū)?或 n元組,又稱鏈(link)關(guān)聯(lián)是這些有序?qū)?或 n元組的集合關(guān)聯(lián)位于類的抽象層次,鏈位于對(duì)象的抽象層次關(guān)聯(lián)提問:一個(gè)n元關(guān)聯(lián)中所涉及的類的數(shù)量是否可以小于n?第81頁,共120頁。82二元關(guān)聯(lián)的表示法城市*有航線(d) 城市之間有航線教 師學(xué)
47、生1*指導(dǎo)論文教師為學(xué)生指導(dǎo)論文例子類 A名稱類 B數(shù)量數(shù)量角色角色111*多重性的表示一對(duì)一:一對(duì)多:多對(duì)多:數(shù)量約束固定數(shù)值:例如 1數(shù)值范圍:例如 01符號(hào): * 表示多個(gè)0* = * 1* 表示 1到多個(gè)第82頁,共120頁。83二元關(guān)聯(lián)的實(shí)現(xiàn)(一對(duì)一和一對(duì)多)編程語言:在程序中用兩個(gè)類分別實(shí)現(xiàn)關(guān)聯(lián)兩端的類;以數(shù)量約束為“1”的類的對(duì)象實(shí)例為目標(biāo),在關(guān)聯(lián)另一端的類中設(shè)置一個(gè)指向該目標(biāo)的指針或者對(duì)象標(biāo)識(shí)(源類的屬性)。教 師1授課課 程*主講教師誰?關(guān)系數(shù)據(jù)庫:用兩個(gè)數(shù)據(jù)庫表分別實(shí)現(xiàn)關(guān)聯(lián)兩端的類;以數(shù)量約束為“1”的類對(duì)應(yīng)的表的元組為目標(biāo),在關(guān)聯(lián)另一端的類對(duì)應(yīng)的表中設(shè)置一個(gè)指向該目標(biāo)的外
48、鍵(目標(biāo)的主鍵)。教師課程第83頁,共120頁。84二元關(guān)聯(lián)的實(shí)現(xiàn)(多對(duì)多)問題:任何一端的一個(gè)對(duì)象實(shí)例的要和另一端多個(gè)對(duì)象實(shí)例發(fā)生關(guān)聯(lián),而且數(shù)量不確定。實(shí)現(xiàn)時(shí)不知道該設(shè)立多少個(gè)指針(或者對(duì)象標(biāo)識(shí)、外鍵)才能夠用。 課 程學(xué) 生*編程語言:用兩個(gè)類分別實(shí)現(xiàn)關(guān)聯(lián)兩端的類,同時(shí)用另外一個(gè)類來實(shí)現(xiàn)它們之間的關(guān)聯(lián)。實(shí)現(xiàn)關(guān)聯(lián)的類含有兩個(gè)屬性,分別是指向兩端的類的對(duì)象實(shí)例的指針或者對(duì)象標(biāo)識(shí)。 增加一個(gè)類關(guān)系數(shù)據(jù)庫:用兩個(gè)數(shù)據(jù)庫表分別實(shí)現(xiàn)關(guān)聯(lián)兩端的類,同時(shí)用另外一個(gè)數(shù)據(jù)庫表來實(shí)現(xiàn)它們之間的關(guān)聯(lián)。實(shí)現(xiàn)關(guān)聯(lián)的數(shù)據(jù)庫表含有兩個(gè)屬性,它們分別是指向兩端的表的元組的外鍵。 課程課程-學(xué)生學(xué)生第84頁,共120頁。85
49、運(yùn)用簡(jiǎn)單的概念及表示法解決各種復(fù)雜的關(guān)聯(lián)問題教師學(xué)生1*指導(dǎo)論文(1)帶有屬性和操作的關(guān)聯(lián)有某些信息需要描述OMT(及UML)的概念擴(kuò)充關(guān)聯(lián)類(association class) 類1類2屬性操作例子教 師學(xué) 生1*指導(dǎo)論文論文題目答辯時(shí)間成績(jī)問題:增加了概念的復(fù)雜性,缺乏編程語言支持第85頁,共120頁。86換一種思路考慮問題:兩類對(duì)象之間的關(guān)聯(lián)帶有某些復(fù)雜的信息,說明它們之間存在著某種事物(盡管可能是抽象事物)。用普通的對(duì)象概念來表示這種事物,簡(jiǎn)化關(guān)聯(lián),減少概念,并加強(qiáng)與OOPL的對(duì)應(yīng)。教師學(xué)生1*指導(dǎo)論文論文題目答辯時(shí)間成績(jī)*論文題目答辯時(shí)間成績(jī) 教師學(xué)生1指導(dǎo)畢業(yè)論文11寫作例1第8
50、6頁,共120頁。87城市之間有航線城 市有航線距離每周班次*1公 司個(gè) 人工 作薪水*公司與個(gè)人其他例子城市之間存在航線對(duì)象城 市航線距離每周班次*2公 司個(gè) 人工 作薪水公司與個(gè)人之間存在工作對(duì)象1*11第87頁,共120頁。88復(fù)雜關(guān)聯(lián)表示法的轉(zhuǎn)換 mn類 A類 B關(guān)聯(lián)類屬性操作類 A類 B類 C屬性操作11mn第88頁,共120頁。89(2)n元關(guān)聯(lián)OMT的三元關(guān)聯(lián)及其表示法問題:編程語言不能直接支持可推廣到n元關(guān)聯(lián),是否要?jiǎng)?chuàng)造更多的符號(hào)?多重性表示的困難(詳后)項(xiàng)目語言人員增設(shè)對(duì)象類表示多元關(guān)聯(lián)*項(xiàng)目名承擔(dān)者語言 項(xiàng)目語言1任務(wù)1*人員*1*第89頁,共120頁。90在理論上,n元關(guān)
51、聯(lián)是由若干n元組形成的集合,本質(zhì)上也是一個(gè)類是由每個(gè)n元組作為對(duì)象實(shí)例的類從實(shí)現(xiàn)的角度看, 用類實(shí)現(xiàn)n元關(guān)聯(lián)是最自然的選擇例如:用一個(gè)數(shù)據(jù)庫表存放n元關(guān)聯(lián)的全部n元組外鍵1 外鍵2 外鍵3 外鍵n表1表2表3表nn個(gè)表:類2類n類1類3n個(gè)類:N元關(guān)聯(lián)第90頁,共120頁。91在模型中,把n元關(guān)聯(lián)定義為一個(gè)類并定義它與原有的各個(gè)類之間的關(guān)系都是二元關(guān)聯(lián)類2類n類1類3n元關(guān)聯(lián)類2類n類1類3新增類第91頁,共120頁。92項(xiàng) 目語 言人 員*?*是 1 還是 * ?1項(xiàng) 目語 言任 務(wù)人 員11*1*1項(xiàng) 目語 言任 務(wù)人 員11*n元關(guān)聯(lián)多重性表示的困難和解決辦法第92頁,共120頁。93例
52、:課程實(shí)習(xí)中每?jī)擅麑W(xué)生在一臺(tái)設(shè)備上合作完成一個(gè)題目1)若系統(tǒng)要求記錄和查閱哪兩名學(xué)生是合作者建立學(xué)生類到它自身的關(guān)聯(lián)(如同城市之間有航線)是一個(gè)二元關(guān)聯(lián),其中學(xué)生類在關(guān)聯(lián)中出現(xiàn)了兩次 2)如果還要記錄每組學(xué)生的實(shí)習(xí)題目和使用的設(shè)備建立學(xué)生、題目、設(shè)備三個(gè)類之間的4元關(guān)聯(lián)學(xué)生類在這個(gè)關(guān)聯(lián)中出現(xiàn)了兩次(3)一個(gè)類在一個(gè)關(guān)聯(lián)中多次出現(xiàn)第93頁,共120頁。94111*1題 目設(shè) 備學(xué) 生學(xué) 生實(shí) 習(xí)11211*1題 目設(shè) 備學(xué) 生實(shí) 習(xí)假如該系統(tǒng)的多重性要求是:每?jī)擅麑W(xué)生在一臺(tái)設(shè)備上合作完成一個(gè)題目;一個(gè)題目可以供多組學(xué)生實(shí)習(xí),可以在不同的設(shè)備上完成;一臺(tái)設(shè)備可以供多組學(xué)生使用,可以做不同的題目。
53、題 目設(shè) 備學(xué) 生學(xué) 生??題 目設(shè) 備學(xué) 生*??第94頁,共120頁。95如何建立關(guān)聯(lián)1根據(jù)問題域和系統(tǒng)責(zé)任發(fā)現(xiàn)所需要的關(guān)聯(lián) 哪些類的對(duì)象實(shí)例之間存在著對(duì)用戶業(yè)務(wù)有意義的關(guān)系?問題域中實(shí)際事物之間有哪些值得注意的關(guān)系?這種信息是否需要通過有序?qū)Γɑ蛘遪元組)來體現(xiàn)?這些信息是否需要在系統(tǒng)中進(jìn)行保存、管理或維護(hù)?系統(tǒng)是否需要查閱和使用由這種關(guān)系所體現(xiàn)的信息?第95頁,共120頁。962關(guān)聯(lián)的復(fù)雜情況處理對(duì)關(guān)聯(lián)屬性和操作的處理 對(duì)n元關(guān)聯(lián)的處理避免一個(gè)類在關(guān)聯(lián)中多次出現(xiàn) 多對(duì)多關(guān)聯(lián)的處理 供貨商客戶*多對(duì)多關(guān)聯(lián)的處理供需合同賣方買方.*1 1 第96頁,共120頁。973為關(guān)聯(lián)端點(diǎn)添加修飾 分
54、析關(guān)聯(lián)的多重性 給出關(guān)聯(lián)名或角色名識(shí)別聚合種類其他修飾導(dǎo)航性、特性串等根據(jù)實(shí)際情況決定是否采用限定符用簡(jiǎn)單的類和關(guān)聯(lián)的概念解決4在類中設(shè)立實(shí)現(xiàn)關(guān)聯(lián)的屬性第97頁,共120頁。985關(guān)聯(lián)定位系統(tǒng)管理員1計(jì)算機(jī)服務(wù)器客戶機(jī)用 戶*操作使用1*第98頁,共120頁。99消息1、什么是消息 (message) 現(xiàn)實(shí)生活中人或其他事物之間傳遞的信息,例如:人與人之間的對(duì)話、通信、發(fā)通知、留言交通信號(hào)燈對(duì)車輛和行人發(fā)出的信號(hào)人發(fā)給設(shè)備的遙控信號(hào)等軟件系統(tǒng)中進(jìn)程或軟件成分之間傳送的信息控制信息 例如一次函數(shù)調(diào)用,或喚醒一個(gè)進(jìn)程數(shù)據(jù)信息 例如傳送一個(gè)數(shù)據(jù)文件面向?qū)ο蟮南到y(tǒng)中(按嚴(yán)格封裝的要求)消息是對(duì)象之間在
55、行為上的唯一聯(lián)系方式 消息是向?qū)ο蟀l(fā)出的服務(wù)請(qǐng)求 (狹義)消息是對(duì)象之間在一次交互中所傳送的信息(廣義) 消息有發(fā)送者和接收者,遵守共同約定的語法和語義第99頁,共120頁。100每個(gè)消息都是向?qū)ο蟀l(fā)出的服務(wù)請(qǐng)求最常見的是函數(shù)調(diào)用消息都是同步的。接收者執(zhí)行消息所請(qǐng)求的服務(wù)。發(fā)送者等待消息處理完畢再繼續(xù)執(zhí)行。每個(gè)消息只有唯一的接收者。順序系統(tǒng)中的消息第100頁,共120頁。101并發(fā)系統(tǒng)中的消息控制流內(nèi)部的消息與順序系統(tǒng)相同控制流之間的消息情況復(fù)雜得多消息有多種用途服務(wù)請(qǐng)求,傳送數(shù)據(jù),發(fā)送通知,傳遞控制信號(hào)消息有同步與異步之分同步消息(synchronous message)異步消息(async
56、hronous message) 接收者對(duì)消息有不同響應(yīng)方式創(chuàng)建控制流 ,立即響應(yīng),延遲響應(yīng),不響應(yīng)發(fā)送者對(duì)消息處理結(jié)果有不同期待方式等待回應(yīng),事后查看結(jié)果,不等待不查看消息的接收者可能不唯一定向消息(directed message)廣播消息(broadcast message) 第101頁,共120頁。102消息對(duì)面向?qū)ο蠼5囊饬x消息體現(xiàn)了對(duì)象之間的行為依賴關(guān)系,是實(shí)現(xiàn)對(duì)象之間的動(dòng)態(tài)聯(lián)系,使系統(tǒng)成為一個(gè)能運(yùn)行的整體,并使各個(gè)部分能夠協(xié)調(diào)工作的關(guān)鍵因素。 在順序系統(tǒng)中 消息體現(xiàn)了過程抽象的原則一個(gè)對(duì)象的操作通過消息調(diào)用其他對(duì)象的操作在OO模型中通過消息把對(duì)象操作貫穿在一起系統(tǒng)實(shí)現(xiàn)后這些操作
57、將在一個(gè)控制流中順序地執(zhí)行在并發(fā)系統(tǒng)中 控制流內(nèi)部的消息使系統(tǒng)中的每個(gè)控制流呈現(xiàn)出清晰的脈絡(luò)控制流之間的消息體現(xiàn)了控制流之間的通信關(guān)系第102頁,共120頁。103OO模型需要表示消息的哪些信息 ?(按重要性排序) (1)對(duì)象之間是否存在著某種消息?(2)這種消息是控制流內(nèi)部的還是控制流之間的?(3)每一種消息是從發(fā)送者的哪個(gè)操作發(fā)出的?是由接收者的哪個(gè)操作響應(yīng)和處理的?(4)消息是同步的還是異步的?(5)發(fā)送者是否等待消息的處理結(jié)果?第103頁,共120頁。104以往不同的OOA&D方法有不同的處理方式 例如:Coad/ Yourdon方法 在類圖中表示消息 Booch方法只在實(shí)例級(jí)的模型圖
58、(對(duì)象圖和交互圖)中表示消息 UML的處理方式:不在類圖中表示消息,只在協(xié)作圖和順序圖中表示理由:把類圖定義為靜態(tài)結(jié)構(gòu)圖,不表示動(dòng)態(tài)信息問題:抽象級(jí)別問題局部與全局問題實(shí)際上類圖中仍然包含動(dòng)態(tài)信息操作,調(diào)用(call)依賴要不要在類圖中表示消息 第104頁,共120頁。105UML對(duì)各種箭頭的用法同步消息(順序圖、協(xié)作圖)實(shí)線封閉箭頭依賴(類圖、包圖、用況圖、構(gòu)件圖)從消息接收者的操作返回(順序圖)虛線開放箭頭關(guān)聯(lián)的導(dǎo)航性(類圖)異步消息(順序圖)實(shí)線開放箭頭用 途圖形符號(hào)箭頭種類用什么符號(hào)表示消息借用依賴關(guān)系表示類圖中的消息callsend控制流內(nèi)部的消息控制流之間的消息第105頁,共120
59、頁。106ACDEFcall call callsendBcall call 例子: 緩沖區(qū)存數(shù)據(jù)取數(shù)據(jù)掛起喚醒生產(chǎn)者消費(fèi)者callcallsend第106頁,共120頁。107如何建立的消息(控制流內(nèi)部)策略“操作模擬”和“執(zhí)行路線追蹤”(1)人為地模擬當(dāng)前對(duì)象操作的執(zhí)行考慮:需要其它對(duì)象(或本對(duì)象)提供什么服務(wù)(2)判斷該消息是否屬于同一個(gè)控制流: 二者應(yīng)該順序地執(zhí)行還是并發(fā)地執(zhí)行? 是否引起控制流的切換? 接收者是否只有通過當(dāng)前消息的觸發(fā)才能執(zhí)行?(3)向接收者畫出消息連接線,填寫模型規(guī)約上述工作進(jìn)行到當(dāng)前的操作模擬執(zhí)行完畢(4)沿著控制流內(nèi)部的每一種消息追蹤到接收該消息的對(duì)象操作,重復(fù)
60、進(jìn)行以上的工作,直到已發(fā)現(xiàn)的全部消息都經(jīng)歷一遍。針對(duì)每個(gè)主動(dòng)類的每個(gè)主動(dòng)操作進(jìn)行上述模擬與追蹤檢查系統(tǒng)中每個(gè)操作是否都被經(jīng)歷過發(fā)現(xiàn)遺漏的消息或多余的操作第107頁,共120頁。108建立控制流之間消息對(duì)每個(gè)控制流考慮以下問題:(1)它在執(zhí)行時(shí),是否需要請(qǐng)求其他控制流中的對(duì)象為它提供某種服務(wù)?(2)它在執(zhí)行時(shí)是否要向其他控制流中的對(duì)象提供或索取某些數(shù)據(jù)?(3)它在執(zhí)行時(shí)是否將產(chǎn)生某些可影響其他控制流執(zhí)行的事件?(4)各個(gè)控制流的并發(fā)執(zhí)行,是否需要相互傳遞一些同步控制信號(hào)?(5)一個(gè)控制流將在何種條件下中止執(zhí)行?在它中止之后將在何種條件下被喚醒?由哪個(gè)控制流喚醒?從上述各個(gè)角度發(fā)現(xià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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年南昌應(yīng)用技術(shù)師范學(xué)院?jiǎn)握新殬I(yè)傾向性考試模擬測(cè)試卷附答案
- 2026廣西南寧市第三職業(yè)技術(shù)學(xué)校招聘編外聘用教師2人筆試模擬試題及答案解析
- 2026年心理學(xué)試題期末含答案
- 2026年山東省青島市單招職業(yè)適應(yīng)性考試題庫及答案1套
- 2026年廣西水利電力職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)適應(yīng)性測(cè)試模擬測(cè)試卷附答案
- 2026年新疆哈密地區(qū)單招職業(yè)適應(yīng)性考試模擬測(cè)試卷附答案
- 2026年大學(xué)研究生心理考試題庫及答案1套
- 2026新疆和田佰安人力資源有限責(zé)任公司招(競(jìng))聘4人筆試備考試題及答案解析
- 中國(guó)疾病預(yù)防控制中心資產(chǎn)管理處招聘1人筆試備考試題及答案解析
- 2026云南保山騰沖市人力資源和社會(huì)保障局招聘公益性崗位人員1人筆試備考題庫及答案解析
- 籃球裁判員手冊(cè)(2人執(zhí)裁與3人執(zhí)裁2018年版)
- 早產(chǎn)兒腦室內(nèi)出血預(yù)防專家共識(shí)(2025)解讀
- 2025年中考道德與法治三輪沖刺:主觀題常用答題術(shù)語速查寶典
- 論語的測(cè)試題及答案
- 教師年薪合同協(xié)議
- 地鐵保護(hù)專項(xiàng)施工方案中建A3版面
- 陜西省榆林市2025屆高三第二次模擬檢測(cè)英語試題(含解析含聽力原文無音頻)
- 2025年湖北武漢市華中科技大學(xué)航空航天學(xué)院李仁府教授課題組招聘2人歷年高頻重點(diǎn)提升(共500題)附帶答案詳解
- 產(chǎn)品檢驗(yàn)控制程序培訓(xùn)
- 早教師培訓(xùn)課件-01第一章早教師崗位要求第一節(jié)早教師工作內(nèi)容與就業(yè)趨向
- 村級(jí)財(cái)務(wù)審計(jì)合同模板
評(píng)論
0/150
提交評(píng)論