第12章面向?qū)ο箝_發(fā)概述_第1頁
第12章面向?qū)ο箝_發(fā)概述_第2頁
第12章面向?qū)ο箝_發(fā)概述_第3頁
第12章面向?qū)ο箝_發(fā)概述_第4頁
第12章面向?qū)ο箝_發(fā)概述_第5頁
已閱讀5頁,還剩34頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、第12章 面向?qū)ο箝_發(fā)概述Information System計(jì)算機(jī)學(xué)院 陳豐 1第12章 面向?qū)ο箝_發(fā)概述學(xué)習(xí)目標(biāo):I.面向?qū)ο蟮幕舅枷隝I.類與對(duì)象、消息、屬性、操作以及封裝、繼承、多態(tài)等基本概念I(lǐng)II. 面向?qū)ο箝_發(fā)的幾種主要方法12 面向?qū)ο箝_發(fā)概述12.1 面向?qū)ο蠡舅枷?12.3 面向?qū)ο蟮奶匦?312.4 面向?qū)ο箝_發(fā)的主要方法12.2 面向?qū)ο蟮南嚓P(guān)概念 12.1 面向?qū)ο蠡舅枷朊嫦驅(qū)ο蠡舅枷?面向?qū)ο蠓椒ㄓ?0世紀(jì)60年代末提出,較為完善的面向?qū)ο蠓治龊驮O(shè)計(jì)方法出現(xiàn)在八十年代中后期。為了克服早期的方法的不足,這時(shí)人們已經(jīng)開始考慮使用面向?qū)ο蠓椒▉黹_發(fā)系統(tǒng) 早期的方法只

2、使用一種系統(tǒng)的視角作為構(gòu)造塊,而沒有容納其他視角。結(jié)構(gòu)化分析和設(shè)計(jì)集中于將功能作為系統(tǒng)的構(gòu)造塊。在信息建模方法中(實(shí)體關(guān)系模型)構(gòu)造塊是實(shí)體,但在該方法中用來滿足系統(tǒng)需求的功能被完全忽略掉了。兩種方法都沒有處理對(duì)動(dòng)態(tài)行為的捕獲,聲明性語義(規(guī)則)以及例外處理機(jī)制都被完全忽略了。 為了克服傳統(tǒng)開發(fā)方法的不足,面向?qū)ο蠓椒ń鉀Q問題的思路是從現(xiàn)實(shí)世界中的客觀對(duì)象客觀對(duì)象(如人和事物)入手,盡量運(yùn)用人類的自然思維方式(抽象、運(yùn)用人類的自然思維方式(抽象、分類、繼承、聚合、封裝、關(guān)聯(lián)等)分類、繼承、聚合、封裝、關(guān)聯(lián)等)來構(gòu)造軟件系統(tǒng),這與傳統(tǒng)的結(jié)構(gòu)化方法從功能入手和建模方法從信息入手是不一樣的。在面向?qū)?/p>

3、象方法中,把一切都看成是對(duì)象。 以圖書管理信息系統(tǒng)為例來比較結(jié)構(gòu)化開發(fā)方法和面向?qū)ο蠓椒ǖ乃悸贰?結(jié)構(gòu)化方法:圖書基本信息讀者基本信息圖書借閱信息圖書預(yù)約信息等數(shù)據(jù)庫借書還書預(yù)約查詢圖書信息查詢借閱信息管理圖書基本信息等函數(shù)和過程u面向?qū)ο蟮姆椒ǎ簣D書管理員圖書讀者現(xiàn)實(shí)世界中的對(duì)象 對(duì)象是系統(tǒng)中用來描述客觀事物的一個(gè)實(shí)體,它是構(gòu)成系統(tǒng)的一個(gè)基本單位。 對(duì)象既可以描述客觀存在的事物,也可以表示由人主觀構(gòu)造的抽象觀念。對(duì)象可以是具體的、有形的物,也可以是無形的事物或概念。 客觀空間客觀空間軟件空間軟件空間主觀空間主觀空間扳手軟盤吊車顯微鏡圖片汽車事物事物/實(shí)體實(shí)體概念概念對(duì)象對(duì)象學(xué)生圖書教師管理員

