目前,軟件項目需求正飛速增長,相應引起了軟件開發活動的急劇增長,使軟件過程(即用于開發和維護軟件及其相關產品的一組活動、方法、實踐及轉換得到更多的關注。因為軟件過程在成本估算、項目進度和軟件質量等方面的把握必須準確,同時產品必須滿足用戶對其功能和質量的要求,所以深入研究軟件度量模型、建立基于度量的量化管理,是控制軟件過程、提高軟件質量的有效保證。
IEEE對度量的定義是:一個函數,它的輸入是軟件數據、輸出是單一的數值,能用以解釋軟件所具有的一個給定屬性對質量影響的程度。而軟件度量按它的三個研究重點(項目、產品和過程)可以分為三類,即項目度量,其度量數據反映項目狀況,用于項目跟蹤;產品度量,其度量數據反映質量狀態,用于產品質量跟蹤;過程度量,其度量數據反映過程性能,用于過程改進和提高生產率。
由上可知,對軟件過程的改進是在以明確的目標為指導、以過程度量為支撐的條件下進行的,而軟件過程度量充分記錄了過程的行為信息,為制定下一輪軟件過程改進的目標提供了依據。因此從某種意義上講,軟件過程改進和控制的程度就是軟件過程度量的體現。
1 模型框架
為有效地建立軟件度量模型,有必要剖析建立軟件度量模型的四個階段,即建立度量需求、準備度量、實施度量和分析度量結果,其中的每一階段都有不同的要求和活動:
(1)建立度量需求。度量需求表達了在具體的應用環境下對軟件產品質量的定量要求,是有效保證和客觀評價軟件質量的前提,應該在軟件開發前或初期進行定義。度量需求規格說明可定量定義為所需質量特性的直接度量及其直接度量目標值,其中的直接度量值用于驗證最終產品是否達到度量需求。
(2)準備度量。由軟件質量特性和子特性描述的軟件度量需求通常無法直接測量,需要進一步確定相關的度量元。在度量的準備階段,應根據應用環境,為軟件開發的各個階段及其最終產品分別確定適當的度量元,建立度量元、質量子特性、質量特性的映射模型,確定合理的評估準則。
(3)實施度量。數據收集過程涵蓋規定從數據收集點到度量評價的數據流程;確定有關數據的收集條件;給出工具的使用說明和數據的存放規程三個方面。在全面實施度量前,應先分析數據是否一致,度量要求是否確切,檢查需要主觀判斷的數據說明和要求是否足夠清晰,檢查樣板度量過程的費用,分析修改或完善費用,檢查所收集數據的準確性、度量單位的合適性,所收集數據之間的一致性,確認數據樣本的隨機性、最小樣本數、相似性等。
(4)分析度量結果。度量結果的分析不僅要做出度量和評估的結論,還要進行度量元的確認,以確定哪些度量元適用于當前軟件的度量,并可用于預測軟件質量特性值,根據這些度量值和由此計算得到的直接度量的預測值來決定被度量對象是否需要做進一步的度量和分析。在軟件過程度量的實施中,另一個重要的內容是軟件度量指標的確定。軟件度量指標可劃分成彼此相互聯系的七大領域:
、儋Y源與費用度量。反映人力資源投入與所完成工作之間的關系,子領域包括人員、財務狀況以及環境支持等。
、谟媱澟c進度度量。反映主要里程碑與單元任務完成的情況,子領域包括里程碑狀態、單元任務進度以及項目任務遞增變化的情況等。
、圮浖䲠U展與穩定性度量。反映軟件的穩定性及變化情況,子領域包括產品規模與穩定性、功能范圍與穩定性。
、墚a品質量度量。反映交付的產品能夠很好地支持用戶需求而沒有錯誤,子領域可根據產品質量需求指標從不同的視角進行設計。
、菁夹g滿足度度量。反映開發產品所采用技術的先進性和充分性,子領域包括技術選擇對開發的影響、計算機資源的利用、技術先進性與充分性等。
、揲_發性能度量。反映開發小組的過程成熟程度,能夠勝任項目的開發任務,子領域包括過程成熟度、生產力與效率以及風險情況。
、呖蛻魸M意度度量。反映客戶對項目時間、產品質量與性能以及服務的滿意程度,子領域包括客戶反饋、客戶支持等;谝陨喜襟E,筆者提出了一個可操作的、結構化的、客觀的、針對過程的軟件過程度量模型(Software ProcessMeasure-mentMode,l SPMM)。
2 度量模型
采用一般特征描述模式對軟件過程模型進行描述,雖然給出了關鍵過程域中過程活動狀態的量化信息,但這些量化信息僅僅是一些非結構化的舉例,不能支持有效的過程理解、過程評價、過程控制和過程改進。本文提出的度量模型SPMM有助于軟件組織有效地理解過程、評價過程、控制過程和實施過程改進,該模型在以前的軟件過程度量模型基礎上根據CMM對應的關鍵過程域的度量要求和軟件組織的過程改進目標,詳盡描述了軟件過程的度量內容,并分析確定了其所對應的CMM的關鍵過程域。
過程質量是過程的素質,而過程素質在實際應用中能否發揮要受到內、外兩類因素的影響,內在因素的集合就是過程質
量,過程質量在過程外在因素的作用下表現為過程性能(即過程本質在一定環境下的反映,受到過程的本質和實施環境以及其他一些未知因素的綜合影響)。因為過程性能是過程在內、因素共同作用下的實際執行結果,是理解、控制和改善過程的直接對象,所以在該軟件過程度量模型中,通過以過程性能為核心,從中分解出它的特征、子特征和度量來建立過程度量的層次模型SPMM。
七個描述層次:軟件過程性能、軟件過程性能范疇、軟件過程性能類型、特性、子特性、度量和度量元。其中,軟件過程的能力度和成熟度取決于軟件過程的性能,對軟件過程性能的評價表現在多個過程性能范疇,不同過程性能范疇由各種類型的軟件過程性能構成,每個類型的過程性能基于不同的性能特性,特性可能有子特性,通過度量可以評價軟件過程性能的特性和子
特性,同時度量本身也有多種數據表現形式(即多個度量元)。
3 過程度量模型的度量元對過程進行度量應先明確度量的實體對象。
任何實例過程都包括過程輸入、過程組成、過程消耗、過程保留與過程輸出的實例化五個部分,而且其中每個部分都存在可度量的實體。
(1)過程投入:過程啟動前接收的信息,包括使用或儲備的資源、相關規范或前續過程的產出等。
(2)過程產出:過程運作后產生的結果,包括產品、副產品和影響等。
(3)過程組成:包括過程的活動和流程,它表示過程的結構。
(4)過程消耗:過程運作中消耗的資源、人力投入、時間等。
(5)過程保留:過程完成后留下的資源,如工具、方法、人員的經驗等。
因為軟件過程改進是持續、漸進的過程,對應的軟件過程度量也應是一個漸進的過程,所以在度量的過程中,要根據實際情況分別細化SPMM的特性、子特性、度量以及度量元。需要說明的是,上述度量和度量元只是一個實例,并未包含所有的度量以及度量元,因此軟件組織在實際應用此度量模型時,應根據自身特點、軟件過程改進的目標、過程度量的需求與目的來選擇和定義度量,并適當增加、修改和裁剪度量元,以滿足自身的需要。不同的度量方法適用于不同的模型、對應于不同的度量對象和度量指標,有各自優缺點,所以沒有最好的、只有最合適的軟件度量方法。
4 度量模型的應用
實際的項目管理中,項目執行時過程的跟蹤監督需要度量。良好的項目管理主要針對項目要素進行跟蹤度量,通過分析度量數據可以及時發現項目進展中存在的問題,從而有針對性地制訂解決方案。需要度量的項目要素包括:
(1)項目進度度量。對項目進度進行定期的跟蹤度量,以及時發現當前進度與計劃的偏差,及時采取處理措施、趕工或調整進度計劃。
(2)項目工作量度量。工作量是衡量項目成本、人員工作情況的基礎,準確度量出項目真實的工作量,不但可以掌握當前項目的情況而且對于今后估算其他項目數據也有重要意義。
(3)人員生產率度量。人力資源是項目中最重要的資源,掌握人員的生產能力對項目管理中人員管理、資源管理有重要的參考價值。項目需要一個新的度量時,可以通過裁剪過程和直接將使用工具的度量點合并到過程中以更新或者改變過程,通過部署開發工具以使這些度量點的訪問變得更加容易,通過使用自動化工具定義收集的數據信息和度量軟件過程的關鍵組件,并提供對度量點的方便訪問。盡管有時度量并不反映實際工作,但如果一個軟件組織所能跟蹤的只有項目預算和時間計劃,那是十分嚴重的問題(因為此時花費在一個任務上的資金或時間不能反映實際執行的工作量),然而通過使用該軟件過程度量模型就可得到關于實際花費資金與項目進展的準確視圖。
5 結束語
軟件度量的根本目的是通過量化的分析和總結以指導提高生產率和產品質量、降低成本和產品研發周期,而軟件過程度量圍繞持續改善軟件質量、提高生產效率和降低成本這三方面展開。筆者應用軟件度量的思想,提出以CMM為指導的軟件過程度量模型SPMM,并確定該模型的度量元及其對應于CMM的KPA。但SPMM不是一個度量全集,而只是一個度量的實例,所以軟件組織在使用SPMM時,應根據自身的軟件過程成熟度、軟件過程改進的期望目標和商業目標,選擇度量元、并確定其優先級。
軟件度量模型SPMM給出的量化數據能保證軟件產品質量和有效的過程度量,軟件組織可利用這些數據來具體指出當前系統的薄弱環節,并對開發過程和質量保證過程進行有效控制,從而減少項目開支、確保開發進度、提高產品質量。
文章來源于領測軟件測試網 http://www.kjueaiud.com/