《軟件工程》課件第九章-軟件維護(hù)_第1頁
《軟件工程》課件第九章-軟件維護(hù)_第2頁
《軟件工程》課件第九章-軟件維護(hù)_第3頁
《軟件工程》課件第九章-軟件維護(hù)_第4頁
《軟件工程》課件第九章-軟件維護(hù)_第5頁
已閱讀5頁,還剩38頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、第八章第八章 系統(tǒng)的維護(hù)系統(tǒng)的維護(hù) 什么是維護(hù)什么是維護(hù) 所謂軟件維護(hù)就是在軟件已經(jīng)交付使用之所謂軟件維護(hù)就是在軟件已經(jīng)交付使用之后,為了改正錯(cuò)誤或滿足新的需求而修改軟后,為了改正錯(cuò)誤或滿足新的需求而修改軟件的過程。件的過程。 維護(hù)的目的維護(hù)的目的 保證軟件系統(tǒng)能持續(xù)的與用戶環(huán)境、數(shù)據(jù)保證軟件系統(tǒng)能持續(xù)的與用戶環(huán)境、數(shù)據(jù)處理操作、政府或其他有關(guān)部門的請(qǐng)求取得處理操作、政府或其他有關(guān)部門的請(qǐng)求取得協(xié)調(diào)。協(xié)調(diào)。8.1 軟件維護(hù)的類型軟件維護(hù)是指軟件系統(tǒng)交付使用以后,為了改正軟件維護(hù)是指軟件系統(tǒng)交付使用以后,為了改正錯(cuò)誤或滿足新的需求而修改軟件的過程。按照不錯(cuò)誤或滿足新的需求而修改軟件的過程。按照不

2、同的維護(hù)目的,維護(hù)工作可分成同的維護(hù)目的,維護(hù)工作可分成4 4類。類。完善性維護(hù)完善性維護(hù)(Perfective MaintenancePerfective Maintenance) 擴(kuò)充原有系統(tǒng)的功能,提高原有系統(tǒng)的性能,滿足用擴(kuò)充原有系統(tǒng)的功能,提高原有系統(tǒng)的性能,滿足用戶的實(shí)際需要。戶的實(shí)際需要。糾錯(cuò)性維護(hù)糾錯(cuò)性維護(hù)(Corrective MaintenanceCorrective Maintenance) 對(duì)在測試階段未能發(fā)現(xiàn)的,在軟件投入使用后才逐漸暴對(duì)在測試階段未能發(fā)現(xiàn)的,在軟件投入使用后才逐漸暴露出來的錯(cuò)誤的測試、診斷、定位、糾錯(cuò)以及驗(yàn)證、修改露出來的錯(cuò)誤的測試、診斷、定位、糾錯(cuò)

3、以及驗(yàn)證、修改的回歸測試過程。的回歸測試過程。軟件維護(hù)的類型適應(yīng)性維護(hù)適應(yīng)性維護(hù)(Adaptive MaintenanceAdaptive Maintenance) 要使運(yùn)行的軟件能適應(yīng)運(yùn)行環(huán)境的變動(dòng)而修要使運(yùn)行的軟件能適應(yīng)運(yùn)行環(huán)境的變動(dòng)而修改軟件的過程。改軟件的過程。預(yù)防性維護(hù)預(yù)防性維護(hù)(Preventive MaintenancePreventive Maintenance) 為了進(jìn)一步改善軟件的可靠性和易維護(hù)性,為了進(jìn)一步改善軟件的可靠性和易維護(hù)性,或者為將來的維護(hù)奠定更好的基礎(chǔ)而對(duì)軟件進(jìn)或者為將來的維護(hù)奠定更好的基礎(chǔ)而對(duì)軟件進(jìn)行修改。行修改。各種維護(hù)所占比例各種維護(hù)所占比例: :其它維

