Gelis - 程式設計訓練營 -決戰 OOAD 系列課程 - 使用 UML (第三梯)

  • 2019/06/08(周六) 10:00(+0800) ~ 17:00(+0800) ( iCal/Outlook, Google 日曆 )
  • 台北科大育成中心會議室(光華館3樓306室) / 臺北市大安區新生南路一段1號
  • 1 / 10
  • 軟體開發之路 與 Gelis 的程式設計訓練營 聯絡主辦單位

@ 課程主題:
決戰 OOAD 系列課程 - 使用 UML (第三梯)

燒燙燙!!!決戰 OOAD 系列課程終於開第三梯了,有鑑於部分學員在軟體開發之路上的提問+希望能加開OOAD系列課程,於是再加開第三梯!:D

此課程先前在幾個客戶端開此課程成效也還不錯,課程中,講師會在課程中帶著大家在 Agile與Scrum的概念中使用 UML,誰說不能在 Agile/Scrum 流程裡,使用 OOAD 與 UML 的?甚至在使用 TDD 等開發方法時,我除了透過 BDD 實例化需求外,在系統設計的切入點我仍然是使用 Use Case 來驅動 Domain Modeling 的設計誰說 UML 繪製的圖形都無法串到程式碼的實作的?本課程希望用比較新穎的 UML 分析概念帶大家進入一個不一樣的 UML 系統分析設計到實作殿堂。

課程中,我會以一個【房屋貸款的線上申請系統】,來講述 UML 分析過程,讓大家體驗這完整的系統分析=>實作的完整過程,我們會在一天裡跑一個 Sprint,並將分析的結果透過 MDA 來 Generate Code 之後,也真的撰寫程式,然後真的做出一個最小可行性產品MVP(Minimum Viable Product)的雛形出來喲,不要錯過囉!

@ 課程緣由:
在軟體技術蓬勃發展的現代,各種流程 Process 發展如雨後春筍般不斷湧現,像是:Agile/Scrum/Kenban 等等、以及您是不是曾聽說導入 Scrum 後,UML 就沒有用了的說法?可是... 當你實際進行開發時,你又覺得需求很難收集、也很難被管理,即便團隊使用 Agile 或 Scrum,但是使用者需求總是到了 SD 階段時,容易發散?更不用說到了工程師在進行開發的時候,到底撰寫的程式是不是實際使用者要的東西?

因為在軟體技術蓬勃發展的現代,我們被迫要在短時間內完成一個產品、我們被迫要在短時間內學習如何開發、如何測試、如何與團隊間 Co-Work、如何擷取客戶需求、如何與團隊溝通需求、如何短時間的(交付/上線)、如何與維運協調 等等... 但是您如何確保您與團隊間的溝通是真的有效率的?我的溝通指的是包含:使用者需求 也許是 DFD/業務流程/Visio/或者你畫在紙上或是 OneNotes 上的任何筆記、或是 Mind Map,而重點在於,你怎麼確定,你畫的、你寫的,團隊的成員每一位都懂?或者,團隊理解的,跟你所想的是一致的?

再來,這些需求,怎麼樣妥善地被管理?由誰管理、就算是需求變更,不必回逤先前的舊需求、或者需求妙誤,但是怎麼管理?

事實上,前面的這些問題,UML 是有解決方案的,只是我們可能在快速反應的同時,我們遺忘了這一切的基礎 OO 物件導向的思考邏輯裡,其實是這一切的基礎,裡面有許多東西可以依循,當然,如果您參考的是早期的 UML 資料,那麼思維與想法一定會有些過時,所以,事實上,現今的 UML 其實一直隨著軟體產業的脈動,而跟著有一些改變,因為,畢竟,UML只是先前我所提到的『軟體開發生命週期』裡包含的三大要素裡的其中一個『Methodology』而已。

最近,我將 UML 分析的一些思維帶入 MVP (Minimum Viable Product) 概念、與在 Scrum 進行的專案裡,我使用 User Story 搭配 Use Case 來使用,配合 UML 分析的黃金三角 (點到為止的概念),而成效還不錯!也證明了,使用 UML 並不會讓專案前期會花許多時間在繪圖的錯誤思維。

