淺談計算機軟體維護的論文
隨著網路資訊科技的提高,對於計算機的應用,也提出了進一步的要求,而計算機軟體維護工作引起越來越多人的重視。下面是小編給大家推薦的,希望大家喜歡!
篇一
《論計算機軟體維護》
[摘 要]近幾年,中國軟體產業突飛猛進,從事軟體行業的相關人員大幅增加。但是如何保證開發出來的軟體能穩定的執行,如何維護使用者使用的軟體是我國從事軟體行業人員較為忽略的問題。專門從事維護的相關人員較少,本文簡單闡述軟體維護和前景,提出關於軟體維護的方法和見解。
[關鍵詞]計算機;軟體工程;維護
中圖分類號:TP31 文獻標識碼:A 文章編號:1009-914X201527-0157-01
軟體產品的維護階段是完全開發出來的軟體在已經交付給使用者之後,保證能在使用者所接受的時間週期下正常且穩定的執行。軟體維護是軟體生命週期的最後階段。開發軟體的目的就是要提高軟體產品的維護效能,儘可能降低軟體在維護階段的工作量,節約軟體開發成本。維護軟體所需工作量較大,據統計,較大型的軟體維護成本是開發成本的四倍以上。國內外較大型軟體開發公司把60%左右的工作量用於維護已經開發的軟體。公司為了使軟體的壽命更長,這方面的工作量會越來越高,軟體的維護費用也在逐年增加,70年代維護軟體的費用佔開發軟體總預算的37%左右,80年代提高為50%左右,到了90年代已經高達75%左右。因此降低軟體維護的成本是軟體開發過程中最重要的環節。
一、軟體維護的分類
一改正性維護:診斷並糾正由於開發時測試環節的疏漏和執行中潛伏的錯誤以及開發時未能測試的錯誤。
二適應性維護:隨著時間變化,相匹配的軟硬體出現了更新,資料庫,資料的儲存格式可能會發生變化,為了適應變化環境而對軟體的修正,使之相容。
三完善性維護:為了能提高系統性能和擴充優化,改進執行效率,完善視覺化介面,實現使用者提出的建議和改進的要求。
四預防性維護:為了軟體將來的前景,採用軟體工程的方法對軟體進行相適應的修改。
五其他維護:其中,改正性維護所佔比例約為19%,適應性維護約為22%,完善性維護約為56%,預防性維護約為1%,其他維護佔2%左右。
二、軟體維護的影響因素
一人員變動:往往軟體交付以後就要解散團隊,人員會被分配到下一個開發團隊中。當初開發的人員離開了團隊,甚至後來修改該軟體的人員也離開了團隊或公司,會導致幾乎已經沒人徹底瞭解這個遺留的軟體,造成軟體徹底報廢。這樣也會給負責軟體維護的新團隊帶來困擾,要花費更多精力,浪費了資金。
二使用者要求:當初沒有簽訂詳細的合同和擬出詳細的計劃書,也沒有和使用者進行詳細的溝通,導致開發人員認為合理的修改和更新不能滿足使用者的要求,成本增加。
三潛在錯誤:維護人員的改動可能會在軟體中加入潛在的風險和錯誤,導致間接降低了軟體的質量。本來是正確的地方,改過以後變成了錯誤,相容性變得更差了。
四維護成本:維護成本已經大於開發一個新軟體的成本或者大於預計的成本,維護價值下降。
五團隊素質:簽訂系統維護的合同一般和簽訂系統開發的合同無直接關係。假設這個開發團隊為了節約開發成本,不按照系統可維護性來設計,那麼勢必會增加維護團隊的維護成本。軟體開發時採用急功近利還是放眼未來的態度,對軟體維護的影響很大。
六人員水平:一般公司認為維護軟體不需要太多技術,不如開發軟體聲望好,分配能力較低的員工去做,也會增加維護的風險。
七文件同步:軟體開發人員編碼中不斷修改需求和設計,但是文件卻沒有進行實時更新,造成交付的文件於實際軟體出現偏差,使今後對軟體進行維護時出現誤解。
同時,一些軟體滲入了許多相關的公司業務知識,還需要有一定的相關工作經驗,這類軟體維護的成本會更高。目前軟體維護系統的方法不完善,維護工作變得更加困難,意外的發生也會導致風險隨之增加。軟體維護也會產生一些副作用,軟體修改是一項很危險的工作,雖然設計文件化和迴歸測試有助於排除錯誤,但是仍然會產生副作用。副作用指,由於維護和維護過程中其他的一些不期望的行為引入的錯誤,分為:程式碼副作用,資料副作用,文件副作用。
1程式碼副作用:修改或刪除子程式,語句符號,標示符。修改檔案的open,close才做;修改邏輯操作符;修改對邊界條件的測試等。
2資料副作用:全域性常量和區域性常量的再定義;修改全域性資料;重新初始化控制標誌和指標,重新排列I/O表或子程式引數表等。
3文件副作用:維護應該統一考慮整個軟體的配置,而不僅僅是原始碼。
三、維護工作量的模型
M=P+K*expc-d
其中:M是維護需要的總工作量,P是生產性工作量,K是經驗指數,c是複雜程度,d是維護人員對該軟體的熟悉程度,該模型表明,如果軟體的開發途徑不好,開發人員不能參加維護工作,維護需要的總工作量和費用將以指數的形勢增加。
四、軟體維護的步驟
總體步驟:修改軟體需求說明-修改軟體設計-設計評審-重新編碼-單元測試-整合測試-迴歸測試-確認測試-複審。
軟體維護時要建立正式的維護團隊,明確責任和分工,避免出現糾紛。要建立一份使用者要求表格,要讓使用者全面詳細地闡述發生的問題和錯誤,包括問題的型別,需要達到的目標,系統執行的環境,發生問題的日期等等。維護過程中要注意順從原有程式碼的編碼習慣,確保和諧。維護申請比較多,可分配優先順序。修改前要做備份,改後要做測試,完成後要進行會議總結,汲取教訓,分享經驗。必要時還可以專門為該軟體建立維護指南,使用手冊,簡要說明如何使用和維護這個軟體。還可以建立參考手冊,可以預示會發生出錯的可能情況和錯誤程式碼相對應的含義以及解決的辦法,注意要用形式化語言描述。維護完成時,可進行迴歸測試,測試順利完成後方可交付。軟體隨著多次的維護和修改,其可維護性會變得越來越差,當可維護性降低到一定程度時,為了滿足使用者的要求再繼續修改已經不可靠了,軟體就會被拋棄,生命週期終止,失去了利用價值。
五、軟體維護的前景
目前據筆者瞭解到,軟體維護相關人員較少,但是軟體維護成本卻佔了軟體開發中成本的大半,許多大型軟體由於缺少維護導致失控而被拋棄。因此如果精通或掌握軟體維護領域相關知識,能夠熟練完成大型軟體的維護如:ERP的日常維護,SQL資料庫的維護,網頁伺服器的維護等等,不斷改進完善軟體,發展潛力很大。
當前計算機技術在整個國民經濟中具有相當廣泛的領域,在人們的日常生活中,計算機技術可以說是無處不在,是人們生活、工作不可缺少的工具之一,以軟體技術作為其內在靈魂的計算機資訊系統,正在對系統高度整合化、結構廣泛分佈化、資訊多元化和功能智慧化等一系列新型發展方向越來越重視,並逐步在實踐中得以實現。軟體維護是一項綜合性很強的工作,隨著軟體規模和複雜度的日益提高,使軟體維護成為軟體生存週期中費用最高、難度最大的一個階段。因此,良好的軟體維護是軟體生命週期的最後階段,也是最重要的階段。
參考文獻
[1] 吳傑明,張正.實用軟體維護策略[J]..北方工業大學學報,2002,14,3:61-62 .
[2] 張海藩.軟體工程導論[M].第五版.北京:清華大學出版社,2008,5:191.
[3] 周全學.軟體維護淺析[J].鐵路計算機應用,2003,12:42-43.