4、數(shù)據(jù):姓名、學(xué)號(hào)、班級(jí)、入學(xué)年份、宿舍、電話等功能:借書、還書、預(yù)約、查詢圖書信息、查詢借閱信息、交罰款等數(shù)據(jù):書名、ISBN號(hào)、出版社、出版日期、作者等功能:告知圖書狀態(tài)、查詢借閱時(shí)間、查詢借閱該書讀者信息等數(shù)據(jù):姓名、工作證號(hào)、所在學(xué)院、入職年份、職稱、電話等功能:借書、還書、預(yù)約、查詢圖書信息、查詢借閱信息、交罰款等數(shù)據(jù):姓名、工作證號(hào)、入職時(shí)間功能:圖書入庫圖書出庫辦理借書/還書收罰款軟件世界中的對(duì)象 可見,面向?qū)ο蟛粌H是一些具體的軟件開發(fā)技術(shù)與策略,而且是一整套關(guān)于如何看待軟件系統(tǒng)與現(xiàn)實(shí)世界的關(guān)系、用什么觀點(diǎn)來研究問題并進(jìn)行問題求解、以及如何進(jìn)行系統(tǒng)構(gòu)造的軟件方法學(xué)。 面向?qū)ο蠡舅?/p>

5、想可以概括為:(1 1)從現(xiàn)實(shí)世界中客觀存在的事物出發(fā)來構(gòu)建軟件系統(tǒng),強(qiáng)調(diào)直接以問題域)從現(xiàn)實(shí)世界中客觀存在的事物出發(fā)來構(gòu)建軟件系統(tǒng),強(qiáng)調(diào)直接以問題域(現(xiàn)實(shí)世界)中的事物為中心來思考問題、認(rèn)識(shí)問題,并根據(jù)這些事物的本質(zhì)(現(xiàn)實(shí)世界)中的事物為中心來思考問題、認(rèn)識(shí)問題,并根據(jù)這些事物的本質(zhì)特征和要解決的具體問題域語境,把它們抽象地表示為軟件系統(tǒng)中的對(duì)象,作特征和要解決的具體問題域語境,把它們抽象地表示為軟件系統(tǒng)中的對(duì)象,作為軟件系統(tǒng)的基本構(gòu)成單位。為軟件系統(tǒng)的基本構(gòu)成單位。 ( (對(duì)象(對(duì)象(objectobject) (2 2)用對(duì)象的屬性表示事物的靜態(tài)特征;用對(duì)象的服務(wù)(操作)表示事物的動(dòng))用

6、對(duì)象的屬性表示事物的靜態(tài)特征;用對(duì)象的服務(wù)(操作)表示事物的動(dòng)態(tài)特征(態(tài)特征(屬性屬性(attributeattribute)與)與服務(wù)服務(wù)(operationoperation)(3 3)對(duì)象的屬性與服務(wù)結(jié)合為一體,成為一個(gè)獨(dú)立的、不可分的實(shí)體,對(duì)外屏)對(duì)象的屬性與服務(wù)結(jié)合為一體,成為一個(gè)獨(dú)立的、不可分的實(shí)體,對(duì)外屏蔽其內(nèi)部細(xì)節(jié)。(對(duì)象的蔽其內(nèi)部細(xì)節(jié)。(對(duì)象的封裝封裝(encapsulation)(encapsulation))(4 4)對(duì)事物進(jìn)行分類。把具有相同屬性和服務(wù)的對(duì)象歸為一類,類是這些對(duì)象)對(duì)事物進(jìn)行分類。把具有相同屬性和服務(wù)的對(duì)象歸為一類,類是這些對(duì)象的抽象描述,每個(gè)對(duì)象是它的

7、類的一個(gè)實(shí)例。(分類的抽象描述,每個(gè)對(duì)象是它的類的一個(gè)實(shí)例。(分類(classification)(classification))(5 5)類具有封閉性,把內(nèi)部的屬性和服務(wù)隱藏起來,只有公共的服務(wù)對(duì)外是可)類具有封閉性,把內(nèi)部的屬性和服務(wù)隱藏起來,只有公共的服務(wù)對(duì)外是可見的。見的。( (類的封閉性類的封閉性) )(6 6)復(fù)雜的對(duì)象可以用簡(jiǎn)單的對(duì)象作為其構(gòu)成部分。(聚合)復(fù)雜的對(duì)象可以用簡(jiǎn)單的對(duì)象作為其構(gòu)成部分。(聚合(aggregation)(aggregation))(7 7)通過在不同程度上運(yùn)用抽象的原則,可以得到較一般的類和較特殊的類。)通過在不同程度上運(yùn)用抽象的原則,可以得到較一般

8、的類和較特殊的類。特殊類繼承一般類的屬性與服務(wù),從而簡(jiǎn)化系統(tǒng)的構(gòu)造過程及文檔。(特殊類繼承一般類的屬性與服務(wù),從而簡(jiǎn)化系統(tǒng)的構(gòu)造過程及文檔。(繼承繼承(inheritance)(inheritance))(8 8)通過關(guān)聯(lián)表達(dá)類之間的靜態(tài)關(guān)系()通過關(guān)聯(lián)表達(dá)類之間的靜態(tài)關(guān)系(關(guān)聯(lián)關(guān)聯(lián)(associationassociation)(9 9)對(duì)象之間通過消息進(jìn)行通信,以實(shí)現(xiàn)對(duì)象之間的動(dòng)態(tài)聯(lián)系。()對(duì)象之間通過消息進(jìn)行通信,以實(shí)現(xiàn)對(duì)象之間的動(dòng)態(tài)聯(lián)系。(消息消息(messagemessage) 對(duì)象 類 關(guān)聯(lián)和鏈 聚合12.2 面向?qū)ο蟮南嚓P(guān)概念面向?qū)ο蟮南嚓P(guān)概念對(duì)象對(duì)象是現(xiàn)實(shí)世界中某是現(xiàn)實(shí)世界中某

9、個(gè)實(shí)際存在的事物,個(gè)實(shí)際存在的事物,它可以是有形的(比它可以是有形的(比如一輛汽車),也可如一輛汽車),也可以是無形的(比如一以是無形的(比如一項(xiàng)計(jì)劃)。對(duì)象是構(gòu)項(xiàng)計(jì)劃)。對(duì)象是構(gòu)成世界的一個(gè)獨(dú)立單成世界的一個(gè)獨(dú)立單位。它具有自己的靜位。它具有自己的靜態(tài)特征和動(dòng)態(tài)特征。態(tài)特征和動(dòng)態(tài)特征。一個(gè)對(duì)象由一組一個(gè)對(duì)象由一組屬性和對(duì)這組屬屬性和對(duì)這組屬性進(jìn)行操作的一性進(jìn)行操作的一組操作構(gòu)成。組操作構(gòu)成。對(duì)象標(biāo)識(shí)對(duì)象標(biāo)識(shí)屬性屬性操作操作對(duì)象對(duì)象 對(duì)象標(biāo)識(shí)對(duì)象標(biāo)識(shí)就是對(duì)象的名字就是對(duì)象的名字 屬性屬性是用來描述對(duì)象狀態(tài)特征是用來描述對(duì)象狀態(tài)特征的一個(gè)數(shù)據(jù)項(xiàng)。的一個(gè)數(shù)據(jù)項(xiàng)。 操作操作(服務(wù))是用來描述對(duì)象(服

10、務(wù))是用來描述對(duì)象動(dòng)態(tài)特征的一個(gè)操作序列。動(dòng)態(tài)特征的一個(gè)操作序列。對(duì)象具有如下特點(diǎn): 以數(shù)據(jù)為中心。以數(shù)據(jù)為中心。操作圍繞對(duì)其數(shù)據(jù)所需要的處理來設(shè)置,不設(shè)置與這些數(shù)據(jù)無關(guān)的操作,而且操作結(jié)果與當(dāng)時(shí)所處狀態(tài)(數(shù)據(jù)值)有關(guān)。 對(duì)象是主動(dòng)的。對(duì)象是主動(dòng)的。對(duì)象是進(jìn)行處理的主體,不能從外部直接處理對(duì)象的私有數(shù)據(jù),而必須通過它的共有接口向?qū)ο蟀l(fā)消息,請(qǐng)求它執(zhí)行某個(gè)操作,處理它的私有數(shù)據(jù)。 實(shí)現(xiàn)了數(shù)據(jù)封裝。實(shí)現(xiàn)了數(shù)據(jù)封裝。對(duì)象的私有數(shù)據(jù)完全被封裝,對(duì)外隱藏。對(duì)私有數(shù)據(jù)的訪問只需要知道數(shù)據(jù)取值范圍和可以施加的操作,而無法知道數(shù)據(jù)的具體結(jié)構(gòu)和實(shí)現(xiàn)操作的算法。 本質(zhì)上具有并行性。本質(zhì)上具有并行性。不同對(duì)象各自獨(dú)

11、立地處理自身數(shù)據(jù),彼此通過發(fā)消息完成通信,本質(zhì)上有并行工作的屬性。 模塊獨(dú)立性好。模塊獨(dú)立性好。對(duì)象以數(shù)據(jù)為中心,操作圍繞對(duì)其數(shù)據(jù)所需的處理設(shè)置,沒有無關(guān)操作,內(nèi)聚性強(qiáng);完成對(duì)象功能所需的數(shù)據(jù)和方法封裝在對(duì)象內(nèi)部,與外界聯(lián)系少,耦合性松。 類是具有相同屬性、操作、關(guān)系和語義的對(duì)象集合的描述。類為屬于該類的全部對(duì)象提供了統(tǒng)一的抽象描述,由類名、屬性和服務(wù)三個(gè)主要部分組成。 對(duì)象是類的實(shí)例。 屬性是類中所定義的數(shù)據(jù),是對(duì)客觀世界實(shí)體所具有的性質(zhì)的抽象。類的每個(gè)實(shí)例都有自己特有的屬性值。(c+中稱為數(shù)據(jù)成員) 例如:學(xué)生類中定義的學(xué)號(hào)、姓名等的數(shù)據(jù)成員,就是學(xué)生的屬性。 12.1.4 屬性屬性 操作

12、(operation)是由類的所有實(shí)例提供的一個(gè)功能或服務(wù)。只有通過這些操作,其他對(duì)象才能夠獲得或處理存在一個(gè)對(duì)象中的信息。 操作為類提供了一個(gè)外部界面;該界面呈現(xiàn)了類的外部視圖,而沒有顯示它的內(nèi)部結(jié)構(gòu)或其操作是怎樣實(shí)施的。這種對(duì)外部視圖隱藏對(duì)象內(nèi)部實(shí)施細(xì)節(jié)的技術(shù)被稱為封裝(encapsulation),或信息隱藏。 例如:“學(xué)生”類有一個(gè)操作“借閱圖書”,該操作為“學(xué)生”類提供了一個(gè)外部界面,而沒有顯示借閱操作是怎樣完成借閱圖書的過程。 類中操作的實(shí)現(xiàn)過程叫做方法,一個(gè)方法有方法名、參數(shù)、方法體。方法描述了對(duì)象執(zhí)行操作的算法(c+中稱為成員函數(shù))。 12.1.5 操作操作 關(guān)聯(lián)用來描述類之間

13、的靜態(tài)聯(lián)系,可以包含關(guān)聯(lián)的名稱、關(guān)聯(lián)的方向和多重性等屬性。 如上邊所示:關(guān)聯(lián)名稱:駕駛關(guān)聯(lián)方向:?jiǎn)蜗?鏈?zhǔn)顷P(guān)聯(lián)的實(shí)例,用于描述具體對(duì)象之間的某種聯(lián)系。 聚合刻畫了現(xiàn)實(shí)世界事物的構(gòu)成關(guān)系 ,是一種具有整體-部分語義的關(guān)聯(lián),也就是說,聚合是關(guān)聯(lián)的一種,只是普通關(guān)聯(lián)的語義沒有聚合那么強(qiáng) 。 舉例,車是一個(gè)整體實(shí)體,輪胎、發(fā)動(dòng)機(jī)、車身、車座等是整輛車的一部分。 封裝和信息隱藏 繼承/泛化 消息通信 多態(tài)性12.3 面向?qū)ο蟮奶匦悦嫦驅(qū)ο蟮奶匦?是指對(duì)象實(shí)現(xiàn)信息隱藏,對(duì)外界隱藏了對(duì)象的實(shí)現(xiàn)細(xì)節(jié)。使用對(duì)象時(shí),只需要知道它向外界提供的接口形式,無法知道它的數(shù)據(jù)結(jié)構(gòu)細(xì)節(jié)和實(shí)現(xiàn)操作的算法。 對(duì)象具有封裝性的條件

