【單元課程】活用 UML 三劍客與實作程式碼 (2008/04/12,13,20)

近日 HSDc. 規劃了「活用 UML 三劍客與實作程式碼」單元課程,底下是我個人對該課程的介紹說明。

【台北場】2008/04/12,13,20 (星期六,日,日),共三日,18Hrs。

農曆年後 HSDc 的第一場單元課程確定於四月份清明節過後舉辦。本單元課程是新設計的,我們希望能將焦點集中在系統分析三種觀點的設計與實現,也就是外部的功能觀點、內部的結構元素設計、與表達程式碼動態的物件互動;而這正是利用 UML 包括使用案例模型、類別圖與循序圖,號稱是 UML 三劍客所可以完成最精要的設計,也可以說這三者是在中小型的專案開發(我們定位中型專案在五千萬以內)最有效的設計利器。

我們一直主張,系統分析絕對不是與程式碼實作脫勾,在我們所揭露出的設計指引方針中,只要利用少數幾個設計原則,就可以很快速且直覺地從使用案例轉出到程式碼。而在其過程中,我們會建構代表每一個使用案例的控制物件,也可以把它視為是系統的代言人,先利用循序圖表達出參與者與控制物件的訊息互動,觀察出互動的訊息之後,再反回來設計分析性的控制類別,並很容易地就可以定義出它應該具備哪些 functional call。藉此,我們就可以利用如 EA UML 工具快速產出程式碼,得以建立程式框架。再來以後,我們就很清楚如何在控制類別的哪一個函式(method)上補充細節,包括演算邏輯、企業規則與欄位明細等。 系統分析與程式實作本來就是系統的一體兩面,若是無法保持這些設計產出間的一致性,那肯定是系統分析的作法有問題。

還有,我們從來都不主張寫文件,為文件而文件,那是最浪費時間與最糟糕的事。我們主張要做有效且精要 (essential)的設計產出 (artifacts),量少質精,然後再利用如 EA UML 工具的 “Document Generation” 機制,絕對可以產出上百頁美輪美奐包括需求規格、測試文件、字彙表、結構設計文件 …等,保證會讓主管滿意。而這些過程,只花不到五分鐘!

以功能需求為導向的開發模式,是順應國內專案短線的生態需求,所以我們先專注在建構分析性的類別,讓系統最起碼先有實體的 MVC 框架,能隔閡 UI 與資料庫的耦合;而
至於要讓系統能更順應需求的變動設計,則是在未來結構重整設計階段的課題—那是影響系統夠不夠有彈性,卻不是能不能做出來。我們主張務實,先做出來,並保留一些彈性,可以在未來資源充足與開發人員技能成長後,再施以結構的重整—也就是重構。

所以以功能為導向的系統開發,我們的兩個配套措施,一個就是分析性類別;另一個就是測試程式碼。這裡我們會揭露出 XP 最重要的設計精髓—測試先行 (Test First),如何能確保爾後每次的需求變動,更改到程式碼時,就要確實能執行自動化的測試,以確保變更並沒有影響到既有的功能。

三天的課程內,我們除了會預先提供一個完整的案例,會帶領各位學員實際演練並產出設計模型與程式碼(包括測試碼)等,同時還會當場由學員主動提出案例,等於是出考題一樣,由講師當場示範講解,當然,還是從需求分析到程式碼實作,一氣呵成。

另外,我們單元系列的課程,均有免費提供下午茶點,包括小蜜蜂咖啡、茶飲、美味的吊鐘燒與餅乾甜點等。品味咖啡的同時,學習軟體設計思維,那會是一件令人相當愉悅的快樂學習之旅。

§課程名稱: 活用 UML 三劍客與實作程式碼

§課程簡述:
 o 介紹系統分析的設計觀點與 UML 三劍客觀念引導。
 o 利用使用案例來捕捉系統的功能性需求,並快速導出到程式碼實作,以及撰寫測試程式碼驗證功能的正確性。

§課程目標:
 o 讓學員瞭解系統分析的基礎觀點 (需求功能觀點、結構設計觀點、實作觀點)
 o 引導學員如何活用 UML 三劍客 (使用案例模型、類別圖、循序圖)。
 o 帶領學員建立使用案例模型 (Use Case Model),並佐以分析類別與物件循序圖,快速導出到程式碼 (Java)的實作。

§課程特色:
 o 提供完整案例,示範與引導學員實際操作與練習。
 o 第一日上課時即會發送給學員教學光碟,內容提供 EA 7 試用版、JDK 1.6、Eclipse IDE 與本課程案例所有產出,以及研討會簡報等。
 o 本課程均保留與提供了學員免費再旁聽乙次同樣課程的權利,以一次低廉的收費,就可以擁有兩次上課的收穫,課程的師資、內容與品質,我們有信心是不會讓學員們失望的。

§準備教材:
 o 由授課講師提供講義,包括教材內容、案例分析與範例。
 o 學員可攜帶相關 UML 參考書籍,並對於書中內容有問題者,可以直接提問。

§使用工具: EA(Enterprise Architect) 7.0(Trial) UML Tool、JDK 1.6、Java Eclipse IDE。

