面向?qū)ο筌浖こ陶n件_第1頁(yè)
面向?qū)ο筌浖こ陶n件_第2頁(yè)
面向?qū)ο筌浖こ陶n件_第3頁(yè)
面向?qū)ο筌浖こ陶n件_第4頁(yè)
面向?qū)ο筌浖こ陶n件_第5頁(yè)
已閱讀5頁(yè),還剩109頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第十五講面向?qū)ο筌浖こ瘫局v的主要內(nèi)容一、開發(fā)模式(Paradigm)二、面向?qū)ο蠡靖拍钊?、面向?qū)ο蠓椒ǖ拈_發(fā)過程一、開發(fā)模式(Paradigm)開發(fā)模式又稱為范型、范例、風(fēng)范或模式(Pattern)。開發(fā)模式定義了特定問題和應(yīng)用的開發(fā)過程中將遵循的步驟;確定將用于表示問題和解的那些成分的類型;利用這些成分表示與問題解決有關(guān)的抽象;直接得到問題的結(jié)構(gòu)。面向過程開發(fā)模式面向過程開發(fā)模式產(chǎn)生過程的抽象。這些抽象的基礎(chǔ)是把軟件視為處理流,并定義成由一系列步驟構(gòu)成的算法。每一步驟都是帶有預(yù)定輸入和特定輸出的一個(gè)過程,把這些步驟串聯(lián)在一起可產(chǎn)生合理的穩(wěn)定的貫通于整個(gè)程序的控制流,最終產(chǎn)生一個(gè)簡(jiǎn)單的具有靜態(tài)結(jié)構(gòu)的體系結(jié)構(gòu)。面向過程開發(fā)模式的特點(diǎn)過程性開發(fā)模式側(cè)重建立構(gòu)成問題解決的處理流。數(shù)據(jù)抽象、數(shù)據(jù)結(jié)構(gòu)根據(jù)算法步驟的要求開發(fā),它貫穿于過程,提供過程所要求操作的信息。系統(tǒng)的狀態(tài)是一組全局變量,這組全局變量保存狀態(tài)的值,把它們從一個(gè)過程傳送到另一個(gè)過程。