14、如下:有一個(gè)清晰邊界,所有私有數(shù)據(jù)和實(shí)現(xiàn)操作的代碼都封裝在這個(gè)邊界內(nèi),從外部看不見,也不能直接訪問。有確定的接口(即協(xié)議)。這些接口就是對(duì)象可以接受的消息,只能通過向?qū)ο蟀l(fā)送消息來使用它。受保護(hù)的內(nèi)部實(shí)現(xiàn)。實(shí)現(xiàn)對(duì)象功能的細(xì)節(jié)(私有數(shù)據(jù)和代碼)不能夠在定義該對(duì)象的類的范圍外訪問。 信息隱藏有兩方面含義:對(duì)象屬性只有通過對(duì)象對(duì)外發(fā)布的接口訪問;外部對(duì)象只關(guān)心接口的訪問方法,不關(guān)心接口的內(nèi)部實(shí)現(xiàn); 降低軟件復(fù)雜性,讓其他對(duì)象不用關(guān)心它們不必關(guān)心的細(xì)節(jié); 減少修改對(duì)象引起的“波動(dòng)效應(yīng)”:對(duì)象內(nèi)部的修改對(duì)外部的影響很小,只要接口不變,里面怎么變都沒有關(guān)系; 實(shí)現(xiàn)接口和實(shí)現(xiàn)的分離。 繼承也稱泛化,是面向?qū)?/p>

