Web應(yīng)用程序開發(fā)的面向?qū)ο蠓椒╛第1頁
Web應(yīng)用程序開發(fā)的面向?qū)ο蠓椒╛第2頁
Web應(yīng)用程序開發(fā)的面向?qū)ο蠓椒╛第3頁
Web應(yīng)用程序開發(fā)的面向?qū)ο蠓椒╛第4頁
Web應(yīng)用程序開發(fā)的面向?qū)ο蠓椒╛第5頁
已閱讀5頁,還剩27頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、第第3章章Web應(yīng)用程序開發(fā)的應(yīng)用程序開發(fā)的 面向?qū)ο蠓椒嫦驅(qū)ο蠓椒?3.1 面向?qū)ο蟾攀雒嫦驅(qū)ο蟾攀?3.2 面向?qū)ο筌浖_發(fā)方法面向?qū)ο筌浖_發(fā)方法 3.1 面向?qū)ο蠓椒ǜ攀雒嫦驅(qū)ο蠓椒ǜ攀?一、面向?qū)ο笈c結(jié)構(gòu)化一、面向?qū)ο笈c結(jié)構(gòu)化 二、面向?qū)ο蟮母拍疃?、面向?qū)ο蟮母拍?三、面向?qū)ο筌浖_發(fā)的優(yōu)點(diǎn)三、面向?qū)ο筌浖_發(fā)的優(yōu)點(diǎn) 四、面向?qū)ο蟮能浖_發(fā)范型四、面向?qū)ο蟮能浖_發(fā)范型 一、面向?qū)ο笈c結(jié)構(gòu)化一、面向?qū)ο笈c結(jié)構(gòu)化 1. 傳統(tǒng)開發(fā)方法存在的主要問題是:傳統(tǒng)開發(fā)方法存在的主要問題是: 軟件工程的早期是以結(jié)構(gòu)化分析和設(shè)計(jì),結(jié)軟件工程的早期是以結(jié)構(gòu)化分析和設(shè)計(jì),結(jié) 構(gòu)化程序?qū)崿F(xiàn)為特征。用結(jié)構(gòu)

2、化方法開發(fā)軟件,構(gòu)化程序?qū)崿F(xiàn)為特征。用結(jié)構(gòu)化方法開發(fā)軟件, 計(jì)算機(jī)的軟件模型與現(xiàn)實(shí)中的問題模型相脫離,計(jì)算機(jī)的軟件模型與現(xiàn)實(shí)中的問題模型相脫離, 存在的主要問題是:存在的主要問題是: 軟件重用性差軟件重用性差 軟件可維護(hù)性差軟件可維護(hù)性差 軟件很難滿足用戶需求軟件很難滿足用戶需求 總的說來,傳統(tǒng)的軟件工程方法所開發(fā)的軟總的說來,傳統(tǒng)的軟件工程方法所開發(fā)的軟 件其穩(wěn)定性、可修改性和可重用性都比較差,為件其穩(wěn)定性、可修改性和可重用性都比較差,為 了克服這個(gè)缺點(diǎn),面向?qū)ο蠓椒ㄒ肓塑浖こ塘丝朔@個(gè)缺點(diǎn),面向?qū)ο蠓椒ㄒ肓塑浖こ?領(lǐng)域。領(lǐng)域。 2. 面向?qū)ο蟮乃伎挤椒ê透拍钅鼙粡V大的用戶面向?qū)ο蟮?/p>

3、思考方法和概念能被廣大的用戶 接受,它的優(yōu)點(diǎn)主要體現(xiàn)在:面向?qū)ο蟮乃枷虢邮埽膬?yōu)點(diǎn)主要體現(xiàn)在:面向?qū)ο蟮乃枷?使得重用更容易,提高了開發(fā)效率;對象通常使得重用更容易,提高了開發(fā)效率;對象通常 作為計(jì)算機(jī)模擬思維,表示真實(shí)世界的抽象。作為計(jì)算機(jī)模擬思維,表示真實(shí)世界的抽象。 3. 盡管面向?qū)ο笃鹪从诔绦蛟O(shè)計(jì),但面向?qū)ο蟊M管面向?qū)ο笃鹪从诔绦蛟O(shè)計(jì),但面向?qū)ο?的概念和應(yīng)用已超越了程序設(shè)計(jì),擴(kuò)展到很寬的概念和應(yīng)用已超越了程序設(shè)計(jì),擴(kuò)展到很寬 的范圍。的范圍。 l如數(shù)據(jù)庫系統(tǒng)、分布式系統(tǒng)、網(wǎng)絡(luò)管理結(jié)構(gòu)、如數(shù)據(jù)庫系統(tǒng)、分布式系統(tǒng)、網(wǎng)絡(luò)管理結(jié)構(gòu)、 人工智能等領(lǐng)域。人工智能等領(lǐng)域。 4. 面向?qū)ο筮@個(gè)思想

