(3.220.231.235) 您好!臺灣時間:2021/03/08 04:41
字體大小: 字級放大   字級縮小   預設字形  
回查詢結果

詳目顯示:::

我願授權國圖
: 
twitterline
研究生:黃偉哲
研究生(外文):HUANG, WEI-ZHE
論文名稱:一個實作領域驅動設計的新方法:以ezKanban為例
論文名稱(外文):A New Approach to Implementing Domain-Driven Design: A Case Study of ezKanban
指導教授:鄭有進鄭有進引用關係謝金雲
指導教授(外文):CHENG, YU CHINHSIEH, CHIN-YUN
口試委員:鄭有進謝金雲陳建村李允中
口試委員(外文):CHENG, YU CHINHSIEH, CHIN-YUNCHEN, CHIEN-TSUNLEE, JONATHAN
口試日期:2020-06-05
學位類別:碩士
校院名稱:國立臺北科技大學
系所名稱:資訊工程系
學門:工程學門
學類:電資工程學類
論文種類:學術論文
論文出版年:2020
畢業學年度:108
語文別:中文
論文頁數:41
中文關鍵詞:事件風暴領域驅動設計整潔架構ezKanban
外文關鍵詞:Event StormingDomain-Driven DesignClean ArchitectureezKanban
相關次數:
  • 被引用被引用:0
  • 點閱點閱:51
  • 評分評分:系統版面圖檔系統版面圖檔系統版面圖檔系統版面圖檔系統版面圖檔
  • 下載下載:3
  • 收藏至我的研究室書目清單書目收藏:0
在領域驅動設計中,透過事件風暴工作坊塑模商業流程,藉此尋找領域模型並建立通用語言為目前主流的方法之一。然而事件風暴建議採用長度接近無限的實體牆面,在實務上有困難之處。此外,要如何將事件風暴產出物轉換為程式碼,以達到將「通用語言落實於程式碼」的目標亦是有待解決的問題。本論文提出一個新的實作領域驅動設計方法,首先我們建議在事件風暴中使用網路多人協作繪圖工具以解決牆面空間的問題。接著我們提出一種套用整潔架構的方法,開發人員只要依循固定步驟便可將事件風暴產出物以驅動測試開發的方式轉換為程式碼,達到將通用語言落實於程式碼的目的。我們將本方法實際應用在開發線上看板系統—ezKanban,以驗證其實用性。
In Domain-Driven Design, modeling business processes through the event storming workshop to find domain models and build an ubiquitous language is one of the current mainstream approaches. However, the event storming recommends the use of a solid wall with an infinite length, which has practical difficulties. In addition, converting the output of the event storming into code to achieve the goal of "Ubiquitous language in code" is also a problem to be solved. This thesis proposes a new approach to implementing Domain-Driven Design. First, we solve the problem of wall space by using network collaborative drawing tool which allows multiple users to participate in event storming. Then we propose an approach of applying Clean Architecture in which developers convert event storming output into code by Test-Driven Development by following a set of fixed steps to achieve the purpose of ubiquitous language in code. We have actually applied this approach to the development of an online kanban system called ezKanban to verify its practicability.
摘要 i
ABSTRACT ii
誌謝 iv
目錄 v
表目錄 vii
圖目錄 viii
第一章 緒論 1
1.1 研究背景與動機 1
1.2 研究目標與方法 1
1.3 論文組織架構 2
第二章 知識背景與相關研究 3
2.1 領域驅動設計 3
2.2 整潔架構 4
2.3 ezKanban 5
第三章 研究方法與步驟 7
3.1 舉辦事件風暴工作坊 7
3.1.1 步驟與方法 7
3.1.2 使用虛擬繪圖工具繪製事件風暴產出物 10
3.2 建立領域模型 16
3.2.1 步驟與方法 16
3.2.2 找出聚合(Aggregate) 17
3.2.3 使用Association Class表達Aggregate之間的關係 18
3.3 以測試驅動開發將事件風暴產出物轉換為程式碼 19
3.3.1 步驟與方法 19
第四章 實作 26
4.1 舉辦事件風暴工作坊 26
4.1.1 使用Miro實踐事件風暴 26
4.2 建立領域模型 28
4.2.1 找出聚合(Aggregate) 30
4.2.2 使用Association Class討論Aggregate之間的關係 30
4.3 以測試驅動開發,將事件風暴產出物轉換為程式碼 31
第五章 結論與未來展望 38
5.1 結論 38
5.2 應用心得 38
5.3 未來展望 39
參考文獻 40


