版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
軟件工程——軟件維護2024/5/27軟件工程——軟件維護一、軟件維護的概念二、軟件維護分類三、維護問題四、維護成本五、維護過程六、維護的副作用七、如何做好軟件維護2024/5/27軟件維護階段覆蓋了從軟件交付使用到軟件被淘汰為止的整個時期。軟件的開發(fā)時間可能需要一、二年,甚至更短,但它的使用時間可能要經(jīng)歷幾年或幾十年。在軟件開發(fā)過程中始終強調(diào)軟件的可維護性。原因是,一個應(yīng)用系統(tǒng)由于需求和環(huán)境的變化以及自身暴露的問題,在交付用戶使用后,對它進行維護是不可避免的,統(tǒng)計和估測結(jié)果表明,信息技術(shù)中硬件費用一般占35%,軟件占65%,而軟件后期維護費用有時竟高達軟件總費用的80%,所有前期開發(fā)費用僅占20%。軟件維護一、軟件維護的概念什么是軟件維護是指軟件系統(tǒng)交付使用以后,為了改正錯誤或滿足新的需要而修改軟件的過程國標GB/T11457-95給出如下定義在一軟件產(chǎn)品交付使用后對其進行修改,以糾正故障;在一軟件產(chǎn)品交付使用后對其進行修改,以糾正故障、改進其性能和其它屬性,或使產(chǎn)品適應(yīng)改變了的環(huán)境2024/5/27按照維護的起因分類四類:糾錯性維護適應(yīng)性維護完善性維護預防性維護二、軟件維護分類
糾錯性維護(CorrectiveMaintenance)——為改正軟件系統(tǒng)中潛藏的錯誤而進行的活動。
糾錯性維護是指在系統(tǒng)開發(fā)階段已發(fā)生而系統(tǒng)測試階段尚未發(fā)現(xiàn)的錯誤。這方面的維護工作量占整個維護工作量的17%-21%。所發(fā)現(xiàn)的錯誤有的不太重要,不影響系統(tǒng)的正常運行,其維護工作可隨時進行;而有的錯誤非常重要,甚至影響整個系統(tǒng)的正常運行,其維護工作必須制定計劃,進行修改,并且要進行復查和控制。這部分維護工作實際上就是軟件系統(tǒng)運行過程中修改前期沒有發(fā)現(xiàn)的bug,在修改舊bug過程中也可能會引入新的bug,這部分工作以后會成為新的糾錯性維護工作。在軟件開發(fā)過程中加強測試,可以有效減少這部分的維護工作。2024/5/27適應(yīng)性維護(AdaptiveMaintenance)——為適應(yīng)軟件運行環(huán)境的變化而修改軟件的活動。
適應(yīng)性維護是指是軟件適應(yīng)信息技術(shù)變化和管理需求而進行的修改。這方面的維護工作量占整個維護工作量的18%-25%。由于目前計算機硬件價格的不斷下降,各類系統(tǒng)軟件層出不窮,人們常常為改善系統(tǒng)硬件環(huán)境和運行環(huán)境而產(chǎn)生系統(tǒng)更新?lián)Q代的需求;企業(yè)的外部市場環(huán)境和管理需求的不斷變化也使得各級管理人員不斷提出新的信息需求。這些因素都將導致適應(yīng)性維護工作的產(chǎn)生。2024/5/27完善性維護(PerfectiveMaintenance)——根據(jù)用戶在軟件使用過程中提出的建設(shè)性意見而進行的維護活動。完善性維護是為擴充功能和改善性能而進行的修改,主要是指對已有的軟件系統(tǒng)增加一些在系統(tǒng)分析和設(shè)計階段中沒有規(guī)定的功能與性能特征。這些功能對完善系統(tǒng)功能是非常必要的。另外,還包括對處理效率和編寫程序的改進,這方面的維護占整個維護工作的50%-60%,比重較大,也是關(guān)系到系統(tǒng)開發(fā)質(zhì)量的重要方面。完善性維護是軟件維護工作的主要部分,觸發(fā)這類維護工作的常常是用戶業(yè)務(wù)交易增加了,或是業(yè)務(wù)流程改變了,需要修改軟件;也可能是軟件不能滿足業(yè)務(wù)量要去,需要在性能上有所提高。2024/5/27預防性維護(PreventiveMaintenance)
——為了進一步改善軟件系統(tǒng)的可維護性和可靠性,并為以后的改進奠定基礎(chǔ)。
預防性維護為了改進應(yīng)用軟件的可靠性和可維護性,為了適應(yīng)未來的軟硬件環(huán)境的變化,主動增加預防性的新的功能,以使應(yīng)用系統(tǒng)適應(yīng)各類變化而不被淘汰。這方面的維護工作占整個維護工作量的4%左右,是維護工作中占比最少的一部分工作。2024/5/27三、維護問題和軟件維護有關(guān)的部分問題:理解別人的代碼通常是非常困難的,而且難度隨著軟件配置成分的缺失而迅速增加需要維護的軟件往往沒有文檔、或文檔資料嚴重不足、或軟件的變化未在相應(yīng)的文檔中反映出來2024/5/27當軟件要求維護時,不能指望由原來的開發(fā)人員來完成或提供軟件的解釋。由于維護持續(xù)時間很長,因此當需要解釋軟件時候,往往開發(fā)人員已經(jīng)不在附近了絕大多數(shù)軟件在設(shè)計時沒有考慮到將來的修改問題軟件維護這項工作毫無吸引力。一方面是因為軟件維護,看不到什么“成果”,但工作量很大,更重要的是維護工作難度大,軟件維護人員經(jīng)常遭受挫折。2024/5/27過去的二十年,軟件維護的成本在不斷增長。七十年代,一個信息系統(tǒng)機構(gòu)用于軟件維護的費用占其軟件總預算的35~40%,八十年代接近60%。若維護方式?jīng)]有大的改進,未來幾年,許多大型軟件公司可能要將其預算的80%用于軟件系統(tǒng)的維護上。四、維護成本2024/5/27軟件維護除費用外的無形代價包括維護活動占用了其他軟件開發(fā)可用的資源,使資源的利用率降低一些修復或修改請求得不到及時安排,使得客戶滿意率下降維護的結(jié)果把一些新的潛在的錯誤引入軟件,降低了軟件質(zhì)量將軟件人員抽調(diào)到維護工作中,使得其它軟件開發(fā)過程受到干擾2024/5/27維護的工作可劃分成:生產(chǎn)性活動如,分析評價、修改設(shè)計、編寫程序代碼等非生產(chǎn)性活動如,程序代碼功能理解、數(shù)據(jù)結(jié)構(gòu)解釋、接口特點和性能界限分析等2024/5/27在軟件維護中,影響維護工作量的因素主要有以下六種:系統(tǒng)的大小 系統(tǒng)規(guī)模越大,其功能就越復雜,軟件維護的工作量也隨之增大。程序設(shè)計語言 使用功能強大的程序設(shè)計語言可以控制程序的規(guī)模。語言的功能越強,生成程序的模塊化和結(jié)構(gòu)化程度越高,所需的指令數(shù)就越少,程序的可讀性越好。2024/5/27系統(tǒng)年齡 系統(tǒng)使用時間越長,所進行的修改就越多,而多次的修改可能造成系統(tǒng)結(jié)構(gòu)混亂。由于維護人員經(jīng)常更換,程序變得越來越難于理解,加之系統(tǒng)開發(fā)時文檔不齊全,或在長期的維護過程中文檔在許多地方與程序?qū)崿F(xiàn)不一致,從而使維護變得十分困難。數(shù)據(jù)庫技術(shù)的應(yīng)用 使用數(shù)據(jù)庫,可以簡單而有效地存儲、管理系統(tǒng)數(shù)據(jù),還可以減少生成用戶報表應(yīng)用軟件的維護工作量。2024/5/27先進的軟件開發(fā)技術(shù)
在軟件開發(fā)過程中,如果采用先進的分析設(shè)計技術(shù)和程序設(shè)計技術(shù),如面向?qū)ο蠹夹g(shù)、復用技術(shù)等,可減少大量的維護工作量。其它一些因素 如應(yīng)用的類型、數(shù)學模型、任務(wù)的難度、開關(guān)與標記、IF嵌套深度、索引或下標數(shù)等,對維護工作量也有影響。2024/5/27五、維護過程對于非糾錯性維護,則首先判斷維護類型,對適應(yīng)性維護,按照評估后得到的優(yōu)先級放入隊列對于改善性維護,則還要考慮是否采取行動,如果接受申請,則同樣按照評估后得到的優(yōu)先級放入隊列,如果拒絕申請,則通知請求者,并說明原因?qū)τ诠ぷ靼才抨犃兄械娜蝿?wù),由修改負責人依次從隊列中取出任務(wù),按照軟件工程方法學規(guī)劃、組織、實施工程。2024/5/27維護請求類型類型嚴重性評估后按優(yōu)先級在隊列排隊救火行動,當排在隊列之首評估后分類評估后按優(yōu)先級在隊列排隊采取的行動通知請求者并說明原因按優(yōu)先級在隊列中排隊從維護請求隊列之首取出一任務(wù)按SE方法學規(guī)劃、組織、實施工程隊列中還有維護請求嗎?資源用于開發(fā)新的軟件。yn糾錯性維護其他改善性維護適應(yīng)性維護拒絕接受并不嚴重非常嚴重2024/5/272024/5/27六、維護的副作用軟件修改是一項很危險的工作,對一個復雜的邏輯過程,那怕做一項微小的改動,都可能引入潛在的錯誤,雖然設(shè)計文檔化和細致的測試有助于排除錯誤,但是維護仍然會產(chǎn)生副作用。一次修改5-10個語句,成功率50%;一次修改40-50個語句,成功的可能性20%;每糾正一個錯誤平均需修改17條指令。2024/5/27軟件維護的副作用指,由于維護或在維護過程中其他一些不期望的行為引入的錯誤,副作用大致可分為三類:(1)代碼副作用(2)數(shù)據(jù)副作用(3)文檔的副作用2024/5/27(1)代碼副作用—下面的修改最易引起副作用:
①修改或刪除子程序;
②修改或刪除語句標號;
③修改或刪除標識符;
④為提高程序效率而做的修改;
⑤修改邏輯操作符;
⑥由設(shè)計變動引起的代碼修改;
⑦修改分支處的判斷條件;
2024/5/27(2)數(shù)據(jù)副作用數(shù)據(jù)副作用是由于修改數(shù)據(jù)結(jié)構(gòu)帶來的副作用。容易引起數(shù)據(jù)副作用的修改包括: ①局部和全局常量的再定義; ②記錄或文件格式的再定義; ③增減數(shù)據(jù)或是由于修改數(shù)據(jù)結(jié)構(gòu)的定義導致數(shù)據(jù)結(jié)構(gòu)長度的改變; ④修改全局數(shù)據(jù); ⑤重新初始化控制標志和指針; ⑥重新排列I/O表或子程序參數(shù)表。2024/5/27(3)文檔副作用由于程序修改而沒有對文檔進行相應(yīng)的修改引起文檔的副作用。1.愛上軟件維護工作
首先要認識軟件維護工作在軟件生命周期中的重要性,做維護工作雖然不能成為臺前英雄,但卻是個實實在在的幕后英雄。實際上很多所謂的開發(fā)人員所做的開發(fā)工作就為軟件增加新功能,修改業(yè)務(wù)流程,這其實就是在做完善性維護工作。軟件維護工作同樣存在大量的挑戰(zhàn),同樣需要創(chuàng)造性、靈活性、耐心、訓練和良好的溝通。愛好是學習最好的老師,只要喜歡上軟件維護工作,你就會在這一領(lǐng)域中發(fā)揮你的聰明才智,收獲屬于你的一片藍天。七、如何做好軟件維護2.熟悉軟件系統(tǒng)
熟悉所維護軟件的功能是非常重要的,也是進行軟件維護工作的第一步。首先閱讀現(xiàn)有的文檔,最好能對文檔中提到的內(nèi)容親自進行測試。掌握現(xiàn)實中軟件的使用方法,確保你要知道最常用的使用情形。有時候用戶會要求提供一些已經(jīng)存在的功能特性,只是因為他們不知道軟件中已經(jīng)具有了這些功能。最后只能研究代碼了,試著去理解函數(shù)、模塊和組件在軟件中所扮演的角色。使用調(diào)試器單步執(zhí)行程序中不同的分支,查看當代碼的不同部分執(zhí)行時將會發(fā)生什么。要把熟悉軟件的體系結(jié)構(gòu)當做一個持續(xù)進行的過程,而不是一次就能完成的事情。當你修改bug或添加新的特性時,可能對系統(tǒng)有更好的理解。以上過程一定要記錄結(jié)果,這樣對維護工作有巨大的幫助。3.與用戶溝通與用戶溝通是非常重要的。許多軟件開發(fā)者都很內(nèi)向,他們寧愿與技術(shù)打交道,也不愿意去與用戶溝通。然而,軟件就是為了人們使用才開發(fā)的。而且在軟件的維護階段,已經(jīng)有用戶使用我們的軟件了。試著建立一個簡單有效的機制,用于及時反饋用戶提出的問題,即使我們不能立即解決這個問題,也要讓用戶知道我們正在處理這個問題,而沒有怠慢他們。最后,要誠實的告訴他們問題的最新解決情況,如果由于某些原因不能滿足他們的需求,也要及時告訴他么。4.保留修改記錄有很多種保留修改記錄的方法。最常見的方式是在每次提交代碼前要進行注釋說明,還有些人喜歡把修改的記錄列表寫到文件的頂部,在電子表格中保留一份修改列表也是和方便的。無論你采用哪種方式,一定要重視它。一份精確的修改記錄對成功的維護工作來說是無價的。5.盡量保持程序原貌,避免重構(gòu)
在軟件維護的很多時候,你會被某些模塊中的代碼弄得很沮喪。真想把這些代碼刪除后從頭重寫。事實上,無論何時我們對代碼進行修改,不管是多么微小的修改,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 代理解約合同范例
- 工裝修設(shè)計合同范例
- 債務(wù)居間合同范例
- 利益分配合同范例
- 出海合同范例
- 《健身器械常識》課件
- 居室裝潢施工合同范例
- 山林用地出租合同范例
- 智能洗滌:未來之選
- 關(guān)于夏令營活動方案
- 電子版門窗合同范本
- 四川省宜賓市南溪區(qū)2022-2023學年七年級上學期期中歷史試題
- 2024巴黎奧運會秋季開學第一課主題班會
- 中等職業(yè)技術(shù)學校園藝技術(shù)專業(yè)建設(shè)規(guī)劃(2021-2025)
- 工業(yè)用地開發(fā)項目社會穩(wěn)定風險分析
- 《絲綢服飾文化》課件-第一講絲綢的起源與發(fā)展
- GB/T 44133-2024智能電化學儲能電站技術(shù)導則
- 2024年四川省內(nèi)江市中考英語試題(含答案)
- JGJ31-2003 體育建筑設(shè)計規(guī)范
- 管理學中的實證研究方法
- (完整版)小學生衛(wèi)生常識課
評論
0/150
提交評論