第7章 軟件維護技術(shù)(71-74)_第1頁
第7章 軟件維護技術(shù)(71-74)_第2頁
第7章 軟件維護技術(shù)(71-74)_第3頁
第7章 軟件維護技術(shù)(71-74)_第4頁
第7章 軟件維護技術(shù)(71-74)_第5頁
已閱讀5頁,還剩33頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、武漢紡織大學(xué)數(shù)學(xué)與計算機學(xué)院武漢紡織大學(xué)數(shù)學(xué)與計算機學(xué)院第第7 7章章 軟件維護技術(shù)軟件維護技術(shù)( (第第7.1-7.47.1-7.4節(jié))節(jié))武漢紡織大學(xué)數(shù)學(xué)與計算機學(xué)院武漢紡織大學(xué)數(shù)學(xué)與計算機學(xué)院主要內(nèi)容主要內(nèi)容軟件維護基本概念軟件維護基本概念軟件維護過程軟件維護過程軟件可維護性軟件可維護性軟件再工程技術(shù)軟件再工程技術(shù)武漢紡織大學(xué)數(shù)學(xué)與計算機學(xué)院武漢紡織大學(xué)數(shù)學(xué)與計算機學(xué)院軟件維護軟件維護所謂軟件維護是指軟件所謂軟件維護是指軟件交付使用之后,為了改交付使用之后,為了改正錯誤或滿足新的需求正錯誤或滿足新的需求等而修改軟件以達到延等而修改軟件以達到延長軟件壽命為目的的過長軟件壽命為目的的過程。程

2、。 軟件維護階段的長短決軟件維護階段的長短決定了軟件壽命的長短;定了軟件壽命的長短;軟件維護階段的費用占軟件維護階段的費用占軟件總成本的大部分。軟件總成本的大部分。 軟件維護像一座冰山軟件維護像一座冰山武漢紡織大學(xué)數(shù)學(xué)與計算機學(xué)院武漢紡織大學(xué)數(shù)學(xué)與計算機學(xué)院7.1 軟件維護的基本概念軟件維護的基本概念 軟件維護不同于硬件維護,主要原因是軟件維護不同于硬件維護,主要原因是軟件維護不是因為使用時軟件磨損或老軟件維護不是因為使用時軟件磨損或老化引起,而是由于軟件設(shè)計不正確、不化引起,而是由于軟件設(shè)計不正確、不完善或使用環(huán)境的變化等引起。完善或使用環(huán)境的變化等引起。因而,在維護類型、維護策略、維護成因

3、而,在維護類型、維護策略、維護成本以及維護的影響方面必須引起軟件維本以及維護的影響方面必須引起軟件維護人員的重視,否則,軟件維護對軟件護人員的重視,否則,軟件維護對軟件質(zhì)量來說將是一場災(zāi)難。質(zhì)量來說將是一場災(zāi)難。 武漢紡織大學(xué)數(shù)學(xué)與計算機學(xué)院武漢紡織大學(xué)數(shù)學(xué)與計算機學(xué)院7.1.1 軟件維護類型軟件維護類型 起起 因因維維 護護 活活 動動舉舉 例例由于開發(fā)時測試不徹由于開發(fā)時測試不徹底或不完全導(dǎo)致運行底或不完全導(dǎo)致運行階段出現(xiàn)的故障階段出現(xiàn)的故障改正性維護:改正性維護:識別和糾正軟件錯誤,改正性能上識別和糾正軟件錯誤,改正性能上的缺陷,排除實施中的誤使用而進行的診斷和改的缺陷,排除實施中的誤使