(1)Initializesystem;(2)Createanddrawinterface;whileQUITnotselecteddo(3)case傳統(tǒng)的結(jié)構(gòu)化技術(shù)的缺點(diǎn)系統(tǒng)穩(wěn)定性差。功能分解實(shí)質(zhì)是圍繞實(shí)現(xiàn)一個(gè)個(gè)處理功能的“過程”來構(gòu)造系統(tǒng),一旦需求稍有變化,就會(huì)引起系統(tǒng)結(jié)構(gòu)的大變化。難以修改和擴(kuò)充。SA、SD技術(shù)清楚地定義了目標(biāo)系統(tǒng)的邊界,軟件通過界面與客觀世界通信。數(shù)據(jù)和操作分離和模塊化的任意性使得軟件可重用性差。面向?qū)ο箝_發(fā)模式在面向過程開發(fā)模式中優(yōu)先考慮的是過程抽象,在面向?qū)ο箝_發(fā)模式中優(yōu)先考慮的是實(shí)體(問題論域的對(duì)象)。在面向?qū)ο箝_發(fā)模式中,把標(biāo)識(shí)和模型化問題論域中的主要實(shí)體做為系統(tǒng)開發(fā)的起點(diǎn),主要考慮對(duì)象的行為而不是必須執(zhí)行的一系列動(dòng)作。面向?qū)ο蠓治龇椒ǖ幕舅枷胫皇腔趩栴}領(lǐng)域的成分來構(gòu)造一個(gè)模塊。面向?qū)ο蠓椒▽W(xué)的優(yōu)點(diǎn)與人類所習(xí)慣的思維方法一致。穩(wěn)定性好,控制變化性客觀世界中,實(shí)體結(jié)構(gòu)相對(duì)穩(wěn)定減弱“語(yǔ)義斷層”,更好的刻畫問題域,減少了映射誤差便于復(fù)用可維護(hù)性好,易于理解、測(cè)試、調(diào)試等。消除或減少了軟件開發(fā)各個(gè)階段的鴻溝,適應(yīng)于大型軟件產(chǎn)品的開發(fā)。人們認(rèn)識(shí)世界的三個(gè)構(gòu)造法則認(rèn)識(shí)和區(qū)分對(duì)象及其屬性。認(rèn)識(shí)和區(qū)分整體對(duì)象及其組成部分。認(rèn)識(shí)和區(qū)分不同對(duì)象類的形成。OO方法正好適應(yīng)了以上法則對(duì)數(shù)據(jù)和操作封裝而形成一個(gè)統(tǒng)一體;問題空間和解空間得到進(jìn)一步的“擬合”,它們的結(jié)構(gòu)十分一致;解空間中的對(duì)象行為更豐富,削弱了“語(yǔ)義斷層”。TendencyforChangewhenUsingOOParadigm(Jacobsonetal.1995)Characteristicofsoftwareproduct/projectProbabilityforchangeObjectsderivedfromtheapplicationLowLong-livedinformationstructuresLowPassiveobject’sattributeMediumSequencesofbehaviorMediumInterfacewiththeoutsideworldHighFunctionalityHighCharacteristicsofOORepresentationIdentity—name,reference,handleAbstractionClassificationEncapsulationInheritancePolymorphismPersistence3、噴泉模型(P199,圖9.1)迭代重復(fù)演進(jìn)無間隙各階段間無明顯界限每個(gè)開發(fā)模式都有它的支持者和用戶;每個(gè)開發(fā)模式都特別適合于某種類型的問題或子問題;每一個(gè)開發(fā)模式都用不同的方式考慮問題;每一個(gè)開發(fā)模式都使用不同的方法來分解問題;每一個(gè)開發(fā)模式都導(dǎo)致不同種類的塊、過程、產(chǎn)生規(guī)則?;旌祥_發(fā)模式在大型系統(tǒng)的開發(fā)中,很難說哪種開發(fā)模式對(duì)整個(gè)問題的解決最好。系統(tǒng)開發(fā)時(shí),通常把大型問題分解成一組子問題。對(duì)于每個(gè)子問題可以采用適當(dāng)?shù)能浖_發(fā)模式。這種設(shè)計(jì)需要有某種實(shí)現(xiàn)語(yǔ)言或一組協(xié)同語(yǔ)言的支持。許多流行的功能不斷增強(qiáng)的語(yǔ)言可支持不只一種設(shè)計(jì)開發(fā)模式。二、面向?qū)ο蠡靖拍頒oad和Yourdon給出了一個(gè)定義:“面向?qū)ο?對(duì)象+類+繼承+通信”。如果一個(gè)軟件系統(tǒng)是使用這樣4個(gè)概念設(shè)計(jì)和實(shí)現(xiàn)的,則我們認(rèn)為這個(gè)軟件系統(tǒng)是面向?qū)ο蟮?。一個(gè)面向?qū)ο蟮某绦虻拿恳怀煞輵?yīng)是對(duì)象,計(jì)算是通過新的對(duì)象的建立和對(duì)象之間的通信來執(zhí)行的。對(duì)象(object)對(duì)象是面向?qū)ο箝_發(fā)模式的基本成份。每個(gè)對(duì)象可用它本身的一組屬性和它可以執(zhí)行的一組操作來定義。屬性一般只能通過執(zhí)行對(duì)象的操作來改變。操作又稱為方法或服務(wù),它描述了對(duì)象執(zhí)行的功能,若通過消息傳遞,還可以為其它對(duì)象使用。消息(Message)消息是一個(gè)對(duì)象與另一個(gè)對(duì)象的通信單元,是要求某個(gè)對(duì)象執(zhí)行類中定義的某個(gè)操作的規(guī)格說明。發(fā)送給一個(gè)對(duì)象的消息定義了一個(gè)方法名和一個(gè)參數(shù)表(可能是空的),并指定某一個(gè)對(duì)象。一個(gè)對(duì)象接收的消息則調(diào)用消息中指定的方法,并將形式參數(shù)與參數(shù)表中相應(yīng)的值結(jié)合起來。類(class)類是一組具有相同數(shù)據(jù)結(jié)構(gòu)和相同操作的對(duì)象的集合。類的定義包括一組數(shù)據(jù)屬性和在數(shù)據(jù)上的一組合法操作。類定義可以視為一個(gè)具有類似特性與共同行為的對(duì)象的模板,可用來產(chǎn)生對(duì)象。在一個(gè)類中,每個(gè)對(duì)象都是類的實(shí)例