另外,我也導入一個新的概念,從使用者需求、談架構設計 的概念,尤其進行專案時,更是如此,您或許有的經驗就是,前期的設計時間太長,因為您預先做了許多預先想好的設計,但是到最後實際開發的時候,卻發現許多的預先設計都不必要,而您後來可能也會發現,會有這樣的情況發生,其實只是一開始沒有抓對需求的主要方向,而那些預先設計又是花費你最多時間的。

在真實世界裡使用物件的分析與設計的思考是軟體開發的一切基礎,且程式設計之路本來就是若能培養具備不同角色的 View:(軟體架構師、SA 系統分析師、SD 系統設計師、PG 程式設計師),在這樣的架構性思考下,您會發現更能夠以不同角度來看待開發問題、那麼會更能夠解決各種問題。本課程將教導大家,如何利用最新欣的 UML 設計思維,跟我們一起來學習、來解決這個問題。

 

@ 課程大綱 (Agenda):
‧ 如何進行使用案例 (Use Case) 分析?
‧ 為什麼使用塑模來設計系統?有什麼好處?
‧ 從身為UML兩大重心的「使用案例圖」與「類別圖」來探討分析概念
‧ 類別圖概念說明
‧ 什麼是「領域模型(Domain Class Diagram)」
‧ 所謂的概念資料模型 (Conceptual Data Model 或 ER-Model) 的延伸?
‧ 使用三層式架構 B-C-E 設計方式
‧ 再談使用案例 Use Case,進階使用案例的分析技巧
‧ 使用案例的特質
‧ 使用案例優缺點
‧ 使用案例間的關係
‧ 一般使用塑模的慣例、程式撰寫慣例、與原則
‧ 使用案例分析進行的方式(進階篇)
‧ 如何收集使用者需求?收集那些?進行的方式?要準備哪些?
‧ 紀錄需求、確認需求、釐清需求
‧ 適當提出質疑、更好的建議、替代方案  (先了解客戶需求目標/解決什麼問題)
‧ 進行使用案例分析時該注意的幾個警訊
‧ 如何進行需求管理?
‧ 何謂「穩健圖(robustness diagram)」?如何使用穩健圖進行分析?
‧ 利用穩健圖分析的好處?
‧ 利用穩健圖分析順暢的到「類別圖」與「循序圖」
‧ 在分析設計與實作時的,反覆設計 (Iterations)、漸進式(Incremental)
‧ 反覆設計 (Iterations) 中的「類別圖」與「循序圖」
‧ 正三角形法、倒三角形法、循環星形法
‧ 循環星形法(詳細)開發流程

課程裡,我將使用一個『線上房貸申請系統』為例子,從需求的擷取開始,由我擔任 User 與各位進行需求訪談會議,帶著大家使用 Mind Map (Coggle) 擷取需求,Coggle 相關介紹可參考電腦玩物 (Coggle)

課程一開始,用 Mind Map 與使用者故事擷取需求後,我們會使用 EA 進行 User Case 的基本分析,在新興的使用案例分析方法裡,我會搭配 User Story 來收集使用者需求,許多人,會把 User Story 與 Use Case 直接拿來做比較,但我則不然,我直接取用對專案有幫助的部分。

  • 在 User Story 裡,強調的是,”expresses one very specific "need" that a user has.”
  • 在 Use Case 強調的是:”interaction between the user and the software.”

我則將他合併起來,面對不懂 Use Case 的客戶,我們瞭解客戶的 “need!”,回到公司內化為 “interaction between the user and the software”,這樣一來,我們更容易瞭解客戶的需求,減低內化的失真機率。

接著,我從身為UML兩大重心的「使用案例圖」與「類別圖」來探討分析概念,會帶大家透過 UML 的黃金三角分析方法,利用 UML 黃金三角,我們甚至可以達成快速建立初期版本的產品 (MVP, Minimum Viable Product)的關鍵,UML 中的使用案例圖,幾乎可為 UML 中所有圖形的起點,如下圖(一)中所示,所有的其他圖型更是都由黃金三角支撐出來的。

圖(一)、使用 UML 分析的黃金三角

課程中,我除了會帶大家用 EA 繪製 Use Case、Domain Class Diagram、Sequence Diagram、Activity Diagram、State Diagram 外,並說明在實務上,如何使用穩健分析順暢的從類別圖到循序圖?並使用正三角形法與倒三角形法進行分析。

何謂「正三角形法」與「倒三角形法」?

所謂的「正三角形法」事筆者在業界最常見的一種方式,但是其實並不完整,因為你只是用半套 UML 而已。

圖(二)、正三角形法

如果您有撰寫使用案例描述 Scenario 與 包含操作屬性的類別圖 再加上包含操作的循序圖,那麼我會說您做到了倒三角形法。

圖(三)、倒三角形法

 

圖(四)、循環星形法

事實上,應該是兩者搭配起來使用較為全面,稱作循環星形法,這也是目前業界常見的用法。

循環星形法(詳細)開發流程 如下:
1. 建構使用案例圖
2. 編寫使用案例敘述
3. 繪製類別圖(Domain Class Diagram)
3.1. 找出類別(不含屬性及操作)
3.2. 建立類別之間的關係(不含個體數目)
4. 建立循序圖(不含參數)
5. 繪製細緻循序圖(含參數)
6. 繪製細緻類別圖
6.1. 定出操作(Operations)
6.2. 找出屬性(Attributes)
6.3. 畫面雛形(Prototype)使用者介面

課程最後三小時,我們會用 ASP.NET MVC 5 將這個房貸先上申請系統的雛型撰寫出來。

更詳細的課程內容說明,可參考筆者系列文:決戰 OOAD 系列(一):使用 UML 分析的黃金三角

 

@ 關於講師:


我是 Gelis,從事軟體專案開發相關工作已經 19 餘年(顧問工作4年),專案開發 15 年,目前任職於集英信誠顧問公司,目前主要負責與 .NET 相關的開發、顧問工作。

我熱愛軟體工程、UML 系統分析與設計,擅長OO物件導向分析與設計外,也擅長將看似與程式碼無關的 OOA 與 OOD 的設計模型推導為實際程式碼設計,專精於 .NET 平台網頁 ASP.NET Web Form 與 MVC 開發與 WinForm 開發,領域包含了 WinForm、WPF 等。

主要負責軟體開發架構、流程的導入的顧問工作,主要核心價值在於在導入適當的開發平台 Platform 框架 Framework,配合 (Team Foundation Server, TFS) 產品與 ALM 的Scrum 流程,搭配自動化 Code-Review 並結合 Team Build 進行自動化測試,自動化部署 (Continuous Deployment, CD),並達到持續整合 (Cintinuous Integrated, CI),以提升開發團隊的效率與價值。

曾經連任七屆微軟最有價值專家 MVP,有個人的技術部落格 『Gelis 技術隨筆』,以記錄在技術上學習的新知與個人的研究發表。

@ 講師經歷:

  • 2015集英信誠-與大師對談講師
  • Visual Studio Everywhere 台北場講師
  • Study4.TW 社群講師
  • 企業內訓講師

@ 現職:

  • 集英信誠 資深 .NET 技術顧問
  • 現任 Microsoft MVP

@ 適合對象:

  • 已有 C# 約3-5年開發經驗的開發人員,具備 ASP.NET WebForm or MVC 網頁開發經驗更佳
  • 目前為程式設計師,有閱讀過 UML 撰寫的 Spec 規格書,想要往(SD/SA)發展、但又不想放棄寫程式、只是想充實系統 (分析/設計) 技能的開發人員
  • 或者現在已經是 SA/SD 偶而兼PG、會撰寫 C#,但是公司不使用 UML,而您想了解如何使用 UML 進行系統分析與設計,也歡迎來參加此課程

@ 預期效益:
建立系統分析、設計、架構設計的概念,增進自身分析、設計能力,並應用在架構設計,也提升自己在不同角色間的轉換思考、跳脫思維 的能力。以期望自己,不被表象的 (問題/Bug) 而不知所措。

@ 課前須知:
本課程需自備電腦,關於環境準備,請自行先安裝好 Visual Studio 2017/2019 Community 如果是Professional 或 Enterprise 以上會更好