4、用而進行的診斷和改正錯誤的活動。約占整個維護的正錯誤的活動。約占整個維護的20%20%特殊情況(如特殊的特殊情況(如特殊的輸入數(shù)據(jù)組合)未處輸入數(shù)據(jù)組合)未處理引起的故障理引起的故障運行環(huán)境的變化運行環(huán)境的變化適應(yīng)性維護適應(yīng)性維護:使軟件適應(yīng)處理環(huán)境或數(shù)據(jù)要求的:使軟件適應(yīng)處理環(huán)境或數(shù)據(jù)要求的變化而修改軟件的活動。約占整個維護的變化而修改軟件的活動。約占整個維護的25%25%在字處理系統(tǒng)中增加在字處理系統(tǒng)中增加新的打印設(shè)備新的打印設(shè)備用戶對軟件提出新的用戶對軟件提出新的功能或性能要求功能或性能要求完善性維護或增強:完善性維護或增強:修改或再開發(fā)軟件,以擴充修改或再開發(fā)軟件,以擴充軟件功能,增強

5、軟件性能等。約占整個維護的軟件功能,增強軟件性能等。約占整個維護的50%50%修改工資管理程序,修改工資管理程序,以體現(xiàn)新的結(jié)算方法以體現(xiàn)新的結(jié)算方法為提高軟件的可維護為提高軟件的可維護性等,以便將來進一性等,以便將來進一步改進軟件打基礎(chǔ)步改進軟件打基礎(chǔ)預(yù)防性維護或再工程:預(yù)防性維護或再工程:采用先進的軟件工程方法采用先進的軟件工程方法對需要維護的軟件或軟件的某一部分(重新)進對需要維護的軟件或軟件的某一部分(重新)進行設(shè)計、編碼和測試。連同其它維護約占整個維行設(shè)計、編碼和測試。連同其它維護約占整個維護的護的5%5%將非結(jié)構(gòu)化的應(yīng)用軟將非結(jié)構(gòu)化的應(yīng)用軟件轉(zhuǎn)化成結(jié)構(gòu)化的軟件轉(zhuǎn)化成結(jié)構(gòu)化的軟件件除

6、此四類維護活動外,還有一些其它類型的維護活動,如:支援除此四類維護活動外,還有一些其它類型的維護活動,如:支援性維護(如用戶的培訓(xùn)等)。性維護(如用戶的培訓(xùn)等)。 武漢紡織大學(xué)數(shù)學(xué)與計算機學(xué)院武漢紡織大學(xué)數(shù)學(xué)與計算機學(xué)院7.1.2 軟件維護策略軟件維護策略 不同的維護類型需要采用不同的維護類型需要采用不同的維護策略。不同的維護策略。武漢紡織大學(xué)數(shù)學(xué)與計算機學(xué)院武漢紡織大學(xué)數(shù)學(xué)與計算機學(xué)院改正性維護改正性維護 在開發(fā)過程中要生成在開發(fā)過程中要生成100%可靠無誤的軟件可靠無誤的軟件通常是不太現(xiàn)實的,但通過使用一些新技術(shù),通常是不太現(xiàn)實的,但通過使用一些新技術(shù),可以大大減少進行改正性維護的需要。除

7、此之可以大大減少進行改正性維護的需要。除此之外,還可通過以下方法來減少此類維護活動:外,還可通過以下方法來減少此類維護活動:利用應(yīng)用軟件包;利用應(yīng)用軟件包;進行防錯程序設(shè)計;進行防錯程序設(shè)計;提高系統(tǒng)結(jié)構(gòu)化程度;提高系統(tǒng)結(jié)構(gòu)化程度;進行周期性維護審查。進行周期性維護審查。武漢紡織大學(xué)數(shù)學(xué)與計算機學(xué)院武漢紡織大學(xué)數(shù)學(xué)與計算機學(xué)院適應(yīng)性維護適應(yīng)性維護 運行環(huán)境的變化是不可避免的,但可以控制。運行環(huán)境的變化是不可避免的,但可以控制。進行配置管理。把硬件、操作系統(tǒng)和其他進行配置管理。把硬件、操作系統(tǒng)和其他相關(guān)環(huán)境因素的可能變化進行配置管理。相關(guān)環(huán)境因素的可能變化進行配置管理。修改局部化。把因環(huán)境變化而

