決戰 OOAD 系列課程 所有影片,今天正式殺青了

圖(一)、決戰 OOAD 線上課程 LOGO

這個課程我從今年的八月開始錄影,但是因為家中有小孩剛滿一歲,因此假日也得要分擔家務也培養親子關係,因此在時間很有限的情況下,我已經只有六日的時間了,扣除掉陪孩子的時間後,所省也沒幾個小時,所以這一搞就搞了四個多月才完成。

但決戰 OOAD 課程的章節也非常的多,從理論說明、到為什麼使用 Modeling 來開發系統?OOA/OOD 的介紹、到 UML 的實際的應用面也是使用一個實際的線上房貸申請的需求來當作例子,課程是原汁原味地將先前我所開過的實體課程程,除了完整呈現一遍之外,事實上、我還加了一些先前 講過的跨平台開發的 Clean Architecture 的例子,並在架構設計的部分與 UML 的設計產生關連,最後實際的撰寫程式碼,當然、程式碼與 Modeling 設計產生關聯也是本課程的重頭戲之一。

曾經朋友有有再問,為什麼你這麼熱衷於 OOAD?其實,有一部份原因是,我覺得近7-8年有一種很弔詭的現象,我們知道軟體開發的世界進步非常的快速,方法論的不斷的演進,瀑布式開始、敏捷、看板,近來也盛行 TDD 開發方法、或是 DDD 領域驅動設計、但是 TDD 或者是 DDD 我會覺得比較像是『(外功/招式)』,而這些招式比較需要足夠的軟體開發基本功,華麗的招式往往更需要更強的基本功來支撐,就像我常常在說的,如果你是用 OO 的語言在開發系統(像是 Java/TypeScript/C# 等等),那麼你在(分析/設計) 的時候一定得是採行物件導向的分析設計方法,就是俗稱的用物件的角度來看事情,那就是本課程裡所謂的 OOA/OOD,所以如果 TDD 或 DDD 外功、那 OOA/OOD 就是蹲馬步了,試想,如果你連蹲馬步都蹲不好,這些招式怎麼可能練的扎實與真正了解其中奧妙之處呢?還有可能會內傷呢!這就像天龍八部裡面,一群武林人士進入到靈鷲宮看到牆壁上那高深的武功就狂練、基本功與內功不足的不久就立刻走火入魔是一樣的道理。

圖(二)、武學中往往招式最吸引人


圖(三)、但『基本功』才是最重要的


這次,我開立這樣的課程也是希望帶給大家從入門到進階的 OOAD 系列完整的從無到有的系統分析設計再加上真的實作。
說真的,我還真不敢相信我將它全部錄完了!這個課程一共有 38支影片:

就像上面圖片裡現在所呈現的,光是壓製的 mp4 就花費了我不少的時間、更不用說錄製 + 課程講義的準備、還有範例程式的準備與實作了。
好了,不知不覺寫了一大堆 XD。

由於課程分為四大堂、每堂又分為好幾個節次、下面提供課程詳細的內容:
簡介、課程簡介、由來以及說明
第一堂、近代軟體開發 與 UML
01小節、近代的軟體開發流程 與 軟體開發流程的演變?
02小節、物件導向系統分析與設計概論 (OOAD)
     02-1、為什麼要使用 Model 來設計系統?
     02-2、OOAD 的核心概念:領域概念
03小節、現代軟體系統分析的三個互補觀點
04小節、UML 基本介紹、何時該使用 UML? UML 中各種圖形介紹

第二堂、(扎穩馬步) 從身為UML兩大重心的「使用案例圖」與「類別圖」來探討分析概念
01小節、如何進行使用案例 (Use Case) 分析?
02小節、為什麼使用塑模來設計系統?有什麼好處?
03小節、從身為UML兩大重心的「使用案例圖」與「類別圖」來探討分析概念
04小節、類別圖概念、以及類別圖沒有時間的概念說明
05小節、分析階段的類別圖【領域模型 (Domain Class Diagram)】
06小節、Class Diagram 與 ER-Model 有什麼不一樣?
07小節、使用三層式架構 B-C-E 設計方式

第三堂、UML 塑模化系統分析進階技巧
01小節、再談使用案例 Use Case,進階使用案例的分析技巧
02小節、一般使用塑模的慣例、程式撰寫慣例、與原則
03小節、使用案例分析進行的方式(進階篇)
     03-1、如何收集使用者需求?收集那些?進行的方式?
     03-2、適當提出質疑、更好的建議、替代方案
04小節、進行使用案例分析時該注意的幾個警訊
05小節、如何進行需求管理?
06小節、何謂「穩健圖(robustness diagram)」?如何使用穩健圖進行分析?
07小節、利用穩健圖分析的好處?
08小節、利用穩健圖分析順暢的到「類別圖」與「循序圖」
09小節、反覆設計 (Iterations) 中的「類別圖」與「循序圖」
10小節、何時需要使用到狀態圖(state diagrams)
11小節、何時使用活動圖(activity diagrams)
12小節、何謂〔正三角形法〕、〔倒三角形法〕、〔循環星形法〕
13小節、真實世界的開發流程(循環星形法)
14小節、如何使用循環星形法建構系統(以房貸線上申請為例)

第四堂、實作 - (使用前面課程所產生的圖形來撰寫程式)
01小節、實作概論、如何讓 UML 與實作產生關係?漫談 MDA (Model Driven Architecture)
02小節、挑選 UML 的 Case Tool
03小節、小試身手、使用循環星形法 建構基本圖形
04小節、Visual Studio 開發環境、架構設計說明 - Use ASP.NET MVC5
05小節、使用 Astah Professional 的 Generate C# Code 產生程式碼
06小節、軟體架構分層 - BO (Business Objects) 的 Methods 撰寫
07小節、程式碼撰寫
08小節、總結:
     1). 如何讓 UML 圖形會說話?
     2). 由程式碼來描述圖形?
     3). 由使用者需求來描述圖形?
     4). 由圖形來描述/設計軟體架構,讓軟體架構與需求產生關係,並實現 Scrum 中一個可以擴展的軟體架構。
     5). 比較各種 UML Case Tool 的 Generate Code 的(功能/差異)、Astah Professional、Enterprise Architect、StarUML、Visual Studio 2019 Enterprise
    
PS:
另外,由於考量 EA 的 License 成本較高,因此本線上課程會使用 Astah Professional 來作為主要的 UML Case Tool,但實作的幾個章節,也仍然會有 EA 的操作 與 Astah 的比較。
再來就是希望這門課程能夠幫助到真正需要的開發者了,感謝大家!

課程連結




關於 Gelis:

資深 .NET 技術顧問

FB 社團 (軟體開發之路):

https://www.facebook.com/groups/361804473860062/

FB 粉絲團 (Gelis 的程式設計訓練營):

https://www.facebook.com/gelis.dev.learning/

我講授過的課程 SlideShare:

https://www.slideshare.net/GelisWu


以下是我經營的項目與內容:

(1). 企業內訓課程

(2). 專業顧問


企業內訓課程:

1. .NET Core 3.1 從入門到進階

先前實體課程連結

2. 跨平台的 Web API Framework 框架設計

先前實體課程連結

3. 決戰 OOAD 系列課程 - 使用 UML

先前實體課程連結

4. 單元測試 UnitTest 與 Moq 物件實務課程

先前實體課程連結

5. 快速開發系列 - C# Project Templates 範本設計

留言

這個網誌中的熱門文章

軟體工程師 - 成長的 10 個階段

常見的程式碼壞味道(Code Smell or Bad Smell)

什麼是 gRPC ?