4、一進(jìn)入軟件工程領(lǐng)域就在面向?qū)ο筮@個(gè)思想一進(jìn)入軟件工程領(lǐng)域就在 軟件工程領(lǐng)域引起了廣泛的重視。軟件工程領(lǐng)域引起了廣泛的重視。 二、面向?qū)ο蟮母拍疃?、面向?qū)ο蟮母拍?面向?qū)ο竺嫦驅(qū)ο?Object Oriented,OO)的概的概 念經(jīng)過多年的發(fā)展,不同的學(xué)者闡述了各念經(jīng)過多年的發(fā)展,不同的學(xué)者闡述了各 種不同的定義,其中種不同的定義,其中CoadCoad和和YourdonYourdon的觀點(diǎn)的觀點(diǎn) 認(rèn)為認(rèn)為“面向?qū)ο竺嫦驅(qū)ο? =對象對象+ +類類+ +繼承繼承+ +消息消息”。 下面分別從這四個(gè)方面展開講述。下面分別從這四個(gè)方面展開講述。 1. 對象對象 (1) 什么是對象什么是對象 對象的概

5、念是面向?qū)ο蠹夹g(shù)的核心所在,可以從以對象的概念是面向?qū)ο蠹夹g(shù)的核心所在,可以從以 下幾個(gè)方面去理解對象的概念下幾個(gè)方面去理解對象的概念 客觀世界是由各種對象組成的。對象是可以分解的,客觀世界是由各種對象組成的。對象是可以分解的, 復(fù)雜對象可以由比較簡單的對象組合構(gòu)成,因此面向?qū)ο髲?fù)雜對象可以由比較簡單的對象組合構(gòu)成,因此面向?qū)ο?的軟件系統(tǒng)是若干對象的有機(jī)集合。的軟件系統(tǒng)是若干對象的有機(jī)集合。 計(jì)算機(jī)世界中,對象在面向?qū)ο蟪绦蛟O(shè)計(jì)中的定義是計(jì)算機(jī)世界中,對象在面向?qū)ο蟪绦蛟O(shè)計(jì)中的定義是 數(shù)據(jù)以及在其上的操作的結(jié)合體。它是客觀世界在計(jì)算機(jī)數(shù)據(jù)以及在其上的操作的結(jié)合體。它是客觀世界在計(jì)算機(jī) 中的邏

6、輯表示,也就是說對象是客觀世界的實(shí)體或概念在中的邏輯表示,也就是說對象是客觀世界的實(shí)體或概念在 計(jì)算機(jī)中的抽象表示。計(jì)算機(jī)中的抽象表示。 (2) 對象是如何描述的對象是如何描述的 我們通過狀態(tài)和行為來描述對象。對象的狀態(tài)主我們通過狀態(tài)和行為來描述對象。對象的狀態(tài)主 要是指對象內(nèi)部所包含的各種信息,是靜態(tài)的;而要是指對象內(nèi)部所包含的各種信息,是靜態(tài)的;而 對象的行為主要表述對象具有哪些功能,是動(dòng)態(tài)的,對象的行為主要表述對象具有哪些功能,是動(dòng)態(tài)的, 它的作用主要是設(shè)置或改變對象的狀態(tài)。它的作用主要是設(shè)置或改變對象的狀態(tài)。 對象的狀態(tài)被稱為對象的靜態(tài)屬性,在特定的時(shí)對象的狀態(tài)被稱為對象的靜態(tài)屬性,在

