作業: 詳述使用案例
這項作業是要將詳細資料加入特定的使用案例中。
規範: 需求
目的

這項作業的目的如下:

  • 說明事件的一或多個使用案例流程,詳細程度要足以能用來開始進行軟體開發作業。
  • 依參與者代表或客戶的瞭解和滿足程度,提供使用案例的詳細資料。
關係
步驟
審查及修正情境

從您在目前的開發週期中需要處理的情境,開始進行審查和修正。這些項目可能早在作業:尋找參與者與使用案例時,就已經指出了。請使用這些列舉的情境,作為用來決定需要說明哪些流程的範圍之開始點。

詳述事件流程

作業:尋找參與者與使用案例時,您可能就已經提出事件的使用案例流程概要。請使用此概要作為開始點,並逐漸加入更多詳細資料。

分鏡腳本可協助您瞭解及詳述使用案例流程。如果已經有開發使用者介面原型的話,這也是另一個可以考慮的輸入。

依據專案決定採用的標準,來說明使用案例。在說明使用案例之前,請先決定下列事項,以便所有使用案例都能維持一致:

  • 使用案例如何開始?使用案例的開始必須明確說明啟動使用案例的信號。例如,寫下「當發生 ... 時,就會開始使用案例」。
  • 使用案例如何終止?您應該清楚指出在流程中發生什麼狀況時,就會終止使用案例。例如,寫下「當發生 ... 時,就會終止使用案例」。
  • 使用案例如何與參與者互動?為了盡可能避免任何誤解,請確切指出什麼會存在系統中,以及什麼會存在系統外。將說明的結構排列為一系列的段落,每個段落都依此格式表示一個動作:「當參與者做 ... 時,系統就會 ...」。您也可以藉由寫出使用案例會從參與者傳送及接收信號,來強調出互動關係,例如:「當使用案例從操作員收到『開始』信號時,使用案例就會開始」。
  • 使用案例如何與參與者交換資料?您也可以視需要和偏好,參照信號的引數,不過,寫出如「當使用者提供其名稱和密碼以登入系統時,使用案例就會開始」會更好。
  • 使用案例如何重複某些行為?您應該嘗試以自然語言來表示這一點。不過,在某些特殊的情況下,如果相對應的自然語言詞彙極難表示時,則可以使用類似程式碼的架構,例如 "WHILE-END WHILE"、"IF-THEN-ELSE" 以及 "LOOP-END LOOP" 等。不過,一般而言,您應該盡可能在使用案例說明中避免使用類似程式碼的架構,因為類似程式碼的架構很難讀和維護。
  • 事件的使用案例流程中是否有任何選用的狀況?有時參與者會被提供數個選項。這種狀況也應該以相同的方式寫出。例如:

    「參與者選擇下列其中一項一或多次:

    a) . . .

    b) . . .

    c) . . ." 等等。

  • 使用案例應該如何說明,才能讓客戶和使用者容易瞭解?使用諸如使用案例、參與者及信號等 方法學特有的專有名詞時,可能會使得文字極難理解。為了使文字容易閱讀理解,可以列舉出動作,或是採用別的策略。但是不論使用什麼策略,都應該在一般的使用案例模型準則中指出,以便您在說明使用案例的整個作業期間,都能記住這一點。

請將焦點集中在使用案例會做什麼,而不要集中在應該如何解決系統內部的特定問題。那些詳細資料會在生命週期的稍後考慮,因此請不要在這個時候過度詳細說明那些部分。只要說明您認為哪些在稍後會較穩定即可。

如果事件的使用案例流程變成非常龐大或複雜,或其中有些部分看似與其他部分互相分離時,可以將其分割為兩個或兩個以上的使用案例。

在撰寫說明文字時,請參閱工作成果:名詞解釋。若新的概念又蹦現出新的詞彙時,請將新詞彙加入名詞解釋中。不可在沒有通知適當的專案成員之前,就逕自更改詞彙的定義。如需詳細資訊,請參閱作業:擷取共用詞彙

事件流程內容說明

事件流程說明會探討:

  • 使用案例的開始方式和時機。
範例:

