論計算機軟件維護

學識都 人氣:2.65W

軟件維護時要建立正式的維護團隊,明確責任和分工,避免出現糾紛,以下是小編蒐集整理的一篇探究計算機軟件工程維護的論文範文,歡迎閱讀查看。

論計算機軟件維護

 [摘 要]近幾年,中國軟件產業突飛猛進,從事軟件行業的相關人員大幅增加。但是如何保證開發出來的軟件能穩定的運行,如何維護用戶使用的軟件是我國從事軟件行業人員較爲忽略的問題。專門從事維護的相關人員較少,本文簡單闡述軟件維護和前景,提出關於軟件維護的方法和見解。

 [關鍵詞]計算機;軟件工程;維護

軟件產品的維護階段是完全開發出來的軟件在已經交付給用戶之後,保證能在用戶所接受的時間週期下正常且穩定的運行。軟件維護是軟件生命週期的最後階段。開發軟件的目的就是要提高軟件產品的維護性能,儘可能降低軟件在維護階段的工作量,節約軟件開發成本。維護軟件所需工作量較大,據統計,較大型的軟件維護成本是開發成本的四倍以上。國內外較大型軟件開發公司把60%左右的工作量用於維護已經開發的軟件。公司爲了使軟件的壽命更長,這方面的工作量會越來越高,軟件的維護費用也在逐年增加,70年代維護軟件的費用佔開發軟件總預算的37%左右,80年代提高爲50%左右,到了90年代已經高達75%左右。因此降低軟件維護的成本是軟件開發過程中最重要的環節。

 一、軟件維護的分類

(一)改正性維護:診斷並糾正由於開發時測試環節的疏漏和運行中潛伏的`錯誤以及開發時未能測試的錯誤。

(二)適應性維護:隨着時間變化,相匹配的軟硬件出現了更新,數據庫,數據的存儲格式可能會發生變化,爲了適應變化環境而對軟件的修正,使之兼容。

(三)完善性維護:爲了能提高系統性能和擴充優化,改進運行效率,完善可視化界面,實現用戶提出的建議和改進的要求。

(四)預防性維護:爲了軟件將來的前景,採用軟件工程的方法對軟件進行相適應的修改。

(五)其他維護:其中,改正性維護所佔比例約爲19%,適應性維護約爲22%,完善性維護約爲56%,預防性維護約爲1%,其他維護佔2%左右。

 二、軟件維護的影響因素

(一)人員變動:往往軟件交付以後就要解散團隊,人員會被分配到下一個開發團隊中。當初開發的人員離開了團隊,甚至後來修改該軟件的人員也離開了團隊或公司,會導致幾乎已經沒人徹底瞭解這個遺留的軟件,造成軟件徹底報廢。這樣也會給負責軟件維護的新團隊帶來困擾,要花費更多精力,浪費了資金。

(二)用戶要求:當初沒有簽訂詳細的合同和擬出詳細的計劃書,也沒有和用戶進行詳細的溝通,導致開發人員認爲合理的修改和更新不能滿足用戶的要求,成本增加。

(三)潛在錯誤:維護人員的改動可能會在軟件中加入潛在的風險和錯誤,導致間接降低了軟件的質量。本來是正確的地方,改過以後變成了錯誤,兼容性變得更差了。

(四)維護成本:維護成本已經大於開發一個新軟件的成本或者大於預計的成本,維護價值下降。

(五)團隊素質:簽訂系統維護的合同一般和簽訂系統開發的合同無直接關係。假設這個開發團隊爲了節約開發成本,不按照系統可維護性來設計,那麼勢必會增加維護團隊的維護成本。軟件開發時採用急功近利還是放眼未來的態度,對軟件維護的影響很大。

(六)人員水平:一般公司認爲維護軟件不需要太多技術,不如開發軟件聲望好,分配能力較低的員工去做,也會增加維護的風險。

(七)文檔同步:軟件開發人員編碼中不斷修改需求和設計,但是文檔卻沒有進行實時更新,造成交付的文檔於實際軟件出現偏差,使今後對軟件進行維護時出現誤解。

同時,一些軟件滲入了許多相關的公司業務知識,還需要有一定的相關工作經驗,這類軟件維護的成本會更高。目前軟件維護系統的方法不完善,維護工作變得更加困難,意外的發生也會導致風險隨之增加。軟件維護也會產生一些副作用,軟件修改是一項很危險的工作,雖然設計文檔化和迴歸測試有助於排除錯誤,但是仍然會產生副作用。副作用指,由於維護和維護過程中其他的一些不期望的行爲引入的錯誤,分爲:代碼副作用,數據副作用,文檔副作用。

(1)代碼副作用:修改或刪除子程序,語句符號,標示符。修改文件的open,close才做;修改邏輯操作符;修改對邊界條件的測試等。

(2)數據副作用:全局常量和局部常量的再定義;修改全局數據;重新初始化控制標誌和指針,重新排列I/O表或子程序參數表等。

(3)文檔副作用:維護應該統一考慮整個軟件的配置,而不僅僅是源代碼。

 三、維護工作量的模型

M=P+K*exp(c-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.