7、特定的時(shí) 候,每個(gè)對象有它的狀態(tài)。候,每個(gè)對象有它的狀態(tài)。 每個(gè)對象都有自己的功能。在計(jì)算機(jī)世界中,用每個(gè)對象都有自己的功能。在計(jì)算機(jī)世界中,用 方法,即函數(shù),來描述每個(gè)對象的功能。方法,即函數(shù),來描述每個(gè)對象的功能。 一個(gè)復(fù)雜的系統(tǒng)必然包括多個(gè)對象,這些對象之一個(gè)復(fù)雜的系統(tǒng)必然包括多個(gè)對象,這些對象之 間可能存在的關(guān)系有三種:包含、繼承和關(guān)聯(lián)。間可能存在的關(guān)系有三種:包含、繼承和關(guān)聯(lián)。 2. 類類 (1) 什么是類什么是類 同對象這個(gè)概念類似,我們也可以從兩個(gè)角同對象這個(gè)概念類似,我們也可以從兩個(gè)角 度去理解類的含義。度去理解類的含義。 在現(xiàn)實(shí)世界,類是一組客觀對象的抽象;在現(xiàn)實(shí)世界,類是一

8、組客觀對象的抽象; 在計(jì)算機(jī)世界,類是一種提供具有特定功能的在計(jì)算機(jī)世界,類是一種提供具有特定功能的 模塊和一種代碼共享的手段或工具,即類是實(shí)現(xiàn)模塊和一種代碼共享的手段或工具,即類是實(shí)現(xiàn) 抽象數(shù)據(jù)類型的工具。抽象數(shù)據(jù)類型的工具。 (2) 類與對象的關(guān)系類與對象的關(guān)系 類與對象的關(guān)系,是抽象與具體的關(guān)系;組成類與對象的關(guān)系,是抽象與具體的關(guān)系;組成 類的每個(gè)對象都是該類的實(shí)例。類的每個(gè)對象都是該類的實(shí)例。 (3) 類的描述類的描述 類的確定與描述一般采用歸納法,通過對一類的確定與描述一般采用歸納法,通過對一 些對象進(jìn)行分析,歸納出共同的特性,從而確定些對象進(jìn)行分析,歸納出共同的特性,從而確定 一

9、個(gè)類。不同的面向?qū)ο蟪绦蛟O(shè)計(jì)語言具有不同一個(gè)類。不同的面向?qū)ο蟪绦蛟O(shè)計(jì)語言具有不同 的描述工具,面向?qū)ο蟪绦蛟O(shè)計(jì)中的所有的操作的描述工具,面向?qū)ο蟪绦蛟O(shè)計(jì)中的所有的操作 都可以歸結(jié)為對類的操作。都可以歸結(jié)為對類的操作。 (4) 類的特點(diǎn)類的特點(diǎn) 抽象化抽象化 封裝性封裝性 多態(tài)性多態(tài)性 繼承性繼承性 (5)類的結(jié)構(gòu)類的結(jié)構(gòu) 在客觀世界中有若干類,這些類之間有一定在客觀世界中有若干類,這些類之間有一定 的結(jié)構(gòu)關(guān)系。通常有兩種主要的結(jié)構(gòu)關(guān)系,即一的結(jié)構(gòu)關(guān)系。通常有兩種主要的結(jié)構(gòu)關(guān)系,即一 般般-具體結(jié)構(gòu)關(guān)系,整體具體結(jié)構(gòu)關(guān)系,整體-部分結(jié)構(gòu)關(guān)系。部分結(jié)構(gòu)關(guān)系。 一般一般具體結(jié)構(gòu)稱為分類結(jié)構(gòu),也可以

10、具體結(jié)構(gòu)稱為分類結(jié)構(gòu),也可以 說是說是“或或”關(guān)系,或者是關(guān)系,或者是“is a”關(guān)系。關(guān)系。 整體整體部分結(jié)構(gòu)稱為組裝結(jié)構(gòu),它們之部分結(jié)構(gòu)稱為組裝結(jié)構(gòu),它們之 間的關(guān)系是一種間的關(guān)系是一種“與與”關(guān)系,或者是關(guān)系,或者是“has a”關(guān)系。關(guān)系。 3. 繼承繼承 繼承是父類和子類之間共享數(shù)據(jù)結(jié)構(gòu)和方法繼承是父類和子類之間共享數(shù)據(jù)結(jié)構(gòu)和方法 的機(jī)制,一旦確定一個(gè)類,當(dāng)新的類的實(shí)例被創(chuàng)的機(jī)制,一旦確定一個(gè)類,當(dāng)新的類的實(shí)例被創(chuàng) 建時(shí),即某個(gè)對象被創(chuàng)建時(shí),類的一些屬性,方建時(shí),即某個(gè)對象被創(chuàng)建時(shí),類的一些屬性,方 法就可以被繼承和重用。法就可以被繼承和重用。 繼承機(jī)制的優(yōu)點(diǎn)在于:繼承機(jī)制的優(yōu)點(diǎn)在于

