下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、自頂向下與自底向上實(shí)現(xiàn)自頂向下與自底向上實(shí)現(xiàn)沃德軟件 2013 年 04 月 22 日 剛開(kāi)始程序設(shè)計(jì)的學(xué)生和程序員一般采用“大突擊”方法建造 軟件,其中每個(gè)模塊均獨(dú)立編碼。 一旦整個(gè)系統(tǒng)均已被編碼, 將各單個(gè)模塊包裝集成在一起,并觀察運(yùn)行情況。這種情況 帶來(lái)災(zāi)難性的失敗。在采用“大突擊”方法建造的軟件中尋找 錯(cuò)誤,如果不是不可能的,那也是極端困難的?!按笸粨簟狈?法不值得推薦,應(yīng)該避免使用。 在自頂向下實(shí)現(xiàn)中,從模 塊層次的頂層開(kāi)始,逐步往下層進(jìn)行。一旦論及面向?qū)ο笙?統(tǒng),自頂向下意味著實(shí)現(xiàn)執(zhí)行開(kāi)始的那個(gè)類(包括 main () 或 init ()方法的類) 。在實(shí)現(xiàn)該類當(dāng)中,開(kāi)始于 mai
2、n ()或 init ()方法本身,一個(gè)樁程序( stub )是虛方法( dummy methok )或虛擬類( dummy class )。所謂樁程序就是簡(jiǎn)化 模擬較低層次模塊功能的虛擬子程序。一個(gè)虛擬方法是這樣 的一種方法,其實(shí)體未編碼,尚未完全發(fā)揮作用。一個(gè)虛擬 類包含了所有必需的構(gòu)造函數(shù),伴隨著別的必要的虛擬方法, 來(lái)測(cè)試初始類,其中方法體是不完整的。 例如,假設(shè)決定 待實(shí)現(xiàn)的圖書(shū)館管理系統(tǒng) LMS 的第一段是一個(gè)小應(yīng)用程序, 它允許鍵入圖書(shū)館已獲得的新資源對(duì)象的相關(guān)信息。為實(shí)現(xiàn) 這樣的一個(gè)簡(jiǎn)單的小應(yīng)用程序, 需要三個(gè)類,如圖 7.2 所示。NewSourceApp 類是該小應(yīng)用程序的
3、子類;后者是 Java 的 標(biāo)準(zhǔn)部分,其主要目的是為進(jìn)入新資源信息提供一個(gè)圖形用 戶界面( GUI )。執(zhí)行開(kāi)始于該類,接著實(shí)現(xiàn)也從此處開(kāi)始。 一個(gè) Resource 對(duì)象由 NewSourceApp 創(chuàng)建, 所需信息是由 用戶進(jìn)入時(shí)通過(guò) GUI 提供的。一旦成功創(chuàng)建了 Resource 對(duì) 象,將此加入到 Library Database 對(duì)象中永久存儲(chǔ)。為了開(kāi) 始實(shí)現(xiàn) LMS 的此項(xiàng)功能,為這三個(gè)類編碼賦予所需要的并 且熟悉的實(shí)例變量和方法。這些方法實(shí)際上仍無(wú)指令。例如 Library Database 類的 CheckDuplicates ()方法是: 這些 方法是樁程序。 NewSou
4、rceApp 類的細(xì)節(jié)留待下一步實(shí)現(xiàn)。 開(kāi)始于 init ()方法中 GUI 的建造,測(cè)試 GUI 以保證看起來(lái) 是想要的。 然后, 運(yùn)行 NewSourceApp 類的其他方法。 這種 情形僅有一個(gè)其他方法 actionperformed (),正是此方 法創(chuàng)建了 Resource 對(duì)象,調(diào)用適當(dāng)?shù)姆椒ㄒ詫⒋思尤氲?Library Database ,一旦完成 NewSourceApp 類的編碼,最 后編碼和測(cè)試 Library Database 類。本例中,以自頂向下模 式進(jìn)行實(shí)現(xiàn)(和測(cè)試) 。 在自底向上實(shí)現(xiàn)中,建造軟件開(kāi)始 于類繼承層次的底層,當(dāng)然不必是自頂向下順序的嚴(yán)格逆轉(zhuǎn)。 首先編
5、碼和測(cè)試的類是那些僅分配或調(diào)用原始類或已定義 類的類。先編碼的類接近完成,只是目前仍未編寫(xiě)應(yīng)用它們 的那些類。因此必須創(chuàng)建調(diào)用底層模塊的驅(qū)動(dòng)程序或方法以 測(cè)試他們。實(shí)現(xiàn)過(guò)程通過(guò)較高層類的實(shí)現(xiàn)向上進(jìn)行。這里定 義較高層類未分配或調(diào)用原始類型、已定義類或已測(cè)試過(guò)的 類。這個(gè)過(guò)程不斷進(jìn)行直至實(shí)現(xiàn)和測(cè)試了所有的類。 如果 想以自底向上的方式實(shí)現(xiàn)一個(gè)用戶添加新資源的能力,也許 會(huì)首先實(shí)現(xiàn)和測(cè)試 Resource 類。這個(gè)類的測(cè)試需要寫(xiě)一個(gè) 驅(qū)動(dòng)程序類,附帶創(chuàng)建 Resource 對(duì)象的方法。該驅(qū)動(dòng)程序 類必須展示 Resource 對(duì)象,確定是否真正被創(chuàng)建。一旦拋 開(kāi)了驅(qū)動(dòng)程序類,便認(rèn)為 Resourc
6、e 類已真正被編碼。一旦 已編碼和測(cè)試 Resource 類,便開(kāi)始實(shí)現(xiàn) Library Database 類,又一次為測(cè)試創(chuàng)建一個(gè)驅(qū)動(dòng)類。最后,實(shí)現(xiàn)和測(cè)試 NewSourceApp 類。 不幸的是,自底向上實(shí)現(xiàn)和測(cè)試并不 總是與自頂向下過(guò)程一樣得到良好定義。存在如下這種情形: 下一個(gè)待實(shí)現(xiàn)的類不僅需要一個(gè)驅(qū)動(dòng)程序類,而且還需要一 個(gè)或多個(gè)樁程序。因?yàn)轭愰g的相互引用,所以出現(xiàn)了這種需 求。圖 7.3 給出了這種類間相互引用的例子,由于需要?jiǎng)?chuàng)建 樁程序而導(dǎo)致編碼類序列的復(fù)雜化。 注意:在圖中, 類 M1、 M2 和 M3 中每一個(gè)類均包含對(duì)其他兩個(gè)類的引用。因此, 對(duì)第一個(gè)類進(jìn)行編碼需要兩個(gè)樁程序類,第二個(gè)類需要一個(gè) 樁程序類,最后一個(gè)不需要程序類。實(shí)際次序隨意,但可能 受到各種實(shí)現(xiàn)類難易程度的影響。 當(dāng)軟件自頂向下實(shí)現(xiàn)時(shí), 測(cè)試高層模塊需要?jiǎng)?chuàng)建代表低層模塊的樁程序。樁程序的使 用意味著測(cè)試以自頂向下方式進(jìn)行。如果軟件由自底向上實(shí) 現(xiàn),測(cè)試低層模塊需要?jiǎng)?chuàng)建代表高層模塊的驅(qū)動(dòng)程序。驅(qū)動(dòng) 程序的使用意味著測(cè)試以自底向上方式進(jìn)行。是以自頂向下 方式還是自底向上方式實(shí)現(xiàn)系統(tǒng)的決策影響系統(tǒng)模塊的實(shí) 現(xiàn)和測(cè)試順序。 不論是自頂向下方式還是自底向上方式, 均是增量開(kāi)發(fā)( incremental development )的例子。系統(tǒng)是 一點(diǎn)一點(diǎn)地
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2030年中國(guó)大?;ㄉ蕯?shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 2025至2030年中國(guó)雙復(fù)底脹形美式高鍋數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 2025年中國(guó)渦輪渦桿油復(fù)合劑市場(chǎng)調(diào)查研究報(bào)告
- 2025年中國(guó)中國(guó)古鼎花壇雕塑市場(chǎng)調(diào)查研究報(bào)告
- 2025至2031年中國(guó)防涂改油墨行業(yè)投資前景及策略咨詢研究報(bào)告
- 《生態(tài)經(jīng)濟(jì)昆蟲(chóng)學(xué)-全球綜合體》(第六章節(jié)選)英漢翻譯實(shí)踐報(bào)告
- 雅斯貝爾斯古典教化思想研究
- 二零二五年度船舶租賃與船舶租賃策略咨詢合同3篇
- 2025年度鋼釘鐵釘行業(yè)數(shù)據(jù)分析合同
- 二零二五版民用爆破工程爆破作業(yè)廢棄物處理合同3篇
- 2025年N1叉車司機(jī)考試試題(附答案)
- 《醫(yī)院財(cái)務(wù)分析報(bào)告》課件
- 2025老年公寓合同管理制度
- 2024-2025學(xué)年人教版數(shù)學(xué)六年級(jí)上冊(cè) 期末綜合卷(含答案)
- 2024中國(guó)汽車后市場(chǎng)年度發(fā)展報(bào)告
- 感染性腹瀉的護(hù)理查房
- 天津市部分區(qū)2023-2024學(xué)年高二上學(xué)期期末考試 物理 含解析
- 《人工智能基礎(chǔ)》全套英語(yǔ)教學(xué)課件(共7章)
- GB/T 35613-2024綠色產(chǎn)品評(píng)價(jià)紙和紙制品
- 2022-2023學(xué)年五年級(jí)數(shù)學(xué)春季開(kāi)學(xué)摸底考(四)蘇教版
- 【螞蟻保】2024中國(guó)商業(yè)醫(yī)療險(xiǎn)發(fā)展研究藍(lán)皮書(shū)
評(píng)論
0/150
提交評(píng)論