4、護(hù)其它維護(hù) 5 %5 %適應(yīng)性維適應(yīng)性維 護(hù)護(hù) 25%25%改正性維改正性維 護(hù)護(hù) 20%20%擴(kuò)充與完善性擴(kuò)充與完善性維護(hù)維護(hù) 50%50% 改正性維護(hù)占全部維護(hù)量的比率已從改正性維護(hù)占全部維護(hù)量的比率已從8080年代初年代初的的20%20%大幅度下降大幅度下降,90,90年代初一些公司的產(chǎn)品差錯(cuò)年代初一些公司的產(chǎn)品差錯(cuò)率已接近于零率已接近于零二、維護(hù)的步驟用戶用戶維護(hù)人員維護(hù)人員安排改正安排改正性維護(hù)性維護(hù)確認(rèn)維確認(rèn)維護(hù)類型護(hù)類型維護(hù)實(shí)施維護(hù)實(shí)施評(píng)價(jià)優(yōu)評(píng)價(jià)優(yōu)先級(jí)先級(jí)進(jìn)行問進(jìn)行問題分析題分析復(fù)審復(fù)審評(píng)價(jià)錯(cuò)誤評(píng)價(jià)錯(cuò)誤嚴(yán)重程度嚴(yán)重程度進(jìn)行問進(jìn)行問題分析題分析確定更確定更改要求改要求維護(hù)維護(hù)要求要

5、求完完 美美 性性 適適 應(yīng)應(yīng) 性性將安排好的工將安排好的工作量列入計(jì)劃作量列入計(jì)劃低低高高糾錯(cuò)性糾錯(cuò)性嚴(yán)重嚴(yán)重不嚴(yán)重不嚴(yán)重將改正錯(cuò)誤列入計(jì)劃將改正錯(cuò)誤列入計(jì)劃 人人 員員 安安排排人人 員員 安安 排排交付使用交付使用的軟件的軟件理解分析程序理解分析程序安排計(jì)劃安排計(jì)劃修改程序修改程序測試程序測試程序或或或或或或或或軟件維護(hù)的工作流程圖軟件維護(hù)的工作流程圖修改過修改過的軟件的軟件三、維護(hù)工作的組織管理三、維護(hù)工作的組織管理軟件維護(hù)工作不僅是技術(shù)性的,它還需要大量軟件維護(hù)工作不僅是技術(shù)性的,它還需要大量的管理工作與之相配合,才能保證維護(hù)工作的質(zhì)的管理工作與之相配合,才能保證維護(hù)工作的質(zhì)量。管理

6、部門應(yīng)對(duì)提交的修改方案進(jìn)行分析和審量。管理部門應(yīng)對(duì)提交的修改方案進(jìn)行分析和審查,并對(duì)修改帶來的影響作充分的估計(jì),對(duì)于不查,并對(duì)修改帶來的影響作充分的估計(jì),對(duì)于不妥的修改予以撤銷。需修改主文檔時(shí),管理部門妥的修改予以撤銷。需修改主文檔時(shí),管理部門更應(yīng)仔細(xì)審查。更應(yīng)仔細(xì)審查。 軟件維護(hù)的管理流程如圖所示:軟件維護(hù)的管理流程如圖所示: 維護(hù)修改建議維護(hù)修改建議 分析修改建議分析修改建議是否合理是否合理提交管理部門審查提交管理部門審查是否同意是否同意修改修改撤銷撤銷NYNY進(jìn)行測試進(jìn)行測試 提交管理部門審批提交管理部門審批是否批準(zhǔn)是否批準(zhǔn)更新主文檔更新主文檔Y 更新其他文檔更新其他文檔 提交使用提交使

7、用修改修改N8.2 8.2 軟件維護(hù)的特性軟件維護(hù)的特性一、結(jié)構(gòu)化維護(hù)與非結(jié)構(gòu)化維護(hù)一、結(jié)構(gòu)化維護(hù)與非結(jié)構(gòu)化維護(hù)結(jié)構(gòu)化維護(hù)結(jié)構(gòu)化維護(hù) 指軟件開發(fā)過程是按照軟件工指軟件開發(fā)過程是按照軟件工程方法,軟件的維護(hù)過程,有一整套完整的方案、技程方法,軟件的維護(hù)過程,有一整套完整的方案、技術(shù)、審定過程。術(shù)、審定過程。非結(jié)構(gòu)化維護(hù)非結(jié)構(gòu)化維護(hù) 缺乏必要的文檔說明,難于缺乏必要的文檔說明,難于確確定數(shù)據(jù)結(jié)構(gòu)、系統(tǒng)接口等特性。維護(hù)工作令人生畏定數(shù)據(jù)結(jié)構(gòu)、系統(tǒng)接口等特性。維護(hù)工作令人生畏,事倍功半。,事倍功半。二、軟件維護(hù)的代價(jià)二、軟件維護(hù)的代價(jià)維護(hù)費(fèi)用高達(dá)開發(fā)費(fèi)用的維護(hù)費(fèi)用高達(dá)開發(fā)費(fèi)用的55% 70%,而,而且