11、: (1) 避免了由于系統(tǒng)內(nèi)類對象封閉而造成數(shù)據(jù)避免了由于系統(tǒng)內(nèi)類對象封閉而造成數(shù)據(jù) 和操作冗余的現(xiàn)象。類與其父類、子類構(gòu)成層次和操作冗余的現(xiàn)象。類與其父類、子類構(gòu)成層次 關(guān)系,稱為類階關(guān)系,稱為類階(class hierarchy)。每個(gè)子類都可。每個(gè)子類都可 以繼承其父類的特性,包括狀態(tài)與行為。同時(shí)子以繼承其父類的特性,包括狀態(tài)與行為。同時(shí)子 類可以有與父類不同的地方,即子類可根據(jù)自身類可以有與父類不同的地方,即子類可根據(jù)自身 特點(diǎn)新增或局部修改特點(diǎn)新增或局部修改(modification)父類的行為而父類的行為而 加以使用,甚至可以覆蓋父類中的定義。加以使用,甚至可以覆蓋父類中的定義。

12、利用繼承,我們只要在原有類的基礎(chǔ)上修改、增利用繼承,我們只要在原有類的基礎(chǔ)上修改、增 補(bǔ)、刪減少量的數(shù)據(jù)和方法,就可以得到子類,補(bǔ)、刪減少量的數(shù)據(jù)和方法,就可以得到子類, 然后生成大小、初態(tài)不同的實(shí)例。然后生成大小、初態(tài)不同的實(shí)例。 (2) 接口的一致性接口的一致性(Consistency of interface), 父類衍生子類的其他操作接口也傳遞給其子類。父類衍生子類的其他操作接口也傳遞給其子類。 (3) 符合軟件可重用性。傳統(tǒng)的結(jié)構(gòu)化方法中符合軟件可重用性。傳統(tǒng)的結(jié)構(gòu)化方法中 的過程調(diào)用,以及類定義出對象,都是重復(fù)使用的過程調(diào)用,以及類定義出對象,都是重復(fù)使用 的典型例子。但它們都比不

13、上繼承的層次高。因的典型例子。但它們都比不上繼承的層次高。因 為通過繼承明顯使軟件開發(fā)速度加快,實(shí)現(xiàn)較高為通過繼承明顯使軟件開發(fā)速度加快,實(shí)現(xiàn)較高 程度的共享。這是繼承最重要的優(yōu)勢。程度的共享。這是繼承最重要的優(yōu)勢。 4. 消息消息 (1) 消息消息是對象之間相互請求或相互協(xié)是對象之間相互請求或相互協(xié) 作的途徑,就是一個(gè)對象向另一個(gè)對象作的途徑,就是一個(gè)對象向另一個(gè)對象 下達(dá)指令,要求某個(gè)對象執(zhí)行某個(gè)功能下達(dá)指令,要求某個(gè)對象執(zhí)行某個(gè)功能 操作。操作。 (2)消息消息有三個(gè)要素有三個(gè)要素 該消息發(fā)給哪個(gè)對象。該消息發(fā)給哪個(gè)對象。 該消息傳遞了什么參數(shù)。該消息傳遞了什么參數(shù)。 該消息是否有反饋信

14、息。該消息是否有反饋信息。 (3)消息通常可以分為消息通??梢苑譃?類,一是公有消息,某類,一是公有消息,某 個(gè)對象,由外界直接向它發(fā)送的消息;二是私個(gè)對象,由外界直接向它發(fā)送的消息;二是私 有消息,某個(gè)對象,由自己向本身發(fā)送的、不有消息,某個(gè)對象,由自己向本身發(fā)送的、不 對外開放的(即外界不必了解的)消息。對外開放的(即外界不必了解的)消息。 三、面向?qū)ο筌浖_發(fā)的優(yōu)點(diǎn)三、面向?qū)ο筌浖_發(fā)的優(yōu)點(diǎn) (1) 提高軟件系統(tǒng)的可重用性。提高軟件系統(tǒng)的可重用性。 可重用性是面向?qū)ο筌浖_發(fā)的一個(gè)核心思路??芍赜眯允敲嫦?qū)ο筌浖_發(fā)的一個(gè)核心思路。 面向?qū)ο蟪绦蛟O(shè)計(jì)的抽象、封裝、繼承、多態(tài)面向?qū)ο蟪绦蛟O(shè)

15、計(jì)的抽象、封裝、繼承、多態(tài) 的四大特點(diǎn)都或多或少的圍繞著可重用性這個(gè)核的四大特點(diǎn)都或多或少的圍繞著可重用性這個(gè)核 心并為之服務(wù)。心并為之服務(wù)。 對象具有的對象具有的“封裝性封裝性”較好地實(shí)現(xiàn)了模塊獨(dú)立較好地實(shí)現(xiàn)了模塊獨(dú)立 和信息隱蔽,使得在構(gòu)造新的軟件系統(tǒng)時(shí)可以方和信息隱蔽,使得在構(gòu)造新的軟件系統(tǒng)時(shí)可以方 便地重用已有的對象。便地重用已有的對象。 面向?qū)ο蟮能浖赜猛緩街饕ǎ翰粩鄤?chuàng)建面向?qū)ο蟮能浖赜猛緩街饕ǎ翰粩鄤?chuàng)建 類的實(shí)例對象,從已有類派生新的子類。派生類類的實(shí)例對象,從已有類派生新的子類。派生類 即可以繼承其父類的屬性、方法,也可以添加新即可以繼承其父類的屬性、方法,也可以添加

16、新 的屬性和方法。的屬性和方法。 (2) 可擴(kuò)展性可擴(kuò)展性 可擴(kuò)展性是對現(xiàn)代應(yīng)用軟件提出的又可擴(kuò)展性是對現(xiàn)代應(yīng)用軟件提出的又 一個(gè)重要要求,即要求應(yīng)用軟件能夠很方一個(gè)重要要求,即要求應(yīng)用軟件能夠很方 便,容易的進(jìn)行擴(kuò)充和修改。面向?qū)ο蟮谋?,容易的進(jìn)行擴(kuò)充和修改。面向?qū)ο蟮?程序設(shè)計(jì)可以實(shí)現(xiàn)很好的可擴(kuò)展性。程序設(shè)計(jì)可以實(shí)現(xiàn)很好的可擴(kuò)展性。 (3) 提高軟件系統(tǒng)的可維護(hù)性提高軟件系統(tǒng)的可維護(hù)性 面向?qū)ο蠓椒ɑ跇?gòu)建問題的對象模面向?qū)ο蠓椒ɑ跇?gòu)建問題的對象模 型來開發(fā)軟件系統(tǒng),易于維護(hù)。型來開發(fā)軟件系統(tǒng),易于維護(hù)。 四、四、 面向?qū)ο蟮能浖_發(fā)范型面向?qū)ο蟮能浖_發(fā)范型 1. 傳統(tǒng)軟件開發(fā)方法主要

17、是結(jié)構(gòu)化的方法。雖然傳統(tǒng)軟件開發(fā)方法主要是結(jié)構(gòu)化的方法。雖然 結(jié)構(gòu)化方法在控制問題求解的規(guī)模和復(fù)雜度,提結(jié)構(gòu)化方法在控制問題求解的規(guī)模和復(fù)雜度,提 高軟件系統(tǒng)的易理解性方面起到了重要作用。但高軟件系統(tǒng)的易理解性方面起到了重要作用。但 是結(jié)構(gòu)化方法很難實(shí)現(xiàn)軟件重用。這導(dǎo)致了軟件是結(jié)構(gòu)化方法很難實(shí)現(xiàn)軟件重用。這導(dǎo)致了軟件 生產(chǎn)效率低下,質(zhì)量難以保證而且難以維護(hù)。生產(chǎn)效率低下,質(zhì)量難以保證而且難以維護(hù)。 2. 面向?qū)ο蟮能浖_發(fā)遵循同傳統(tǒng)的軟件開發(fā)一面向?qū)ο蟮能浖_發(fā)遵循同傳統(tǒng)的軟件開發(fā)一 樣的步驟,同樣要經(jīng)歷分析,設(shè)計(jì),編碼和測試樣的步驟,同樣要經(jīng)歷分析,設(shè)計(jì),編碼和測試 這一個(gè)生命周期。在軟件開