(Instance),它們都可使用類中提供的函數(shù)。對(duì)象的狀態(tài)則包含在它的實(shí)例變量,即實(shí)例的屬性中。

類←兩個(gè)四邊形對(duì)象Quadrilateral類的每個(gè)對(duì)象有同樣的一組實(shí)例變量和方法。就這個(gè)意義來講,類Quadrilateral給我們提供了一個(gè)模板,表示了所有四邊形對(duì)象。類常??煽醋鍪且粋€(gè)抽象數(shù)據(jù)類型(ADT)的實(shí)現(xiàn)。但更合適的是把類看做是某種概念的模型。類的實(shí)現(xiàn)常常使用其它類的實(shí)例,它們提供了該類所需要的服務(wù)。這些實(shí)例應(yīng)當(dāng)受到保護(hù)不被其它對(duì)象存取,包括同一個(gè)類的其它實(shí)例。在四邊形的例子中,定義4個(gè)point類的實(shí)例作為Quadrilateral類的實(shí)例的4個(gè)頂點(diǎn)。這些point對(duì)象不能被其它對(duì)象存取。繼承(Inheritance)繼承是使用已存在的定義做為基礎(chǔ)建立新定義的技術(shù)。新類的定義可以是既存類所聲明的數(shù)據(jù)和新類所增加的聲明的組合。新類復(fù)用既存的定義,而不要求修改既存類。既存類可當(dāng)做基類來引用,則新類相應(yīng)地可當(dāng)做派生類來引用。使用繼承設(shè)計(jì)一個(gè)新類,可以視為描述一個(gè)新的對(duì)象集,它是既存類所描述對(duì)象集的子集合。這個(gè)新的子集合可以認(rèn)為是既存類的一個(gè)特殊化。Quadrilateral類是Polygon類的特殊化。Quadrilateral是限制為四條邊的多邊形。我們還可以進(jìn)一步地把類Quadrilateral特殊化為Rectangle。類Quadrilateral的界面可以等同于類Polygon的界面,而Rectangle類的界面又與Quadrilateral類的界面相同。新類的界面還可以被看做是既存類界面的一個(gè)擴(kuò)充界面。例如,從一個(gè)既存的車輛類派生的四輪驅(qū)動(dòng)車類可能不僅是車輛類子集合定義的特殊化,而且還可能在新類的界面中引入新的能力。類的繼承層次在類的繼承層次中,Quadrilateral的實(shí)際參數(shù)可以替換Polygon的形式參數(shù)。類Quadrilateral的界面與類Polygon的界面是相容的Quadrilateral的界面可響應(yīng)Polygon界面的所有消息。

