軟件度量

軟件度量

軟件學術語
軟件度量(softwaremeasurement)是對軟件開發項目、過程及其産品進行數據定義、收集以及分析的持續性定量化過程,目的在于對此加以理解、預測、評估、控制和改善。沒有軟件度量,就不能從軟件開發的暗箱中跳将出來。通過軟件度量可以改進軟件開發過程,促進項目成功,開發高質量的軟件産品。度量取向是軟件開發諸多事項的橫斷面,包括顧客滿意度度量、質量度量、項目度量、以及品牌資産度量、知識産權價值度量,等等。度量取向要依靠事實、數據、原理、法則;其方法是測試、審核、調查;其工具是統計、圖表、數字、模型;其标準是量化的指标。
    中文名:軟件度量 外文名:software metric 适用領域: 所屬學科: 作用:從軟件開發的暗箱中跳将出來 目的:理解、預測、評估、控制和改善

方法體系

項目度量

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

規模度量

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

軟件規模度量有助于軟件開發團隊準确把握開發時間、費用分布以及缺陷密度等等。軟件規模的估算方法有很多種,如:功能點分析(FPA:functionpointsanalysis)、代碼行(LOC:linesofcode)、德爾菲法(Delphitechnique)、COCOMO模型、特征點(featurepoint)、對象點(objectpoint)、3-D功能點(3-Dfunctionpoints)、Bang度量(DeMarco'sbangmetric)、模糊邏輯(fuzzylogic)、标準構件法(standardcomponent)等,這些方法不斷細化為更多具體的方法。

成本度量

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

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

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

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

顧客滿意度度量

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

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

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

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

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

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

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

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

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

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

層級内容

第一層

質量要素

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

第二層

衡量标準

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

第三層

量度标準

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

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

凱悅(LawrenceE.Hyatt)和羅森貝克(LindaH.Rosenberg)在《識别項目風險以及評價軟件質量的軟件質量模型與度量》(ASoftwareQualityModelandMetricsforIdentifyingProjectRisksandAssessingSoftwareQuality)中比較了這3種最常用的軟件質量模型,其基本情況如表5-14所示。

度量标準/目标麥考爾勃姆ISO9126

正确性(Correctness)XX可維護性

可靠性(Reliability)XXX

完整性(Integrity)XX

可用性(Usability)XXX

效率性(Efficiency)XXX

可維護性(Maintainability)XXX

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

互操作性(Interoperability)X

适應性(Flexibility)XX

可重用性(Reusability)XX

可移植性(Portability)XXX

明确性(Clarity)X

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

文檔化(Documentation)X

恢複力(Resilience)X

易懂性(Understandability)X

有效性(Validity)X可維護性

功能性(Functionality)X

普遍性(Generality)X

經濟性(Economy)X

表7-43種軟件質量模型之比較

軟件質量度量方法

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

過程度量

軟件過程性能

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

過程度量

弗羅哈克(WilliamA.Florac)、帕克(RobertE.Park)和卡爾頓(AnitaD.Carleton)在《實用軟件度量:過程管理和改善之度量》(PracticalSoftwareMeasurement:MeasuringforProcessManagementandImprovement)中描述了過程管理和項目管理的關系。

認為軟件項目團隊生産産品基于三大要素:産品需求、項目計劃和已定義軟件過程。度量數據在項目管理中将被用來:(1)識别和描述需求,(2)準備能夠實現目标的計劃,(3)執行計劃,(4)跟蹤基于項目計劃目标的工作執行狀态和進展。而過程管理也能使用相同的數據和相關度量來控制和改善軟件過程本身。這就意味着,軟件組織能使用建構和維持度量活動的共同框架來為過程管理和項目管理兩大管理功能提供數據。

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

内容

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

流程

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

相關詞條

相關搜索

其它詞條