軟體度量

軟體度量

軟體度量(software measurement)是對軟體開發項目、過程及其產品進行數據定義、收集以及分析的持續性定量化過程,目的在於對此加以理解、預測、評估、控制和改善。沒有軟體度量,就不能從軟體開發的暗箱中跳將出來。通過軟體度量可以改進軟體開發過程,促進項目成功,開發高質量的軟體產品。度量取向是軟體開發諸多事項的橫斷面,包括顧客滿意度度量、質量度量、項目度量、以及品牌資產度量、智慧財產權價值度量,等等。度量取向要依靠事實、數據、原理、法則;其方法是測試、審核、調查;其工具是統計、圖表、數字、模型;其標準是量化的指標。

簡單軟體度量流程圖

業務流圖業務流圖

就是簡單的業務流圖

方法體系

項目度量

項目度量是針對軟體開發項目的特定度量,目的在於度量項目規模、項目成本、項目進度、顧客滿意度等,輔助項目管理進行項目控制。

規模度量

軟體開發項目規模度量(size measurement)是估算軟體項目工作量、編製成本預算、策劃合理項目進度的基礎。規模度量是軟體項目失敗的重要原因之一。一個好的規模度量模型可以解決這一問題。有效的軟體規模度量是成功項目的核心要素:基於有效的軟體規模度量可以策劃合理的項目計畫,合理的項目計畫有助於有效地管理項目。規模度量的要點在於:由開發現場的項目成員進行估算;靈活運用實際開發作業數據;杜絕盲目迎合顧客需求的“交期逆推法”。

