基于用例点来度量软件规模并管理进度 之一
英文名:Based?on?use?case?points?to?measure?software?size?and?manage?the?progress
摘 要?
本文針對軟件項(xiàng)目的規(guī)模度量和進(jìn)度管理,提出了一種新的以用例點(diǎn)的方式來表達(dá)和跟蹤的方法。本文詳細(xì)介紹了經(jīng)過調(diào)整過的用例點(diǎn)度量方法,舍棄了角色對應(yīng)的用例點(diǎn)數(shù),對用例分類給出了更嚴(yán)格的要求,采用了更細(xì)致的步驟定義,并限制了復(fù)雜用例的最多步驟。用例的狀態(tài)完成度得到區(qū)分,在此基礎(chǔ)上建立了過程中用例的進(jìn)度跟蹤方法。最后并闡述了在需求可復(fù)用情況下的使用方式。
關(guān)鍵詞?
用例點(diǎn)?軟件規(guī)模?進(jìn)度?度量
Abstract?This?paper?purposed?a?new?method?of?measuring?software?size?and?tracking?progress?for?size?and?progress?management?of?software?project.?The?detail?of?use?case?points?counting?is?illustrated,?Use?Case?Points??of?the?roles?are?abandoned,?Classification?of?use?cases?are?given?more?stringent?requirements,??a?more?detailed?definition?of?the?step?is?used,??and?the?maximum?of?steps?in?the?complex?use?cases?is?limited.?Completion?degree?of?the?state?of?use?case?is?distinguished,?and?based?on?this?the?method?of?tracking?progress?of?ongoing?use?cases?is?setup.?And?further?usage?in?re-use?requirements?is?also?covered.
Keywords?Use?Case?Point,?Software?size,?progress,?measure
引言
軟件規(guī)模度量方面,存在了不少難題:
1,開發(fā)語言發(fā)展快,最新的IDE能夠自動(dòng)生成大量代碼
2,維護(hù)升級項(xiàng)目的規(guī)模難于估算
3,軟件復(fù)用后的規(guī)模難于估算
4,不同軟件項(xiàng)目的規(guī)模相關(guān)的比較
傳統(tǒng)軟件規(guī)模度量采用源代碼行數(shù),但源代碼行數(shù)有明顯的缺點(diǎn)。因此當(dāng)前在軟件行業(yè),發(fā)展出了多種軟件項(xiàng)目規(guī)模的度量方法,較有代表性的如下幾種:
Function?Points?縮寫FP
Use?Case?Points?縮寫UCP
User?Story?Points?
本文根據(jù)實(shí)踐,參照原UCP方法[參考文獻(xiàn)1],介紹了一種新的以用例點(diǎn)為單位的軟件規(guī)模表達(dá)方法,并利用這個(gè)方法表達(dá)軟件開發(fā)過程中的進(jìn)度,對上述的問題進(jìn)行了處理。
用例點(diǎn)表達(dá)規(guī)模
第一步?計(jì)算UCP
首先得到用例點(diǎn)數(shù)(UCP-?Use?Case?Points?),原UCP中用例點(diǎn)數(shù)由角色的用例點(diǎn)數(shù)與用例的用例點(diǎn)數(shù)加和得到。本文介紹方法只計(jì)用例的用例點(diǎn)數(shù)。因?yàn)榻巧挠美c(diǎn)數(shù)所占比重很小,一般不超過2%。
用例點(diǎn)數(shù)的計(jì)算方法是把用例分成三類,用例分析方法源自于經(jīng)典用例分析方法[參考文獻(xiàn)2],給予不同權(quán)重。
表1?用例分類權(quán)重對應(yīng)表
| 用例類別 | 說明 | 權(quán)重 |
| 簡單(小) | 基本流的步驟不超過3步,備選流或異常不超過3個(gè)。 比如簡單用戶界面或一般API | 5 |
| 普通(中) | 基本流的步驟有4~7步,備選流或異常不超過6個(gè)。 比如普通界面或復(fù)雜API | 10 |
| 復(fù)雜(大) | 基本流的步驟?8~?12步,備選流或異常不超過9個(gè)。 比如復(fù)雜的用戶界面或過程 | 15 |
上述說明中的四個(gè)關(guān)鍵名詞的解釋如下。
??步驟——步驟定義為單個(gè)角色的原子操作。在一個(gè)步驟之內(nèi),只說明一個(gè)角色的連續(xù)動(dòng)作,角色不發(fā)生轉(zhuǎn)移;角色變換,是新的步驟。
??基本流——也有稱為主成功場景,達(dá)成用例目標(biāo)的事件流。
??備洗流——也有稱為失敗場景,基本流之外的不能達(dá)到用例目標(biāo)的事件流。
??異常——在基本流中直接說明的異常情況。
用例分類分析的要點(diǎn)有如下。
??不遺漏,要能全面的反映軟件需求,不能有任何遺漏的功能。
??不重復(fù),相同的功能不要反復(fù)說明。這會影響數(shù)量的統(tǒng)計(jì)。
??考慮所含信息要充分。
??都可以被黑盒測試。
??一般的API用例,即使過程較為復(fù)雜,還是簡單用例。
??備選流和異常數(shù)量多時(shí),提升用例的復(fù)雜度。
??某一步驟是特別復(fù)雜(如一個(gè)步驟中角色的連續(xù)動(dòng)作超過5個(gè)),提升用例的復(fù)雜度。
??用例基本流步驟超過12步,分拆用例。
根據(jù)以上對應(yīng)表和規(guī)則,對用例進(jìn)行識別,然后把計(jì)算出各類別的用例數(shù)量,分別乘以權(quán)重,取總和就得到用例的用例點(diǎn)數(shù)。公式為:
UCP?=?∑?各類型用例數(shù)量?*?對應(yīng)的權(quán)重
第二步?計(jì)算TCF
TCF是指?Technical?Complexity?Factor,技術(shù)復(fù)雜因數(shù)。原UCP方法設(shè)計(jì)了13個(gè)提問,每個(gè)提問都設(shè)置了各自的權(quán)重,根據(jù)提問,給出從0~5的影響值,然后各權(quán)重乘于影響值,再取和得TCF。原TCF考查對象是整個(gè)估算范圍。本文給出的方法是對各模板分別考查,因此采用如下簡化取值標(biāo)準(zhǔn)。
表2?項(xiàng)目TCF取值標(biāo)準(zhǔn)
| 權(quán)重 | 標(biāo)準(zhǔn) |
| 0.8 | 代表簡單,?沒有技術(shù)難點(diǎn),30%以上部分有參考對象 |
| 1 | 代表一般 |
| 1.2 | 代表復(fù)雜有困難,30%以上部分沒有先例,需要嘗試新技術(shù),比如支持不熟悉的操作系統(tǒng) |
第三步?計(jì)算ECF
ECF是指?Environment?Complexity?Factor,?環(huán)境復(fù)雜因數(shù)。原UCP方法設(shè)計(jì)了8個(gè)提問,每個(gè)提問都設(shè)置了各自的權(quán)重,根據(jù)提問,給出從0~5的影響值,然后各權(quán)重乘于影響值,再取和得ECF。原ECF考查對象是整個(gè)估算范圍。本文給出的方法是對各模板分別考查,因此采用如下簡化取值標(biāo)準(zhǔn)。
表3?項(xiàng)目ECF取值標(biāo)準(zhǔn)
| 權(quán)重 | 標(biāo)準(zhǔn) |
| 0.8 | 代表主要開發(fā)人員熟悉類似項(xiàng)目,開發(fā)者必須有2年以上的項(xiàng)目經(jīng)歷或作為技術(shù)負(fù)責(zé)人(或主要參與人)經(jīng)歷二個(gè)相似項(xiàng)目 |
| 1 | 開發(fā)者必須有1年以上的項(xiàng)目經(jīng)歷或作為技術(shù)負(fù)責(zé)人(或主要參與人)經(jīng)歷至少一個(gè)相似項(xiàng)目 |
| 1.2 | 開發(fā)者只有不到1年的項(xiàng)目經(jīng)歷,或沒有項(xiàng)目經(jīng)歷,并且沒有作為技術(shù)負(fù)責(zé)人經(jīng)歷相似項(xiàng)目 |
最后一步?計(jì)算AUCP
AUCP是指Adjusted?Use?Case?Points。
首先以模塊為單元來進(jìn)行歸類,識別模塊的TCF和ECF,得到模塊的AUCP,再合計(jì)得到總的AUCP。公式為AUCP?=?∑UCP?*?TCF?*?ECF。見下計(jì)算表格表4為例。
得到了總的AUCP后,就可以根據(jù)生產(chǎn)率來估算所需的工作量。
表4?UCP計(jì)算表格例子
| 模塊 | 用例 | UCP | TCF | ECF | AUCP | ||
| 簡單 | 普通 | 復(fù)雜 | |||||
| 錄入 | 6 | 3 | 1 | 75 | 1 | 1.2 | 90 |
| 查詢 | 15 | 10 | 5 | 250 | 0.8 | 1 | 200 |
| 總計(jì) | ? | ? | ? | 325 | ? | 290 | |
???說明:原UCP方法是計(jì)算得到UCP總和后再乘以TCF和ECF,TCF和ECF都是考查估算范圍整體情況,分別只有一個(gè)值。本文給出的調(diào)整UCP方法在實(shí)踐中更為簡單,并且分模塊考查,更為細(xì)致及準(zhǔn)確,得到了實(shí)踐者的歡迎。
總結(jié)
以上是生活随笔為你收集整理的基于用例点来度量软件规模并管理进度 之一的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 需求用例分析之备选流
- 下一篇: 基于用例点来度量软件规模并管理进度 之二