第八章 面向?qū)ο蟮南到y(tǒng)開發(fā)方法_第1頁
第八章 面向?qū)ο蟮南到y(tǒng)開發(fā)方法_第2頁
第八章 面向?qū)ο蟮南到y(tǒng)開發(fā)方法_第3頁
第八章 面向?qū)ο蟮南到y(tǒng)開發(fā)方法_第4頁
第八章 面向?qū)ο蟮南到y(tǒng)開發(fā)方法_第5頁
已閱讀5頁,還剩34頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、本章目標(biāo):本章目標(biāo):通過本章的學(xué)習(xí),應(yīng)掌握通過本章的學(xué)習(xí),應(yīng)掌握“面向?qū)ο竺嫦驅(qū)ο蟆钡幕靖诺幕靖拍钆c特征,了解目前流行的四種念與特征,了解目前流行的四種“面向?qū)ο竺嫦驅(qū)ο蟆钡南到y(tǒng)的系統(tǒng)開發(fā)方法。應(yīng)對開發(fā)方法。應(yīng)對“面向?qū)ο竺嫦驅(qū)ο蟆钡南到y(tǒng)開發(fā)有一個整體的系統(tǒng)開發(fā)有一個整體的認識,通過一個簡單的開發(fā)例子,為今后應(yīng)用面向的認識,通過一個簡單的開發(fā)例子,為今后應(yīng)用面向?qū)ο笙到y(tǒng)開發(fā)打下基礎(chǔ)。對象系統(tǒng)開發(fā)打下基礎(chǔ)。 第八章第八章 面向?qū)ο蟮拿嫦驅(qū)ο蟮南到y(tǒng)開發(fā)方法系統(tǒng)開發(fā)方法 引言引言 傳統(tǒng)的傳統(tǒng)的“面向過程面向過程”的方法學(xué)是把世界分成兩個部分,的方法學(xué)是把世界分成兩個部分,分別認知:分別認知:1)

2、數(shù)據(jù)()數(shù)據(jù)(Data):用于描述各種狀態(tài)的數(shù)據(jù)結(jié)構(gòu);):用于描述各種狀態(tài)的數(shù)據(jù)結(jié)構(gòu);2)過程()過程(Procedures):就是操作這些狀態(tài)數(shù)據(jù)的程序,):就是操作這些狀態(tài)數(shù)據(jù)的程序,有時也稱為有時也稱為“算法算法”。 說得形象一些,它認為數(shù)據(jù)是靜態(tài)的,不會自行改變說得形象一些,它認為數(shù)據(jù)是靜態(tài)的,不會自行改變的,而需要各種各樣的過程來改為數(shù)據(jù)。您還記得的,而需要各種各樣的過程來改為數(shù)據(jù)。您還記得“數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)”+“算法算法”=程序程序,這一個偉大的等式嗎?,這一個偉大的等式嗎?這就是這就是“面向過程面向過程”方法學(xué)的精髓。方法學(xué)的精髓。 第八章第八章 面向?qū)ο蟮拿嫦驅(qū)ο蟮南到y(tǒng)開發(fā)方法

3、系統(tǒng)開發(fā)方法引言引言 舉個例子,我們要將一塊木頭從目前的位置向北搬到舉個例子,我們要將一塊木頭從目前的位置向北搬到距原地距原地10米的地方,我們首先會定義一個表示木頭的米的地方,我們首先會定義一個表示木頭的數(shù)據(jù)結(jié)構(gòu),存儲位置、質(zhì)量等狀態(tài)信息,然后再編寫數(shù)據(jù)結(jié)構(gòu),存儲位置、質(zhì)量等狀態(tài)信息,然后再編寫一個算法操作這個表示木頭的數(shù)據(jù)結(jié)構(gòu),以達到目的。一個算法操作這個表示木頭的數(shù)據(jù)結(jié)構(gòu),以達到目的。 而而“面向?qū)ο竺嫦驅(qū)ο蟆钡姆椒▽W(xué)則認為世界是由各種各樣的的方法學(xué)則認為世界是由各種各樣的對象(對象(object)組成的,而每一個對象都有兩個特征:)組成的,而每一個對象都有兩個特征:狀態(tài)(也稱為屬性)與

4、行為(也稱為方法)。狀態(tài)(也稱為屬性)與行為(也稱為方法)。 說得形象一些,每個組成世界的對象都是通過自己的說得形象一些,每個組成世界的對象都是通過自己的行為來變化自身的狀態(tài),一切變化都是對象自身、或行為來變化自身的狀態(tài),一切變化都是對象自身、或?qū)ο箝g的協(xié)調(diào)而產(chǎn)生的對象間的協(xié)調(diào)而產(chǎn)生的 。 第八章第八章 面向?qū)ο蟮拿嫦驅(qū)ο蟮南到y(tǒng)開發(fā)方法系統(tǒng)開發(fā)方法 所謂所謂“面向?qū)ο竺嫦驅(qū)ο蟆笔且环N認識客觀世界的世界觀,是一種認識客觀世界的世界觀,從結(jié)構(gòu)組織角度模擬客觀世界的一種方法,人們在從結(jié)構(gòu)組織角度模擬客觀世界的一種方法,人們在認識和理解現(xiàn)實世界的過程中,普遍運用以下三個認識和理解現(xiàn)實世界的過程中,普遍

