四、表達使用案例與實作的實現關係 (Use Case Realization)
- 若以物件導向的觀念實現使用案例,則系統內部的設計當以物件互動的合作 (collaboration),如 UML 循序圖 (sequence diagram)、溝通 (communication)圖等來表達。其作用為突顯該使用案例的功能,由 1 到 多個物件 (一般指位於中間層, middleware 內的物件),在系統執行期間 (run-time),透過訊息 (message)的傳遞,來達成功能的實現。
界定系統開發範圍 (system boundary),找出功能性的使用案例 (use case)、以及使用系統的主要參與者 (primary actor),與外部系統提供服務的支援性參與者 (supporting actor)。
(點擊圖片鏈接看原圖)圖 2、利用使用案例圖界定系統開發範圍
呈現價值最高者,往往為交易類型的使用案例。如上圖「訂購烏龜」即為交易型的使用案例 (相對「維護烏龜資訊」則為資料維護型)。
本階段重視的是「打通管道」,包括需求至實作階段的產出承接,以及 IT 面 3-tier 的實體連結等。 至於需求功能的精確度,包括欄位細節與企業邏輯的正確性等,則留待至第二個 iteration 補足。
本案例的演練區分為兩個釋出 (release)階段。在現實的專案開發,每一個釋出版本都應該是可以滿足使用者的功能需求。兩個釋出版本的重心為:
第一個階段:快速實現功能需求,但保留了可以具延展性的 3-tier MVC框架。
第二個階段:找出穩定的共用元素,讓系統更有彈性。
第一個階段 (release #1)在內部的開發週期分為兩個循環 (iteration)。第一個循環 (iteration #1)快速實現幾個具代表性的使用案例,並打通技術關節。而相關於邏輯處理或欄位細節等,則留待第二個開發循環 ; 所以第二個開發循環 (iteration #2)著重在於對精細度的要求,包括欄位細節、企業規則的邏輯 (business rule logic),以及對於例外事件的處理 (exception handling)。
第二個版本的釋出 (release #2),則除了在於擴展系統功能外,還希望能就維護性、彈性度等議題來作調整。此階段重點在於對系統組成結構的重整 (物件與資料結構),或亦可在程式碼上對其重構 (re-factoring)。結構重整或重構皆為共用性設計議題的整合考量,所耗費的開發成本往往比較高 (但也相對容易提升系統的價值),且須具備相當基礎的軟體設計素養才有能力將軟體做軟 (keeping software soft)。
兩個不同階段時期的釋出版本要能順暢的橋接,至少要能有兩個必要的條件:
** 關於 Release 與 Iteration 的意義與差異,可參考:
http://www.kenming.idv.tw/soft_development_iteration_vs_release-2