可維護性複審
可維護性是所有軟體都應該具備的基本特點。在軟體設計的每個階段都應該努力提高系統的可維護性,在每個階段結束前的審查和
複審中.應著重對可維護性進行複審。
(1)在需求分析階段的複審中,應對將來要擴充和修改的部分加以說明。在討論軟體可移植性問題時.要考慮可能影響軟體維護的系統界面。
(2)在軟體設計的複審中.應從便於修改、
模組化和功能獨立的目標出發.評價軟體的結構和過程.從軟體質量的角度全面評審數據沒計、總體結構設汁、過程設引‘和界面設計。還應對將來可能修改的部分預先做準備。
(3)在軟體代碼複審中,應強調編碼風格和內部說明文檔這兩個影響可維護性的岡素。最後.每一階段性測試部應指出軟體正式交付之前.應陔進行的預防性維護。在完成每項維護工作後,都應陔對軟體維護本身進行仔細}人真的複審。為了從根本上提高軟體系統的可維護性。人們正試圖通過直接維護軟體規格說明來維護軟體.同時也在大力發展軟體重用技術。
可維護性指數
這個指數用一個公式計算,考慮到了圈複雜性、
代碼行以及Halstead量,Halstead量也是一個度量,考慮操作符和運算元的總數。該指數的範圍是0~100,數值越高就越容易維護。
可維護性測試
大多數可維護性參數是可測量的,例如模組化、
測試性、
靈活性和
可移植性。測試必須從用戶需求中引出,因為在這個領域幾乎沒有發表現成的參考資料。
可維護性的提高
(1)建立明確的軟體質量目標。如果要程式完全滿足可維護性的7種質量特性,肯定是很難實現的。實際上,某些質量特性是相互促進的,如可理解性和可測試性,可理解性和可修改性;某些質量特性是相互牴觸的,如效率和可移植性,效率和可修改性。因此,為保證
程式的可維護性,應該在一定程度上滿足可維護的各個特性,但各個特性的重要性又是隨著程式的用途或計算機環境的不同而改變的。對
編譯程式來說,效率和可移植性是主要的;對信息管理系統來說,可使用性和可修改性可能是主要的。通過實驗證明,強調效率的程式包含的錯誤比強調簡明性的程式所包含錯誤要高出10倍。顯然,在提出目標的同時,還必須規定它們的優先權,這樣有助於提高軟體的質量。
(2)使用先進的
軟體開發技術和工具。利用先進的軟體開發技術和工具是軟體開發過程中提高軟體質量、降低成本的有效方法之一,也是提高可維護性的有效技術。常用的技術:採用模組化、結構化程式設計,結構化設計技術能提高軟體的可維護性;設計文檔中使用標準的表達工具來描述算法、數據結構、接口等,能幫助維護人員更好地理解軟體。
(3)進行明確的質量保證審查。在軟體開發每個階段結束前的技術審查和管理複審中,應該著重對可維護性進行審查。如在需求分析階段的審查中,應該對將來要改進的部分和可能會修改的部分加以注意並指明;如在設計階段的審查中,應從容易修改、模組化和功能獨立的目標出發來評價軟體的結構和過程;在代碼審查中應強調編碼風格和內部說明文檔對軟體可維護性的影響;在測試階段的審查中,應對軟體的配置複審進行重視;在維護階段完成每項維護工作後,都應對維護工作本身進行仔細認真的複審,如
原始碼的修改與文檔的修改是否一致。
(4)選擇可維護的程式設計語言。程式設計語言的選擇對維護的影響比較大。低級語言一般很難理解,很難掌握,因而很難維護。一般來說,高級語言比低級語言更容易理解,在高級語言中,一些語言可能比另一些語言更容易理解。
(5)改進程式文檔。文檔是影響軟體可維護性的重要因素,文檔有時比程式代碼更重要。程式文檔是對程式的總目標、程式各組成部分之間的關係、程式設計策略、程式實現過程的歷史數據等的說明和補充。程式文檔對提高程式的可理解性有著重要作用。即使是一個十分簡單的程式,要想有效地、高效率地維護它,需要編制文檔來解釋其目的及任務。對於程式維護人員來說,要想對程式編制人員的意圖重新改造,並對今後變化的可能性進行估計,缺了文檔也是不行的。可見,為了維護程式,人們必須閱讀和理解文檔。
好的文檔是建立可維護性的基本條件。另外,在軟體維護階段,利用歷史文檔可以大大簡化維護工作。歷史文檔有3種:系統開發日誌、錯誤記載、系統維護日誌。