根據專案用例圖用例點估算專案工時的方法

ukyo--君君小时候發表於2024-06-16

image
一共透過6個步驟:

  1. 計算未調整的角色權值UAW
  2. 計算未調整的用例權值UUCW
  3. 計算未調整的用例點UUCP
  4. 計算技術(TCF)和環境因子(ECF) -> TEF
  5. 計算調整的用例點UCP
  6. 計算工作量(man - hours)多少人多少工時 (人天)

image
6步驟之一UAV計算
Actor 角色權值定義:

序號 複雜度級別 複雜度標準 權值
1 simple 角色透過API 與系統互動 1
2 average 角色透過協議與系統互動 2
3 complex 使用者透過GUI與系統互動 3

首先分為了三個等級,simple、average、complex,其中透過API互動是最簡單的,
就是簡單的介面互動,而透過協議的就複雜一些,這裡的協議可能包含了如websocket、rpc(protobuf)或者
什麼其它的約定協議.
而最複雜的當屬透過介面化的形式進行互動,GUI,比如遊戲裡點選某個按鈕或者桌面版本的封裝程式介面化的操作.

image
6步驟之二UUCW計算
Use Case 用例權值定義

序號 複雜度級別 事務/場景個數 權值
1 simple 1-3 5
2 average 4-7 10
3 complex >7 15

首先還是三個等級,用例中事務/場景個數的多寡來分別對應這三個等級,
比如有個角色ROLE1中的操作要進行A、B、C項基本操作,那麼就是simple好了,
但比如還有個角色ROLE2中的操作的場景和要管理的事情多一些,除了ABC基本操作,
還有進行AB的某些彙總計算,C中的某些資料稽核,或者AC之間資料的核對確認,那麼
就可以歸類為average中等級別了.
最複雜的complex等級一般可能見於ROLE_ADMIN,即一些系統終端最終維護角色、
或者對系統要進行全盤操作的角色,那麼>7個事務或場景是很有可能的.

image
6步驟之三UUCP計算
前面兩個步驟已經根據角色&用例來計算了UAW和UUCW,
那麼這一步就是將未調整的角色權值+未調整用例權值簡單加法計算得出UUPC即未調整用例點
比如如圖中計算
UAW+UUCW = 25+85 = 110

image
6步驟之四TCF、ECF計算
TCF: Technical Complexity Factor
這裡面一共有13項TCF,每個TCF對應一個權值,其中權值最小為0.5,最大為2.0,即這項技術因子的難度是減半了還是成倍了.而最終進行彙總並與0.01相乘再加上係數0.6.

其中公式中的Value(i)是該技術因子影響的等級,0表示無影響,3表示影響一般,5表示影響是很強的(不能取其它值)

序號 技術因子 說明 權值
1 TCF1 分散式系統 2.0
2 TCF2 效能要求 1.0
3 TCF3 終端使用者使用效率 1.0
4 TCF4 內部處理複雜度 1.0
5 TCF5 複用程度 1.0
6 TCF6 易於安裝 0.5
7 TCF7 系統易於使用 0.5
8 TCF8 可移植性 2.0
9 TCF9 系統易於修改 1.0
10 TCF10 併發性 1.0
11 TCF11 安全功能特性 1.0
12 TCF12 為第三方系統提供直接系統訪問 1.0
13 TCF13 特殊的使用者培訓設施 1.0

