153面向?qū)ο蟮拈_發(fā)方法_第1頁
153面向?qū)ο蟮拈_發(fā)方法_第2頁
153面向?qū)ο蟮拈_發(fā)方法_第3頁
153面向?qū)ο蟮拈_發(fā)方法_第4頁
153面向?qū)ο蟮拈_發(fā)方法_第5頁
已閱讀5頁,還剩68頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、面向?qū)ο蟮拈_發(fā)方法 第一節(jié) 面向?qū)ο蟾攀?第二節(jié) 面向?qū)ο蟮幕靖拍?第三節(jié) 面向?qū)ο蠓治觯╫oa) 第四節(jié) 面向?qū)ο笤O(shè)計(jì)(ood) 第五節(jié) 面向?qū)ο缶幊痰谝还?jié) 面向?qū)ο蟾攀鲆?、發(fā)展概述 面向?qū)ο蟛⒎鞘且粋€(gè)新的概念,實(shí)際上它已有30多年的歷史。尋其根源可追溯到60年代的挪威,當(dāng)時(shí)挪威計(jì)算中心的kristen nygaard和ole-johan dahl開發(fā)了一種稱作simula67的語言。simula67首次引入了類、協(xié)同程序和子類的概念,這很象今天的面向?qū)ο笳Z言。 70年代中期,xerox palo alto研究中心的研究人員設(shè)計(jì)了smalltalk語言,該語言的每個(gè)元素都被當(dāng)作一個(gè)對(duì)象來實(shí)

2、現(xiàn),其程序設(shè)計(jì)環(huán)境及相關(guān)的各個(gè)方面都是面向?qū)ο蟮摹5谝还?jié) 面向?qū)ο蟾攀?但是,面向?qū)ο蟮耐茝V很慢。例如:samlltalk的成果直到1981年8月因byte雜志的介紹才為外界所知,許多軟件開發(fā)人員了解samlltalk時(shí),都把它看作是一個(gè)窗口系統(tǒng),而不是程序設(shè)計(jì)技術(shù)的一次革命。 80年代,c成為很受歡迎的程序設(shè)計(jì)語言,它不僅可用在微機(jī)上,還可用在多種結(jié)構(gòu)的系統(tǒng)和環(huán)境中。80年代早期,at&t貝爾實(shí)驗(yàn)室的bjarne stroustrup把c語言擴(kuò)展為支持面向?qū)ο蟪绦蛟O(shè)計(jì)的c+。在c+中,程序員可以在其熟悉的語言環(huán)境下學(xué)習(xí)掌握面向?qū)ο蟮某绦蛟O(shè)計(jì)技術(shù),而不必去探究一種新的語言和環(huán)境。第一節(jié)

3、 面向?qū)ο蟾攀?自90年代以來,軟件與硬件之間的差距至少有兩代處理器之多,并且這種差距還在增大。當(dāng)軟件系統(tǒng)變得更加復(fù)雜時(shí),常規(guī)軟件工具、技術(shù)和概念已不足以應(yīng)付,從而使軟件開發(fā)者陷入了困境。但面向?qū)ο蟮姆椒軌蚩刂栖浖膹?fù)雜性,從而促進(jìn)了面向?qū)ο蟮陌l(fā)展,掀起了一股“面向?qū)ο蟆睙帷5谝还?jié) 面向?qū)ο蟾攀龆?、研究領(lǐng)域 目前國內(nèi)外關(guān)于面向?qū)ο蟮难芯款I(lǐng)域主要在以下幾個(gè)方面:1.理論:包括方法、面向?qū)ο笤O(shè)計(jì)的本質(zhì)以及語義模型的研究。2.語言:包括現(xiàn)有面向?qū)ο蟮某绦蛟O(shè)計(jì)語言的研究、設(shè)計(jì)新的面向?qū)ο蟮某绦蛘Z言,將面向?qū)ο蟮脑O(shè)計(jì)思想引入其它語言(如ada,prolog,lisp,c,pascal,foxpro等)

