軟件維護(hù)知識資料講解_第1頁
軟件維護(hù)知識資料講解_第2頁
軟件維護(hù)知識資料講解_第3頁
軟件維護(hù)知識資料講解_第4頁
軟件維護(hù)知識資料講解_第5頁
已閱讀5頁,還剩14頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

軟件維護(hù)知識軟件工程軟件維護(hù)的定義1軟件維護(hù)的特點(diǎn)2軟件維護(hù)過程3軟件的可維護(hù)性4軟件維護(hù)的定義11軟件維護(hù)的定義所謂軟件維護(hù)就是在軟件已經(jīng)交付使用之后,為了改正錯誤或滿足新的需要而修改軟件的過程。軟件維護(hù)的目的維護(hù)的目的:是滿足用戶對已開發(fā)產(chǎn)品的性能與軟件環(huán)境不斷提高的需求,進(jìn)而達(dá)到延長軟件的壽命。軟件維護(hù)的分類可以通過描述軟件交付使用后可能進(jìn)行的4項(xiàng)活動,對軟件維護(hù)進(jìn)行分類:完善性維護(hù):在軟件使用過程中,為了滿足用戶對軟件的功能與性能提出新的需求而進(jìn)行的維護(hù)。(50%)適應(yīng)性維護(hù):使軟件適應(yīng)運(yùn)行環(huán)境(包括軟,硬件環(huán)境及數(shù)據(jù)環(huán)境)的變化而進(jìn)行的維護(hù)。(25%)糾錯性維護(hù):為糾正在開發(fā)期間未能發(fā)現(xiàn)的錯誤而進(jìn)行的維護(hù)。(21%)其他維護(hù):(如:預(yù)防性維護(hù))為改善軟件的可維護(hù)性,可靠性等,以減少今后對其進(jìn)行維護(hù)所需的工作量的工作而進(jìn)行的維護(hù)。(4%)軟件工程軟件維護(hù)的定義1軟件維護(hù)的特點(diǎn)2軟件維護(hù)過程3軟件的可維護(hù)性4軟件維護(hù)的特點(diǎn)22軟件維護(hù)的特點(diǎn)軟件維護(hù)的特點(diǎn):結(jié)構(gòu)化維護(hù)與非結(jié)構(gòu)化維護(hù)差別巨大非結(jié)構(gòu)化維護(hù):如果軟件配置的惟一成分是程序代碼,那么維護(hù)活動從艱苦地評價(jià)程序代碼開始,而且常常由于程序內(nèi)部文檔不足而使評價(jià)更困難,對于軟件結(jié)構(gòu)、全程數(shù)據(jù)結(jié)構(gòu)、系統(tǒng)接口、性能和(或)設(shè)計(jì)約束等經(jīng)常會產(chǎn)生誤解,而且對程序代碼所做的改動的后果也是難于估量的:因?yàn)闆]有測試方面的文檔,所以不可能進(jìn)行回歸測試(即指為了保證所做的修改沒有在以前可以正常使用的軟件功能中引入錯誤而重復(fù)過去做過的測試)。非結(jié)構(gòu)化維護(hù)需要付出很大代價(jià)(浪費(fèi)精力并且遭受挫折的打擊),這種維護(hù)方式是沒有使用良好定義的方法學(xué)開發(fā)出來的軟件的必然結(jié)果。結(jié)構(gòu)化維護(hù):如果有一個完整的軟件配置存在,那么維護(hù)工作從評價(jià)設(shè)計(jì)文檔開始,確定軟件重要的結(jié)構(gòu)特點(diǎn)、性能特點(diǎn)以及接口特點(diǎn);估量要求的改動將帶來的影響,并且計(jì)劃實(shí)施途徑。然后首先修改設(shè)計(jì)并且對所做的修改進(jìn)行仔細(xì)復(fù)查。接下來編寫相應(yīng)的源程序代碼;使用在測試說明書中包含的信息進(jìn)行回歸測試;最后,把修改后的軟件再次交付使用。維護(hù)的代價(jià)高昂維護(hù)費(fèi)用只不過是軟件維護(hù)的最明顯的代價(jià),其他一些現(xiàn)在還不明顯的代價(jià)將來可能更為人們所關(guān)注。因?yàn)榭捎玫馁Y源必須供維護(hù)任務(wù)使用,以致耽誤甚至喪失了開發(fā)的良機(jī),這是軟件維護(hù)的一個無形的代價(jià)。其他無形的代價(jià)還有:當(dāng)看來合理的有關(guān)改錯或修改的要求不能及時滿足時將引起用戶不滿;由于維護(hù)時的改動,在軟件中引入了潛伏的錯誤,從而降低了軟件的質(zhì)量;當(dāng)必須把軟件工程師調(diào)去從事維護(hù)工作時,將在開發(fā)過程中造成混亂。軟件維護(hù)的最后一個代價(jià)是生產(chǎn)率的大幅度下降,這種情況在維護(hù)舊程序時常常遇到。維護(hù)的問題很多與軟件維護(hù)有關(guān)的絕大多數(shù)問題,都可歸因于軟件定義和軟件開發(fā)的方法有缺點(diǎn)。在軟件生命周期的頭兩個時期沒有嚴(yán)格而又科學(xué)的管理和規(guī)劃,幾乎必然會導(dǎo)致在最后階段出現(xiàn)問題。下面列出和軟件維護(hù)有關(guān)的部分問題:理解別人寫的程序通常非常困難,而且困難程度隨著軟件配置成分的減少而迅速增加。如果僅有程序代碼沒有說明文檔,則會出現(xiàn)嚴(yán)重的問題。需要維護(hù)的軟件往往沒有合格的文檔,或者文檔資料顯著不足。認(rèn)識到軟件必須有文檔僅僅是第一步,容易理解的并且和程序代碼完全一致的文檔才真正有價(jià)值。當(dāng)要求對軟件進(jìn)行維護(hù)時,不能指望由開發(fā)人員給我們仔細(xì)說明軟件。由于維護(hù)階段持續(xù)的時間很長,因此,當(dāng)需要解釋軟件時,往往原來寫程序的人已經(jīng)不在附近了。絕大多數(shù)軟件在設(shè)計(jì)時沒有考慮將來的修改。除非使用強(qiáng)調(diào)模塊獨(dú)立原理的設(shè)計(jì)方法學(xué),否則修改軟件既困難又容易發(fā)生差錯。軟件維護(hù)不是一項(xiàng)吸引人的工作。形成這種觀念很大程度上是因?yàn)榫S護(hù)工作經(jīng)常遭受挫折。軟件工程軟件維護(hù)的定義1軟件維護(hù)的特點(diǎn)2軟件維護(hù)過程3軟件的可維護(hù)性4軟件維護(hù)過程33軟件維護(hù)過程維護(hù)過程本質(zhì)上是修改和壓縮了的軟件定義和開發(fā)過程,而且事實(shí)上遠(yuǎn)在提出一項(xiàng)維護(hù)要求之前,與軟件維護(hù)有關(guān)的工作已經(jīng)開始了。首先必須建立一個維護(hù)組織,隨后必須確定報(bào)告和評價(jià)的過程,而且必須為每個維護(hù)要求規(guī)定一個標(biāo)準(zhǔn)化的事件序列。此外,還應(yīng)該建立一個適用于維護(hù)活動的記錄保管過程,并且規(guī)定復(fù)審標(biāo)準(zhǔn)。1)

維護(hù)組織雖然通常并不需要建立正式的維護(hù)組織,但是,即使對于一個小的軟件開發(fā)團(tuán)體而言,非正式地委托責(zé)任也是絕對必要的。每個維護(hù)要求都通過維護(hù)管理員轉(zhuǎn)交給相應(yīng)的系統(tǒng)管理員去評價(jià)。系統(tǒng)管理員是被指定去熟悉一小部分產(chǎn)品程序的技術(shù)人員。系統(tǒng)管理員對維護(hù)任務(wù)做出評價(jià)之后,由變化授權(quán)人決定應(yīng)該進(jìn)行的活動。下圖描繪了上述組織方式。在維護(hù)活動開始之前就明確維護(hù)責(zé)任是十分必要的,這樣做可以大大減少維護(hù)過程中可能出現(xiàn)的混亂。2)

維護(hù)報(bào)告應(yīng)該用標(biāo)準(zhǔn)化的格式表達(dá)所有軟件維護(hù)要求。軟件維護(hù)人員通常給用戶提供空白的維護(hù)要求表——有時稱為軟件問題報(bào)告表,這個表格由要求一項(xiàng)維護(hù)活動的用戶填寫。如果遇到了一個錯誤,那么必須完整描述導(dǎo)致出現(xiàn)錯誤的環(huán)境(包括輸入數(shù)據(jù)、全部輸出數(shù)據(jù)以及其他有關(guān)信息)。對于適應(yīng)性或完善性的維護(hù)要求,應(yīng)該提出一個簡短的需求說明書。如前所述,由維護(hù)管理員和系統(tǒng)管理員評價(jià)用戶提交的維護(hù)要求表。維護(hù)要求表是一個外部產(chǎn)生的文件,它是計(jì)劃維護(hù)活動的基礎(chǔ)。軟件組織內(nèi)部應(yīng)該制定出一個軟件修改報(bào)告,它給出下述信息:(1)滿足維護(hù)要求表中提出的要求所需要的工作量;(2)維護(hù)要求的性質(zhì);(3)這項(xiàng)要求的優(yōu)先次序;(4)與修改有關(guān)的事后數(shù)據(jù)。3)

維護(hù)的事件流下圖描繪了由一項(xiàng)維護(hù)要求而引出的一串事件。4)

保存維護(hù)記錄對于軟件生命周期的所有階段而言,以前記錄保存都是不充分的,而軟件維護(hù)則根本沒有記錄保存下來。由于這個原因,往往不能估價(jià)維護(hù)技術(shù)的有效性,不能確定一個產(chǎn)品程序的“優(yōu)良”程度,而且很難確定維護(hù)的實(shí)際代價(jià)是什么。保存維護(hù)記錄遇到的第一個問題就是,哪些數(shù)據(jù)是值得記錄的?Swanson提出了下述內(nèi)容:程序標(biāo)識;源語句數(shù);機(jī)器指令條數(shù);使用的程序設(shè)計(jì)語言;程序安裝的日期;自從安裝以來程序運(yùn)行的次數(shù);自從安裝以來程序失效的次數(shù);程序變動的層次和標(biāo)識;因程序變動而增加的源語句數(shù);因程序變動而刪除的源語句數(shù);每個改動耗費(fèi)的人時數(shù);程序改動的日期;軟件工程師的名字;維護(hù)要求表的標(biāo)識;維護(hù)類型;維護(hù)開始和完成的日期;累計(jì)用于維護(hù)的人時數(shù);與完成的維護(hù)相聯(lián)系的純效益。應(yīng)該為每項(xiàng)維護(hù)工作都收集上述數(shù)據(jù)。可以利用這些數(shù)據(jù)構(gòu)成一個維護(hù)數(shù)據(jù)庫的基礎(chǔ),并且像下面介紹的那樣對它們進(jìn)行評價(jià)。5)

評價(jià)維護(hù)活動缺乏有效的數(shù)據(jù)就無法評價(jià)維護(hù)活動。如果已經(jīng)開始保存維護(hù)記錄了,則可以對維護(hù)工作做一些定量度量。至少可以從下述7個方面度量維護(hù)工作:(1)每次程序運(yùn)行平均失效的次數(shù);(2)用于每一類維護(hù)活動的總?cè)藭r數(shù);(3)平均每個程序、每種語言、每種維護(hù)類型所做的程序變動數(shù);(4)維護(hù)過程中增加或刪除一個源語句平均花費(fèi)的人時數(shù);(5)維護(hù)每種語言平均花費(fèi)的人時數(shù);(6)一張維護(hù)要求表的平均周轉(zhuǎn)時間;(7)不同維護(hù)類型所占的百分比。根據(jù)對維護(hù)工作定量度量的結(jié)果,可以做出關(guān)于開發(fā)技術(shù)、語言選擇、維護(hù)工作量規(guī)劃、資源分配及其他許多方面的決定,而且可以利用這樣的數(shù)據(jù)去分析評價(jià)維護(hù)任務(wù)。軟件工程軟件維護(hù)的定義1軟件維護(hù)的特點(diǎn)2軟件維護(hù)過程3軟件的可維護(hù)性4軟件的可維護(hù)性44軟件的可維護(hù)性是指糾正軟件系統(tǒng)出現(xiàn)的錯誤或缺陷,以及為滿足新的要求進(jìn)行修改,擴(kuò)充或壓縮的容易程度,即衡量維護(hù)容易程度的一種屬性。可以把軟件的可維護(hù)性定性地定義為:維護(hù)人員理解、改正、改動或改進(jìn)這個軟件的難易程度。影響軟件可維護(hù)性的因素維護(hù)就是在軟件交付使用后進(jìn)行的修改,修改之前必須理解待修改的對象,修改之后應(yīng)該進(jìn)行必要的測試,以保證所做的修改是正確的。如果是改正性維護(hù),還必須預(yù)先進(jìn)行調(diào)試以確定錯誤的具體位置。因此,決定軟件可維護(hù)性的因素主要有下述5個:1.可理解性軟件可理解性表現(xiàn)為外來讀者理解軟件的結(jié)構(gòu)、功能、接口和內(nèi)部處理過程的難易程度。模塊化(模塊結(jié)構(gòu)良好,高內(nèi)聚,松耦合)、詳細(xì)的設(shè)計(jì)文檔、結(jié)構(gòu)化設(shè)計(jì)、程序內(nèi)部的文檔和良好的高級程序設(shè)計(jì)語言等等,都對提高軟件的可理解性有重要貢獻(xiàn)。2.可測試性診斷和測試的容易程度取決于軟件容易理解的程度。良好的文檔對診斷和測試是至關(guān)重要的,此外,軟件結(jié)構(gòu)、可用的測試工具和調(diào)試工具,以及以前設(shè)計(jì)的測試過程也都是非常重要的。維護(hù)人員應(yīng)該能夠得到在開發(fā)階段用過的測試方案,以便進(jìn)行回歸測試。在設(shè)計(jì)階段應(yīng)該盡力把軟件設(shè)計(jì)成容易測試和容易診斷的。對于程序模塊來說,可以用程序復(fù)雜度來度量它的可測試性。模塊的環(huán)形復(fù)雜度越大,可執(zhí)行的路徑就越多,因此,全面測試它的難度就越高。3.可修改性軟件容易修改的程度和本書第5章講過的設(shè)計(jì)原理和啟發(fā)規(guī)則直接有關(guān)。耦合、內(nèi)聚、信息隱藏、局部化、控制域與作用域的關(guān)系等等,都影響軟件的可修改性。4.可移植性軟件可移植性指的是,把程序從一種計(jì)算環(huán)境(硬件配置和操作系統(tǒng))轉(zhuǎn)移到另一種計(jì)算環(huán)境的難易程度。把與硬件、操作系統(tǒng)以及其他外部設(shè)備有關(guān)的程序代碼集中放到特定的程序模塊中,可以把因環(huán)境變化而必須修改的程序局限在少數(shù)程序模塊中,從而降低修改的難度。5.可重用性所謂重用(reuse)是指同一事物不做修改或稍加改動就在不同環(huán)境中多次重復(fù)使用。大量使用可重用的軟件構(gòu)件來開發(fā)軟件,可以從下述兩個方面提高軟件的可維護(hù)性:(1)通常,可重用的軟件構(gòu)件在開發(fā)時經(jīng)過很嚴(yán)格的測試

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論