8、必須修改的修改局部化。把因環(huán)境變化而必須修改的程序局部于某些程序模塊中。程序局部于某些程序模塊中。使用例行程序包等。例如使用內(nèi)部程序列使用例行程序包等。例如使用內(nèi)部程序列表等,可為維護性修改程序提供方便。表等,可為維護性修改程序提供方便。 武漢紡織大學(xué)數(shù)學(xué)與計算機學(xué)院武漢紡織大學(xué)數(shù)學(xué)與計算機學(xué)院完善性維護完善性維護 利用前兩類維護中列舉的方法,可以利用前兩類維護中列舉的方法,可以減少此類維護。另外,使用功能強且易于減少此類維護。另外,使用功能強且易于使用的工具和通過用戶使用系統(tǒng)原型模型使用的工具和通過用戶使用系統(tǒng)原型模型完整地確定系統(tǒng)需求等可以減少完善性維完整地確定系統(tǒng)需求等可以減少完善性維護

9、的工作量。護的工作量。 武漢紡織大學(xué)數(shù)學(xué)與計算機學(xué)院武漢紡織大學(xué)數(shù)學(xué)與計算機學(xué)院預(yù)防性維護預(yù)防性維護 可通過采用提前實現(xiàn)或可通過采用提前實現(xiàn)或軟件重用等手段或技術(shù)來減軟件重用等手段或技術(shù)來減少此類維護活動的工作量。少此類維護活動的工作量。 武漢紡織大學(xué)數(shù)學(xué)與計算機學(xué)院武漢紡織大學(xué)數(shù)學(xué)與計算機學(xué)院支援性維護支援性維護 可通過提供最新用戶文檔或可通過提供最新用戶文檔或聯(lián)機用戶文檔,進行適當(dāng)?shù)挠脩袈?lián)機用戶文檔,進行適當(dāng)?shù)挠脩襞嘤?xùn)或設(shè)立專門的維護人員等方培訓(xùn)或設(shè)立專門的維護人員等方式來減少此類維護活動。式來減少此類維護活動。 武漢紡織大學(xué)數(shù)學(xué)與計算機學(xué)院武漢紡織大學(xué)數(shù)學(xué)與計算機學(xué)院7.1.3 軟件維護

10、成本軟件維護成本 軟件維護活動所花費的工作量占軟件整個生存軟件維護活動所花費的工作量占軟件整個生存期工作量的期工作量的70%以上。影響軟件維護工作量以上。影響軟件維護工作量的因素有很多,就軟件系本身而言,有以下幾的因素有很多,就軟件系本身而言,有以下幾個主要方面:個主要方面: 系統(tǒng)的大小系統(tǒng)的大??;程序設(shè)計語言程序設(shè)計語言;系統(tǒng)年齡系統(tǒng)年齡;數(shù)據(jù)庫技術(shù)的應(yīng)用;數(shù)據(jù)庫技術(shù)的應(yīng)用;軟件開發(fā)新技術(shù)的運用。軟件開發(fā)新技術(shù)的運用。武漢紡織大學(xué)數(shù)學(xué)與計算機學(xué)院武漢紡織大學(xué)數(shù)學(xué)與計算機學(xué)院維護工作量:維護工作量:Boehm模型模型MM維護維護=ACT*MM開發(fā)開發(fā)*EAF ACT=(修改的指令數(shù)(修改的指令

11、數(shù)+增加的指令數(shù))增加的指令數(shù))/指令總數(shù)指令總數(shù);調(diào)節(jié)因子調(diào)節(jié)因子EAF(Effort Adjustment Factor) 武漢紡織大學(xué)數(shù)學(xué)與計算機學(xué)院武漢紡織大學(xué)數(shù)學(xué)與計算機學(xué)院Belady與與Lehman模型模型M=P+K(c-d) MM表示維護所需工作量;表示維護所需工作量;P P表示生產(chǎn)性工作量,如問題分析和評價、表示生產(chǎn)性工作量,如問題分析和評價、修改設(shè)計、實現(xiàn)等;修改設(shè)計、實現(xiàn)等;K K表示一個經(jīng)驗常數(shù);表示一個經(jīng)驗常數(shù);c c表示因未采用結(jié)構(gòu)化方法和缺少文檔而增表示因未采用結(jié)構(gòu)化方法和缺少文檔而增加的軟件復(fù)雜度;加的軟件復(fù)雜度;d表示維護人員對軟件的熟悉程度。表示維護人員對軟