4、3.實(shí)現(xiàn):包括體系結(jié)構(gòu)的支撐、編譯與解釋、其它特殊技術(shù)等。4.環(huán)境:包括面向?qū)ο蟮能浖_發(fā)環(huán)境的設(shè)計(jì)與實(shí)現(xiàn)。第一節(jié) 面向?qū)ο蟾攀?.重用:為了實(shí)現(xiàn)重用,需要研究對(duì)象的規(guī)格說明等。6.原型:面向?qū)ο蟮脑O(shè)計(jì)方法如何用于實(shí)現(xiàn)快速原型。7.應(yīng)用:將面向?qū)ο蟮脑O(shè)計(jì)方法用于商業(yè)、教育及科學(xué)等實(shí)際問題的處理中。8.其它方面:將面向?qū)ο蟮脑O(shè)計(jì)方法用到數(shù)據(jù)庫、操作系統(tǒng)、知識(shí)工程、人工智能、自然語言處理等其它領(lǐng)域。第二節(jié) 面向?qū)ο蟮幕靖拍钜弧?duì)象1.定義 對(duì)象是和有數(shù)據(jù)及可對(duì)這些數(shù)據(jù)施加的操作結(jié)合在一起所構(gòu)成的獨(dú)立單位的總稱,是具有一定知識(shí)和處理能力的獨(dú)立個(gè)體。它可以是具體的物理實(shí)體,如一個(gè)文件;也可是是人為抽

5、象概念的,如多任務(wù)操作系統(tǒng)中的調(diào)度策略。 從面向?qū)ο蟪绦蛟O(shè)計(jì)的角度看:對(duì)象是具有相同狀態(tài)的一組操作的集合。 從信息模擬的角度看:對(duì)象是對(duì)問題域中某個(gè)東西的抽象,這種抽象反映了系統(tǒng)保存有關(guān)這個(gè)東西的信息和與它交互的能力,即對(duì)象是對(duì)屬性值和操作的封裝。第二節(jié) 面向?qū)ο蟮幕靖拍?從形式化角度看:對(duì)象:=其中:id是對(duì)象的標(biāo)識(shí)或名字,ms是對(duì)象中的數(shù)據(jù)集合,ds是對(duì)象中的數(shù)據(jù)結(jié)構(gòu),mi是對(duì)象受理的消息名集合。第二節(jié) 面向?qū)ο蟮幕靖拍?.特點(diǎn) 標(biāo)識(shí)唯一性:指對(duì)象是可區(qū)分的,并且由對(duì)象的內(nèi)在本質(zhì)來區(qū)分,而不是通過描述來區(qū)分。 分類性:指可以將具有相同數(shù)據(jù)結(jié)構(gòu)(屬性)和行為(操作)的對(duì)象抽象成類。 多態(tài)

6、性:指同一個(gè)操作可以是不同對(duì)象的行為。 封閉性:從外面看只能看到對(duì)象的外部特性,即能夠受理哪些信息,具有哪些處理能力;對(duì)象的內(nèi)部,即處理能力的實(shí)行和內(nèi)部狀態(tài),對(duì)外是不可見的。從外面不能直接使用對(duì)象的處理能力,也不能直接修改其內(nèi)部狀態(tài),對(duì)象的內(nèi)部狀態(tài)只能由其自身改變。第二節(jié) 面向?qū)ο蟮幕靖拍?動(dòng)態(tài)產(chǎn)生性:對(duì)象是在系統(tǒng)執(zhí)行過程中根據(jù)需要而動(dòng)態(tài)產(chǎn)生的。 一定的“智力”性:對(duì)象具有一定的“智力”,表現(xiàn)在能夠解釋傳來的信息,理解由消息帶來的要求,并獨(dú)立第二節(jié) 面向?qū)ο蟮幕靖拍?.表現(xiàn)形式 外部實(shí)體(如一個(gè)系統(tǒng)、設(shè)備、人等):產(chǎn)生或消耗一個(gè)基于計(jì)算機(jī)的系統(tǒng)所用的信息 物(如報(bào)告、顯示、信件、信號(hào)等):

