第八章 軟件維護_第1頁
第八章 軟件維護_第2頁
第八章 軟件維護_第3頁
第八章 軟件維護_第4頁
第八章 軟件維護_第5頁
已閱讀5頁,還剩10頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第八章軟件維護軟件投入使用后就進入軟件維護階段。維護階段是軟件生存周期中時間最長的一個階段,所花費的精力和費用也是最多的一個階段。軟件維護是軟件工程的一個重要任務,作為理論,木章的內(nèi)容比較簡單,多為識記領會內(nèi)容,主要應注意一些概念。其中的軟件可維護性是木章的重點內(nèi)容。8.1軟件維護的內(nèi)容軟件維護內(nèi)容有四種:校正性維護,適應性維護,完善性維護和預防性維護。校正性維護在軟件交付使用后,由于在軟件開發(fā)過程中產(chǎn)生的錯誤并沒有完全徹底的在測試中發(fā)現(xiàn),因此必然有一部分隱含的錯誤被帶到維護階段來。這些隱含的錯誤在某些特定的使用環(huán)境下會暴露出來。為了識別和糾正錯誤,修改軟件性能上的缺陷,應進行確定和修改錯誤的過程,這個過程就稱為校正性維護。校正性維護占整個維護工作的21%左右。適應性維護隨著計算機的飛速發(fā)展,計算機硬件和軟件環(huán)境也在不斷發(fā)生變化,數(shù)據(jù)環(huán)境也在不斷發(fā)生變化。為了使應用軟件適應這種而修改軟件的過程稱為適應性維護。這種維護活動占整個維護活動的25%。完善性維護在軟件漫長的運行時期中,用戶往往會對軟件提出新的功能要求與性能要求。這是因為用戶的業(yè)務會發(fā)生變化,組織機構也會發(fā)生變化。為了適應這些變化,應用軟件原來的功能和性能需要擴充和增強,為達到這個目的而進行的維護活動稱為完善性維護,占整個維護活動的50%。預防性維護為了提高軟件的可維護性和可靠性而對軟件進行的修改稱為預防性維護。這是為以后進一步的運行和維護打好基礎,占整個維護工作的4%。8.2維護的特點8.2.1非結構化維護和結構化維護軟件的開發(fā)過程對軟件的維護過程有較大的影響。若不采用軟件過程的方法開發(fā)軟件,則軟件只有程序而無文檔,維護工作非常難,這就是一種非結構化的維護。若采用軟件工程的方法開發(fā)軟件,則各階段都有相應的文檔,這容易進行維護工作,這是一種結構化的維護。非結構化維護因為只有源程序,而文檔很少或沒有文檔,維護活動只能從閱讀、理解、分析源程序開始。這是軟件工程時代以前進行維護的情況。結構化維護