8、逐年上漲。且逐年上漲。維護(hù)中還可能引入新的潛在錯(cuò)誤。維護(hù)中還可能引入新的潛在錯(cuò)誤。Belady 和和 Lehman 提出軟件維護(hù)工作模型:提出軟件維護(hù)工作模型:M=P+K*EXP(C - D)其中:其中:M維護(hù)總工作量維護(hù)總工作量P生產(chǎn)性活動(dòng)生產(chǎn)性活動(dòng)K經(jīng)驗(yàn)常數(shù)經(jīng)驗(yàn)常數(shù)C程序復(fù)雜度(由非結(jié)構(gòu)化維護(hù)引起的)程序復(fù)雜度(由非結(jié)構(gòu)化維護(hù)引起的)D對(duì)維護(hù)軟件熟悉程度的度量。對(duì)維護(hù)軟件熟悉程度的度量。8.3 8.3 軟件維護(hù)的內(nèi)容軟件維護(hù)的內(nèi)容根據(jù)使用的要求,對(duì)程序進(jìn)行全面或部分修改;修根據(jù)使用的要求,對(duì)程序進(jìn)行全面或部分修改;修改以后,必須書寫修改報(bào)告改以后,必須書寫修改報(bào)告數(shù)據(jù)維護(hù)指對(duì)數(shù)據(jù)有較大的變

9、動(dòng)。如:安裝與轉(zhuǎn)換新數(shù)據(jù)維護(hù)指對(duì)數(shù)據(jù)有較大的變動(dòng)。如:安裝與轉(zhuǎn)換新的數(shù)據(jù)庫;或者某些數(shù)據(jù)文件或數(shù)據(jù)庫出現(xiàn)異常時(shí)的維的數(shù)據(jù)庫;或者某些數(shù)據(jù)文件或數(shù)據(jù)庫出現(xiàn)異常時(shí)的維護(hù)工作,如文件容量太大而出現(xiàn)數(shù)據(jù)溢出等。護(hù)工作,如文件容量太大而出現(xiàn)數(shù)據(jù)溢出等。 硬件人員應(yīng)加強(qiáng)設(shè)備的保養(yǎng)以及定期檢修,并做好檢硬件人員應(yīng)加強(qiáng)設(shè)備的保養(yǎng)以及定期檢修,并做好檢驗(yàn)記錄和故障登記工作。驗(yàn)記錄和故障登記工作。維護(hù)中的典型問題 與軟件維護(hù)有關(guān)的絕大多數(shù)問題的根源在于與軟件維護(hù)有關(guān)的絕大多數(shù)問題的根源在于計(jì)劃階段和開發(fā)階段的工作有缺點(diǎn)。計(jì)劃階段和開發(fā)階段的工作有缺點(diǎn)。(1)(1)難以跟蹤軟件版本的進(jìn)化過程難以跟蹤軟件版本的進(jìn)化過

