我們用淘寶的“購買商品”來舉例說明怎么劃分邏輯事務(wù),先來看購買商品的頁面:
在這個頁面中,左邊一塊是顯示商品的簡要信息,這是一個邏輯事務(wù):“查看商品信息”,右邊最上面一個收貨地址的radio button,也是一個:“展示我所有的收貨地址”,右邊下面一組文本輸入框加一個按鈕,是一個:“為當(dāng)前商品創(chuàng)建一個訂單”。
在MVC中,邏輯事務(wù)對應(yīng)Controller,每個邏輯事務(wù)都可以在Controller里面找到一個public函數(shù)。
再講一下輸入DET和輸出DET。比如剛才的“為當(dāng)前商品創(chuàng)建一個訂單”這個事務(wù),頁面上輸入信息的控件,都是輸入DET,比如文本框、按鈕,都是輸入DET。這個事務(wù)大約有10個輸入DET:“收貨地址”、“購買數(shù)量”、“運(yùn)送方式”等等。輸出DET指應(yīng)用程序給用戶提供的所有的提示信息,以文字提示的方式知會用戶。比如“購買成功”、“您沒有綁定支付寶,不能購買”、“商品庫存不足,無法購買”、“購買數(shù)量必須輸入整數(shù)”等等。這個事務(wù)的輸出DET數(shù)量大約是20個。
在MVC中,輸入DET和輸出DET對應(yīng)View。每個輸入DET和輸出DET都能在View中找到對應(yīng)控件。
最后講引用實(shí)體,在創(chuàng)建訂單事務(wù)里,引用的實(shí)體有很多。訂單成功后要扣減商品庫存,因此商品算1個;訂單本身是1個;訂單需要同步生成支付寶交易,支付寶算1個;還有物流記錄算1個,等等,大約是5個實(shí)體以上。
在MVC中,引用實(shí)體對應(yīng)Model。
到此為止這個邏輯事務(wù)的數(shù)據(jù)收集完整,代入公式計(jì)算得出結(jié)果:
10×0.58+5×1.66+20×0.26=19.3
當(dāng)然這只是一個DEMO,數(shù)字都是估算的,實(shí)際情況肯定比這個要復(fù)雜,算出的功能點(diǎn)指數(shù)就會多一些。需要注意的是,使用MkII算法計(jì)算出的功能點(diǎn)指數(shù),只是一個數(shù)值,代表應(yīng)用程序的功能規(guī)模,和我們平時聽到開發(fā)說的“我修改了一個功能點(diǎn)”,概念上是不同的。所以我們用“功能點(diǎn)指數(shù)”這個概念,不過為了溝通起來方便,還是簡化成“功能點(diǎn)”了。
MkII功能點(diǎn)算法是非常適合于淘寶這樣的互聯(lián)網(wǎng)公司的。不過由于WEB應(yīng)用程序的交互日趨復(fù)雜,JS被大量使用,因此在實(shí)踐中,如何劃分邏輯事務(wù),如何統(tǒng)計(jì)輸入輸出,還需要進(jìn)一步的研究。
相關(guān)推薦:北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |