版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
軟件工程012024/5/16第8章維護軟件產(chǎn)品被開發(fā)出來并交付用戶使用之后,就進入了軟件的運行維護階段。軟件生命周期的最后一個階段,其基本任務(wù)是保證軟件在一個相當長的時期能夠正常運行。平均來說,維護成本高達開發(fā)成本的4倍左右。目前國外許多軟件開發(fā)組織把60%以上的人力用于維護已有的軟件。軟件工程的主要目的就是提高軟件的可維護性,減少軟件維護所需要的工作量,降低軟件系統(tǒng)總成本。22024/5/16第8章維護軟件維護的定義01軟件維護的特點02軟件維護過程03軟件的可維護性04預(yù)防性維護05軟件再工程過程06小結(jié)0732024/5/168.1軟件維護的定義1所謂軟件維護,就是在軟件已經(jīng)交付使用之后,為了改正錯誤或滿足新的需求而修改軟件的過程。2改正性維護:在大型程序的使用期間,用戶必然會發(fā)現(xiàn)程序錯誤,并且把他們遇到的問題報告給維護人員。把診斷和改正錯誤的過程稱為改正性維護。3適應(yīng)性維護:為了和變化了的環(huán)境適當?shù)呐浜隙M行的修改軟件的活動。4完善性維護:在使用軟件的過程中,用戶往往提出增加新功能或修改已有功能的建議,還可能提出一般性的改進意見。5預(yù)防性維護:為了改進未來的可維護性或可靠性,或為了給未來的改進奠定更好的基礎(chǔ)而修改軟件。42024/5/168.1軟件維護的定義因此,維護絕不僅限于糾正使用中發(fā)現(xiàn)的錯誤。完善性維護:50-66%改正性維護:17-21%適應(yīng)性維護:18-25%其他維護:4%上述4類維護活動都必須應(yīng)用于整個軟件配置,維護軟件文檔和維護軟件的可執(zhí)行代碼同樣重要。52024/5/168.2軟件維護的特點8.2.1結(jié)構(gòu)化維護與非結(jié)構(gòu)化維護差別巨大非結(jié)構(gòu)化維護如果軟件配置的唯一成分是程序代碼,那么維護活動將非常艱難。評價程序代碼對于軟件結(jié)果、全程數(shù)據(jù)結(jié)構(gòu)、系統(tǒng)接口、性能和(或)設(shè)計約束對程序代碼所做改動的后果也難于估量非結(jié)構(gòu)化維護需要付出很大的代價,這種維護方式是沒有使用良好定義的方法學開發(fā)出來的軟件的必然結(jié)果62024/5/16結(jié)構(gòu)化維護如果有一個完整的軟件配置存在,那么維護工作從評價軟件設(shè)計文檔開始。確定軟件重要的結(jié)構(gòu)特點、性能特點以及接口特點;估量要求的改動將帶來的影響;然后首先修改設(shè)計并且對所做的修改進行仔細復(fù)查;接下來修改程序源碼;進行回歸測試;提交修改后的軟件8.2軟件維護的特點72024/5/168.2軟件維護的特點8.2.2維護的代價高昂維護費用穩(wěn)步上升1970年,35%-40%1980年,40%-60%1990年,70%-80%可用資源的使用不能及時修改,引起用戶不滿引入潛伏錯誤,降低軟件質(zhì)量開發(fā)人員作為維護人員,使得開發(fā)過程混亂生產(chǎn)率大幅度下降82024/5/168.2軟件維護的特點用于維護工作的勞動生產(chǎn)性活動(分析評價,修改設(shè)計,編寫程序代碼)非生產(chǎn)性活動(理解程序代碼的功能,解釋數(shù)據(jù)結(jié)構(gòu)、接口特點和性能限度等)維護工作量模型:M維護用的總工作量,P生產(chǎn)性工作量,K經(jīng)驗常數(shù),c是復(fù)雜程度,d是維護人員對軟件的熟悉程度。92024/5/168.2軟件維護的特點絕大多數(shù)軟件在設(shè)計時沒有考慮將來的修改。需要維護的軟件往往沒有合格的文檔維護的問題,大部分都可歸因于軟件定義和軟件開發(fā)的方法有缺點。軟件維護不是一項吸引人的工作。當要求對軟件進行維護時,不能指望由開發(fā)人員給人們仔細說明軟件。8.2.3維護的問題很多理解別人寫的程序通常非常困難。102024/5/168.3軟件維護過程維護過程本質(zhì)上是修改和壓縮了的軟件定義和開發(fā)過程,而且事實上遠在提出一項維護要求之前,與軟件維護有關(guān)的工作就已經(jīng)開始了。建立維護組織確定報告和評價的過程為每個維護要求規(guī)定一個標準化的事件序列建立一個使用于維護活動的記錄保管過程規(guī)定復(fù)審標準112024/5/168.3軟件維護過程維護組織每個維護要求都通過維護管理員轉(zhuǎn)交給熟悉該產(chǎn)品的系統(tǒng)管理員去評論。維護活動開始之前就明確維護責任是十分必要的,這樣做可以大大減少維護過程中可能出現(xiàn)的混亂。122.維護報告應(yīng)該用標準化的格式表達所有軟件的維護要求。給用戶提供空白的維護要求表。如果遇到了一個錯誤,必須完整的描述導致出現(xiàn)錯的環(huán)境輸入數(shù)據(jù)全部輸出其他有關(guān)信息2024/5/168.3軟件維護過程#202213對于適應(yīng)性或完善性的維護要求,應(yīng)該提一個簡短的需求說明書軟件組織內(nèi)部應(yīng)該制定出一個軟件修改報告:滿足維護要求表中提出的要求所需要的工作量維護要求的性質(zhì)這項要求的優(yōu)先次序與修改有關(guān)的時候數(shù)據(jù)2024/5/168.3軟件維護過程#2022142024/5/168.3軟件維護過程維護的事件流15不管維護的類型如何,都需要進行同樣的技術(shù)工作。這些工作包括修改軟件設(shè)計、復(fù)查、必要的代碼修改、單元和集成測試(包括回歸測試)、驗收測試和復(fù)審。當惡性軟件問題發(fā)生時,必須立即解決,這就是所謂的“救火”維護要求。在完成軟件維護任務(wù)之后,進行處境復(fù)查在當前處境下設(shè)計、編碼和測試的哪些方面能用不通的方法進行?哪些維護資源是應(yīng)該有而事實上沒有的?對于這項維護工作什么是主要(以及次要)的障礙?要求的維護類型中有預(yù)防性維護嗎?2024/5/168.3軟件維護過程#2022164.保存維護記錄5.評價維護活動每次程序運行平均失效的次數(shù)用于每一類維護活動的總?cè)藭r數(shù)平均每個程序、每種語言、每種維護類型所做的程序變動數(shù)維護過程中增加或刪除一個源語句平均花費的人時數(shù)維護每種語言平均話費的人時數(shù)一張維護要求表的平均周轉(zhuǎn)時間不同維護類型所占的百分比2024/5/168.3軟件維護過程#2022172024/5/168.4軟件的可維護性軟件的可維護性——維護人員理解、改正、改動或改進這個軟件的難易程度。軟件的可維護性是支配軟件工程方法學所有步驟的關(guān)鍵目標。8.4.1決定軟件可維護性的因素理解待修改的對象調(diào)試以確定錯誤的具體位置(改正性維護)進行必要的測試182024/5/168.4軟件的可維護性可理解性外來讀者理解軟件的結(jié)構(gòu)、功能、接口和內(nèi)部處理的難易程度。模塊化詳細的設(shè)計文檔結(jié)構(gòu)化設(shè)計程序內(nèi)部的文檔良好的高級程序設(shè)計語言192024/5/168.4軟件的可維護性可測試性良好的文檔對診斷和測試是至關(guān)重要的。軟件結(jié)構(gòu)可用的測試工具和調(diào)試工具以前設(shè)計的測試過程開發(fā)階段用過的測試方案模塊的環(huán)形復(fù)雜度越大,可執(zhí)行的路徑就越多,全面測試它的難度就越高202024/5/168.4軟件的可維護性可修改性耦合、內(nèi)聚、信息隱藏、局部化、控制域和作用域的關(guān)系等,都影響軟件的可修改性。可移植性把程序從一種計算環(huán)境(硬件配置和操作系統(tǒng))轉(zhuǎn)移到另一種計算環(huán)境的難易程度。把因環(huán)境變化而必須修改的程序局限在少數(shù)程序模塊中,從而降低修改的難度。212024/5/168.4軟件的可維護性可重用性同一個事物不做修改或稍加修改就在不同環(huán)境中多次重復(fù)使用。通常,可重用的軟件構(gòu)件在開發(fā)時都經(jīng)過很嚴格的測試,可靠性比較高。很容易修改可重用的軟件構(gòu)件使之再次應(yīng)用在新環(huán)境中。因此,軟件中使用的可重用構(gòu)件越多,適應(yīng)性和完善性維護也就越容易。222024/5/168.4軟件的可維護性8.4.2文檔文檔是影響軟件可靠性的決定因素。文檔比程序代碼更重要。文檔可分為用戶文檔和系統(tǒng)文檔兩類。用戶文檔主要描述系統(tǒng)功能和使用方法系統(tǒng)文檔描述系統(tǒng)設(shè)計、實現(xiàn)和測試等各個方面的內(nèi)容。232024/5/168.4軟件的可維護性添加標題軟件文檔應(yīng)該滿足下述要求。添加標題必須描述如何使用這個系統(tǒng)添加標題必須描述怎樣安裝和管理這個系統(tǒng)添加標題必須描述系統(tǒng)需求和設(shè)計添加標題必須描述系統(tǒng)的實現(xiàn)和測試添加標題用戶文檔添加標題能使用戶獲得對系統(tǒng)的準確的初步印象添加標題功能描述、安裝文檔、使用手冊、參考手冊、操作員指南242024/5/168.4軟件的可維護性系統(tǒng)文檔從問題定義、需求說明到驗收測試計劃這樣一些列和系統(tǒng)實現(xiàn)有關(guān)的文檔。把讀者從對系統(tǒng)概貌的了解,引導到對系統(tǒng)每個方面各個特點的更形式化更具體的認識。252024/5/168.4軟件的可維護性8.4.3可維護性復(fù)審在軟件工程過程的每個階段都應(yīng)該考慮并努力提高軟件的可維護性,在每個階段結(jié)束前的技術(shù)審查和管理復(fù)審中,應(yīng)該著重對可維護性進行復(fù)審。需求分析階段的復(fù)審對將來要改進的部分和可能會修改的部分加以注意并指明應(yīng)該討論軟件的可移植性問題考慮可能影響軟件維護的系統(tǒng)界面262024/5/168.4軟件的可維護性設(shè)計復(fù)審從容易修改、模塊化和功能獨立的目標出發(fā),評價軟件的結(jié)構(gòu)和過程對將來可能修改的部分預(yù)作準備代碼復(fù)審編碼風格內(nèi)部說明文檔盡量使用可重用的軟件構(gòu)件272024/5/168.4軟件的可維護性01測試階段復(fù)審02配置復(fù)審03保證軟件配置的所有成分是完整的、一致的和可理解的04為了便于修改和管理已經(jīng)編目歸檔了05完成了每項維護工作之后,都應(yīng)該對軟件維護本身進行仔細的復(fù)審06維護應(yīng)該針對整個軟件配置,不應(yīng)該只修改源程序代碼07對設(shè)計、數(shù)據(jù)、模塊過程的修改體現(xiàn)在技術(shù)文檔中08對可執(zhí)行部分的修改反映在用戶文檔中28幾乎所有歷史比較悠久的軟件開發(fā)組織,都有一些十幾年前開發(fā)出的“老”程序。目前,某些老程序仍然在為用戶服務(wù),但是,這些程序的體系結(jié)構(gòu)、數(shù)據(jù)結(jié)構(gòu)可能很差,文檔可能并不完整,做過的修改可能并沒有記錄。滿足用戶對上述老程序的維護:反復(fù)多次地修改程序的嘗試通過仔細分析程序盡可能多地掌握程序的內(nèi)部工作細節(jié),以便有效修改它用軟件工程的方法重新設(shè)計、重新編碼和測試那些需要變更的軟件部分對程序全部重新設(shè)計、重新編碼和測試2024/5/168.5預(yù)防性維護#202229預(yù)防性維護由Miller提出來的,“把今天的方法學應(yīng)用到昨天的系統(tǒng)上,以支持明天的需求”。維護一行源代碼的代價可能是最初來發(fā)該行代碼代價的14~40倍重新設(shè)計軟件體系結(jié)構(gòu)時試用了現(xiàn)代設(shè)計概念,它將對維護可能有很大的幫助由于現(xiàn)有程序版本可作為軟件原型使用,開發(fā)生產(chǎn)可大大高于平均水平用戶具有較多使用該軟件的經(jīng)驗,因此,能夠很容易地搞清新的變更需求和變更的范圍利用逆向工程和再工程的工具,可以使一部分工作自動化在完成預(yù)防性維護的過程中可以建立完整的軟件配置2024/5/168.5預(yù)防性維護#2022302024/5/168.6軟件再工程過程圖8.2軟件再工程過程模型312024/5/168.6軟件再工程過程庫存目錄分析每個軟件組織都應(yīng)該保存其擁有的所有應(yīng)用系統(tǒng)的庫存目錄。該目錄包含關(guān)于每個應(yīng)用系統(tǒng)的基本信息。下列3類程序有可能成為預(yù)防性維護的對象:預(yù)定將使用多年的程序當前正在成功使用著的程序在最近的將來可能要做重大修改或增強的程序。應(yīng)該仔細分析庫存目錄,按照業(yè)務(wù)重要程度、壽命、當前可維護性、預(yù)期的修改次數(shù)等標準,把庫中的應(yīng)用系統(tǒng)排序,從中選出再工程的候選者,然后明智地分配再工程所需要的資源322024/5/168.6軟件再工程過程文檔重構(gòu)建立文檔非常耗費時間,不可能為數(shù)百個程序都重新建立文檔。由于資源有限,應(yīng)采用“使用時建立文檔”的方法。如果某應(yīng)用系統(tǒng)是完成業(yè)務(wù)工作的關(guān)鍵,而且必須重構(gòu)全部分檔,則仍然應(yīng)該設(shè)法把文檔工作減少到必需的最小量。332024/5/168.6軟件再工程過程逆向工程軟件的逆向工程是分析程序以便在比源代碼更高的抽象層次上創(chuàng)建出程序的某種表示的過程。逆向工程是一個恢復(fù)設(shè)計結(jié)果的過程。從現(xiàn)存的程序代碼中抽取有關(guān)數(shù)據(jù)、體系結(jié)構(gòu)、處理過程的設(shè)計信息。342024/5/168.6軟件再工程過程代碼重構(gòu)首先用重構(gòu)工具分析源代碼,標注出和結(jié)構(gòu)化程序設(shè)計概念相違背的部分。然后重構(gòu)有問題的代碼。最后,復(fù)審和測試生成的重構(gòu)代碼并更新代碼文檔。重構(gòu)關(guān)注個體模塊的設(shè)計細節(jié)以及在模塊中定義的局部數(shù)據(jù)結(jié)構(gòu)。如果重構(gòu)擴展到邊界之外并涉及軟件體系結(jié)構(gòu),則重構(gòu)變成了正向工程。352024/5/168.6軟件再工程過程數(shù)據(jù)重構(gòu)數(shù)據(jù)重構(gòu)發(fā)生在向當?shù)偷某橄髮哟紊希且环N全范圍的再工程活動。數(shù)據(jù)結(jié)構(gòu)始于逆向工程活動,分解當前使用的數(shù)據(jù)體系結(jié)構(gòu),必要時定義數(shù)據(jù)模型,標識數(shù)據(jù)對象和屬性,并從軟件質(zhì)量的角度復(fù)審現(xiàn)存的數(shù)據(jù)結(jié)構(gòu)。當數(shù)據(jù)結(jié)構(gòu)較差時,應(yīng)該對數(shù)據(jù)進行再工程。對數(shù)據(jù)的修改必然會導致體系結(jié)構(gòu)或代碼層的改變。362024/5/168.6軟件再工程過程正向工程正向工程也成為革新或改造這項活動不僅從現(xiàn)有程序中恢復(fù)設(shè)計信息,而且使用該信息去改變或重構(gòu)現(xiàn)有系統(tǒng),以提高其整體質(zhì)量。正向工程過程應(yīng)用軟件工程的原理、概念、技術(shù)和方法重新開發(fā)某個現(xiàn)有的應(yīng)用系統(tǒng)。具有原系統(tǒng)的所有功能,并加入了
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 新能源配件供需合同3篇
- 尾氣處理技術(shù)培訓3篇
- 工程守約保證書3篇
- 安裝合同的勞務(wù)3篇
- 房屋買賣合同網(wǎng)簽3篇
- 掛車購車條款3篇
- 敬老院租賃合同樣本模板3篇
- 招標采購文件樣式設(shè)計指南解析3篇
- 換熱站建設(shè)條款3篇
- 舞蹈培訓機構(gòu)副校長合同
- 2024年黑龍江交通職業(yè)技術(shù)學院單招職業(yè)技能測試題庫及答案解析
- 2023版《中國近現(xiàn)代史綱要》課后習題答案
- 安陽鑫龍煤業(yè)(集團)龍山煤業(yè)有限責任公司煤礦礦山地質(zhì)環(huán)境保護與土地復(fù)墾方案
- 互聯(lián)網(wǎng)金融(同濟大學)智慧樹知到期末考試答案2024年
- 大學生職業(yè)規(guī)劃汽車維修技師
- 中考語文復(fù)習:謙辭和敬辭+教學設(shè)計
- 結(jié)構(gòu)方程模型及測其量方法
- 高一上學期期末教學質(zhì)量統(tǒng)一檢測語文試題(A卷)(解析版)
- 面試答辯述職報告
- 能效評估報告
- 四年級上冊數(shù)學乘法豎式
評論
0/150
提交評論