5、運用以下三個構(gòu)造法則:構(gòu)造法則:(1)區(qū)分對象及其屬性,如區(qū)分車和車的大??;)區(qū)分對象及其屬性,如區(qū)分車和車的大?。唬?)區(qū)分整體對象及其組成部分,如區(qū)分車和車輪;)區(qū)分整體對象及其組成部分,如區(qū)分車和車輪;(3)不同對象類的形成及區(qū)分,如所有車的類和所)不同對象類的形成及區(qū)分,如所有車的類和所有船的類。有船的類。 因而,客觀世界可以看成由許多不同種類的對象因而,客觀世界可以看成由許多不同種類的對象構(gòu)成,每個對象都有自己的內(nèi)部狀態(tài)和運動規(guī)律,構(gòu)成,每個對象都有自己的內(nèi)部狀態(tài)和運動規(guī)律,不同對象間的相互聯(lián)系和相互作用構(gòu)成了完整的客不同對象間的相互聯(lián)系和相互作用構(gòu)成了完整的客觀世界。觀世界。第一節(jié)

6、第一節(jié) 面向?qū)ο蟮幕靖拍罴疤卣髅嫦驅(qū)ο蟮幕靖拍罴疤卣饕?、面向一、面向?qū)ο蟮幕靖拍顚ο蟮幕靖拍?1、對象對象:是:是一種對客觀事物的抽象,它由狀態(tài)一種對客觀事物的抽象,它由狀態(tài)(屬性)和行為(方法)組成。(屬性)和行為(方法)組成。 下面,我們就使用一個圖,來幫助大家認識對象。下面,我們就使用一個圖,來幫助大家認識對象。正如圖正如圖2-1所示,我們使用一個大圓來表示一個對所示,我們使用一個大圓來表示一個對象,中間的一個小圓圈定義了這個對象的各種狀象,中間的一個小圓圈定義了這個對象的各種狀態(tài)信息,外面則是各種各樣的行為,通過執(zhí)行這態(tài)信息,外面則是各種各樣的行為,通過執(zhí)行這個對象的行為,就會

7、改變這個對象的狀態(tài)。個對象的行為,就會改變這個對象的狀態(tài)。第一節(jié)第一節(jié) 面向?qū)ο蟮幕靖拍罴疤卣髅嫦驅(qū)ο蟮幕靖拍罴疤卣?圖圖2-1 木頭對象示意圖木頭對象示意圖 第一節(jié)第一節(jié) 面向?qū)ο蟮幕靖拍罴疤卣髅嫦驅(qū)ο蟮幕靖拍罴疤卣?2、類類 :是對象的集合也就是由所有相似對象的狀態(tài)是對象的集合也就是由所有相似對象的狀態(tài)變量(屬性變量)與行為(方法)所構(gòu)成的模板或原型。變量(屬性變量)與行為(方法)所構(gòu)成的模板或原型。 我們首先定義了我們首先定義了“筆店筆店”這個類,它擁有這個類,它擁有4個屬性:個屬性: 1) 鉛筆;鉛筆; 2) 鋼筆;鋼筆; 3) 圓珠筆;圓珠筆; 4) 其它筆其它筆 同時還定義

8、了三個行為:同時還定義了三個行為: 1)賣出:將屬性的值減少,表示賣出;)賣出:將屬性的值減少,表示賣出; 2)進貨:將屬性的值增加,表示進貨;)進貨:將屬性的值增加,表示進貨; 3)盤點:打印出屬性的值;)盤點:打印出屬性的值;第一節(jié)第一節(jié) 面向?qū)ο蟮幕靖拍罴疤卣髅嫦驅(qū)ο蟮幕靖拍罴疤卣?、消息傳遞、消息傳遞 在前面,我們說到在面向?qū)ο蟮氖澜缰校磺凶兓谇懊?,我們說到在面向?qū)ο蟮氖澜缰校磺凶兓际菍ο笞陨?、或?qū)ο箝g的協(xié)調(diào)而產(chǎn)生的。那么它都是對象自身、或?qū)ο箝g的協(xié)調(diào)而產(chǎn)生的。那么它們是如何進行協(xié)商的呢?們是如何進行協(xié)商的呢?在面向?qū)ο蟮某绦蛟O(shè)計中,我們采用一種叫消息傳遞在面向?qū)ο蟮某绦蛟O(shè)

9、計中,我們采用一種叫消息傳遞(Message Passing)的機制來實現(xiàn)。消息從一個對)的機制來實現(xiàn)。消息從一個對象發(fā)到另一個對象,使另一個對象完成某一個行為。象發(fā)到另一個對象,使另一個對象完成某一個行為。 通常,我們把發(fā)送消息的對象稱為通常,我們把發(fā)送消息的對象稱為“發(fā)送對象發(fā)送對象”(sender),而把接受消息的對象稱為),而把接受消息的對象稱為“接受對象接受對象”(receiver)。其工作如下圖所示:)。其工作如下圖所示: 第一節(jié)第一節(jié) 面向?qū)ο蟮幕靖拍罴疤卣髅嫦驅(qū)ο蟮幕靖拍罴疤卣?圖圖2-2 消息傳遞機制工作示意圖消息傳遞機制工作示意圖 第一節(jié)第一節(jié) 面向?qū)ο蟮幕靖拍罴疤卣?/p>