[1]Robert C.Martin, Clean Architecture: A Craftsman’s Guide to Software Structure and Design, Prentice Hall, 2017.
[2]Eric Evans, Domain-Driven Design: Tackling Complexity in the Heart of Software, Boston, MA: Addison- Wesley Professional, 2003.
[3]Alberto Brandolini, Introducing Event Storming, Lean Publishing, 2018
[4]“Event Storming Part2 - 風暴展開, ” iT邦幫忙. [Online]. Available: https://ithelp.ithome.com.tw/articles/10220073. [Access: 24-March-2020].
[5]Natalia Kolińska, “A step by step guide to Event Storming – our experience, ” [Online]. Available: https://www.boldare.com/blog/event-storming-guide/. [Access: 24-March-2020].
[6]“EVENT STORMING The smartest approach to collaboration beyond silo boundaries, ” [Online]. Available: https://www.eventstorming.com. [Access: 24-March-2020].
[7]“Domain events: design and implementation, ” Microsoft .NET. [Online]. Available: https://docs.microsoft.com/en-us/dotnet/architecture/microservices/microservice-ddd-cqrs-patterns/domain-events-design-implementation. [Access: 24-March-2020].
[8] Erich Gamma , Richard Helm , Ralph Johnson , John Vlissides, Design Patterns : Elements of Reusable Object-Oriented Software, Addison Wesley, 1994.
[9] Andrew Stellman, Jennifer Greene, Learning Agile: Understanding Scrum, XP, Lean, and Kanban, O'Reilly, 2014.
[10] “Miro | Team Collaboration Software‎, ” [Online]. Available: https://miro.com/. [Access: 25-March-2020].
[11] “Flowchart Maker & Online Diagram Software, ” [Online]. Available: https://app.diagrams.net/. [Access: 25-March-2020].
[12] “Online Diagram and Flowchart Software | Cacoo, ” [Online]. Available: https://cacoo.com/. [Access: 25-March-2020].
[13] “Diagram Software & Team Collaboration Tools | Gliffy, ” [Online]. Available: https://www.gliffy.com/. [Access: 25-March-2020].
[14] Craig Larman, Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and Iterative Development, Prentice Hall, 2004.
[15]Facebook, flux Source Code on GitHub. Retrieved from https://github.com/facebook/flux/tree/master/examples/flux-todomvc
[16]“Redux, ” [Online]. Available: https://redux.js.org/. [Access: 30-March-2020].
[17]“It's time for Miro. ”[Online]. Available: https://www.youtube.com/watch?v=fM7GgjqBD5M. [Access: 16-April-2020].
[18]“BigBlueButton. ” [Online]. Available: https://bigbluebutton.org/. [Access: 16-April-2020].
[19]“WebEx. ” [Online]. Available: https://www.webex.com/. [Access: 16-April-2020].
[20]“Poor's man domain events. ”[Online]. Available: https://blog.pchudzik.com/201710/domain-events/. [Access: 23-April-2020].
[21]“Google Hangouts. ”[Online]. Available: https://chrome.google.com/webstore/detail/google-hangouts/nckgahadagoaajjgafhacjanaoiihapd?utm_source=chrome-ntp-icon. [Access: 6-May-2020]
[22]“EventBus. ”[Online]. Available: https://github.com/google/guava/wiki/EventBusExplained. [Access: 6-May-2020]

QRCODE
 
 
 
 
 
                                                                                                                                                                                                                                                                                                                                                                                                               
第一頁 上一頁 下一頁 最後一頁 top
系統版面圖檔 系統版面圖檔