UML之误区
用例和功能誤區(qū)
用例是不是功能?如果不是的話,它是什么?從定義上說,能給使用者提供一個執(zhí)行結(jié)果的活動,不就是功能嗎?很不幸,這個理解是錯誤的!功能是計算機術(shù)語,它是用來描述計算機的,而非定義需求的術(shù)語。功能實際描述的是輸入-> 計算->輸出。這讓你相當(dāng)了什么?DFD圖?這可是典型的面向過程的分析模式。因此把用例當(dāng)做功能點的做法實際上載做面向過程的分析。拋開面向?qū)ο蠛兔嫦蜻^程不說,雖然功能和用例很類似,但是本質(zhì)上來說功能和用例是完全不同的。為了解釋這個問題,我們需要從描述事物的方法入手。
在描述一個事物的時候,我們可以從以下三個觀點出發(fā):
使用者的觀點才是真正的用例觀點。
第一,功能是脫離使用者的愿望而存在的。我們通常說某某工具某個功能,它是描述工具的,而不是站在使用者的角度描述使用者的愿望的。功能用來描述某某東西能做什么,它與使用者的愿望無關(guān),描述事物固有的性質(zhì)。用例是描述使用者的愿望的,描述的是使用者對系統(tǒng)的使用要求,用用例來看待系統(tǒng)的團隊,則是從使用者的校對出發(fā),說明使用者將在系統(tǒng)里面做什么。
第二,功能是孤立的,給一個輸入,通過計算就有一個固定的輸出。用例是系統(tǒng)性的,它描述誰在什么情況下通過什么方式結(jié)果是什么。功能描述一個個點,如果要達成一個特定的目標(biāo),必須在額外交上一個順序的過程,把點串起來才能完成一個系統(tǒng)性的工作。而用例描述一個系統(tǒng)性的工作,這個系統(tǒng)性的工作往往非常明確地去達成一個特定的目標(biāo)。
第三,如果非要從功能角度解釋用例,那么用例刻意解釋為一系列完成一個特定目標(biāo)的“功能”的組合,針對不同的應(yīng)用場景,這些“功能”體現(xiàn)出不同的組合形式。并且,不是先有了這些“功能”才來組合成某個場景,而是先有了場景,才分解出“功能”,這時的功能之所以打引號是應(yīng)為在UML里面沒有功能這個詞的,實際上場景分解出來就是對象,這些對象通過消息相互交流而完成場景。
目標(biāo)和步驟誤區(qū)
一個用例是參與者對目標(biāo)系統(tǒng)的一個愿望,一個完整的事件。為了完成這個時間需要經(jīng)過很多步驟,但是這些步驟不能夠完整地反映參與者的目標(biāo),不能夠作為用例。
這就是用例的完整性。
用例粒度誤區(qū)
產(chǎn)生用例粒度錯誤的原因首先是分不清楚目標(biāo)和步驟。分不清目標(biāo)和步驟的另一個后果是用例的粒度過于細小。
產(chǎn)生這個錯誤的主要是建模者心中沒有一個清楚的邊界,我們知道用例決定參與者的完整期望,而參與者與邊界是相生相滅的,所以一旦邊界不確定,參與者就會混亂,進而導(dǎo)致用例粒度不一。
粒度大小如何決定,在同一個需求階段,必須保持所有用例的粒度在同一量級!
轉(zhuǎn)載于:https://www.cnblogs.com/HeroBeast/archive/2010/09/06/1819270.html
總結(jié)
- 上一篇: 在SharePoint 2010中通过S
- 下一篇: Devexpress 重新编译以后 重新