§授課講師:
 o 賴信仁(Ringle Lai) ,王克明(Kenming Wang) ,宋敏如(Cathy Sung)
 o 擅長以非常淺顯易懂的比喻及說明,將複雜的系統抽絲剝繭,重新釐清脈絡,讓學員一清二楚,並善於引導學員具備設計應有的反思能力。

§適合學員:
 o 系統分析/設計(SA/SD), PM, Programmer 等在職軟體開發者。
 o 學校資訊講師/在學相關資訊科系學生。

§課程費用:
 o $5,700 (含稅)。
 o 曾經上課過本公司的「單元系列課程」學員,優惠 $5,100,含稅。(請記得註明為舊生,本公司查詢確認即以優惠算)
 o 三人同行,或同時報名另一單元課程,亦比照舊生的優惠折扣,每位只需$5,100(含稅)。
 o 大學/研究所 資訊相關科系講師、助教或教授,出示相關證明,我們會以建教合作方式計費。(請另以電話聯絡)
 o 清貧或由家扶中心推薦,能出示相關證明,所有費用 免費!!

§報名資訊:

授課日期:
 o 2008/04/12, 13, 20 (星期六, 日, 日),共三日。(AM 9:30~12:30、PM 1:30~5:00)
授課地點:
 o 開羅會議中心,地址:台北市光復南路65號B2 (光復南路、市民大道交接口)。
 o 參考交通與地圖。 http://www.hsdc.com.tw/education/cario_map

o 由於本站線上報名系統尚未測試啟用,煩請報名學員填寫下列資料報名 (下列欄位前為 * 者請務必填寫),並以 Email 寄至: service.hsdc@gmail.com
  ————————————————————————————-
  * 姓名:
  * 電子郵件:
  * 聯絡電話:
  任職公司與職位:
  備註(請填上如 ATM 轉帳帳號(後五碼即可)與新生或舊生等資訊):

  ————————————————————————————-
 o 報名經確認後,本站即會寄送確認通知信給報名學員。
 o 為確保報名足額人數,煩請先以 ATM 轉帳預約費用($500),並請於報名表備註欄位內,註明您的轉帳帳號末 5 碼與轉帳金額
  (若實在不及轉帳者,仍可現場報名,但請在報名表內註明)。
  ATM 帳號: 新光銀行 (103) 帳號: 0772-50-100979-9

【課程大綱】

※ 基礎觀念引導—UML 三劍客觀念引導
 o 瞭解系統的定義與系統分析的角度
 o 系統的功能需求—建立使用案例模型 (建立需求規格模型)
 o 系統的結構設計—類別圖 (建立分析性的類別)
 o 系統的物件互動—循序圖 (表達參與者與控制物件的互動)

※ 建立使用案例模型 (Use Case Model)
 o 利用使用案例圖表達系統的功能需求
  o 如何界定系統範圍(System Boundary)
  o 如何找出使用案例與參與者(Actor)
  o 使用案例之間的關係— include and extend
  o 利用使用案例圖表達架構觀點
   o 界定與分析使用案例模型的廣度的層次
   o 如何利用使用案例表達企業層次與應用系統面層次
   o 多個系統的使用案例圖架構設計
 o 從表達企業流程的活動圖導出到使用案例圖
 o 使用案例敘述(Description)的寫作實務
  o 如何寫出高品質的使用案例敘述
  o 如何依據使用案例範本完成使用案例敘述的撰寫
  o 如何表達正常、替代、擴充與例外事件流程的敘述
  o 寫好每一條動作步驟陳述的要領
 o 針對每一個使用案例,撰寫測試案例 (Test Case)

※ 從使用案例導出到程式碼實作
  o 案例分析(Case Stydy) — 使用案例的實現(Realization)與實作(從使用案例到循序圖到產出程式碼)
  o 設計與創建 Use Case 控制物件,以實現使用案例的功能需求
  o 利用 EA “Code-generation” 功能產出控制物件的程式碼框架
  o 測試先行—在 IDE 工具內撰寫該控制物件的測試程式碼
  o 利用虛擬碼(Pseudo Code)撰寫程式碼內部的細節
  o 實際執行應用程式碼的部署與執行功能測試
  o 利用 EA 反向工程功能,在 IDE 環境內修改程式碼,並反轉(Reverse)回 UML Model。

※ UML 三劍客 實務操作練習與完整案例演練 (利用 EA 7.0 工具)
 o 利用 EA 與 Eclipse 實現一個完整的案例 (從需求分析到設計框架到實作程式碼)
 o EA (Enterprise Architect) 的安裝與基本操作介紹
 o 利用 EA 繪製 UML 三劍客設計圖
 o 利用 EA 產出文件 (Document Generation)
 o 利用 EA 產出程式碼 (Code Generation)
 o 利用 Java Eclipse 修正程式碼並反轉 (Reverse)回 UML Model
 o 利用 JUnit 依據測試案例實現測試程式碼,並執行自動化測試

※ 課程回顧複習、問題提問與討論。

文章導覽

   

共有 4 則迴響

發佈回覆給「amber」的留言 取消回覆

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *