版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、1第第7章章 面向?qū)ο筌浖_發(fā)方法面向?qū)ο筌浖_發(fā)方法 學(xué)習(xí)目標(biāo) l面向?qū)ο蟮姆治鲞^程l面向?qū)ο蟮脑O(shè)計過程l面向?qū)ο笙到y(tǒng)的實(shí)現(xiàn)2第第7章章 面向?qū)ο蟮能浖_發(fā)方法面向?qū)ο蟮能浖_發(fā)方法 教學(xué)內(nèi)容 7.1 面向?qū)ο蠓治?7.2 面向?qū)ο笤O(shè)計 7.3 面向?qū)ο笙到y(tǒng)的實(shí)現(xiàn) 7.4 面向?qū)ο鬁y試 本章小結(jié) 37.1 面向?qū)ο蠓治雒嫦驅(qū)ο蠓治?面向?qū)ο蠓治龅哪康氖菍陀^世界的系統(tǒng)建立對象模型、動態(tài)模型和功能模型。7.1.1 面向?qū)ο蠓治鲞^程面向?qū)ο蠓治鲞^程1基本過程概述基本過程概述 面向?qū)ο蠓治?,就是抽取和整理用戶需求并建立問題域精確模型的過程。 分析過程從分析陳述用戶需求的文件開始。 系統(tǒng)分析員應(yīng)該深
2、入理解用戶需求,抽象出目標(biāo)系統(tǒng)的本質(zhì)屬性,并用模型準(zhǔn)確地表示出來。返回目錄47.1.1 面向?qū)ο蠓治鲞^程面向?qū)ο蠓治鲞^程23個模型和個模型和5個層次個層次 面向?qū)ο蠼5玫降哪P桶到y(tǒng)的3個要素,即靜態(tài)結(jié)構(gòu)(對象模型)、交互次序(動態(tài)模型)和數(shù)據(jù)變換(功能模型)。 復(fù)雜問題(大型系統(tǒng))的對象模型通常由下述5個層次組成:主題層、類與對象層、結(jié)構(gòu)層、屬性層和服務(wù)層。57.1 面向?qū)ο蠓治雒嫦驅(qū)ο蠓治?綜合上述,在概念上可以認(rèn)為,面向?qū)ο蠓治龃篌w上按照下列順序進(jìn)行:尋找類與對象,識別結(jié)構(gòu),識別主題,定義屬性,建立動態(tài)模型,建立功能模型,定義服務(wù)。但分析不可能嚴(yán)格按預(yù)定順序進(jìn)行,大型、復(fù)雜系統(tǒng)的模型
3、需要反復(fù)構(gòu)造多遍才能建成。通常,先構(gòu)造出模型的子集,然后逐漸擴(kuò)充,直到完全、充分地理解了整個問題,才能最終把模型建立起來。 返回目錄6 面向?qū)ο蠓治鍪滓墓ぷ鳎墙栴}域的對象模型。這個模型描述了現(xiàn)實(shí)世界中的“類與對象”以及它們之間的關(guān)系,表示了目標(biāo)系統(tǒng)的靜態(tài)數(shù)據(jù)結(jié)構(gòu)。 1.1.識別類與對象識別類與對象(1)尋找關(guān)聯(lián)的類與對象 識別對象需要對對象的分類加以認(rèn)識,一般對象有幾種形式: 1)與系統(tǒng)相關(guān)的外部物理實(shí)體,如打印機(jī)、各種物理設(shè)備等。返回目錄7.1.2 建立對象模型建立對象模型77.1.2 建立對象模型建立對象模型 2)與目標(biāo)系統(tǒng)交互的人員及各種角色。如用戶、程序員等。 3)系統(tǒng)運(yùn)行中要
4、記憶的事件,如故障錯誤日志的報告等。 4)各種環(huán)境因素、問題等。 5)客觀存在的事物、概念。8(2)篩選出正確的類和對象)篩選出正確的類和對象 1)刪除冗余的類和對象。 2)刪除無關(guān)類和對象。 3)應(yīng)把籠統(tǒng)和模糊的名詞去掉。 4)若某些對象其實(shí)是另一對象的屬性,則可以把它歸到屬性中,從而省去這個對象,若不能看成屬性,則把它獨(dú)立為一個對象。 5)有些對象還可以看成是某個對象的操作,應(yīng)根據(jù)它是適合作為對象還是適合作為對象的操作,從而決定應(yīng)不應(yīng)該刪除這個對象。 6)去掉僅與系統(tǒng)實(shí)現(xiàn)有關(guān)的候選類和對象。在系統(tǒng)分析階段不應(yīng)過早地考慮系統(tǒng)實(shí)現(xiàn)。 7.1.2 建立對象模型建立對象模型92. 確定結(jié)構(gòu)確定結(jié)構(gòu)
5、 在確定了類與對象后,需要將類、對象間的關(guān)系用結(jié)構(gòu)表示出來。類、對象間的關(guān)系類型主要有兩種:一般特殊關(guān)系、整體部分關(guān)系。(1)一般特殊結(jié)構(gòu) 一般特殊結(jié)構(gòu)反映的是一般類與特殊類間的關(guān)系。如圖7.1所示7.1.2 建立對象模型建立對象模型107.1.2 建立對象模型建立對象模型學(xué)生大專生本科生研究生圖7.1 一般-特殊結(jié)構(gòu)117.1.2 建立對象模型建立對象模型(2)整體部分結(jié)構(gòu) 又稱為組裝結(jié)構(gòu),把屬于部分的對象組合成具有整體性的對象。整體部分關(guān)系描述的是對象之間的關(guān)系,而不是類之間的關(guān)系。如圖7.2所示控制板小鍵盤顯示板指示燈圖7.2 整體-部分結(jié)構(gòu)12(3)關(guān)聯(lián)關(guān)系)關(guān)聯(lián)關(guān)系 類的關(guān)聯(lián)關(guān)系反映
6、對象之間相互依賴、相互作用的關(guān)系。如圖7.3(a)所示。 1)階。就是關(guān)聯(lián)的對象的個數(shù)。階數(shù)用標(biāo)在連線端點(diǎn)的單個數(shù)字或數(shù)值區(qū)間表示。如圖7.3(b)所示。學(xué)生課程學(xué)生課程學(xué)習(xí)成績學(xué)分mn(a) (b) 圖7.3 關(guān)聯(lián)關(guān)系和鏈屬性7.1.2 建立對象模型建立對象模型137.1.2 建立對象模型建立對象模型2)鏈屬性 鏈屬性就是關(guān)聯(lián)的性質(zhì)。鏈屬性與關(guān)聯(lián)之間用虛線連接。如圖7.3(b)所示。3)限定 限定用來對關(guān)聯(lián)的含義做某種約束,利用限定詞通常能有效地減少關(guān)聯(lián)的階數(shù)。14教師學(xué)生畢業(yè)設(shè)計成績mn教師畢業(yè)設(shè)計成績學(xué)生k(b)圖7.4 教師與學(xué)生的關(guān)聯(lián)關(guān)系(a)7.1.2 建立對象模型建立對象模型15
7、3. 3. 確定主題確定主題 主題是在對象和結(jié)構(gòu)的基礎(chǔ)上更高一層的抽象,是為了提供面向?qū)ο蠓治鼋Y(jié)果的可見性。主題是一種指導(dǎo)讀者和用戶研究大型復(fù)雜模型的機(jī)制。(1)主題的選擇。主題的選擇應(yīng)遵循以下兩點(diǎn): 1)為每個對象相應(yīng)地增加一個主題。 2)為每個結(jié)構(gòu)也相應(yīng)地增加一個主題。7.1.2 建立對象模型建立對象模型167.1.2 建立對象模型建立對象模型(2)劃分精煉主題 1)從問題域入手,使用整體-部分關(guān)系結(jié)構(gòu)對問題域進(jìn)行劃分,而不是按功能分解的方式劃分。 2)利用高內(nèi)聚、低耦合的原則,使主題間的依賴性和交互性達(dá)到最小。 3)如果主題數(shù)超過7個,則應(yīng)對主題進(jìn)行精煉,抽象出更高層次的主題。174.
8、4. 定義屬性定義屬性1)標(biāo)識屬性 識別屬性需要考慮以下幾個問題: (1)怎樣描述一個對象的特征? (2)該對象具有哪方面的狀態(tài)和信息? (3)該對象在目標(biāo)系統(tǒng)中的作用如何?怎樣完成這些功能? 確定屬性要注意以下幾個方面: (1)不能誤把一個對象當(dāng)作屬性。 (2)刪除多余的或沒有意義的屬性。 (3)僅有一種相關(guān)屬性的對象可以表示為其他對象的屬性。 (4)不能把對象的內(nèi)部狀態(tài)當(dāng)成屬性。 (5)為保持模型的簡潔性,對象的導(dǎo)出屬性可略去。 (6)不要誤把關(guān)聯(lián)類的屬性當(dāng)作一般對象的屬性。7.1.2 建立對象模型建立對象模型182)實(shí)例連接 實(shí)例連接表示了兩個或多個實(shí)例間的聯(lián)系。實(shí)例連接有一對一(1:1
9、)、一對多(1:n)和多對多(m:n)三種連接。5. 5. 定義服務(wù)定義服務(wù)1)常規(guī)操作2)從事件導(dǎo)出的操作3)與處理或用例對應(yīng)的操作 4)利用繼承減少冗余操作7.1.2 建立對象模型建立對象模型19 要建立動態(tài)模型,首先要編寫具有交互作用的腳本。然后從腳本中提取事件,確定事件與對象之間的觸發(fā)關(guān)系。接著排列事件的順序,確定每個對象可能的狀態(tài)及狀態(tài)間的轉(zhuǎn)換關(guān)系,用狀態(tài)圖描繪它們。最后檢查狀態(tài)圖間的正確性和一致性。 狀態(tài)圖描述的是每一類對象的動態(tài)行為以及它們的關(guān)系。動態(tài)模型就是由多個狀態(tài)圖通過共享事件組成的。7.1.3 建立動態(tài)模型建立動態(tài)模型201. 編寫腳本編寫腳本 在建立動態(tài)模型過程中,腳本
10、是系統(tǒng)執(zhí)行某個功能的一系列事件。腳本通常起始于一個系統(tǒng)外部的輸入事件,結(jié)束于一個系統(tǒng)外部的輸出事件,它可以包括這個期間發(fā)生的所有的系統(tǒng)內(nèi)部事件。 如打電話、通話過程的腳本。打電話、通話過程的一系列事件如下:7.1.3 建立動態(tài)模型建立動態(tài)模型212. 2. 設(shè)計用戶界面設(shè)計用戶界面 動態(tài)模型著重表示應(yīng)用系統(tǒng)的控制邏輯。但是在分析階段不能忽略用戶界面的設(shè)計。應(yīng)該快速建立用戶界面原型,供用戶試用與評價。3. 3. 畫順序圖或活動圖畫順序圖或活動圖 打電話、通話過程的順序圖。如圖7.5所示。 還可以用活動圖來描述打電話的過程。如圖7.6所示。7.1.3 建立動態(tài)模型建立動態(tài)模型22圖7.5 打電話、
11、通話的順序圖圖7.6 打電話的活動圖順序圖和活動圖順序圖和活動圖23 4. 4.畫狀態(tài)轉(zhuǎn)換圖畫狀態(tài)轉(zhuǎn)換圖 面向?qū)ο蠓椒ㄖ械臓顟B(tài)轉(zhuǎn)換圖,與傳統(tǒng)方法中數(shù)據(jù)對象的狀態(tài)轉(zhuǎn)換圖表示方法相同。如撥打電話的狀態(tài)轉(zhuǎn)換圖如圖7.7所示。圖7.7 撥打電話狀態(tài)轉(zhuǎn)換圖7.1.3 建立動態(tài)模型建立動態(tài)模型返回目錄24 功能模型描述系統(tǒng)的數(shù)據(jù)處理功能,反映了用戶對系統(tǒng)的需求。功能模型一般由一組數(shù)據(jù)流圖和一組用例圖組成。 建立功能模型的一般步驟是:1. 確定輸入和輸出 建立功能模型時,應(yīng)當(dāng)確定輸入、輸出數(shù)據(jù)的方式、格式、范圍、約束 條件、操作規(guī)范等。2. 畫數(shù)據(jù)流圖 可用多張數(shù)據(jù)流圖、程序流程圖等來表示。用標(biāo)準(zhǔn)的符號表示
12、每個處理加工,描述各個部分功能。3. 優(yōu)化處理。7.1.4 建立功能模型建立功能模型返回目錄257.2 面向?qū)ο笤O(shè)計面向?qū)ο笤O(shè)計 面向?qū)ο笤O(shè)計是把分析階段得到的需求,轉(zhuǎn)變?yōu)榉铣杀竞唾|(zhì)量要求的、抽象的系統(tǒng)實(shí)現(xiàn)方案的過程。 從面向?qū)ο蠓治龅矫嫦驅(qū)ο笤O(shè)計(OOD),是一個逐漸擴(kuò)充模型的過程。因此,分析和設(shè)計活動是一個多次反復(fù)迭代的過程。面向?qū)ο蠓椒▽W(xué)在概念和表示方法上的一致性,保證了在各項開發(fā)活動之間的平滑(無縫)過渡,領(lǐng)域?qū)<液烷_發(fā)人員比較容易地跟蹤整個系統(tǒng)開發(fā)過程,這是面向?qū)ο蠓椒ㄅc傳統(tǒng)方法比較起來所具有的一大優(yōu)勢。 267.2.1 面向?qū)ο笤O(shè)計準(zhǔn)則面向?qū)ο笤O(shè)計準(zhǔn)則1. 1. 模塊化模塊化2.
13、 2. 抽象抽象3. 3. 信息隱蔽信息隱蔽4. 4. 強(qiáng)內(nèi)聚性強(qiáng)內(nèi)聚性 (1)類內(nèi)聚(不包含無用的屬性和服務(wù)) (2)一般-特殊內(nèi)聚 (3)服務(wù)內(nèi)聚(一個服務(wù)僅完成一個功能) 277.2.1 面向?qū)ο笤O(shè)計準(zhǔn)則面向?qū)ο笤O(shè)計準(zhǔn)則5. 5. 弱耦合性弱耦合性 (1)交互耦合 對象之間的耦合通過消息連接來實(shí)現(xiàn),這種耦合稱為交互耦合。 (2)繼承耦合 通過繼承關(guān)系結(jié)合的父類和子類,彼此間結(jié)合越緊密越好。6. 6. 重用性重用性28 面向?qū)ο蠓椒▽W(xué)開發(fā)軟件,也積累了一些經(jīng)驗。得出了幾條啟發(fā)規(guī)則: 1. 設(shè)計結(jié)果應(yīng)該清晰易懂 2. 一般-特殊結(jié)構(gòu)的深度應(yīng)適當(dāng) 3. 設(shè)計簡單的類 4. 使用簡單的協(xié)議 5.
14、 使用簡單的服務(wù) 6. 把設(shè)計變動減至最小7.2.2 啟發(fā)式規(guī)則啟發(fā)式規(guī)則29 采用面向?qū)ο蠓椒ㄔO(shè)計軟件系統(tǒng)時,面向?qū)ο笤O(shè)計模型,即求解域的對象模型,也由主題、類與對象、結(jié)構(gòu)、屬性、服務(wù)等5個層次組成。此外,大多數(shù)系統(tǒng)的面向?qū)ο笤O(shè)計模型,在邏輯上都由4大部分組成。這4大部分對應(yīng)于組成目標(biāo)系統(tǒng)的4個子系統(tǒng),它們分別是問題域子系統(tǒng)、人機(jī)交互子系統(tǒng)、任務(wù)管理子系統(tǒng)和數(shù)據(jù)管理子系統(tǒng)。如圖所示:7.2.3 系統(tǒng)設(shè)計系統(tǒng)設(shè)計307.2.3 系統(tǒng)設(shè)計系統(tǒng)設(shè)計l圖7.8 典型的面向?qū)ο笤O(shè)計模型311 1子系統(tǒng)之間的兩種交互方式子系統(tǒng)之間的兩種交互方式 在軟件系統(tǒng)中,子系統(tǒng)之間的交互有兩種可能的方式: (1)客
15、戶-供應(yīng)商關(guān)系 在這種關(guān)系中,作為“客戶”的子系統(tǒng)調(diào)用作為“供應(yīng)商”的子系統(tǒng),后者完成某些服務(wù)工作并返回結(jié)果。 (2)平等伙伴關(guān)系 每個子系統(tǒng)都可能調(diào)用其他子系統(tǒng),因此每個子系統(tǒng)都必須了解其他子系統(tǒng)的接口。7.2.3 系統(tǒng)設(shè)計系統(tǒng)設(shè)計327.2.3 系統(tǒng)設(shè)計系統(tǒng)設(shè)計2 2組織系統(tǒng)的兩種方案組織系統(tǒng)的兩種方案 (1)層次組織:把軟件系統(tǒng)組織成一個層次系統(tǒng),每層是一個子系統(tǒng)。上層在下層的基礎(chǔ)上建立,下層為實(shí)現(xiàn)上層功能而提供必要的服務(wù)。 (2)塊狀組織:把軟件系統(tǒng)垂直地分解成若干個相對獨(dú)立的、弱耦合的子系統(tǒng),一個子系統(tǒng)相當(dāng)于一塊,每塊提供一種類型的服務(wù)。3 3設(shè)計系統(tǒng)的拓?fù)浣Y(jié)構(gòu)設(shè)計系統(tǒng)的拓?fù)浣Y(jié)構(gòu) 典
16、型的拓?fù)浣Y(jié)構(gòu)有管道型、樹型、星型等。設(shè)計者應(yīng)該采用與問題結(jié)構(gòu)相適應(yīng)的、盡可能簡單的拓?fù)浣Y(jié)構(gòu),以減少子系統(tǒng)之間的交互數(shù)量。33 主要工作有以下幾個方面:1 1需求調(diào)整需求調(diào)整2 2對已有類的重用對已有類的重用 (1)在已有類中找到能被問題域重用的類 (2)由重用的類派生出問題域的類 (3)添加定義問題域類,修改與問題域類相關(guān)的關(guān)聯(lián)3 3組合問題域類組合問題域類4 4調(diào)整繼承關(guān)系調(diào)整繼承關(guān)系7.2.4 問題域的設(shè)計問題域的設(shè)計341 1人機(jī)界面設(shè)計的準(zhǔn)則人機(jī)界面設(shè)計的準(zhǔn)則 (1)操作過程簡單容易。 (2)要有相應(yīng)的提示信息。 (3)界面易學(xué)易用,用戶可以通過說明資料掌握界面的使用。 (4)若系統(tǒng)出
17、錯或用戶操作錯誤,能恢復(fù)原先出錯前的狀態(tài)。7.2.5 人機(jī)界面的設(shè)計人機(jī)界面的設(shè)計357.2.5 人機(jī)界面的設(shè)計人機(jī)界面的設(shè)計2 2設(shè)計人機(jī)交互部分設(shè)計人機(jī)交互部分 設(shè)計人機(jī)交互子系統(tǒng)的策略如下: 分類用戶 為設(shè)計出符合用戶需要的界面,設(shè)計者首先應(yīng)該把將來可能與系統(tǒng)交互的用戶分類。 描述用戶 應(yīng)該仔細(xì)了解將來使用系統(tǒng)的每類用戶的情況,把獲得的下列各項信息記錄下來。(用戶類型、使用系統(tǒng)欲達(dá)到的目的、特征、技能水平等)367.2.5 人機(jī)界面的設(shè)計人機(jī)界面的設(shè)計設(shè)計命令層次 (1)研究人機(jī)交互活動的方式。 (2)建立一個初始的命令層。如命令行、菜單、工具等。 (3)細(xì)化每個命令層,為用戶提供操作和
18、服務(wù)。3 3設(shè)計人機(jī)交互的類設(shè)計人機(jī)交互的類 根據(jù)圖形用戶界面設(shè)計出交互部分的類,包括窗口、菜單等。37 分析任務(wù)的并發(fā)性分析任務(wù)的并發(fā)性 通過面向?qū)ο蠓治鼋⑵饋淼膭討B(tài)模型,是分析并發(fā)性的主要依據(jù)。如果兩個對象彼此間不存在交互,或者它們同時接受事件,則這兩個對象在本質(zhì)上是并發(fā)的。1 1確定事件驅(qū)動任務(wù)確定事件驅(qū)動任務(wù)l 某些任務(wù)是由事件驅(qū)動的,這類任務(wù)可能主要完成通信工作。2 2確定時鐘驅(qū)動任務(wù)確定時鐘驅(qū)動任務(wù)l 某些任務(wù)每隔一定時間間隔就被觸發(fā)以執(zhí)行某些處理,是一個周期性的工作過程。7.2.6 任務(wù)管理部分設(shè)計任務(wù)管理部分設(shè)計387.2.6 任務(wù)管理部分設(shè)計任務(wù)管理部分設(shè)計3 3確定優(yōu)先任
19、務(wù)確定優(yōu)先任務(wù) 優(yōu)先任務(wù)可以滿足高優(yōu)先級或低優(yōu)先級的處理需求。 (1)高優(yōu)先級 (2)低優(yōu)先級4 4確定關(guān)鍵任務(wù)確定關(guān)鍵任務(wù) 是有關(guān)系統(tǒng)成功或失敗的關(guān)鍵處理。5 5確定協(xié)調(diào)任務(wù)確定協(xié)調(diào)任務(wù) 當(dāng)系統(tǒng)中存在三個以上任務(wù)時,就應(yīng)該增加一個任務(wù),用它作為協(xié)調(diào)任務(wù)。6 6定義每個任務(wù)定義每個任務(wù)397.2.7 數(shù)據(jù)管理部分設(shè)計數(shù)據(jù)管理部分設(shè)計 數(shù)據(jù)管理子系統(tǒng)是系統(tǒng)存儲或檢索對象的基本設(shè)施,它建立在某種數(shù)據(jù)存儲管理系統(tǒng)之上,并且隔離了數(shù)據(jù)存儲管理模式(文件、關(guān)系數(shù)據(jù)庫或面向?qū)ο髷?shù)據(jù)庫)的影響。 數(shù)據(jù)管理方法主要有3種:文件管理、關(guān)系數(shù)據(jù)庫管理和面向?qū)ο髷?shù)據(jù)庫管理。407.2.7 數(shù)據(jù)管理部分設(shè)計數(shù)據(jù)管理部
20、分設(shè)計 數(shù)據(jù)存儲管理部分的設(shè)計包括數(shù)據(jù)存放方法的設(shè)計和相應(yīng)操作的設(shè)計。設(shè)計時既要設(shè)計數(shù)據(jù)格式又要設(shè)計相應(yīng)的服務(wù)。l1 1數(shù)據(jù)存放設(shè)計數(shù)據(jù)存放設(shè)計 考慮將數(shù)據(jù)采用文件存放、關(guān)系數(shù)據(jù)庫存放或面向?qū)ο髷?shù)據(jù)庫存放。l2 2設(shè)計相應(yīng)服務(wù)設(shè)計相應(yīng)服務(wù) 如果某個類的對象需要存儲起來,則在這個類中增加一個屬性和服務(wù),用于完成存儲對象自身的工作。41l1 1對象描述對象描述 (1)協(xié)議描述(是一組消息和對消息的注釋) (2)實(shí)現(xiàn)描述(由傳送給對象的消息所蘊(yùn)含的每個操作的實(shí)現(xiàn)細(xì)節(jié))l2 2設(shè)計類中的服務(wù)設(shè)計類中的服務(wù) (1)確定類中應(yīng)有的服務(wù) 需要綜合考慮對象模型、動態(tài)模型和功能模型,才能正確確定類中應(yīng)有的服務(wù)。
21、 (2)設(shè)計實(shí)現(xiàn)服務(wù)的方法7.2.8 對象設(shè)計對象設(shè)計427.2.8 對象設(shè)計對象設(shè)計l3 3設(shè)計類的關(guān)聯(lián)設(shè)計類的關(guān)聯(lián) 關(guān)聯(lián)分為單向關(guān)聯(lián)和雙向關(guān)聯(lián)兩種方式。l4 4鏈屬性的實(shí)現(xiàn)鏈屬性的實(shí)現(xiàn) l5 5設(shè)計的優(yōu)化設(shè)計的優(yōu)化 設(shè)計優(yōu)化要取得用戶和系統(tǒng)應(yīng)用領(lǐng)域?qū)<业恼J(rèn)可。返回目錄437.3 面向?qū)ο笙到y(tǒng)的實(shí)現(xiàn)面向?qū)ο笙到y(tǒng)的實(shí)現(xiàn)7.3.1 選擇程序設(shè)計語言選擇程序設(shè)計語言1面向?qū)ο笳Z言的優(yōu)點(diǎn) (1)一致的表示方法 (2)可重用性 (3)可維護(hù)性 2面向?qū)ο笳Z言的技術(shù)特點(diǎn) (1)支持類與對象概念的機(jī)制 (2)實(shí)現(xiàn)聚集結(jié)構(gòu)的機(jī)制 (3)實(shí)現(xiàn)泛化結(jié)構(gòu)的機(jī)制 (4)實(shí)現(xiàn)屬性和服務(wù)的機(jī)制 (5)類型檢查機(jī)制 (6
22、)類庫 (7)效率 (8)持久保存對象的機(jī)制 (9)參數(shù)化的類的機(jī)制 (10)開發(fā)環(huán)境3選擇面向?qū)ο笳Z言的實(shí)際因素 (1)將來能否占主導(dǎo)地位 (2)可重用性 (3)類庫和開發(fā)環(huán)境 (4)其他因素447.3 面向?qū)ο笙到y(tǒng)的實(shí)現(xiàn)面向?qū)ο笙到y(tǒng)的實(shí)現(xiàn)7.3.2 面向?qū)ο蟪绦蛟O(shè)計面向?qū)ο蟪绦蛟O(shè)計1提高可重用性提高可重用性 (1)提高方法的內(nèi)聚。 (2)減小方法的規(guī)模。 (3)保持方法的一致性。 (4)把策略和實(shí)現(xiàn)分開。 (5)全面覆蓋輸入條件的各種可能組合。 (6)盡量不使用全局信息。 (7)充分利用繼承機(jī)制。 457.3.2 面向?qū)ο蟪绦蛟O(shè)計面向?qū)ο蟪绦蛟O(shè)計2. 2. 提高可擴(kuò)充性提高可擴(kuò)充性(1)封
23、裝類的實(shí)現(xiàn)細(xì)節(jié)。 (2)不要用一個方法遍歷多條關(guān)聯(lián)鏈。 (3)避免使用多分支語句 。(4)精心選擇和定義公有方法。 3 3提高健壯性提高健壯性(1)預(yù)防用戶的錯誤操作。(2)檢查參數(shù)的合法性。 (3)不要預(yù)先設(shè)定數(shù)據(jù)結(jié)構(gòu)的限制條件。 (4)先測試后優(yōu)化。返回目錄467.4 面向?qū)ο鬁y試面向?qū)ο鬁y試7.4.1 面向?qū)ο鬁y試面向?qū)ο鬁y試 結(jié)合傳統(tǒng)的測試步驟的劃分,可以把面向?qū)ο筌浖y試分為:l 面向?qū)ο蠓治龅臏y試(OOA Test)l 面向?qū)ο笤O(shè)計的測試(OOD Test)l 面向?qū)ο缶幊痰臏y試(OOP Test)l 面向?qū)ο髥卧獪y試(OO Unit Test)l 面向?qū)ο蠹蓽y試(OO Inte
24、grate Test)l 面向?qū)ο笙到y(tǒng)測試(OO System Test)477.4.2 面向?qū)ο蟮臏y試策略面向?qū)ο蟮臏y試策略 1面向?qū)ο蠓治觯∣OA)的測試 對面向?qū)ο蠓治龅臏y試從下面幾個方面考慮:l對認(rèn)定的對象的測試l對認(rèn)定的結(jié)構(gòu)的測試l對認(rèn)定的主題的測試l對定義的屬性和實(shí)例關(guān)聯(lián)的測試l對定義的服務(wù)和消息關(guān)聯(lián)的測試7.4 面向?qū)ο鬁y試面向?qū)ο鬁y試487.4 面向?qū)ο鬁y試面向?qū)ο鬁y試2.2.面向?qū)ο笤O(shè)計的測試面向?qū)ο笤O(shè)計的測試 面向?qū)ο笤O(shè)計以面向?qū)ο蠓治鰹榛A(chǔ)歸納出類,并建立類結(jié)構(gòu)或進(jìn)一步構(gòu)造成類庫,實(shí)現(xiàn)分析結(jié)果對問題空間的抽象。面向?qū)ο笤O(shè)計是面向?qū)ο蠓治龅倪M(jìn)一步更高層的抽象。 面向?qū)ο笤O(shè)計
25、的測試應(yīng)從以下幾個方面考慮:l 對認(rèn)定的類的測試l 對構(gòu)造的類層次結(jié)構(gòu)的測試l 對類庫的支持的測試497.4 面向?qū)ο鬁y試面向?qū)ο鬁y試3.3.面向?qū)ο筌浖膯卧獪y試面向?qū)ο筌浖膯卧獪y試 面向?qū)ο筌浖念悳y試等價于傳統(tǒng)軟件的單元測試。單元是封裝的類和對象。面向?qū)ο筌浖念悳y試是由封裝在類中的操作和類的狀態(tài)行為所驅(qū)動的。一些傳統(tǒng)的測試方法在面向?qū)ο蟮膯卧獪y試中都可以使用。如等價類劃分法、因果圖法、邊值分析法、邏輯覆蓋法等。單元測試一般建議由程序員完成。 面向?qū)ο缶幊痰奶匦允沟脤Τ蓡T函數(shù)的測試,又不完全等同于傳統(tǒng)的函數(shù)或過程測試。尤其是繼承特性和多態(tài)特性,使子類繼承或重載的父類成員函數(shù)出現(xiàn)了傳統(tǒng)測試中未遇見的問題。507.4 面向?qū)ο鬁y試面向?qū)ο鬁y試4.面向?qū)ο蟮募蓽y試 需要在整個程序編譯完成后進(jìn)行。面向?qū)ο蟪绦蚓哂袆討B(tài)特性,也只能對整個編譯后的程序做基于黑盒的集成測試。 集成測試可分成兩步進(jìn)行:先進(jìn)行靜態(tài)測試,再進(jìn)行動態(tài)測試。靜態(tài)測試主要針對程序的結(jié)構(gòu)進(jìn)行,檢測程序結(jié)構(gòu)是否符合設(shè)計要求。 動態(tài)測試設(shè)計測試用例時,要確定不需被重復(fù)測試的部分,優(yōu)化測試用例,減少工作量,使得進(jìn)行的測試能夠達(dá)到一定覆蓋標(biāo)準(zhǔn)。 測試所要達(dá)到的覆蓋標(biāo)準(zhǔn)是:達(dá)到類所有的服務(wù)要求或服務(wù)提供的一定覆蓋率;依據(jù)類間傳遞的消息,達(dá)到對
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 共享服務(wù)合同的創(chuàng)新發(fā)展趨勢展望
- 江蘇省江陰市璜土中學(xué)高中地理 4.1區(qū)域農(nóng)業(yè)發(fā)展-以我國東北地區(qū)為例教案2 新人教版必修3
- 2024-2025學(xué)年高中語文 第四單元 有無相生教案6 新人教版選修《先秦諸子選讀》
- 九年級化學(xué)下冊 第12單元 化學(xué)與生活教案 (新版)新人教版
- 2024-2025學(xué)年高中歷史下學(xué)期第13周 羅斯福新政教學(xué)設(shè)計
- 2024六年級語文下冊 第六單元 古詩詞誦讀 5 江上漁者教學(xué)設(shè)計+教案+素材 新人教版
- 2024-2025學(xué)年上海市浦東新區(qū)七年級上英語期中試卷(含答案和音頻)
- 雨花石音樂課件
- 發(fā)現(xiàn)規(guī)律 課件
- 剖宮產(chǎn)手術(shù)課件
- 民間借貸利息計算表
- 2024江蘇省鐵路集團(tuán)限公司春季招聘24人高頻500題難、易錯點(diǎn)模擬試題附帶答案詳解
- 滬科版(2024)八年級全一冊物理第一學(xué)期期中學(xué)業(yè)質(zhì)量測試卷 2套(含答案)
- Q GDW 10115-2022 110kV~1000kV架空輸電線路施工及驗收規(guī)范
- 2023《住院患者身體約束的護(hù)理》團(tuán)體標(biāo)準(zhǔn)解讀PPT
- 核心素養(yǎng)導(dǎo)向下初中數(shù)學(xué)課堂作業(yè)多元化設(shè)計
- 愚公移山英文 -中國故事英文版課件
- 國開經(jīng)濟(jì)學(xué)(本)1-14章練習(xí)試題及答案
- 獨(dú)特的我PPT課件
- 施工現(xiàn)場平面布置圖
- 精神病醫(yī)院住院患者護(hù)理評估單
評論
0/150
提交評論