10、面向?qū)ο蟮幕靖拍罴疤卣? 、繼承繼承 :是指一個類(即稱子類)因承襲而具有另一是指一個類(即稱子類)因承襲而具有另一個類(或稱父類)的能力和特征的機制或關(guān)系。個類(或稱父類)的能力和特征的機制或關(guān)系。 例如,汽車中有貨車、客車、轎車?yán)?,汽車中有貨車、客車、轎車:1) 用于運輸貨物的汽車叫貨車;用于運輸貨物的汽車叫貨車;2) 用于運輸旅客的汽車叫客車;用于運輸旅客的汽車叫客車;3) 豪華的、較低矮、較小的、有錢人(豪華的、較低矮、較小的、有錢人(:-P)坐的汽車)坐的汽車叫轎車。叫轎車。 而汽車、貨車、客車、轎車都是類!在本例中,而汽車、貨車、客車、轎車都是類!在本例中,汽車這個類是貨車、客

11、車、轎車這三個類的超類汽車這個類是貨車、客車、轎車這三個類的超類(Superclass),而貨車、客車、轎車這三個類則是),而貨車、客車、轎車這三個類則是汽車這個類的子類(汽車這個類的子類(subclass)。)。 第一節(jié)第一節(jié) 面向?qū)ο蟮幕靖拍罴疤卣髅嫦驅(qū)ο蟮幕靖拍罴疤卣鬟@四個類這四個類(超類與子類)超類與子類)的關(guān)系,可以通過下面這個圖的關(guān)系,可以通過下面這個圖來表示:來表示:第一節(jié)第一節(jié) 面向?qū)ο蟮幕靖拍罴疤卣髅嫦驅(qū)ο蟮幕靖拍罴疤卣鳛槭裁匆肜^承的概念呢?為什么要引入繼承的概念呢? 繼承機制提高了繼承機制提高了“軟件可復(fù)用性軟件可復(fù)用性”。大家應(yīng)該。大家應(yīng)該知道,在結(jié)構(gòu)化的程序

12、設(shè)計中,我們常常將一些知道,在結(jié)構(gòu)化的程序設(shè)計中,我們常常將一些經(jīng)常要使用的功能模塊寫成子程序,供程序調(diào)用,經(jīng)常要使用的功能模塊寫成子程序,供程序調(diào)用,這樣會大大提高開發(fā)效率。這也就是這樣會大大提高開發(fā)效率。這也就是“軟件復(fù)軟件復(fù)用用”。 而通過繼承,我們可以在已定義類的基礎(chǔ)上無而通過繼承,我們可以在已定義類的基礎(chǔ)上無限地繁衍出更多的類,并且通過直接繼承、新增、限地繁衍出更多的類,并且通過直接繼承、新增、局部修改來重復(fù)使用超類。這樣必將使軟件開發(fā)局部修改來重復(fù)使用超類。這樣必將使軟件開發(fā)的速度更快,同時可以使程序共享成為可能。的速度更快,同時可以使程序共享成為可能。第一節(jié)第一節(jié) 面向?qū)ο蟮幕?/p>

13、概念及特征面向?qū)ο蟮幕靖拍罴疤卣? 、封裝性封裝性 :就是把一組數(shù)據(jù)和與其有關(guān)的操作集合組就是把一組數(shù)據(jù)和與其有關(guān)的操作集合組裝在一起,形成一個能動的實體,也就是對象。裝在一起,形成一個能動的實體,也就是對象。 例:例:就象電路設(shè)計,以前是用一個個晶體管的,后就象電路設(shè)計,以前是用一個個晶體管的,后來把能完成某一功能的晶體管做在一起封裝起來,并來把能完成某一功能的晶體管做在一起封裝起來,并只提供幾只引腳,外界只能通過這些引腳而不能通過只提供幾只引腳,外界只能通過這些引腳而不能通過別的途徑來別的途徑來訪問訪問內(nèi)部功能,這就成了集成電路。封內(nèi)部功能,這就成了集成電路。封裝使得一個對象具備獨立和明

14、確的功能,并提供接口裝使得一個對象具備獨立和明確的功能,并提供接口便于和其它對象作用,而其內(nèi)部的代碼和數(shù)據(jù)都是受便于和其它對象作用,而其內(nèi)部的代碼和數(shù)據(jù)都是受保護的。好處不言自明。保護的。好處不言自明。 第一節(jié)第一節(jié) 面向?qū)ο蟮幕靖拍罴疤卣髅嫦驅(qū)ο蟮幕靖拍罴疤卣?、 多態(tài)性多態(tài)性多態(tài)性很有意思,不同的對象可以調(diào)用相同名稱的多態(tài)性很有意思,不同的對象可以調(diào)用相同名稱的函數(shù),卻能導(dǎo)致完全不同的行為的現(xiàn)象。這在現(xiàn)函數(shù),卻能導(dǎo)致完全不同的行為的現(xiàn)象。這在現(xiàn)實生活中也會發(fā)生,比如實生活中也會發(fā)生,比如我我這個對象去調(diào)用這個對象去調(diào)用玩玩電腦電腦這個這個函數(shù)函數(shù)時,一般發(fā)生的是打字的行為,時,一般發(fā)生