12、件的熟悉程度。 武漢紡織大學(xué)數(shù)學(xué)與計算機學(xué)院武漢紡織大學(xué)數(shù)學(xué)與計算機學(xué)院7.1.4 軟件維護的副作用軟件維護的副作用 所謂軟件維護的副作用,就是指由于修所謂軟件維護的副作用,就是指由于修改程序而導(dǎo)致的錯誤或其它不需要的活改程序而導(dǎo)致的錯誤或其它不需要的活動。動。Freedman和和Weinberg定義了三類主定義了三類主要副作用,即:修改代碼的副作用、修要副作用,即:修改代碼的副作用、修改數(shù)據(jù)的副作用和修改文檔資料的副作改數(shù)據(jù)的副作用和修改文檔資料的副作用。用。 武漢紡織大學(xué)數(shù)學(xué)與計算機學(xué)院武漢紡織大學(xué)數(shù)學(xué)與計算機學(xué)院控制副作用控制副作用1 1按模塊把修改分組;按模塊把修改分組;2 2自頂向下

13、地安排所修改模塊的順序;自頂向下地安排所修改模塊的順序;3 3每次修改一個模塊;每次修改一個模塊;4 4對于每個修改了的模塊,在安排修改下對于每個修改了的模塊,在安排修改下一個模塊之前,要確定這個修改的副作一個模塊之前,要確定這個修改的副作用。用。 武漢紡織大學(xué)數(shù)學(xué)與計算機學(xué)院武漢紡織大學(xué)數(shù)學(xué)與計算機學(xué)院7.1.5 軟件維護的困難軟件維護的困難 理解別人的程序困難,且困難程度隨軟件配置理解別人的程序困難,且困難程度隨軟件配置成分的減少而迅速增加。成分的減少而迅速增加。需要維護的軟件往往存在文檔資料不全,甚至需要維護的軟件往往存在文檔資料不全,甚至有文檔也不易理解并和程序代碼可能不一致。有文檔也

14、不易理解并和程序代碼可能不一致。當(dāng)前,有些軟件的文檔是在代碼形成后為了應(yīng)當(dāng)前,有些軟件的文檔是在代碼形成后為了應(yīng)付所謂的鑒定而突擊出來的。付所謂的鑒定而突擊出來的。大多數(shù)軟件在開發(fā)時沒有考慮到將來的維護。大多數(shù)軟件在開發(fā)時沒有考慮到將來的維護。軟件維護被人們看成是一種沒有創(chuàng)造性的工作,軟件維護被人們看成是一種沒有創(chuàng)造性的工作,往往不能引起人們的重視。部分人認(rèn)為,維護往往不能引起人們的重視。部分人認(rèn)為,維護別人的程序不如開發(fā)新的程序。別人的程序不如開發(fā)新的程序。 武漢紡織大學(xué)數(shù)學(xué)與計算機學(xué)院武漢紡織大學(xué)數(shù)學(xué)與計算機學(xué)院7.2 軟件維護過程軟件維護過程 軟件維護過程本質(zhì)上是修改和壓縮了的軟件維護過

15、程本質(zhì)上是修改和壓縮了的軟件定義和軟件開發(fā)過程。軟件定義和軟件開發(fā)過程。首先,必須建立一個維護組織,確定提首先,必須建立一個維護組織,確定提出維護申請的過程及評價的過程,為每出維護申請的過程及評價的過程,為每個維護申請規(guī)定標(biāo)準(zhǔn)的處理步驟。建立個維護申請規(guī)定標(biāo)準(zhǔn)的處理步驟。建立維護活動的登記制度,并規(guī)定復(fù)審標(biāo)準(zhǔn)。維護活動的登記制度,并規(guī)定復(fù)審標(biāo)準(zhǔn)。然后,按維護組織建立的過程進行維護然后,按維護組織建立的過程進行維護活動。活動。 武漢紡織大學(xué)數(shù)學(xué)與計算機學(xué)院武漢紡織大學(xué)數(shù)學(xué)與計算機學(xué)院7.2.1 維護組織維護組織 維護申請維護管理員修改批準(zhǔn)人員系統(tǒng)管理員維護人員配置管理員軟件系統(tǒng)武漢紡織大學(xué)數(shù)學(xué)與