課程使用的 UML Case Tool 為 EA (Enterprise Architect) v14 試用版請上課前自行安裝好試用版 (下方提供試用版連結供下載)

請申請好線上 Mind Map 工具 Coggle 我們會使用它來擷取主要使用者需求 (使用 Google 帳號即可)

請申請好 Microsoft Live Account,我們會使用線上版的 OneNotes 紀錄使用者故事

課程中,可能使用 VSTS 的 Scrum 面板進行需求管理,請申請好 VSTS 帳號,使用 Live Account 即可,申請連結:https://app.vssps.visualstudio.com/​

(1). 下載 Enterprise Architect Trial (30天試用版):

https://sparxsystems.com/

注意:下載 EA 可能需要申請會員,並填寫基本資料

(2). 下載 Visual Studio 2019 Community:

https://www.visualstudio.com/zh-hant/

(3). 下載 Astah Community:

https://1drv.ms/u/s!Ak9GZAqN6WQW_VIjHgatvFaFJXgO

 

@ 關於午餐

本課程提供中午便當,報名成功後,通知信件裡會有請餐食(葷/素)問卷。

 

@ 講師的顧問相關經歷:
1. 成功協助企業導入 Dummies Framework 框架
2. 成功協助企業導入 TFS 或 VSO (Visual Studio Online) + Scrum 開發流程
3. 成功協助企業導入 Release Management 以進行 (Continuous Integrated, CI) 與 (Continuous Deployment, CD)
2. 企業 Visual Studio 2013/C#課程講師
3. 企業 IIS 7.5/8.0/8.5 訓練講師
4. 企業 ASP.NET MVC/ Web Form 訓練講師
5. 企業 Web API/WCF 訓練講師

@ 講師教受過課程:
[.NET 技術研討(LINQ與架構開發)]
[WCF 進階課程]
[ASP.NET MVC 4 Web API 開發簡介]
[ASP.NET MVC 4 Web API全攻略]
[前端大型系統的基石 TypeScript]
[客製化的 Web API 的框架設計]
[CSharp 4.0 LINQ 與泛型應用(簡介與開發)]
[ASP.NET MVC 6 新功能初探]
[IIS 7.0 應用程式開發實務]
[Visual Studio 2010 UML]
[Visual Studio 2012 與 ASP.NET 4.5 (新功能與開發介紹)]
[Visual Studio 2013 新功能介紹]
[如何培養架構性思考(談軟體架構師必經之路)]
[如何將現有ASP.NET Web Form網站轉為ASP.NET MVC]
[架構設計好簡單系列 - 設計符合團隊的範本精靈 (Project Template)]
[團隊開發永遠的痛 - 談導入團隊開發的共同規範]

@ 我的連絡方式:

Skype:
wergelis@msn.com

Blogs:

http://gelis-dotnet.blogspot.tw
http://www.dotblogs.com.tw/gelis/

我講授過的課程投影片:
http://www.slideshare.net/GelisWu

注意事項

  1. 現場備有 WiFi ,但人數一多,速度可能沒辦法保證比你自己的 4G 來的快。
  2. 如遇不可抗力或意外狀況,活動主辦單位得以保留改期、調整內容、或是取消活動與將全額退費之權利。
  3. 這是一個收費的課程,因為這完全是一個實務經驗的分享課程,您覺得內容您有需要就可來報名參加,講師必定讓您滿載而歸,並應用在您的工作環境之中。

 

購票與退票相關事宜

  1. 本活動由 KKTIX 代為處裡售票與退票相關事宜。
  2. 退票郵購票者提出,KKTIX 會酌收 10% 手續費,且活動前十天內(不含活動日)不予退票。
  3. 詳情請參閱 KKTIX 服務條款

 

主辦與協辦單位

   

台北科大育成中心會議室(光華館3樓306室) / 臺北市大安區新生南路一段1號

活動票券

票種 販售時間 售價
一般票

2019/05/28 21:00(+0800) ~ 2019/06/02 18:00(+0800) 結束販售
  • TWD$3,000
下一步

1 報名人