軟體規模度量有助於軟體開發團隊準確把握開發時間、費用分布以及缺陷密度等等。軟體規模的估算方法有很多種,如:功能點分析(FPA:function points analysis)、代碼行(LOC:lines of code)、德爾菲法(Delphi technique)、COCOMO模型、特徵點(feature point)、對象點(object point)、3-D功能點(3-D function points)、Bang度量(DeMarco's bang metric)、模糊邏輯(fuzzy logic)、標準構件法(standard component)等,這些方法不斷細化為更多具體的方法。

成本度量

軟體開發成本度量主要指軟體開發項目所需的財務性成本的估算。主要方法如下:

類比估算法。類比估算法是通過比較已完成的類似項目系統來估算成本,適合評估一些與歷史項目在套用領域、環境和複雜度方面相似的項目。其約束條件在於必須存在類似的具有可比性的軟體開發系統,估算結果的精確度依賴於歷史項目數據的完整性、準確度以及現行項目與歷史項目的近似程度。

細分估算法。細分估算法是將整個項目系統分解成若干個小系統,逐個估算成本,然後合計起來作為整個項目的估算成本。細分估算法通過逐漸細化的方式對每個小系統進行詳細的估算,可能獲得貼近實際的估算成本。其難點在於,難以把握各小系統整合為大系統的整合成本。

周期估算法。周期估算法是按軟體開發周期進行劃分,估算各個階段的成本,然後進行匯總合計。周期估算法基於軟體工程理論對軟體開發的各個階段進行估算,很適合瀑布型軟體開發方法,但是需要估算者對軟體工程各個階段的作業量和相互間的比例具有相當的了解。

顧客滿意度度量

顧客滿意是軟體開發項目的主要目的之一,而顧客滿意目標要得以實現,需要建立顧客滿意度度量體系和指標對顧客滿意度進行度量。顧客滿意度指標(CSI:customer satisfaction index)以顧客滿意研究為基礎,對顧客滿意度加以界定和描述。項目顧客滿意度量的要點在於:確定各類信息、數據、資料來源的準確性、客觀性、合理性、有效性,並以此建立產品、服務質量的衡量指標和標準。企業顧客滿意度度量的標準會因為各企業的經營理念、經營戰略、經營重點、價值取向、顧客滿意度調查結果等因素而有所不同。

軟體度量軟體度量

比如:NEC於2002年12月開始實施的CSMP 活動的度量尺度包括共感性、誠實性、革新性、確實性和迅速性,其中,將共感性和誠實性作為CS活動的核心姿態,而將革新性、確實性和迅速性作為提供商品和服務中不可或缺的尺度。每個尺度包括兩個要素,各要素包括兩個項目,總計5大尺度、10個要素和20個項目。例如,共感性這一尺度包括“了解顧客的期待”、“從顧客的立場考慮問題”這兩個要素;“了解顧客的期待”這一要素又包括“不僅僅能勝任目前的工作還能意識到為顧客提供價值而專心投入”、“對顧客的期望不是囫圇吞棗而是根據顧客的立場和狀況來思考‘顧客到底需要什麼’並加以應對”這兩個項目。

美國專家史蒂芬(Stephen H.Kan)在《軟體質量工程的度量與模型》(Metrics and Models in Software Quality Engineering)中認為,企業的顧客滿意度要素如表7-1所示:

調查表
顧客滿意度要素 顧客滿意度要素的內容
技術解決方案 質量 , 可靠性 , 有效性 , 易用性 , 價格 , 安裝 , 新技術
支持與維護 靈活性 , 易達 ,性,產品知識
市場行銷 解決方案 , 接觸點 , 信息
管理 購買流程,請求手續,保證期限,注意事項
交付 準時 , 準確 ,交付後過程
企業形象 技術領導,財務穩定性,執行印象

作為企業的顧客滿意度的基本構成單位,項目的顧客滿意度會受到項目要素的影響,主要包括:開發的軟體產品、開發文檔、項目進度以及交期、技術水平、溝通能力、運用維護等等。具體而言,可以細分為如表7-2所示的度量要素,並根據這些要素進行度量。

顧客滿意度項目 顧客滿意度度量要素

軟體產品 功能性、可靠性、易用性、效率性、可維護性、可移植性

開發文檔 文檔的構成、質量、外觀、圖表以及索引、用語

項目進度以及交期 交期的根據、進度遲延情況下的應對、進展報告

技術水平 項目組的技術水平、項目組的提案能力、項目組的問題解決能力

溝通能力 事件記錄、式樣確認、

運用維護 支持、問題發生時的應對速度、問題解決能力

層級內容

第一層

質量要素

描述和評價軟體質量的一組屬性 功能性、可靠性、易用性、效率性、可維護性、可移植性等質量特性以及將質量特性細化產生的副特性

第二層

衡量標準

衡量標準的組合反映某一軟體質量要素 精確性、穩健性、安全性、通信有效性、處理有效性、設備有效性、可操作性、培訓性、完備性、一致性、可追蹤性、可見性、硬體系統無關性、軟體系統無關性、可擴充性、公用性、模組性、清晰性、自描述性、簡單性、結構性、檔案完備性等

第三層

量度標準

可由各使用單位自定義 根據軟體的需求分析、概要設計、詳細設計、編碼、測試、確認、維護與使用等階段,針對每一個階段制定問卷表,以此實現軟體開發過程的質量度量

表7-3軟體質量度量FCM模型

凱悅(Lawrence E. Hyatt)和羅森貝克(Linda H. Rosenberg)在《識別項目風險以及評價軟體質量的軟體質量模型與度量》(A Software Quality Model and Metrics for Identifying Project Risks and Assessing Software Quality)中比較了這3種最常用的軟體質量模型,其基本情況如表5-14所示。

度量標準/目標 麥 考 爾 勃 姆 ISO 9126

正確性(Correctness) X X 可維護性

可靠性(Reliability) X X X

完整性(Integrity) X X

可用性(Usability) X X X

效率性(Efficiency) X X X

可維護性(Maintainability) X X X

可測試性(Testability) X 可維護性

互操作性(Interoperability) X

適應性(Flexibility) X X

可重用性(Reusability) X X

可移植性(Portability) X X X

明確性(Clarity) X

可變更性(Modifiability) X 可維護性

文檔化(Documentation) X

恢復力(Resilience) X

易懂性(Understandability) X

有效性(Validity) X 可維護性

功能性(Functionality) X

普遍性(Generality) X

經濟性(Economy) X

表7-4 3種軟體質量模型之比較

軟體質量度量方法

軟體質量度量方法比較多,例如:(1)Halstead複雜性度量法,基本思路是根據程式中可執行代碼行的操作符和運算元的數量來計算程式的複雜性。操作符和運算元的量越大,程式結構就越複雜。(2)McCabe複雜性度量法,其基本思想是程式的複雜性很大程度上取決於程式控制流的複雜性,單一的順序程式結構最簡單,循環和選擇所構成的環路越多,程式就越複雜。

過程度量

軟體過程性能

過程度量過程度量

過程度量是對軟體開發過程的各個方面進行度量,目的在於預測過程的未來性能,減少過程結果的偏差,對軟體過程的行為進行目標管理,為過程控制、過程評價持續改善提供定量性基礎。過程度量與軟體開發流程密切相關,具有戰略性意義。軟體過程質量的好壞會直接影響軟體產品質量的好壞,度量並評估過程、提高過程成熟度可以改進產品質量。相反,度量並評估軟體產品質量會為提高軟體過程質量提供必要的反饋和依據。過程度量與軟體過程的成熟度密切相關。

過程度量

弗羅哈克(William A.Florac)、帕克(Robert E.Park)和卡爾頓(Anita D.Carleton)在《實用軟體度量:過程管理和改善之度量》(Practical Software Measurement:Measuring for Process Management and Improvement)中描述了過程管理和項目管理的關係。認為軟體項目團隊生產產品基於三大要素:產品需求、項目計畫和已定義軟體過程。度量數據在項目管理中將被用來:(1)識別和描述需求,(2)準備能夠實現目標的計畫,(3)執行計畫,(4)跟蹤基於項目計畫目標的工作執行狀態和進展。而過程管理也能使用相同的數據和相關度量來控制和改善軟體過程本身。這就意味著,軟體組織能使用建構和維持度量活動的共同框架來為過程管理和項目管理兩大管理功能提供數據。

軟體過程管理包括定義過程、計畫度量、執行軟體過程、套用度量、控制過程和改善過程,其中計畫度量和套用度量是軟體過程管理中的重要步驟,也是軟體過程度量的核心內容。計畫度量建立在對已定義軟體過程的理解之上,產品、過程、資源的相關事項和屬性已經被識別,收集和使用度量以進行過程性能跟蹤的規定都被集成到軟體過程之中。套用度量通過過程度量將執行軟體過程所獲得的數據,以及通過產品度量將產品相關數據用來控制和改善軟體過程。

軟體過程度量的內容

軟體過程度量主要包括三大方面的內容,一是成熟度度量(maturity metrics),主要包括組織度量、資源度量、培訓度量、文檔標準化度量、數據管理與分析度量、過程質量度量等等;二是管理度量(management metrics),主要包括項目管理度量(如里程碑管理度量、風險度量、作業流程度量、控制度量、管理資料庫度量等)、質量管理度量(如質量審查度量、質量測試度量、質量保證度量等)、配置管理度量(如式樣變更控制度量、版本管理控制度量等);三是生命周期度量(life cycle metrics),主要包括問題定義度量、需求分析度量、設計度量、製造度量、維護度量等。

軟體過程度量流程

軟體過程的度量,需要按照已經明確定義的度量流程加以實施,這樣能使軟體過程度量作業具有可控制性和可跟蹤性,從而提高度量的有效性。軟體過程度量的一般流程主要包括:確認過程問題;收集過程數據;分析過程數據;解釋過程數據;匯報過程分析;提出過程建議;實施過程行動;實施監督和控制。這一度量過程的流程質量能保證軟體過程度量獲得有關軟體過程的數據和問題,並進而對軟體過程實施改善。

相關詞條

相關搜尋

熱門詞條

聯絡我們