16、計算機學(xué)院武漢紡織大學(xué)數(shù)學(xué)與計算機學(xué)院職責(zé)職責(zé)將維護申請?zhí)峤唤o將維護申請?zhí)峤唤o維護管理員維護管理員,由維護管理員,由維護管理員將其交給某系統(tǒng)的系統(tǒng)管理員去評價。將其交給某系統(tǒng)的系統(tǒng)管理員去評價。系統(tǒng)管理員系統(tǒng)管理員是熟悉產(chǎn)品程序的某部分的技術(shù)人是熟悉產(chǎn)品程序的某部分的技術(shù)人員。員。系統(tǒng)管理員對維護申請評價后由系統(tǒng)管理員對維護申請評價后由修改批準(zhǔn)人員修改批準(zhǔn)人員(又稱變化授權(quán)人)決定如何進行修改。(又稱變化授權(quán)人)決定如何進行修改。維護人員維護人員在系統(tǒng)管理員的指導(dǎo)下修改軟件系統(tǒng)。在系統(tǒng)管理員的指導(dǎo)下修改軟件系統(tǒng)。在維護人員對系統(tǒng)進行修改的過程中,在維護人員對系統(tǒng)進行修改的過程中,配置管配置管理

17、員理員應(yīng)對軟件配置進行審查。應(yīng)對軟件配置進行審查。 武漢紡織大學(xué)數(shù)學(xué)與計算機學(xué)院武漢紡織大學(xué)數(shù)學(xué)與計算機學(xué)院7.2.2 維護申請維護申請 維護組織通常提供維護申請表維護組織通常提供維護申請表(Maintenance Request FormMaintenance Request Form,簡寫為,簡寫為MRFMRF),由申請維護的用戶填寫。),由申請維護的用戶填寫。如果是改正性的維護,用戶必須完整地如果是改正性的維護,用戶必須完整地說明出錯的情況,如輸入數(shù)據(jù),全部輸說明出錯的情況,如輸入數(shù)據(jù),全部輸出信息以及其他有關(guān)材料。出信息以及其他有關(guān)材料。如果申請的是適應(yīng)性或完善性維護,則如果申請的是適

18、應(yīng)性或完善性維護,則應(yīng)提出一個簡短的需求說明書。應(yīng)提出一個簡短的需求說明書。 武漢紡織大學(xué)數(shù)學(xué)與計算機學(xué)院武漢紡織大學(xué)數(shù)學(xué)與計算機學(xué)院(1 1)為滿足)為滿足MRFMRF要求所需工作量。要求所需工作量。(2 2)維護請求的性質(zhì)。)維護請求的性質(zhì)。(3 3)維護申請的優(yōu)先次序。)維護申請的優(yōu)先次序。(4 4)預(yù)計修改后的狀態(tài)。)預(yù)計修改后的狀態(tài)。軟件修改報告軟件修改報告 武漢紡織大學(xué)數(shù)學(xué)與計算機學(xué)院武漢紡織大學(xué)數(shù)學(xué)與計算機學(xué)院7.2.3 維護工作流程維護工作流程 武漢紡織大學(xué)數(shù)學(xué)與計算機學(xué)院武漢紡織大學(xué)數(shù)學(xué)與計算機學(xué)院(1 1)分析和理解程序。)分析和理解程序。(2 2)修改程序。)修改程序。(

19、3 3)重新驗證程序。)重新驗證程序。 進行各種測試:進行各種測試: 修改事務(wù)、修改程序、操作過程、應(yīng)用系統(tǒng)運用過程、使用修改事務(wù)、修改程序、操作過程、應(yīng)用系統(tǒng)運用過程、使用過程、各部分接口、作業(yè)控制語言、系統(tǒng)軟件接口、軟件系統(tǒng)之過程、各部分接口、作業(yè)控制語言、系統(tǒng)軟件接口、軟件系統(tǒng)之間接口、安全性、備份間接口、安全性、備份/ /恢復(fù)過程等恢復(fù)過程等(4)評審)評審實施維護的步驟實施維護的步驟 武漢紡織大學(xué)數(shù)學(xué)與計算機學(xué)院武漢紡織大學(xué)數(shù)學(xué)與計算機學(xué)院7.2.4 維護記錄與評價維護記錄與評價 Swanson維護記錄維護記錄:程序標(biāo)識;程序標(biāo)識;源程序語句數(shù);源程序語句數(shù);機器代碼指令數(shù);機器代碼

