关于软件维护问题的几点思考
關于軟件維護問題的幾點思考
□ /文 王政
(廣州市龍口東路360號天河軟件園天誠廣場園區 510625)
前言:什么是軟件維護?所謂軟件維護就是在軟件已經交付使用之后,為了改正錯誤或滿足新的需要而修改軟件的過程。其目的是保證系統能持續地與用戶環境,數據處理操作、政府或其他有關部門的請求取得協調。
從軟件工程學的角度的來講,軟件維護費用日益上升,目前已達到整個開發費用的80%。就這個數字我們可以看出軟件維護工作的重要性,但是遺憾的是我們許多軟件開發公司往往忽略了它的重要性,或者明知道它的重要性卻對如何做好軟件維護工作不得其門。
本文根據個人工作經驗,從以下三個方面來談談怎樣做好軟件維護工作:
一、 軟件維護工作中存在的問題:
與軟件維護有關的絕大多數問題的根源在于計劃階段和開發階段的工作有缺點。典型問題:1、深刻理解原開發人員的編程思想通常相當困難。2、軟件人員的流動性,使得軟件維護時很難與原開發人員溝通。3、沒有文檔或文檔嚴重不足。4、軟件設計時,欠考慮軟件的可修改性,可擴展性。5、頻繁的軟件升級,要追蹤軟件的演化變得很困難,使軟件難以修改。
場景:做過軟件維護工作的朋友常常在沒有文檔說明、沒有代碼注釋的一大堆亂如麻的程序中轉了一圈后暈頭轉向、郁悶不已。更郁悶的事情是在Goto語句之間跳來跳去,最后摸不著北。還有利害的程序員可以把幾千行的代碼全部寫在一張頁面當中,讓你見識見識一下他高超的水平(其實很多時候我們看都不用看,就已經在心里あああ:TMD,你也太厲害了吧!)……
二、問題分析:
我們來分析一下引起軟件維護工作的原因到底是什么?
引起軟件維護工作的原因主要來自兩方面:一個是自身的原因、另一個是外部環境;因自身的原因而引起的維護工作有:預防性維護,正確性維護(一個軟件能否正確運行這是最起碼的要求),完善性維護。由外部環境所引起的工作包括適應性維護(客戶的滿意度是我們公司能夠持續發展一個重要方面,只有在有條件的情況下不斷滿足客戶的要求,才能提高我們的生存的空間)。
問題不只是這么簡單,要做好它卻是一件非常困難的事情。
1、軟件維護本身的復雜性。
2、軟件維護是一個長期的過程,我們公司很多領導沒有耐性,習慣不了長跑。
3、有標準不執行,喜歡做表面文章,自認為有了一個什么質量認證便可以高枕無憂。
4、能夠認識到它的重要性,可是沒有人愿意去做這費力不討好的事情。普遍的觀點:認為其沒有創造性,體現不了自身的水平與價值。每個有思想的程序員都希望把程序看成是自己第二生命。
場景:最近網上報道:中央政府的政令有時出不了“中南海”。分析研究得到的結果是地方政府官員沒有得到實際利益,懶得執行(官員在乎的只是眼前利益,沒有考慮到長遠利益)。針對軟件開發的復雜性,制定出來的標準我想大家都應該有所了解,但是很多時候軟件公司在開發軟件的過程中很少按標準去執行他們的工作。我心里會想:這難道也是軟件公司得不到利益嗎?可能我們公司的很多領導都和那些官員一樣——都是近視眼罷了。
三、 問題的解決:
我想首先要從思想上去解決問題,何謂從思想上去解決問題?就是從思想上對軟件維護工作有一個明確的認識。讀書時老師總是要求我們端正學習態度、明確學習目的,其目的就是要我們從思想上去認識學習的重要性。現在我們就是要明白軟件維護不是一件可有可無的工作,而是關系到企業發展的一項重要工作。
從思想上認識到了軟件維護的重要性,接著便是從技術上確保軟件維護的可行性。怎樣從技術上確保軟件維護可行性呢?
1、借鑒先進管理經驗、根據實際情況制定符合自身發展的企業標準和維護組織。
建立維護組織:一般軟件公司沒有專門的維護機構,除非大型軟件公司。
維護機構成員一般包括:配置管理員、維護控制員、系統管理員、一般維護工作人員。
2、 制定計劃、堅持評審:
根據軟件開發需求和公司情況制定切實可行的計劃。維護工作不應該采用“頭痛醫頭,腳痛醫腳”的零打碎敲的方法,而應當有計劃有步驟地統籌安排。認真做維護工作報告,及時發現問題解決問題。維護報告應包括的內容:該維護任務的范圍,所需資源,確認的要求,維修費用及維修進度安排。
堅持評審,在軟件開發各個階段的評審過程中分別考慮它們的可維護性。
需求評審:對將來可能要完善和修改的部分應加以說明,如討論可移植性問題時應考慮系統接口對軟件可維護性帶來的影響。
設計評審:數據設計、體系結構設計、過程設計及接口設計是否易于修改;
編碼評審:強調編程風格和內部文檔;
測試:在軟件正式交付使用前,每個測試步驟都應對預防性維護作出提示。
3、 編寫軟件維護文檔:
很多時候我們在解決了問題之后,便自以為事情已經了結,其實這個時候我們還有一項重要的工作沒有完成——編寫軟件維護文檔。軟件維護文檔包括:軟件問題報告、軟件變動記錄、軟件維護記錄。這樣當下次我們再需要修改時,便可以很快的找到問題的原因,減少我們從繁多的代碼中去尋找Bug。
總之,本人認為軟件維護工作不是哪一個人或哪一部分人的事情。作為公司應該根據公司實際情況制定切實可行的制度,從制度上去確保它;作為員工,從思想上應重視它,及早做好預防工作,減少或避免不必要的維護的工作。只有從互動的兩個方面努力,才能真正地做好軟件維護工作。
注:以上是本人從事軟件開發和軟件維護工作以來的一些思考,很多地方表述得還不透徹也不夠深入,希望能夠與大家一起討論、共同學習!
總結
以上是生活随笔為你收集整理的关于软件维护问题的几点思考的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 斧正什么意思日(“斧正”一词的由来)
- 下一篇: 吃花生米会发胖吗(吃花生能减肥还是增肥?