




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、軟件工程導(dǎo)論(第5版)第第8 8章章 維護維護軟件生存周期軟件生存周期問題定義 軟件定義 可行性研究需求分析 總體設(shè)計系統(tǒng)設(shè)計詳細設(shè)計軟件生命周期 軟件開發(fā)編碼和單元測試系統(tǒng)實現(xiàn)綜合測試 運行維護第第8 8章章 維護維護v軟件維護是軟件生命周期的最后一個階段,它處于系統(tǒng)投入生產(chǎn)性運行以后的時期中,因此不屬于系統(tǒng)開發(fā)過程。v軟件維護的基本任務(wù)是保證軟件在一個相當長的時期能夠正常運行。v軟件維護需要的工作量非常大,雖然在不同應(yīng)用領(lǐng)域維護成本差別很大,但是,平均說來,大型軟件的維護成本高達開發(fā)成本的四倍左右。8.1.1 8.1.1 軟件維護定義軟件維護定義v所謂軟件維護就是在軟件已經(jīng)交付使用之后,為
2、了改正錯誤或滿足新的需要而修改軟件的過程。v軟件維護包括下述4項活動。 診斷和改正錯誤的過程:改正性維護 為了和變化了的環(huán)境適當?shù)嘏浜隙M行的修改軟件的活動:適應(yīng)性維護 為了滿足在使用軟件的過程中用戶的建議和改進意見而作的維護:完善性維護 為了給未來的改進奠定更好的基礎(chǔ)而修改軟件:預(yù)防性維護1、改正(糾錯)性維護、改正(糾錯)性維護2、適應(yīng)性維護、適應(yīng)性維護3、完善性維護、完善性維護3、完善性性維護、完善性性維護4、預(yù)防性維護、預(yù)防性維護 綜綜 述述8.1.1 8.1.1 軟件維護定義軟件維護定義 三類維護占 維護在軟件生 總維護比例 存期所占比例8.2 8.2 維護的特點維護的特點一結(jié)構(gòu)化維
3、護與非結(jié)構(gòu)化維護的差別巨大1.非結(jié)構(gòu)化維護 如果軟件配置的唯一成分是程序代碼,那么維護活動從艱苦地評價程序代碼開始,而且常常由于程序內(nèi)部文檔不足而使評價更困難。而且對程序代碼所做的改動的后果是難于估量的:因為沒有測試方面的文檔,所以不可能進行回歸測試。 非結(jié)構(gòu)化維護付出代價高昂。8.2 8.2 維護的特點維護的特點2.結(jié)構(gòu)化維護如果有一個完整的軟件配置存在,那么維護工作從評價設(shè)計文檔開始,確定軟件重要的結(jié)構(gòu)特點、性能特點以及接口特點;估量要求的改動將帶來的影響,并且計劃實施途徑。然后首先修改設(shè)計并且對所做的修改進行仔細復(fù)查。接下來編寫相應(yīng)的源程序代碼;使用在測試說明書中包含的信息進行回歸測試;
4、最后,把修改后的軟件再次交付使用。 結(jié)構(gòu)化維護能減少精力浪費并且能提高維護的總體質(zhì)量。8.2 8.2 維護的特點維護的特點二、維護成本二、維護成本8.2 8.2 維護的特點維護的特點v維護工作量的一個模型: M M P P K K * * exp exp(c c - - d d) 其中: M是維護用的總工作量, P是生產(chǎn)性工作量, K是經(jīng)驗常數(shù), c是因缺乏好的設(shè)計和文檔而導(dǎo)致復(fù)雜性的度量), d是維護人員對軟件的熟悉程度。v模型表明,如果軟件的開發(fā)途徑不好(即,沒有使用軟件工程方法學(xué)),而且原來的開發(fā)人員不能參加維護工作,那么維護工作量和費用將指數(shù)地增加。8.2 8.2 維護的特點維護的特點
5、三維護的問題v與軟件維護有關(guān)的絕大多數(shù)問題,都可歸因于軟件定義和軟件開發(fā)的方法有缺點。v在軟件生命周期的頭兩個時期沒有嚴格而又科學(xué)的管理和規(guī)劃,幾乎必然會導(dǎo)致在最后階段出現(xiàn)問題。8.2 8.2 維護的特點維護的特點v和軟件維護有關(guān)的部分問題:理解別人寫的程序通常非常困難,而且困難程度隨著軟件配置成分的減少而迅速增加。如果僅有程序代碼沒有說明文檔,則會出現(xiàn)嚴重的問題。需要維護的軟件往往沒有合格的文檔,或者文檔資料顯著不足。認識到軟件必須有文檔僅僅是第一步,容易理解的并且和程序代碼完全一致的文檔才真正有價值。當要求對軟件進行維護時,不能指望由開發(fā)人員給我們仔細說明軟件。由于維護 “階段持續(xù)的時間很
6、長,因此,當需要解釋軟件時,往往原來寫程序的人已經(jīng)不在附近了。8.2 8.2 維護的特點維護的特點絕大多數(shù)軟件在設(shè)計時沒有考慮將來的修改。除非使用強調(diào)模塊獨立原理的設(shè)計方法論,否則修改軟件既困難又容易發(fā)生差錯。軟件維護不是一項吸引人的工作。形成這種觀念很大程度上是因為維護工作經(jīng)常遭受挫折。8.3 8.3 軟件維護過程軟件維護過程v維護過程本質(zhì)上是修改和壓縮了的軟件定義和開發(fā)過程。v為了有效地進行軟件維護,應(yīng)事先就開始做組織工作。 首先建立一個維護組織 確定報告及評價的過程 為每一個維護要求規(guī)定一個標準化的事件序列 建立一個適用于維護活動的記錄保管過程,并且規(guī)定復(fù)審標準8.3 8.3 軟件維護過
7、程軟件維護過程1.維護組織維護組織 維護修改建議維護修改建議 分析修改建議分析修改建議是否合理是否合理提交管理部門審查提交管理部門審查是否同意是否同意修改修改撤銷撤銷NYNY進行測試進行測試 提交管理部門審批提交管理部門審批是否批準是否批準更新主文檔更新主文檔Y 更新其他文檔更新其他文檔 提交使用提交使用修改修改N軟件維護的管理流程軟件維護的管理流程8.3 8.3 軟件維護過程軟件維護過程2.維護報告v應(yīng)該用標準化的格式表達所有軟件維護要求。n軟件維護人員給用戶提供空白的維護要求有時稱為軟件問題報告表,由要求一項維護活動的用戶填寫。n如果遇到了一個錯誤,那么必須完整描述導(dǎo)致出現(xiàn)錯誤的環(huán)境(包括
8、輸入數(shù)據(jù),全部輸出數(shù)據(jù),以及其他有關(guān)信息)。n對于適應(yīng)性或完善性的維護要求,應(yīng)該提出一個簡短的需求說明書。n由維護管理員和系統(tǒng)管理員評價用戶提交的維護要求表。8.3 8.3 軟件維護過程軟件維護過程3.維護的事件流8.3 8.3 軟件維護過程軟件維護過程4.保存維護記錄v應(yīng)該為每項維護工作都收集下述數(shù)據(jù):(1)程序標識; (2)源語句數(shù);(3)機器指令條數(shù); (4)使用的程序設(shè)計語言;(5)程序安裝的日期; (6)自從安裝以來程序運行的次數(shù);(7)自從安裝以來程序失效的次數(shù);(8)程序變動的層次和標識;(9)因程序變動而增加的源語句數(shù);(10)因程序變動而刪除的源語句數(shù);(11)每個改動耗費的
9、人時數(shù); (12)程序改動的日期; (13)軟件工程師的名字; (14)維護要求表的標識; (15)維護類型; (l6)維護開始和完成的日期;(17)累計用于維護的人時數(shù); (18)與完成的維護相聯(lián)系的純效益。8.3 8.3 軟件維護過程軟件維護過程5.評價維護活動從下述七個方面度量維護工作:(1)每次程序運行平均失效的次數(shù);(2)用于每一類維護活動的總?cè)藭r數(shù);(3)平均每個程序、每種語言、每種維護類型所做的程序變動效;(4)維護過程中增加或刪除一個源語句平均花費的人時數(shù);(5)維護每種語言平均花費的人時數(shù);(6)一張維護要求表的平均周轉(zhuǎn)時間;(7)不同維護類型所占的百分比。 8.4 8.4程
10、序修改的步驟及修改的副作用程序修改的步驟及修改的副作用8.5 8.5 軟件的可維護性軟件的可維護性n許多軟件的維護十分困難,原因在于這些軟件的文檔不全、質(zhì)量差、開發(fā)過程不注意采用好的方法,忽視程序設(shè)計風格等。n許多維護要求并不是因為程序中出錯而提出的,而是為適應(yīng)環(huán)境變化或需求變化而提出的。n為了使得軟件能夠易于維護,必須考慮使軟件具有可維護性。8.5 8.5 軟件的可維護性軟件的可維護性8.5.1 8.5.1 軟件可維護性的因素軟件可維護性的因素。8.5.1 8.5.1 軟件可維護性的因素軟件可維護性的因素8.5.2 8.5.2 軟件可維護性的度量軟件可維護性的度量注:系統(tǒng)平均不工作間隔時間注
11、:系統(tǒng)平均不工作間隔時間MTBD(Mean Time Between System Downs)、平均停機時間、平均停機時間MDT(Mean Down Time) 。:8.5.3 提高軟件可維護性的方法提高軟件可維護性的方法8.5 8.5 軟件再工程過程軟件再工程過程圖8.3 軟件再工程過程模型8.5 8.5 軟件再工程過程軟件再工程過程v典型的軟件再工程過程模型如圖8.3所示,該模型定義了6類活動。v再工程范型是一個循環(huán)模型。這意味著作為該范型的組成部分的每個活動都可能被重復(fù),而且對于任意一個特定的循環(huán)來說,過程可以在完成任意一個活動之后終止。8.5 8.5 軟件再工程過程軟件再工程過程1.
12、庫存目錄分析v每個軟件組織都應(yīng)該保存其擁有的所有應(yīng)用系統(tǒng)的庫存目錄。該目錄包含關(guān)于每個應(yīng)用系統(tǒng)的基本信息。v對庫中每個程序都做逆向工程或再工程是不現(xiàn)實的。下述3類程序有可能成為預(yù)防性維護的對象: (1)預(yù)定將使用多年的程序; (2)當前正在成功地使用著的程序; (3)在最近的將來可能要做重大修改或增強的程序。8.5 8.5 軟件再工程過程軟件再工程過程v應(yīng)該仔細分析庫存目錄,按照業(yè)務(wù)重要程度、壽命、當前可維護性、預(yù)期的修改次數(shù)等標準,把庫中的應(yīng)用系統(tǒng)排序,從中選出再工程的候選者,然后明智地分配再工程所需要的資源。8.5 8.5 軟件再工程過程軟件再工程過程2.文檔重構(gòu)v老程序固有的特點是缺乏文
13、檔。具體情況不同,處理這個問題的方法也不同: 軟件穩(wěn)定或者生命周期臨近結(jié)束,保持現(xiàn)狀 首先建立起正在修改部分的文檔 如果某應(yīng)用系統(tǒng)是完成業(yè)務(wù)工作的關(guān)鍵,而且必須重構(gòu)全部文檔,則仍然應(yīng)該設(shè)法把文檔工作減少到必需的最小量。8.5 8.5 軟件再工程過程軟件再工程過程3.逆向工程v軟件的逆向工程是分析程序以便在比源代碼更高的抽象層次上創(chuàng)建出程序的某種表示的過程。v逆向工程是一個恢復(fù)設(shè)計結(jié)果的過程,逆向工程工具從現(xiàn)存的程序代碼中抽取有關(guān)數(shù)據(jù)、體系結(jié)構(gòu)和處理過程的設(shè)計信息。8.5 8.5 軟件再工程過程軟件再工程過程4.代碼重構(gòu)v重構(gòu)難于理解、測試和維護的模塊的代碼。v為了完成代碼重構(gòu)活動,首先用重構(gòu)工具分析源代碼,標注出和結(jié)構(gòu)化程序設(shè)計概念相違背的部分。然后重構(gòu)有問題的代碼。最后,復(fù)審和測試生成的重構(gòu)代碼并更新代碼文檔。v重構(gòu)并不修改整體的程序體系結(jié)構(gòu),它僅關(guān)注個體模塊的設(shè)計細節(jié)以及在模塊中定義的局部數(shù)據(jù)結(jié)構(gòu)。v如果重構(gòu)擴展到模塊邊界之外并涉及軟件體系結(jié)構(gòu),則重構(gòu)變成了正向工程。8.5 8.5 軟件再工程過程軟件再工程過程5.數(shù)據(jù)重構(gòu)v數(shù)據(jù)重構(gòu)是一種全范圍的再工程活動。v數(shù)據(jù)重構(gòu)始于逆向工程活動,分解當前使用的數(shù)據(jù)體系結(jié)構(gòu),必要時定義數(shù)據(jù)模型,標識數(shù)據(jù)對象和屬性,并從軟件質(zhì)量的角度復(fù)審現(xiàn)存的數(shù)據(jù)結(jié)構(gòu)。v當數(shù)據(jù)結(jié)構(gòu)較差時
溫馨提示
- 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)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 企業(yè)員工合伙合同范本
- 個人英文傭金合同范本
- 亮化購貨合同范本
- 代理續(xù)約合同范本
- 魚池出租合同范本
- 公司裝飾勞務(wù)合同范例
- 兼職工作合同范本
- 停止合作合同范本
- 水上安全合同范本
- 做綠化合同范本
- 蘇教一年級《心理健康》教案(完整版)
- 人教版語文五年級下冊《第八單元》大單元整體教學(xué)設(shè)計2022課標
- VTE評分量表解讀 課件2024.8
- 《RT-Thread實時操作系統(tǒng)內(nèi)核、驅(qū)動和應(yīng)用開發(fā)技術(shù)》全套教學(xué)課件
- (新版)區(qū)塊鏈應(yīng)用操作員職業(yè)技能競賽理論考試題庫-下(多選、判斷題)
- 三年級數(shù)學(xué)下冊教案-6.1年、月、日60-人教版
- 2024年《開學(xué)第一課》課件
- 2024電子版?zhèn)€人房屋租賃合同范本
- 2024年湖北省中考化學(xué)真題(解析版)
- 2024至2030年中國小型模塊化反應(yīng)堆(SMR)行業(yè)分析及發(fā)展前景預(yù)測報告
- 機械基礎(chǔ)(少學(xué)時)(第三版) 課件 0-緒論
評論
0/150
提交評論