張 軍,米 杰,袁春花,王 柯,黃 陽,鮑自翔
(中國石油西南油氣田分公司通信與信息技術(shù)中心,四川成都 610057)
軟件工作量評估屬于軟件工程的研究范疇,是軟件項目管理的核心所在,也是編制成本預算、策劃合理項目進度的基礎[1]。特別是在大型企業(yè)中,對業(yè)務軟件需求旺盛,需要不同的業(yè)務軟件來支撐業(yè)務運行。但在編制成本和招標過程中,功能點文檔不完整,對軟件本身的工作量和成本評估始終是個難題。大多數(shù)情況下會依靠專家組成員的意見,而由于軟件技術(shù)更新迭代快,專家組自身的項目經(jīng)驗和待開發(fā)項目可能也存在知識不對稱的情況,從而作出不準確的判斷。
在需求分析還沒有完全準備好之前就進行軟件規(guī)模估計是一個很普遍的現(xiàn)象,因為在一個項目的開始階段,對用戶功能需求(Functional User Requirement,F(xiàn)UR)的了解僅處在一個初步、不完全、近似的狀態(tài),但為了進行招投標或制定開發(fā)計劃,軟件功能的量化估計卻是非常必要的。隨著軟件開發(fā)過程的推進,用戶功能需求規(guī)格說明書逐步完整與精確,甚至模型與代碼都已完備,高精度的度量也逐步成為可能,估計反而不再是那么必要,這就是所謂軟件功能點估計的悖論[2]。
傳統(tǒng)功能點法的核心缺陷就是在項目早期進行評估的可行性問題。因為在計算功能點時不能只有用戶需求文檔,還需要完整的軟件系統(tǒng)規(guī)格說明文檔。比如在識別項目的范圍和邊界時,需要詳細的用例圖;在進行功能點計算時,涉及到內(nèi)外部的接口文件(ILF,ELF)及數(shù)據(jù)交易文件(EI,EO,EQ)。通常在項目早期只有用戶需求文檔,無法真正利用傳統(tǒng)功能點法進行軟件規(guī)模評估。
為解決這些問題,根據(jù)工作需要,本文在傳統(tǒng)軟件工作量評估功能點方法基本思路的指導下,采用基于歷史項目數(shù)據(jù)挖掘的方法對業(yè)務信息管理類軟件需求階段的工作量評估思路和方法進行研究。首先,基于歷史項目數(shù)據(jù)挖掘與分析,梳理出信息管理類軟件各個功能點的功能特征因子,并研究其標準的描述方法;然后,建立功能點工作量權(quán)值回歸預測模型和項目總工作量預估模型;最后,以中國石油石化領域的業(yè)務信息管理類軟件開發(fā)項目為例,進行工作量預估模型驗證。
整體思路如圖1 所示,通過建立歷史數(shù)據(jù)回歸模型、工作量預估模型與工作量調(diào)整模型共同實現(xiàn)根據(jù)軟件功能點需求表進行軟件工作量評估。在該流程中,首先通過歷史數(shù)據(jù)分析提取出新的特征因子,然后逐一研究每類特征因子在所有歷史項目中的特征權(quán)重值,以及不同項目中各個特征因子的權(quán)重值,接下來利用該權(quán)重值對新項目的總工作量進行預估,最后通過工作量調(diào)整模型實現(xiàn)對工作量的調(diào)整。
如圖1 所示,在工作量調(diào)整模型中,通過專家評審對功能點法的14 個通用特征進行評估,完成對系統(tǒng)復雜度的判斷,采用待評審項目的復雜度調(diào)整因子除以歷史項目調(diào)整因子平均值作為本研究方法下的技術(shù)復雜度相對調(diào)整因子,以下簡稱為“相對調(diào)節(jié)因子”。
Fig.1 Overall idea of function point method based on data mining圖1 基于數(shù)據(jù)挖掘的功能點法整體思路
本次研究總結(jié)了近5 年共20 個項目,經(jīng)過以下規(guī)則清洗后,得到了有效的歷史功能點工作量數(shù)據(jù)1 649 條,可用于建立模型。具體清洗規(guī)則如下:①功能點各個開發(fā)階段的工作量合并處理;②每個功能模塊的工作量不包含項目管理人員、軟件維護部署等支撐性工作崗位的工作量。因為這些崗位的工作量與項目本身屬性等有很大關聯(lián),可能導致較大誤差;③對歷史項目進行三級分解,形成一、二、三級功能模塊,需要對三級功能模塊的具體功能點進行工作量梳理;④刪除升級改造類項目。
通過數(shù)據(jù)清洗,保證了分析的數(shù)據(jù)項目來源屬于同一性質(zhì),且均為信息處理軟件系統(tǒng),而非實時控制系統(tǒng)等其他類型,從而構(gòu)造了一個比較純粹的樣本空間。然后對梳理后功能點的實際工作內(nèi)容進行總結(jié),并結(jié)合信息系統(tǒng)的五大主要功能(輸入、存儲、處理、輸出和控制)對功能特征進行分類,最終總結(jié)歸納出12 類功能特征,并規(guī)范了其特征分類及其功能描述說明如表1 所示。
Table 1 Function feature classification description表1 功能特征分類說明
本研究中,定義由數(shù)據(jù)收集與清洗形成的三級功能模塊列表中特征代碼為A1、A2、A3、A4、B1、B2、B3、C1、C2、D1、D2、D3的功能點數(shù)依次為a1、a2、a3、a4、b1、b2、b3、c1、c2、d1、d2、d3,功能點數(shù)全部為大于等于1 的整數(shù),然后建立預測模型如下:
當特征代碼為A1、A3、B2、C2、D2時:
其中,x表示三級模塊的功能點數(shù)。
當特征代碼為B1時:
其中,m 表示每個項目中三級模塊功能特征為B1的功能點數(shù)平均值。
當特征代碼為C1時,根據(jù)清洗后的功能點工作量表,通過對本課題涉及到的歷史項目進行分析,發(fā)現(xiàn)C1目前僅存在功能點數(shù)為1 這一種情況,所涉及的工作量在1.18 人/月~0.45人/月之間。對所有功能點對應工作量進行中心平均處理后,得到中心點工作量為0.716人/月。
當特征代碼為A2、A4時,A2特征的功能模塊工作量與該功能接口數(shù)量和訪問方式有關,A4特征的功能模塊工作量與綜合報表類型、圖表種類有密切關系。由于在本研究中沒有獲取到這兩類特征更深入的信息資料,故不納入本次研究范圍。
當特征代碼為B3、D1、D3時,由于本項目中不涉及B3特征的功能點,且涉及的D1、D3由于功能特征出現(xiàn)頻次有限,無法明確特征,故不納入本次研究范圍。
綜上,由于本次研究總共獲取三級功能模塊數(shù)為1 649 個,數(shù)據(jù)量和數(shù)據(jù)顆粒度有限,因此本課題目前僅針對A1、A3、B1、B2、C2、D2和C1進行特征權(quán)值研究。其中,C1權(quán)重采用中心值0.716 人/月,其他特征權(quán)重均采用一階線性回歸。特征權(quán)值回歸參數(shù)如表2所示。
Table 2 Regression parameters of the feature weight表2 特征權(quán)值回歸參數(shù)
然后,將每個項目A1、A3、B1、B2、C2、D2和C1特征的功能點數(shù)與工作量分別合并,形成每個項目中每類功能特征的總功能點與總工作量關系表,并對項目中每類特征總工作量進行回歸預測分析。具體線性回歸參數(shù)如表3所示。
Table 3 Regression parameters of the total workload for each type of feature表3 每類特征總工作量回歸參數(shù)
為驗證以上回歸模型的準確性,本文采用一個新項目進行模型驗證。首先對待測項目各個三級功能模塊的功能特征進行識別,并映射出每個三級功能模塊的工作量,然后對同類特征功能模塊的功能點數(shù)相加,形成同類特征的功能點總數(shù)和總工作量(本文僅對A1、A3、B1、B2、C2、D2和C1七大特征的功能點工作量進行模型驗證)。待測項目特征統(tǒng)計如表4所示。
根據(jù)三級模塊總功能點數(shù)和總工作量回歸參數(shù),通過總工作量回歸計算出待測項目未調(diào)整前的預估總工作量,如表5 所示。統(tǒng)計以上特征中預估未調(diào)整工作量總和為102.38人/月。
Table 4 Statistics of the characteristics of items to be tested表4 待測項目特征統(tǒng)計
Table 5 Estimation of the total workload of features表5 特征總工作量預測
由于此次用于驗證的項目和歷史項目為同類級別的項目,故設相對調(diào)整因子為1,則項目預測總工作量=總工作量*相對調(diào)節(jié)因子=102.38*1=102.38。
根據(jù)項目實際情況,在清洗后的工作量表中,符合功能特征為A1、A3、B1、B2、C2、D2和C1七大特征工作量的實際審查總量為137,可計算出本次模型驗證的準確度為七大特征調(diào)整后工作量占實際工作量的百分比,即為102.38/137*100%=74.7%。
本研究主要通過數(shù)據(jù)挖掘理論中的回歸預測任務方法,針對中石油、中石化領域的信息管理類軟件歷史項目進行數(shù)據(jù)清洗分析;基于軟件功能點法評估辦法,提取出12 個基礎功能特征點,并梳理了各個功能特征點的描述方法;通過歷史數(shù)據(jù)建立工作量評估的回歸預測模型,并根據(jù)實際案例對項目工作量回歸預測模型進行驗證。
該方法的優(yōu)勢在于克服了傳統(tǒng)功能點法在前期由于缺失項目設計文檔導致無法進行評估的缺點,且不需要傳統(tǒng)方法在評估中的復雜計算過程,可幫助相關企事業(yè)單位在需求階段便捷地對項目總體工作量進行評估,為管理層決策提供參考依據(jù)。另外,本文方法已應用于各個同類項目的領域,且隨著同類項目數(shù)據(jù)的增多,模型參數(shù)將不斷進行自我優(yōu)化,逐漸提高模型所覆蓋特征的廣度和準確度。