Post on 19-Jan-2016
description
「可維護性」與應用程式是否易於修改可說是息息相關。大型應用程式的修改需求會出現在開發時期,而小型應用程式的修改需求則常在交付給客戶之後才發生。以現代的商業處理模式來看,改變是必然而且頻繁的,早期應用程式的維護修改工作只是偶爾為之,現在則是持續不斷地改變,於是「維護」成了應用程式生命週期中的常態,對大型商業系統來說更是如此。
Taco J. Oosterkamp
譯文出自 :http://www.cmlab.csie.ntu.edu.tw/~chenhsiu/docs/MaintainableAppTW.htm
Visual Studio 2010 的解答− 事前預防
− 圖層圖 (Layer Diagram)− 程式碼分析 (Code Analysis)
− 事後治療− 架構總管 (Architecture Explorer)− 循序圖 (Sequence Diagram)
− 範例 : Nerddinner http://www.nerddinner.com/
Code Metrics
− 可維護性指數:採用 SEI 發展出來的公式來評估,數值介於 0~9屬於低維護性, 10~19屬於中維護性, 20~100則屬於高維護性
− 循環複雜度:用來評估程式邏輯複雜的程度,像是有使用到 if , while , for 等,點數愈高表示循環複雜度愈高
− 繼承深度:因所有類別至少是繼承 Object Class ,故至少值會是 1 以上,相對的數值愈高,表示繼承關係愈多層,則在找尋定義或是重新調整方法較困難
− 類別結合程度:數值愈高表示類別間相依性愈高,結合程度高表示設計不易重複使用
− 程式碼行數:扣除註解、縮排、宣告等等的行數,所得到的程式碼行數,當然數值愈高,相對後續要維護上較不易,應適當做切割
http://msdn.microsoft.com/zh-tw/library/bb385914(v=vs.90).aspx
Code Analysis
− 有 11 個類別、 200 多項規則
− 以規則為基礎進行分析− 確保程式碼吻合開發原則
−安全議題 (26項 )− 命名原則 (24項 )− 設計 (62項 )− 可靠度 (6項 )− 效能 (17項 )…
架構總管 (Architecture Explorer)Before After
High Level Diagram
Detail Diagram
無法了解物件間的呼叫關係,系統較難維護,新人較難上手。
細部展開