7、問題信息域的一部分。 事件(如一次信號(hào)傳輸或一系列機(jī)器人動(dòng)作的完成):發(fā)生于系統(tǒng)操作的有關(guān)時(shí)刻。 角色(如管理者、工程師等):由與系統(tǒng)交互作用的人來扮演。 組織單位(如部門、小組等):與應(yīng)用相關(guān)的機(jī)構(gòu)。第二節(jié) 面向?qū)ο蟮幕靖拍?場(chǎng)所(如制作平臺(tái)、辦公室等):使問題和系統(tǒng)的整個(gè)運(yùn)作有固定的位置。 結(jié)構(gòu)(如傳感器、計(jì)算機(jī)等):定義一類對(duì)象或定義對(duì)象的相關(guān)類第二節(jié) 面向?qū)ο蟮幕靖拍疃㈩?.定義 類是對(duì)象類的略寫,是對(duì)象的抽象,是一種對(duì)象模型,它描述了屬于該對(duì)象類型的所有對(duì)象的性質(zhì)。 例如:integer是一個(gè)整數(shù)類,它描述了所有整數(shù)的性質(zhì)。第二節(jié) 面向?qū)ο蟮幕靖拍?.實(shí)現(xiàn) 類是關(guān)于對(duì)象性質(zhì)的

8、描述,包括外部特性和內(nèi)部實(shí)現(xiàn)兩個(gè)方面。類通過描述消息模式及其相應(yīng)的處理能力定義類的外部屬性,通過描述內(nèi)部狀態(tài)的表現(xiàn)形式及固有處理能力的實(shí)現(xiàn)定義類的內(nèi)部實(shí)現(xiàn)。類的實(shí)現(xiàn)圖示消息模式1:處理能力1消息模式n:處理能力n消息模式1 處理能力1的實(shí)現(xiàn)消息模式n 處理能力n的實(shí)現(xiàn)內(nèi)部狀態(tài)的表現(xiàn)形式外部特性內(nèi)部實(shí)現(xiàn)第二節(jié) 面向?qū)ο蟮幕靖拍?.父類、子類、超類 父類:一個(gè)類的上層是父類。 子類:一個(gè)類的下層是子類。 超類:如果c2是c1的子類,c3是c2的子類,則c1是c3的超類。4.描述類名屬性、方法等第二節(jié) 面向?qū)ο蟮幕靖拍钊?、?shí)例 實(shí)例是某個(gè)具體類所描述的一個(gè)具體對(duì)象。例如:“張三”、“李四”是類“

9、中國人”的實(shí)例。 對(duì)象既可以是一個(gè)具體的對(duì)象,也可以泛指一般的對(duì)象;而實(shí)例只能是一個(gè)具體的對(duì)象。第二節(jié) 面向?qū)ο蟮幕靖拍钏?、屬?屬性是類中對(duì)象所具有的數(shù)據(jù)值,是對(duì)對(duì)象的描述。如對(duì)象person的屬性有姓名、年齡、體重等。 不同對(duì)象的同一屬性可以具有相同或不同的屬性值。如張三的年齡為19,李四的年齡為20。張三、李四是兩個(gè)不同的對(duì)象,他們共同屬性“年齡”的值不同。 屬性值應(yīng)該指的是純粹的數(shù)據(jù)值,而不能指對(duì)象。 屬性表示在類圖中的第二部分。每個(gè)屬性名后均可附加一些說明,諸如類型和缺省值之類。第二節(jié) 面向?qū)ο蟮幕靖拍钗?、操作和方?操作以某種方式改變對(duì)象,即改變對(duì)象包含的一個(gè)或多個(gè)屬性值。 對(duì)

10、象所能執(zhí)行的操作稱為方法,也就是類中所定義的服務(wù)。方法描述了對(duì)象執(zhí)行操作的算法、響應(yīng)消息的操作。 每個(gè)操作都有一目標(biāo)對(duì)象作為其隱含參數(shù),操作的行為取決于其目標(biāo)對(duì)象所歸屬的類。對(duì)象“知道”其所歸屬的類,所以能正確地實(shí)現(xiàn)該操作。 同一操作可適用于不同的類。操作的多態(tài)性指的是在不同的類中,同一操作的形式不同。第二節(jié) 面向?qū)ο蟮幕靖拍畈僮饕话惴譃槿齻€(gè)類型1. 以某種方式處理數(shù)據(jù)的操作:如添加、刪除、修改、選取等。2. 執(zhí)行一次計(jì)算的操作3. 監(jiān)控一個(gè)對(duì)象的操作第二節(jié) 面向?qū)ο蟮幕靖拍盍?、消?消息是用來請(qǐng)求對(duì)象執(zhí)行某一處理或回答某一要求的信息,是對(duì)象之間建立的一種通信機(jī)制,它統(tǒng)一了數(shù)據(jù)流和控制流。

11、 通常一個(gè)消息由三部分組成: 接收消息的對(duì)象 消息標(biāo)識(shí)符(即消息名) 零個(gè)或多個(gè)變?cè)纾簃ycircle.show(green) mycircle是接收消息的對(duì)象的名字,show是消息名,green是消息的變?cè)5诙?jié) 面向?qū)ο蟮幕靖拍?如何要求對(duì)象完成一定的處理動(dòng)作?對(duì)象間如何進(jìn)行聯(lián)系?所有這一切都只能通過消息傳遞來實(shí)現(xiàn)。 傳遞消息的對(duì)象稱為發(fā)送者,接受消息的對(duì)象稱為接受者。 消息中只包含傳遞者的要求,它告訴接受者需要哪些處理,但并不指示接受者應(yīng)該怎樣完成這些處理。 消息完全由接受者解釋,接受者獨(dú)立決定采用什么方式完成所需的處理,發(fā)送者對(duì)接受者不起任何控制作用。第二節(jié) 面向?qū)ο蟮幕靖拍?/p>

12、 一個(gè)對(duì)象能夠接受不同形式、不同內(nèi)容的多個(gè)消息;相同形式的消息可以送往不同的對(duì)象,不同的對(duì)象對(duì)于形式不同的消息可以有不同的解釋,能夠做出不同的反映。 一個(gè)對(duì)象可以同時(shí)往多個(gè)對(duì)象傳遞信息,兩個(gè)對(duì)象也可以同時(shí)向某個(gè)對(duì)象傳遞消息。 接受者響應(yīng)消息的過程: 選擇符合消息要求的操作 執(zhí)行該操作 將控制權(quán)返回調(diào)用者第二節(jié) 面向?qū)ο蟮幕靖拍钇?、繼承性 廣義地說,繼承是指能夠直接獲得已有的性質(zhì)和特征,而不必重復(fù)定義它們。在面向?qū)ο笾?,繼承是子類自動(dòng)地共享基類中定義的數(shù)據(jù)和方法的機(jī)制。 父類:類的上層 子類:類的下層第二節(jié) 面向?qū)ο蟮幕靖拍頰的操作a的變量類a類aa的實(shí)例變量a的實(shí)例a1從a繼承特性b的操作

