OO方法學(xué)引論(09)_第1頁(yè)
OO方法學(xué)引論(09)_第2頁(yè)
OO方法學(xué)引論(09)_第3頁(yè)
OO方法學(xué)引論(09)_第4頁(yè)
OO方法學(xué)引論(09)_第5頁(yè)
已閱讀5頁(yè),還剩79頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、第十八講面向?qū)ο蠓椒▽W(xué)本講的主要內(nèi)容一、面向?qū)ο蠓椒▽W(xué)概述過(guò)程性開(kāi)發(fā)模式。根據(jù)算法步驟的要求開(kāi)發(fā),它貫穿于過(guò)程,提供過(guò)程所要求操作的信息。,這組全局變量保存狀態(tài)的值,把它們從一個(gè)過(guò)程傳送到另一個(gè)過(guò)程。與人類所習(xí)慣的思維方法一致。穩(wěn)定性好,控制變化性客觀世界中,實(shí)體結(jié)構(gòu)相對(duì)穩(wěn)定減弱“語(yǔ)義斷層”,更好的刻畫問(wèn)題域,減少了映射誤差便于復(fù)用可維護(hù)性好,易于理解、測(cè)試、調(diào)試等。消除或減少了軟件開(kāi)發(fā)各個(gè)階段的鴻溝,適應(yīng)于大型軟件產(chǎn)品的開(kāi)發(fā)。人們認(rèn)識(shí)世界的三個(gè)構(gòu)造法則認(rèn)識(shí)和區(qū)分認(rèn)識(shí)和區(qū)分對(duì)象及其屬性對(duì)象及其屬性。認(rèn)識(shí)和區(qū)分認(rèn)識(shí)和區(qū)分整體對(duì)象及其組成部分整體對(duì)象及其組成部分。認(rèn)識(shí)和區(qū)分認(rèn)識(shí)和區(qū)分不同對(duì)象類的形

2、成不同對(duì)象類的形成。OO方法正好適應(yīng)了以上法則對(duì)數(shù)據(jù)和操作封裝而形成一個(gè)統(tǒng)一體;問(wèn)題空間和解空間得到進(jìn)一步的“擬合”,它們的結(jié)構(gòu)十分一致;解空間中的對(duì)象行為更豐富,削弱了“語(yǔ)義斷層”。Tendency for Change when Using OO Paradigm (Jacobson et al. 1995)Characteristic of software product/projectProbability for changeObjects derived from the application LowLong-lived information structuresLowPas

3、sive objects attributeMedium Sequences of behaviorMediumInterface with the outside worldHighFunctionality HighCharacteristics of OO Representation Identityname, reference, handleAbstractionClassificationEncapsulationInheritancePolymorphismPersistence Characteristics of OO Development Process Be cons

4、istency of terminologyBe consistency of the problem and the solution were described in same terms : classes, objects methods, attributes, and behaviors. Be consistency of perspectiveStatic viewsDynamic viewsRestrictions 3、噴泉模型、噴泉模型(P199, 圖圖9.1)二、面向?qū)ο蟮母拍畛橄笮?Abstraction對(duì)象 Object類 Class消息 Message繼承性 In

5、heritance封裝性 Encapsulation多態(tài)性 Polymorphism重載 Overloading面向?qū)ο蠹夹g(shù)Coad和Yourdon給出了一個(gè)定義:“”。如果一個(gè)軟件系統(tǒng)是使用這樣 4 個(gè)概念設(shè)計(jì)和實(shí)現(xiàn)的,則我們認(rèn)為這個(gè)軟件系統(tǒng)是面向?qū)ο蟮摹R粋€(gè)面向?qū)ο蟮某绦虻拿恳怀煞輵?yīng)是,計(jì)算是通過(guò)和來(lái)執(zhí)行的。 What is Object-Oriented?Object orientation is an approach to software development that organizes both the problem and its solution as a collec

6、tion of discrete objects;It is a kind of representation that describe objects data structure and behavior.It is a kind of modeling technology.對(duì)象 Object任何事物皆對(duì)象,其形象表示(任何事物皆對(duì)象,其形象表示(P200P200圖)圖)對(duì)象在不同層上的定義對(duì)象在不同層上的定義是面向?qū)ο箝_(kāi)發(fā)模式的。每個(gè)對(duì)象可用和來(lái)定義。是類所定義的數(shù)據(jù),是實(shí)體性質(zhì)的抽象,類實(shí)例都有其特有的屬性值。一般只能。又稱為方法或服務(wù),它,若通過(guò)消息傳遞,還可以為其它對(duì)象使用。對(duì)