10、程, ,軟件的變化未在軟件的變化未在文檔中反映出來文檔中反映出來. .(2)(2)難以跟蹤軟件的創(chuàng)建過程難以跟蹤軟件的創(chuàng)建過程. .(3)(3)難以讀懂他人程序難以讀懂他人程序. .(4)(4)無文檔或不全無文檔或不全. .(5)(5)軟件人員流動(dòng)性大軟件人員流動(dòng)性大. .(6)(6)設(shè)計(jì)時(shí)未考慮修改需要設(shè)計(jì)時(shí)未考慮修改需要, ,修改困難修改困難. .(7)(7)維護(hù)工作無吸引力維護(hù)工作無吸引力, ,缺乏成就感缺乏成就感. .維護(hù)過程中作應(yīng)記錄的數(shù)據(jù)維護(hù)過程中作應(yīng)記錄的數(shù)據(jù)程序標(biāo)識(shí)程序標(biāo)識(shí)源程序語句數(shù)目源程序語句數(shù)目機(jī)器代碼指令條數(shù)機(jī)器代碼指令條數(shù).以收集的數(shù)據(jù)為基礎(chǔ)構(gòu)造維護(hù)數(shù)據(jù)庫以收集的數(shù)據(jù)

11、為基礎(chǔ)構(gòu)造維護(hù)數(shù)據(jù)庫, ,供維護(hù)評(píng)價(jià)使用供維護(hù)評(píng)價(jià)使用. . 8.2.3 8.2.3 軟件維護(hù)的實(shí)施軟件維護(hù)的實(shí)施修改源程序的三個(gè)步驟修改源程序的三個(gè)步驟分析和理解程序分析和理解程序修改程序修改程序重新驗(yàn)證程序重新驗(yàn)證程序軟件維護(hù)的副作用軟件維護(hù)的副作用 由于軟件被修改而導(dǎo)致的錯(cuò)誤或其它由于軟件被修改而導(dǎo)致的錯(cuò)誤或其它多于動(dòng)作的發(fā)生,稱為是軟件維護(hù)的副作多于動(dòng)作的發(fā)生,稱為是軟件維護(hù)的副作用。用。軟件副作用的類型:軟件副作用的類型:修改代碼的副作用修改代碼的副作用修改數(shù)據(jù)的副作用修改數(shù)據(jù)的副作用修改文檔的副作用修改文檔的副作用o 為確保編碼修改沒有引入新的錯(cuò)誤,應(yīng)進(jìn)行嚴(yán)為確保編碼修改沒有引入新

12、的錯(cuò)誤,應(yīng)進(jìn)行嚴(yán)格的回歸測試。一般情況下,通過回歸測試,格的回歸測試。一般情況下,通過回歸測試,可以發(fā)現(xiàn)并糾正修改編碼所帶來的副作用。可以發(fā)現(xiàn)并糾正修改編碼所帶來的副作用。o 修改數(shù)據(jù)的副作用可以通過完善的設(shè)計(jì)文檔來修改數(shù)據(jù)的副作用可以通過完善的設(shè)計(jì)文檔來加以限制。這種文檔描述了數(shù)據(jù)結(jié)構(gòu),并且提加以限制。這種文檔描述了數(shù)據(jù)結(jié)構(gòu),并且提供了一種把數(shù)據(jù)元素、記錄、文件及其它結(jié)構(gòu)供了一種把數(shù)據(jù)元素、記錄、文件及其它結(jié)構(gòu)與軟件模塊聯(lián)系起來的交叉對(duì)照功能。與軟件模塊聯(lián)系起來的交叉對(duì)照功能。o維護(hù)應(yīng)該著眼于整個(gè)軟件配置,而不只是源程序代碼的修維護(hù)應(yīng)該著眼于整個(gè)軟件配置,而不只是源程序代碼的修改。如果源代碼

13、的修改沒有反映在設(shè)計(jì)文檔或用戶文檔中時(shí)改。如果源代碼的修改沒有反映在設(shè)計(jì)文檔或用戶文檔中時(shí),就會(huì)發(fā)生修改文檔的副作用。,就會(huì)發(fā)生修改文檔的副作用。 每當(dāng)對(duì)數(shù)據(jù)流程圖、軟件結(jié)構(gòu)、模塊算法過程和其他每當(dāng)對(duì)數(shù)據(jù)流程圖、軟件結(jié)構(gòu)、模塊算法過程和其他有關(guān)的特征進(jìn)行修改時(shí),必須同時(shí)對(duì)相應(yīng)的文檔資料進(jìn)行更有關(guān)的特征進(jìn)行修改時(shí),必須同時(shí)對(duì)相應(yīng)的文檔資料進(jìn)行更新。新。 在軟件再次交付使用之前,對(duì)整個(gè)軟件配置進(jìn)行評(píng)審在軟件再次交付使用之前,對(duì)整個(gè)軟件配置進(jìn)行評(píng)審將大大減少修改文檔的副作用。實(shí)際上某些維護(hù)申請(qǐng)的提出將大大減少修改文檔的副作用。實(shí)際上某些維護(hù)申請(qǐng)的提出只是由于用戶文檔不夠清楚。這時(shí)只需對(duì)文檔進(jìn)行維護(hù)即