13、b的變量類b:a的子類類b繼承來的a的實(shí)例變量b的實(shí)例變量b的實(shí)例b1實(shí)現(xiàn)繼承機(jī)制的原理第二節(jié) 面向?qū)ο蟮幕靖拍?繼承具有傳遞性 如果類c繼承類b,類b繼承類a,則類c繼承類a。 單繼承與多繼承 單繼承:一個(gè)類只允許有一個(gè)父類,即類等級(jí)為樹形結(jié)構(gòu)。 多繼承:一個(gè)類允許有多個(gè)父類第二節(jié) 面向?qū)ο蟮幕靖拍?繼承性的優(yōu)點(diǎn) 共享程序代碼和數(shù)據(jù)結(jié)構(gòu),大大減少程序中的冗余信息,提高軟件的可重用性。 便于軟件修改維護(hù)。當(dāng)需要擴(kuò)充原有的功能時(shí),派生類的方法可以調(diào)用其基類的方法,并在此基礎(chǔ)上增加必要的程序代碼;當(dāng)需要完全改變?cè)械乃惴〞r(shí),可以在派生類中實(shí)現(xiàn)一個(gè)與基類方法同名而算法不同的方法;當(dāng)需要增加新的功

14、能時(shí),可以在派生類中實(shí)現(xiàn)一個(gè)新的方法。 “站在巨人的肩頭上”。用戶在開發(fā)新系統(tǒng)時(shí)不必從零開始,可以繼承原有相似功能或者從類庫中選取需要的類,再派生新類。第二節(jié) 面向?qū)ο蟮幕靖拍畎恕⒍鄳B(tài)性 對(duì)象根據(jù)所接受的消息而做出動(dòng)作,同樣的消息為不同的對(duì)象接受時(shí)可導(dǎo)致完全不同的行動(dòng),該現(xiàn)象稱為多態(tài)性。 利用多態(tài)性,用戶能夠發(fā)送一般形式的消息,而將所有的實(shí)現(xiàn)細(xì)節(jié)都留給接受消息的對(duì)象。 優(yōu)點(diǎn): 多態(tài)性機(jī)制增加了面向?qū)ο筌浖到y(tǒng)的靈活性,進(jìn)一步減少了信息冗余。 顯著提高軟件的可重用性和可擴(kuò)展性。第二節(jié) 面向?qū)ο蟮幕靖拍罹?、重載 函數(shù)重載是指在同一作用域內(nèi)的若干個(gè)參數(shù)特征不同的函數(shù)可以使用相同的函數(shù)名字。 運(yùn)算

15、符重載是指同一個(gè)運(yùn)算符可以施加于不同類型的操作數(shù)上面。 優(yōu)點(diǎn):重載進(jìn)一步提高了面向?qū)ο笙到y(tǒng)的靈活性和可讀性。第二節(jié) 面向?qū)ο蟮幕靖拍钍?、封裝 封裝是指將方法與數(shù)據(jù)同放于一對(duì)象中以使對(duì)數(shù)據(jù)的存取只通過該對(duì)象本身的方法。面向?qū)ο蟪绦虻钠渌糠郑▽?duì)象以外的部分)都不能直接作用于一對(duì)象的數(shù)據(jù),對(duì)象間的通信只能通過明確的消息來進(jìn)行。第二節(jié) 面向?qū)ο蟮幕靖拍蠲嫦驅(qū)ο竺嫦驅(qū)ο髠鹘y(tǒng)技術(shù)傳統(tǒng)技術(shù)方法過程、函數(shù)或子例程實(shí)例變量數(shù)據(jù)消息過程或參數(shù)調(diào)用類抽象數(shù)據(jù)類型繼承無類似技術(shù)調(diào)用處于系統(tǒng)控制之下調(diào)用處于程序員控制之下第三節(jié) 面向?qū)ο蠓治?面向?qū)ο蠓治龅年P(guān)鍵,是識(shí)別出問題域內(nèi)的對(duì)象,并分析它們相互間的關(guān)系,最終