7、象所能執(zhí)行的,即類中所定義的服務(wù)。它是對(duì)操作算法和響應(yīng)消息辦法的描述。Box Representing an Objects Name, Attributes, and BehaviorsOperationMethodServiceReferenceHandleState ElephantColor : textNumber of tusks : integerWeight : floatHeight : floatMove_to (location)Wash (date)Feed (amount, date, time) 對(duì)象的特點(diǎn)以數(shù)據(jù)為中心;對(duì)象是相對(duì)主動(dòng)的;屬性和操作封裝,信息是隱蔽的

8、。對(duì)象獨(dú)立處理自身的數(shù)據(jù),并通過(guò)消息傳遞進(jìn)行通信,具有并行的性質(zhì)高模塊獨(dú)立性,對(duì)象是OO軟件的基本模塊,低耦合,高內(nèi)聚。對(duì)象具有唯一識(shí)別的功能,行為比較豐富對(duì)象必須參與一個(gè)或多個(gè)對(duì)象類在一個(gè)類中,每個(gè)都是 (Instance),它們都可使用類中提供的函數(shù)。對(duì)象的狀態(tài)則包含在它的實(shí)例變量,即實(shí)例的屬性中。 Class類的定義包括和。類定義可以視為一個(gè)具有類似特性與共同行為的對(duì)象的,可用來(lái)產(chǎn)生對(duì)象。Forming a HierarchyDiesel FuelOctane (辛烷值)Cost_per_gallonAmount_remaining( )Auto FuelOctane (辛烷值)Cost

9、_per_gallonAmount_remaining( )FuelOctaneCost_per_gallonAmount_remaining( )Diesel Fuel Auto Fuel Abstract class消息 Message消息是一個(gè)對(duì)象與另一個(gè)對(duì)象的通信單元,是要求某個(gè)對(duì)象執(zhí)行類中定義的某個(gè)操作的規(guī)格說(shuō)明。(可能是空的),并。一個(gè)對(duì)象接收的消息則調(diào)用消息中指定的,并將。 Quadrilateral類的每個(gè)對(duì)象有同樣的一組實(shí)例變量和方法。就這個(gè)意義來(lái)講,類Quadrilateral給我們提供了一個(gè)模板,表示了所有四邊形對(duì)象。類常常可看做是一個(gè)的實(shí)現(xiàn)。但更合適的是把類看做是某。類

10、的實(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ì)象存取。是使用已存在的定義做為基礎(chǔ)建立新定義的技術(shù)。新類的定義可以是和的組合。新類復(fù)用既存的定義,而。可當(dāng)做來(lái)引用,則相應(yīng)地可當(dāng)做來(lái)引用。使用繼承設(shè)計(jì)一個(gè)新類,可以視為描述一個(gè)新的對(duì)象集,它是既存類所描述對(duì)象集的子集合。這個(gè)新的子集合可以認(rèn)為是。類是類的特殊化。是限制為四條邊的多邊形。我們還可以進(jìn)一步地把類特殊化為 。類的界面可以等同于類的界面,而類的界面

11、又與類的界面相同。新類的界面還可以被看做是既存類界面的一個(gè)。例如,從一個(gè)既存的類派生的類可能不僅是類子集合定義的特殊化,而且還可能在新類的界面中引入新的能力。在類的繼承層次中,Quadrilateral的實(shí)際參數(shù)可以替換Polygon的形式參數(shù)。類Quadrilateral的界面與類Polygon的界面是相容的Quadrilateral的界面可響應(yīng)Polygon界面的所有消息。 類層次的結(jié)構(gòu)繼承人ID:int地址:str教師教師證:int姓名:str學(xué)生學(xué)號(hào):int校名:str大學(xué)生專業(yè):int入學(xué)年月:Date小學(xué)生專業(yè):int入學(xué)年月:Date類層次的結(jié)構(gòu)繼承人ID:int姓名:str學(xué)生

12、學(xué)號(hào):int校名:str大學(xué)生專業(yè):int入學(xué)年月:人學(xué)生大學(xué)生 ID:XXXX姓名:XXX學(xué)號(hào):980001校名:合工大專業(yè):計(jì)算機(jī)入學(xué)年月:199809實(shí)例:一位大學(xué)生多態(tài)性與重載多態(tài)性含義把相同的操作施加于不同類型的對(duì)象,獲得不同的行為效果和結(jié)果。在C+中,多態(tài)性是通過(guò)虛函數(shù)(Virtual)實(shí)現(xiàn)的。動(dòng)態(tài)聯(lián)編(Dynamic binding),滯后聯(lián)編。重載 Overloading運(yùn)算符重載:同一運(yùn)算符作用于多種數(shù)據(jù)類型上。函數(shù)名重載:在同一作用域內(nèi)的多個(gè)參數(shù)特征不同的函數(shù)可以使用相同的函數(shù)名字。靜態(tài)聯(lián)編,先前聯(lián)編。動(dòng)態(tài)聯(lián)編的例子打印輸出堆棧S的內(nèi)容:for i=1 to top do

