如何撰寫有效的使用案例

你是否為你的系統撰寫了良好的使用案例?

軟體開發中最困難的問題之一,就是準確地捕捉你想要建構的內容。不準確的需求最終可能導致重大專案延遲、返工,甚至放棄。

有效應用使用案例技術,可幫助你的團隊從使用者的角度捕捉需求,這對終端使用者和你的團隊來說都容易理解。以使用案例為導向的開發,可支援後續的開發活動,例如分析、設計與測試。

use case diagram example

什麼是使用案例?

objective

使用案例是參與者為了達成可觀察的業務目標而希望執行的事項。它們應以簡短的動詞或動詞+名詞短語命名。應使用具體的動詞和名詞以避免歧義。應盡可能避免使用「執行」和「進行」等動詞,以及「資料」和「資訊」等名詞。

理論上,終端使用者將執行系統所支援的動作,以達成使用案例分析中所識別的最終目標。以線上飯店預訂系統為例,「預訂」無疑是一個業務目標,因此也是一個使用案例。使用者可能也希望能在線上地圖上找到飯店。然而,這並非使用案例,因為該動作本身並不會產生任何可觀察的目標。

將與實作問題相關的需求建模為使用案例是不恰當的,例如支援多重發生、部署安排、建立資料庫等。所有這些都是錯誤的,可能會導致建立出不良甚至錯誤的系統。

使用者故事現已廣泛使用

任何具備軟體開發經驗的人,都可能遇到終端使用者與開發團隊之間的溝通問題。當成員在不同遠端地點工作時,這種情況可能更加嚴重。使用者故事是與客戶展開討論的絕佳方式,可確保我們真正理解他們實際的需求。

由產品負責人撰寫的使用者故事,以簡潔明瞭的方式捕捉需求的「誰」、「做什麼」和「為什麼」,通常以非技術性、自然語言撰寫。

敏捷開發已成為用於需求探勘的主流開發方法之一,與使用者故事一同廣泛應用。

實務考量

通常,一個平均有10名成員的敏捷團隊,在工作流程中可能擁有數百個使用者故事,其中一些彼此關聯,並由大型故事(epics)或前一輪Sprint的詳細使用者故事拆分而成。使用者故事是一種暫時性的產物,僅存在於Sprint期間,開發迭代結束後即被捨棄。

敏捷團隊與Scrum成員經常發現,他們很容易變得難以管理且難以整齊有序地組織,特別是當團隊成員希望參考前幾個Sprint中的相關使用者故事時。

相反地,使用案例旨在貫穿整個軟體開發生命週期,並可作為一個佔位符,用以存放大型故事範圍內相關的使用者故事。此外,使用案例也旨在成為開發團隊持續參考的依據。

Overview of user stories creation

什麼是使用案例圖?

使用案例圖是一種統一模型語言(UML)圖表,用於需求探勘,由物件管理集團(OMG)所定義。使用案例圖提供了使用者(以參與者表示)透過使用系統(以系統邊界表示,可選)所希望達成目標(以使用案例建模)的圖形化概覽。

使用案例圖中的使用案例可根據其相關性、抽象層級及對使用者的影響進行組織與排列。它們可以相互連接,以顯示其依賴性、包含與擴展關係。以使用案例圖進行建模的主要目的,是透過識別使用者的需求來建立系統的穩固基礎。根據分析結果,便可進一步研究如何滿足這些使用者需求。

use case diagram example使用案例圖主要由參與者、使用案例和關聯(連接器)組成。

參與者是任何與系統互動以達成使用者目標的人或外部系統。參與者分為兩種類型——主要參與者與次要參與者。

  • 主要參與者是任何與系統互動以獲得直接利益的人或事物。
  • 次要參與者是參與達成使用案例的人或事物,但他們並不會從系統中獲得直接利益。通常,次要參與者是協助主要參與者達成使用案例的人。

在Visual Paradigm中繪製使用案例圖

在本教程中,我們將以線上飯店預訂系統為範例,示範如何使用Visual Paradigm撰寫有效的使用案例。我們先從繪製使用案例圖開始,接著根據所得設計繼續撰寫有效的使用案例。

  1. 透過選擇「UeXceler > UeXceler從應用程式工具列。
  2. 開啟使用案例圖頁面。
    Open use case diagram
  3. 選擇參與者於圖表工具列中。點擊圖表以建立參與者並命名為顧客.
    actor
  4. 顧客可以預訂飯店房間,這是系統的一個使用案例。讓我們從顧客參與者開始建立使用案例。將滑鼠指標移至顧客參與者。按一下資源目錄圖示於右上角並拖曳出來。
    create use case
  5. 選擇關聯 -> 使用案例於資源目錄中。
    select use case in resource catalog
  6. 放開滑鼠按鈕以建立使用案例。命名為預訂。參與者與使用案例之間的關聯表示參與者將與系統互動以達成相關的使用案例。
  7. 完成設計,使其看起來像這樣:
    Use case diagram example