15、的是打字的行為,而而我表弟我表弟去調(diào)用去調(diào)用玩電腦玩電腦這個函數(shù)時,總是發(fā)這個函數(shù)時,總是發(fā)生生游戲大戰(zhàn)游戲大戰(zhàn)的行為。這是由于的行為。這是由于玩電腦玩電腦這個函這個函數(shù)它能根據(jù)不同的對象做出不同的反應(yīng)。我們只數(shù)它能根據(jù)不同的對象做出不同的反應(yīng)。我們只管管玩電腦玩電腦就行了。就行了。 多態(tài)性:同一消息發(fā)送至不同類或?qū)ο罂蓪?dǎo)多態(tài)性:同一消息發(fā)送至不同類或?qū)ο罂蓪?dǎo)致不同的操作結(jié)果,使軟件開發(fā)設(shè)計更便利,編致不同的操作結(jié)果,使軟件開發(fā)設(shè)計更便利,編碼更靈活。碼更靈活。 第一節(jié)第一節(jié) 面向?qū)ο蟮幕靖拍罴疤卣髅嫦驅(qū)ο蟮幕靖拍罴疤卣?、易維護性:面向?qū)ο蟮某橄蠓庋b使、易維護性:面向?qū)ο蟮某橄蠓庋b使對象

16、信息隱藏在局部。當(dāng)對象進行修對象信息隱藏在局部。當(dāng)對象進行修改,或?qū)ο笞陨懋a(chǎn)生錯誤的時候,由改,或?qū)ο笞陨懋a(chǎn)生錯誤的時候,由此帶來的影響僅僅局限在對象內(nèi)部而此帶來的影響僅僅局限在對象內(nèi)部而不會波及其他對象乃至整個系統(tǒng)環(huán)境,不會波及其他對象乃至整個系統(tǒng)環(huán)境,這極大方便了軟件設(shè)計、構(gòu)造和運行這極大方便了軟件設(shè)計、構(gòu)造和運行過程中的檢錯、修改。過程中的檢錯、修改。第一節(jié)第一節(jié) 面向?qū)ο蟮幕靖拍罴疤卣髅嫦驅(qū)ο蟮幕靖拍罴疤卣饕弧⒚嫦驅(qū)ο蟮南到y(tǒng)開發(fā)方法的原理一、面向?qū)ο蟮南到y(tǒng)開發(fā)方法的原理 面向?qū)ο箝_發(fā)一般經(jīng)歷三個階段:面向?qū)ο笙到y(tǒng)面向?qū)ο箝_發(fā)一般經(jīng)歷三個階段:面向?qū)ο笙到y(tǒng)分析(分析(OOA),面向?qū)?/p>

17、象系統(tǒng)設(shè)計(),面向?qū)ο笙到y(tǒng)設(shè)計(OOD)和)和面向?qū)ο笙到y(tǒng)實現(xiàn)(面向?qū)ο笙到y(tǒng)實現(xiàn)(OOP)。這與傳統(tǒng)的生命周)。這與傳統(tǒng)的生命周期法相似,但各階段所解決的問題和采用的描述期法相似,但各階段所解決的問題和采用的描述方法卻有極大區(qū)別。方法卻有極大區(qū)別。(一一)、面向?qū)ο蟮南到y(tǒng)分析、面向?qū)ο蟮南到y(tǒng)分析面向?qū)ο蠓治鲞\用以下主要原則:面向?qū)ο蠓治鲞\用以下主要原則:1、構(gòu)造和分解相結(jié)合的原則。、構(gòu)造和分解相結(jié)合的原則。 2、抽象和具體結(jié)合的原則。、抽象和具體結(jié)合的原則。 第二節(jié)第二節(jié) 面向?qū)ο蟮南到y(tǒng)開發(fā)方法的原理面向?qū)ο蟮南到y(tǒng)開發(fā)方法的原理 (一一)、面向?qū)ο蟮南到y(tǒng)分析、面向?qū)ο蟮南到y(tǒng)分析面向?qū)ο蠓治鲞\

18、用以下主要原則:面向?qū)ο蠓治鲞\用以下主要原則:3、封裝的原則。、封裝的原則。 4、繼承性的原則。、繼承性的原則。 5、構(gòu)造問題空間。、構(gòu)造問題空間。 (1)區(qū)分對象及其屬性;)區(qū)分對象及其屬性; (2)區(qū)分整體對象及其組成部分;)區(qū)分整體對象及其組成部分; (3)不同對象類的形成及區(qū)分)不同對象類的形成及區(qū)分。 第二節(jié)第二節(jié) 面向?qū)ο蟮南到y(tǒng)開發(fā)方法的原理面向?qū)ο蟮南到y(tǒng)開發(fā)方法的原理 (二)、面向?qū)ο蟮南到y(tǒng)設(shè)計(二)、面向?qū)ο蟮南到y(tǒng)設(shè)計 課本課本P194(三)、面向?qū)ο蟮南到y(tǒng)實施(三)、面向?qū)ο蟮南到y(tǒng)實施 課本課本P194 第二節(jié)第二節(jié) 面向?qū)ο蟮南到y(tǒng)開發(fā)方法的原理面向?qū)ο蟮南到y(tǒng)開發(fā)方法的原理

19、二、面向?qū)ο蟮南到y(tǒng)開發(fā)方法二、面向?qū)ο蟮南到y(tǒng)開發(fā)方法 八十年代末以來,隨著面向?qū)ο蠹夹g(shù)成為研究的熱八十年代末以來,隨著面向?qū)ο蠹夹g(shù)成為研究的熱點出現(xiàn)了幾十種支持軟件開發(fā)的面向?qū)ο蠓椒āF渲?,點出現(xiàn)了幾十種支持軟件開發(fā)的面向?qū)ο蠓椒āF渲?,布什(布什(Booch),Coad/尤頓(尤頓(Yourdon),對象模型技術(shù)對象模型技術(shù)(OMT)和雅寇森()和雅寇森(Jacobson)的方法在面向?qū)ο筌浖┑姆椒ㄔ诿嫦驅(qū)ο筌浖_發(fā)界得到了廣泛的認可。特別值得一提的是統(tǒng)一的開發(fā)界得到了廣泛的認可。特別值得一提的是統(tǒng)一的建模語言建模語言UML(Unified Modeling Language),該方法結(jié))