16、建立起問題域的簡(jiǎn)潔、精確、可理解的正確模型。 面向?qū)ο蠓椒ㄗ罨镜脑瓌t,是按照人們習(xí)慣的思維方式,用面向?qū)ο笥^點(diǎn)建立問題域的模型,開發(fā)出盡可能自然地表現(xiàn)求解方法的軟件。第三節(jié) 面向?qū)ο蠓治?用面向?qū)ο蠓椒ㄩ_發(fā)軟件,通常需要建立三種形式的模型: 對(duì)象模型:描述系統(tǒng)數(shù)據(jù)結(jié)構(gòu) 動(dòng)態(tài)模型:描述系統(tǒng)控制結(jié)構(gòu) 功能模型:描述系統(tǒng)功能對(duì)象模型 什么是對(duì)象模型 對(duì)象模型表示靜態(tài)的、結(jié)構(gòu)化的系統(tǒng)的“數(shù)據(jù)”性質(zhì)。 對(duì)象模型是對(duì)模擬客觀世界實(shí)體的對(duì)象以及對(duì)象彼此間的關(guān)系的映射,描述了系統(tǒng)的靜態(tài)結(jié)構(gòu)。對(duì)象模型 對(duì)象模型的圖形符號(hào) 類&對(duì)象類名屬性服務(wù)類名屬性服務(wù)類&對(duì)象符號(hào)類符號(hào)v類符號(hào)是類&

17、對(duì)象符號(hào)的變種,通常用來代表一個(gè)沒有實(shí)例的抽象類對(duì)象模型 當(dāng)不需要詳細(xì)描述一個(gè)類內(nèi)定義了哪些屬性和服務(wù)時(shí),可以在矩形框內(nèi)省略。員工姓名地址身份證號(hào)碼工資通訊地址對(duì)象模型 結(jié)構(gòu)的圖形符號(hào) 結(jié)構(gòu)表示了問題域中的復(fù)雜關(guān)系,是對(duì)客觀世界實(shí)體相互間關(guān)系的抽象。 結(jié)構(gòu)與目標(biāo)系統(tǒng)的任務(wù)直接相關(guān),目標(biāo)系統(tǒng)的任務(wù)決定了系統(tǒng)的結(jié)構(gòu)。 結(jié)構(gòu)有三種形式:歸納關(guān)系、組合關(guān)系、關(guān)聯(lián)關(guān)系對(duì)象模型 歸納關(guān)系 即“一般-特殊”關(guān)系,它反映了一個(gè)類與若干個(gè)互不相容的子類之間的分類關(guān)系。 高層類(即基類)說明一般性的屬性 低層類(即派生類)說明特殊屬性,繼承高層類中定義的屬性和服務(wù)。對(duì)象模型一般化類具體類1具體類2表示歸納關(guān)系的圖

18、形符號(hào)對(duì)象模型 組合關(guān)系 組合關(guān)系即“整體-部分”關(guān)系,反映了對(duì)象之間的構(gòu)成關(guān)系。也稱為聚集關(guān)系。 結(jié)構(gòu)線每端標(biāo)出的數(shù)值(或值的范圍),表示在此結(jié)構(gòu)中該端對(duì)象的數(shù)量(當(dāng)值為1時(shí)無須標(biāo)出) 組合關(guān)系具有傳遞性:如果a是b的一部分,b是c的一部分,則a是c的一部分。 當(dāng)組合關(guān)系具有多個(gè)層次時(shí),可以用一棵簡(jiǎn)單的聚集樹來表示。對(duì)象模型整體部分1部分2表示組合關(guān)系的圖形符號(hào)1,m0,n對(duì)象模型 關(guān)聯(lián)關(guān)系 關(guān)聯(lián)關(guān)系反映對(duì)象之前相互依賴、相互作用的關(guān)系。 兩個(gè)對(duì)象之間關(guān)聯(lián)關(guān)系一般有三種類型: 一對(duì)一(1:1) 一對(duì)多(1:m) 多對(duì)多(m:n)對(duì)象模型 二元關(guān)聯(lián)關(guān)系的討論 表示符號(hào) 通過連線,表示兩個(gè)對(duì)象之