20、指令數(shù);使用的程序設(shè)計語言;使用的程序設(shè)計語言;程序交付日期;程序交付日期; 程序交付以來的運行次數(shù);程序交付以來的運行次數(shù);自交付以來程序失效的次數(shù);自交付以來程序失效的次數(shù);程序變動的層次和標(biāo)識;程序變動的層次和標(biāo)識;因程序變動而增加的語句數(shù);因程序變動而增加的語句數(shù);因程序變動而刪除的語句數(shù);因程序變動而刪除的語句數(shù);每項修改耗費的人時數(shù);每項修改耗費的人時數(shù);程序修改日期;程序修改日期;軟件工程師名字;軟件工程師名字;維護請求表的標(biāo)識;維護請求表的標(biāo)識;維護類型;維護類型;維護開始與結(jié)束日期;維護開始與結(jié)束日期;累計用于維護的人時數(shù);累計用于維護的人時數(shù);與完成的維護相聯(lián)系的效益。與完

21、成的維護相聯(lián)系的效益。武漢紡織大學(xué)數(shù)學(xué)與計算機學(xué)院武漢紡織大學(xué)數(shù)學(xué)與計算機學(xué)院維護評價維護評價程序運行失敗的平均數(shù);程序運行失敗的平均數(shù);于每類維護活動的總?cè)藭r數(shù);于每類維護活動的總?cè)藭r數(shù);平均每個程序、每種語言、每種維護類型所做平均每個程序、每種語言、每種維護類型所做的程序變動數(shù);的程序變動數(shù);維護過程中增加或刪除一個源程序語句平均花維護過程中增加或刪除一個源程序語句平均花費的人時數(shù);費的人時數(shù);維護每種語言所花費的工作量(平均人時數(shù));維護每種語言所花費的工作量(平均人時數(shù));一張維護申請表的平均周轉(zhuǎn)時間;一張維護申請表的平均周轉(zhuǎn)時間;不同維護類型所占百分比。不同維護類型所占百分比。 武漢

22、紡織大學(xué)數(shù)學(xué)與計算機學(xué)院武漢紡織大學(xué)數(shù)學(xué)與計算機學(xué)院7.3 軟件可維護性軟件可維護性 軟件可維護性是指糾正軟件軟件可維護性是指糾正軟件系統(tǒng)中出現(xiàn)的錯誤或缺陷,系統(tǒng)中出現(xiàn)的錯誤或缺陷,以及為滿足新的要求進行修以及為滿足新的要求進行修改、擴充和壓縮軟件的容易改、擴充和壓縮軟件的容易程度。程度。 武漢紡織大學(xué)數(shù)學(xué)與計算機學(xué)院武漢紡織大學(xué)數(shù)學(xué)與計算機學(xué)院7.3.1 影響軟件可維護性的軟件屬性影響軟件可維護性的軟件屬性 可理解性可理解性:表現(xiàn)為人們通過閱讀源代碼和表現(xiàn)為人們通過閱讀源代碼和相關(guān)文檔,理解軟件的結(jié)構(gòu)、接口、功相關(guān)文檔,理解軟件的結(jié)構(gòu)、接口、功能和內(nèi)部過程的容易程度。能和內(nèi)部過程的容易程度。