20、,該方法結(jié)合了合了Booch, OMT, 和和Jacobson方法的優(yōu)點,統(tǒng)一了符號方法的優(yōu)點,統(tǒng)一了符號體系,并從其它的方法和工程實踐中吸收了許多經(jīng)過體系,并從其它的方法和工程實踐中吸收了許多經(jīng)過實際檢驗的概念和技術(shù)。實際檢驗的概念和技術(shù)。UML方法自去年提出后到現(xiàn)在方法自去年提出后到現(xiàn)在已發(fā)展到已發(fā)展到1.1版,并已提交給對象管理集團版,并已提交給對象管理集團OMG,申請,申請成為面向?qū)ο蠓椒ǖ臉?biāo)準(zhǔn)。成為面向?qū)ο蠓椒ǖ臉?biāo)準(zhǔn)。 第二節(jié)第二節(jié) 面向?qū)ο蟮南到y(tǒng)開發(fā)方法的原理面向?qū)ο蟮南到y(tǒng)開發(fā)方法的原理 二、面向?qū)ο蟮南到y(tǒng)開發(fā)方法二、面向?qū)ο蟮南到y(tǒng)開發(fā)方法 面向?qū)ο蠓椒ǘ贾С秩N基本的活動:識別面

21、向?qū)ο蠓椒ǘ贾С秩N基本的活動:識別對象和類,描述對象和類之間的關(guān)系,以及通過對象和類,描述對象和類之間的關(guān)系,以及通過描述每個類的功能定義對象的行為。為了發(fā)現(xiàn)對描述每個類的功能定義對象的行為。為了發(fā)現(xiàn)對象和類,開發(fā)人員要在系統(tǒng)需求和系統(tǒng)分析的文象和類,開發(fā)人員要在系統(tǒng)需求和系統(tǒng)分析的文檔中查找名詞和名詞短語,包括可感知的事物檔中查找名詞和名詞短語,包括可感知的事物(汽車、壓力、傳感器);角色(母親、教師、(汽車、壓力、傳感器);角色(母親、教師、政治家);事件(著陸、中斷、請求);互相作政治家);事件(著陸、中斷、請求);互相作用(借貸、開會、交叉);人員;場所;組織;用(借貸、開會、交叉)

22、;人員;場所;組織;設(shè)備;和地點。通過瀏覽使用系統(tǒng)的腳本發(fā)現(xiàn)重設(shè)備;和地點。通過瀏覽使用系統(tǒng)的腳本發(fā)現(xiàn)重要的對象和其責(zé)任,是面向?qū)ο蠓治龊驮O(shè)計過程要的對象和其責(zé)任,是面向?qū)ο蠓治龊驮O(shè)計過程的初期重要的技術(shù)。的初期重要的技術(shù)。 第二節(jié)第二節(jié) 面向?qū)ο蟮南到y(tǒng)開發(fā)方法的原理面向?qū)ο蟮南到y(tǒng)開發(fā)方法的原理 二、面向?qū)ο蟮南到y(tǒng)開發(fā)方法二、面向?qū)ο蟮南到y(tǒng)開發(fā)方法 當(dāng)重要的對象被發(fā)現(xiàn)后,通過一組互相關(guān)聯(lián)當(dāng)重要的對象被發(fā)現(xiàn)后,通過一組互相關(guān)聯(lián)的模型詳細表示類之間的關(guān)系和對象的行為,這的模型詳細表示類之間的關(guān)系和對象的行為,這些模型從四個不同的側(cè)面表示了軟件的體系結(jié)構(gòu):些模型從四個不同的側(cè)面表示了軟件的體系結(jié)構(gòu):

23、靜態(tài)邏輯、動態(tài)邏輯、靜態(tài)物理和動態(tài)物理。靜靜態(tài)邏輯、動態(tài)邏輯、靜態(tài)物理和動態(tài)物理。靜態(tài)邏輯模型描述實例化(類成員關(guān)系)、關(guān)聯(lián)、態(tài)邏輯模型描述實例化(類成員關(guān)系)、關(guān)聯(lián)、聚集(整體聚集(整體/部分)、和一般化(繼承)等關(guān)系。部分)、和一般化(繼承)等關(guān)系。這被稱為對象模型。一般化關(guān)系表示屬性和方法這被稱為對象模型。一般化關(guān)系表示屬性和方法的繼承關(guān)系。定義對象模型的圖形符號體系通常的繼承關(guān)系。定義對象模型的圖形符號體系通常是從用于數(shù)據(jù)建模的實體關(guān)系圖導(dǎo)出的。對設(shè)計是從用于數(shù)據(jù)建模的實體關(guān)系圖導(dǎo)出的。對設(shè)計十分重要的約束,如基數(shù)(一對一、一對多、多十分重要的約束,如基數(shù)(一對一、一對多、多對多),也

24、在對象模型中表示。對多),也在對象模型中表示。 第二節(jié)第二節(jié) 面向?qū)ο蟮南到y(tǒng)開發(fā)方法的原理面向?qū)ο蟮南到y(tǒng)開發(fā)方法的原理 二、面向?qū)ο蟮南到y(tǒng)開發(fā)方法二、面向?qū)ο蟮南到y(tǒng)開發(fā)方法1、Booch(布什)方法(布什)方法(1)Booch(布什)方法的過程包括以下步驟:(布什)方法的過程包括以下步驟:在給定的抽象層次上識別類和對象在給定的抽象層次上識別類和對象識別這些對象和類的語義識別這些對象和類的語義識別這些類和對象之間的關(guān)系識別這些類和對象之間的關(guān)系實現(xiàn)類和對象實現(xiàn)類和對象 這四種活動不僅僅是一個簡單的步驟序列,這四種活動不僅僅是一個簡單的步驟序列,而是對系統(tǒng)的邏輯和物理視圖不斷細化的迭代和而是對系統(tǒng)

