[案例研討] 烏龜訂購系統開發與實作 by UML and Java-05

四、表達使用案例與實作的實現關係 (Use Case Realization)

圖 3、表達使用案例與實作的實現關係
(點擊圖片鏈接看原圖)圖 3、表達使用案例與實作的實現關係

  • 若以物件導向的觀念實現使用案例,則系統內部的設計當以物件互動的合作 (collaboration),如 UML 循序圖 (sequence diagram)、溝通 (communication)圖等來表達。其作用為突顯該使用案例的功能,由 1 到 多個物件 (一般指位於中間層, middleware 內的物件),在系統執行期間 (run-time),透過訊息 (message)的傳遞,來達成功能的實現。

閱讀全文 »

[案例研討] 烏龜訂購系統開發與實作 by UML and Java-04

二、 利用使用案例圖規劃需求架構,決定系統開發範圍

界定系統開發範圍 (system boundary),找出功能性的使用案例 (use case)、以及使用系統的主要參與者 (primary actor),與外部系統提供服務的支援性參與者 (supporting actor)。

圖 2、利用使用案例圖界定系統開發範圍
(點擊圖片鏈接看原圖)圖 2、利用使用案例圖界定系統開發範圍

  • 參考上圖 2,從主要參與者的角度來看,使用案例只有三個: 「訂購烏龜」、「追蹤訂單」、「維護烏龜資訊」 。
  • 至於「結帳」、「新增、查詢、更新、刪除烏龜資訊」等,只是被包含 (include)或擴展 (extend)的子程序 (Sub-procedure)而已。
  • 使用案例實作的優先順序,一般係從關係利益人 (stakeholder) 其角度所看待價值最高的使用案例。

    呈現價值最高者,往往為交易類型的使用案例。如上圖「訂購烏龜」即為交易型的使用案例 (相對「維護烏龜資訊」則為資料維護型)。

  • 從下列實作步驟開始,即以該案例作為實作演練的範例。

閱讀全文 »

[案例研討] 烏龜訂購系統開發與實作 by UML and Java-03

Iteration-1 實現使用案例,打通技術關節

階段目標 (Sub-Goal)

  • 找出 精要 (essential)的使用案例 (use case),快速導出到實作階段,建立程式碼框架。
  • 找出並解決 從需求分析橋接至實作階段的過程間,所衍生出的技能、技術與溝通等風險問題。

本階段重視的是「打通管道」,包括需求至實作階段的產出承接,以及 IT 面 3-tier 的實體連結等。 至於需求功能的精確度,包括欄位細節與企業邏輯的正確性等,則留待至第二個 iteration 補足。

主要產出 (Artifacts)

  • 使用案例模型 (use case model),包括使用案例圖與敘述 (description)。
  • 表達每一個使用案例的控制物件類別圖 (class diagram)。
  • 表達參與者與控制物件之間互動的物件循序圖 (sequence diagram)。
  • 表達資料表格的 DDL (data definition language) 陳述文字檔。
  • 控制物件的程式碼與功能測試程式碼。
  • 簡單的 GUI 表單程式,展示與控制物件的連結互動。

實作步驟

閱讀全文 »

[案例研討] 烏龜訂購系統開發與實作 by UML and Java-02

兩階段開發的目標設定

重點說明

本案例的演練區分為兩個釋出 (release)階段。在現實的專案開發,每一個釋出版本都應該是可以滿足使用者的功能需求。兩個釋出版本的重心為:

第一個階段:快速實現功能需求,但保留了可以具延展性的 3-tier MVC框架。
第二個階段:找出穩定的共用元素,讓系統更有彈性。

第一個階段 (release #1)在內部的開發週期分為兩個循環 (iteration)。第一個循環 (iteration #1)快速實現幾個具代表性的使用案例,並打通技術關節。而相關於邏輯處理或欄位細節等,則留待第二個開發循環 ; 所以第二個開發循環 (iteration #2)著重在於對精細度的要求,包括欄位細節、企業規則的邏輯 (business rule logic),以及對於例外事件的處理 (exception handling)。

第二個版本的釋出 (release #2),則除了在於擴展系統功能外,還希望能就維護性、彈性度等議題來作調整。此階段重點在於對系統組成結構的重整 (物件與資料結構),或亦可在程式碼上對其重構 (re-factoring)。結構重整或重構皆為共用性設計議題的整合考量,所耗費的開發成本往往比較高 (但也相對容易提升系統的價值),且須具備相當基礎的軟體設計素養才有能力將軟體做軟 (keeping software soft)。

兩個不同階段時期的釋出版本要能順暢的橋接,至少要能有兩個必要的條件:

  1. 3-tier MVC (Model-View-Controller) 實體IT框架。
  2. 以使用案例為單位的功能性測試程式碼 (function test code)。

** 關於 Release 與 Iteration 的意義與差異,可參考:
http://www.kenming.idv.tw/soft_development_iteration_vs_release-2

閱讀全文 »

[案例研討] 烏龜訂購系統開發與實作 by UML and Java-01 (4/25 新增原始碼下載)

烏龜訂購系統開發實作與心得筆記
-從系統分析設計至實作與結構重整
(UML + Pure Java 版本)

實作目標

  1. 藉由一個極小型的案例,來展示開發階段 (包括 需求分析、結構設計、程式實作)的主要產出 (artifacts),以及這些產出之間的關聯性。
  2. 本案例在需求分析與結構設計面採用 UML Modeling;實作面則使用 pure Java (JSP/Servlet, Java, JDBC) 開發。
  3. 展示目標導向的功能開發 (以使用案例, Use Case 為功能開發單位)方式,如何快速從需求分析流暢地橋接至程式編碼的實作,並保留三層式 (3-tier)分層結構的 MVC (Model-View-Controller) 框架,而可以用最小成本,來應付未來系統結構重整階段 (亦可稱為重構, re-factoring),讓系統更具彈性與延展性。
  4. 了解目標導向的開發方式,應用在學習所謂“新的 IT 技術”,尤其是偏向實作面的 “How-to”,包括工具的操作,與程式的寫碼等,是如何從所設定的主要完成目標 (main-goal),再分解成數個階段性的子目標 (sub-goal),然後一次只克服一小段問題,再往前漸增推進,往下一個階段目標前進。
  5. 從實作練習的過程中,逐漸熟習工具與相關實作技術的使用。「快速學會 How-to (如何做)」的能力,才是技術人員首需具備的技能 (skill)。
  6. 本案例雖然簡單,但它是可以持續“成長”的。所以實作人員也可以將之當成範本,並整理所屬自己的「實作筆記」,以記錄每一階段的實作過程,並可註記自己的筆記心得。

基本設計原則

    閱讀全文 »
軟體思維顧問

專職軟體輔導與教育訓練的獨立顧問。輔導企業資訊單位如何有效組織系統開發與維護;輔導開發人員達成有效的專業分工。傳授如何把軟體作軟 (Keeping Software Soft)的技能,得以提昇系統的彈性/延展,並進而創造系統的再利用價值。

Personal