23、 可測試性可測試性: :一個軟件容易被測試的程度。一個軟件容易被測試的程度。 可修改性可修改性: :程序容易修改的程度。程序容易修改的程度。 武漢紡織大學(xué)數(shù)學(xué)與計算機學(xué)院武漢紡織大學(xué)數(shù)學(xué)與計算機學(xué)院7.3.2 軟件可維護性的定量度量軟件可維護性的定量度量 T.GilbT.Gilb建議把維護過程中各種活動耗費的時間記下來,以此來建議把維護過程中各種活動耗費的時間記下來,以此來間接度量軟件的可維護性。記錄的時間如下:間接度量軟件的可維護性。記錄的時間如下:問題識別的時間;問題識別的時間;因管理活動拖延的時間;因管理活動拖延的時間;收集維護工具的時間;收集維護工具的時間;分析、診斷問題的時間;分析、

24、診斷問題的時間;修改規(guī)格說明的時間;修改規(guī)格說明的時間;具體的改錯或修改的時間;具體的改錯或修改的時間;局部測試的時間;局部測試的時間;集成或回歸測試的時間;集成或回歸測試的時間;維護評審的時間;維護評審的時間;分發(fā)與恢復(fù)運行的時間。分發(fā)與恢復(fù)運行的時間。 以上以上1010項表明了一個維護過程所包含的全部活動。可以粗項表明了一個維護過程所包含的全部活動。可以粗略地認(rèn)為,這個周期越短,維護就越容易。略地認(rèn)為,這個周期越短,維護就越容易。 武漢紡織大學(xué)數(shù)學(xué)與計算機學(xué)院武漢紡織大學(xué)數(shù)學(xué)與計算機學(xué)院7.3.3 提高可維護性的方法提高可維護性的方法 建立明確的軟件質(zhì)量目標(biāo)和優(yōu)先級;建立明確的軟件質(zhì)量目標(biāo)

25、和優(yōu)先級;621621 使用提高軟件質(zhì)量的技術(shù)和工具;使用提高軟件質(zhì)量的技術(shù)和工具; 進行明確的質(zhì)量保證審查;進行明確的質(zhì)量保證審查; 選擇可維護的程序設(shè)計語言;選擇可維護的程序設(shè)計語言; 改進程序文檔;改進程序文檔; 開發(fā)時考慮到維護。開發(fā)時考慮到維護。 武漢紡織大學(xué)數(shù)學(xué)與計算機學(xué)院武漢紡織大學(xué)數(shù)學(xué)與計算機學(xué)院7.4 軟件再工程技術(shù)軟件再工程技術(shù) 軟件再工程(軟件再工程(ReengineeringReengineering)是一類軟件工)是一類軟件工程活動,通過對舊軟件程活動,通過對舊軟件( (遺留系統(tǒng)遺留系統(tǒng)) )實施處理,實施處理,以增進對軟件的理解,同時又提高了軟件自身以增進對軟件的理

26、解,同時又提高了軟件自身的可維護性、可復(fù)用性等。的可維護性、可復(fù)用性等。維護的局限:維護的局限:采用新技術(shù)所帶來的競爭優(yōu)勢受到嚴(yán)重限制;采用新技術(shù)所帶來的競爭優(yōu)勢受到嚴(yán)重限制;維護舊軟件的成本隨時間不斷增加;維護舊軟件的成本隨時間不斷增加;修改越來越困難。修改越來越困難。 武漢紡織大學(xué)數(shù)學(xué)與計算機學(xué)院武漢紡織大學(xué)數(shù)學(xué)與計算機學(xué)院7.4.1 逆向工程逆向工程 軟件逆向工程,通過對程序的分析,導(dǎo)軟件逆向工程,通過對程序的分析,導(dǎo)出更高抽象層次的表示,如從現(xiàn)存的程出更高抽象層次的表示,如從現(xiàn)存的程序中抽取數(shù)據(jù)、體系結(jié)構(gòu)、過程的設(shè)計序中抽取數(shù)據(jù)、體系結(jié)構(gòu)、過程的設(shè)計信息等,是一個設(shè)計恢復(fù)過程。信息等,