25、的邏輯和物理視圖不斷細化的迭代和漸增的開發(fā)過程。漸增的開發(fā)過程。 第二節(jié)第二節(jié) 面向?qū)ο蟮南到y(tǒng)開發(fā)方法的原理面向?qū)ο蟮南到y(tǒng)開發(fā)方法的原理 二、面向?qū)ο蟮南到y(tǒng)開發(fā)方法二、面向?qū)ο蟮南到y(tǒng)開發(fā)方法1、Booch(布什)方法(布什)方法(2)Booch(布什)方法的力量在于其豐富的符(布什)方法的力量在于其豐富的符號體系,包括:號體系,包括:類圖(類結(jié)構(gòu)靜態(tài)視圖)類圖(類結(jié)構(gòu)靜態(tài)視圖)對象圖(對象結(jié)構(gòu)靜態(tài)視圖)對象圖(對象結(jié)構(gòu)靜態(tài)視圖)狀態(tài)轉(zhuǎn)移圖(類結(jié)構(gòu)動態(tài)視圖)狀態(tài)轉(zhuǎn)移圖(類結(jié)構(gòu)動態(tài)視圖)時態(tài)圖(對象結(jié)構(gòu)動態(tài)視圖)時態(tài)圖(對象結(jié)構(gòu)動態(tài)視圖)模塊圖(模塊體系結(jié)構(gòu))模塊圖(模塊體系結(jié)構(gòu))進程圖(進程體系

26、結(jié)構(gòu))進程圖(進程體系結(jié)構(gòu)) 第二節(jié)第二節(jié) 面向?qū)ο蟮南到y(tǒng)開發(fā)方法的原理面向?qū)ο蟮南到y(tǒng)開發(fā)方法的原理 二、面向?qū)ο蟮南到y(tǒng)開發(fā)方法二、面向?qū)ο蟮南到y(tǒng)開發(fā)方法2、Rumbaugh(云豹)的(云豹)的OMT方法方法 Rumbaugh(云豹)的(云豹)的OMT方法從三個視角描述系方法從三個視角描述系統(tǒng),相應(yīng)地提供了三種模型,對象模型,動態(tài)模型和統(tǒng),相應(yīng)地提供了三種模型,對象模型,動態(tài)模型和功能模型。功能模型。對象模型描述對象的靜態(tài)結(jié)構(gòu)和它們之間對象模型描述對象的靜態(tài)結(jié)構(gòu)和它們之間的關(guān)系。主要的概念包括:的關(guān)系。主要的概念包括:類類屬性屬性操作操作繼承繼承關(guān)聯(lián)(即關(guān)系)關(guān)聯(lián)(即關(guān)系)聚集聚集 第二節(jié)第二

27、節(jié) 面向?qū)ο蟮南到y(tǒng)開發(fā)方法的原理面向?qū)ο蟮南到y(tǒng)開發(fā)方法的原理 二、面向?qū)ο蟮南到y(tǒng)開發(fā)方法二、面向?qū)ο蟮南到y(tǒng)開發(fā)方法2、Rumbaugh(云豹)的(云豹)的OMT方法方法動態(tài)模型描述系統(tǒng)那些隨時間變化的方面,其主要動態(tài)模型描述系統(tǒng)那些隨時間變化的方面,其主要概念有:概念有:狀態(tài)狀態(tài)子狀態(tài)和超狀態(tài)子狀態(tài)和超狀態(tài)事件事件行為行為活動活動 第二節(jié)第二節(jié) 面向?qū)ο蟮南到y(tǒng)開發(fā)方法的原理面向?qū)ο蟮南到y(tǒng)開發(fā)方法的原理 二、面向?qū)ο蟮南到y(tǒng)開發(fā)方法二、面向?qū)ο蟮南到y(tǒng)開發(fā)方法2、Rumbaugh(云豹)的(云豹)的OMT方法方法功能模型描述系統(tǒng)內(nèi)部數(shù)據(jù)值的轉(zhuǎn)換,其主要概念功能模型描述系統(tǒng)內(nèi)部數(shù)據(jù)值的轉(zhuǎn)換,其主要概念

