This page looks plain and unstyled because you're using a non-standard compliant browser. To see it in its best form, please visit upgrade to a browser that supports web standards. It's free and painless.

Kenming's 軟體設計思維 會員登入 會員註冊

« 上一篇 | 下一篇 »

從使用案例圖中,可以明確地定義出系統的設計範圍—系統需提供哪些服務(每一個功能點服務即為使用案例)、誰會來使用系統、系統是否需要其它系統的支援。這對開發團隊的每一個成員,能具有整體性的共識,是相當有助益的。 再來就是決定優先開發的使用案例,通常那是對系統的利益關係人(stakeholder)而言,最有價值的,優先開發! 屬於企業服務層級的系統,屬於商業交易型的使用案例,通常是最具有價值的。 以「博X來訂購系統」為例,《訂購商品》與 《結帳商品》兩個使用案例,會是該系統最有價值的需求服務,參考如下圖1。

圖 1、找出價值最高的使用案例優先開發
圖 1、找出價值最高的使用案例優先開發

對於需求分析師(requirement analyst,RA)而言,為每一個使用案例來寫出使用案例的需求陳述(use case description)才是最重要的。 使用案例敘述要能寫得好的訣竅就在於,只專注描述參與者(actor)與系統的互動對話;也可以這麼說,當參與者(一般為使用者)在使用系統上線的期間(session),RA 要能觀察出參與者與系統會有幾次的訊息傳遞(message passing),然後將之寫成具散文格式的動作步驟,到完成最後一個步驟時,系統即能滿足參與者使用系統的目的。

下表是針對上圖1 的每一個橢圓型使用案例來寫作使用案例敘述。 使用案例敘述的格式並沒有標準,不過最主要的欄位是必然會有一個表達正常情節(scenario)的事件流程(flow of events),以及一到多個表達例外(exception)或擴展(extend)情節的處理陳述。

看起來好像有許多個使用案例敘述? 其實不然,這就是圖形的迷思,雖然 UML 規格是定義被《include》或《extend》的每一個橢圓也算是一個使用案例,不過當從參與者的角度來看時,上圖1非常明顯,只有兩個目的:《訂購商品》與《結帳商品》,所以其實 RA 只要寫出兩個完成的需求案例敘述即可。若是堅持要遵守從圖形中為每一個橢圓來寫需求敘述,如此可能會太分散而造成沒有一致性閱讀的感覺,不過這到不是絕對的,每一個團隊可以找出適合自己風格的寫作方式。 在此例我是以後者的方式來寫作的,原因是在於可以利用 UML 工具的文件產出(document generazation)功能來快速整理出符合客戶或公司所需的需求規格報表(requirement specification report)。

還有一點要留意的是,使用案例的敘述內不要詳細的去記錄如 欄位明細、查詢條件、企業規則(business rule) 等,參考下表,我會把這些經常會變動的細節中括號起來,然後會註明在另一份的文件,或是利用如 EA UML 工具,可以將這些細節整理在在該使用案例其它欄位內(如 constraint 欄位)。

訂購商品
Pre Condition
1.	使用者已登入 (Logon)系統。
Basic Course of Events
1.	使用者可以瀏覽各類商品資訊。
2.	Inclue <<放入購物車>>。
Alternatives and Exceptions

放入購物車
Pre Condition
Basic Course of Events
1.	使用者選擇一件商品放入購物車內。
2.	系統列出 [購物車明細]。
Alternatives and Exceptions
*取消購物車內商品
2a. 使用者可以取消購物車內的商品。
Require
[購物車明細]
商品明細、優惠價、數量、小計、庫存數、商品總額。

結帳商品
Pre Condition
Basic Course of Events
1.	Inclue <<選擇付款方式>>。
2.	extension point <<更新基本資料>>。
3.	系統列出本次 [訂購明細], [付款方式與寄送資訊]。
4.	使用者確認並送出訂購資訊。
Alternatives and Exceptions
Require
[訂購明細]
商品明細、優惠價、數量、小計、現貨庫存、訂購總額
[付款方式與寄送資訊]
付款方式、聯絡人、寄送資訊

選擇付款方式
Pre Condition
Basic Course of Events
1.	使用者可以選擇系統列出其中之一的付款方式。
2.	extension point: <<選擇付款方式>>。

選擇7-11門市 
Pre Condition
Basic Course of Events
1.	使用者輸入 [選擇7-11查詢條件]。
2.	系統請 統X EC 系統列出符合條件的 7-11 門市資訊。
3.	使用者選擇其一欲取貨的 7-11 門市。
4.	系統記錄使用者所選擇的 7-11 門市。
Alternatives and Exceptions
Require
[選擇7-11查詢條件]
查詢條件可以是以縣市、路名或門市名稱。
※ 延伸參考:
 o 三論「博X來」— 訂購商品與結帳是否是同一個使用案例?
 o 再論 博X來「選擇 7-11 門市」功能設計
 o 實在難以忍受的網路購書流程