透過使用者故事詳述使用案例

雖然使用案例是待開發資訊系統的業務目標,使用者故事則代表分析師與一線利益相關者在詳細討論使用案例時所捕捉到的使用者問題或關切點。毫無疑問,所有捕捉到的使用者故事都旨在實現資訊系統的業務目標。

  1. 右鍵按一下預訂並選擇開啟使用案例詳細資訊… 從彈出式功能表中。
    open use case details
  2. 開啟使用者故事頁面。
    Open user story tab
  3. 透過雙擊標籤內的空白區域來建立使用者故事。建立三個故事:搜尋飯店, 預訂飯店處理緊急預訂.
    User stories created

捕捉使用者故事情境

使用者故事告訴你終端使用者想要達成的目標,首先需識別他們的問題。一旦確認問題,便可開始尋找解決方案。使用者故事情境工具可讓你草擬出角色與系統之間的互動,以解決使用者故事中描述的問題。你可以使用此工具來識別使用者期望的系統行為。

使用者故事情境構成一個高階的使用者-系統對話,其目的是了解角色的意圖或行動,以及系統如何回應這些角色的輸入。在決定事件串流中應包含哪些內容時,應保持簡潔。不要包含實作細節,例如系統如何內部處理使用者輸入,或甚至插入資料庫記錄。這是錯誤的,因為使用者故事,以及實際上的用例分析,都是為了從終端使用者的觀點來識別需求。然而,實作細節可以以使用者故事的子圖形式,在UML序列圖中進行建模。

讓我們來撰寫一個使用者故事的情境。

  1. 雙擊使用者故事搜尋飯店以開啟它。
    Open user story
  2. 開啟情境標籤。情境編輯器由稱為步驟的列組成。每個步驟代表一個角色輸入或系統回應。
    Open user story scenario tab
  3. 點選第一個步驟,並輸入第一個使用者輸入:輸入城市、抵達日期、離開日期、房型,然後按一下搜尋.
    Entered first step
  4. 使用位於UeXceler工具列下的格式工具,將文字搜尋設為藍色且加粗,以強調。
    Format scenario step text
  5. 輸入以完成此步驟。系統將為您建立步驟 2。
  6. 步驟 2 與系統對使用者輸入的回應有關。您可以從撰寫「系統……」開始,但有更佳的方式來呈現系統回應。請選擇UeXceler > 新增控制項 > 系統回應從工具列中選擇,以新增系統回應的步驟。
    Add system response to scenario
  7. 現在您可以輸入步驟 2 的內容:顯示飯店清單.
    Entering system response text
  8. 新增以下步驟:
    使用者輸入 系統回應
    點選飯店的商標以查看詳細資訊
    顯示飯店詳細資訊

    Scenario steps entered

更多內容 – 建立情境導向的線框圖

線框圖線框圖是使用者介面的草圖。它有助於您在需求收集初期,呈現待開發系統的畫面與畫面流程。您可以將線框圖與情境中的步驟關聯。本節將示範如何使用線框圖工具將線框圖新增至步驟的方法。

  1. 點選第一個步驟。
    Select first step
  2. 將滑鼠指標移至右側的綠色三角形。然後點選定義線框圖.
    Define wireframe
  3. 您看到右側出現灰色面板了嗎?點選它以選擇要建立的線框圖類型。
    Create wireframe
  4. 在浮出視窗中,選擇網站.
    Select wireframe type
  5. 點選新網站線框圖。出現一個新的線框圖,其中包含一個空白的瀏覽器視窗。您可以在這裡準備網站的樣板。
  6. 在開始將不同元件加入瀏覽器視窗之前,我們先將它縮小。點選瀏覽器視窗的標題。
  7. 點擊後,調整大小的控制點會出現在瀏覽器視窗周圍,讓您手動調整視窗大小。讓我們嘗試更直接的方法。在瀏覽器標題上右鍵點擊,並選擇瀏覽器大小(1024 x 768)> 800 x 600從彈出式功能表中選擇。
    Resize wireframe
  8. 利用圖示工具列中列出的線框工具,建立類似這樣的線框:
    Wireframe created
  9. 點擊步驟標題旁的三角形按鈕,返回情境編輯器。
    Go back to scenario editor
    完成後,您可以在情境編輯器中看到您的線框縮圖出現。
    Wireframe added

參考資料:

Leave a Reply