「當使用者啟動『管理訂單』時,使用案例就會開始」。

  • 使用案例何時會與參與者互動,以及會交換什麼資料。
範例:

「若要建立新訂單,使用者要啟動『新增』功能,並指定下列有關訂單的必要資料:名稱、網路元素(至少一個)以及測量功能類型。也可以指定和訂單有關的選用資料:註解(一段簡短的文字說明)。使用者接著啟動「確定」功能,如此就會在系統中建立一張新訂單」。

注意:您必須明確指出參與者和使用案例之間交換的資料;否則客戶和使用者可能無法理解使用案例說明。

  • 使用案例如何使用系統中儲存的資料以及使用時機,或是將資料儲存在系統中。
範例:

「使用者啟動『修改』功能以修改現有的訂單,並指定訂單號碼(小的整數)。系統隨即起始設定訂單表格,其中包含訂單名稱、其網路元素以及測量功能類型。這項資料是從次要儲存裝置擷取」。

  • 使用案例的結束方式和時機。
範例:

「當訂單人員啟動「結束」功能時,使用案例就會結束」。

您也應該說明事件較不尋常或異常的流程。異常的流程是使用案例的一個子流程,它不屬於使用案例的正常或基本行為。不過,這個流程在使用案例行為的任何完整說明中,卻可能是必要的流程。典型的異常流程範例是如以下提供的第一個範例。如果使用案例收到一些非預期的資料(參與者不是該特定環境定義的預期參與者),使用案例就會終止。具有錯誤的參與者並提前終止並不是事件的典型流程。

在說明使用案例時應該考量的其他應做和不應做的項目包括:

  • 說明事件流程,而不只是說明使用案例的功能或用途。
  • 只說明屬於使用案例的事件,不要說明和此使用案例平行運作的其他使用案例發生了什麼。
  • 不要提不會和要說明的使用案例互動的參與者。
  • 說明使用案例和任何參與者之間的互動時,不要提供過多明細。
  • 如果不需要固定針對使用案例說明的子流程次序時,不要將其說明成如同需要固定一樣。
  • 使用一般名詞解釋中的詞彙,並在撰寫文字時,考量下列事項:
  • 使用直接明確的詞彙。有簡單的詞彙可以用時,就不要使用複雜的詞彙。
  • 撰寫的句子要簡短、具體。
  • 避免使用諸如非常、較、而非等的副詞。
  • 使用正確的標點。
  • 避免複合句。

如需詳細資訊,請參閱準則:使用案例中,有關事件流程的內容與樣式討論。  

事件流程的結構

事件的使用案例流程可以劃分為數個子流程。當啟動使用案例時,如果下列條件成立,子流程就可以依多種方式合併:

  • 使用案例可以從數個可能的途徑之一開始,視來自給定的參與者之輸入,或是某些屬性或物件的值而定。例如,參與者可以從多個選項中,決定接著要執行的動作,或如果某個值大於或小於特定值時,事件流程就可能有所不同。
範例:

在自動提款機的使用案例「提錢」的部分說明可以是「客戶要從帳戶提出的金額,會和帳戶的餘額做比較。如果提款金額超過帳戶餘額時,就會通知客戶,並且會終止使用案例。否則,就會從帳戶取出所要金額」。

  • 使用案例可以在選用序列中,執行一些子流程。
  • 使用案例可以同時執行數個子流程。

您必須說明所有這些選用的或替代的流程。建議您在「事件流程」區段的個別補充處,說明每一個子流程,並且在下列情況時,必須是必要的:

  • 子流程佔據給定的事件流程之大部分區段。
  • 事件的異常流程。這會有助於突顯出使用案例的基本事件流程。
  • 可以在相同的事件流程的多個間隔執行的任何子流程。

如果子流程只佔完整的事件流程的一小部分,最好能在文字主體內加以說明。

範例:

「當參與的訂單人員或『效能管理程式管理員』呼叫『管理訂單』功能時,就會啟動此使用案例」。如果信號不是來自這些參與者之一,使用案例就會終止作業,並向使用者顯示適當的訊息。不過,如果參與者受認可,使用案例就會開始進行 ...」。

您可以使用作業圖來說明事件流程的結構,請參閱準則:使用案例模型中的活動圖。  

