第9章軟件進化_第1頁
第9章軟件進化_第2頁
第9章軟件進化_第3頁
第9章軟件進化_第4頁
第9章軟件進化_第5頁
已閱讀5頁,還剩26頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第9章 軟件進化2本章引導本章旨在解釋為什么軟件進化是軟件工程中一個重要組成部本章旨在解釋為什么軟件進化是軟件工程中一個重要組成部分分,講解軟件進化過程。本章主要內(nèi)容講解軟件進化過程。本章主要內(nèi)容:了解變更是不可避免的。如果要使軟件系統(tǒng)繼續(xù)有用了解變更是不可避免的。如果要使軟件系統(tǒng)繼續(xù)有用,那么軟那么軟件開發(fā)和軟件進化將集成在螺旋模型中。件開發(fā)和軟件進化將集成在螺旋模型中。了解軟件進化過程以及作用于這些過程上的因素。了解軟件進化過程以及作用于這些過程上的因素。學習不同類型的軟件維護和影響維護費用的因素。學習不同類型的軟件維護和影響維護費用的因素。了解如何對遺留系統(tǒng)進行評估,從而決定是應該拋棄、

2、維護、了解如何對遺留系統(tǒng)進行評估,從而決定是應該拋棄、維護、再工程還是更換這些系統(tǒng)。再工程還是更換這些系統(tǒng)。3軟件變更是不可避免的軟件變更是不可避免的軟件在使用過程中,新的需求不斷出現(xiàn)軟件在使用過程中,新的需求不斷出現(xiàn)商業(yè)環(huán)境在不斷地變化商業(yè)環(huán)境在不斷地變化軟件中的缺陷需要進行修復軟件中的缺陷需要進行修復計算機硬件和軟件環(huán)境的升級需要更新現(xiàn)有的系統(tǒng)計算機硬件和軟件環(huán)境的升級需要更新現(xiàn)有的系統(tǒng)軟件的性能和可靠性需要進一步改進軟件的性能和可靠性需要進一步改進。4開發(fā)和進化的螺旋模型軟件過程是一個貫穿系統(tǒng)生命周期的由需求、設計、實現(xiàn)、測試組成的螺旋過程。59.1進化過程 變更實現(xiàn)的過程看成是一個開發(fā)

3、過程的迭代過程,在此迭代過程中完成對系統(tǒng)修改版本的設計、實現(xiàn)和測試。6軟件進化過程 Arthur(1988)7考慮:敏捷方法團隊對“過程驅(qū)動方法團隊”的軟件進化時遇到的問題。這種情況下,進化團隊可能不得不從頭開發(fā)自動化的測試,而且不會有像敏捷開發(fā)過程中所期待的系統(tǒng)代碼重構(gòu)和簡化。這樣,在采用敏捷開發(fā)過程之前,可能要求使用一些再工程方法來提升其代碼質(zhì)量。8考慮:過程驅(qū)動方法團隊對“敏捷方法團隊”的軟件進化時遇到的問題。開發(fā)團隊運用了敏捷方法,但是進化團隊卻不熟悉敏捷方法而選擇了一個計劃驅(qū)動的方法。進化團隊可能期望詳細的文檔來支持進化工作的進行,而這恰恰是敏捷方法所沒有提供的。可能沒有關(guān)于系統(tǒng)的一

4、個明確的描述以供變更時使用。99.2 程序進化的動態(tài)特性程序進化的動態(tài)特性就是對系統(tǒng)變更的研究。20實際90年代,Lehman和其他人開始研究進化過程中反饋的重要性。10Lehman定律第1條定律:系統(tǒng)維護是一個不可避免的過程。當系統(tǒng)的環(huán)境發(fā)生改變,新的需求就會出現(xiàn),系統(tǒng)就必須修改。第2條定律:隨著系統(tǒng)的改變,其結(jié)構(gòu)在退化。加強預防性維護工作。第5條定律:向系統(tǒng)中添加新功能不可避免。但會把新的缺陷引人到系統(tǒng)中。在每個版本中增加的功能愈多,缺陷將會愈多。請閱讀Lehman定律(P153)119.3 軟件維護與變更軟件被投入運行使用后人們對軟件產(chǎn)品所進行的修改,就是軟件維護。維護的類型:改正性維護

5、:修改軟件中的缺陷或不足適應性維護:修改軟件使其適應不同的操作環(huán)境,包括硬件變化、操作系統(tǒng)變化或者其他支持軟件變化等完善性維護:增加或修改系統(tǒng)的功能,使其適應業(yè)務的變化12軟件維護工作量分布13軟件維護的成本盡管軟件技術(shù)在進步,修改軟件經(jīng)驗在積累,可是自從 世紀80年代以來,在進化方面投入的百分比很少有改變。軟件維護的成本在不同的應用領域中占比不同業(yè)務應用系統(tǒng):維護費用與開發(fā)成本大體相同嵌入式實時系統(tǒng):維護費用是開發(fā)成本的四倍以上。因為高可靠性和高性能需求使得模塊間緊密連接,修改起來非常困難。14開發(fā)和維護的成本系統(tǒng)1(相比系統(tǒng)2) 在開發(fā)中多投入25000美元,整個生命周期節(jié)省了100000

