上課日期:2017/12/16,17, 23,24, 2018/01/06,07
週六日上課 (09:30 ~ 16:30),共 36 小時。
(歡迎來電洽談企業內訓包班課程)

線上報名

※課程介紹

軟體系統分析與設計,並非是如其它製程產業般採瀑布式把所謂設計藍圖鉅細靡遺按圖施工即可。由於軟體需求的高度不確定性與持續變動的本質,所以「應變」才是系統分析設計最根本的要旨;「敏捷、務實性的設計,以及可具重構的程式碼框架」,正是符合應變特質的產出。

在基於以架構為中心來建立團隊具共識的整體觀下,能聚焦在適切開發單位的功能點內,快速地從需求分析導出到實作,找出並克服開發過程中,包括溝通、技能與技術等風險因子。而後基於這樣的框架目標內,得以對系統的結構作重整,卻又不至於影響已有的功能前提下,得以對程式碼施以重構的技巧,讓系統更有延展度與彈性。

觀念的傳授、設計的圖形化塑模表達、程式碼的實作三層次,是我們對於系統分析設計與實作課程的基本原則與態度。

總的來說:作好需求分析-> 讓系統開發更順暢並得以傳承
作好結構設計-> 提昇系統應變彈性度與延展性
提昇實作能力-> 懂得與Google當好朋友找How-to

※課程目標

  • 符合 Agile/SCRUM 的敏捷快速開發精神,快速從分析導出到實作,實踐 I&I (漸增與循環)精髓。
  • 活用 UML 塑模,表達需求分析與結構設計精要的設計,並讓設計圖形力求簡潔與層次感。
  • 界定系統功能需求,建立 Enterprise MVC 程式碼框架,打通從 UI->中間層->資料庫的管道。
  • 透過實作案例,運用 Java/Spring Web MVC 與 Hibernate 框架,實現與橋接 UML 塑模的產出。
  • 課程過程中會帶領學員,把學習與作業成果,利用 GitHub 版控與重構程式碼。

※課程大綱

課程單元 課程大綱
方法論-
開發流程與UML塑模
    o 開發流程 (development process)

  • Agile/SCRUM 核心開發原則
    -Analysis/Design/Implement a little
  • 比較 瀑布式 vs. I&I (Increment & Iteration)的開發模式
  • 專案開發各階段(SA/SD/Coding)的主要產出(artifacts)範本
  • 軟體開發的最佳實務 (Best Practices)導引
    o UML 統一塑模語言(Unified Modeling Language)

  • 需求面-活動/使用案例圖
  • 結構面-類別/元件/複合結構圖
  • 行為面-循序(物件合作)/狀態圖
  • UML 工具的示範操作 (使用 EA, Enterprise Architect)
  • 完整 UML Model 電子檔範本
系統需求分析
    o 區別 業務流程與系統功能 兩者的定義
    o 業務流程 (business process)的分析與塑模

  • 分析與界定以人為本的業務流程活動
  • 利用 UML 活動(activity)圖 塑模單一作業流程
  • 讓設計圖維繫與表現簡潔(simplicity)並具層次感
    -易讀好維護並確實可以成為有效的開發依據
    o 系統功能的界定與分析-利用使用案例模型 (Use Case Model)

  • 界定系統開發範圍 (system boundary)
  • 分析系統功能(system function)- Use Case
  • 撰寫實現系統功能步驟的需求陳述
  • 有效整理資料欄位與業務邏輯等細節性資訊
  • 利用系統循序圖輔助參與者與系統間的對話描述
    o 系統功能的其它分析技術探討

  • Agile User Story
  • SCRUM Backlog
系統結構設計
    o 結構的基礎功夫-物件導向思維

  • 定義物件(object)與類別(class)
  • 類別間的三種關係
    -一般性關聯 (association)
    -整體/局部 (whole-part)
    -一般化/特殊化 (generalization/specialization)
  • 確實理解 封裝(encapsulation)的設計意涵
  • 介面(interface)/多型(polymorphism)的設計與應用
    o 巨觀(macro-view)結構設計-使用 UML 元件圖

  • Enterprise MVC(Model-View-Control)分層結構模型
  • UI/資料庫/業務邏輯 有效隔離並分而治之的設計
    o 微觀(micro-view)結構設計-使用 UML 類別圖

  • 中間層(middle-tier)的物件模型 (object model)結構設計
  • 資料層(data-tier)的 E-R(Entity-Relation)資料模型結構設計
  • 運用交易模式(transaction pattern)有效捕捉問題領域的核心物件
  • 軟體彈性/延展的原則-低耦合(low coupling)與高內聚力 (high cohesion)
實作案例演練
(case study)
    o 從系統功能的分析導出到實做程式碼的控制類別框架

  • 使用 POJO (plain-old Java object)實作功能類別與單元測試程式
  • 採用 Spring Web MVC 框架實作 UI 表達層,並可以確實連接功能類別
  • 設計 DAO(Data Access Object)物件,實作 Spring/Hibernate 存取資料庫
  • 設計 DTO(Data Transfer Object)資料物件,成為各層物件傳遞的參數/回傳值
    o 符合 Enterprise MVC 分層結構框架,具有平行分工與可重構程式碼的特點
    o Clean Code 簡潔程式碼的原則

※課程費用

 o 原價 NT$22,000元(含稅),線上報名可享優惠價 NT$16,800元(含稅)。
 o 兩人同行或舊生可再享優惠NT$15,500元(含稅)。
 o 清貧或由家扶中心推薦,可留言說明或電話聯繫,所有費用 免費!

※使用工具

 o EA (Enterprise Architect) UML Tool Trial。
 o Java Eclipse (Spring Tool Suite)。

※適合學員

 o 系統分析/設計(SA/SD), PM, Programmer 等在職軟體開發者。
 o 學校資訊講師/在學相關資訊科系學生。
 o 學員最好有基本的程式設計能力(基本即可)。

※授課講師

王克明 (Kenming Wang)
 o 具有近20年豐富教學經驗。
 o 擅長引導學員反思並找出答案。
 o 專長大型系統架構規劃、企業/系統流程與系統分析、
  巨觀/微觀結構設計、精通 .NET/Java 兩大平台技術應用。
 o 專職軟體設計顧問/講師。

※備註

 o 教室設備包括白板與投影機,由講師親自說明與操作示範。
 o 學員最好能攜帶筆電(可無線上網),可於課程中實際操作與練習。
 o 若未達上課人數(原則以10人以上)則延期至下一梯次開課;
  已報名學員可申請退費(或可保留至下一梯次)。
 o 開課前一週會以電子郵件/電話聯絡通知學員。
 o 遇颱風等天候因素,則延至下一週上課日(會主動通知學員)。


如有課程相關問題,歡迎來信或來電洽詢
---------------------------------------------------
電郵: gnimnek168@gmail.com
Blog: http://www.kenming.idv.tw
軟體設計鮮思維:
https://www.facebook.com/groups/softthinking/
聯繫電話: 0922236977