27、是一個設(shè)計恢復(fù)過程。 武漢紡織大學(xué)數(shù)學(xué)與計算機學(xué)院武漢紡織大學(xué)數(shù)學(xué)與計算機學(xué)院7.4.2 重構(gòu)重構(gòu) 軟件重構(gòu)是對源代碼和軟件重構(gòu)是對源代碼和/或數(shù)據(jù)進行修改,或數(shù)據(jù)進行修改,使其易于理解或維護,以適應(yīng)將來的變使其易于理解或維護,以適應(yīng)將來的變更。更。 ArnoldArnold總結(jié)了軟件重構(gòu)的好處,即:提總結(jié)了軟件重構(gòu)的好處,即:提高了程序的質(zhì)量;改善了軟件生產(chǎn)率;高了程序的質(zhì)量;改善了軟件生產(chǎn)率;減少了維護工作量;使軟件易于測試和減少了維護工作量;使軟件易于測試和調(diào)試;等等。調(diào)試;等等。 武漢紡織大學(xué)數(shù)學(xué)與計算機學(xué)院武漢紡織大學(xué)數(shù)學(xué)與計算機學(xué)院面向?qū)ο筌浖貥?gòu)面向?qū)ο筌浖貥?gòu)(refactor

28、ing)n重構(gòu)重構(gòu)(名詞):對軟件內(nèi)部結(jié)構(gòu)的一種調(diào)整,目的是在不改變軟件可觀察之行為的前提下提高其可理解性、降低其修改的成本。n重構(gòu)重構(gòu)(動詞):使用一系列的重構(gòu)(名詞),在不改變軟件可觀察之行為的前提下調(diào)整其結(jié)構(gòu),以達到提高其可理解性、降低其修改成本的目的。n重構(gòu)是語義保持的(有測試作為保證)。因此重構(gòu)只會使軟件質(zhì)量不斷變好,不會造成破壞。武漢紡織大學(xué)數(shù)學(xué)與計算機學(xué)院武漢紡織大學(xué)數(shù)學(xué)與計算機學(xué)院書籍書籍武漢紡織大學(xué)數(shù)學(xué)與計算機學(xué)院武漢紡織大學(xué)數(shù)學(xué)與計算機學(xué)院7.4.3 正向工程正向工程 正向工程也稱為改造,用從現(xiàn)存軟件恢正向工程也稱為改造,用從現(xiàn)存軟件恢復(fù)設(shè)計中得到的信息去重構(gòu)現(xiàn)存系統(tǒng),復(fù)設(shè)

29、計中得到的信息去重構(gòu)現(xiàn)存系統(tǒng),以改善其整體質(zhì)量。以改善其整體質(zhì)量。 由于軟件的原型(現(xiàn)存系統(tǒng))已經(jīng)存在,由于軟件的原型(現(xiàn)存系統(tǒng))已經(jīng)存在,正向工程的生產(chǎn)率將遠高于平均水平;正向工程的生產(chǎn)率將遠高于平均水平;同時,又由于用戶已對該軟件有經(jīng)驗,同時,又由于用戶已對該軟件有經(jīng)驗,因而正向工程過程可以很容易地確定新因而正向工程過程可以很容易地確定新的需求和變化的方向。的需求和變化的方向。 武漢紡織大學(xué)數(shù)學(xué)與計算機學(xué)院武漢紡織大學(xué)數(shù)學(xué)與計算機學(xué)院7.4.4 再工程成本再工程成本/效益分析效益分析 SneedSneed模型模型: :P P1 1:當(dāng)前對某應(yīng)用的年維護成本:當(dāng)前對某應(yīng)用的年維護成本P P2 2

溫馨提示

  • 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)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論