15、象描述類之間相似性的一種重要機(jī)制 指能夠直接獲得已有的特征和性質(zhì),而不必重復(fù)定義它們?cè)陬惖睦^承層次結(jié)構(gòu)中,位于較高層次的類叫做一一般類般類/ /超類超類/ /父類父類,而位于較低層次的類叫做特殊類特殊類/ /子類子類。繼承使得特殊類自動(dòng)地?fù)砝^承使得特殊類自動(dòng)地?fù)碛谢螂[含地復(fù)制一般類的有或隱含地復(fù)制一般類的全部屬性、操作和關(guān)聯(lián)全部屬性、操作和關(guān)聯(lián),根據(jù)需要添加自己的屬性和方法。 “教職工”繼承了“人員”的屬性和方法,因此教職工除了能執(zhí)行自身的“掙工資”方法,還繼承了“人員”的“進(jìn)校”和“離?!狈椒?。 繼承簡(jiǎn)化了人們對(duì)事物的認(rèn)識(shí)和描述,非常有益于軟件復(fù)用,是OO技術(shù)提高軟件開發(fā)效率的重要原因之一。

16、需要注意的是,只有當(dāng)兩個(gè)類之間是 “is a”, “is like” 或 “is a kind of ”關(guān)系時(shí),才可以使用繼承。由于“學(xué)生” “is a” “人員”, “教職工” “is a” “人員”,因此“學(xué)生”可以繼承“人員”、“教職工”可以繼承“人員”。人員教師學(xué)生研究生本科生交通工具輪船客運(yùn)工具火車客輪客運(yùn)列車 繼承可分為單繼承和多繼承。如果一個(gè)子類繼承了超過一個(gè)以上的父類的屬性和操作,那么這種繼承就是多繼承多繼承,否則就是單繼承單繼承。 繼承是可傳遞的,可以跨越任意層次。子類繼承其所有祖先類的屬性、操作和關(guān)聯(lián)。u對(duì)象與對(duì)象之間并不是彼此孤立的,它們之間存在聯(lián)系,在面向?qū)ο蟮南到y(tǒng)中,