14、可只是由于用戶文檔不夠清楚。這時(shí)只需對(duì)文檔進(jìn)行維護(hù)即可,并不需要修改軟件設(shè)計(jì)或源程序。,并不需要修改軟件設(shè)計(jì)或源程序。重新驗(yàn)證程序o靜態(tài)確認(rèn)靜態(tài)確認(rèn)o計(jì)算機(jī)確認(rèn)計(jì)算機(jī)確認(rèn)o維護(hù)后的驗(yàn)收維護(hù)后的驗(yàn)收 從維護(hù)角度所需的測試種類:從維護(hù)角度所需的測試種類:(1) (1) 對(duì)修改事務(wù)的測試對(duì)修改事務(wù)的測試(2) (2) 對(duì)修改程序的測試對(duì)修改程序的測試(3) (3) 操作過程的測試操作過程的測試(4) (4) 應(yīng)用系統(tǒng)運(yùn)行過程的測試應(yīng)用系統(tǒng)運(yùn)行過程的測試(5) (5) 使用過程的測試使用過程的測試(6) (6) 系統(tǒng)各部分間接口的測試系統(tǒng)各部分間接口的測試(7) (7) 與系統(tǒng)軟件接口的測試與系統(tǒng)軟件

15、接口的測試(8) (8) 安全性測試安全性測試(9) (9) 后備后備/ /恢復(fù)過程測試恢復(fù)過程測試 8.3軟件可維護(hù)性 軟件可維護(hù)性的定義:軟件可維護(hù)性的定義: 軟件可維護(hù)性是指糾正軟件系統(tǒng)出現(xiàn)的錯(cuò)誤和軟件可維護(hù)性是指糾正軟件系統(tǒng)出現(xiàn)的錯(cuò)誤和缺陷,以及為滿足新的要求進(jìn)行修改、擴(kuò)充或壓缺陷,以及為滿足新的要求進(jìn)行修改、擴(kuò)充或壓縮的容易程度??s的容易程度。 可維護(hù)性的控制因素可維護(hù)性的控制因素u 與開發(fā)方法有關(guān)的因素,與開發(fā)方法有關(guān)的因素,如采用什么方法如采用什么方法u 與開發(fā)環(huán)境有關(guān)的因素與開發(fā)環(huán)境有關(guān)的因素 與開發(fā)環(huán)境有關(guān)的因素與開發(fā)環(huán)境有關(guān)的因素 1. 1.合格的軟件開發(fā)人員合格的軟件開發(fā)

16、人員 2. 2.可理解的系統(tǒng)結(jié)構(gòu)可理解的系統(tǒng)結(jié)構(gòu) 3. 3.系統(tǒng)處理容易系統(tǒng)處理容易 4. 4.使用標(biāo)準(zhǔn)的編程語言使用標(biāo)準(zhǔn)的編程語言 5. 5.使用標(biāo)準(zhǔn)的操作系統(tǒng)使用標(biāo)準(zhǔn)的操作系統(tǒng) 6. 6.標(biāo)準(zhǔn)化的文檔結(jié)構(gòu)標(biāo)準(zhǔn)化的文檔結(jié)構(gòu) 7. 7.測試用例的有效性測試用例的有效性 8. 8.系統(tǒng)自身擁有的糾錯(cuò)工具系統(tǒng)自身擁有的糾錯(cuò)工具 9. 9.易于維護(hù)的計(jì)算機(jī)易于維護(hù)的計(jì)算機(jī) 10.10.開發(fā)該軟件的個(gè)人或組織開發(fā)該軟件的個(gè)人或組織衡量軟件可維護(hù)性的幾個(gè)度量特性:衡量軟件可維護(hù)性的幾個(gè)度量特性: 可理解性可理解性 可測試性可測試性 可修改性可修改性 可移植性可移植性 可維護(hù)性的度量可維護(hù)性的度量 各類維

