如何做好軟體度量與分析
軟體度量(Software Metric) 主要是用來度量軟體產品或開發流程的特定屬性,因而可以衍生出估計的基礎、追蹤專案流程、決定專案的複雜程度,並分析軟體產品缺陷,協助了解何時可達到客戶對品質的期望水準,協助主管擬定有效決策,發展出專案管理的最佳實務等,透過軟體度量分析的過程,數字會揭露一些不變的定理,也告訴我們一些經驗準則。
專案管理策略有三項主要特徵:
1. 追求客戶最大滿意度 (Maximize Customer Satisfaction)
2. 追求最小的成本和時程 (Minimize Engineering Effort & Schedule)
3. 追求最少缺陷發生 (Minimize Defects)
故目標導向(Goal Driven)的軟體度量,應符合並協助專案管理策略之達成,分別將各策略目標項下之可能度量項目列述如後:
1. 追求客戶最大滿意度 (Maximize Customer Satisfaction)
l 客戶滿意度的屬性有哪些(FURPS)
l 客戶滿意度的關鍵指標為何
l 客戶滿意度的表現結果為何
l 客戶的滿意程度為何
l 如何與競爭者比較
l 有多少問題會影響客戶
l 修復一個問題要花多久時間
l 安裝修復程式會不會影響客戶
l 有多少客戶受到問題的影響
l 瓶頸在那裡
2. 追求最小的成本和時程 (Minimize Engineering Effort & Schedule)
l 資源如何使用,流程的重複作業發生在哪裡
l 產品維護和支援生命週期總成本為何
l 開發方式如何影響維護成本
l 產品需要變更時,可維護度如何
l 流程的監控成本為何?Cost 如何分配
l 維護需求為何
l 修復一個缺陷在各種不同情況需花多久時間
l 如何預測週期、可靠度和effort
l 哪些實務可以產出最佳的結果
l 維護階段活動成本多少
l 主要元件成本為何,受哪些因素影響
l 成本隨時間如何變化
3. 追求最少缺陷發生 (Minimize Defects)
l 流程的關鍵指標為何
l 預防及維護發生的高槓桿機會為何
l 修復有效性,是否發生無預期的邊際效應
l 交付後每個模組的品質如何
l Release 何時發佈
l 開發流程如何有效預防缺陷
l 交付前後數據預測可能發生的問題
l 造成缺陷的原因為何
如何定義度量指標與選擇標的
度量的目的是為了進行有效分析,要避免只為了度量而收集數據,常用的定義方法為5W1H( Why,What,How,Who,Where,When),而度量標的選擇可運用GQM(Goal / Question / Measure)手法,指標範圍需涵蓋組織軟體工程的不同面向和層級,常見的範圍界定有如下幾種方式:
◎ 以CMMI流桯領堿為主
◎ 採用度量與分析教科書為範本
◎ 以技術文件為範本
如何收集度量數據
1. 定義度量尺度
2. 定義收集標的物內容、時間和週期
3. 獲取基本度量指標、衍生指標資訊
4. 收集並保存資料紀錄
如何有效度量
為了使分析具有價值和可信度,必須保證所收集資料的真實性、同步性、一致性和有效性,並具備正確的格式及在規定值的範圍內。
CMMI 的軟體度量架構
目標v.s.實務關係表
SG1 安排度量和分析的活動
SP 1.1 建立度量指標
SP 1.2 指定度量
SP 1.3 指定資料蒐集和儲存程序
SP 1.4 指定分析程序
SG2 提供度量結果以滿足需求
SP 2.1 蒐集度量資料
SP 2.2 分析度量資料
SP 2.3 儲存資料和結果
SP 2.4 溝通結果
結語
此次有機會參與本次課程的學習,對軟體工程的品質度量有更深的認識,大大增加了軟體度量對品質系統重要性之瞭解,也體會到若能應用有效的統計技術及工具,必能有效控管程序的執行及工作流程產出的品質。
本次課程因屬於初階之推廣課程,而缺乏實務面的操作,我想未來若有進階課程或Workshop的舉辦,將可提供進一步理論驗證的機會,有助於發展軟體度量分析的最佳實務經驗,並為將來資訊單位軟體品質管理的聚焦,紥下良好和堅實的基礎。
文章定位: