版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第11章軟件維護軟件維護的概念軟件維護活動程序修改的步驟及副作用軟件的維護性提高軟件維護性的方法111.1軟件維護的概念軟件維護的定義軟件維護是指在軟件運行/維護階段對軟件產品所進行的修改就是所謂的維護。根據(jù)維護工作的性質,軟件維護的活動可以分為以下4種類型。改正性維護適應性維護完善性維護預防性維護211.1軟件維護的概念1.改正性維護
改正性維護(correctivemaintenance)為了識別和糾正軟件錯誤、改正軟件性能上的缺陷、排除實施中的誤使用,應進行的診斷和改正錯誤的過程。例如,改正性維護可以是改正原來程序中開關使用的錯誤;解決開發(fā)時未能測試各種可能情況帶來的問題等。311.1軟件維護的概念3.完善性維護
為了滿足新的功能與性能要求,需要修改或再開發(fā)軟件,以擴充軟件功能、增強軟件性能、改進加工效率、提高軟件的可維護性。這種情況下進行的維護活動叫做完善性維護(perfectivemaintenance)。例如,完善性維護可能是修改一個計算工資的程序,使其增加新的扣除項目;縮短系統(tǒng)的應答時間,使其達到特定的要求等。54.預防性維護
預防性維護(preventivemaintenance)是指把今天的方法學用于昨天的系統(tǒng)以滿足明天的需要。也就是說,采用先進的軟件工程方法對需要維護的軟件或軟件中的某一部分(重新)進行設計、編碼和測試。11.1軟件維護的概念6各類維護占總維護工作量的比例在整個軟件維護階段花費的全部工作量中,預防性維護只占很小的比例,而完善性維護占了幾乎一半的工作量。11.1軟件維護的概念711.1軟件維護的概念維護工作量在軟件生存期中所占比例軟件維護活動花費的工作量占整個生存期工作量的70%以上(工作量的比例直接反映了成本的比例)
8根據(jù)影響軟件維護工作量的各種因素,針對3種典型維護,JamesMartin等提出了一些策略,以控制維護成本。1.改正性維護應用一些諸如數(shù)據(jù)庫管理系統(tǒng)、軟件開發(fā)環(huán)境、程序自動生成系統(tǒng)和高級(第四代)語言等新技術可大大提高可靠性,并減少進行改正性維護的需要。此外,還可考慮利用應用軟件包、防錯性程序設計、通過周期性維護審查等策略。軟件維護的策略
11.1軟件維護的概念1011.1軟件維護的概念2.適應性維護(3)使用內部程序列表、外部文件,以及處理的例行程序包,可為維護時修改程序提供方便。(4)使用面向對象技術,增強軟件系統(tǒng)的穩(wěn)定性,易于修改和移植。1211.2軟件維護活動軟件維護申請報告
所有軟件維護申請應按規(guī)定的方式提出。軟件維護組織通常提供維護申請報告(maintenancerequestform,MRF),或稱軟件問題報告,由申請維護的用戶填寫。如果遇到一個錯誤,用戶必須完整地說明產生錯誤的情況,包括輸入數(shù)據(jù)、錯誤清單以及其他有關材料。如果申請的是適應性維護或完善性維護,用戶必須提出一份修改說明書,列出所有希望的修改。維護申請報告將由維護管理員和系統(tǒng)監(jiān)督員來研究處理。14維護申請報告是由軟件組織外部提交的文檔,它是計劃維護工作的基礎。軟件組織內部應相應地做出軟件修改報告(softwarechangereport,SCR),指明:●所需修改變動的性質;●申請修改的優(yōu)先級;●為滿足某個維護申請報告,所需的工作量;●預計修改后的狀況。軟件修改報告應提交修改負責人,經批準后才能開始進一步安排維護工作。11.2軟件維護活動15軟件維護工作流程如下圖所示。11.2軟件維護活動軟件維護工作流程
16在每次軟件維護任務完成后,最好進行一次情況評審,對以下問題做一總結:在目前情況下,設計、編碼、測試中的哪一方面可以改進?哪些維護資源應該有,但沒有?工作中主要的或次要的障礙是什么?從維護申請的類型來看是否應當有預防性維護?情況評審對將來的維護工作如何進行會產生重要的影響,并可為軟件機構的有效管理提供重要的反饋信息。
11.2軟件維護活動1711.2軟件維護活動維護檔案記錄
內容包括程序名稱、源程序語句條數(shù)、機器代碼指令條數(shù)、所用的程序設計語言、程序安裝的日期、程序安裝后的運行次數(shù)、與程序安裝后運行次數(shù)有關的處理故障次數(shù)、程序改變的層次及名稱、修改程序所增加的源程序語句條數(shù)、修改程序所減少的源程序語句條數(shù)、每次修改所付出的“人時”數(shù)、修改程序的日期、軟件維護人員的姓名、維護申請報告的名稱、維護類型、維護開始時間和維護結束時間、花費在維護上的累計“人時”數(shù)、維護工作的凈收益等。對每項維護任務都應該收集上述數(shù)據(jù)。18為了正確、有效地進行程序修改,需要經歷3個步驟:分析和理解程序、實施修改以及重新驗證程序。11.3程序修改的步驟及修改的副作用分析和理解程序
經過分析,全面、準確、迅速地理解程序是決定維護成敗和質量好壞的關鍵。在這方面,軟件的可理解性和文檔的質量非常重要。為此必須:(1)研究程序的使用環(huán)境及有關資料,盡可能得到更多的背景信息;(2)理解程序的功能和目標;20(3)掌握程序的結構信息,即從程序中細分出若干結構成分,如程序系統(tǒng)結構、控制結構、數(shù)據(jù)結構和輸入/輸出結構等;(4)了解數(shù)據(jù)流信息,即所涉及的數(shù)據(jù)來自何處,在哪里被使用;(5)了解控制流信息,即執(zhí)行每條路徑的結果;(6)如果設計存在,則可利用它們來幫助畫出結構圖和高層流程圖;(7)理解程序的操作(使用)要求。11.3程序修改的步驟及修改的副作用21對程序的修改,必須事先做出計劃,有準備地、周密有效地實施修改。1.設計程序的修改計劃
程序的修改計劃要考慮人員和資源的安排。修改計劃的內容主要包括以下幾項:(1)規(guī)格說明信息:數(shù)據(jù)修改、處理修改、作業(yè)控制語言修改、系統(tǒng)之間接口的修改等。(2)維護資源:新程序版本、測試數(shù)據(jù)、所需的軟件系統(tǒng)、計算機時間等。11.3程序修改的步驟及修改的副作用修改程序
23(3)人員:程序員、用戶相關人員、技術支持人員、廠家聯(lián)系人、數(shù)據(jù)錄入員等。(4)提供:紙質、計算機媒體等。針對以上每一項,要說明必要性、從何處著手、是否接受、日期等。通常,可采用自頂向下的方法,在理解程序的基礎上做如下工作:(1)研究程序的各個模塊、模塊的接口及數(shù)據(jù)庫,從全局的觀點提出修改計劃。(2)依次把要修改的、以及那些受修改影響的模塊和數(shù)據(jù)結構分離出來。11.3程序修改的步驟及修改的副作用24
2.修改代碼,以適應變化(1)正確、有效地編寫修改代碼;(2)要謹慎地修改程序,盡量保持程序的風格及格式,要在程序清單上注明改動的指令;(3)不要匆忙刪除程序語句,除非完全肯定它是無用的;(4)不要試圖共用程序中已有的臨時變量或工作區(qū),為了避免沖突或混淆用途,應自行設置自己的變量;(5)插入錯誤檢測語句;(6)保持詳細的維護活動和維護結果記錄;(7)如果程序結構混亂,修改受到干擾,可拋棄程序重新編寫。11.3程序修改的步驟及修改的副作用26所謂程序修改的副作用是指因修改軟件而造成的錯誤或其他不希望發(fā)生的情況,有以下3種副作用:1.修改代碼的副作用在使用程序設計語言修改源代碼時,都可能引入新的錯誤。例如,刪除或修改一個子程序、刪除或修改一個標號、刪除或修改一個標識符、改變程序代碼的時序關系、改變占用存儲的大小、改變邏輯運算符、修改文件的打開或關閉、改進程序的執(zhí)行效率,以及把設計上的改變翻譯成代碼的改變、為邊界條件的邏輯測試做出改變時,都容易引入錯誤。11.3程序修改的步驟及修改的副作用修改程序的副作用及其控制
272.修改數(shù)據(jù)的副作用在修改數(shù)據(jù)結構時,有可能造成軟件設計與數(shù)據(jù)結構不匹配,因而導致軟件出錯。修改數(shù)據(jù)的副作用是修改軟件信息結構導致的結果。例如,在重新定義局部的或全局的常量、重新定義記錄或文件的格式、增大或減小一個數(shù)組或高層數(shù)據(jù)結構的大小、修改全局或公共數(shù)據(jù)、重新初始化控制標志或指針、重新排列輸入/輸出或子程序的參數(shù)時,容易導致設計與數(shù)據(jù)不相容的錯誤。數(shù)據(jù)副作用可以通過詳細的設計文檔加以控制。11.3程序修改的步驟及修改的副作用28為了控制因修改而引起的副作用,要做到:(1)按模塊把修改分組;(2)自頂向下地安排被修改模塊的順序;(3)每次修改一個模塊;(4)對于每個修改了的模塊,在安排修改下一個模塊之前,要確定這個修改的副作用,可以使用交叉引用表、存儲映象表、執(zhí)行流程跟蹤等。11.3程序修改的步驟及修改的副作用301.靜態(tài)確認修改的軟件,通常伴隨著引起新的錯誤的危險。為了能夠做出正確的判定,驗證修改后的程序至少需要兩個人參加。要檢查:(1)修改是否涉及規(guī)格說明?修改結果是否符合規(guī)格說明?有沒有歪曲規(guī)格說明?(2)程序的修改是否足以修正軟件中的問題?源程序代碼有無邏輯錯誤?修改時有無修補失誤?(3)修改部分對其他部分有無不良影響(副作用)?對軟件進行修改,常常會引發(fā)別的問題,因此,有必要檢查修改的影響范圍。重新驗證程序
11.3程序修改的步驟及修改的副作用312.確認測試在充分進行了以上確認的基礎上,要用計算機對修改程序進行確認測試。(1)確認測試順序:先對修改部分進行測試,然后隔離修改部分,測試程序的未修改部分,最后再把它們集成起來進行測試。這種測試稱為回歸測試。(2)準備標準的測試用例。(3)充分利用軟件工具幫助重新驗證過程。(4)在重新確認過程中,需邀請用戶參加。11.3程序修改的步驟及修改的副作用323.維護后的驗收在交付新軟件之前,維護主管部門要檢驗:(1)全部文檔是否完備,并已更新;(2)所有測試用例和測試結果已經正確記載;(3)記錄軟件配置所有副本的工作已經完成;(4)維護工序和責任是明確的。11.3程序修改的步驟及修改的副作用33
軟件維護性是指當對軟件實施各種類型的維護而進行修改時,軟件產品可被修改的能力。
軟件維護的子特性:
11.4軟件的維護性軟件維護性的定義
3411.4軟件的維護性軟件維護性度量的任務是對軟件產品的維護性給出量化的評價。軟件維護的度量也分為內部維護性度量和外部維護性度量,兩者的差別如下表。351.模塊化模塊化技術的優(yōu)點是如果需要改變某個模塊的功能,則只要改變這個模塊,對其他模塊影響很?。蝗绻枰黾映绦虻哪承┕δ?,則僅需增加完成這些功能的新的模塊或模塊層;程序的測試與重復測試比較容易;程序錯誤易于定位和糾正;容易提高程序效率。2.結構化程序設計結構化程序設計不僅使得模塊結構標準化,而且將模塊間的相互作用也標準化了,因而把模塊化又向前推進了一步。采用結構化程序設計可以獲得良好的程序結構。使用提高軟件質量的技術和工具
11.5提高軟件維護性的方法363.使用結構化程序設計技術,提高現(xiàn)有系統(tǒng)的可維護性
(1)采用備用件的方法——當要修改某一個模塊時,用一個新的結構良好的模塊替換掉整個模塊。(2)采用自動重建結構和重新格式化的工具(結構更新技術)。(3)改進現(xiàn)有程序的不完善的文檔。(4)使用結構化程序設計方法實現(xiàn)新的子系統(tǒng)。(5)采用結構化小組。11.5提高軟件維護性的方法37質量保證審查除了保證軟件得到適當?shù)馁|量外,還可以用來檢測在開發(fā)和維護階段內發(fā)生的質量變化。一旦檢測出問題來,就可以采取措施糾正,以控制不斷增長的軟件維護成本。為了保證軟件的可維護性,有4種類型的軟件審查。檢查點審查驗收檢查周期性的維護審查對軟件包進行檢查
11.5提高軟件維護性的方法實施開發(fā)階段產品的維護性審查
3811.5提高軟件維護性的方法1.檢查點審查保證軟件質量的最佳方法是在軟件開發(fā)的最初階段就把質量要求考慮進去,并在開發(fā)過程每一個階段的終點,設置檢查點進行檢查。檢查的目的是要證實,已開發(fā)的軟件是否符合標準,是否滿足規(guī)定的質量需求。3911.5提高軟件維護性的方法1.檢查點審查在不同的檢查點,檢查的重點不完全相同,例如,在設計階段,檢查重點是可理解性、可修改性、可測試性??衫斫庑詸z查的重點是程序的復雜性。如下圖所示。402.驗收檢查驗收檢查是一個特殊的檢查點的檢查,是交付使用前的最后一次檢查,是軟件投入運行之前保證可維護性的最后機會。以下是驗收檢查必須遵循的最小驗收標準。(1)需求和規(guī)范標準①需求應當以可測試的術語進行書寫,按優(yōu)先次序排列和定義。②區(qū)分必須的、任選的、將來的需求。③包括對系統(tǒng)運行時的計算機設備的需求;對維護、測試、操作,以及維護人員的需求;對測試工具等的需求。11.5提高軟件維護性的方法41(2)設計標準①程序應設計成分層的模塊結構。每個模塊應完成唯一的功能,并達到高內聚、低耦合。②通過一些知道預期變化的實例,說明設計的可擴充性、可縮減性和可適應性。11.5提高軟件維護性的方法42(3)源代碼標準①盡可能使用程序設計語言的標準版本。②所有的代碼都必須具有良好的結構。③所有的代碼都必須文檔化,在注釋中說明它的輸入、輸出,以及便于測試/再測試的一些特點與風格。(4)文檔標準文檔中應說明程序的輸入/輸出、使用的方法/算法、錯誤恢復方法、所有參數(shù)的范圍、默認條件等。433.周期性地維護審查
檢查點復查和驗收檢查,可用來保證新軟件系統(tǒng)的可維護性。對已有的軟件系統(tǒng),則應當進行周期性的維護檢查。軟件在運行期間,必須對軟件做周期性的維護審查,以跟蹤軟件質量的變化。周期性維護審查實際上是開發(fā)階段檢查點復查的繼續(xù),并且采用的檢查方法、檢查內容都是相同的。
11.5提高軟件維護
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度金融科技企業(yè)股權合作框架協(xié)議3篇
- 綠色農業(yè)的科技創(chuàng)新與實踐
- 二零二五年度水資源保護堰塘承包管理合同3篇
- 二零二五年度高速鐵路軌道施工合同3篇
- 2025年度文化藝術館軟裝承接合同樣本4篇
- 二零二五年度車庫停車場智能停車引導系統(tǒng)采購合同4篇
- 二零二五年度成都高空廣告安裝公司高空作業(yè)防護用品供應合同2篇
- 校企合作在寵物人才培養(yǎng)中的實踐與探索
- 學校活動成功執(zhí)行的全方位策略
- 2025年統(tǒng)編版2024選修化學下冊階段測試試卷含答案
- 2024年中國華能集團燃料有限公司招聘筆試參考題庫含答案解析
- 《紅樓夢》中的男性形象解讀
- 安全生產技術規(guī)范 第49部分:加油站 DB50-T 867.49-2023
- 《三國演義》中的語言藝術:詩詞歌賦的應用
- 腸外營養(yǎng)液的合理配制
- 消防安全教育培訓記錄表
- 2023年河南省新鄉(xiāng)市鳳泉區(qū)事業(yè)單位招聘53人高頻考點題庫(共500題含答案解析)模擬練習試卷
- 2023年小升初簡歷下載
- 廣府文化的奇葩
- 公路工程標準施工招標文件(2018年版)解析
- 七年級地理下冊期末試卷(人教版)
評論
0/150
提交評論