![軟件工程課件之第8章_維護(hù)(第6版)(張海潘編著)_第1頁](http://file2.renrendoc.com/fileroot_temp3/2021-7/21/ada8d0ab-4689-4576-b6eb-0965ee56ff38/ada8d0ab-4689-4576-b6eb-0965ee56ff381.gif)
![軟件工程課件之第8章_維護(hù)(第6版)(張海潘編著)_第2頁](http://file2.renrendoc.com/fileroot_temp3/2021-7/21/ada8d0ab-4689-4576-b6eb-0965ee56ff38/ada8d0ab-4689-4576-b6eb-0965ee56ff382.gif)
![軟件工程課件之第8章_維護(hù)(第6版)(張海潘編著)_第3頁](http://file2.renrendoc.com/fileroot_temp3/2021-7/21/ada8d0ab-4689-4576-b6eb-0965ee56ff38/ada8d0ab-4689-4576-b6eb-0965ee56ff383.gif)
![軟件工程課件之第8章_維護(hù)(第6版)(張海潘編著)_第4頁](http://file2.renrendoc.com/fileroot_temp3/2021-7/21/ada8d0ab-4689-4576-b6eb-0965ee56ff38/ada8d0ab-4689-4576-b6eb-0965ee56ff384.gif)
![軟件工程課件之第8章_維護(hù)(第6版)(張海潘編著)_第5頁](http://file2.renrendoc.com/fileroot_temp3/2021-7/21/ada8d0ab-4689-4576-b6eb-0965ee56ff38/ada8d0ab-4689-4576-b6eb-0965ee56ff385.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、第8章 維護(hù)o 軟件維護(hù)的定義o 軟件維護(hù)的特點o 軟件維護(hù)過程o 軟件的可維護(hù)性o 預(yù)防性維護(hù)o 軟件再工程過程 軟件維護(hù)及類型o 在軟件已經(jīng)交付使用之后,為了改正錯誤或滿足新的需要而修改軟件的過程。o 可分為4項活動: n 改正性維護(hù)(Corrective maintenance)n 適應(yīng)性維護(hù)(Adaptive maintenance)n 完善性維護(hù)(Perfective maintenance)n 預(yù)防性維護(hù)(Preventive maintenance)軟件維護(hù)分類o 改正性維護(hù):n 把診斷和改正錯誤的過程稱為改正性維護(hù)。n 改正性維護(hù)占17%21%。 o 適應(yīng)性維護(hù):n 為了和變化
2、了的環(huán)境適當(dāng)?shù)嘏浜隙M(jìn)行的修改軟件的活動,是既必要又經(jīng)常的維護(hù)活動。n 包括外部環(huán)境和數(shù)據(jù)環(huán)境的變化。n 適應(yīng)性維護(hù)占18%25%。 軟件維護(hù)分類o 完善性維護(hù):n 為了滿足在用戶提出的增加新功能或修改已有功能的要求和一般性的改進(jìn)要求,需要進(jìn)行完善性維護(hù)。n 包括功能和性能的要求。n 完善性維護(hù)占50%66%。軟件維護(hù)分類o 預(yù)防性維護(hù):n “把今天的方法學(xué)應(yīng)用于昨天的系統(tǒng)以滿足明天的需要?!?n 采用先進(jìn)的軟件工程方法對需要維護(hù)的軟件或軟件中的某一部分,主動地進(jìn)行重新設(shè)計、編碼和測試。n 預(yù)防性維護(hù)占4%左右。 n 只有預(yù)防性維護(hù)是主動的,其他維護(hù)都是被動的。軟件維護(hù)工作量各類維護(hù)工作量所占
3、比例維護(hù)工作量在軟件生命周期所占比例軟件維護(hù)的特點o 結(jié)構(gòu)化維護(hù)與非結(jié)構(gòu)化維護(hù)差別巨大 o 維護(hù)的代價高昂o 維護(hù)的問題很多軟件維護(hù)的特點o 結(jié)構(gòu)化維護(hù):n 有完整的軟件配置,能夠從評價設(shè)計文檔開始,估量要求的改動將帶來的影響,并且計劃實施途徑。n 修改設(shè)計復(fù)查,編碼及回歸測試并交付使用有完整的軟件配置,能夠提高維護(hù)的整體質(zhì)量。o 非結(jié)構(gòu)化維護(hù):n 缺少相關(guān)文檔,惟一成分是程序代碼,維護(hù)的代價巨大軟件維護(hù)的特點維護(hù)的代價o 有形的維護(hù)代價:費(fèi)用。o 無形的維護(hù)代價有更大的影響:n 貽誤良機(jī);n 一些合理的修復(fù)或修改請求不能及時安排,使得客戶不滿意;n 變更的結(jié)果引入新的故障,使得軟件整體質(zhì)量下
4、降;n 把軟件人員抽調(diào)到維護(hù)工作中,干擾了軟件開發(fā)工作。維護(hù)的代價o 生產(chǎn)率大幅下降:n 維護(hù)工作量包括生產(chǎn)性活動(如分析和評價、設(shè)計修改和實現(xiàn))和非生產(chǎn)性活動(如力圖理解代碼功能、解釋數(shù)據(jù)結(jié)構(gòu)、接口特性、性能限度等)。n 維護(hù)工作量的模型:c dMpKeM是維護(hù)中消耗的總工作量p是上面描述的生產(chǎn)性工作量K是一個經(jīng)驗常數(shù)c是復(fù)雜程度d是維護(hù)人員對軟件熟悉程度的度量維護(hù)的問題o 與軟件維護(hù)有關(guān)的絕大多數(shù)問題,都可歸因于軟件定義和軟件開發(fā)的方法有缺點:理解別人寫的程序通常非常困難,而且困難程度隨著軟件配置成分的減少而迅速增加。 需要維護(hù)的軟件往往沒有合格的文檔,或者文檔資料顯著不足。 當(dāng)要求對軟件
5、進(jìn)行維護(hù)時,不能指望由開發(fā)人員給我們仔細(xì)說明軟件。 絕大多數(shù)軟件在設(shè)計時沒有考慮將來的修改。 軟件維護(hù)不是一項吸引人的工作。 軟件維護(hù)過程o 為了有效地進(jìn)行軟件維護(hù),應(yīng)事先就開始做組織工作:n 首先建立維護(hù)組織;n 申明提出維護(hù)申請報告的過程及評價的過程;n 為每一個維護(hù)申請規(guī)定標(biāo)準(zhǔn)化的事件序列;n 建立適用于維護(hù)活動的記錄保管過程以及規(guī)定復(fù)審標(biāo)準(zhǔn)。軟件維護(hù)過程維護(hù)報告o 維護(hù)要求表或稱軟件問題報告表,由申請維護(hù)的用戶填寫。o 軟件修改報告,由軟件組織內(nèi)部制定,指明:n 滿足某個維護(hù)要求表中提出的要求所需要的工作量;n 維護(hù)要求的性質(zhì);n 這項要求的優(yōu)先級;n 與修改有關(guān)的事后數(shù)據(jù);維護(hù)的事件
6、流維護(hù)的事件流o 盡管維護(hù)申請的類型不同,但都要進(jìn)行同樣的技術(shù)工作:n 修改軟件設(shè)計n 復(fù)查n 對源程序做必要的修改n 單元測試n 集成測試(回歸測試)n 確認(rèn)測試n 復(fù)審等保存維護(hù)記錄o 程序名稱o 源程序語句條數(shù)o 機(jī)器代碼指令條數(shù)o 所用的程序設(shè)計語言o 程序安裝的日期o 程序安裝后的運(yùn)行次數(shù)o 程序安裝后程序失效的次數(shù)o 程序改變的層次及名稱o 修改程序增加的源程序語句條數(shù)保存維護(hù)記錄o 修改程序減少的源程序語句條數(shù)o 每次修改所付出的“人時”數(shù)o 修改程序的日期o 軟件維護(hù)人員的姓名o 維護(hù)要求表的名稱o 維護(hù)類型o 維護(hù)開始時間和維護(hù)結(jié)束時間o 花費(fèi)在維護(hù)上的累計“人時”數(shù)o 維護(hù)
7、工作的凈收益等評價維護(hù)活動o 每次程序運(yùn)行時的平均失效次數(shù);o 花費(fèi)在每類維護(hù)上的總“人時”數(shù);o 每個程序、每種語言、每種維護(hù)類型的程序平均修改次數(shù);o 因為維護(hù),增加或刪除每個源程序語句所花費(fèi)的平均“人時”數(shù);o 用于每種語言的平均“人時”數(shù);o 一張維護(hù)要求表的平均周轉(zhuǎn)時間;o 不同維護(hù)類型所占的百分比。軟件的可維護(hù)性o 維護(hù)人員理解、改正、改動或改進(jìn)這個軟件的難易程度。oIEEE Standard Glossary of Software Engineering Terminology, IEEE Std 610.12-1990nMaintainability: (1) The eas
8、e with which a software system or component can be modified to correct faults, improve performance or other attributes, or adapt to a changed environment. (2) The ease with which a hardware system or component can be retained in, or restored to, a state in which it can perform its required functions
9、.o 決定軟件可維護(hù)性的因素o 文檔o 可維護(hù)性復(fù)審決定軟件可維護(hù)性的因素o 可理解性: 軟件可理解性表現(xiàn)為外來讀者理解軟件的結(jié)構(gòu)、功能、接口和內(nèi)部處理過程的難易程度。o 可測試性:診斷和測試的容易程度取決于軟件容易理解的程度。良好的文檔對診斷和測試是至關(guān)重要的,此外,軟件結(jié)構(gòu)、可用的測試工具和調(diào)試工具,以及以前設(shè)計的測試過程也都是非常重要的。o 可修改性:軟件容易修改的程度和設(shè)計原理和啟發(fā)規(guī)則直接有關(guān)。o 可移植性:軟件可移植性指的是,把程序從一種計算環(huán)境(硬件配置和操作系統(tǒng))轉(zhuǎn)移到另一種計算環(huán)境的難易程度。o 可重用性:所謂重用(reuse)是指同一事物不做修改或稍加改動就在不同環(huán)境中多次
10、重復(fù)使用。文檔o 總的來說,軟件文檔應(yīng)該滿足下述要求(1) 必須描述如何使用這個系統(tǒng),沒有這種描述時即使是最簡單的系統(tǒng)也無法使用;(2) 必須描述怎樣安裝和管理這個系統(tǒng);(3) 必須描述系統(tǒng)需求和設(shè)計;(4) 必須描述系統(tǒng)的實現(xiàn)和測試,以便使系統(tǒng)成為可維護(hù)的。用戶文檔o 用戶文檔至少應(yīng)該包括下述5方面的內(nèi)容:n 功能描述,說明系統(tǒng)能做什么;n 安裝文檔,說明怎樣安裝這個系統(tǒng)以及怎樣使系統(tǒng)適應(yīng)特定的硬件配置;n 使用手冊,簡要說明如何著手使用這個系統(tǒng)(應(yīng)該通過豐富例子說明怎樣使用常用的系統(tǒng)功能,還應(yīng)該說明用戶操作錯誤時怎樣恢復(fù)和重新啟動);n 參考手冊,詳盡描述用戶可以使用的所有系統(tǒng)設(shè)施以及它們
11、的使用方法,還應(yīng)該解釋系統(tǒng)可能產(chǎn)生的各種出錯信息的含義(對參考手冊最主要的要求是完整,因此通常使用形式化的描述技術(shù));n 操作員指南(如果需要有系統(tǒng)操作員的話),說明操作員應(yīng)該如何處理使用中出現(xiàn)的各種情況。系統(tǒng)文檔o 所謂系統(tǒng)文檔指從問題定義、需求說明到驗收測試計劃這樣一系列和系統(tǒng)實現(xiàn)有關(guān)的文檔。o 描述系統(tǒng)設(shè)計、實現(xiàn)和測試的文檔對于理解程序和維護(hù)程序極端重要o 從概貌到每個方面每個特點,從抽象到具體,有邏輯地介紹系統(tǒng)可維護(hù)性復(fù)審o 在需求分析階段的復(fù)審過程中,應(yīng)該對將來要改進(jìn)的部分和可能會修改的部分加以注意并指明;應(yīng)該討論軟件的可移植性問題,并且考慮可能影響軟件維護(hù)的系統(tǒng)界面。o 在正式的和
12、非正式的設(shè)計復(fù)審期間,應(yīng)該從容易修改、模塊化和功能獨立的目標(biāo)出發(fā),評價軟件的結(jié)構(gòu)和過程;設(shè)計中應(yīng)該對將來可能修改的部分預(yù)作準(zhǔn)備??删S護(hù)性復(fù)審o 代碼復(fù)審應(yīng)該強(qiáng)調(diào)編碼風(fēng)格和內(nèi)部說明文檔這兩個影響可維護(hù)性的因素。 o 設(shè)計和編碼過程中盡量使用可重用的軟件構(gòu)件。o 在測試結(jié)束時進(jìn)行最正式的可維護(hù)性復(fù)審,這個復(fù)審稱為配置復(fù)審。配置復(fù)審的目的是保證軟件配置的所有成分是完整的、一致的和可理解的,而且為了便于修改和管理已經(jīng)編目歸檔了。 o 在完成了每項維護(hù)工作之后,都應(yīng)該對軟件維護(hù)本身進(jìn)行仔細(xì)認(rèn)真的復(fù)審。預(yù)防性維護(hù)o Legacy Systemn “老”系統(tǒng)o 預(yù)防性維護(hù)方法是由Miller提出來的,他把這
13、種方法定義為:“把今天的方法學(xué)應(yīng)用到昨天的系統(tǒng)上,以支持明天的需求。” 預(yù)防性維護(hù)o 為了修改這類程序以適應(yīng)用戶新的或變更的需求,有以下幾種做法可供選擇:n 反復(fù)多次地做修改程序的嘗試,與不可見的設(shè)計及源代碼“頑強(qiáng)戰(zhàn)斗”,以實現(xiàn)所要求的修改;n 通過仔細(xì)分析程序盡可能多地掌握程序的內(nèi)部工作細(xì)節(jié),以便更有效地修改它;n 在深入理解原有設(shè)計的基礎(chǔ)上,用軟件工程方法重新設(shè)計、重新編碼和測試那些需要變更的軟件部分;n 以軟件工程方法學(xué)為指導(dǎo),對程序全部重新設(shè)計、重新編碼和測試,為此可以使用CASE工具(逆向工程和再工程工具)來幫助理解原有的設(shè)計。預(yù)防性維護(hù)o 在一個正在工作的程序版本已經(jīng)存在的情況下重
14、新開發(fā)一個大型程序,不是一種浪費(fèi)n 維護(hù)一行源代碼的代價可能是最初開發(fā)該行源代碼代價的1440倍;n 重新設(shè)計軟件體系結(jié)構(gòu)(程序及數(shù)據(jù)結(jié)構(gòu))時使用了現(xiàn)代設(shè)計概念,它對將來的維護(hù)可能有很大的幫助;n 由于現(xiàn)有的程序版本可作為軟件原型使用,開發(fā)生產(chǎn)率可大大高于平均水平;n 用戶具有較多使用該軟件的經(jīng)驗,因此,能夠很容易地搞清新的變更需求和變更的范圍;n 利用逆向工程和再工程的工具,可以使一部分工作自動化;n 在完成預(yù)防性維護(hù)的過程中可以建立起完整的軟件配置。軟件再工程過程o 以軟件工程方法學(xué)為指導(dǎo),對程序全部重新設(shè)計、重新編碼和測試,為此可以使用CASE工具(逆向工程和再工程工具)來幫助理解原有的
15、設(shè)計。 軟件再工程過程庫存目錄分析o 庫存目錄:軟件組織用于記錄其所擁有的所有應(yīng)用系統(tǒng)的基本信息。o 下述三類程序有可能成為預(yù)防性維護(hù)的對象:n 預(yù)定將使用多年的程序;n 當(dāng)前正在成功地使用著的程序;n 在最近的將來可能要做重大修改或增強(qiáng)的程序。文檔重構(gòu)o 如果一個程序是相對穩(wěn)定的,正在走向其有用生命的終點,而且可能不會再經(jīng)歷什么變化,那么,讓它保持現(xiàn)狀是一個明智的選擇。o 采用“使用時建文檔”的方法。o 如果某應(yīng)用系統(tǒng)是完成業(yè)務(wù)工作的關(guān)鍵,而且必須重構(gòu)全部文檔,則仍然應(yīng)該設(shè)法把文檔工作減少到必需的最小量。 逆向工程o 軟件的逆向工程是分析程序以便在比源代碼更高的抽象層次上創(chuàng)建出程序的某種表示
16、的過程,也就是說,逆向工程是一個恢復(fù)設(shè)計結(jié)果的過程,逆向工程工具從現(xiàn)存的程序代碼中抽取有關(guān)數(shù)據(jù)、體系結(jié)構(gòu)和處理過程的設(shè)計信息。 代碼重構(gòu)o 重構(gòu)難于理解、測試和維護(hù)的個體模塊的代碼。 o 具體步驟為:n 重構(gòu)工具分析源代碼,標(biāo)注出和結(jié)構(gòu)化程序設(shè)計概念相違背的部分。n 重構(gòu)有問題的代碼(此項工作可自動進(jìn)行)。n 復(fù)審和測試生成的重構(gòu)代碼(以保證沒有引入異常)并更新代碼文檔。o 針對軟件的體系結(jié)構(gòu)重構(gòu)?針對個體模塊的設(shè)計細(xì)節(jié)和其中定義的局部數(shù)據(jù)結(jié)構(gòu)?數(shù)據(jù)重構(gòu)o 對許多應(yīng)用系統(tǒng)來說,數(shù)據(jù)體系結(jié)構(gòu)比源代碼本身對程序的長期生存力有更大影響。o 數(shù)據(jù)重構(gòu)始于逆向工程活動,分解當(dāng)前使用的數(shù)據(jù)體系結(jié)構(gòu),必要時
17、定義數(shù)據(jù)模型,標(biāo)識數(shù)據(jù)對象和屬性,并從軟件質(zhì)量的角度復(fù)審現(xiàn)存的數(shù)據(jù)結(jié)構(gòu)。 o 當(dāng)數(shù)據(jù)結(jié)構(gòu)較差時,應(yīng)該對數(shù)據(jù)進(jìn)行再工程。例如:從關(guān)系型DBMS重構(gòu)為面向?qū)ο驞BMS 正向工程o 正向工程也稱為革新或改造,這項活動不僅從現(xiàn)有程序中恢復(fù)設(shè)計信息,而且使用該信息去改變或重構(gòu)現(xiàn)有系統(tǒng),以提高其整體質(zhì)量。 o 正向工程過程應(yīng)用軟件工程的原理、概念、技術(shù)和方法來重新開發(fā)某個現(xiàn)有的應(yīng)用系統(tǒng)。在大多數(shù)情況下,被再工程的軟件不僅重新實現(xiàn)現(xiàn)有系統(tǒng)的功能,而且加入了新功能和提高了整體性能。謝謝!練習(xí)o 某軟件公司擬采取下述措施提高他們開發(fā)出的軟件產(chǎn)品的可維護(hù)性。判斷哪些措施是正確的,哪些措施不正確。(1)在分析用戶需求時同時考慮維護(hù)問題(2)測試完程序后,刪去程序中的注解以縮短源長度(3)在軟
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年骨科關(guān)節(jié)用藥合作協(xié)議書
- 2022-2023學(xué)年廣西欽州市四年級(上)期末數(shù)學(xué)試卷
- 2025年逆變式電焊機(jī)合作協(xié)議書
- 2025年九年級班主任心得樣本(2篇)
- 2025年買賣協(xié)議參考范文(2篇)
- 2025年五人股東合作的協(xié)議(2篇)
- 2025年代課教師勞動合同標(biāo)準(zhǔn)版本(4篇)
- 2025年代交社會保險協(xié)議(三篇)
- 2025年二年級美術(shù)教學(xué)工作總結(jié)(5篇)
- 2025年買賣房屋定金協(xié)議簡單版(三篇)
- 2023年河北廊坊市三河市金創(chuàng)產(chǎn)業(yè)投資有限公司招聘筆試題庫含答案解析
- 醫(yī)學(xué)專題-脛骨高位截骨術(shù)
- 中國減肥行業(yè)市場分析與發(fā)展趨勢講義
- 海通食品集團(tuán)楊梅汁產(chǎn)品市場營銷
- 印章管理辦法(公安部)
- 圍術(shù)期下肢深靜脈血栓預(yù)防的術(shù)中護(hù)理
- 教學(xué)設(shè)計 分?jǐn)?shù)的再認(rèn)識 省賽一等獎
- DBJ51-T 151-2020 四川省海綿城市建設(shè)工程評價標(biāo)準(zhǔn)
- GB/T 12996-2012電動輪椅車
- 小象學(xué)院深度學(xué)習(xí)-第7講遞歸神經(jīng)網(wǎng)絡(luò)
- 京東1+X理論考試試題及答案
評論
0/150
提交評論