18、發(fā)的生命周期中的每這一個(gè)生命周期。在軟件開發(fā)的生命周期中的每 一個(gè)階段中都運(yùn)用了面向?qū)ο蟮乃枷?。面向?qū)ο笠粋€(gè)階段中都運(yùn)用了面向?qū)ο蟮乃枷?。面向?qū)ο?技術(shù)導(dǎo)致了軟件構(gòu)件可以方便的被復(fù)用,尤其是技術(shù)導(dǎo)致了軟件構(gòu)件可以方便的被復(fù)用,尤其是 基于程序構(gòu)件的復(fù)用,通過組裝可重用的構(gòu)件而基于程序構(gòu)件的復(fù)用,通過組裝可重用的構(gòu)件而 快速地開發(fā)一個(gè)新的系統(tǒng)??焖俚亻_發(fā)一個(gè)新的系統(tǒng)。 3. 大部分的面向?qū)ο筌浖_發(fā)模型都包括了以大部分的面向?qū)ο筌浖_發(fā)模型都包括了以 下的這些內(nèi)容:下的這些內(nèi)容: 分析用戶的需求,提煉對象。分析用戶的需求,提煉對象。 將現(xiàn)實(shí)中問題領(lǐng)域的對象抽象成計(jì)算機(jī)軟件將現(xiàn)實(shí)中問題領(lǐng)域的對象抽

19、象成計(jì)算機(jī)軟件 中的對象。中的對象。 分析并描述對象之間的關(guān)系。分析并描述對象之間的關(guān)系。 根據(jù)用戶的需求,不斷地修改并完善。根據(jù)用戶的需求,不斷地修改并完善。 “面向?qū)ο竺嫦驅(qū)ο蟆焙秃汀盎趯ο蠡趯ο蟆笔莾蓚€(gè)不同的概念。面向是兩個(gè)不同的概念。面向 對象的三大特點(diǎn)(封裝,繼承,多態(tài))缺一不可,通對象的三大特點(diǎn)(封裝,繼承,多態(tài))缺一不可,通 常常“基于對象基于對象”使用對象,但是無法利用現(xiàn)有的對象使用對象,但是無法利用現(xiàn)有的對象 模板產(chǎn)生新的對象類型,繼而產(chǎn)生新的對象,也就是模板產(chǎn)生新的對象類型,繼而產(chǎn)生新的對象,也就是 說說“基于對象基于對象”沒有繼承的特點(diǎn),而沒有繼承的特點(diǎn),而“多態(tài)多態(tài)

20、”是表示是表示 為父類類型的子類對象實(shí)例,沒有了繼承的概念也就為父類類型的子類對象實(shí)例,沒有了繼承的概念也就 無從談?wù)摕o從談?wù)摗岸鄳B(tài)多態(tài)”。現(xiàn)在的很多流行技術(shù)都是基于對?,F(xiàn)在的很多流行技術(shù)都是基于對 象的,它們使用一些封裝好的對象,調(diào)用對象的方法,象的,它們使用一些封裝好的對象,調(diào)用對象的方法, 設(shè)置對象的屬性。但是它們無法讓程序員派生新對象設(shè)置對象的屬性。但是它們無法讓程序員派生新對象 類型。他們只能使用現(xiàn)有對象的方法和屬性。所以當(dāng)類型。他們只能使用現(xiàn)有對象的方法和屬性。所以當(dāng) 你判斷一個(gè)新的技術(shù)是否是面向?qū)ο蟮臅r(shí)候,通??赡闩袛嘁粋€(gè)新的技術(shù)是否是面向?qū)ο蟮臅r(shí)候,通???以使用后兩個(gè)特性來加

