版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第8章維護(hù)
在軟件產(chǎn)品被開發(fā)出來并交付用戶使用之后,就進(jìn)入了軟件的維護(hù)階段。這個階段是軟件生命周期的最后一個階段,其基本任務(wù)是保證軟件在一個相當(dāng)長的時期能夠正常運行。軟件維護(hù)需要的工作量很大,平均說來,大型軟件的維護(hù)成本高達(dá)開發(fā)成本的4倍左右。目前國外許多軟件開發(fā)組織把60%以上的人力用于維護(hù)已有的軟件。軟件工程的目的是要提高軟件的可維護(hù)性,減少軟件維護(hù)所需要的工作量,降低軟件系統(tǒng)的總成本。
本章學(xué)習(xí)目標(biāo):理解軟件維護(hù)的定義掌握軟件維護(hù)活動掌握程序修改步驟了解軟件的可維護(hù)性
一、軟件維護(hù)定義1.定義
所謂軟件維護(hù)就是在軟件已經(jīng)交付使用之后,為了改正錯誤或滿足新的需要而修改軟件的過程。軟件維護(hù)包括下述4項活動。(1)改正性維護(hù)。(2)適應(yīng)性維護(hù)。(3)完善性維護(hù)。(4)預(yù)防性維護(hù)。
各類維護(hù)占維護(hù)在軟件生
總維護(hù)比例存期所占比例
2.影響維護(hù)工作量的因素系統(tǒng)規(guī)模程序設(shè)計語言系統(tǒng)年齡數(shù)據(jù)庫技術(shù)的應(yīng)用先進(jìn)的軟件開發(fā)技術(shù)應(yīng)用類型、數(shù)學(xué)模型等
3.維護(hù)成本M是維護(hù)中消耗的總工作量p是生產(chǎn)性工作量K是一個經(jīng)驗常數(shù)c是導(dǎo)致復(fù)雜性的度量d是對軟件熟悉程度的度量。
二、軟件維護(hù)活動為了有效地進(jìn)行軟件維護(hù),應(yīng)事先就開始做組織工作。首先建立維護(hù)的機(jī)構(gòu)申明提出維護(hù)申請報告的過程及評價的過程為每一個維護(hù)申請規(guī)定標(biāo)準(zhǔn)的處理步驟建立維護(hù)活動的登記制度以及規(guī)定評價和評審的標(biāo)準(zhǔn)。
軟件維護(hù)的機(jī)構(gòu)
軟件維護(hù)的工作流程開發(fā)項目表區(qū)分類型嚴(yán)重性評價優(yōu)先度評價錯誤分析維護(hù)過程問題分析復(fù)審配置維護(hù)申請糾錯適應(yīng)完善糾錯項目表嚴(yán)重不嚴(yán)重維護(hù)人員名單低高維護(hù)人員名單已修改的配置修改報告單已修改的軟件批準(zhǔn)交付用戶的配置
盡管維護(hù)申請的類型不同,但都要進(jìn)行同樣的技術(shù)工作。修改軟件需求說明修改軟件設(shè)計設(shè)計評審對源程序做必要的修改單元測試集成測試(回歸測試)
確認(rèn)測試軟件配置評審等
在每次軟件維護(hù)任務(wù)完成后進(jìn)行情況評審,對以下問題做一總結(jié):在目前情況下,設(shè)計、編碼、測試中的哪一方面可以改進(jìn)?哪些維護(hù)資源應(yīng)該有但沒有?工作中主要的或次要的障礙是什么?從維護(hù)申請的類型來看是否應(yīng)當(dāng)有預(yù)防性維護(hù)?
維護(hù)檔案記錄程序名稱源程序語句條數(shù)機(jī)器代碼指令條數(shù)所用的程序設(shè)計語言程序安裝的日期程序安裝后的運行次數(shù)與程序安裝后運行次數(shù)有關(guān)的處理故障次數(shù)程序改變的層次及名稱修改程序增加的源程序語句條數(shù)修改程序減少的源程序語句條數(shù)每次修改所付出的“人時”數(shù)修改程序的日期軟件維護(hù)人員的姓名維護(hù)申請報告的名稱、維護(hù)類型開始時間和維護(hù)結(jié)束時間在維護(hù)上的累計人時數(shù)維護(hù)工作的凈收益等
三、程序修改步驟在軟件維護(hù)時,必然會對源程序進(jìn)行修改。通常對源程序的修改不能無計劃地倉促上陣,為了正確、有效地修改,需要經(jīng)歷以下三個步驟。分析和理解程序修改程序重新驗證程序
1.分析理解程序經(jīng)過分析,全面、準(zhǔn)確、迅速地理解程序是決定維護(hù)成敗和質(zhì)量好壞的關(guān)鍵。在這方面,軟件的可理解性和文檔的質(zhì)量非常重要。理解程序的功能理解程序的結(jié)構(gòu)了解數(shù)據(jù)流信息了解控制流信息理解程序操作要求
2.修改程序設(shè)計程序修改計劃修改代碼以適應(yīng)變化修改程序的副作用可能引入錯誤可能出現(xiàn)軟件設(shè)計和數(shù)據(jù)結(jié)構(gòu)不匹配文檔和程序不匹配
3.重新驗證程序靜態(tài)確認(rèn)驗證修改后的程序需要檢查:(1)修改是否涉及到規(guī)格說明書?修改結(jié)果是否符合規(guī)格說明書?(2)程序的修改是否足以修正軟件中的問題?源程序代碼有無邏輯錯誤?修改時有無修補(bǔ)失誤?(3)修改部分對其它部分有無不良影響(副作用)?
計算機(jī)確認(rèn)用計算機(jī)對修改程序進(jìn)行確認(rèn)測試:確認(rèn)測試順序:先對修改部分進(jìn)行測試,然后隔離修改部分,測試程序的未修改部分,最后再把它們集成起來進(jìn)行測試。這種測試稱為回歸測試。準(zhǔn)備標(biāo)準(zhǔn)的測試用例。在重新確認(rèn)過程中,需邀請用戶參加。
維護(hù)后的驗收維護(hù)主管部門要檢驗:全部文檔是否完備,并已更新;所有測試用例和測試結(jié)果已經(jīng)正確記載;記錄軟件配置所有副本的工作已經(jīng)完成;維護(hù)工序和責(zé)任已經(jīng)確定。
四、軟件可維護(hù)性軟件可維護(hù)性是指糾正軟件系統(tǒng)出現(xiàn)的錯誤和缺陷,以及為滿足新的要求進(jìn)行修改、擴(kuò)充或壓縮的容易程度??删S護(hù)性、可使用性、可靠性是衡量軟件質(zhì)量的主要質(zhì)量特性,也是用戶十分關(guān)心的幾個方面。軟件的可維護(hù)性是軟件開發(fā)階段各個時期的關(guān)鍵目標(biāo)。
1.決定軟件可維護(hù)性的因素
目前廣泛使用的是用如下的七個特性來衡量程序的可維護(hù)性。
可理解性 可使用性 可測試性 可移植性 可修改性 效率 可靠性
(1)可理解性可理解性表明人們通過閱讀源代碼和相關(guān)文檔,了解程序功能及其如何運行的容易程度。一個可理解的程序應(yīng)具備以下一些特性:模塊化風(fēng)格一致性、不使用令人捉摸不定或含糊不清的代碼使用有意義的數(shù)據(jù)名和過程名、結(jié)構(gòu)化、完整性等。對于可理解性,可以使用一種叫做“90-10測試”的方法來衡量
(2)可靠性可靠性表明一個程序按照用戶的要求和設(shè)計目標(biāo),在給定的一段時間內(nèi)正確執(zhí)行的概率。關(guān)于可靠性,度量的標(biāo)準(zhǔn)主要有:平均失效間隔時間MTTF平均修復(fù)時間MTTR
(3)可測試性可測試性表明論證程序正確性的容易程度。程序越簡單,證明其正確性就越容易。而且設(shè)計合用的測試用例,取決于對程序的全面理解。一個可測試的程序應(yīng)當(dāng)是可理解的,可靠的,簡單的。對于程序模塊,可用程序復(fù)雜性來度量可測試性。程序的環(huán)路復(fù)雜性越大,程序的路徑就越多。因此,全面測試程序的難度就越大。
(4)可修改性可修改性表明程序容易修改的程度。一個可修改的程序應(yīng)當(dāng)是可理解的、通用的、靈活的、簡單的。通用性是指程序適用于各種功能變化而無需修改。靈活性是指能夠容易地對程序進(jìn)行修改。
(5)可移植性可移植性表明程序轉(zhuǎn)移到一個新的計算環(huán)境的可能性的大小?;蛘咚砻鞒绦蚩梢匀菀椎?、有效地在各種各樣的計算環(huán)境中運行的容易程度。一個可移植的程序應(yīng)具有結(jié)構(gòu)良好、靈活、不依賴于某一具體計算機(jī)或操作系統(tǒng)的性能。
(6)效率效率表明一個程序能執(zhí)行預(yù)定功能而又不浪費機(jī)器資源的程度。這些機(jī)器資源包括內(nèi)存容量、外存容量、通道容量和執(zhí)行時間。
(7)可使用性從用戶觀點出發(fā),可使用性定義為程序方便、實用、及易于使用的程度。一個可使用的程序應(yīng)是易于使用的、能允許用戶出錯和改變,并盡可能不使用戶陷入混亂狀態(tài)的程序。
(8)可重用性所謂重用是指同一軟件不做修改或稍加改動就可以在不同環(huán)境中多次重復(fù)使用??芍赜玫能浖?gòu)件在開發(fā)時經(jīng)過很嚴(yán)格的測試,可靠性比較高,改正性維護(hù)需求少。很容易修改可重用的軟件構(gòu)件使之再次應(yīng)用在新環(huán)境中,因此,軟件中使用的可重用構(gòu)件越多,適應(yīng)性和完善性維護(hù)也就越容易。
在各類維護(hù)中的側(cè)重點
文檔是影響軟件可維護(hù)性的決定因素。軟件系統(tǒng)的文檔可以分為用戶文檔和系統(tǒng)文檔兩類。用戶文檔主要描述系統(tǒng)功能和使用方法;系統(tǒng)文檔描述系統(tǒng)設(shè)計、實現(xiàn)和測試等各方面的內(nèi)容。下面分別討論用戶文檔和系統(tǒng)文檔。2.文檔
用戶文檔至少應(yīng)該包括下述5方面的內(nèi)容:功能描述:說明系統(tǒng)能做什么;安裝文檔:說明怎樣安裝這個系統(tǒng)以及怎樣使系統(tǒng)適應(yīng)特定的硬件配置;使用手冊:簡要說明如何著手使用這個系統(tǒng);參考手冊:詳盡描述用戶可以使用的所有系統(tǒng)設(shè)施以及它們的使用方法,還應(yīng)該解釋系統(tǒng)可能產(chǎn)生的各種出錯信息的含義;操作員指南(如果需要有系統(tǒng)操作員的話):說明操作員應(yīng)該如何處理使用中出現(xiàn)的各種情況。(1)用戶文檔
描述系統(tǒng)設(shè)計、實現(xiàn)和測試的文檔對于理解程序和維護(hù)程序來說是極端重要的。對于軟件開發(fā)過程前面階段的各個文檔,他們的作用是顯而易見的。(2)系統(tǒng)文檔
典型的軟件再工程過程模型如圖8.3所示,該模型定義了6類活動。五、軟件再工程過程
1.庫存目錄分析每個軟件組織都應(yīng)該保存其擁有的所有應(yīng)用系統(tǒng)的庫存目錄。該目錄包含關(guān)于每個應(yīng)用系統(tǒng)的基本信息。應(yīng)該仔細(xì)分析庫存目錄,按照業(yè)務(wù)重要程度、壽命、當(dāng)前可維護(hù)性、預(yù)期的修改次數(shù)等標(biāo)準(zhǔn),把庫中的應(yīng)用系統(tǒng)排序,從中選出再工程的候選者,然后明智地分配再工程所需要的資源。
2.文檔重構(gòu)軟件穩(wěn)定或者生命周期臨近結(jié)束,保持現(xiàn)狀首先建立起正在修改部分的文檔如果某應(yīng)用系統(tǒng)是完成業(yè)務(wù)工作的關(guān)鍵,而且必須重構(gòu)全部文檔,則仍然應(yīng)該設(shè)法把文檔工作減少到必需的最小量。
3.逆向工程逆向工程工具從現(xiàn)存的程序代碼中抽取有關(guān)數(shù)據(jù)、體系結(jié)構(gòu)和處理過程的設(shè)計信息。
4.代碼重構(gòu)重構(gòu)難于理解、測試和維護(hù)的模塊的代碼。重構(gòu)并不修改整體的程序體系結(jié)構(gòu),它僅關(guān)注個體模塊的設(shè)計細(xì)節(jié)以及在模塊中定義的局部數(shù)據(jù)結(jié)構(gòu)。如果重構(gòu)擴(kuò)展到模塊邊界之外并涉及軟件體系結(jié)構(gòu),則重構(gòu)變成了正向工程。
5.數(shù)據(jù)重構(gòu)
數(shù)據(jù)重構(gòu)始于逆向工程活動,分解當(dāng)前使用的數(shù)據(jù)體系結(jié)構(gòu),必要時定義數(shù)據(jù)模型,標(biāo)識數(shù)據(jù)對象和屬性,并從軟件質(zhì)量的角度復(fù)審現(xiàn)存的數(shù)據(jù)結(jié)構(gòu)。
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 施工安全協(xié)議書模板
- 2025年度棗樹種植與現(xiàn)代農(nóng)業(yè)園區(qū)建設(shè)合同4篇
- 行業(yè)間對于展會安全管理知識的普及推廣
- 網(wǎng)絡(luò)安全背景下學(xué)生行為規(guī)范的強(qiáng)化措施
- 科技助力孩子藝術(shù)成長現(xiàn)代教學(xué)方法與實踐
- 二零二五年度車輛擔(dān)保質(zhì)押投資合作合同4篇
- 2025版施工安全協(xié)議書:裝配式建筑安全協(xié)議范本3篇
- 維護(hù)策略在實驗室設(shè)備長期運行中的重要性
- 二零二五年度車牌租賃與車輛租賃信用評估合同4篇
- 巖棉防火技術(shù)在現(xiàn)代建筑中的應(yīng)用研究
- 人教版數(shù)學(xué)四年級下冊核心素養(yǎng)目標(biāo)全冊教學(xué)設(shè)計
- JJG 692-2010無創(chuàng)自動測量血壓計
- 三年級下冊口算天天100題(A4打印版)
- 徐州市2023-2024學(xué)年八年級上學(xué)期期末地理試卷(含答案解析)
- CSSD職業(yè)暴露與防護(hù)
- 飲料對人體的危害1
- 數(shù)字經(jīng)濟(jì)學(xué)導(dǎo)論-全套課件
- 移動商務(wù)內(nèi)容運營(吳洪貴)項目三 移動商務(wù)運營內(nèi)容的策劃和生產(chǎn)
- 中考記敘文閱讀
- 產(chǎn)科溝通模板
- 2023-2024學(xué)年四川省成都市小學(xué)數(shù)學(xué)一年級下冊期末提升試題
評論
0/150
提交評論