三、面向?qū)ο蠓椒ǖ拈_發(fā)過程面向?qū)ο蠓椒ǜ倪M(jìn)了在生存期各個(gè)階段之間的接口,因?yàn)樵谏嫫诟鱾€(gè)階段所開發(fā)出來的“部件”都是類。在面向?qū)ο笊嫫诘母鱾€(gè)階段對(duì)各個(gè)類的信息進(jìn)行細(xì)化,類成為分析、設(shè)計(jì)和實(shí)現(xiàn)的基本單元。應(yīng)用生存期類生存期復(fù)用(Reusable)在軟件開發(fā)中,復(fù)用扮演了重要角色。軟件部件應(yīng)當(dāng)獨(dú)立于當(dāng)初開發(fā)它們的應(yīng)用而存在。部件的開發(fā)瞄準(zhǔn)某些局部的設(shè)計(jì)和實(shí)現(xiàn),它們能夠幫助當(dāng)前問題的解決,但為了在以后的項(xiàng)目中使用,它們還應(yīng)當(dāng)足夠通用。類就是一個(gè)希望能夠復(fù)用的單元,因此,提出了一個(gè)“類生存期”。類生存期是與應(yīng)用生存期是交叉的。即就是說,類的標(biāo)識(shí)是應(yīng)用生存期的一個(gè)階段,但類生存期的步驟獨(dú)立于任一特殊應(yīng)用的開發(fā)。類的開發(fā)應(yīng)能完整地描述一個(gè)基本實(shí)體。而不僅僅考慮當(dāng)前正在開發(fā)的系統(tǒng)。類的定義一旦標(biāo)識(shí)了一個(gè)類,就給出了它的規(guī)格說明,其中包括類的實(shí)例可執(zhí)行的操作和它們的數(shù)據(jù)表示。對(duì)每一個(gè)類,無論是在哪一個(gè)階段標(biāo)識(shí)的,都是如此。對(duì)于那些使應(yīng)用與數(shù)據(jù)庫(kù)交互的類來說,其規(guī)格說明應(yīng)當(dāng)包括查找數(shù)據(jù)庫(kù)和向數(shù)據(jù)庫(kù)加入數(shù)據(jù)的行為。類的規(guī)格說明定義了施加于對(duì)象的數(shù)據(jù)存儲(chǔ)上的一組操作。這組操作應(yīng)工作在封裝在對(duì)象內(nèi)部的數(shù)據(jù)存儲(chǔ)上,或返回關(guān)于對(duì)象狀態(tài)的信息。操作的名字應(yīng)能反映這個(gè)操作本身的含義。類的設(shè)計(jì)與實(shí)現(xiàn)類的規(guī)格說明可指導(dǎo)對(duì)存放既存類的軟件庫(kù)進(jìn)行查找,這些既存類可用來提供為當(dāng)前應(yīng)用所需要的功能。三個(gè)可能的利用既存類的方向。開發(fā)過程可能依賴于這種查找的結(jié)果。

既存類的復(fù)用

從既存類進(jìn)行演化

從廢棄型進(jìn)行開發(fā)實(shí)現(xiàn)通過變量的聲明、操作界面的實(shí)現(xiàn)及支持界面操作的函數(shù)的實(shí)現(xiàn),可實(shí)現(xiàn)一個(gè)類的預(yù)期行為和狀態(tài)。實(shí)現(xiàn)是與語(yǔ)言有關(guān)的。一個(gè)好的面向?qū)ο笳Z(yǔ)言應(yīng)當(dāng)分離共有界面與其內(nèi)部實(shí)現(xiàn)。采取必要措施分別編譯界面和內(nèi)部表示。測(cè)試單個(gè)的類為測(cè)試提供了自然的單元。如果類的定義提供的界面比較狹窄,那么窮舉測(cè)試就有可能實(shí)現(xiàn)。類的測(cè)試在最抽象的層次開始,沿繼承關(guān)系繼續(xù)向下進(jìn)行。已經(jīng)測(cè)試過的部分不需要從新測(cè)試。重點(diǎn)放在對(duì)新類的測(cè)試和組裝測(cè)試。求精和維護(hù)這是一個(gè)在軟件生存期中最花費(fèi)時(shí)間的部分。傳統(tǒng)的維護(hù)活動(dòng)是針對(duì)應(yīng)用的,而求精過程是針對(duì)類,針對(duì)把類集成在一起的結(jié)構(gòu)。我們可以標(biāo)識(shí)抽象的抽象,使得繼承結(jié)構(gòu)通過一般化增加新的層次,即在既存的根類之上增加新的層次。概念的封裝和實(shí)現(xiàn)的隱蔽概念的封裝和實(shí)現(xiàn)的隱蔽,使得類具有更大的獨(dú)立性。在任一時(shí)刻都可以在類的界面上增加新的操作,并能夠修改實(shí)現(xiàn),以改進(jìn)性能,或引入原來設(shè)計(jì)中沒有的新服務(wù)。為便于類的調(diào)整,應(yīng)盡量做到定義與實(shí)現(xiàn)分離。對(duì)一個(gè)類的共有界面的實(shí)現(xiàn)所做的多次修改不應(yīng)影響利用它的那些類。四、面向?qū)ο蠓治雠c模型化面向?qū)ο蠓治鍪擒浖_發(fā)過程中的問題定義階段。這一階段最后得到的是對(duì)問題論域的清晰、精確的定義。分析階段包括兩個(gè)步驟:論域分析和應(yīng)用分析。它們都要標(biāo)識(shí)問題論域中的抽象。在分析中,需要