21、以判斷。以使用后兩個(gè)特性來加以判斷?!懊嫦?qū)ο竺嫦驅(qū)ο蟆焙秃汀盎?于對象于對象”都實(shí)現(xiàn)了都實(shí)現(xiàn)了“封裝封裝”的概念,但是面向?qū)ο髮?shí)的概念,但是面向?qū)ο髮?shí) 現(xiàn)了現(xiàn)了“繼承和多態(tài)繼承和多態(tài)”,而,而“基于對象基于對象”沒有實(shí)現(xiàn)這些。沒有實(shí)現(xiàn)這些。 3.2 面向?qū)ο筌浖_發(fā)方法簡介面向?qū)ο筌浖_發(fā)方法簡介 一、一、Coad & Yourdon方法方法 二、二、OMT方法方法 三、三、Booch方法方法 四、四、OOSE方法方法 一、一、Coad & Yourdon方法方法 1. Coad & Yourdon方法的特點(diǎn)方法的特點(diǎn) (1) Coad和和Yourdon方法通常被認(rèn)為是最容方法通常被認(rèn)為是

22、最容 易學(xué)習(xí)的面向?qū)ο蠓椒ㄖ?,建模符號相易學(xué)習(xí)的面向?qū)ο蠓椒ㄖ唬7栂?當(dāng)簡單。當(dāng)簡單。 (2)Coad和和Yourdon方法適合于面向?qū)ο蠹挤椒ㄟm合于面向?qū)ο蠹?術(shù)的初學(xué)者使用。術(shù)的初學(xué)者使用。 2. Coad和和Yourdon的的OOA過程簡述如下:過程簡述如下: (1)使用)使用“尋找什么尋找什么(what to look for)”標(biāo)準(zhǔn)標(biāo)準(zhǔn) 來標(biāo)識(shí)對象來標(biāo)識(shí)對象 (2)定義一般)定義一般特殊結(jié)構(gòu)特殊結(jié)構(gòu) (3)定義整體)定義整體部分結(jié)構(gòu)部分結(jié)構(gòu) (4)標(biāo)識(shí)主題)標(biāo)識(shí)主題(子系統(tǒng)構(gòu)件的表示子系統(tǒng)構(gòu)件的表示) (5)定義屬性)定義屬性 (6)定義服務(wù))定義服務(wù) 3. Coad和和Y

23、ourdon的的OOD過程簡述如下:過程簡述如下: (1)問題域部分問題域部分 組合所有的領(lǐng)域特定類組合所有的領(lǐng)域特定類 為應(yīng)用類設(shè)計(jì)適當(dāng)?shù)念悓哟?,區(qū)分父類、子為應(yīng)用類設(shè)計(jì)適當(dāng)?shù)念悓哟?,區(qū)分父類、子 類類 在適當(dāng)時(shí),簡化繼承在適當(dāng)時(shí),簡化繼承 精化設(shè)計(jì)以改善性能精化設(shè)計(jì)以改善性能 (2)人機(jī)交互部分人機(jī)交互部分 定義參與者(定義參與者(actor) 開發(fā)任務(wù)場景開發(fā)任務(wù)場景(use-case) 設(shè)計(jì)用戶命令層次設(shè)計(jì)用戶命令層次 精化用戶交互序列精化用戶交互序列 設(shè)計(jì)相關(guān)的類和類層次設(shè)計(jì)相關(guān)的類和類層次 適當(dāng)時(shí)集成適當(dāng)時(shí)集成GUI類類 (3)任務(wù)管理部分任務(wù)管理部分 標(biāo)識(shí)任務(wù)的類型標(biāo)識(shí)任務(wù)的類型

24、(如,事件驅(qū)動(dòng)、時(shí)鐘驅(qū)動(dòng)如,事件驅(qū)動(dòng)、時(shí)鐘驅(qū)動(dòng)) 建立優(yōu)先級建立優(yōu)先級 標(biāo)識(shí)作為其他任務(wù)的協(xié)調(diào)者的任務(wù)標(biāo)識(shí)作為其他任務(wù)的協(xié)調(diào)者的任務(wù) 為每個(gè)任務(wù)設(shè)計(jì)合適的對象為每個(gè)任務(wù)設(shè)計(jì)合適的對象 (4)數(shù)據(jù)管理部分?jǐn)?shù)據(jù)管理部分 設(shè)計(jì)數(shù)據(jù)結(jié)構(gòu)和布局設(shè)計(jì)數(shù)據(jù)結(jié)構(gòu)和布局 設(shè)計(jì)管理數(shù)據(jù)結(jié)構(gòu)所需的服務(wù)設(shè)計(jì)管理數(shù)據(jù)結(jié)構(gòu)所需的服務(wù) 標(biāo)識(shí)可以協(xié)助實(shí)現(xiàn)數(shù)據(jù)管理的工具標(biāo)識(shí)可以協(xié)助實(shí)現(xiàn)數(shù)據(jù)管理的工具 設(shè)計(jì)適當(dāng)?shù)念惡皖悓哟卧O(shè)計(jì)適當(dāng)?shù)念惡皖悓哟?二、二、OMT方法方法 1. OTM方法的特點(diǎn)方法的特點(diǎn) 對象建模技術(shù)對象建模技術(shù)(OMT) 主要用于分析、系統(tǒng)主要用于分析、系統(tǒng) 設(shè)計(jì)和對象級設(shè)計(jì)。設(shè)計(jì)和對象級設(shè)計(jì)。 2. OTM方法分