17、對(duì)象之間的聯(lián)系是通過消息傳遞進(jìn)行的。u消息是對(duì)象之間相互請(qǐng)求和相互協(xié)作的途徑,是要求某個(gè)對(duì)象執(zhí)行其中某個(gè)功能操作的規(guī)格說明。一個(gè)對(duì)象通過向另一個(gè)對(duì)象發(fā)送消息來請(qǐng)求其服務(wù)。u一個(gè)消息通常包括接收對(duì)象名、調(diào)用的操作名和適當(dāng)?shù)膮?shù)(如果有必要的話)。消息只告訴接收對(duì)象需要完成什么操作,但并不指示接收者怎樣完成操作。消息完全由接收者解釋,接收者獨(dú)立決定采用什么方法完成所需的操作。 一個(gè)對(duì)象可以是消息的發(fā)送者,也可以是消息的接收者,還可以作為消息中的參數(shù)。 例如:MyCircle是一個(gè)半徑4厘米,圓心位于(100,200)的Circle類的對(duì)象,也就是Circle類對(duì)象的一個(gè)實(shí)例。當(dāng)要求它以藍(lán)色在屏幕上

18、顯示自己時(shí),則應(yīng)該發(fā)送下列消息: MyCircle.Show(BLUE)MyCircle.Show(BLUE)MyCircle是接受消息的對(duì)象名稱;Show是消息名;括號(hào)內(nèi)的BLUE是消息的參數(shù)。30 “多態(tài)”來自希臘語,意思是“有多種形式”。 在收到消息時(shí),對(duì)象要予以響應(yīng),不同的對(duì)象收到同一消息可不同的對(duì)象收到同一消息可產(chǎn)生多種不同的結(jié)果產(chǎn)生多種不同的結(jié)果,即會(huì)有多種不同形式,這就是多態(tài)這就是多態(tài)。在使用多態(tài)時(shí),用戶可以發(fā)送一個(gè)通用的消息,而實(shí)現(xiàn)的細(xì)節(jié)則由接收對(duì)象自行決定,這樣,同一消息就可以由不同的對(duì)象調(diào)用不同的方法來響應(yīng),從而產(chǎn)生不同的響應(yīng)結(jié)果。 多態(tài)的實(shí)現(xiàn)受到繼承性的支持,利用類層次的