找到特定對(duì)象基于對(duì)象的公共特性組合它們標(biāo)識(shí)出對(duì)這個(gè)問題的抽象在分析階段中要標(biāo)識(shí)抽象之間的關(guān)系這些關(guān)系在應(yīng)用系統(tǒng)中常常用對(duì)象之間的消息來表示,叫做消息連接。在一個(gè)面向?qū)ο蟮膽?yīng)用中的控制流由兩部分構(gòu)成:每個(gè)單獨(dú)操作內(nèi)部的控制流對(duì)象之間的消息模式面向?qū)ο蠓治鲞^程分兩階段:論域分析應(yīng)用分析領(lǐng)域分析領(lǐng)域分析開發(fā)問題論域的模型考察問題領(lǐng)域內(nèi)的一個(gè)較寬的范圍,分析覆蓋的范圍應(yīng)比直接要解決的問題更多。建立大致的系統(tǒng)實(shí)現(xiàn)環(huán)境應(yīng)用分析應(yīng)用分析則根據(jù)特定應(yīng)用的需求進(jìn)行領(lǐng)域分析。應(yīng)用(或系統(tǒng))分析細(xì)化在領(lǐng)域分析階段所開發(fā)出來的信息,把注意力集中于當(dāng)前要解決的問題。語(yǔ)義數(shù)據(jù)模型語(yǔ)義數(shù)據(jù)模型是一種特別適用的建立構(gòu)成問題論域模型的技術(shù)。它基于實(shí)體—關(guān)系模型,并對(duì)這類模型進(jìn)行了擴(kuò)充和一般化。語(yǔ)義數(shù)據(jù)模型可以表達(dá)問題論域的內(nèi)涵,還可以表示復(fù)雜的對(duì)象和對(duì)象之間的關(guān)系。語(yǔ)義數(shù)據(jù)模型與面向?qū)ο蠓椒ㄍ獠磕P蛯臃从硲?yīng)用的外部現(xiàn)實(shí)世界的視圖,它體現(xiàn)了用戶對(duì)問題的理解。概念模型層考慮在外部模型層所標(biāo)識(shí)的實(shí)體之間的關(guān)系。這些關(guān)系都是可直接觀察到的交互關(guān)系。內(nèi)部模型層考慮實(shí)體的物理模型,就是我們生存期中的類設(shè)計(jì)階段。物理模型包括的屬性物理模型包括兩類屬性:

方法:對(duì)實(shí)體的行為模型化

