2008年11月16日 星期日

[Head First OOAD] 給客戶所需之物:收集需求

關於使用案例(Use Case)


  1. 系統運作的正確與否是由客戶決定的,因此,假如你漏掉某項需求,或者他們忘了跟你提,系統還是沒有正常運作。


  2. 談到需求時,最好讓客戶自己說。仔細聆聽,注意系統需要作什麼:稍後在整理出系統要如何做那些事。一組好需求不止於客戶告訴你的是,甚至在不尋常或是出乎意料的環境與使用情況下還要能夠確保系總是能運作。

  3. 使用案例是人們對系統為讓某事發生所採取步驟的稱呼。A use case describes what system does to accomplish a particular customer goal.

  4. 使用案例是捕捉新系統或軟體變更的潛在需求之技術。

  5. 每個使用案例提供一個或多個使用情節(scenario),傳達系統如何與終端使用者(enduser)或其他系統互動,完成特定目標。


使用案例可分為三部分


清楚的價值(clear value)


每個使用案例都必須對系統有清楚的價值。假如使用案例無助於客戶達成目標,這個使用案例便沒有什麼價值。


起點與終點


每個使用案例都必須有明確的起點(starting point)與終點(stopping point),某件事開始此流程,然後有條件(condition)指明流程已完成。


外部啟動者


每個使用案例由外部啟動者(external initiator)開啟,有時啟動者是人,有時可能是系統外的任何事物。


使用案例的相關疑問


  1. 使用案例的關鍵要點之一,是把焦點放在完成一個特定目標上;若系統作一件以上的事情,那就需要一個以上的使用案例。

  2. 使用案例企圖幫你了解系統應該作什麼 - 往往可以像別人(例如:客戶、老闆)解釋該系統;因此使用案例應該用簡單、日常生活的語言。

  3. 使用案例與使用案例圖(Use Case Diagram)是不同的。

  4. 使用案例通常是步驟清單,而使用案例圖是以視覺化的方式顯示使用案例。

  5. 使用案例的目的不在於說明如何撰寫程式碼。

重點名詞


External Initiator
:啟動使用案例所描述的步驟清單,沒有它,使用案例是不會開始進行的。

Use Case:幫助你收集好需求,並詳述系統作什麼。

Start Condition:這通常是使用案例的第一步。

Requirement:系統要成功所必須做到的事情。

Clear Value:沒有它,使用案例對人就沒有價值;沒有它,使用案例通常會失敗。

Stop Condition:讓你知道使用案例何時結束。沒有它,使用案例會永遠繼續下去。

Main Path:當一切正常運作時,系統在做的事。這通常是客戶談論系統時所描述的事。


需求


  • 好的需求確保你的系統如客戶所預期的那樣運作。

  • 確認需求涵蓋系統的所有使用案例。

  • 運用使用案例找出客戶忘了告訴你的事情。

  • 使用案例將揭露任何不完整、闕漏的的需求,你可能必須將它們家到你的系統裡。

重點整理


  • 需求是系統為了正確運作所要作的事。

  • 最初的需求通常來自客戶。

  • 為了確保你有一組好需求,要發展出系統的使用案例。

  • 使用案例詳述系統確切應該作什麼。

  • 一個使用案例具有單一的目標,但內含多重的路徑,到達此目標。

  • 好的使用案例具有起始與終止條件、外部啟動者、並且對使用者具有清楚的價值。

  • 一個使用案例就是一則系統如何運作的故事。

  • 對系統要達成的每一個目標,你至少會有一個使用案例。

  • 在使用案例完成後,你可藉由他精鍊並增加你的需求。

  • 確保所有使用案例皆可行的需求清單是一組好的需求。

  • 你的系統必須運作在真實世界裡,而不只是在你預期的狀況中。

  • 當事情有錯時,你必須有替代路徑,到達你的目標。

沒有留言:

張貼留言