19、繼承關(guān)系,把具有通用功能的消息存放在高層次,而實(shí)現(xiàn)這一功能的不同的行為放在較低層次,則在這些低層次上生成的對(duì)象就能給通用消息以不同的響應(yīng)。 例如:面向?qū)ο罄L圖程序中,在父類“多邊形”中定義了一個(gè)服務(wù)“繪圖”,但并不確定執(zhí)行時(shí)繪制一個(gè)什么圖形。子類“正多邊形”和“軸向矩形”都繼承了多邊形類的繪圖服務(wù),但其功能卻不相同:一個(gè)是畫正多邊形,一個(gè)是畫帶坐標(biāo)軸的矩形。正多邊形和軸向矩形接收到請(qǐng)求繪圖消息時(shí)各自執(zhí)行不同的繪圖算法。 多態(tài)性是面向?qū)ο蟮奶卣髦弧?多態(tài)是指允許不同類的對(duì)象對(duì)同一消息作出不同的響應(yīng)。 實(shí)現(xiàn)多態(tài),有二種方式:覆蓋,重載。 覆蓋:是指子類重新定義父類的函數(shù);-override 重載

20、:是指允許存在多個(gè)同名函數(shù),而這些函數(shù)的參數(shù)表不同(或許參數(shù)個(gè)數(shù)不同,或許參數(shù)類型不同,或許兩者都不同)。-overload一Booch的OOD方法二Coad/Yourdon的面向?qū)ο蠓治雠c設(shè)計(jì)(OOA/OOD)方法三Rumbaugh的對(duì)象建模技術(shù)(OMT)四Jacobson的面向?qū)ο筌浖こ蹋∣OSE) 12.4 面向?qū)ο箝_發(fā)的主要方法面向?qū)ο箝_發(fā)的主要方法 Booch最先描述了面向?qū)ο蟮能浖_發(fā)方法的基礎(chǔ)問題,指出面向?qū)ο箝_發(fā)是一種根本不同于傳統(tǒng)的功能分解的設(shè)計(jì)方法。 Booch方法在許多領(lǐng)域取得實(shí)際應(yīng)用。它的最大特點(diǎn)是將幾類不同的圖表有機(jī)結(jié)合起來,以反映系統(tǒng)的各個(gè)方面是如何相互聯(lián)系又相互

