2007年6月27日 星期三

B09 功能需求(2)──Refine Actor & Use Case

完全對應客戶訪談的結果所列出的Actor與Use Case是一種原始的資料,如果直接依這個結果開發系統,每一個Use Case都各做各的事而完全沒有交集。就像每一個人都各自只從頭到尾處理自己的訂單一樣,許多Use Case裡都做了可以抽取出來的相同事項,每一次該事項出現都重覆投入資源去處理。所以在決定原始的Use Case Diagram之後我們緊接著要先做抽取相同部分的工作。

Actor間可以定義的關聯是繼承,繼承可以簡化許多原本複雜的關聯。當Actor1的全部Use Case是Actor2的一部分時,可將Actor1定義為繼承Actor2;當Actor3與Actor4的Use Case有大量的交集時,可以將交集的Use Case定義給一個新的Actor5,而Actor3與Actor4都繼承了Actor5。

Use Case可以定義的關係通常是繼承、include與extend。當Use Case1的定義是Use Case2內容的一部分時,Use Case2繼承Use Case1;當Use Case 3的主要流程一定會執行Use Case4的功能時,Use Case3 include Use Case4;當Use Case5根據某個特殊狀況的成立才需要執行Use Case6時,Use Case6 extend Use Case 5。

Refine需求模型只有原則而沒有標準,但是Actor與Use Case定義的好不好,卻對專案的設計有很大的影響。每個物件定義得越明確對未來會越有利,而且在定義後應讓專案人員review,一方面可以確認自己的定義是否合理,另一方面也讓其他人員明白自己對於系統的想法。

沒有留言:

張貼留言