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

下載本文檔

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

文檔簡(jiǎn)介

軟件工程第八章軟件維護(hù)1第八章軟件維護(hù)8.1軟件維護(hù)的定義一、軟件維護(hù)的定義和分類軟件維護(hù)是指在軟件運(yùn)行或維護(hù)階段對(duì)軟件產(chǎn)品所進(jìn)行的修改。分為四類:①改正性維護(hù)在軟件交付使用后,由于開發(fā)時(shí)測(cè)試得不徹底或不完全,在運(yùn)行階段會(huì)暴露一些開發(fā)時(shí)未能測(cè)試出來的錯(cuò)誤。為了識(shí)別和糾正軟件錯(cuò)誤,改正軟件性能上的缺陷,避免實(shí)施中的錯(cuò)誤使用,應(yīng)當(dāng)進(jìn)行的診斷和改正錯(cuò)誤的過程,這就是改正性維護(hù)。2②適應(yīng)性維護(hù)隨著計(jì)算機(jī)技術(shù)的飛速發(fā)展和更新?lián)Q代,軟件系統(tǒng)所需的外部環(huán)境或數(shù)據(jù)環(huán)境可能會(huì)更新和升級(jí)。為了使軟件系統(tǒng)適應(yīng)這種變化,需要對(duì)軟件進(jìn)行相應(yīng)的修改,這種維護(hù)活動(dòng)稱為適應(yīng)性維護(hù)。③擴(kuò)充與完善性維護(hù)在軟件的使用過程中,用戶往往會(huì)對(duì)軟件提出新的功能與性能要求。為了滿足這些要求,需要修改或再開發(fā)軟件,以擴(kuò)充軟件功能、增強(qiáng)軟件性能、改進(jìn)加工效率、提高軟件的可維護(hù)性。這種情況下進(jìn)行的維護(hù)活動(dòng)叫做完善性維護(hù)。④預(yù)防性維護(hù)采用先進(jìn)的軟件工程方法,對(duì)需要維護(hù)的軟件或軟件中的某一部分重新進(jìn)行設(shè)計(jì)、編制和測(cè)試。3三類維護(hù)占總的維護(hù)比例

維護(hù)在軟件生存期所占比例48.2軟件維護(hù)的特點(diǎn)影響維護(hù)工作量的因素1)系統(tǒng)大小2)程序設(shè)計(jì)語言3)系統(tǒng)年齡4)數(shù)據(jù)庫技術(shù)的應(yīng)用5)先進(jìn)的軟件開發(fā)技術(shù)

6)其他。例如,應(yīng)用的類型、數(shù)學(xué)模型、任務(wù)的難度、開關(guān)與標(biāo)記、IF嵌套深度、索引或下標(biāo)數(shù)等。58.2.1結(jié)構(gòu)化維護(hù)與非結(jié)構(gòu)化維護(hù)差別巨大非結(jié)構(gòu)化維護(hù)的代價(jià)很高,這種維護(hù)方式是沒有使用軟件工程方法學(xué)開發(fā)出來的軟件的必然結(jié)果。以完整的軟件配置為基礎(chǔ)的結(jié)構(gòu)化維護(hù),是在軟件開發(fā)中應(yīng)用軟件工程方法學(xué)的結(jié)果。雖然有了軟件的完整配置并不能保證維護(hù)時(shí)沒有問題,但是確實(shí)能減少精力的浪費(fèi)并且可以提高維護(hù)的總體質(zhì)量。68.2.2維護(hù)的代價(jià)高昂維護(hù)活動(dòng)分為生產(chǎn)性活動(dòng)和非生產(chǎn)性活動(dòng)。生產(chǎn)性活動(dòng):分析評(píng)價(jià)、修改設(shè)計(jì)和編寫程序代碼等;非生產(chǎn)性活動(dòng):理解程序代碼功能、數(shù)據(jù)結(jié)構(gòu)、接口特點(diǎn)和設(shè)計(jì)約束等。

維護(hù)成本公式:M=P+Ke

(c-d)

說明:

M:維護(hù)工作總工作量P

:生產(chǎn)性工作量K

:經(jīng)驗(yàn)常數(shù)c:是復(fù)雜度d:

對(duì)該軟件熟悉程度的度量78.2.3維護(hù)的問題很多(1)理解別人寫的程序通常非常困難.(2)需要維護(hù)的軟件無文檔或不全.(3)軟件人員流動(dòng)性大.(4)設(shè)計(jì)時(shí)未考慮將來修改需要,修改困難.

(5)維護(hù)工作無吸引力,缺乏成就感.88.3軟件維護(hù)過程首先建立維護(hù)組織,確定報(bào)告和評(píng)價(jià)過程,為每個(gè)維護(hù)要求規(guī)定一個(gè)標(biāo)準(zhǔn)化的事件序列,并記錄維護(hù)活動(dòng)和規(guī)定復(fù)審標(biāo)準(zhǔn)。一、維護(hù)組識(shí)所有軟件維護(hù)申請(qǐng)應(yīng)按規(guī)定的方式提出維護(hù)機(jī)構(gòu)通常提供“維護(hù)申請(qǐng)報(bào)告”或稱“軟件問題報(bào)告”由申請(qǐng)維護(hù)的用戶填寫。維護(hù)機(jī)構(gòu)內(nèi)部要寫“軟件修改報(bào)告”9

軟件維護(hù)的機(jī)構(gòu)10軟件維護(hù)的事件流1112軟件維護(hù)工作流程必要的技術(shù)工作

修改軟件需求說明修改軟件設(shè)計(jì)設(shè)計(jì)評(píng)審對(duì)源程序做必要修改單元測(cè)試集成測(cè)試(回歸測(cè)試)確認(rèn)測(cè)試軟件配置評(píng)審等。138.4軟件的可維護(hù)性衡量軟件質(zhì)量的幾個(gè)主要質(zhì)量特性:可維護(hù)性可使用性可靠性一、軟件可維護(hù)性的定義指糾正軟件系統(tǒng)出現(xiàn)的錯(cuò)誤和缺陷,以及為滿足新的要求進(jìn)行修改、擴(kuò)充或壓縮的容易程度。14二、可維護(hù)性的度量(1)可理解性:人們通過閱讀源代碼和相關(guān)文檔,了解程序功及其如何運(yùn)行的容易程度。可靠性:表明一個(gè)程序按照用戶的要求和設(shè)計(jì)目標(biāo),在給定的一段時(shí)間內(nèi)正確執(zhí)行的概率。可測(cè)試性:表明診斷和測(cè)試的容易程度??尚薷男裕罕砻鞒绦蛉菀仔薷牡某潭取?5二、可維護(hù)性的度量(2)可移植性:表明把程序從一種計(jì)算環(huán)境轉(zhuǎn)移到另一種計(jì)算環(huán)境的難易程度。可重用性:指同一個(gè)軟件(或軟件成份)不做修改或稍加改動(dòng),就可以在不同環(huán)境中多次重復(fù)使用。168.4.2文檔文檔比程序代碼更重要文檔分為用戶文檔和系統(tǒng)文檔兩類。用戶文檔主要描述系統(tǒng)功能和使用方法,不關(guān)心這些功能是怎樣實(shí)現(xiàn)的。系統(tǒng)文檔指從問題定義、需求說明到驗(yàn)收測(cè)試這樣系列的有關(guān)文檔。178.4.3可維護(hù)性復(fù)審可維護(hù)性復(fù)審的目的是:保證軟件配置的所有成分是完整、一致和可理解的,而且為了便于修改和管理已經(jīng)編目歸檔了。維護(hù)應(yīng)該針對(duì)整個(gè)軟件配置,不應(yīng)該只修改源程序代碼。如果源程序代碼的修改沒出有反映在設(shè)計(jì)文檔或用戶文檔中,則會(huì)產(chǎn)生嚴(yán)重的后果。188.5預(yù)防性維護(hù)預(yù)防性維護(hù):就是主了提高未來的可維護(hù)性或可靠性,而主動(dòng)地修改軟件。把今天的方法學(xué)應(yīng)用到昨天的軟件系統(tǒng)上,以支持明天的需求。198.6軟件再工程過程預(yù)防性維護(hù)也稱為軟件再工程一、逆向工程(reverseengineering)

軟件的逆向工程是分析程序,力圖在比源代碼更高的抽象層次上建立程序表示的過程,是一個(gè)設(shè)計(jì)恢復(fù)的過程,逆向工程工具可以從已有的程序中抽取數(shù)據(jù)結(jié)構(gòu)、體系結(jié)構(gòu)和程序設(shè)計(jì)信息。二、正向工程應(yīng)用現(xiàn)代軟件工程的概念、原理、技術(shù)和方法,重新開發(fā)現(xiàn)有的某個(gè)應(yīng)用系統(tǒng)。20三、軟件再工程(Re-engineering)軟件再工程是一個(gè)工程過程,它將逆向工程、重構(gòu)和正向工程組合起來,旨在對(duì)現(xiàn)存的大量軟件系統(tǒng)進(jìn)行挖掘、整理,重新獲得設(shè)計(jì)信息,用這些信息改建或重構(gòu)現(xiàn)有的系統(tǒng),以改進(jìn)它的綜合質(zhì)量;或者得到有用的軟件構(gòu)件,對(duì)已有軟件構(gòu)件進(jìn)行維護(hù)以延長(zhǎng)其生存期。再工程的基礎(chǔ)是系統(tǒng)理解,包括對(duì)運(yùn)行系統(tǒng)、源代碼、設(shè)計(jì)、分析、文檔等的全面理解。但在很多情況下,由于各類文檔的丟失,只能對(duì)源代碼進(jìn)行理解,即程序理解。21補(bǔ)充:提高可維護(hù)性的方法建立明確的軟件質(zhì)量目標(biāo)和優(yōu)先級(jí)相互促進(jìn)的特性:可理解性和可測(cè)試性可理解性和可修改性;相互抵觸的特性:效率和可移植性效率和可修改性

各特性的相對(duì)重要性應(yīng)隨著程序的用途不同、計(jì)算環(huán)境的不同而不同。

溫馨提示

  • 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)論