才成立。盡管一些書寫用例的方法將它描述成敘述用例事務(wù)的另一種方法,但畢竟它不是標準的方式。
用例事務(wù)不是一個“刺激源”
有些作者建議“用戶運行的刺激源的存在性就是定義事務(wù)的部分”。盡管一次事務(wù)總是從一個刺激源開始(就是用戶進行了一項觸發(fā)系統(tǒng)反應(yīng)的操作),刺激源本身并不是完整的事務(wù)。假設(shè)您擁有一個以下的用例描述:
用戶選擇一個 X.
…
(n)用戶提交。
…
現(xiàn)在還不清楚系統(tǒng)是否對步驟(1)和(n)中刺激源作出了反應(yīng),或者系統(tǒng)是否對步驟(1)或者步驟(n)分別作出。因此,兩個刺激源可以組成一個或者兩個事務(wù)。它并不取決于刺激源,而是取決于刺激源和回應(yīng)的組合。
用例事務(wù)并不是一個數(shù)據(jù)庫活動
在 Web 上進行的許多次討論中,您可以找到定義為“一系列要么完全執(zhí)行,要么一點也不執(zhí)行的活動”的用例事務(wù)。該定義聽起來像是數(shù)據(jù)庫管理系統(tǒng)中的一個事務(wù)性機理,如果它沒有正常運行的話該步驟可以返回。在我們的經(jīng)驗中,這不是在一個用例描述中將一片內(nèi)容與另一片內(nèi)容隔離起來的方法。它也行會激發(fā)一個想法,也就是事務(wù)在一定程度上與數(shù)據(jù)庫中的讀寫操作相關(guān)。但是,在一個環(huán)形路線中,系統(tǒng)根本不用查詢數(shù)據(jù)庫也是可能的。這個過程中數(shù)據(jù)庫也行根本不會涉及到,或者數(shù)據(jù)來自系統(tǒng)以外。因此得出用例事務(wù)一定會與數(shù)據(jù)庫中的事務(wù)聯(lián)系起來的結(jié)論是不合適的。
用例事務(wù)不是一個系統(tǒng)步驟
用例事務(wù)中的系統(tǒng)可能會在一步完成。表面上,我們可能會得出用例事務(wù)只是一個系統(tǒng)步驟。但是,一個系統(tǒng)步驟并不是描述用例事務(wù)的一個較好的基礎(chǔ),因為它取決于對您計算的多少步驟的描述。而且,系統(tǒng)本身并沒有多少涉及到Actor與系統(tǒng)之間的聯(lián)系。換句話說,您的估算應(yīng)該基于“環(huán)形的”事務(wù),而不是系統(tǒng)步驟。
范例:復(fù)雜的用戶界面
用例事務(wù)的“環(huán)形路線”方法,在估算用戶界面復(fù)雜性方面顯示出其價值。一個范例就是工作入口項目,在這個項目中可以設(shè)計出一個工作設(shè)計機器。在基于用例模型(Survey)的早期估算中,工作搜索界面被認為是簡單的;用戶可以從一系列的下拉菜單中選擇搜索項,然后進行選擇。但是,在用于產(chǎn)生用例描述的用戶界面中,如果系統(tǒng)可以對已作出的選擇進行回應(yīng),并更改后續(xù)下拉菜單中內(nèi)容的話,那么可以預(yù)見應(yīng)用的可用性會得到提高。換句話說,本來應(yīng)該是一個的事務(wù)現(xiàn)在變成了兩個。
這里是用例配置的第一個草稿:
該段文字擴展如下:
這里您可以看到兩個“環(huán)形路線”。將用例配置當作證明,查看調(diào)整初始估算后的合理性變得容易起來。
將用例事務(wù)保持在一定的層次上
如果用例事務(wù)是一個緊跟系統(tǒng)回應(yīng)的刺激源,那么它十分能夠計算成一個事務(wù)?例如,如果我從我的鍵盤上敲入一個“K”,那么這就是一個刺激源,然后系統(tǒng)會通過在屏幕上顯示一個能組成“K”的像素點來回應(yīng)這個刺激源。所以,我們以前推薦的定義是不是太狹隘了?
不,不是這樣的。它顯示您理解用例事務(wù)時,應(yīng)該與用例事務(wù)本身被理解保持同一個層次?,F(xiàn)在,您可能對輸入字母這種操作不感興趣,當字母出現(xiàn)在屏幕上的,您就會覺得這是理所當然的;您不需要在系統(tǒng)中構(gòu)建什么東西來產(chǎn)生結(jié)果。但是,如果您的內(nèi)容是描述鍵盤模型與圖形化反應(yīng)器,這樣一個用例事務(wù)是十分合理的。
怎樣計算事務(wù)
既然您已經(jīng)看到了決定什么是以及什么不是用例事務(wù)的清晰解釋,讓我們檢查在用例中計算事務(wù)的一些挑戰(zhàn)。如上面所述,用例的權(quán)重是由它所包含的用例事務(wù)的數(shù)量所決定的,但是,什么時候系統(tǒng)對刺激源的反應(yīng)會計算成不同的?
使用用例事務(wù)與流程
讓我們通過檢查上面介紹過的工作入口的搜索流程開始。如果用戶在尋找一個“Java”類型的工作,他選擇了 Java,然后系統(tǒng)會在數(shù)據(jù)庫中搜索這種類型的所有工作。當用戶尋找一個“.Net”類型的工作,它選擇了.Net。然后系統(tǒng)會搜索數(shù)據(jù)庫來找到該類型的所有工作。這兩種是不是不同的事務(wù)?當然不是。用例配置本身是抽象的或者通用的,在這個意義上您不要對不同的搜索項期待不同的流程。這只不過是安裝過程中的一點不同。但是,您可以對一個使用預(yù)定義類型或者自由格式文本的搜索期待不同的流程。