6、美元,表明在開發(fā)成本上增加一個百分數(shù),在總的生命周期成本中會下降相應的百分數(shù)。15影響維護成本的因素1 團隊穩(wěn)定性系統(tǒng)移交后開發(fā)團隊會解散,人員分配到其他項目中,負責維護的人員通常不是原開發(fā)人員,需要花時間理解系統(tǒng)。2 合同責任維護合同一般獨立于開發(fā)合同,這樣開發(fā)人員有可能缺少為方便維護而寫軟件的動力。3 人員技術(shù)水平維護人員有可能缺乏經(jīng)驗,而且不熟悉應用領域。4 程序年齡與結(jié)構(gòu)程序結(jié)構(gòu)隨年齡的增加而受到破壞,不易理解和變更。169.3.1 軟件維護預測 管理者憎恨意外的發(fā)生,尤其是那些造成了意想不到的高成本的意外。因此,有必要預測系統(tǒng)會有什么樣的變更、系統(tǒng)的哪些部分可能是最難維護的等。17預

7、測系統(tǒng)變更預測變更請求數(shù)目應了解系統(tǒng)和外部環(huán)境之間的關(guān)系許多系統(tǒng)與外部環(huán)境之間存在著復雜的關(guān)系,對環(huán)境所做的改變不可避免地導致系統(tǒng)變更的發(fā)生變更預測的影響因素系統(tǒng)接口的數(shù)目和復雜性本質(zhì)上易變的系統(tǒng)需求的數(shù)目系統(tǒng)所處的業(yè)務過程18預測可維護性和維護成本需要了解在系統(tǒng)不同組件和這些組件的固有復雜性之間的關(guān)系類型和關(guān)系數(shù)目,系統(tǒng)或組件越復雜,其維護費用就越高。復雜性依賴于控制結(jié)構(gòu)的復雜性數(shù)據(jù)結(jié)構(gòu)的復雜性對象、方法和模塊大小199.3.2 軟件再工程軟件再工程是指軟件重新構(gòu)造或編寫現(xiàn)有系統(tǒng)的一部分或全部,但不改變其功能。在大型系統(tǒng)中某些部分需要頻繁維護時,可應用軟件再工程軟件再工程的目的是努力使系統(tǒng)更

8、加易于維護,系統(tǒng)需要被再構(gòu)造和再文檔化20軟件再工程優(yōu)勢及缺點減少風險:重新開發(fā)一個在用的系統(tǒng)具有很高的風險,可能會有開發(fā)問題、人員問題和規(guī)格說明問題降低成本:再工程的成本比重新開發(fā)軟件的成本要小得多軟件再工程的缺點是系統(tǒng)經(jīng)過再工程能改善的范圍受到一定的限制。21正向工程與再工程22再工程活動23再工程活動1.源代碼轉(zhuǎn)換代碼從原有的程序設計語言轉(zhuǎn)換到一種新語言2.逆向工程分析程序并抽取信息記錄其結(jié)構(gòu)和功能3.程序結(jié)構(gòu)改善分析和修改程序的控制結(jié)構(gòu),使其更易讀和好理解4.程序模塊化重新組織程序的結(jié)構(gòu)5.數(shù)據(jù)再工程改變程序處理的數(shù)據(jù)以反映程序的變更,這可能意味著重新定義數(shù)據(jù)庫模式和將已存在的數(shù)據(jù)庫向

9、新的結(jié)構(gòu)轉(zhuǎn)變。249.3.3 通過重構(gòu)進行預防性維護 重構(gòu)是提升程序以減緩其由于更改而退化的過程。它意味著通過更改程序來改進程序結(jié)構(gòu)性,降低程序復雜性,讓程序變得更加易于理解。25軟件重構(gòu)和軟件再工程區(qū)別盡管再工程和重構(gòu)都是要將軟件變得更加容易理解和修改,但它們并不是同一回事。再工程發(fā)生在系統(tǒng)已經(jīng)維護了一段時間并且維護費用不斷上升的情況下。通過使用自動化工具來處理并再工程一個遺留的系統(tǒng),產(chǎn)生一個更具可維護性的新系統(tǒng)。重構(gòu)是一個連續(xù)不斷的改進過程,它貫穿于開發(fā)和進化的整個過程。重構(gòu)是要避免導致成本上升和維護困難的結(jié)構(gòu)以及代碼的退化問題。26重構(gòu)需要被改進的情況(Fowler)冗余代碼長方法選擇語

10、句數(shù)據(jù)聚集假設的一般性。279.4 遺留系統(tǒng)管理遺留系統(tǒng)(legacy system)是“一個已經(jīng)運行了很長時間的,對我們的機構(gòu)來說是很重要的,但是又不能適應當前問題的的軟件系統(tǒng)”。由于遺留系統(tǒng)所完成的是關(guān)鍵業(yè)務,所以不能簡單丟棄。28遺留系統(tǒng)的決策1.徹底拋棄這個系統(tǒng) 對業(yè)務過程處理無有效價值2.繼續(xù)維護這個系統(tǒng)系統(tǒng)統(tǒng)有存在的必要,系統(tǒng)運行相當平穩(wěn),而且用戶沒有提出太多對系統(tǒng)變更的要求時3.對系統(tǒng)再工程以改善其可維護性當系統(tǒng)質(zhì)量由于經(jīng)常性的變更已經(jīng)下降,而且仍然需要做經(jīng)常性的變更時,應該選擇這個方案4.以一個新的系統(tǒng)代替整個或部分系統(tǒng)開發(fā)新系統(tǒng)的開發(fā)成本非常合理時29軟件質(zhì)量與商業(yè)價值30業(yè)務價值評估評估業(yè)務價值應考慮的視點系統(tǒng)最終用戶客戶生產(chǎn)線管理者IT 管理者資深管理者方法訪問來自不同視點的代表,收集其看法形成業(yè)務價值的總體概況,全面評估業(yè)務價值,并從

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論