28、有:有:加工加工數(shù)據(jù)存儲數(shù)據(jù)存儲數(shù)據(jù)流數(shù)據(jù)流控制流控制流角色(源角色(源/潭)潭) 第二節(jié)第二節(jié) 面向?qū)ο蟮南到y(tǒng)開發(fā)方法的原理面向?qū)ο蟮南到y(tǒng)開發(fā)方法的原理 二、面向?qū)ο蟮南到y(tǒng)開發(fā)方法二、面向?qū)ο蟮南到y(tǒng)開發(fā)方法2、Rumbaugh(云豹)的(云豹)的OMT方法方法該方法將開發(fā)過程分為四個階段:該方法將開發(fā)過程分為四個階段:(1)分析)分析基于問題和用戶需求的描述,建立現(xiàn)實世界的模型?;趩栴}和用戶需求的描述,建立現(xiàn)實世界的模型。分析階段的產(chǎn)物有:分析階段的產(chǎn)物有:問題描述問題描述對象模型對象圖數(shù)據(jù)詞典對象模型對象圖數(shù)據(jù)詞典動態(tài)模型狀態(tài)圖全局事件流圖動態(tài)模型狀態(tài)圖全局事件流圖功能模型數(shù)據(jù)流圖約束功

29、能模型數(shù)據(jù)流圖約束 第二節(jié)第二節(jié) 面向?qū)ο蟮南到y(tǒng)開發(fā)方法的原理面向?qū)ο蟮南到y(tǒng)開發(fā)方法的原理 二、面向?qū)ο蟮南到y(tǒng)開發(fā)方法二、面向?qū)ο蟮南到y(tǒng)開發(fā)方法2、Rumbaugh(云豹)的(云豹)的OMT方法方法(2)系統(tǒng)設(shè)計)系統(tǒng)設(shè)計結(jié)合問題域的知識和目標(biāo)系統(tǒng)的體系結(jié)構(gòu)(求解域),結(jié)合問題域的知識和目標(biāo)系統(tǒng)的體系結(jié)構(gòu)(求解域),將目標(biāo)系統(tǒng)分解為子系統(tǒng)。將目標(biāo)系統(tǒng)分解為子系統(tǒng)。(3)對象設(shè)計)對象設(shè)計基于分析模型和求解域中的體系結(jié)構(gòu)等添加的實現(xiàn)細節(jié),基于分析模型和求解域中的體系結(jié)構(gòu)等添加的實現(xiàn)細節(jié),完成系統(tǒng)設(shè)計。主要產(chǎn)物包括:完成系統(tǒng)設(shè)計。主要產(chǎn)物包括:細化的對象模型細化的對象模型細化的動態(tài)模型細化的動態(tài)模

30、型細化的功能模型細化的功能模型 第二節(jié)第二節(jié) 面向?qū)ο蟮南到y(tǒng)開發(fā)方法的原理面向?qū)ο蟮南到y(tǒng)開發(fā)方法的原理 二、面向?qū)ο蟮南到y(tǒng)開發(fā)方法二、面向?qū)ο蟮南到y(tǒng)開發(fā)方法2、Rumbaugh(云豹)的(云豹)的OMT方法方法(4)實現(xiàn))實現(xiàn)將設(shè)計轉(zhuǎn)換為特定的編程語言或硬件,同時保持可將設(shè)計轉(zhuǎn)換為特定的編程語言或硬件,同時保持可追蹤性、靈活性和可擴展性。追蹤性、靈活性和可擴展性。 第二節(jié)第二節(jié) 面向?qū)ο蟮南到y(tǒng)開發(fā)方法的原理面向?qū)ο蟮南到y(tǒng)開發(fā)方法的原理 二、面向?qū)ο蟮南到y(tǒng)開發(fā)方法二、面向?qū)ο蟮南到y(tǒng)開發(fā)方法3、Coad/Yourdon(尤頓)方法(尤頓)方法Coad/Yourdon(尤頓)方法嚴(yán)格區(qū)分了面向?qū)ο蠓?/p>

31、析(尤頓)方法嚴(yán)格區(qū)分了面向?qū)ο蠓治鯫OA和和面向?qū)ο笤O(shè)計面向?qū)ο笤O(shè)計OOD。該方法利用五個層次和活動定義和記錄。該方法利用五個層次和活動定義和記錄系統(tǒng)行為,輸入和輸出。這五個層次的活動包括:系統(tǒng)行為,輸入和輸出。這五個層次的活動包括:發(fā)現(xiàn)類及對象。發(fā)現(xiàn)類及對象。識別結(jié)構(gòu)。識別結(jié)構(gòu)。 定義主題。定義主題。 定義屬性。定義屬性。 定義服務(wù)。定義服務(wù)。 第二節(jié)第二節(jié) 面向?qū)ο蟮南到y(tǒng)開發(fā)方法的原理面向?qū)ο蟮南到y(tǒng)開發(fā)方法的原理 二、面向?qū)ο蟮南到y(tǒng)開發(fā)方法二、面向?qū)ο蟮南到y(tǒng)開發(fā)方法3、Coad/Yourdon(尤頓)方法(尤頓)方法面向?qū)ο笤O(shè)計模型需要進一步區(qū)分以下四個部分:面向?qū)ο笤O(shè)計模型需要進一步區(qū)

32、分以下四個部分:問題域部分問題域部分 人機交互部分人機交互部分 任務(wù)管理部分任務(wù)管理部分 數(shù)據(jù)管理部分數(shù)據(jù)管理部分 第二節(jié)第二節(jié) 面向?qū)ο蟮南到y(tǒng)開發(fā)方法的原理面向?qū)ο蟮南到y(tǒng)開發(fā)方法的原理 二、面向?qū)ο蟮南到y(tǒng)開發(fā)方法二、面向?qū)ο蟮南到y(tǒng)開發(fā)方法4、Jacobson(雅寇森)方法(雅寇森)方法 Jacobson(雅寇森)方法與上述三種方法有所不同,(雅寇森)方法與上述三種方法有所不同,它涉及到整個軟件生命周期,包括需求分析、設(shè)計、它涉及到整個軟件生命周期,包括需求分析、設(shè)計、實現(xiàn)和測試等四個階段實現(xiàn)和測試等四個階段。 在該方法中的一個關(guān)鍵概念就是在該方法中的一個關(guān)鍵概念就是use case。use

