




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
軟件工程導(dǎo)論(8)
——軟件維護南京理工大學(xué)汪惠芬2004年10月30日第八章軟件維護8.1軟件維護的概念8.2軟件維護活動8.3軟件修改的步驟8.4軟件可維護性8.5提高可維護性的方法8.6逆向工程和再工程8.7本章小結(jié)基本概念軟件維護程序修改可維護性本章小結(jié)逆向工程改善措施4/20/20232.8.1軟件維護的概念8.1.1軟件維護的定義8.1.2影響維護工作量的因素8.1.3軟件維護的策略基本概念軟件維護程序修改可維護性本章小結(jié)逆向工程改善措施4/20/20233.8.1.1軟件維護的定義改正性維護(correctivemaintenance)在軟件交付后,由于開發(fā)時測試的不徹底、不完全,必然會有一部分隱藏的錯誤被帶到運行階段。這些隱藏下來的錯誤在某些特定的使用環(huán)境下會暴露出來。為了識別和糾正錯誤、改正軟件性能上的缺陷、排除實施中的誤使用,應(yīng)進行的診斷和改正錯誤的過程,是改正性維護?;靖拍钴浖S護程序修改可維護性本章小結(jié)逆向工程改善措施4/20/20234.8.1.1軟件維護的定義適應(yīng)性維護(adaptivemaintenance)隨著計算機的飛速發(fā)展,外部環(huán)境(新的硬件、軟件配置)或數(shù)據(jù)環(huán)境(數(shù)據(jù)庫、數(shù)據(jù)格式、數(shù)據(jù)輸入/輸出方式、數(shù)據(jù)存儲介質(zhì))可能發(fā)生變化,為了使軟件適應(yīng)這種變化,而修改軟件的過程叫作適應(yīng)性維護?;靖拍钴浖S護程序修改可維護性本章小結(jié)逆向工程改善措施4/20/20235.8.1.1軟件維護的定義完善性維護(perfectivemaintenance)在軟件使用過程中,用戶往往會對軟件提出新的功能與性能要求。為了滿足這些要求,需要修改或再開發(fā)軟件,以擴充軟件功能、增強軟件性能、改進加工效率、提高軟件的可維護性。在這種情況下進行的維護活動叫作完善性維護?;靖拍钴浖S護程序修改可維護性本章小結(jié)逆向工程改善措施4/20/20236.8.1.1軟件維護的定義預(yù)防性維護(preventivemaintenance)為了提高軟件的可維護性、可靠性等,為以后進一步改進軟件打下良好基礎(chǔ),需要進行預(yù)防性維護。預(yù)防性維護定義為:“把今天的方法學(xué)用于昨天的系統(tǒng)以滿足明天的需要”。也就是說,采用先進的軟件工程方法對需要維護的軟件或軟件中的某一部分(重新)進行設(shè)計、編制和測試?;靖拍钴浖S護程序修改可維護性本章小結(jié)逆向工程改善措施4/20/20237.8.1.1軟件維護的定義維護的工作量分配在整個軟件維護階段花費的全部工作量中,預(yù)防性維護只占很小的比例,而完善性維護占了幾乎一半的工作量?;靖拍钴浖S護程序修改可維護性本章小結(jié)逆向工程改善措施適應(yīng)性維護
25%改正
性維護
20%完善性維護
50%其它維護
5%4/20/20238.8.1.1軟件維護的定義維護的工作量分配軟件維護活動花費的工作占整個生存期工作量的70%以上?;靖拍钴浖S護程序修改可維護性本章小結(jié)逆向工程改善措施維護
70.8%4/20/20239.8.1.2影響維護工作量的因素在軟件的維護過程中,需要花費大量的工作量,從而直接影響了軟件維護的成本。因此,應(yīng)當考慮有哪些因素影響軟件維護的工作量,相應(yīng)應(yīng)該采取什么維護策略,才能有效地維護軟件并控制維護的成本。基本概念軟件維護程序修改可維護性本章小結(jié)逆向工程改善措施4/20/202310.8.1.2影響維護工作量的因素在軟件維護中,影響維護工作量的程序特性有以下6種:系統(tǒng)大小程序設(shè)計語言系統(tǒng)年齡數(shù)據(jù)庫技術(shù)的應(yīng)用先進的軟件開發(fā)技術(shù)其它基本概念軟件維護程序修改可維護性本章小結(jié)逆向工程改善措施4/20/202311.8.1.1軟件維護的策略1)改正性維護策略利用應(yīng)用軟件包,可開發(fā)出比由用戶完全自己開發(fā)的系統(tǒng)可靠性更高的軟件;使用結(jié)構(gòu)化技術(shù),開發(fā)的軟件易于理解和測試;防錯性程序設(shè)計;通過周期性維護審查,在形成維護問題之前就可確定質(zhì)量缺陷?;靖拍钴浖S護程序修改可維護性本章小結(jié)逆向工程改善措施4/20/202312.8.1.1軟件維護的策略2)適應(yīng)性維護策略在配置管理時,把硬件、操作系統(tǒng)和其它相關(guān)環(huán)境因素的可能變化考慮在內(nèi),可以減少某些適應(yīng)性維護的工作量。把與硬件、操作系統(tǒng),以及其它外圍設(shè)備有關(guān)的程序歸到特定的程序模塊中。可把因環(huán)境變化而必須修改的程序局部于某些程序模塊之中。使用內(nèi)部程序列表、外部文件,以及處理的例行處理包,可為維護時修改程序提供方便。使用面向?qū)ο蠹夹g(shù),增強軟件系統(tǒng)的穩(wěn)定性,易于修改和移植。基本概念軟件維護程序修改可維護性本章小結(jié)逆向工程改善措施4/20/202313.8.1.1軟件維護的策略3)完善性維護策略利用前兩類維護中列舉的方法。利用數(shù)據(jù)庫管理系統(tǒng)、程序生成器、應(yīng)用軟件包,可減少系統(tǒng)或程序員的維護工作量。建立軟件系統(tǒng)的原型,把它在實際系統(tǒng)開發(fā)之前提供給用戶。用戶通過研究原型,進一步完善它們的功能要求,可以減少以后完善性維護的需要?;靖拍钴浖S護程序修改可維護性本章小結(jié)逆向工程改善措施4/20/202314.8.2軟件維護活動8.2.1軟件維護申請報告8.2.2軟件維護工作流程8.2.3維護檔案記錄8.2.4維護評價基本概念軟件維護程序修改可維護性本章小結(jié)逆向工程改善措施4/20/202315.8.2.1軟件維護申請報告所有軟件維護申請應(yīng)按規(guī)定的方式提出。軟件維護組織通常提供維護申請報告MRP(maintenancerequestform),或稱軟件問題報告,由申請維護的用戶填寫。如果遇到一個錯誤,用戶必須完整地說明產(chǎn)生錯誤的情況,包括輸入數(shù)據(jù)、錯誤清單以及其他有關(guān)材料。如果申請的是適應(yīng)性維護或完善性維護,用戶必須提出一份修改說明書,列出所有希望的修改。維護申請報告將由維護管理員和系統(tǒng)監(jiān)督員來研究處理?;靖拍钴浖S護程序修改可維護性本章小結(jié)逆向工程改善措施4/20/202316.8.2.1軟件維護申請報告維護申請報告是由軟件組織外部提交的文檔,它是計劃維護工作的基礎(chǔ)。軟件組織內(nèi)部應(yīng)相應(yīng)地作出軟件修改報告SCR(softwarechangereport),并指明:所需修改變動的性質(zhì);申請修改的優(yōu)先級;為滿足某個維護申請報告,所需的工作量;預(yù)計修改后的狀況?;靖拍钴浖S護程序修改可維護性本章小結(jié)逆向工程改善措施4/20/202317.8.2.2軟件維護工作流程軟件維護工作流程確認維護要求;確認維護類型;按不同類型進行維護處理,包括修改軟件需求說明、修改軟件設(shè)計、設(shè)計評審、對源程序作必要的修改、單元測試、集成測試(回歸測試)、確認測試、軟件配置評審等;維護任務(wù)完成后進行情況評審?;靖拍钴浖S護程序修改可維護性本章小結(jié)逆向工程改善措施4/20/202318.8.2.2軟件維護工作流程基本概念軟件維護程序修改可維護性本章小結(jié)逆向工程改善措施用戶維護人員確定更改要求評價錯誤嚴重程度判明維護類型評價優(yōu)先次序維護實施開始問題分析復(fù)審開始問題分析安排改正性維護把安排好的開發(fā)工作量列入計劃把錯誤改正列入計劃維護要求改
正性不嚴重嚴重(救火)人員安排完善性適應(yīng)性低高人
員
安
排修改
過的
軟件通過并交付
使用的軟件理解程序
分析原設(shè)計安排計劃
修改程序測試程序++++4/20/202319.8.2.2軟件維護工作流程情況評審內(nèi)容:在目前情況下,設(shè)計、編碼、測試中的哪一方面可以改進?哪些維護資源應(yīng)該有,但沒有?工作中主要或次要的障礙是什么?從維護申請的類型來看是否應(yīng)當有預(yù)防性維護?基本概念軟件維護程序修改可維護性本章小結(jié)逆向工程改善措施4/20/202320.8.2.3維護檔案記錄為了估計軟件維護的有效程度,確定軟件產(chǎn)品的質(zhì)量,同時確定維護的實際開銷,需要在維護過程中做好維護檔案記錄?;靖拍钴浖S護程序修改可維護性本章小結(jié)逆向工程改善措施4/20/202321.8.2.3維護檔案記錄維護檔案記錄內(nèi)容:基本概念軟件維護程序修改可維護性本章小結(jié)逆向工程改善措施程序名稱源程序語句條數(shù)機器代碼指令調(diào)試所用的程序設(shè)計語言程序安裝的日期程序安裝后的運行次數(shù)與程序安裝后運行次數(shù)有關(guān)的處理故障次數(shù)程序改變的層次及名稱修改程序所增加的源程序語句條數(shù)修改程序所減少的源程序語句條數(shù)每次修改所付出的“人時”數(shù)修改程序的日期軟件維護人員的姓名維護申請報告的名稱維護類型維護開始時間和維護結(jié)束時間花費在維護上的累積“人時”數(shù)維護工作的凈收益4/20/202322.8.2.4維護評價維護“性能”參考度量值:每次程序運行時的平均出錯次數(shù);花費在每類維護上的總“人時”數(shù);每個程序、每種語言、每種維護類型的程序平均修改次數(shù);因維護增加或減少每個源程序語句所花費的平均“人時”數(shù);用于每種語言的平均“人時”數(shù);維護申請報告的平均處理時間;各類維護申請的百分比?;靖拍钴浖S護程序修改可維護性本章小結(jié)逆向工程改善措施4/20/202323.8.3軟件修改的步驟8.3.1分析和理解程序8.3.2修改程序8.3.3重新驗證程序基本概念軟件維護程序修改可維護性本章小結(jié)逆向工程改善措施4/20/202324.8.3.1分析和理解程序經(jīng)過分析,全面、準確、迅速地理解程序是決定維護成敗和質(zhì)量好壞的關(guān)鍵。在這方面,軟件的可理解性和文檔的質(zhì)量為常重要?;靖拍钴浖S護程序修改可維護性本章小結(jié)逆向工程改善措施4/20/202325.8.3.1分析和理解程序必須做的工作:(1)研究程序的使用環(huán)境及有關(guān)資料,盡可能得到更多的背景資料;(2)理解程序的功能和目標;(3)掌握程序的結(jié)構(gòu)信息,即從程序中細分出若干結(jié)構(gòu)成分。如程序系統(tǒng)結(jié)構(gòu)、控制結(jié)構(gòu)、數(shù)據(jù)結(jié)構(gòu)和輸入/輸出結(jié)構(gòu)等;基本概念軟件維護程序修改可維護性本章小結(jié)逆向工程改善措施4/20/202326.8.3.1分析和理解程序必須做的工作:(4)了解數(shù)據(jù)流信息,即所涉及到的數(shù)據(jù)來源何處,在哪里被使用;(5)了解控制流信息,即執(zhí)行每條路徑的結(jié)果;(6)如果設(shè)計存在,則可利用它們來幫助畫出結(jié)構(gòu)圖和高層流程圖;(7)理解程序的操作(使用)要求?;靖拍钴浖S護程序修改可維護性本章小結(jié)逆向工程改善措施4/20/202327.8.3.1分析和理解程序分析方法:1)分析程序結(jié)構(gòu)圖搜集并閱讀所有存儲該程序的文件,即下它們所包含的過程名,建立一個包括這些過程名和文件名的文件;分析各個過程的源代碼;分析各個過程的接口,估計更改的復(fù)雜性?;靖拍钴浖S護程序修改可維護性本章小結(jié)逆向工程改善措施4/20/202328.8.3.1分析和理解程序分析方法:2)數(shù)據(jù)跟蹤建立各層次的程序級上的接口圖,展示各模塊或過程的調(diào)用方式和接口參數(shù);利用數(shù)據(jù)流分析方法,對過程內(nèi)部的一些變量進行跟蹤;維護人員通過這種數(shù)據(jù)流跟蹤,可獲得有關(guān)數(shù)據(jù)在過程間如何傳遞,在過程內(nèi)如何處理等信息。在跟蹤的過程中可在源程序中間插入自己的注釋?;靖拍钴浖S護程序修改可維護性本章小結(jié)逆向工程改善措施4/20/202329.8.3.1分析和理解程序分析方法:3)控制跟蹤:控制流跟蹤同樣可在結(jié)構(gòu)圖基礎(chǔ)上或源程序基礎(chǔ)上進行??刹捎梅枅?zhí)行或?qū)嶋H動態(tài)跟蹤的方法,了解數(shù)據(jù)如何從一個輸入源到達輸出點的?;靖拍钴浖S護程序修改可維護性本章小結(jié)逆向工程改善措施4/20/202330.8.3.1分析和理解程序分析方法:4)在分析過程中,充分閱讀和使用源程序清單和文檔,分析現(xiàn)有文檔的合理性。5)充分使用由編譯程序或匯編程序提供的交叉引用表、符號表以及其它有用的信息。6)如有可能,積極參加開發(fā)工作?;靖拍钴浖S護程序修改可維護性本章小結(jié)逆向工程改善措施4/20/202331.8.3.2修改程序1)設(shè)計程序的修改計劃修改計劃內(nèi)容:規(guī)格說明信息維護資源人員提供基本概念軟件維護程序修改可維護性本章小結(jié)逆向工程改善措施4/20/202332.8.3.2修改程序1)設(shè)計程序的修改計劃修改計劃設(shè)計工作:(1)研究程序的各個模塊、模塊的接口及數(shù)據(jù)庫,從全局的觀點提出修改計劃?;靖拍钴浖S護程序修改可維護性本章小結(jié)逆向工程改善措施4/20/202333.8.3.2修改程序1)設(shè)計程序的修改計劃修改計劃設(shè)計工作:(2)依次把要修改的以及那些受修改影響的模塊和數(shù)據(jù)結(jié)構(gòu)分離出來,包括:基本概念軟件維護程序修改可維護性本章小結(jié)逆向工程改善措施識別收修改影響的數(shù)據(jù);識別使用這些數(shù)據(jù)的程序模塊;對于上面程序模塊,按照是產(chǎn)生數(shù)據(jù)、修改數(shù)據(jù),還是刪除數(shù)據(jù)進行分類;識別這些數(shù)據(jù)元素的外部控制信息;識別編輯和檢查這些數(shù)據(jù)元素的地方;隔離要修改的部分。4/20/202334.8.3.2修改程序1)設(shè)計程序的修改計劃修改計劃設(shè)計工作:(3)詳細地分析要修改的以及那些受變更影響的模塊和數(shù)據(jù)結(jié)構(gòu)的內(nèi)部細節(jié),設(shè)計修改計劃,標明新邏輯及要改動的現(xiàn)有邏輯?;靖拍钴浖S護程序修改可維護性本章小結(jié)逆向工程改善措施4/20/202335.8.3.2修改程序1)設(shè)計程序的修改計劃修改計劃設(shè)計工作:(4)向用戶提供回避措施:在問題原因還未找到時,先就問題的現(xiàn)象提供回避的操作方法,可能的情況有:意外停機,系統(tǒng)完全不能工作——作為臨時處理,消除特定的數(shù)據(jù),插入臨時代碼(打補?。?,以人工方式運行系統(tǒng)安裝的期限到期——系統(tǒng)有時要延遲變更發(fā)現(xiàn)錯誤運行系統(tǒng)——人工查找錯誤并修改之如果弄清了問題的原因,可通過臨時修改或改變運行控制以回避在系統(tǒng)運行時產(chǎn)生的問題。基本概念軟件維護程序修改可維護性本章小結(jié)逆向工程改善措施4/20/202336.8.3.2修改程序2)修改代碼,以適應(yīng)變化要求:(1)正確、有效地編寫修改代碼;(2)要謹慎地修改程序,盡量保持程序的風格及格式,要在程序清單上注明改動的指令;(3)不要匆忙刪除程序語句,除非完全肯定它是無用的;基本概念軟件維護程序修改可維護性本章小結(jié)逆向工程改善措施4/20/202337.8.3.2修改程序2)修改代碼,以適應(yīng)變化要求:(4)不要試圖公用程序中已有的臨時變量或工作區(qū),為了避免沖突或混淆用途,應(yīng)自行設(shè)置自己的變量;(5)插入錯誤檢測語句;(6)保持詳細的維護活動和維護結(jié)果記錄;(7)如果程序結(jié)構(gòu)混亂,修改受到干擾,可拋棄程序重新編寫?;靖拍钴浖S護程序修改可維護性本章小結(jié)逆向工程改善措施4/20/202338.8.3.2修改程序3)修改程序的副作用(1)修改代碼的副作用在使用程序設(shè)計語言修改源代碼時,都可能引入錯誤。例如:基本概念軟件維護程序修改可維護性本章小結(jié)逆向工程改善措施刪除或修改一個子程序刪除或修改一個標號刪除或修改一個標識符改變程序代碼的時序關(guān)系改變占用存儲的大小改變邏輯運算符修改文件的打開或關(guān)閉改進程序的執(zhí)行效率把設(shè)計上的改變翻譯成代碼的改變?yōu)檫吔鐥l件的邏輯測試作出改變4/20/202339.8.3.2修改程序3)修改程序的副作用(2)修改數(shù)據(jù)的副作用在修改數(shù)據(jù)結(jié)構(gòu)時,有可能造成軟件設(shè)計與數(shù)據(jù)結(jié)構(gòu)不匹配,因而導(dǎo)致軟件出錯。數(shù)據(jù)的副作用是修改軟件信息結(jié)構(gòu)導(dǎo)致的結(jié)果。例如:基本概念軟件維護程序修改可維護性本章小結(jié)逆向工程改善措施重新定義局部的或全局的常量重新定義記錄或文件的格式增大或減小一個數(shù)組或高層數(shù)據(jù)結(jié)構(gòu)的大小修改全局或公共數(shù)據(jù)重新初始化控制標痣或指針重新排列輸入/輸出或子程序的參數(shù)4/20/202340.8.3.2修改程序3)修改程序的副作用(3)文檔的副作用對數(shù)據(jù)流、軟件結(jié)構(gòu)、模塊邏輯或任何其他有關(guān)特性進行修改時,必須對相關(guān)技術(shù)文檔進行相應(yīng)修改。否則會導(dǎo)致文檔與程序功能不匹配、缺省條件改變、新錯誤信息不正確等錯誤。使得軟件文檔不能反映軟件的當前狀態(tài)。對于用戶來說,軟件事實上就是文檔。如果對可執(zhí)行軟件的修改不反映在文檔里,會產(chǎn)生文檔的副作用?;靖拍钴浖S護程序修改可維護性本章小結(jié)逆向工程改善措施4/20/202341.8.3.2修改程序3)修改程序的副作用控制修改副作用的措施:(1)按模塊把修改分組;(2)自頂向下地安排被修改模塊的順序;(3)每次修改一個模塊;(4)對于每個修改了的模塊,在安排修改下一個模塊之前,要確定這個修改的副作用??梢允褂媒徊嬉帽?、存儲映象表、執(zhí)行流程跟蹤等?;靖拍钴浖S護程序修改可維護性本章小結(jié)逆向工程改善措施4/20/202342.8.3.3重新驗證程序1)靜態(tài)確認修改軟件,伴隨著引起新的錯誤的危險。為了能夠作出正確的判斷,驗證修改后的程序至少需要兩個人參加。要檢查:修改是否涉及到規(guī)格說明?修改結(jié)果是否符合規(guī)格說明?有沒有歪曲規(guī)格說明?程序的修改是否足以修正軟件中的問題?源程序代碼有無邏輯錯誤?修改時有無修補失誤?修改部分對其它部分有無不良影響?基本概念軟件維護程序修改可維護性本章小結(jié)逆向工程改善措施4/20/202343.8.3.3重新驗證程序2)計算機確認在充分進行了靜態(tài)確認的基礎(chǔ)上,要用計算機對修改程序進行確認測試。幾個注意點:確認測試順序:對修改部分測試隔離修改部分,測試程序的未修改部分把兩部分集成起來進行測試。準備標準的測試用例。充分利用軟件工具幫助重新驗證過程。在重新確認過程中,需邀請用戶參加。基本概念軟件維護程序修改可維護性本章小結(jié)逆向工程改善措施4/20/202344.8.3.3重新驗證程序3)維護后的驗收在交付新軟件之前,維護主管部門要檢驗:全部文檔是否完備,并已更新;所有測試用例和測試結(jié)果已經(jīng)正確記載;記錄軟件配置所有副本的工作已經(jīng)完成;維護工序和責任已經(jīng)確定。基本概念軟件維護程序修改可維護性本章小結(jié)逆向工程改善措施4/20/202345.8.3.3重新驗證程序從維護角度來看所需測試種類基本概念軟件維護程序修改可維護性本章小結(jié)逆向工程改善措施對修改事務(wù)的測試;操作過程的測試;使用過程的測試;作業(yè)控制語言的測試;對修改程序的測試;后備/恢復(fù)過程的測試。軟件系統(tǒng)之間接口的測試;應(yīng)用系統(tǒng)運行過程的測試;系統(tǒng)各部分之間接口的測試;與系統(tǒng)軟件接口的測試;安全性測試;4/20/202346.8.4軟件可維護性8.4.1軟件可維護性的定義8.4.2可維護性的度量基本概念軟件維護程序修改可維護性本章小結(jié)逆向工程改善措施4/20/202347.8.4.1軟件可維護性的定義概念所謂軟件可維護性,是指糾正軟件系統(tǒng)出現(xiàn)的錯誤和缺陷,以及為滿足新的要求進行修改、擴充或壓縮的容易程度。軟件的可維護性是軟件開發(fā)階段各個時期的關(guān)鍵目標?;靖拍钴浖S護程序修改可維護性本章小結(jié)逆向工程改善措施4/20/202348.8.4.1軟件可維護性的定義衡量程序可維護性的特性可理解性可測試性可修改性可靠性可移植性可使用性效率基本概念軟件維護程序修改可維護性本章小結(jié)逆向工程改善措施4/20/202349.8.4.1軟件可維護性的定義各類維護側(cè)重的特性基本概念軟件維護程序修改可維護性本章小結(jié)逆向工程改善措施改正性維護使用性維護完善性維護可理解性√可測試性√可修改性√√可靠性√可移植性√可使用性√√效率√4/20/202350.8.5提高可維護性的方法8.5.1建立明確的軟件質(zhì)量目標及優(yōu)先級8.5.2使用提高軟件質(zhì)量的技術(shù)和工具8.5.3進行明確的質(zhì)量保證審查8.5.4選擇可維護的程序設(shè)計語言8.5.5改進程序文檔基本概念軟件維護程序修改可維護性本章小結(jié)逆向工程改善措施4/20/202351.8.5.1建立明確的軟件質(zhì)量目標及優(yōu)先級基本概念軟件維護程序修改可維護性本章小結(jié)逆向工程改善措施一個可維護的程序應(yīng)當是可理解的、可靠的、可測試的、可修改的、可移植的、效率高的可使用的。但要實現(xiàn)所有這些目標,需要付出很大的代價,而且也不一定行得通。盡管可維護性要求每一種質(zhì)量特性都要得到滿足,但它們的相對重要性應(yīng)隨程序的用途及計算環(huán)境的不同而不同。因此,當對程序的質(zhì)量特性,必須在提出目標的同時規(guī)定它們的優(yōu)先級。這樣有助于提高軟件的質(zhì)量,并對軟件生存期的費用產(chǎn)生很大的影響。4/20/202352.8.5.2使用提高軟件質(zhì)量的技術(shù)和工具1)模塊化模塊化技術(shù)的優(yōu)點是:如果需要改變某個模塊的功能,則只要改變這個模塊,對其它模塊影響很小;如果需要增加程序的某些功能,則僅需增加完成這些功能的新的模塊或模塊層;程序的測試與重復(fù)測試比較容易;程序錯誤易于定位和糾正;容易提高程序效率?;靖拍钴浖S護程序修改可維護性本章小結(jié)逆向工程改善措施4/20/202353.8.5.2使用提高軟件質(zhì)量的技術(shù)和工具2)結(jié)構(gòu)化程序設(shè)計結(jié)構(gòu)化設(shè)計不僅使得模塊結(jié)構(gòu)標準化,而且將模塊間的相互作用也標準化了。因而把模塊化又向前推進了一步。采用結(jié)構(gòu)化程序設(shè)計可以獲得良好的程序結(jié)構(gòu)。基本概念軟件維護程序修改可維護性本章小結(jié)逆向工程改善措施4/20/202354.8.5.2使用提高軟件質(zhì)量的技術(shù)和工具3)使用結(jié)構(gòu)化程序設(shè)計技術(shù),提高現(xiàn)有系統(tǒng)的可維護性采用備用件的方法采用自動重建結(jié)構(gòu)和重新格式化的工具(結(jié)構(gòu)更新技術(shù))改進現(xiàn)有程序的不完善的文檔使用結(jié)構(gòu)化程序設(shè)計方法實現(xiàn)新的子系統(tǒng)采用結(jié)構(gòu)化小組基本概念軟件維護程序修改可維護性本章小結(jié)逆向工程改善措施4/20/202355.8.5.3進行明確的質(zhì)量保證審查1)在檢查點進行復(fù)審保證程序質(zhì)量的最佳方法是在軟件開發(fā)的最初階段就把質(zhì)量要求考慮進去,并在開發(fā)過程每一階段的終點,設(shè)置檢查點進行檢查。檢查的目的是要證實,已開發(fā)的軟件是否符合標準,是否滿足規(guī)定的質(zhì)量需求?;靖拍钴浖S護程序修改可維護性本章小結(jié)逆向工程改善措施4/20/202356.8.5.3進行明確的質(zhì)量保證審查軟件開發(fā)期間各檢查點的檢查重點基本概念軟件維護程序修改可維護性本章小結(jié)逆向工程改善措施分析設(shè)計編碼測試驗收檢查點檢查點檢查點檢查點可靠性
可適應(yīng)性可理解性可修改性可測試性可理解性可修改性可移植性有效性可靠性有效性4/20/202357.8.5.3進行明確的質(zhì)量保證審查2)驗收檢查驗收檢查是一個特殊的檢查點的檢查,是交付使用前的最后一次檢查,使軟件投入運行之前保證可維護性的最后機會。它實際上是驗收測試的一部分,只不過是從維護的角度提出驗收的條件和標準。基本概念軟件維護程序修改可維護性本章小結(jié)逆向工程改善措施4/20/202358.8.5.3進行明確的質(zhì)量保證審查最小驗收標準(1)需求和規(guī)范標準需求應(yīng)當以可測試的術(shù)語進行書寫,排列優(yōu)先次序的定義;區(qū)分必須的、任選的、將來的需求;包括對系統(tǒng)運行時的計算機設(shè)備的需求;對維護、測試、操作以及維護人員的需求;對測試工具等的需求?;靖拍钴浖S護程序修改可維護性本章小結(jié)逆向工程改善措施4/20/202359.8.5.3進行明確的質(zhì)量保證審查最小驗收標準(2)設(shè)計標準程序應(yīng)設(shè)計成分層的模塊結(jié)構(gòu)。每個模塊應(yīng)完成唯一的功能,并達到高內(nèi)聚、低耦合;通過一些知道預(yù)期變化的實例,說明設(shè)計的可擴充性、可縮減性和可適應(yīng)性?;靖拍钴浖S護程序修改可維護性本章小結(jié)逆向工程改善措施4/20/202360.8.5.3進行明確的質(zhì)量保證審查最小驗收標準(3)源代碼標準盡可能使用最高級的程序設(shè)計語言,且只使用語言的標準版本;所有的代碼都必須具有良好的結(jié)構(gòu);所有的代碼都必須文檔化,在注釋中說明它的輸入、輸出以及便于測試/再測試的一些特點與風格?;靖拍钴浖S護程序修改可維護性本章小結(jié)逆向工程改善措施4/20/202361.8.5.3進行明確的質(zhì)量保證審查最小驗收標準(4)文檔標準:
文檔中應(yīng)說明程序的輸入/輸出、使用的方法/算法、錯誤恢復(fù)方法、所有參數(shù)的范圍以及缺省條件等?;靖拍钴浖S護程序修改可維護性本章小結(jié)逆向工程改善措施4/20/202362.8.5.3進行明確的質(zhì)量保證審查3)周期性地維護復(fù)審軟件在運行期間,為了糾正新發(fā)現(xiàn)的錯誤或缺陷,為了適應(yīng)計算環(huán)境的變化,為了響應(yīng)用戶新的需求,必須進行修改。因此會導(dǎo)致軟件質(zhì)量有變壞的危險,可能產(chǎn)生新的錯誤,破壞程序概念的完整性。因此,必須像硬件的定期檢查一樣,每月一次或二月一次,對軟件作周期性的維護審查,以跟蹤軟件質(zhì)量的變化?;靖拍钴浖S護程序修改可維護性本章小結(jié)逆向工程改善措施4/20/202363.8.5.3進行明確的質(zhì)量保證審查3)周期性地維護復(fù)審周期性維護審查實際上是開發(fā)階段檢查點復(fù)查的繼續(xù),并且采用的檢查方法、檢查內(nèi)容都是相同的。維護審查的結(jié)果可以同以前的維護審查的結(jié)果、以及以前的驗收檢查的內(nèi)容和檢查點檢查的結(jié)果相比較,任何一種改變都表明在軟件質(zhì)量上或其他類型的問題上可能起了變化。基本概念軟件維護程序修改可維護性本章小結(jié)逆向工程改善措施4/20/202364.8.5.3進行明確的質(zhì)量保證審查4)對軟件包進行檢查軟件包是一種標準化了的、可為不同用戶使用的軟件。軟件包賣主考慮到他的專利權(quán),一般不會提供給用戶他的源代碼和程序文檔。因此,對軟件包的維護采取的方法不同?;靖拍钴浖S護程序修改可維護性本章小結(jié)逆向工程改善措施4/20/202365.8.5.3進行明確的質(zhì)量保證審查4)對軟件包進行檢查使用單位的維護人員首先要仔細分析、研究賣主提供的用戶手冊、操作手冊、培訓(xùn)教程、新版本說明、計算機環(huán)境要求書、未來特性表以及賣方提供的驗收測試報告等,在此基礎(chǔ)上,深入了解本單位的希望和要求,編制軟件包的檢驗程序。該檢驗程序檢查軟件包程序所執(zhí)行的功能是否與用戶的要求和條件相一致。為了建立這個程序,維護人員可以利用賣方提供的驗收測試實例,還可以自己重新設(shè)計新的測試實例。根據(jù)測試結(jié)果,檢查和驗證軟件包的參數(shù)或控制結(jié)構(gòu),以完成軟件包的維護?;靖拍钴浖S護程序修改可維護性本章小結(jié)逆向工程改善措施4/20/202366.8.5.4選擇可維護的程序設(shè)計語言程序語言的選擇,對程序的可維護性影響很大。低級語言機器語言匯編語言高級語言(FORTRAN、COBOL、PL/1)第四代語言過程性語言非過程性語言基本概念軟件維護程序修改可維護性本章小結(jié)逆向工程改善措施4/20/202367.8.5.4選擇可維護的程序設(shè)計語言程序設(shè)計語言對可維護性的影響基本概念軟件維護程序修改可維護性本章小結(jié)逆向工程改善措施第一代
語言第二代
語言第三代
語言第四代
語言機器語言匯編語言高級語言:FOR
溫馨提示
- 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)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度高端別墅室內(nèi)裝飾設(shè)計與施工合同
- 體育產(chǎn)業(yè)智慧場館建設(shè)與賽事運營支持方案
- 《國際政治格局演變歷程:高中政治教學(xué)教案》
- 乘用車行業(yè)智能化生產(chǎn)與銷售方案
- 經(jīng)典科學(xué)故事讀后感
- 車輛銷售服務(wù)合同附加條款
- 防盜門銷售合同協(xié)議書
- 服裝公司服裝買賣協(xié)議
- 健康產(chǎn)業(yè)產(chǎn)品推廣與營銷策略
- 裝修增項補充合同協(xié)議
- 生產(chǎn)組織供應(yīng)能力說明
- 碳酸丙烯酯法脫碳工藝工程設(shè)計
- 藥劑學(xué)-名詞解釋
- 口語課件Unit 1 Ways of Traveling Possibility and Impossibility
- 做一個幸福教師
- 城市支路施工組織設(shè)計
- 耐堿玻纖網(wǎng)格布檢測報告
- 20米往返跑教案 (2)
- 甲醛安全周知卡
- 《書法練習(xí)指導(dǎo)》教案江蘇鳳凰少年兒童出版社四年級下冊
- 三菱變頻器e700使用手冊基礎(chǔ)篇
評論
0/150
提交評論