21、影響的。 Booch認(rèn)為開發(fā)過程為螺旋上升模式,每一次重復(fù)的步驟如下: 從應(yīng)用的問題域中發(fā)現(xiàn)類和對(duì)象; 分析類和對(duì)象的功能、行為,確定其屬性和操作; 找出類、對(duì)象之間的關(guān)系; 說明每個(gè)類和對(duì)象的界面和實(shí)現(xiàn)。12.4.1 Booch 的的OOD方法方法Booch方法表示系統(tǒng)模型:系統(tǒng)模型靜態(tài)模型動(dòng)態(tài)模型邏輯模型物理模型類圖對(duì)象圖狀態(tài)圖交互作用圖模塊圖進(jìn)程圖 Coad-Yourdon方法嚴(yán)格區(qū)分了面向?qū)ο蠓治鯫OA (OO Analysis)與面向?qū)ο笤O(shè)計(jì)OOD (OO Design)。 第15章 面向?qū)ο蠓治鲈敿?xì)介紹OOA方法 12.4.2 Coad(科德科德)/Yourdon的的OOA-OOD

22、方法方法 主題層 subject level類-對(duì)象層object結(jié)構(gòu)層 structure屬性層 attribute服務(wù)層 serves圖12.4 五層模型體系 OMT方法由James Rambough建立,它采用三種模型來描述分析與設(shè)計(jì),分別是對(duì)象模型、動(dòng)態(tài)模型和功能模型對(duì)象模型、動(dòng)態(tài)模型和功能模型。 對(duì)象模型對(duì)象模型的描述手段是對(duì)象圖。它用來刻畫對(duì)象的靜態(tài)結(jié)構(gòu)及相互間的關(guān)系。用對(duì)象模型來建模就是確定問題域的類和相關(guān)的屬性。 動(dòng)態(tài)模型動(dòng)態(tài)模型主要采用狀態(tài)轉(zhuǎn)換圖(Statecharts)來描述,它用來刻畫對(duì)象的動(dòng)態(tài)行為,并定義和識(shí)別對(duì)象的行為。 功能模型功能模型主要表達(dá)系統(tǒng)內(nèi)部數(shù)據(jù)流的傳遞和處理的過程。數(shù)據(jù)流圖適用于描述系統(tǒng)的功能模型。 12.4.3 James Rumbaugh的的OMT 方法方法Jacobson提出的面向?qū)ο筌浖こ蹋∣OSE,Object Oriented Software Engineering)將面向?qū)ο蟮乃枷胴灤┑杰浖こ讨?,目的是為了得到一個(gè)能適應(yīng)變化、健壯性好和維護(hù)性強(qiáng)的系統(tǒng)。OOSE采用五個(gè)模型來完成其實(shí)現(xiàn)目標(biāo)系統(tǒng)的過程:u需求模型(RM)。用來捕捉用戶的需求,主要建模手段有用例圖、問題域?qū)ο竽P秃腿伺c系統(tǒng)的接口界面。u分析模型(AM)。該模型定義一個(gè)健壯的、可擴(kuò)展的系統(tǒng)的基本結(jié)構(gòu)。OOSE定義了三種對(duì)象類型:

溫馨提示

  • 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)論