25、析活動(dòng)創(chuàng)建三個(gè)模型方法分析活動(dòng)創(chuàng)建三個(gè)模型 對象模型對象模型 動(dòng)態(tài)模型動(dòng)態(tài)模型 功能模型功能模型 (1)建立對象模型)建立對象模型 對象模型是三個(gè)模型中最關(guān)鍵的模型,它對象模型是三個(gè)模型中最關(guān)鍵的模型,它 的作用是描述系統(tǒng)的靜態(tài)結(jié)構(gòu),包括構(gòu)成系統(tǒng)的作用是描述系統(tǒng)的靜態(tài)結(jié)構(gòu),包括構(gòu)成系統(tǒng) 的類和對象,它們的屬性和操作,以及它們之的類和對象,它們的屬性和操作,以及它們之 間的關(guān)系。間的關(guān)系。 建立對象模型的主要內(nèi)容是:建立對象模型的主要內(nèi)容是: 標(biāo)識(shí)和問題相關(guān)的類標(biāo)識(shí)和問題相關(guān)的類 定義屬性和關(guān)聯(lián)定義屬性和關(guān)聯(lián) 定義對象鏈接定義對象鏈接 用繼承來組織對象類用繼承來組織對象類 (2)建立動(dòng)態(tài)模型)建

26、立動(dòng)態(tài)模型 動(dòng)態(tài)模型著重于系統(tǒng)的控制邏輯。動(dòng)態(tài)模型著重于系統(tǒng)的控制邏輯。 建立動(dòng)態(tài)模型的主要內(nèi)容是:建立動(dòng)態(tài)模型的主要內(nèi)容是: 準(zhǔn)備場景準(zhǔn)備場景 定義事件并為每個(gè)場景開發(fā)一個(gè)事件軌跡定義事件并為每個(gè)場景開發(fā)一個(gè)事件軌跡 構(gòu)造事件流圖解構(gòu)造事件流圖解 開發(fā)狀態(tài)圖解開發(fā)狀態(tài)圖解 復(fù)審行為的一致性和完整性復(fù)審行為的一致性和完整性 它包括兩個(gè)圖,一是狀態(tài)圖,一是事件追蹤圖。它包括兩個(gè)圖,一是狀態(tài)圖,一是事件追蹤圖。 狀態(tài)圖狀態(tài)圖 狀態(tài)圖側(cè)重于描述每一類對象的動(dòng)態(tài)行為。在狀態(tài)圖側(cè)重于描述每一類對象的動(dòng)態(tài)行為。在 狀態(tài)圖中,狀態(tài)是對某一時(shí)刻中屬性特征的概括,狀態(tài)圖中,狀態(tài)是對某一時(shí)刻中屬性特征的概括, 用橢圓表示;而用箭頭表示從一個(gè)狀態(tài)到另一個(gè)用橢圓表示;而用箭頭表示從一個(gè)狀態(tài)到另一個(gè) 狀態(tài)的遷移,表示對象在何時(shí)對系統(tǒng)內(nèi)外發(fā)生的狀態(tài)的遷移,表示對象在何時(shí)對系統(tǒng)內(nèi)外發(fā)生的 哪些事件做出何種響應(yīng)。附加在箭頭上的短語說哪些事件做出何種響應(yīng)。附加在箭頭上的短語說 明觸發(fā)此狀態(tài)遷移的事件。在圖明觸發(fā)此狀態(tài)遷移的事件。在圖3.3.3中,中,“事件事件A A” 是一個(gè)單純的事件,

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論