用例分析是一種簡單方便的建模方法,基本過程是根據(jù)已有的用例進(jìn)行分析,找到領(lǐng)域的模型類、屬性以及模型之間的關(guān)聯(lián)關(guān)系。因此,通過這種方式建模主要輸入為用例。完整的用例編寫需要耗費大量的時間,而且需要專業(yè)的培訓(xùn),在現(xiàn)實的工作中我還從來沒見過哪個項目有完整的用例,常見的就是需要的PRD,之前討論了使用實例化需求來對PRD進(jìn)行分析,得到業(yè)務(wù)規(guī)則,我們可以使用業(yè)務(wù)規(guī)則來代替用例。
方法步驟
找名詞:我們可以簡單把用例中的名詞都列出來,這些名詞會作為模型類或者屬性的候選者
找動詞:動詞往往可以發(fā)現(xiàn)模型之間的關(guān)聯(lián)關(guān)系
確定模型類與屬性:從第一步中確定模型類與屬性,主要在于判斷哪些名詞應(yīng)該作為類,哪些作為屬性;一般如果是單值名詞(或者可以通過基本數(shù)據(jù)類型表示的)往往可以作為屬性,或者一個名詞只關(guān)聯(lián)了一個概念的
確定模型的關(guān)聯(lián)關(guān)系:通過動詞來分析出模型之間的關(guān)聯(lián)關(guān)系
整個步驟很簡單,只需要找到用例中的名詞、動詞,然后集合場景分析即可。在內(nèi)網(wǎng)上也看到過通過用例的主謂賓定狀結(jié)構(gòu)來分析的,方法會更精細(xì)一些。不過從分析過程來看,兩種方式效果差不多,通過主謂賓定狀來分析步驟會麻煩一些。
另外由于用例的不但完善也會推進(jìn)模型的不斷的完善,也可以通過額外的用例來對已有的模型進(jìn)行驗證與修正。
工作中的一個例子
最近在工作中遇到一個需求,需要調(diào)整收銀臺中支付寶支付方式的置灰規(guī)則,通過實例化需求分解之后業(yè)務(wù)規(guī)則如下:
當(dāng)用戶支付金額大于10w時,而且不在白名單內(nèi),將支付寶置灰;
當(dāng)用戶支付金額大于10w時,在白名單內(nèi),將支付寶不置灰;?
當(dāng)用戶支付金額大于5w小于10w,不在人群內(nèi),將支付寶不置灰;?
當(dāng)用戶支付金額大于5w小于10w,在人群內(nèi),不在白名單內(nèi),將支付寶置灰;?
當(dāng)用戶支付金額大于5w小于10w,在人群內(nèi),在白名單內(nèi),將支付寶不置灰;?
當(dāng)用戶支付金額小于5w,將支付寶不置灰;?
1. 找名詞:用戶、支付金額、金額下限(大于5w)、金額下限(小于10w)、人群(白名單也是一種人群)、支付工具(支付寶)
2. 找動詞:置灰、屬于(在人群內(nèi))
3. 模型與屬性:
? ? 模型:用戶、支付工具、人群、置灰規(guī)則、咨詢行為; 其中咨詢行為是基于已有模型得來的(也可以參考業(yè)界已有模型),置灰規(guī)則是上面用例中的隱含主語
? ?屬性:金額上限、金額下限、支付金額
4. 確定關(guān)系:置灰說明規(guī)則是與支付方式關(guān)聯(lián);屬于說明用戶與人群有關(guān)聯(lián)
最后得到的模型如下

上面得到的是問題域模型,在真正系統(tǒng)實現(xiàn)的是時候可以根據(jù)需要對模型進(jìn)行適當(dāng)?shù)恼{(diào)整,例如將人群作為用戶的屬性進(jìn)行表示等。