用軟件工程思想開發(fā)的軟件具有各階段的文檔,這對于理解和掌握軟件功能、性能、系統(tǒng)結構、數(shù)據(jù)結構、系統(tǒng)接口和設計約束有很大作用。這種維護對減少精力、減少花費、提高軟件維護效率有很大的作用。8.2.2維護的困難性軟件維護的困難性是由于軟件需求分析和開發(fā)方法的缺陷。軟件生存周期中的開發(fā)階段沒有嚴格而又科學的管理和規(guī)劃,就會引起軟件運行時的維護困難。表現(xiàn)在以下幾個方面:讀懂別人的程序是困難的。文檔的不一致性。由于開發(fā)過程中文檔管理不嚴所造成的,在開發(fā)過程中經(jīng)常會出現(xiàn)修改程序卻遺忘了修改與其相關的文檔,使得文檔前后不一致。軟件開發(fā)和軟件維護在人員和時間上的差異由于維護階段持續(xù)時間很長,正在運行的軟件可能是十幾、二十年前開發(fā)的,開發(fā)工具、方法、技術與當前的工具、方法、技術差異很大,這又是維護困難的另一因素。軟件維護不是一項吸引人的事由于維護工作的困難性,維護工作經(jīng)常遭受挫折,而且很難出成果,不像軟件開發(fā)工作那樣吸引人。-==J-==J8.2.3軟件維護的費用軟件維護的費用在總費用中的比重是不斷增加的。七十年代占35%?40%,八十年代上升到40%?60%,九十年代上升到70%?80%。軟件維護費用不斷上升,這只是軟件維護有形的代價,無形的代價是要占用更多的資源,并在維護時對軟件的改動,引入了潛在的故障,從而降低了軟件的質量。用于軟件維護工作的活動可分為生產(chǎn)性活動和非生產(chǎn)性活動兩種。生產(chǎn)性活動包括分析評價、修改設計和編寫程序代碼等。非生產(chǎn)性活動包括理解程序代碼功能、解釋數(shù)據(jù)結構接口特點和設計約束。維護活動總的工作兩由下式表示:M=P+Kxexp(C-D)其中:M表示維護工作的總工作量;P表示生產(chǎn)性活動工作量;K表示經(jīng)驗常數(shù);C表示復雜性程度;D表示維護人員對軟件的熟悉程度;上式表明,若C越大,D越小,那么維護工作量將成指數(shù)增加;C增加表示軟件因未用軟件工程方法開發(fā),從而使得軟件為非結構化設計,文檔缺少,程序復雜性高。D表示維護人員不是原來的開發(fā)人員,對軟件熟悉程度低,重新理解軟件花費很多時間。8.3維護任務的實施8.3.1維護的組織為了有效地進行軟件維護,應事先開始組織工作,建立維護機構。這種維護機構通常以維護小組形式出現(xiàn)。維護小組分為臨時維護小組和長期維護小組。8.3.2維護的流程軟件維護的流程如下:制定維護申請報告。審查申請報告并批準。進行維護并做詳細記錄。復審。制定維護申請報告所有軟件維護申請報告應按照規(guī)定的方式提出。該報告也稱為軟件問題報告。它是維護階段的一種文檔,由申請維護的用戶填寫。維護申請報告是一種由用戶產(chǎn)生的文檔,在軟件維護組織內(nèi)部還要制定一份軟件修改報告,該報告是維護階段的另一種文檔。提出維護申請報告之后,由維護機構來評審維護請求。評審工作很重要,通過評審回答要不要維護,從而可以避免盲目的維護。維護過程一個維護申請?zhí)岢鲋?,?jīng)評審需要維護則按下列過程實施維護:首先確定要進行維護的類型。對校正性維護從評價錯誤的嚴重性開始。對適應性維護和完善性維護。實施維護任務。不管維護類型如何,大體上要開展相同的技術工作。這些工作包括修改軟件設計、必要的代碼修改、單元測試、集成測試、確認測試以及復審。每種維護類型的側重點不一樣。“救火”維護。在發(fā)生重大問題時,需要立即解決的問題。維護的復審在維護任務完成后,要對維護任務進行復審。8.3.3維護技術有兩類維護技術,它們是面向維護的技術和維護支援技術。而向維護的技術面向維護的技術涉及軟件開發(fā)的所有階段,是在軟件開發(fā)階段用來減少錯誤、提高軟件可維護性的技術。維護支援技術維護支援技術是在軟件維護階段用來提高維護作業(yè)的效率和質量的技術。維護支援技術包括下列方面的技術:.信息收集;.錯誤原因分析;.維護方案評價;.軟件分析與理解;.代碼與文檔修改;.修改后的確認;.遠距離的維護;8.3.4維護的副作用維護的目的是為了延長軟件的壽命并讓創(chuàng)造更多的價值,經(jīng)過一段時間的維護,軟件中的錯誤減少了,功能增強了。但修改軟件會造成軟件的錯誤,這種因修改軟件而造成的錯誤或其他不希望出現(xiàn)的情況稱為維護的副作用。維護的副作用有編碼副作用、數(shù)據(jù)副作用、文檔副作用三種。編碼副作用在使用程序設計語言修改源代碼時可能引入錯誤。數(shù)據(jù)副作用在修改數(shù)據(jù)結構時,有可能造成軟件設計與數(shù)據(jù)結構不匹配,因而導致軟件錯誤。文檔副作用對數(shù)據(jù)流、軟件結構、模塊邏輯或任何其他有關特性進行修改時,必須對相關技術文檔進行相應修改,否則會導致文檔與程序功能不匹配、缺省條件改變、新錯誤信息不正確等錯誤,使文檔不能反映軟件當前的狀態(tài)。8.4軟件可維護性軟件的維護是十分困難的,為了使軟件能易于維護,必須考慮使軟件具有可維護性。8.4.1可維護性定義軟件可維護性的定義:軟件能夠被理解、校正、適應及增強功能的容易程度。軟件的可維護性、可使用性、可靠性是衡量軟件質量的幾個主要特性,也是用戶十分關心的幾個問題。軟件的可維護性是軟件開發(fā)階段的關鍵目標。影響軟件可維護性的因素較多,設計、編碼及測試中的疏忽和低劣的軟件配置,缺少文檔等都對軟件的可維護性產(chǎn)生不良影響。軟件可維護性可用下面七個質量特性來衡量,即可理解性、可測試性、可修改性、可靠性、可移植性、可使用性和效率。對于不同類型的維護,這七種特性的側重點也是不相同。8.4.2可維護性的度量目前有若干對軟件可維護性進行綜合度量的方法,但要對可維護性作出定量度量還是困難的。還沒有一種方法能夠使用計算機對軟件的可維護性進行綜合性的定量評價。下面是度量一個可維護的軟件的七種特性時常采用的方法,即質量檢查表、質量測試、質量標準。質量檢查表是用于測試程序中某些質量特性是否存在的一個問題清單。質量測試與質量標準則用于定量分析和評價程序的質量。由于許多質量特性是相互抵觸的,要考慮幾種不同的度量標準去度量不同的質量特性。8.4.3提高可維護性的方法從下面五個方面來闡述如何提高軟件的可維護性:建立明確的軟件質量目標如果要程序滿足可維護性七個特性的全部要求,那么要付出很大的代價,甚至是不現(xiàn)實的,但有些可維護性是相互促進的,因此要明確軟件所追求的質量目標。使用先進的軟件開發(fā)技術和工具利用先進的軟件開發(fā)技術能大大提高軟件質量和減少軟件費用。面向對象的軟件開發(fā)方法就是一個非常實用而強有力的軟件開發(fā)方法,用面向對象方法開發(fā)出來的軟件系統(tǒng),穩(wěn)定性好,比較容易修改,比較容易理解,易于測試和調試,因此,可維護性好。建立明確的質量保證質量保證是指為提高軟件質量所做的各種檢查工作。質量保證檢查是非常有效的方法,不僅在軟件開發(fā)的各階段中得到了廣泛應用,而且在軟件維護中也是一個非常主要的工具。為了保證可維護性,以下四類檢查是非常有用的:⑴在檢查點進行檢查。(2)驗收檢查。(3)周期性的維護檢查。(4)對軟件包的檢查。選擇可維護的語言程序設計語言的選擇對維護影響很大。低級語言很難掌握,很難理解,因而很難維護。一般來說,高級語言比低級語言更容易理解,第四代語言更容易理解,容易編程,程序容易修改,改進了可維護性。改進程序的文檔程序文檔是對程序功能、程序各組成部分之間的關系、程序設計策略、程序實現(xiàn)過程的歷史數(shù)據(jù)等的說明和補充。程序文檔對提高程序的可閱讀性有重要作用。為了維護程序,人們必須閱讀和理解程序文檔。第8章例題分析與解答一、填空題為了識別和糾正運行中產(chǎn)生的錯誤而進行的維護稱為維護。答案:校正性采用軟件工程方法開發(fā)軟件,備階段均有文檔,容易維護,這種維護是。答案:結構性維護為提高可維護性,要使用的先進的、強有力的、實用的軟件開發(fā)方法是。答案:面向對象方法在軟件維護中,因修改軟件而導致出現(xiàn)的錯誤或其他情況稱為。答案:維護的副作用二、選擇題為增加軟件功能和性能而進行的軟件修改維護過程是()。A.校正性維護B.適應性維護C.完善性維護D.預防性維護答案:C維護中用來指出修改的工作量、工作性質、優(yōu)先權、修改的事后性質的文檔是()。A.軟件需求說明B.軟件修改報告C.軟件問題報告D.測試分析報告答案:B維護中,因修改全局或公用數(shù)據(jù)而引起的錯誤是()。A.文檔副作用B.數(shù)據(jù)副作用C.編碼副作用D.設計副作用答案:B生產(chǎn)性維護活動是()。A>改設計B.理解設計C.解釋數(shù)據(jù)結構D.理解功能答案:A第8章自測題及參考答案一、名詞解釋.校正性維護2.適應性維護3.完善性維護4.預防性維護5.軟件可維護性6.軟件維護的副作用二、填空題1.維護階段是軟件生存周期中時間最長的階段,也是花費精力和費用的階段。(最多).在軟件交付使用后,由于在軟件開發(fā)過程中產(chǎn)生的錯誤沒有完全徹底在開發(fā)階段發(fā)現(xiàn),必然有一部分隱含錯誤帶到階段。(維護).采用手工方法開發(fā)軟件只有程序而無文檔,維護困難,這是一種維護。(非結構化).軟件維護費用增加的主要原因是維護的非常低。(生產(chǎn)率).軟件維護工作的活動分為生產(chǎn)性活動和活動。(非生產(chǎn)性).所有軟件維護申請報告要按規(guī)定方式提出,該報告也稱報告。(軟件問題).有兩類維護技術:在開發(fā)階段使用來減少錯誤,提高軟件可維護性的面向維護技術;在維護階段用來提高維護的效率和質量的技術。(維護支援)三、選擇題1.在生存周期中,時間長、費用高、困難大的階段是(D)。A.需求分析B.編碼C.測試D.維護為適應軟硬件環(huán)境變化而修改軟件的過程是(B)。A.校正性維護B.適應性維護C.完善性維護D.預防性維護3.軟件維護困難的主要原因是(C)。A.費用低B.人員少C.開發(fā)方法的缺陷D.維護難軟件維護費用高的主要原因是(B)。A.生產(chǎn)率高B.生產(chǎn)率低C.人員多D.人員少.維護階段的文檔是(C)。A.軟件需求說明B.操作手冊C.軟件問題報告D.測試分析報告.產(chǎn)生軟件維護的副作用,是指(C)。A.開發(fā)時的錯誤B.隱含的錯誤C.因修改軟件而造成的錯誤D.運行時誤操作維護中,因誤刪除一個標識符而引起的錯誤是(C)副作用。A.文檔B.數(shù)據(jù)C.編碼D.設計可維護性的特性中相互促進的是(A)。A.可理解性和可測試性B.效率和可移植性C.效率和可修改性D.效率和結構好9.可維護性的特性中,相互矛盾的是(C)。A.可修改性和可理解性B.可測試性和可理解性C.效率和可修改性D.可理解性和可讀性《軟件工程》習題參考答案81、軟件維護有哪些內(nèi)容?答:(1)校正性維護。在軟件交付使用后,一些隱含的錯誤在某些特定的使用環(huán)境下會暴露出來。為了識別和糾正錯誤,修改軟件性能上的缺陷,應進行確定和修改錯誤的過程,這個過程就稱為校正性維護。(2)適應性維護。為了使應用軟件適應計算機硬件、軟件環(huán)境及數(shù)據(jù)環(huán)境的不斷發(fā)生的變化而修改軟件的過程稱為適應性維護。(3)完善性維護。為增加軟件功能、增強軟件性能、提高軟件運行效率而進行的維護活動稱為完善性維護。(4)預防性維護。為了提高軟件的可維護性和可靠性而對軟件進行的修改稱為預防性維護。2、軟件維護的特點是什么?答:主要體現(xiàn)在三個方面:(1)非結構化維護和結構化維護。軟件的開發(fā)過程對軟件的維護有很大的影響。若不采用軟件工程的方法開發(fā)軟件,則軟件只有程序而無文檔,維護工作非常困難,這是一種非結構化的維護。若采用軟件工程的方法開發(fā)軟件,則各階段都有相應的文檔,容易進行維護工作,這是一種結構化的維護。(2)維護的困難性。軟

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論