軟件開發項目工時估算方法和裝置、計算機設備和介質與流程
1.本發明涉及計算機技術領域,特別是涉及一種軟件開發項目工時估算方法和裝置、計算機設備和介質。
背景技術:
2.項目工時估算是項目管理的核心任務之一,為項目可行性、預算、周期規劃等提供依據。不同于傳統制造類行業,軟件開發類項目由于其各種不確定性,如客戶需求的模糊性、開發工具的多樣性(開發語言、環境、跨系統通信等)、軟件測試的不可控性等,往往很難對項目工時進行有效的預估和管理。
3.相關技術中的軟件開發項目工時評估方法一般是基于功能點度量方法(function point analysis),采用ifpug或nesma軟件估算標準,由管理人員手動將項目需求說明書拆分成功能點,然后基于專家經驗或歷史數據,建立規則模型或神經網絡模型,對項目的總工時進行預估。然而,該方法在項目推進的實際情況中,存在以下問題:1)同一類的功能點在歷史項目開發過程中,會隨著技術迭代逐漸模塊化,從而降低其在今后的項目中所需的開發工時;而現有方法均無法處理上述情況,從而導致單點工時估算結果偏高;2)軟件開發項目的需求有很高的幾率會隨著開發的推進而發生變化,導致功能點或其影響因子隨之變化;若在項目工時統計時沒有針對性的處理,很難將實際開發填報的工時與功能點匹配,從而影響訓練數據的準確性;3)軟件聯調、測試等階段,由于不可控性太高,導致debug或返工所需的工時波動極大,若簡單按單功能點進行歷史數據統計,誤差過大,影響最終結果的準確性。
4.需要說明的是,在上述背景技術部分公開的信息僅用于加強對本公開的背景的理解,因此可以包括不構成對本領域普通技術人員已知的現有技術的信息。
技術實現要素:
5.為了解決上述問題至少之一,本發明第一方面提供一種軟件開發項目工時估算方法,包括:
6.響應于用戶的第一操作導入軟件開發項目需求說明書,并響應于用戶的第二操作按照預設等級拆解開發功能點;
7.響應于用戶的第三操作使用預設置的單點工時估算模型獲取各最低等級的開發功能點的工時,并獲取次低等級的開發功能點的開發功能點的功能工時;
8.響應于用戶的第四操作根據預設的測試參數和聯調參數、以及各次低等級的開發功能點的功能工時使用預設置的總工時估算模型獲取項目總工時。
9.進一步的,所述響應于用戶的第一操作導入軟件開發項目需求說明書,并響應于用戶的第二操作按照預設等級拆解開發功能點進一步包括:
10.響應于用戶的第二操作根據所述軟件開發項目需求說明書的節點格式拆解至少兩級的開發功能點。
11.進一步的,響應于用戶的第五操作調整所述開發功能點。
12.進一步的,所述響應于用戶的第三操作使用預設置的單點工時估算模型獲取各最低等級的開發功能點的工時,并獲取次低等級的開發功能點的功能工時進一步包括:
13.響應于用戶的第六操作計算各最低等級的開發功能點的工時和各次低等級的開發功能點的基礎工時;
14.響應于用戶的第七操作分別設置各次低等級的開發功能點的調整因子、并根據各次低等級的開發功能點的調整因子按照預設的第一公式獲取各次低等級的開發功能點的調整參數;
15.響應于用戶的第八操作分別根據各次低等級的開發功能點的調整參數獲取各次低等級的開發功能點的功能工時。
16.進一步的,所述響應于用戶的第六操作計算各最低等級的開發功能點的工時和各次低等級的開發功能點的基礎工時進一步包括:
17.根據預設置的開發工時表,所述開發工時表包括各最低等級的開發功能點和對應的工時點,響應于用戶的第六操作從所述開發工時表中查各最低等級的開發功能點對應的工時點并利用預設的基礎工時公式獲取各次低等級的開發功能點的以獲取基礎工時。
18.進一步的,所述響應于用戶的第四操作根據預設的測試參數和聯調參數、以及各次低等級的開發功能點的功能工時使用預設置的總工時估算模型獲取項目總工時進一步包括:
19.響應于用戶的第九操作設置所述各次低等級的開發功能點的測試參數、并根據所述各次低等級的開發功能點的功能工時和測試參數獲取各次低等級的開發功能點的測試工時;
20.響應于用戶的第十操作設置所述各次低等級的開發功能點的聯調參數、并根據所述各次低等級的開發功能點的測試工時和聯調參數獲取各次低等級的開發功能點的聯調工時;
21.根據各次低等級的開發功能點的聯調工時獲取所述項目總工時。
22.進一步的,所述估算方法還包括:
23.響應于用戶的第十一操作接收開發過程中已完成開發的次低等級的開發功能點的實際工時,根據預設置的第三公式獲取對應次低等級的開發功能點的功能點校正因子,并根據所述校正因子更新所述調整參數;
24.響應于用戶的第三操作重新獲取各未開發的最低等級的開發功能點的工時,并獲取各未開發的次低等級的開發功能點的功能工時;
25.根據已完成開發的次低等級的開發功能點的實際工時、以及各未開發的次低等級的開發功能點的功能工時,響應于用戶的第四操作根據預設的測試參數和聯調參數使用預設置的總工時估算模型更新所述項目總工時。
26.進一步的,所述第三公式為:
[0027][0028]
vaf
′
=vaf
×
γ
uf
[0029]
其中,γ
uf
為功能點校正因子,t
uf_real
為已完成開發的次低等級的開發功能點的實
際工時,t
basic
為所述次低等級的開發功能點的基礎工時,step為調整步長,vaf為調整參數,vaf
′
為更新后的調整參數;
[0030]
所述調整步長為:
[0031]
step=min(ε1,ε2,
……
εf);
[0032][0033]
其中,ε為所述次低等級的開發功能點的偏移系數,t
uf_real
為次低等級的開發功能點的實際工時,t
uf
為次低等級的開發功能點的功能工時,t
basic
為次低等級的發功能點的基礎工時。
[0034]
進一步的,所述估算方法還包括:
[0035]
響應于用戶的第十二操作接收開發完結項目中各次低等級的開發功能點的實際測試工時、根據預設置的第四公式更新所述測試參數;
[0036]
響應于用戶的第十三操作接收開發完結項目中各次低等級的開發功能點的實際聯調工時、根據預設置的第五公式更新所述聯調參數。
[0037]
進一步的,所述第四公式為:
[0038][0039]
tc
′
=tc
×
γ
test
[0040]
其中,γ
test
為測試校正因子,t
test
為測試總工時,n
bug
為所述次低等級的開發功能點的平均bug數量,t
bug
為解決單個bug的平均花費工時,t
uf_real
為所述次低等級的開發功能點的實際功能工時,step為調整步長,tc為測試參數,tc
′
為更新后的測試參數;
[0041]
和/或
[0042]
所述第五公式為:
[0043][0044]
ic
′
=ic
×
γ
unit
[0045]
其中,γ
unit
為聯調校正因子,t
unittest
為聯調總工時,t
ut_real_f
為所述次低等級的開發功能點的實際測試工時,step為調整步長,ic為聯調參數,ic
′
為更新后的聯調參數;
[0046]
本發明第二方面提供一種應用第一方面所述的估算方法的軟件開發項目工時估算裝置,包括拆解單元,單點工時估算單元和總工時估算單元,其中,
[0047]
所述拆解單元,被配置為響應于用戶的第一操作導入軟件開發項目需求說明書,并響應于用戶的第二操作按照預設等級拆解開發功能點;
[0048]
所述單點工時估算單元,被配置為響應于用戶的第三操作使用預設置的單點工時估算模型獲取各最低等級的開發功能點的工時,并獲取次低等級的開發功能點的功能工時;
[0049]
所述總工時估算單元,被配置為響應于用戶的第四操作根據預設的測試參數和聯調參數、以及各次低等級的開發功能點的功能工時使用預設置的總工時估算模型獲取項目總工時。
[0050]
本發明第三方面提供一種計算機可讀存儲介質,其上存儲有計算機程序,該程序
被處理器執行時實現第一方面所述的估算方法。
[0051]
本發明第四方面提供一種計算機設備,包括存儲器、處理器及存儲在存儲器上并可在處理器上運行的計算機程序,所述處理器執行所述程序時實現第一方面所述的估算方法。
[0052]
本發明的有益效果如下:
[0053]
本發明針對目前現有的問題,制定一種軟件開發項目工時估算方法和裝置、計算機設備和介質,通過單點工時估算模型獲取軟件開發項目的各最低等級的開發功能點的工時和各次低等級的開發功能點的功能工時,在考慮測試參數和聯調參數的情況下,通過總工時估算模型獲取項目總工時,從而彌補了現有技術中存在的問題,有效提高軟件開發項目工時估算的準確性,具有廣泛的應用前景。
附圖說明
[0054]
為了更清楚地說明本發明實施例中的技術方案,下面將對實施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的一些實施例,對于本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。
[0055]
圖1示出本發明的一個實施例所述估算方法的流程圖;
[0056]
圖2示出本發明的一個實施例所述估算裝置的結構框圖;
[0057]
圖3示出本發明的另一個實施例所述的一種計算機設備的結構示意圖。
具體實施方式
[0058]
為了更清楚地說明本發明,下面結合優選實施例和附圖對本發明做進一步的說明。附圖中相似的部件以相同的附圖標記進行表示。本領域技術人員應當理解,下面所具體描述的內容是說明性的而非限制性的,不應以此限制本發明的保護范圍。
[0059]
根據相關技術中存在的問題,本發明的一個實施例提供了一種軟件開發項目用時估算方法,包括:響應于用戶的第一操作導入軟件開發項目文檔,并響應于用戶的第二操作按照預設任務拆解開發功能點;響應于用戶的第三操作使用預設置的單點工時估算模型獲取各第一的開發功能點的工時,并獲取第二任務的開發功能點的功能工時;響應于用戶的第四操作根據預設的用時參數、以及各第二任務的開發功能點的功能工時使用預設置的總工時估算模型獲取項目總工時。
[0060]
在本實施例中,預設任務為根據任務級別進行劃分,例如以樹形結構進行任務級別劃分,從最高等級到最低等級進行劃分,其中高等級包括低等級,層層拆解,將最基礎的開發功能點作為最低等級的第一任務,將次低等級的開發功能點作為第二任務,通過單點工時估算模型獲取軟件開發項目的各第一任務的開發功能點的工時,并獲取第二任務的功能工時,在考慮實際軟件開發中測試和聯調的用時參數的情況下,通過總工時估算模型獲取項目總工時,從而實現對軟件開發用時的估算,能夠彌補相關技術中存在的問題,有效提高軟件開發項目用時估算的準確性,具有廣泛的應用前景。
[0061]
在一個具體的實施例中,如圖2所示為本實施例應用的估算裝置,包括拆解單元、單點工時估算單元和總工時估算單元,通過“拆解開發功能點—估算各開發功能點的單點
工時—估算開發軟件項目的總工時”對軟件項目的開發用時進行逐步估算以準確估算總工時。如圖1所示,下面以開發智慧園區的安防監控系統的軟件項目為例進行說明。
[0062]
第一步,導入軟件開發項目需求說明書。
[0063]
在本實施例中,軟件開發項目文檔為軟件開發項目需求說明書,將軟件開發立項的軟件開發項目需求說明書作為估算裝置的輸入導入估算裝置,例如用戶通過在估算裝置的人機交互界面上傳軟件開發項目需求說明書。所述軟件開發項目需求說明書包括軟件開發的立項報告,包括不同級別的功能單元的劃分,例如以樹結構進行劃分,具體的,本實施例的安防監控系統包括四個等級:第一等級為完整可獨立運行的業務系統,實現形式可以是打包售賣的系統、或第三方接入的子系統等,在本實施例中為安防系統;第二等級為可復用的,具備一定業務邏輯的業務模塊,各模塊之間有標準的協議接口,為第一等級安防系統的子等級,例如包括車載模塊、消防模塊和門禁模塊;第三等級為實現業務模塊中某一業務組件或微服務的功能模塊,為第二等級模塊化功能的子等級,例如門禁模塊的子等級包括人臉識別單元和掃碼單元,即第二任務;第四等級為面向開發的、可量化的功能子模塊,為第三等級功能模塊的子等級,即第一任務,例如人臉識別單元的子等級包括前端功能、后端功能和數據庫,前端功能包括前端邏輯、交互邏輯、涉及頁面和報表等功能節點,后端功能包括后端算法、模型開發和訓練,數據庫包括人臉庫的建立和定制指標。即響應于用戶的第一操作導入軟件開發項目需求說明書。
[0064]
第二步,根據項目需求說明書按照預設等級拆解開發功能點。
[0065]
在本實施例中,通過估算裝置的拆解單元對項目需求說明書進行拆解,例如用戶通過在估算裝置的人機交互界面點擊“拆解”按鈕按照預設等級進行開發功能點拆解并輸出具有至少兩級開發功能點的功能點列表,具體的,根據項目需求說明書的格式進行拆解,例如根據項目需求說明書中設置的word文檔的節點格式進行拆解,或者例如根據項目需求說明書中設置的關鍵字進行識別以實現開發功能點的拆解。即響應于用戶的第二操作按照預設等級拆解開發功能點。
[0066]
為進一步提高拆解準確性,在一個可選的實施例中,響應于用戶的第五操作調整所述開發功能點。
[0067]
在本實施例中,考慮到由估算裝置的拆解單元對項目需求說明書的自動拆解可能存在不準確或遺漏的問題,用戶可以通過手動操作對功能點列表進行修改和調整,有效提高拆解準確性。
[0068]
本實施例將功能點列表輸入項目工時填報管理系統,以便實際開發工作中按正確的維度收集工時填報數據,并進行進一步的估算。
[0069]
第三步,使用單點工時估算模型獲取各次低等級的開發功能點的功能工時。
[0070]
在本實施例中,根據功能點列表,利用單點工時估算模型分別獲取各最低等級的開發功能點的工時,并獲取次低等級的開發功能點的功能工時,例如對第四等級的各功能點進行工時估算,并獲取第三等級的各功能點的功能工時。即響應于用戶的第三操作使用預設置的單點工時估算模型獲取各的最低等級的開發功能點工時,并獲取次低等級的開發功能點的功能工時。具體包括以下子步驟:
[0071]
首先,分別計算各次低等級的開發功能點的基礎工時。
[0072]
在本實施例中,根據預設置的開發工時表,所述開發工時表包括各最低等級的開
發功能點和對應的工時點,從所述開發工時表中查各最低等級的開發功能點對應的工時點并利用預設的基礎工時公式獲取各次低等級的開發功能點的基礎工時。
[0073]
具體的,仍以安防監控系統為例進行說明,例如第三等級的人臉識別單元包括前端功能、后端功能和數據庫,其中,前端功能包括的第四等級開發功能點為:10個前端頁面,每個頁面包括20張報表,每個頁面包括10個業務邏輯以實現搜索和展示功能,每個頁面包括5個表單,例如黑名單和白名單;后端功能包括的第四等級開發功能點為:后端算法業務邏輯開發、后端算法模型建立、后端算法模型訓練;數據庫包括的第四等級開發功能點為:庫建立和庫指標,例如包括5個指標。即人臉識別單元的包括的第四等級的開發功能點包括:10個前端頁面、200張報表、100個業務邏輯、50個表單、后端算法業務邏輯開發、后端算法模型建立、后端算法模型訓練、庫建立和5個庫指標。本領域技術人員應當理解,不同的第四等級開發功能點對應不同的開發工時,本實施例通過預設的開發工時表,包括軟件開發過程中涉及的各第四等級開發功能點以及對應的單位開發工時,例如,一個頁面的單位開發工時為1人天,一個報表的單位開發工時為0.1人天,一個業務邏輯的單位開發工時為0.1人天,一個表單的單位開發工時為0.5人天,后端算法業務邏輯開發的單位開發工時為0.5人天,后端算法模型建立的單位開發工時為1人天,后端算法模型訓練的單位開發工時為1人10天,庫建立的單位開發工時為0.2人天,庫指標的單位開發工時為0.1人天。
[0074]
根據各第四等級開發功能點和對應的單位開發工時能夠獲得每個第四等級開發功能點的工時,并進一步獲得各第三等級開發功能點的基礎工時:
[0075][0076]
其中,f表示第三等級(例如人臉識別單元)開發涉及的各第四等級開發功能點,nf表示第四等級開發功能點,tf表示與各第四等級開發功能點對應的單位開發工時。
[0077]
其次,分別設置各第三等級開發功能點的調整因子、并根據調整因子計算各第三等級開發功能點的調整參數。
[0078]
在本實施例中,根據功能點估算法(function point analysis)的思路,設置各第三等級開發功能點的調整因子以對其進行調整。具體的,分別評定各影響因子對第三等級開發功能點的調整因子的影響程度(di),影響程度分為0-5級:即0-毫無影響、1-偶然影響、2-適度影響、3-一般影響、4-重要影響、5-強烈影響。本實施例的影響因子包括但不限于:1)數據通訊,指開發軟件項目直接與處理器通訊的程度;2)分布式數據處理,指開發軟件項目在內部組件之間的信息傳遞程度;3)性能,即吞吐量、處理時間等指標對開發的影響;4)大業務量配置,即計算機資源對開發軟件項目開發的影響程度;5)事務處理率,即業務交易處理速度對系統設計、實施、安裝和支持等的影響;6)在線數據輸入,即數據通過交互的方式輸入系統的程度;7)最終用戶效率,即對開發軟件項目的人文因素及使用的邊界程度等的考慮程度;8)在線更新,即內部邏輯文件被在線更新的程度;9)復雜處理,即邏輯處理對開發軟件項目開發的影響程度;10)可復用性,即開發軟件項目系統中的應用和代碼經過特殊設計、開發和支持,可以在其他應用系統中復用的程度;11)易安裝性,即開發軟件項目系統的轉換和安裝容易度對開發的影響程度;12)易操作性,即開發軟件項目對運行的影響程度;13)多場地,即系統經特殊設計、開發可以在多個組織、多個地點應用的程度;14)支持變更,即開發軟件項目在設計上考慮支持處理邏輯和數據結構變化的程度。分別按照各影響
因子對第三等級開發功能點的調整因子的影響程度(di)計算第三等級開發功能點的調整因子:
[0079]
vaf=0.01
×
∑di+0.65
[0080]
其中,∑di為14項影響因子的影響程度di的累加和,0.65為調整閾值。
[0081]
基于計算得到的調整因子,分別計算第三等級開發功能點的功能工時:
[0082]
t
uf
=t
basic
×
vaf
[0083]
其中,t
basic
為第三等級開發功能點的基礎工時,vaf第三等級開發功能點的調整因子。
[0084]
第四步,使用總工時估算模型獲取項目總工時。
[0085]
在本實施例中,考慮到軟件項目開發過程中的測試和聯調,將用時參數進一步細化為測試參數和聯調參數,具體包括如下步驟:
[0086]
首先,設置所述各次低等級的開發功能點的測試參數、并根據所述各次低等級的開發功能點的功能工時和測試參數獲取各次低等級的開發功能點的測試工時。
[0087]
在本實施例中,基于上述步驟獲得的各第三等級開發功能點的功能工時,還考慮測試對軟件項目開發的工時影響。具體的,對各第三等級的開發功能點的測試參數(tc)進行評估:1)當估算裝置為首次使用,即沒有項目經驗的情況下,將tc預估一個常量作為初始值,例如1;2)當估算裝置已經具有項目經驗的情況下,即tc為經過項目經驗迭代獲取的估計值。
[0088]
此時,第三等級開發功能點的測試工時為:
[0089]
t
ut
=t
uf
×
tc
[0090]
其中,t
uf
為第三等級開發功能點的功能工時,tc為測試參數。
[0091]
其次,設置所述各次低等級的開發功能點的聯調參數、并根據所述各次低等級的開發功能點的測試工時和聯調參數獲取各次低等級的開發功能點的聯調工時。
[0092]
在本實施例中,基于上述步驟獲得的考慮了測試影響的測試工時的情況下,還考慮聯調對軟件項目開發的工時影響。具體的,對各第三等級開發功能點之間的聯調進行考慮并評估聯調參數(ic),根據聯調參數計算各第三等級開發功能點的聯調工時:
[0093][0094]
其中,t
ut_f
為開發功能點f的功能工時,ic為聯調工時,ic大于1。
[0095]
最后,根據各次低等級的開發功能點的聯調工時獲取所述項目總工時。
[0096]
在本實施例中,所述項目總工時為:
[0097][0098]
其中,t
unit
為第三等級開發功能點的聯調工時,u包括軟件開發項目所有第三等級開發功能點。
[0099]
即響應于用戶的第四操作根據預設的測試參數和聯調參數、以及各次低等級的開發功能點的功能工時使用預設置的總工時估算模型獲取項目總工時。
[0100]
至此,完成對軟件開發項目的總工時的估算。本實施例通過單點工時估算模型獲取軟件開發項目的各最低等級的開發功能點的工時和各次低等級的開發功能點的功能工
時,在考慮測試參數和聯調參數的情況下,通過總工時估算模型獲取項目總工時,從而彌補了現有技術中存在的問題,有效提高軟件開發項目工時估算的準確性,具有廣泛的應用前景。
[0101]
考慮到進一步提高軟件開發項目工時估算的準確性,在一個可選的實施例中,所述估算方法還包括:響應于用戶的第十一操作接收開發過程中已完成開發的次低等級的開發功能點的實際工時,根據預設置的第三公式獲取對應次低等級的開發功能點的功能點校正因子,并根據所述校正因子更新所述調整參數;響應于用戶的第三操作重新獲取各未開發的最低等級的開發功能點的工時,并獲取各未開發的次低等級的開發功能點的功能工時;根據已完成開發的次低等級的開發功能點的實際工時、以及各未開發的次低等級的開發功能點的功能工時,響應于用戶的第四操作根據預設的測試參數和聯調參數使用預設置的總工時估算模型更新所述項目總工時。
[0102]
在本實施例中,通過已完成開發的第三等級開發功能點的實際工時修正功能點校正因子,并根據功能點校正因子修正調整參數,從而進一步估算未開發或未完成開發的第三等級開發功能點的功能工時,即通過實際工時修正未完成的第三等級開發功能點的估算工時,從而在軟件開發項目開發過程中不斷調整各第三等級開發功能點的的功能工時和總工時。
[0103]
具體步驟如下:
[0104]
首先,根據已完成開發的第三等級開發功能點的實際工時,通過預設置的第三公式獲取對應第三等級開發功能點的功能點校正因子,并根據所述校正因子更新所述調整參數。
[0105]
在本實施例中,在實際開發過程中,將實際工時填入項目工時填報管理系統中,并利用實際工時實現對功能點校正因子的校正。其中,所述第三公式為:
[0106][0107]
vaf
′
=vaf
×
γ
uf
[0108]
其中,γ
uf
為功能點校正因子,t
uf_real
為已完成開發的第三等級開發功能點的實際工時,t
basic
為所述第三等級開發功能點的基礎工時,step為調整步長,vaf為調整參數,vaf
′
為更新后的調整參數;
[0109]
所述調整步長為:
[0110]
step=min(ε1,ε2,
……
εf);
[0111][0112]
其中,εn為各第三等級開發功能點的偏移系數,t
uf_real
為第三等級開發功能點的實際工時,t
uf
為第三等級開發功能點的功能工時,t
basic
為第三等級的開發功能點的基礎工時。
[0113]
在本實施例中,通過各第三等級開發功能點的實際工時、以及估算的功能工時和基礎工時獲取各第三等級開發功能點的偏移系數,并以各偏移系數的最小值作為調整步長,進一步調整功能點校正因子以更新調整參數,從而實現通過各第三等級開發功能點的實際工時迭代調整參數,以進一步修正估算工時,從而提高估算工時的準確性。
[0114]
其次,基于獲取的調整參數,重新獲取各未開發的第四等級開發功能點的工時,并獲取各未開發的第三等級開發功能點的功能工時。本實施例的實施方式參見前述實施例,在此不再贅述。
[0115]
最后,根據已完成開發的第三等級開發功能點的實際工時、以及各未開發的第三等級開發功能點的功能工時,根據預設的測試參數和聯調參數使用預設置的總工時估算模型更新所述項目總工時。本實施例的實施方式參見前述實施例,在此不再贅述。
[0116]
值得說明的是,本修正步驟還可以用于軟件開發項目的需求發生變更以后,例如軟件開發項目需求說明書更新后,通過上述步驟可以重新拆解開發功能點,并將已完成的第三等級開發功能點使用實際工時,并通過已完成的實際工時修正功能點校正因子,并估算未完成的第三等級開發功能點,從而進一步提高工時估算的準確性。
[0117]
在本實施例中,通過實際工時修正未完成的第三等級開發功能點的估算工時,從而在軟件開發項目開發過程中不斷調整各第三等級開發功能點的功能工時和總工時。
[0118]
值得說明的是,在軟件開發項目完成后,使用上述步驟進一步迭代調整參數,從而進一步提高估算準確性。例如,使用軟件開發項目結束后的各第三等級開發功能點的實際工時迭代單點工時估算模型,并利用實際總工時、實際測試工時和實際聯調工時修正測試參數和聯調參數,從而迭代總工時估算模型。
[0119]
具體包括:
[0120]
首先,接收開發完結項目中各次低等級的開發功能點的實際測試工時、根據預設置的第四公式更新所述測試參數。
[0121]
在本實施例中,基于完結項目的實際測試工時,統計所有歷史工時數據中各第三等級開發功能點的測試bug數量以及花費工時,計算各第三等級開發功能點的平均bug數量n
bug
及解決單個bug的平均花費工時t
bug
。根據各第三等級開發功能點的測試總工時t
test
計算該功能點的測試校正因子,第四公式為:
[0122][0123]
tc
′
=tc
×
γ
test
[0124]
其中,γ
test
為測試校正因子,t
test
為測試總工時,n
bug
為所述第三等級開發功能點的平均bug數量,t
bug
為解決單個bug的平均花費工時,t
uf_real
為所述第三等級開發功能點的實際功能工時,step為調整步長,tc為測試參數,tc
′
為更新后的測試參數。
[0125]
在本實施例中,進一步通過各第三等級開發功能點的實際工時、以及估算的功能工時和基礎工時獲取的調整步長,并通過調整步長和實際完成的軟件開發項目的實際測試總工時調整測試參數,從而實現對總工時估算模型的迭代,能夠提高軟件開發項目的工時估算的準確性。
[0126]
其次,接收開發完結項目中各第三等級開發功能點的實際聯調工時、根據預設置的第五公式更新所述聯調參數。
[0127]
在本實施例中,基于完結項目的實際聯調工時,統計所有歷史工時數據中各第三等級開發功能點的聯調工時,計算各第三等級開發功能點的聯調校正因子,第五公式為:
[0128]
[0129]
ic
′
=ic
×
γ
unit
[0130]
其中,γ
unit
為聯調校正因子,t
unittest
為聯調總工時,t
ut_real_f
為第三等級開發功能點的實際測試工時,step為調整步長,ic為聯調參數,ic
′
為更新后的聯調參數。
[0131]
在本實施例中,進一步通過各第三等級開發功能點的實際工時、以及估算的功能工時和基礎工時獲取的調整步長,并通過調整步長和實際完成的軟件開發項目的實際聯調總工時調整聯調參數,從而實現對總工時估算模型的迭代,能夠提高軟件開發項目的工時估算的準確性。
[0132]
與上述實施例提供的軟件開發項目工時估算方法相對應,本技術的一個實施例還提供一種實現上述軟件開發項目工時估算方法的軟件開發項目工時估算裝置,由于本技術實施例提供的軟件開發項目工時估算裝置與上述幾種實施例提供的軟件開發項目工時估算方法相對應,因此在前實施方式也適用于本實施例提供的軟件開發項目工時估算裝置,在本實施例中不再詳細描述。
[0133]
如圖2所示,本技術的一個實施例還提供一種實現上述軟件開發項目工時估算方法的軟件開發項目工時估算裝置,包括拆解單元,單點工時估算單元和總工時估算單元,其中,
[0134]
所述拆解單元,被配置為響應于用戶的第一操作導入軟件開發項目需求說明書,并響應于用戶的第二操作按照預設等級拆解開發功能點;
[0135]
所述單點工時估算單元,被配置為響應于用戶的第三操作使用預設置的單點工時估算模型獲取各最低等級的開發功能點的工時,并獲取次低等級的開發功能點的功能工時;
[0136]
所述總工時估算單元,被配置為響應于用戶的第四操作根據預設的測試參數和聯調參數、以及各次低等級的開發功能點的功能工時使用預設置的總工時估算模型獲取項目總工時。
[0137]
本實施例的估算裝置通過拆解單元實現對軟件開發項目需求說明書的各開發功能點的拆解,并利用單點工時估算單元的單點工時估算模型獲取軟件開發項目的各最低等級的開發功能點的工時和各次低等級的開發功能點的功能工時,在考慮測試參數和聯調參數的情況下,通過總工時估算單元的總工時估算模型獲取項目總工時,從而彌補了現有技術中存在的問題,有效提高軟件開發項目工時估算的準確性,具有廣泛的應用前景。
[0138]
本發明的另一個實施例提供了一種計算機可讀存儲介質,其上存儲有計算機程序,該程序被處理器執行時實現上述軟件開發項目工時估算方法。
[0139]
在實際應用中,所述計算機可讀存儲介質可以采用一個或多個計算機可讀的介質的任意組合。計算機可讀介質可以是計算機可讀信號介質或者計算機可讀存儲介質。計算機可讀存儲介質例如可以是但不限于電、磁、光、電磁、紅外線、或半導體的系統、裝置或器件,或者任意以上的組合。計算機可讀存儲介質的更具體的例子(非窮舉的列表)包括:具有一個或多個導線的電連接、便攜式計算機磁盤、硬盤、隨機存取存儲器(ram)、只讀存儲器(rom)、可擦式可編程只讀存儲器(eprom或閃存)、光纖、便攜式緊湊磁盤只讀存儲器(cd-rom)、光存儲器件、磁存儲器件、或者上述的任意合適的組合。在本實施例中,計算機可讀存儲介質可以是任何包含或存儲程序的有形介質,該程序可以被指令執行系統、裝置或者器件使用或者與其結合使用。
[0140]
計算機可讀的信號介質可以包括在基帶中或者作為載波一部分傳播的數據信號,其中承載了計算機可讀的程序代碼。這種傳播的數據信號可以采用多種形式,包括但不限于電磁信號、光信號或上述的任意合適的組合。計算機可讀的信號介質還可以是計算機可讀存儲介質以外的任何計算機可讀介質,該計算機可讀介質可以發送、傳播或者傳輸用于由指令執行系統、裝置或者器件使用或者與其結合使用的程序。
[0141]
計算機可讀介質上包含的程序代碼可以用任何適當的介質傳輸,包括但不限于無線、電線、光纜、rf等等,或者上述的任意合適的組合。
[0142]
可以以一種或多種程序設計語言或其組合來編寫用于執行本發明操作的計算機程序代碼,所述程序設計語言包括面向對象的程序設計語言—諸如java、smalltalk、c++,還包括常規的過程式程序設計語言—諸如“c”語言或類似的程序設計語言。程序代碼可以完全地在用戶計算機上執行、部分地在用戶計算機上執行、作為一個獨立的軟件包執行、部分在用戶計算機上部分在遠程計算機上執行、或者完全在遠程計算機或服務器上執行。在涉及遠程計算機的情形中,遠程計算機可以通過任意種類的網絡——包括局域網(lan)或廣域網(wan)—連接到用戶計算機,或者,可以連接到外部計算機(例如利用因特網服務提供商來通過因特網連接)。
[0143]
如圖3所示,本發明的另一個實施例提供的一種計算機設備的結構示意圖。圖3顯示的計算機設備12僅僅是一個示例,不應對本發明實施例的功能和使用范圍帶來任何限制。
[0144]
如圖3所示,計算機設備12以通用計算設備的形式表現。計算機設備12的組件可以包括但不限于:一個或者多個處理器或者處理單元16,系統存儲器28,連接不同系統組件(包括系統存儲器28和處理單元16)的總線18。
[0145]
總線18表示幾類總線結構中的一種或多種,包括存儲器總線或者存儲器控制器,外圍總線,圖形加速端口,處理器或者使用多種總線結構中的任意總線結構的局域總線。舉例來說,這些體系結構包括但不限于工業標準體系結構(isa)總線,微通道體系結構(mac)總線,增強型isa總線、視頻電子標準協會(vesa)局域總線以及外圍組件互連(pci)總線。
[0146]
計算機設備12典型地包括多種計算機系統可讀介質。這些介質可以是任何能夠被計算機設備12訪問的可用介質,包括易失性和非易失性介質,可移動的和不可移動的介質。
[0147]
系統存儲器28可以包括易失性存儲器形式的計算機系統可讀介質,例如隨機存取存儲器(ram)30和/或高速緩存存儲器32。計算機設備12可以進一步包括其它可移動/不可移動的、易失性/非易失性計算機系統存儲介質。僅作為舉例,存儲系統34可以用于讀寫不可移動的、非易失性磁介質(圖3未顯示,通常稱為“硬盤驅動器”)。盡管圖3中未示出,可以提供用于對可移動非易失性磁盤(例如“軟盤”)讀寫的磁盤驅動器,以及對可移動非易失性光盤(例如cd-rom,dvd-rom或者其它光介質)讀寫的光盤驅動器。在這些情況下,每個驅動器可以通過一個或者多個數據介質接口與總線18相連。存儲器28可以包括至少一個程序產品,該程序產品具有一組(例如至少一個)程序模塊,這些程序模塊被配置以執行本發明各實施例的功能。
[0148]
具有一組(至少一個)程序模塊42的程序/實用工具40,可以存儲在例如存儲器28中,這樣的程序模塊42包括但不限于操作系統、一個或者多個應用程序、其它程序模塊以及程序數據,這些示例中的每一個或某種組合中可能包括網絡環境的實現。程序模塊42通常
執行本發明所描述的實施例中的功能和/或方法。
[0149]
計算機設備12也可以與一個或多個外部設備14(例如鍵盤、指向設備、顯示器24等)通信,還可與一個或者多個使得用戶能與該計算機設備12交互的設備通信,和/或與使得該計算機設備12能與一個或多個其它計算設備進行通信的任何設備(例如網卡,調制解調器等等)通信。這種通信可以通過輸入/輸出(i/o)接口22進行。并且,計算機設備12還可以通過網絡適配器20與一個或者多個網絡(例如局域網(lan),廣域網(wan)和/或公共網絡,例如因特網)通信。如圖3所示,網絡適配器20通過總線18與計算機設備12的其它模塊通信。應當明白,盡管圖3中未示出,可以結合計算機設備12使用其它硬件和/或軟件模塊,包括但不限于:微代碼、設備驅動器、冗余處理單元、外部磁盤驅動陣列、raid系統、磁帶驅動器以及數據備份存儲系統等。
[0150]
處理器單元16通過運行存儲在系統存儲器28中的程序,從而執行各種功能應用以及數據處理,例如實現本發明實施例所提供的一種軟件開發項目工時估算方法。
[0151]
在本實施例中,處理器單元16與人機交互界面協同運行,例如處理器單元實現上述軟件開發項目工時估算方法,具體的,通過例如顯示器24顯示的人機交互界面,處理器單元16響應于用戶在人機交互界面呈現的“導入”按鍵的操作導入軟件開發項目文檔,例如上傳文檔上傳;并響應于用戶在人機交互界面呈現的“功能點拆解”按鍵的操作按照預設等級拆解開發功能點,例如處理器單元16根據軟件開發項目文檔中設置的文檔節點格式進行拆解,或者例如根據軟件開發項目文檔中設置的關鍵字進行識別以實現開發功能點的拆解;然后,處理器單元16響應于用戶在人機交互界面呈現的“單點工時估算”按鍵的操作利用單點工時估算模型獲取各第一任務的開發功能點工時,并獲取第二任務的開發功能點的功能工時;最后,處理器單元16響應于用戶在人機交互界面呈現的“總工時估算”按鍵的操作,處理器單元16根據用時參數、以及各第二任務的開發功能點的功能工時使用總工時估算模型獲取項目總工時。
[0152]
顯然,本發明的上述實施例僅僅是為清楚地說明本發明所作的舉例,而并非是對本發明的實施方式的限定,對于所屬領域的普通技術人員來說,在上述說明的基礎上還可以做出其它不同形式的變化或變動,這里無法對所有的實施方式予以窮舉,凡是屬于本發明的技術方案所引伸出的顯而易見的變化或變動仍處于本發明的保護范圍之列。
技術特征:
1.一種軟件開發項目工時估算方法,其特征在于,包括:響應于用戶的第一操作導入軟件開發項目需求說明書,并響應于用戶的第二操作按照預設等級拆解開發功能點;響應于用戶的第三操作使用預設置的單點工時估算模型獲取各最低等級的開發功能點的工時,并獲取次低等級的開發功能點的功能工時;響應于用戶的第四操作根據預設的測試參數和聯調參數、以及各次低等級的開發功能點的功能工時使用預設置的總工時估算模型獲取項目總工時。2.根據權利要求1所述的估算方法,其特征在于,所述響應于用戶的第一操作導入軟件開發項目需求說明書,并響應于用戶的第二操作按照預設等級拆解開發功能點進一步包括:響應于用戶的第二操作根據所述軟件開發項目需求說明書的節點格式拆解至少兩級的開發功能點;和/或響應于用戶的第五操作調整所述開發功能點。3.根據權利要求1所述的估算方法,其特征在于,所述響應于用戶的第三操作使用預設置的單點工時估算模型獲取各最低等級的開發功能點的工時,并獲取次低等級的開發功能點的功能工時進一步包括:響應于用戶的第六操作計算各最低等級的開發功能點的工時和各次低等級的開發功能點的基礎工時;響應于用戶的第七操作分別設置各次低等級的開發功能點的調整因子、并根據各次低等級的開發功能點的調整因子按照預設的第一公式獲取各次低等級的開發功能點的調整參數;響應于用戶的第八操作分別根據各次低等級的開發功能點的調整參數獲取各次低等級的開發功能點的功能工時。4.根據權利要求3所述的估算方法,其特征在于,所述響應于用戶的第六操作計算各最低等級的開發功能點的工時和各次低等級的開發功能點的基礎工時進一步包括:根據預設置的開發工時表,所述開發工時表包括各最低等級的開發功能點和對應的工時點,響應于用戶的第六操作從所述開發工時表中查各最低等級的開發功能點對應的工時點并利用預設的基礎工時公式獲取各次低等級的開發功能點的基礎工時。5.根據權利要求1所述的估算方法,其特征在于,所述響應于用戶的第四操作根據預設的測試參數和聯調參數、以及各次低等級的開發功能點的功能工時使用預設置的總工時估算模型獲取項目總工時進一步包括:響應于用戶的第九操作設置所述各次低等級的開發功能點的測試參數、并根據所述各次低等級的開發功能點的功能工時和測試參數獲取各次低等級的開發功能點的測試工時;響應于用戶的第十操作設置所述各次低等級的開發功能點的聯調參數、并根據所述各次低等級的開發功能點的測試工時和聯調參數獲取各次低等級的開發功能點的聯調工時;根據各次低等級的開發功能點的聯調工時獲取所述項目總工時。6.根據權利要求3所述的估算方法,其特征在于,所述估算方法還包括:響應于用戶的第十一操作接收開發過程中已完成開發的次低等級的開發功能點的實
際工時根據預設置的第三公式獲取對應次低等級的開發功能點的功能點校正因子,并根據所述校正因子更新所述調整參數;響應于用戶的第三操作重新獲取各未開發的最低等級的開發功能點的工時,并獲取各未開發的次低等級的開發功能點的功能工時;根據已完成開發的次低等級的開發功能點的實際工時、以及各未開發的次低等級的開發功能點的功能工時,響應于用戶的第四操作根據預設的測試參數和聯調參數使用預設置的總工時估算模型更新所述項目總工時。7.根據權利要求6所述的估算方法,其特征在于,所述第三公式為:vaf
′
=vaf
×
γ
uf
其中,γ
uf
為功能點校正因子,t
uf_real
為已完成開發的次低等級的開發功能點的實際工時,t
basic
為所述次低等級的開發功能點的基礎工時,step為調整步長,vaf為調整參數,vaf
′
為更新后的調整參數;所述調整步長為:step=min(ε1,ε2,
……
ε
f
);其中,ε為所述次低等級的開發功能點的偏移系數,t
uf_real
為次低等級的開發功能點的實際工時,t
uf
為次低等級的開發功能點的功能工時,t
basic
為次低等級的開發功能點的基礎工時。8.根據權利要求1-7中任一項所述的估算方法,其特征在于,所述估算方法還包括:響應于用戶的第十二操作接收開發完結項目中各次低等級的開發功能點的實際測試工時、根據預設置的第四公式更新所述測試參數;響應于用戶的第十三操作接收開發完結項目中各次低等級的開發功能點的實際聯調工時、根據預設置的第五公式更新所述聯調參數。9.根據權利要求8所述的估算方法,其特征在于,所述第四公式為:tc
′
=tc
×
γ
test
其中,γ
test
為測試校正因子,t
test
為測試總工時,n
bug
為所述次低等級的開發功能點的平均bug數量,t
bug
為解決單個bug的平均花費工時,t
uf_real
為所述次低等級的開發功能點的實際功能工時,step為調整步長,tc為測試參數,tc
′
為更新后的測試參數;和/或所述第五公式為:ic
′
=ic
×
γ
unit
其中,γ
unit
為聯調校正因子,t
unittest
為聯調總工時,t
ut_real_f
為所述次低等級的開發功能點的實際測試工時,step為調整步長,ic為聯調參數,ic
′
為更新后的聯調參數。10.一種應用如權利要求1-9中任一項所述的估算方法的軟件開發項目工時估算裝置,其特征在于,包括拆解單元,單點工時估算單元和總工時估算單元,其中,所述拆解單元,被配置為響應于用戶的第一操作導入軟件開發項目需求說明書,并響應于用戶的第二操作按照預設等級拆解開發功能點;所述單點工時估算單元,被配置為響應于用戶的第三操作使用預設置的單點工時估算模型獲取各最低等級的開發功能點的工時,并獲取次低等級的開發功能點的功能工時;所述總工時估算單元,被配置為響應于用戶的第四操作根據預設的測試參數和聯調參數、以及各次低等級的開發功能點的功能工時使用預設置的總工時估算模型獲取項目總工時。11.一種計算機可讀存儲介質,其上存儲有計算機程序,其特征在于,該程序被處理器執行時實現如權利要求1-9中任一項所述的估算方法。12.一種計算機設備,包括存儲器、處理器及存儲在存儲器上并可在處理器上運行的計算機程序,其特征在于,所述處理器執行所述程序時實現如權利要求1-9中任一項所述的估算方法。
技術總結
本發明公開了一種軟件開發項目工時估算方法和裝置、計算機設備和介質,其中一實施例的估算方法包括:響應于用戶的第一操作導入軟件開發項目需求說明書,并響應于用戶的第二操作按照預設等級拆解開發功能點;響應于用戶的第三操作使用預設置的單點工時估算模型獲取各次低等級的開發功能點的功能工時;響應于用戶的第四操作根據預設的測試參數和聯調參數、以及各次低等級的開發功能點的功能工時使用預設置的總工時估算模型獲取項目總工時。本發明提供的實施例通過單點工時估算模型獲取軟件開發項目的各次低等級的開發功能點的功能工時,在考慮測試參數和聯調參數的情況下,通過總工時估算模型獲取項目總工時,有效提高準確性。確性。確性。