數(shù)據(jù):對(duì)實(shí)體的狀態(tài)模型化在模型中方法分為兩種:共有的私有的在分析階段所標(biāo)識(shí)的屬性是描述性的,在語(yǔ)義數(shù)據(jù)模型中的關(guān)系一般化和特殊化關(guān)系可用來按層次漸增式地定義抽象(類)。低層抽象是高層抽象的特殊化。這種抽象層次構(gòu)成論域模型的基礎(chǔ)。例如,小汽車,卡車和公共汽車可以歸于更一般的概念汽車中。從這個(gè)較一般化的概念汽車可以定義其它較特殊的抽象:賽車,面包車和牽引車。聚合關(guān)系支持使用幾個(gè)其它較小和較簡(jiǎn)單的抽象來開發(fā)一個(gè)抽象。它相應(yīng)于一個(gè)記錄中成份的聲明。例如,一個(gè)航班可以有6個(gè)屬性:飛機(jī)編號(hào)、機(jī)組編號(hào)、離開和到達(dá)地點(diǎn)、起飛和降落時(shí)間。因此,航班類有一個(gè)聚合關(guān)系,它利用了表示飛機(jī)、人員、空間的類,并增加了時(shí)間窗口。關(guān)聯(lián)關(guān)系指定一個(gè)抽象做為其它抽象實(shí)例的包容(container)。關(guān)聯(lián)和聚合之間的差別在于組合實(shí)體的意圖。聚合指定一組實(shí)體中的某些元素做為一個(gè)類的組成,而關(guān)聯(lián)是指群集的相互有關(guān)聯(lián)的實(shí)體群。例如,一個(gè)部門包含有人,這樣一個(gè)部門關(guān)聯(lián)了所有被分配給這個(gè)部門的人。,這些人在系統(tǒng)其它地方也可能出現(xiàn)。OO分析與高層設(shè)計(jì)領(lǐng)域分析參與人員:領(lǐng)域?qū)<液拖到y(tǒng)分析員目的:標(biāo)識(shí)基本概念及領(lǐng)域特征,建立領(lǐng)域模型多種領(lǐng)域分析模型,如Goad的語(yǔ)義數(shù)據(jù)模型。應(yīng)用分析將領(lǐng)域模型適配于當(dāng)前的應(yīng)用中。對(duì)象建模OMT(如,三視點(diǎn)模型)高層設(shè)計(jì)確定系統(tǒng)結(jié)構(gòu),選擇解決方案,把任務(wù)分配給子系統(tǒng)。對(duì)象模型化技術(shù)OMT對(duì)象模型化技術(shù)把分析時(shí)收集的信息構(gòu)造在三類模型中,即對(duì)象模型、功能模型和動(dòng)態(tài)模型。這個(gè)模型化的過程是一個(gè)迭代過程。面向?qū)ο蠼DP褪且环N思考工具(圖示符號(hào)和組織規(guī)則),幫助我們把知識(shí)(術(shù)語(yǔ)、概念)規(guī)范地表示出來。OO軟件的開發(fā)所要建立的三種模型:對(duì)象模型:描述系統(tǒng)的數(shù)據(jù)結(jié)構(gòu)動(dòng)態(tài)模型:描述系統(tǒng)的控制結(jié)構(gòu)功能模型:描述系統(tǒng)的功能整個(gè)開發(fā)過程中,以上模型不斷得以完善OOA,構(gòu)造出完全獨(dú)立于實(shí)現(xiàn)的應(yīng)用域模型OOD,把求解域的結(jié)構(gòu)逐漸加入到模型中OOP,對(duì)應(yīng)用域和求解域的結(jié)構(gòu)進(jìn)行編碼實(shí)現(xiàn),并進(jìn)行測(cè)試驗(yàn)證各種面向?qū)ο蠓椒▽W(xué)Coad/YourdonOOA/OOD方法Booch(基于原型的遞歸/并行模型)RumbaughOMT(多角度刻畫問題域)JacbsonOOSE(強(qiáng)調(diào)usecase驅(qū)動(dòng))UML面向?qū)ο蠹夹g(shù)的集大成者對(duì)象模型是三個(gè)模型中最關(guān)鍵的一個(gè)模型,它的作用是描述系統(tǒng)的靜態(tài)結(jié)構(gòu),包括構(gòu)成系統(tǒng)的類和對(duì)象,它們的屬性和操作,及它們之間的關(guān)系。在OMT中,類與類之間的關(guān)系叫做關(guān)聯(lián)。關(guān)聯(lián)代表一組存在于兩個(gè)或多個(gè)對(duì)象之間的、具有相同結(jié)構(gòu)和含義的具體連接。關(guān)聯(lián)可以是物理的,也可以是邏輯的。聚合,代表整體與部分的關(guān)系,這是一種特殊形式的關(guān)聯(lián)。限定,用以對(duì)關(guān)聯(lián)的含義做某種約束。角色,用來說明關(guān)聯(lián)的一端。由于多數(shù)關(guān)聯(lián)具有兩個(gè)端點(diǎn),因而涉及到兩個(gè)角色。連接屬性附加說明對(duì)象之間的連接。對(duì)象模型:定義類及UML符號(hào)類名是一類對(duì)象的名字類的命名要恰當(dāng)、明確、簡(jiǎn)潔使用標(biāo)準(zhǔn)術(shù)語(yǔ)使用具有明確含義的名詞必要時(shí)使用名詞性短語(yǔ)對(duì)象模型:定義屬性及UML描述UML描述屬性的語(yǔ)法格式可見性屬性名:類型名=初值{性質(zhì)串}#姓名:string=“l(fā)iuxiang”{readonly}UML規(guī)定三種可見性(可訪問性)+(Public)-(Private)#(Protected)可見性(可訪問性)不能默認(rèn)定義{性質(zhì)串}明確列出屬性所有可能的取值或?qū)傩缘男再|(zhì)類的作用域?qū)傩裕搭愖兞浚ㄔ擃惖乃袑?duì)象共享)C++中的靜態(tài)數(shù)據(jù)成員具有作用域?qū)傩园l(fā)貨單類的類變量“貨單數(shù)”,用于統(tǒng)計(jì)發(fā)貨單的總數(shù),在該類所有對(duì)象中這個(gè)屬性的值都是一樣的。其UML表示為: +貨單數(shù):int對(duì)象模型:定義服務(wù)及UML描述UML描述服務(wù)的語(yǔ)法格式可見性操作名(參數(shù)表):返回值類型{性質(zhì)串}+main(name:str,age:int):int{readonly}UML規(guī)定可見性(可訪問性)與屬性相同Public(+)Private(-)Protected(#){性質(zhì)串}用于明確地列出服務(wù)的性質(zhì)對(duì)象模型:定義類之間的關(guān)系關(guān)聯(lián):反映對(duì)象間相互依賴、相互作用的關(guān)系聚集:組合關(guān)系,“整體—部分”泛化(繼承):歸納關(guān)系,“一般—特殊”依賴和細(xì)化1、用UML表示關(guān)聯(lián)普通關(guān)聯(lián)關(guān)聯(lián)的角色限定關(guān)聯(lián)關(guān)聯(lián)類普通關(guān)聯(lián)TeacherComputer

1..

**使用被使用丈夫妻子結(jié)婚關(guān)聯(lián)的角色人限定關(guān)聯(lián)文件名目錄文件關(guān)聯(lián)類按鈕電梯隊(duì)列電梯控制器*42、用UML表示聚集共享聚集組合聚集人課題組*1..

*成員文本框列表框按鈕菜單窗體****包含3、用UML表示泛化(繼承)普通泛化受限泛化多重繼承不相交繼承完全繼承不完全繼承普通泛化船Drive()交通工具{abstract}Drive(){abstract}汽車Drive()驅(qū)動(dòng)車輪驅(qū)動(dòng)螺旋槳受限泛化(繼承)船Drive()交通工具{abstract}Drive(){abstract}汽車Drive()水陸兩用動(dòng)力裝置{多重}4、用UML表示依賴和細(xì)化依賴關(guān)系友元依賴關(guān)系細(xì)化關(guān)系類B類A《友元》分析類設(shè)計(jì)類對(duì)象模型實(shí)例P238,圖10.6動(dòng)態(tài)模型要想對(duì)一個(gè)系統(tǒng)了解得比較清楚,還應(yīng)當(dāng)考察在任何時(shí)刻對(duì)象及其關(guān)系的改變。系統(tǒng)的這些涉及時(shí)序和改變狀況用動(dòng)態(tài)模型來描述。動(dòng)態(tài)模型著重于系統(tǒng)的控制邏輯。它包括兩個(gè)圖,一是狀態(tài)圖,一是事件追蹤圖。動(dòng)態(tài)模型:狀態(tài)圖描繪對(duì)象的狀態(tài)描述觸發(fā)狀態(tài)轉(zhuǎn)換的事件描述對(duì)象響應(yīng)事件而作出的行為。狀態(tài)圖與事件追蹤圖的關(guān)系狀態(tài)圖敘述一個(gè)對(duì)象的個(gè)體行為,事件追蹤圖則給出多個(gè)對(duì)象所表現(xiàn)出來的集體行為。它們從不同側(cè)面來說明同一系統(tǒng)的行為。例如,一個(gè)事件追蹤圖指出某一對(duì)象在接受一個(gè)事件之后發(fā)出另一事件,同一行為在此對(duì)象的狀態(tài)圖中也應(yīng)當(dāng)有所表示。動(dòng)態(tài)模型:狀態(tài)對(duì)某一時(shí)刻中屬性的概括,是對(duì)象屬性值的抽象。狀態(tài)規(guī)定了對(duì)象對(duì)事件的響應(yīng)方式;不同的狀態(tài)響應(yīng)相同的事件所產(chǎn)生的行為將不同。狀態(tài)具有持續(xù)性。定義狀態(tài)時(shí),忽略那些不影響對(duì)象行為的屬性。例一“棧”的三個(gè)狀態(tài):空、滿、半滿行為。例二:電話的狀態(tài)圖(P57)。動(dòng)態(tài)模型:事件某個(gè)特定時(shí)刻所發(fā)生的事情,是對(duì)現(xiàn)實(shí)世界中的“事情”的抽象,事件的發(fā)生會(huì)引起對(duì)象從一種狀態(tài)瞬間轉(zhuǎn)換到另一種狀態(tài)。事件由一個(gè)對(duì)象發(fā)出,另一個(gè)對(duì)象接受。事件一個(gè)事件發(fā)生在某一時(shí)刻每個(gè)事件都是單獨(dú)發(fā)生的我們建立事件類,并給每個(gè)事件一個(gè)名字,以指明共同結(jié)構(gòu)和行為。事件從一個(gè)對(duì)象向另一個(gè)對(duì)象傳送信息。有些事件類可能傳送的是簡(jiǎn)單的信號(hào)“要發(fā)生某件事”,而有些事件類則可能傳送的是數(shù)據(jù)值。由事件傳送的數(shù)據(jù)值叫做屬性。列車出發(fā)(線路、班次、城市)撳下鼠標(biāo)按鈕(按鈕、位置)拿起電話受話器數(shù)字撥號(hào)(數(shù)字)