17、護(hù)中的側(cè)重點(diǎn)各類維護(hù)中的側(cè)重點(diǎn)可理解性可理解性可測試性可測試性可修改性可修改性可靠性可靠性可移植性可移植性可使用性可使用性效效 率率度度量量程程序序可可維維護(hù)護(hù)性性的的7 7個(gè)個(gè)特特性性8.3.2 8.3.2 提高可維護(hù)性的方法提高可維護(hù)性的方法建立明確的軟件質(zhì)量目標(biāo)和優(yōu)先級(jí)建立明確的軟件質(zhì)量目標(biāo)和優(yōu)先級(jí) 使用提高軟件質(zhì)量的技術(shù)和工具使用提高軟件質(zhì)量的技術(shù)和工具 進(jìn)行明確的質(zhì)量保證審查進(jìn)行明確的質(zhì)量保證審查 選擇可維護(hù)的程序設(shè)計(jì)語言選擇可維護(hù)的程序設(shè)計(jì)語言 改進(jìn)程序的文檔改進(jìn)程序的文檔 開發(fā)軟件時(shí)考慮到維護(hù)開發(fā)軟件時(shí)考慮到維護(hù)8.3.3 預(yù)防性維護(hù) 開發(fā)和維護(hù)者不應(yīng)等待用戶的維護(hù)申開發(fā)和維護(hù)者

18、不應(yīng)等待用戶的維護(hù)申請(qǐng)請(qǐng), , 可先選擇以下類型程序作為預(yù)防性維可先選擇以下類型程序作為預(yù)防性維護(hù)對(duì)象護(hù)對(duì)象: :預(yù)計(jì)若干年內(nèi)將繼續(xù)使用的程序預(yù)計(jì)若干年內(nèi)將繼續(xù)使用的程序當(dāng)今正成功使用的程序當(dāng)今正成功使用的程序最近的將來要進(jìn)行大修改和完善的程序最近的將來要進(jìn)行大修改和完善的程序8.4 軟件維護(hù)過程軟件維護(hù)過程1. 1.建立維護(hù)組織建立維護(hù)組織 - - 一般軟件公司沒有專門的軟件維護(hù)機(jī)構(gòu),除一般軟件公司沒有專門的軟件維護(hù)機(jī)構(gòu),除非大型的軟件。非大型的軟件。 - - 維護(hù)機(jī)構(gòu)成員一般包括:配置管理員、維護(hù)維護(hù)機(jī)構(gòu)成員一般包括:配置管理員、維護(hù)控制員、系統(tǒng)管理員、一般維護(hù)工作人員??刂茊T、系統(tǒng)管理員

19、、一般維護(hù)工作人員。軟件的維護(hù)任務(wù)軟件的維護(hù)任務(wù) 修改修改負(fù)責(zé)人負(fù)責(zé)人維護(hù)申請(qǐng)維護(hù)申請(qǐng)系統(tǒng)監(jiān)督員系統(tǒng)監(jiān)督員配置管理員配置管理員維維護(hù)機(jī)構(gòu)護(hù)機(jī)構(gòu)維護(hù)人員維護(hù)人員維護(hù)管理員維護(hù)管理員 2. 2.安排計(jì)劃安排計(jì)劃 - - 維護(hù)工作不應(yīng)采用維護(hù)工作不應(yīng)采用“一次改一個(gè)錯(cuò)一次改一個(gè)錯(cuò)”的零打細(xì)敲的方的零打細(xì)敲的方法,而應(yīng)當(dāng)有計(jì)劃、有步驟地統(tǒng)籌安排。法,而應(yīng)當(dāng)有計(jì)劃、有步驟地統(tǒng)籌安排。 - - 維護(hù)報(bào)告應(yīng)包括的內(nèi)容:該維護(hù)工作的范圍、所需資維護(hù)報(bào)告應(yīng)包括的內(nèi)容:該維護(hù)工作的范圍、所需資源、確認(rèn)的要求、維護(hù)費(fèi)用及維護(hù)進(jìn)度安排。源、確認(rèn)的要求、維護(hù)費(fèi)用及維護(hù)進(jìn)度安排。 3. 3.軟件維護(hù)實(shí)施軟件維護(hù)實(shí)施 -