33、case是指行為相關(guān)的事務(wù)(是指行為相關(guān)的事務(wù)(transaction)序列,)序列,該序列將由用戶在與系統(tǒng)對話中執(zhí)行。因此,每該序列將由用戶在與系統(tǒng)對話中執(zhí)行。因此,每一個一個use case就是一個使用系統(tǒng)的方式,當(dāng)用戶就是一個使用系統(tǒng)的方式,當(dāng)用戶給定一個輸入,就執(zhí)行一個給定一個輸入,就執(zhí)行一個use case的實例并引的實例并引發(fā)執(zhí)行屬于該發(fā)執(zhí)行屬于該use case的一個事務(wù)。的一個事務(wù)。 第二節(jié)第二節(jié) 面向?qū)ο蟮南到y(tǒng)開發(fā)方法的原理面向?qū)ο蟮南到y(tǒng)開發(fā)方法的原理 二、面向?qū)ο蟮南到y(tǒng)開發(fā)方法二、面向?qū)ο蟮南到y(tǒng)開發(fā)方法4、Jacobson(雅寇森)方法(雅寇森)方法 基于這種系統(tǒng)視圖,基于

34、這種系統(tǒng)視圖,Jacobson將將use case模型模型與其它五種系統(tǒng)模型關(guān)聯(lián):與其它五種系統(tǒng)模型關(guān)聯(lián):領(lǐng)域?qū)ο竽P汀nI(lǐng)域?qū)ο竽P?。use case模型根據(jù)領(lǐng)域來表示。模型根據(jù)領(lǐng)域來表示。分析模型。分析模型。use case模型通過分析來構(gòu)造。模型通過分析來構(gòu)造。設(shè)計模型。設(shè)計模型。use case模型通過設(shè)計來具體化。模型通過設(shè)計來具體化。實現(xiàn)模型。實現(xiàn)模型。該模型依據(jù)具體化的設(shè)計來實現(xiàn)該模型依據(jù)具體化的設(shè)計來實現(xiàn)use case模型。模型。測試模型。測試模型。用來測試具體化的用來測試具體化的use case模型。模型。 第二節(jié)第二節(jié) 面向?qū)ο蟮南到y(tǒng)開發(fā)方法的原理面向?qū)ο蟮南到y(tǒng)開發(fā)方法的原

35、理 下面我們將以下面我們將以CoadYourdon的方法為基礎(chǔ),結(jié)合工資管的方法為基礎(chǔ),結(jié)合工資管理實例,簡要地介紹面向?qū)ο蟮南到y(tǒng)開發(fā)過程。為了便于講理實例,簡要地介紹面向?qū)ο蟮南到y(tǒng)開發(fā)過程。為了便于講述,對該例相應(yīng)做了些簡化述,對該例相應(yīng)做了些簡化。一、面向?qū)ο蟮南到y(tǒng)分析一、面向?qū)ο蟮南到y(tǒng)分析 ()問題陳述()問題陳述 開發(fā)人員對問題域的陳述是系統(tǒng)分析的基礎(chǔ)。用戶最初開發(fā)人員對問題域的陳述是系統(tǒng)分析的基礎(chǔ)。用戶最初提出的要求通常都是不夠明確和具體,有時甚至是很含糊提出的要求通常都是不夠明確和具體,有時甚至是很含糊不清的。通過與用戶不斷交流,開發(fā)人員能夠加深對問題不清的。通過與用戶不斷交流,開

36、發(fā)人員能夠加深對問題領(lǐng)域的認識,經(jīng)過討論、修改與補充,逐步明確與具體化,領(lǐng)域的認識,經(jīng)過討論、修改與補充,逐步明確與具體化,獲得對問題域詳盡的陳述?,F(xiàn)先將本例的要求說明陳述如獲得對問題域詳盡的陳述?,F(xiàn)先將本例的要求說明陳述如下:下: 工資管理系統(tǒng)主要對人員、工資數(shù)據(jù)來源、工資數(shù)據(jù)進工資管理系統(tǒng)主要對人員、工資數(shù)據(jù)來源、工資數(shù)據(jù)進行管理,數(shù)據(jù)種類不多,數(shù)據(jù)的使用頻率也不高,但準(zhǔn)確行管理,數(shù)據(jù)種類不多,數(shù)據(jù)的使用頻率也不高,但準(zhǔn)確率要求高。率要求高。 第三節(jié)第三節(jié) 面向?qū)ο蟮南到y(tǒng)開發(fā)實例面向?qū)ο蟮南到y(tǒng)開發(fā)實例 系統(tǒng)需要維護和提供的信息有:系統(tǒng)需要維護和提供的信息有:(1)工資構(gòu)成信息,包括標(biāo)準(zhǔn)工資、工資性津貼、經(jīng)常性獎)工資構(gòu)成信息,包括標(biāo)準(zhǔn)工資、工資性津貼、經(jīng)常性獎金、加班加點工資、其它工資、各

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論