*** 這一次的系統分析課程,是特別經過 HSDc 團隊精心特別設計的,其目的旨於不要讓所謂的系統的需求分析,以及結構設計,與實做的程式碼脫勾。分析與設計絕對是務實的,是要能平衡現實的一面(快速實做出來),與往理想的另一面(持續讓結構演化重整,捉出最穩定的元素)。
『系統分析設計與實作—活用 UML 塑模 與 Java (54 Hrs)』 已確定於本星期六(06/14)在「開羅會議中心」開課。目前尚有名額,歡迎有志於學習完整系統分析與實做的學員們踴躍報名。
本課程的編排是有別於傳統一般系統分析(Top-Down 瀑布式作法,無法有效結合實做),採兩階段的漸增與循環(Iteration)的階段目標開發方式,先求有— 做好需求分析、快速實做、產出程式碼、符合實體三層(3-tier)架構、瞭解系統面的必備技術; 再求好— 軟體結構面的分析設計重整,與程式碼的重構(Refactoring)、確實捕捉領域的概念,成為軟體的主結構企業元件。
報名資訊請參考請至:
http://www.hsdc.com.tw/course_signup/20080614_sa_sd_to_implement_by_java
o 由於本站線上報名系統尚未測試啟用,煩請報名學員填寫下列資料報名 (下列欄位前為 * 者請務必填寫),並以 Email 寄至: service.hsdc@gmail.com
————————————————————————————-
* 姓名:
* 電子郵件:
* 聯絡電話:
任職公司與職位:
備註(請填上如 ATM 轉帳帳號(後五碼即可)與新生或舊生等資訊):
————————————————————————————-
o 報名經確認後,本站即會寄送確認通知信給報名學員。
o 為確認上課人數,以便教材印製,煩請先以 ATM 轉帳預約費用($1000),並請於報名表備註欄位內,註明您的轉帳帳號末 5 碼與轉帳金額。 ATM 帳號: 新光銀行 (103) 帳號: 0772-50-100979-9
課程介紹
http://www.hsdc.com.tw/course_introduce_sa_sd_to_implement_by_java
※ 課程大綱參考
——————————————————————————————————————–
§ Iteration #1 (36 hrs)
o 課程階段目標: 捕捉系統功能需求,快速設計,立即產出程式碼一、軟體開發方法論—開發流程與塑模 (6 hrs)
o 開發模式的介紹
o 瀑布、循序的典型開發模式
o 漸增(Iteration)與漸進(Incremental)的主流開發模式
o 主流開發流程的簡介 — RUP/XP/AGILE
o 簡介專案開發的工作流程
o 專案中各個角色人員的工作執掌
o 專案中各個階段的產出(artifacts)介紹
o 軟體開發的最佳實務
o 以架構為中心(architecture centric)的開發
o I&I(Iteration and Incremental) 漸增與漸進
o 視覺化的方式設計軟體模型 (Visually Model Software)
o 需求的變動管理與持續驗證軟體的品質
o 侷限與收斂軟體的變動性
o 軟體塑模— 統一塑模語言(UML, Unified Modeling Language)的綜觀介紹
o 利用完整案例導引來介紹 UML 的十三種圖形二、物件導向觀念養成與應用 (6 hrs)—觀念、模型與程式碼的三面表達
o 介紹「概念(concept)」與「抽象(abstraction)」的觀念
o 確實瞭解「類別(class)」與「物件(object)」的區別與關係
o 結合(association)、組合(aggregiation)與
一般-特殊化(generalize-specialize)關係的說明
o 封裝(encapsulation)與多型(polymorphism)的設計觀與應用
o 瞭解繼承(Inheritence)與介面(Interface)」的設計原理
o 程式碼範例—
o 利用 Java 程式碼表達類別的結構關係(結合,組合,一般-特殊化)
o 利用 Java 程式碼呈現介面與多型的設計實作三、需求面的功能分析設計—Modeling by UML 三劍客 (15 hrs)
o 建構使用案例模型,實現企業流程的需求
o 利用使用案例圖表達系統的功能需求
o 如何界定系統範圍(System Boundary)
o 如何找出使用案例與參與者(Actor)
o 使用案例之間的關係— include and extend
o 利用使用案例圖表達架構觀點
o 從表達企業流程(Business Process)的活動圖導出到使用案例圖
o 使用案例敘述(Description)的寫作實務
o 如何寫出高品質的使用案例敘述
o 如何依據使用案例範本完成使用案例敘述的撰寫
o 如何表達正常、替代、擴充與例外事件流程的敘述
o 寫好每一條動作步驟陳述的要領
o 針對每一個使用案例,撰寫測試案例 (Test Case)
o 利用 EA “Document Generation” 機制產出美輪美奐的需求報表文件
o 使用案例的實現(Realization)與實作(從使用案例到循序圖到產出程式碼)
o 利用類別圖設計與創建 Use Case 控制物件,以實現使用案例的功能需求
o 利用循序圖表達程式碼物件的互動設計
o 利用 EA “Code-generation” 功能產出控制物件的程式碼框架
o 測試先行—在 IDE 工具內撰寫該控制物件的測試程式碼
o 利用虛擬碼(Pseudo Code)撰寫程式碼內部的細節
o 實際執行應用程式碼的部署與執行功能測試
o 利用 EA 反向工程功能,在 IDE 環境內修改程式碼,並反轉(Reverse)回 UML Model。四、實做面 by Spring Framework (9 hrs)
o Spring Framework 綜觀介紹
o 輕量級(light-weigh)的應用系統容器架構介紹
o Spring 在實體 3-tier 的角色定位與架構設計
o Spring 重要特性介紹,包括 IOC與相依性關係、Domain-driven 的設計設計觀
o 利用 JSF(Java Server Faces) 實做 Web Form
o 將 UI 與企業邏輯確實分離的基礎設計觀
o Web 表單連結至中間層控制物件,實現 MVC 設計樣式
o 利用 Hibernate 實現永續性機制
o Hibernate 設定與實作
o HQL 語法與 O-R Mapping 原則
o 從中間層控制物件連結資料庫
o 利用 EA 快速建構資料庫表格
o 利用 Java 撰寫程式碼 (從控制物件透過 Hibernate 連結 DB)五、案例分析與實作 – Iteration #1 (實做部分涵蓋於上述課程內)
o 利用 EA UML 工具
o 實做使用案例模型(Use Case Model)、類別圖與E-R圖、循序圖
o 利用 Code-Generator 機制,產出程式碼框架
o 利用 Java Eclipse IDE 撰寫
o JSF Web 表單
o Java 控制(Control) 物件 by Spring
o Java 資料存取物件(DAO) by Hibernate
o 利用 JUnit 撰寫功能與單元測試程式碼
o 應用程式的部署(Deploy) – JBoss Application Server§ Iteration #2 (18 hrs)
o 課程階段目標: 重構程式碼與類別結構,讓系統更有彈性。一、軟體結構面的分析與設計 (12 hrs)
o 運用交易樣式(Transaction Patterns)找出核心交易物件
o 從使用案例的敘述中找出潛在的概念物件。
o 利用 Peter Coad 的交易樣式(transaction pattern)
o 利用 UML類別圖 建構領域的物件模型
o 從類別圖產出資料庫表格,並利用 EA 部署至資料庫
o 物件的責任分派(responsibility assign) — 屬性與行為的分析
o 活用設計樣式(design pattern)
o 合成(composite)樣式的設計 — BOM 表的最佳呈現
o Facade and Adapter 樣式,表達在 Control and Boundary 物件的設計原則
o 進行分析類別(Analysis Class)的設計
o Control 物件
o Entity (Business)物件
o Boundary 物件二、程式碼的重構 (6 hrs)
o Java Spring 的進階設計觀
o IOC 與 相依性的分析。
o Domain-driven 的設計原則。
o AOP 對非功能性需求的 crosscut(橫切) 與 Concern(考量)的設計觀念。
o 分析類別在 Middleware 的實現
o 實現 Controller by Java Spring
o 實現 O-R Mapping by Hibernate
o 實現 企業物件 by POJOs(Plain-old Java Objects)
o 利用委託(delegate)的設計原則,從控制類別分派責任給企業物件三、案例分析與實作 – Iteration #2 (實做部分涵蓋於上述課程內)
o 利用 Eclipse 重構程式碼結構
o 利用 EA 更新類別與E-R圖,並重新部署 DDL DB Schema 至 MySQL DB 內
o 利用 EA 實現正反向工程,達成程式碼與 Model 的同步
o 利用 Iteration #1 所撰寫的測試碼驗證與修正被重構的程式碼§ 整體開發流程總複習
o 檢視兩個循環(Iteration)開發所各自產出的設計圖與程式碼
o 回顧每一個流程開發階段的產出與所運用的設計、技術與技能
o 學員課程中的問題提問與回答總整理