如需詳細資訊,請參閱準則:使用案例中,有關結構的區段。

使用參與者及其他使用案例說明關係

建立使用案例圖,來顯示使用案例與參與者及其他使用案例的關係。這類型的圖可以當作使用案例的本端圖,並且應該和使用案例相關。請注意,這類本端使用案例圖通常作用不大,除非使用案例的使用案例關係需要做解釋,或所涵蓋的參與者中,有不尋常的複雜性存在。

如需詳細資訊,請參閱準則:使用案例圖

說明任何特殊需求

可能和使用案例相關聯,但卻未在使用案例的「事件流程」中納入考量的任何需求,都應該在使用案例的「特殊需求」中說明。這類需求很可能是非功能方面的需求。

如需詳細資訊,請參閱準則:使用案例中,有關特殊需求的區段。

定義通訊協定

定義要讓身份為其他系統或外部硬體的任何參與者使用的通訊協定。如果要使用某些現有的通訊協定 (特別是受認可的通訊協定或被視為標準的通訊協定),使用案例的說明只要指出通訊協定名稱即可。如果通訊協定是新的,您就需要在開發物件模型期間,完整說明通訊協定定義的所在位置。

說明前置條件

使用案例的前置條件說明若要啟動使用案例時,系統必須處於什麼狀態。

範例:

為了讓 ATM 系統提供現金,必須滿足下列條件:

  • 必須可存取 ATM 網路。
  • ATM 必須處於可以接受交易的狀態。
  • ATM 必須至少有一些現金可以支出。
  • ATM 必須具有足夠的紙張可以至少列印一次交易的收據。

這些都是「支付現金」使用案例的有效條件。

請審慎說明系統狀態;避免說明在此使用案例之前所可能發生的其他偶發作業的明細。

前置條件並不會用來建立一序列的使用案例。絕不會有任何情況是必須先執行一個使用案例,然後再執行另一個使用案例,才能取得具有意義的事件流程。如果您認為有需要進行這種動作時,這表示您可能把使用案例模型分割得太細了。更正這個問題的做法是將循序相依的使用案例合併成一個使用案例。如果這個做法導致所產生的使用案例變成太複雜,請考慮如先前的「使用案例的事件流程結構」步驟,或作業:組織使用案例模型顯示的組織使用案例結構的技術。

如需詳細資訊,請參閱準則:使用案例中,有關前置條件的區段。

說明後置條件

使用案例的後置條件會列出在使用案例結束時,系統可能會呈現的狀態。在使用案例執行結束時,系統必須處於其中一個狀態。後置條件也用來指出在使用案例結束時,不論使用案例發生了什麼情況,系統都會執行的動作。

範例

如果在使用案例結束時,ATM 一律會顯示「歡迎使用」訊息,就可以在使用案例的後置條件中記下這一點。

同理,如果在如「提現金」的使用案例結束時,不論事件的發生路徑為何,ATM 一律會關閉客戶的交易,就必須將這個事實記錄為使用案例的後置條件。

後置條件是用來降低使用案例的複雜度,並改善使用案例的事件流程可讀性。

後置條件絕不可用來建立一序列的使用案例。絕不能有任何情況是必須先執行一個使用案例,然後再執行另一個使用案例,才能取得具有意義的事件流程。如果您覺得有需要這樣做,請將循序的相依使用案例合併成一個使用案例。如果這個做法導致所產生的使用案例變成太複雜,請考慮如先前的「使用案例的事件流程結構」步驟,或作業:組織使用案例模型顯示的組織使用案例結構的技術。

如需詳細資訊,請參閱準則:使用案例中,有關後置條件的區段。

說明延伸點

如果使用案例要供其他使用案例延伸(請參閱準則:延伸關係),您需要說明延伸點為何(請參閱 準則:使用案例的延伸點區段。

評估成果

和有關人員審查及討論使用案例,讓他們清楚瞭解使用案例並同意所使用的說明。

使用案例的說明若指出其執行、實作或從開始進行到結束的所有項目時,才算是完整的說明。在完成之前,請檢查使用案例確實具有作為好的使用案例之特質。如需詳細資訊,請參閱核對清單:使用案例

詳細資訊