20、- 軟件維護(hù)任務(wù)與新軟件開發(fā)的過程基本上一致并且是軟件維護(hù)任務(wù)與新軟件開發(fā)的過程基本上一致并且是并行的。并行的。 - - 軟件修改完成后由維修主管進(jìn)行驗(yàn)收軟件修改完成后由維修主管進(jìn)行驗(yàn)收 4. 4.軟件維護(hù)文檔軟件維護(hù)文檔 - - 除一般文檔外還包括:除一般文檔外還包括: 軟件問題報(bào)告、軟件變動(dòng)報(bào)告、軟件維護(hù)記錄軟件問題報(bào)告、軟件變動(dòng)報(bào)告、軟件維護(hù)記錄8.38.3軟件再工程軟件再工程(Software Reengineering)(Software Reengineering) 8.3.1 8.3.1 什么是軟件再工程什么是軟件再工程 軟件再工程也成為更新或改造工程,它不僅恢軟件再工程也成為更

21、新或改造工程,它不僅恢復(fù)設(shè)計(jì)信息,而且去完善或重建一個(gè)系統(tǒng),使質(zhì)量復(fù)設(shè)計(jì)信息,而且去完善或重建一個(gè)系統(tǒng),使質(zhì)量得到提高。得到提高。 軟件再工程比其它系統(tǒng)進(jìn)化方法具有的絕對(duì)優(yōu)勢軟件再工程比其它系統(tǒng)進(jìn)化方法具有的絕對(duì)優(yōu)勢減少軟件演化風(fēng)險(xiǎn)減少軟件演化風(fēng)險(xiǎn)降低成本降低成本 軟件再工程過程模型軟件再工程過程模型代碼重構(gòu)代碼重構(gòu)數(shù)據(jù)重構(gòu)數(shù)據(jù)重構(gòu)正向工程正向工程庫存目錄分析庫存目錄分析文檔重構(gòu)文檔重構(gòu)逆向工程逆向工程再工程過程示意圖再工程過程示意圖 需求需求新需求新需求設(shè)計(jì)設(shè)計(jì)設(shè)計(jì)設(shè)計(jì)代碼代碼代碼代碼正正向向工工程程反反向向工工程程(重構(gòu))(重構(gòu))(重構(gòu))(重構(gòu))(重構(gòu))(重構(gòu))逆向工程逆向工程( (反向工

22、程反向工程reverse engineering)reverse engineering) 設(shè)計(jì)的設(shè)計(jì)的恢復(fù)過程恢復(fù)過程非結(jié)構(gòu)化、無文檔非結(jié)構(gòu)化、無文檔的源代碼或目標(biāo)代碼的源代碼或目標(biāo)代碼軟件的文檔軟件的文檔 通過檢驗(yàn)產(chǎn)品的實(shí)際樣品,獲得產(chǎn)品的有通過檢驗(yàn)產(chǎn)品的實(shí)際樣品,獲得產(chǎn)品的有關(guān)設(shè)計(jì)或制造的規(guī)格說明關(guān)設(shè)計(jì)或制造的規(guī)格說明 逆向工程過程逆向工程過程 將要再工程將要再工程的系統(tǒng)的系統(tǒng)自動(dòng)分析自動(dòng)分析手工加注釋手工加注釋系統(tǒng)系統(tǒng)信息庫信息庫文檔生成文檔生成數(shù)據(jù)數(shù)據(jù)結(jié)構(gòu)圖結(jié)構(gòu)圖程序程序結(jié)構(gòu)圖結(jié)構(gòu)圖可追溯可追溯矩陣矩陣逆向工程恢復(fù)信息的級(jí)別逆向工程恢復(fù)信息的級(jí)別: :(1)(1)實(shí)現(xiàn)級(jí)實(shí)現(xiàn)級(jí): :程