19、間的關(guān)聯(lián)關(guān)系 連線上的數(shù)字,表示參與關(guān)聯(lián)對(duì)象的個(gè)數(shù)教師書1+對(duì)象模型 鏈屬性 鏈屬性是指關(guān)聯(lián)鏈的性質(zhì) 例如:文件與用戶之間是多對(duì)多的關(guān)系,但每個(gè)用戶對(duì)不同文件擁有不同的訪問權(quán)限,訪問權(quán)限是文件與用戶之間關(guān)聯(lián)鏈的屬性。文件用戶1+1+訪問權(quán)限對(duì)象模型 限定 一個(gè)受限的關(guān)聯(lián)由兩個(gè)對(duì)象及一個(gè)限定詞組成。限定詞可以看作是一種特殊的鏈屬性,利用其能有效地減少關(guān)聯(lián)的階數(shù)。 例如:目錄與文件通常是多對(duì)一的關(guān)系,通過文件名的限定,就成為一對(duì)一的關(guān)系目錄文件文件名對(duì)象模型發(fā)送者接受者 消息連接 消息連接反映了一個(gè)對(duì)象對(duì)另一個(gè)對(duì)象的處理依賴性。 通常一個(gè)對(duì)象為了完成自己的任務(wù),需要借助于另一個(gè)對(duì)象提供的服務(wù)。帶箭

20、頭動(dòng)態(tài)模型 什么是動(dòng)態(tài)模型 動(dòng)態(tài)模型表示瞬時(shí)的、行為化的系統(tǒng)的“控制”性質(zhì),規(guī)定了對(duì)象模型中對(duì)象的合法變化序列。即對(duì)象的動(dòng)態(tài)行為。 用狀態(tài)圖來描繪對(duì)象的狀態(tài)、觸發(fā)狀態(tài)轉(zhuǎn)換的事件、以及對(duì)象的行為(對(duì)事件的響應(yīng))。 每個(gè)類的動(dòng)態(tài)行為用一張狀態(tài)圖來描繪,各個(gè)類的狀態(tài)圖通過共享事件合并起來,從而構(gòu)成系統(tǒng)的動(dòng)態(tài)模型。動(dòng)態(tài)模型 相關(guān)術(shù)語 事件:指某個(gè)時(shí)刻所發(fā)生的事情,是對(duì)引起對(duì)象從一種狀態(tài)轉(zhuǎn)換到另一種狀態(tài)的現(xiàn)實(shí)世界中的事件的抽象。 狀態(tài):指對(duì)象在其生命周期中的某個(gè)特定階段所處的某種情形。 行為:指對(duì)象達(dá)到某種狀態(tài)時(shí)所做的一系列處理操作。動(dòng)態(tài)模型 表示方法狀態(tài)1do:行為1狀態(tài)2do:行為2初始事件事件1條

21、件1結(jié)束事件功能模型 什么是功能模型 功能模型表示變化的系統(tǒng)的“功能”性質(zhì),它指明了系統(tǒng)應(yīng)該“做什么”,故更直接反映了用戶對(duì)目標(biāo)系統(tǒng)的需求。 表示方法 功能模型也通常由一組數(shù)據(jù)流程圖表示。 在面向?qū)ο蠓椒ㄖ校瑪?shù)據(jù)流程圖沒有在結(jié)構(gòu)化分析中重要,有時(shí)可以省略。三種模型之間的關(guān)系 三種模型之間的關(guān)系 三種模型分別從三個(gè)不同側(cè)面描述了所要開發(fā)的系統(tǒng),它們相互補(bǔ)充,相互配合。 對(duì)象模型定義了對(duì)象實(shí)體,是最基本的,是其它兩個(gè)模型的基礎(chǔ)。 動(dòng)態(tài)模型規(guī)定了什么時(shí)候做,即在何種狀態(tài)下接受了什么事情的觸發(fā)。 功能模型指明了系統(tǒng)應(yīng)該“做什么”。第三節(jié) 面向?qū)ο蠓治?面向?qū)ο蠓治瞿壳爸饕捎胏ode和yourdon提