事件追蹤圖事件追蹤圖側(cè)重于說明發(fā)生于系統(tǒng)執(zhí)行過程中的一個(gè)特定“場(chǎng)景”。場(chǎng)景也叫做腳本,是完成系統(tǒng)某個(gè)功能的一個(gè)事件序列。場(chǎng)景通常起始于一個(gè)系統(tǒng)外部的輸入事件,結(jié)束于一個(gè)系統(tǒng)外部的輸出事件,它可以包括發(fā)生在這個(gè)期間的系統(tǒng)所有的內(nèi)部事件。動(dòng)態(tài)模型:行為指對(duì)象達(dá)到某種狀態(tài)時(shí)所做的一系列處理操作。狀態(tài)圖的表示非空空滿狀態(tài)1do:行為1狀態(tài)2do:行為2初始事件事件1[條件]結(jié)束事件動(dòng)態(tài)模型:分析建模步驟評(píng)估所有的實(shí)例以完全理解系統(tǒng)中的交互序列;標(biāo)識(shí)驅(qū)動(dòng)交互序列的事件,理解這些事件是如何和特定對(duì)象關(guān)聯(lián)的;為每個(gè)實(shí)例創(chuàng)建事件軌跡;創(chuàng)建狀態(tài)圖;復(fù)審行為模型,驗(yàn)證其精確性和一致性。功能模型功能模型表明,通過計(jì)算,從輸入數(shù)據(jù)能得到什么樣的輸出數(shù)據(jù),不考慮參加計(jì)算的數(shù)據(jù)按什么時(shí)序執(zhí)行。功能模型由多個(gè)數(shù)據(jù)流圖組成,它們指明從外部輸入,通過操作和內(nèi)部存儲(chǔ),直到外部輸出,這整個(gè)的數(shù)據(jù)流情況。功能模型中所有的數(shù)據(jù)流圖往往形成一個(gè)層次結(jié)構(gòu)。在這個(gè)層次結(jié)構(gòu)中,一個(gè)數(shù)據(jù)流圖中的過程可以由下一層的數(shù)據(jù)流圖做進(jìn)一步的說明。一般來講,高層的過程相應(yīng)于作用在聚合對(duì)象上的操作,而低層的過

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論