資源描述:
《軟件工程課件-第八章(維護(hù)).ppt》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、STARTINPUT(A,B,C)IFA>5THENX=10ELSEX=1ENDIFIFB>10THENY=20ELSEY=2ENDIFIFC>15THENZ=30ELSEZ=3ENDIFPRINT(X,Y,Z)STOP習(xí)題7.4.3第8章維護(hù)8.1軟件維護(hù)的定義及特點(diǎn)8.2軟件的可維護(hù)性8.3軟件維護(hù)實(shí)施過程8.4預(yù)防性維護(hù)8.5軟件再工程過程第六章軟件維護(hù)學(xué)習(xí)內(nèi)容:在軟件的開發(fā)工作已完成并把軟件產(chǎn)品交付給用戶使用之后,就進(jìn)入了軟件維護(hù)階段。這個階段的工作目標(biāo)是保證軟件在一個相當(dāng)長的時期內(nèi)能夠正常運(yùn)行,因此對軟件的維護(hù)就成為必不可少的了。軟件維護(hù)需要的工作量非常大
2、。平均說來,大型軟件的維護(hù)成本高達(dá)開發(fā)成本的四倍左右。目前國外許多軟件開發(fā)組織把80%以上的人力用于維護(hù)已有的軟件,而且隨著軟件數(shù)量增多和使用壽命延長,這個百分比還在持續(xù)上升。將來維護(hù)工作甚至可能會束縛住軟件開發(fā)組織的手腳,使他們沒有余力開發(fā)新的軟件。8.1軟件維護(hù)的定義8.1.1軟件維護(hù)的內(nèi)容所謂軟件維護(hù)就是在軟件已經(jīng)交付使用之后,為了改正錯誤或滿足新的需要而修改軟件的過程。我們可以通過描述軟件交付使用后可能進(jìn)行的下述四項活動,具體地定義軟件維護(hù)。1.改正性維護(hù)通常,在軟件開發(fā)過程中所進(jìn)行的測試都是不完全、不徹底的,軟件中必然會有一些潛伏的錯誤被帶到運(yùn)行階段來。用
3、戶常常將把他們遇到的問題報告給軟件維護(hù)人員,要求解決。我們把診斷和改正軟件錯誤的過程稱為改正性維護(hù)。例如,在軟件交付用戶使用之后,解決在開發(fā)時沒有測試所有可能的執(zhí)行通路而帶來的問題;2.適應(yīng)性維護(hù)計算機(jī)科學(xué)技術(shù)領(lǐng)域的各個方面都在迅速進(jìn)步,大約每過38個月就有新一代的硬件宣告出現(xiàn);另一方面,應(yīng)用軟件的使用壽命卻很容易超過十年,遠(yuǎn)遠(yuǎn)長于最初開發(fā)這個軟件時的運(yùn)行環(huán)境的壽命。因此,適應(yīng)性維護(hù)就是為了和變化了的環(huán)境適當(dāng)?shù)嘏浜隙M(jìn)行的修改軟件的活動,是既必要又經(jīng)常的維護(hù)活動。例如,適應(yīng)性維護(hù)可以是修改原在xp操作系統(tǒng)中運(yùn)行的程序,使之能在vista操作系統(tǒng)中運(yùn)行。3.完善性維護(hù)
4、在使用軟件的過程中,用戶往往提出增加新功能或改變某些已有功能的要求,還可能提出提高程序性能的要求。為了滿足這類要求而修改軟件的活動,稱為完善性維護(hù)。例如,在儲蓄系統(tǒng)交付銀行使用之后,增加扣除利息稅的功能;縮短系統(tǒng)的響應(yīng)時間,使之達(dá)到新的要求;改變現(xiàn)有程序輸出數(shù)據(jù)的格式,以方便用戶;在正在運(yùn)行的軟件中增加聯(lián)機(jī)求助功能等,都是完善性維護(hù)。4.預(yù)防性維護(hù)當(dāng)為了提高未來的可維護(hù)性或可靠性,或為了給未來的改進(jìn)工作奠定更好的基礎(chǔ)而修改軟件時,就出現(xiàn)了第四類維護(hù)活動,這類維護(hù)活動稱為預(yù)防性維護(hù)。通常,把預(yù)防性維護(hù)定義為:“把今天的方法學(xué)應(yīng)用于昨天的系統(tǒng)以滿足明天的需要”。也就是說
5、,預(yù)防性維護(hù)就是采用先進(jìn)的軟件工程方法對需要維護(hù)的軟件或軟件中的某一部分,主動地進(jìn)行重新設(shè)計、編碼和測試。在維護(hù)階段的最初一二年,改正性維護(hù)的工作量往往比較大。隨著在軟件運(yùn)行過程中錯誤發(fā)現(xiàn)率迅速降低并趨于穩(wěn)定,就進(jìn)入了正常使用期間。但是,由于用戶經(jīng)常提出改造軟件的要求,適應(yīng)性維護(hù)和完善性維護(hù)的工作量逐漸增加,而且在這種維護(hù)過程中往往又會引入新的錯誤,從而進(jìn)一步加大了維護(hù)的工作量。從上述關(guān)于軟件維護(hù)的定義不難看出,軟件維護(hù)絕不僅限于糾正使用中發(fā)現(xiàn)的錯誤,事實(shí)上在全部維護(hù)活動中一半以上是完善性維護(hù)。國外的統(tǒng)計數(shù)字表明:完善性維護(hù)占全部維護(hù)活動的50%~66%改正性維護(hù)占
6、17%~21%,適應(yīng)性維護(hù)占18%~25%,其他維護(hù)活動只占4%左右。返回目錄8.1.2軟件維護(hù)的的特點(diǎn)8.1.2.1結(jié)構(gòu)化維護(hù)與非結(jié)構(gòu)化維護(hù)差別懸殊8.1.2.2維護(hù)的代價高昂8.1.2.3維護(hù)的問題很多8.1.2.1結(jié)構(gòu)化維護(hù)與非結(jié)構(gòu)化維護(hù)差別懸殊如果軟件配置的惟一成分是程序代碼,那么維護(hù)活動從艱苦地評價程序代碼開始,而且常常由于程序內(nèi)部文檔不足而使評價更困難(諸如軟件結(jié)構(gòu)、全程數(shù)據(jù)結(jié)構(gòu)、系統(tǒng)接口、性能或設(shè)計約束等微妙的特點(diǎn)是難于搞清的,而且常常誤解了這一類特點(diǎn))。最終對程序代碼所做的改動的后果是難于估量的。因為沒有測試方面的文檔,所以不可能進(jìn)行回歸測試。這就是
7、非結(jié)構(gòu)化維護(hù),這種維護(hù)方式是沒有使用良好定義的方法學(xué)開發(fā)出來的軟件的必然結(jié)果---并正在為此而付出代價(浪費(fèi)精力和受挫折)。非結(jié)構(gòu)化維護(hù)(上圖右側(cè))如果有一個完整的軟件配置存在,那么維護(hù)工作從評價設(shè)計文檔開始,確定軟件重要的結(jié)構(gòu)特點(diǎn)、性能特點(diǎn)以及接口特點(diǎn);估量要求的改動將帶來的影響,并且計劃實(shí)施途徑。然后首先修改設(shè)計并且對所做的修改進(jìn)行仔細(xì)復(fù)查。接下來編寫相應(yīng)的源程序代碼;使用在測試說明書中包含的信息進(jìn)行回歸測試;最后,把修改后的軟件再次交付使用。上面描述的事件構(gòu)成結(jié)構(gòu)化維護(hù),它是在軟件開發(fā)的早期應(yīng)用軟件工程方法學(xué)的結(jié)果。(它確實(shí)能減少精力的浪費(fèi)并且能提高維護(hù)的