我們從第一個

  1. TCF1開始敘述,TCF1分散式系統,這裡其實也是根據經驗來講,比如是簡單的微服務、一個閘道器搞定,那麼x3,如果是多業務閘道器包含多子系統模組那麼x5.
  2. TCF2效能要求簡單就是說有幾項效能要求,比如客戶要很高的系統響應速度,要能快速處理完成非常大數量資料的計算並持久儲存結果等等……效能要求沒有,就是x0,要求是比較普遍的x3,要求是非常嚴苛的則x5.
  3. TCF3這個要考慮使用者使用的效率,其對應的也可能有如系統操作日誌多寡、使用者運算元據多寡的內容、細想一下使用者使用效率,如果開發出來這個系統,終端使用者不使用(哈哈),那麼x0,使用頻率是一般的x3,使用頻率很高,並且很多人員都會使用,那麼x5.
  4. TCF4說明了系統處理複雜度,可以認為有沒有複雜的業務,有但一般x3,有但非常複雜x5,簡單如一沒有複雜業務只是CURD則x0.
  5. TCF5則說明是否有相關的以往專案、程式碼、資料可以拿來及時複用,如果粘過來系統稍微一改馬上可以交付,那麼x5,沒有一點可複用的跡象,x0,有一部分可複用的則x3.
  6. TCF6權值較小為0.5,其實就是說是否易於安裝,現在這個基本都是必須要求的,那麼x3,如果有嚴格的易於安裝的情形x5.
  7. TCF7也是0.5的權值,系統易於使用這樣的技術因子放在現在也是必須的,基本x5即可.
  8. TCF8說明可移植性,因為現在很多程式語言都可以跑在不同的系統,可以說移植難度低了,但是不妨會有轉換語言、切換伺服器、更換資料庫型別、多端訪問的問題,比如系統要有PC端、要有IOS、Android端、那麼其實從開發效率上來講是會降低的,所以如果可能有切換伺服器、更換資料庫型別、多端訪問的要求、x5,但是隻是多端訪問x3,否則沒有以上問題x0.
  9. TCF9說明系統是否易於修改,也就是程式碼的可擴充套件性高不高,程式碼質量如何,歸結下來就是說系統給到其它團隊好不好做新功能或維護,一般這項也是必須的x5即可.
  10. TCF10併發性,系統少數人用基本x0,有人用,有併發問題但不多x3,併發量巨大x5.
  11. TCF11安全性基本也是中大型軟體必須的x5,如果沒有太嚴苛的安全要求x3.
  12. TCF12是說明該系統還要對外提供介面,多的話x5,不多x3,不提供對外介面x0.
  13. TCF13為特殊的使用者培訓設施,比如系統是對接了一些硬體的,如掃臉、機器人等,並要求進行培訓則x5,沒有x0.

image
ECF: Environment Complexity Factor
技術需要技術攻關,團隊需要士氣和經驗,這個ECF是專案成敗的另一面.
同樣也是x0無關(無難度、無兼職人員、無UML經驗等)、x3表示一般,x5表示非常高、多、好(團隊成員都具備這種能力).

序號 環境因子 說明 權值
1 ECF1 UML精通程度 1.5
2 ECF2 系統應用經驗 0.5
3 ECF3 物件導向經驗 1.0
4 ECF4 系統分析員能力 0.5
5 ECF5 團隊士氣 1.0
6 ECF6 需求穩定性 2.0
7 ECF7 兼職人員比例高低 1.0
8 ECF8 程式語言難易程度 1.0

最終計算ECF彙總和後乘以-0.03最後加1.4.

image
6步驟之五UCP計算
UCP是調整的用例點,之前是未調整的用例點UUCP,
那麼調整公式為:

UCP = UUCP ✖️ TCF ✖️ ECF

即(未調整的功能點)x(技術影響因子)x(環境影響因子)
上圖給出的示例是 110x1.02x0.785=88
可以看出技術因素太難攻克,則技術影響越大,工時耗時更久,環境影響因子越大(比如團隊士氣低下、無相關物件導向經驗等),最終調整的用例點則會變得更大,則說明耗時會更久.反正,技術難度影響小,人員經驗高對應環境影響變低,調整的用例點更小更少.

image

PF為每個用例點的消耗工時,這裡PF也需要再另行計算估計.

最終用例點估算專案人天的計算公式:

UCP ✖️ PF

例子給出的調整後的用例點是88,PF為20,那麼得出1760小時,換算人天為220人天.

最後,220人天除以當時團隊的人員數量,即可得出該專案在該團隊(環境因子也是評估得該團隊)
需要用多少天來完成.

如團隊成員8人,則需要27.5天完成.

相關文章