13、case S i .typeInteger : Print_Integer(S i .Object);Float :Print_Char(S i .Object) ;String :Print_ String(S i .Object) ;Boolean : Print_ Boolean (S i .Object);利用動(dòng)態(tài)聯(lián)編后,設(shè)計(jì)者不須考慮數(shù)據(jù)的結(jié)構(gòu)合類型:for i=1 to top do Print( S i );三、三、OO開(kāi)發(fā)過(guò)程開(kāi)發(fā)過(guò)程領(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)域模型適

14、配于當(dāng)前的應(yīng)用中。對(duì)象建模OMT(如,三視點(diǎn)模型)高層設(shè)計(jì)設(shè)計(jì)系統(tǒng)結(jié)構(gòu),選擇解決方案,把任務(wù)分配給子系統(tǒng)。面向?qū)ο蠼8鞣N面向?qū)ο蠓椒▽W(xué)對(duì)象模型:定義類及UML符號(hào)(P208)類名是一類對(duì)象的名字類的命名要恰當(dāng)、明確、簡(jiǎn)潔使用標(biāo)準(zhǔn)術(shù)語(yǔ)使用具有明確含義的名詞必要時(shí)使用名詞性短語(yǔ)類名屬性服務(wù)對(duì)象模型:定義屬性及UML描述UML描述屬性的語(yǔ)法格式可見(jiàn)性 屬性名:類型名=初值性質(zhì)串# 姓名:string = “l(fā)iuxiang” read onlyUML規(guī)定三種可見(jiàn)性(可訪問(wèn)性)+ (Public)- (Private)# (Protected)可見(jiàn)性(可訪問(wèn)性)不能默認(rèn)定義性質(zhì)串明確列出屬性所有可能

15、的取值或?qū)傩缘男再|(zhì)對(duì)象模型:定義服務(wù)及UML描述UML描述服務(wù)的語(yǔ)法格式可見(jiàn)性 操作名(參數(shù)表):返回值類型性質(zhì)串+ main(name:str,age:int): intread onlyUML規(guī)定可見(jiàn)性(可訪問(wèn)性)與屬性相同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)的角色人限定

16、關(guān)聯(lián)文件名目錄文件關(guān)聯(lián)類按鈕電梯隊(duì)列電梯控制器*42、用UML表示聚集共享聚集組合聚集人課題組*1. *成員文本框列表框按鈕菜單窗體*包含3、用UML表示泛化(繼承)普通泛化受限泛化多重繼承不相交繼承完全繼承不完全繼承普通泛化船Drive( )交通工具abstractDrive( )abstract汽車Drive( )驅(qū)動(dòng)車輪驅(qū)動(dòng)螺旋槳受限泛化(繼承)船Drive( )交通工具abstractDrive( )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)模型:作用與表示作

17、用:著重于系統(tǒng)的控制邏輯和時(shí)序關(guān)系。表示:由狀態(tài)圖和事件跟蹤圖表示。動(dòng)態(tài)模型:狀態(tài)圖描繪對(duì)象的狀態(tài)描述觸發(fā)狀態(tài)轉(zhuǎn)換的事件描述對(duì)象響應(yī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ì)象接受。動(dòng)態(tài)模型:行為指對(duì)象達(dá)到某種

18、狀態(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)證其精確性和一致性。功能模型表示方法:數(shù)據(jù)流圖,use case作用從不同的角度對(duì)對(duì)象模型和行為模型的補(bǔ)充定義“處理”,強(qiáng)調(diào)系統(tǒng)應(yīng)該“做什么”功能模型:用例圖系統(tǒng)用例行為者用例之間的關(guān)系擴(kuò)展關(guān)系使用關(guān)系自動(dòng)售貨機(jī)系統(tǒng)售貨供貨取貨款顧客供貨人收銀員功能模型:含擴(kuò)展和使用的用例圖自動(dòng)售貨機(jī)系統(tǒng)售貨供貨取貨款顧客供貨人收銀員售散裝飲料打開(kāi)機(jī)器關(guān)閉機(jī)器打開(kāi)機(jī)器關(guān)閉機(jī)器擴(kuò)展使用使用功能模型:用例建模尋找行為者尋找用例功能模型:尋找行為者誰(shuí)將使用系統(tǒng)的主要功能(主行為者)?誰(shuí)需要借助系統(tǒng)的支持來(lái)完成日常工作?誰(shuí)來(lái)維護(hù)和管理系統(tǒng)(副行為者)?系統(tǒng)將控制

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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)論