23、序的抽象語法樹、符程序的抽象語法樹、符號(hào)表等信息號(hào)表等信息(2)(2)結(jié)構(gòu)級(jí)結(jié)構(gòu)級(jí): :反映程序分量之間相互反映程序分量之間相互依賴關(guān)系的信息,如調(diào)用圖、依賴關(guān)系的信息,如調(diào)用圖、結(jié)構(gòu)圖等結(jié)構(gòu)圖等. .(3)(3)功能級(jí)功能級(jí): :反映程序段功能和段間反映程序段功能和段間關(guān)系的信息關(guān)系的信息(4)(4)領(lǐng)域級(jí)領(lǐng)域級(jí): :反映程序分量與應(yīng)用領(lǐng)反映程序分量與應(yīng)用領(lǐng)域概念間對(duì)應(yīng)關(guān)系的信息域概念間對(duì)應(yīng)關(guān)系的信息抽抽象象級(jí)級(jí)別別低低高高信息的抽象信息的抽象級(jí)別越高級(jí)別越高, , 它它與代碼距離與代碼距離越遠(yuǎn)越遠(yuǎn), , 通過逆通過逆向工程恢復(fù)向工程恢復(fù)的難度越大的難度越大, , 自動(dòng)工具支自動(dòng)工具支持的可

24、能性持的可能性變小變小逆向工程源程序源程序目標(biāo)代碼目標(biāo)代碼反匯編、反編譯反匯編、反編譯程序分析技術(shù)程序分析技術(shù): :程序結(jié)構(gòu)分析工具程序結(jié)構(gòu)分析工具 程序功能分析工具程序功能分析工具 源程序源程序概要設(shè)計(jì)概要設(shè)計(jì)詳細(xì)設(shè)計(jì)詳細(xì)設(shè)計(jì)概要設(shè)計(jì)概要設(shè)計(jì)需求分析需求分析一、軟件工程管理的重要性一、軟件工程管理的重要性先進(jìn)的管理技術(shù)往往是大型軟件開發(fā)成功的關(guān)鍵。先進(jìn)的管理技術(shù)往往是大型軟件開發(fā)成功的關(guān)鍵。二、軟件工程管理技術(shù)二、軟件工程管理技術(shù)開發(fā)計(jì)劃安排開發(fā)計(jì)劃安排表達(dá)計(jì)劃安排的三種主要工具:表達(dá)計(jì)劃安排的三種主要工具:(1)一般表格工具)一般表格工具進(jìn)度表進(jìn)度表(2 2)甘特圖()甘特圖(Gantt

25、ChartGantt Chart)實(shí)線實(shí)線 已完成已完成虛線虛線 未完成未完成任務(wù)任務(wù)時(shí)時(shí)間間 5 10 15 20 時(shí)標(biāo)網(wǎng)狀圖時(shí)標(biāo)網(wǎng)狀圖改進(jìn)的改進(jìn)的 Gantt ChartGantt Chart任務(wù)任務(wù) 5 10 15 20 A1B1B2(3)PERT圖圖Program Evaluation Review Technique 進(jìn)度計(jì)劃與評(píng)審技術(shù),是一種網(wǎng)絡(luò)圖進(jìn)度計(jì)劃與評(píng)審技術(shù),是一種網(wǎng)絡(luò)圖。調(diào)查研究調(diào)查研究2020天天系統(tǒng)分析系統(tǒng)分析3030天天系統(tǒng)設(shè)計(jì)系統(tǒng)設(shè)計(jì)6060天天系統(tǒng)調(diào)試系統(tǒng)調(diào)試3030天天子系統(tǒng)子系統(tǒng)1 1編調(diào)編調(diào)4040天天建立文件庫建立文件庫3030天天子系統(tǒng)子系統(tǒng)2 2編編調(diào)調(diào)3030天天用戶培訓(xùn)用戶培訓(xùn)2020天天建立硬件建立硬件系統(tǒng)系

溫馨提示

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

評(píng)論

0/150

提交評(píng)論