22、出的ooa建模方法,包括5個(gè)步驟: 標(biāo)識(shí)對(duì)象 標(biāo)識(shí)結(jié)構(gòu) 標(biāo)識(shí)主題 定義屬性和實(shí)例聯(lián)系 定義操作和消息聯(lián)系ooa建模1. 標(biāo)識(shí)對(duì)象 描述如何發(fā)現(xiàn)對(duì)象和類 從應(yīng)用領(lǐng)域開始識(shí)別類及對(duì)象,即從問題陳述中提煉類和對(duì)象。 對(duì)象可歸類為七種形式ooa建模2. 標(biāo)識(shí)結(jié)構(gòu) 標(biāo)識(shí)結(jié)構(gòu)也就是分析類與類、對(duì)象與對(duì)象之間的關(guān)系。即確定關(guān)聯(lián) 首先識(shí)別一般-特殊結(jié)構(gòu),該結(jié)構(gòu)捕獲了識(shí)別出的類的層次結(jié)構(gòu)。即歸類結(jié)構(gòu)。 其次識(shí)別整體-部分結(jié)構(gòu),該結(jié)構(gòu)用來表示一個(gè)對(duì)象如何成為另一個(gè)對(duì)象的一部分,以及多個(gè)對(duì)象如何組裝成更大的對(duì)象。即集成結(jié)構(gòu)。 最后確定組合結(jié)構(gòu)ooa建模3.標(biāo)識(shí)主題 主題由一組類及對(duì)象組成,用于將類及對(duì)象模型劃分為更

23、大的單位,便于理解。 主題可以看作是一個(gè)參照符號(hào)或指針,指向分析模型中的細(xì)節(jié)處。 對(duì)于小系統(tǒng),無須引入主題 通常按問題領(lǐng)域而不是用功能分解方法來確定主題。ooa建模4.定義屬性和實(shí)例聯(lián)系ooa建模 5.定義操作和消息聯(lián)系 操作一般分為三類 以某種方式處理數(shù)據(jù)的操作,如添加、刪除、修改、選取 執(zhí)行一次計(jì)算的操作 監(jiān)控對(duì)象的某個(gè)控制事件出現(xiàn)的操作第四節(jié) 面向?qū)ο笤O(shè)計(jì) ood設(shè)計(jì)原則 模塊化 對(duì)象可以看作模塊 抽象 設(shè)計(jì)者可以創(chuàng)建自己的抽象數(shù)據(jù)類型和功能抽象,不必過細(xì)考慮問題域中細(xì)節(jié)。 信息隱藏 信息隱藏通過對(duì)象的封裝性實(shí)現(xiàn):類結(jié)構(gòu)分離了接口與實(shí)現(xiàn),從而支持信息隱藏。 對(duì)于用戶來說,屬性的表示方法和操作的實(shí)現(xiàn)算法是隱藏的。第四節(jié) 面向?qū)ο笤O(shè)計(jì) 弱耦合 耦合指不同對(duì)象之間相互關(guān)聯(lián)的緊密程度。 盡可能降低對(duì)象之間的耦合,但當(dāng)兩個(gè)對(duì)象必須相互聯(lián)系時(shí),可通過類的協(xié)議(即公共接口)實(shí)現(xiàn)耦合,不應(yīng)該依賴于類的具體實(shí)現(xiàn)細(xì)節(jié)。 耦合分為兩類:交互耦合、繼承耦合 交互耦合通過消息傳遞實(shí)現(xiàn) 繼承耦合通過對(duì)象間的繼承性實(shí)現(xiàn)第四節(jié) 面向?qū)ο笤O(shè)計(jì) 強(qiáng)內(nèi)聚 內(nèi)聚指一個(gè)模塊內(nèi)各個(gè)元素彼此結(jié)合的緊密程

溫馨提示

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