Submit Search
Upload
Sioux Hot-or-Not: Domain Driven Design (Edwin Van Dillen)
•
0 likes
•
1,420 views
S
siouxhotornot
Follow
Sioux Hot-or-Not 3 mei 2007, Domain Driven Design met Edwin Van Dillen
Read less
Read more
Technology
Business
Report
Share
Report
Share
1 of 20
Download now
Download to read offline
Recommended
Sioux Hot-or-Not: Model Driven Software Development (Markus Voelter)
Sioux Hot-or-Not: Model Driven Software Development (Markus Voelter)
siouxhotornot
Sioux Hot-or-Not: Essential Unified Process (Ivar Jacobson)
Sioux Hot-or-Not: Essential Unified Process (Ivar Jacobson)
siouxhotornot
Web technologies: Model Driven Engineering
Web technologies: Model Driven Engineering
Piero Fraternali
Model-Driven Software Engineering in Practice - Chapter 1 - Introduction
Model-Driven Software Engineering in Practice - Chapter 1 - Introduction
Marco Brambilla
[2015/2016] Software systems engineering PRINCIPLES
[2015/2016] Software systems engineering PRINCIPLES
Ivano Malavolta
Software Architecture: Design Decisions
Software Architecture: Design Decisions
Henry Muccini
Architecture: where do you start?
Architecture: where do you start?
Skills Matter
The Art of Visualising Software - Simon Brown
The Art of Visualising Software - Simon Brown
Valtech UK
Recommended
Sioux Hot-or-Not: Model Driven Software Development (Markus Voelter)
Sioux Hot-or-Not: Model Driven Software Development (Markus Voelter)
siouxhotornot
Sioux Hot-or-Not: Essential Unified Process (Ivar Jacobson)
Sioux Hot-or-Not: Essential Unified Process (Ivar Jacobson)
siouxhotornot
Web technologies: Model Driven Engineering
Web technologies: Model Driven Engineering
Piero Fraternali
Model-Driven Software Engineering in Practice - Chapter 1 - Introduction
Model-Driven Software Engineering in Practice - Chapter 1 - Introduction
Marco Brambilla
[2015/2016] Software systems engineering PRINCIPLES
[2015/2016] Software systems engineering PRINCIPLES
Ivano Malavolta
Software Architecture: Design Decisions
Software Architecture: Design Decisions
Henry Muccini
Architecture: where do you start?
Architecture: where do you start?
Skills Matter
The Art of Visualising Software - Simon Brown
The Art of Visualising Software - Simon Brown
Valtech UK
The Modern Software Architect
The Modern Software Architect
Niels Bech Nielsen
Simon Brown: Software Architecture as Code at I T.A.K.E. Unconference 2015
Simon Brown: Software Architecture as Code at I T.A.K.E. Unconference 2015
Mozaic Works
05 architectural design
05 architectural design
University of Computer Science and Technology
Basics of Software Architecture for .NET Developers
Basics of Software Architecture for .NET Developers
Dan Douglas
4 - Architetture Software - Architecture Portfolio
4 - Architetture Software - Architecture Portfolio
Majong DevJfu
MDA
MDA
Preetam Palwe
Software Design
Software Design
Ha Ninh
Introduction to MDA
Introduction to MDA
Orçun Dayıbaş
2013 Good Design Is Good Business MDD Embedded Systems
2013 Good Design Is Good Business MDD Embedded Systems
Roger Snook
Model Driven Architectures
Model Driven Architectures
Lalit Kale
Model-Driven Software Development
Model-Driven Software Development
elliando dias
Yogesh_Kadam
Yogesh_Kadam
Yogesh kadam
04 design concepts_n_principles
04 design concepts_n_principles
University of Computer Science and Technology
08 component level_design
08 component level_design
University of Computer Science and Technology
Refactoring for Software Architecture Smells
Refactoring for Software Architecture Smells
Ganesh Samarthyam
Introduction to SOFTWARE ARCHITECTURE
Introduction to SOFTWARE ARCHITECTURE
Ivano Malavolta
[2015/2016] Collaborative software development with Git
[2015/2016] Collaborative software development with Git
Ivano Malavolta
Unit4
Unit4
anuragmbst
2 - Architetture Software - Software architecture
2 - Architetture Software - Software architecture
Majong DevJfu
Design concepts and principle,
Design concepts and principle,
awikhan12
2014 Developers' Choice Awards Reveal Database Trends
2014 Developers' Choice Awards Reveal Database Trends
Progress
Lewis Diagram
Lewis Diagram
kitcoffeen
More Related Content
What's hot
The Modern Software Architect
The Modern Software Architect
Niels Bech Nielsen
Simon Brown: Software Architecture as Code at I T.A.K.E. Unconference 2015
Simon Brown: Software Architecture as Code at I T.A.K.E. Unconference 2015
Mozaic Works
05 architectural design
05 architectural design
University of Computer Science and Technology
Basics of Software Architecture for .NET Developers
Basics of Software Architecture for .NET Developers
Dan Douglas
4 - Architetture Software - Architecture Portfolio
4 - Architetture Software - Architecture Portfolio
Majong DevJfu
MDA
MDA
Preetam Palwe
Software Design
Software Design
Ha Ninh
Introduction to MDA
Introduction to MDA
Orçun Dayıbaş
2013 Good Design Is Good Business MDD Embedded Systems
2013 Good Design Is Good Business MDD Embedded Systems
Roger Snook
Model Driven Architectures
Model Driven Architectures
Lalit Kale
Model-Driven Software Development
Model-Driven Software Development
elliando dias
Yogesh_Kadam
Yogesh_Kadam
Yogesh kadam
04 design concepts_n_principles
04 design concepts_n_principles
University of Computer Science and Technology
08 component level_design
08 component level_design
University of Computer Science and Technology
Refactoring for Software Architecture Smells
Refactoring for Software Architecture Smells
Ganesh Samarthyam
Introduction to SOFTWARE ARCHITECTURE
Introduction to SOFTWARE ARCHITECTURE
Ivano Malavolta
[2015/2016] Collaborative software development with Git
[2015/2016] Collaborative software development with Git
Ivano Malavolta
Unit4
Unit4
anuragmbst
2 - Architetture Software - Software architecture
2 - Architetture Software - Software architecture
Majong DevJfu
Design concepts and principle,
Design concepts and principle,
awikhan12
What's hot
(20)
The Modern Software Architect
The Modern Software Architect
Simon Brown: Software Architecture as Code at I T.A.K.E. Unconference 2015
Simon Brown: Software Architecture as Code at I T.A.K.E. Unconference 2015
05 architectural design
05 architectural design
Basics of Software Architecture for .NET Developers
Basics of Software Architecture for .NET Developers
4 - Architetture Software - Architecture Portfolio
4 - Architetture Software - Architecture Portfolio
MDA
MDA
Software Design
Software Design
Introduction to MDA
Introduction to MDA
2013 Good Design Is Good Business MDD Embedded Systems
2013 Good Design Is Good Business MDD Embedded Systems
Model Driven Architectures
Model Driven Architectures
Model-Driven Software Development
Model-Driven Software Development
Yogesh_Kadam
Yogesh_Kadam
04 design concepts_n_principles
04 design concepts_n_principles
08 component level_design
08 component level_design
Refactoring for Software Architecture Smells
Refactoring for Software Architecture Smells
Introduction to SOFTWARE ARCHITECTURE
Introduction to SOFTWARE ARCHITECTURE
[2015/2016] Collaborative software development with Git
[2015/2016] Collaborative software development with Git
Unit4
Unit4
2 - Architetture Software - Software architecture
2 - Architetture Software - Software architecture
Design concepts and principle,
Design concepts and principle,
Viewers also liked
2014 Developers' Choice Awards Reveal Database Trends
2014 Developers' Choice Awards Reveal Database Trends
Progress
Lewis Diagram
Lewis Diagram
kitcoffeen
With Progress Pacific, The RAD Race Has Already Been Won!
With Progress Pacific, The RAD Race Has Already Been Won!
Progress
Webstock 2011
Webstock 2011
Simon Gianoutsos
Beijing to Burketown by Jane Hardy
Beijing to Burketown by Jane Hardy
bryceives
Progress Pacific: Contemporary App Development
Progress Pacific: Contemporary App Development
Progress
Factors influencing popularity of branded content in Facebook fan pages
Factors influencing popularity of branded content in Facebook fan pages
Toni Cañabate
Health Related CMC Backgrounds
Health Related CMC Backgrounds
guestf01d8a
A,E,J &J Presentation
A,E,J &J Presentation
guest1b1543
Learning At Large Mlearn 2009
Learning At Large Mlearn 2009
Mike Sharples
Running a Gaming Program When You Can't Tell the Difference Between an Xbox a...
Running a Gaming Program When You Can't Tell the Difference Between an Xbox a...
joshwEVPL
Mobile Phone To Computer
Mobile Phone To Computer
Ian Hay
Sense-it - mLearn 2015 presentation
Sense-it - mLearn 2015 presentation
Mike Sharples
Reference Scope Identification in Citing Sentences
Reference Scope Identification in Citing Sentences
Akihiro Kameda
Beijing to Burketown by Jane Hardy
Beijing to Burketown by Jane Hardy
bryceives
9678607
9678607
GRX
Banner and Bursar: A match made ... somewhere?
Banner and Bursar: A match made ... somewhere?
F. Tracy Farmer
Phyrev4
Phyrev4
kitcoffeen
Does PaaS Pay Off?
Does PaaS Pay Off?
Progress
中文Project
中文Project
makiyo
Viewers also liked
(20)
2014 Developers' Choice Awards Reveal Database Trends
2014 Developers' Choice Awards Reveal Database Trends
Lewis Diagram
Lewis Diagram
With Progress Pacific, The RAD Race Has Already Been Won!
With Progress Pacific, The RAD Race Has Already Been Won!
Webstock 2011
Webstock 2011
Beijing to Burketown by Jane Hardy
Beijing to Burketown by Jane Hardy
Progress Pacific: Contemporary App Development
Progress Pacific: Contemporary App Development
Factors influencing popularity of branded content in Facebook fan pages
Factors influencing popularity of branded content in Facebook fan pages
Health Related CMC Backgrounds
Health Related CMC Backgrounds
A,E,J &J Presentation
A,E,J &J Presentation
Learning At Large Mlearn 2009
Learning At Large Mlearn 2009
Running a Gaming Program When You Can't Tell the Difference Between an Xbox a...
Running a Gaming Program When You Can't Tell the Difference Between an Xbox a...
Mobile Phone To Computer
Mobile Phone To Computer
Sense-it - mLearn 2015 presentation
Sense-it - mLearn 2015 presentation
Reference Scope Identification in Citing Sentences
Reference Scope Identification in Citing Sentences
Beijing to Burketown by Jane Hardy
Beijing to Burketown by Jane Hardy
9678607
9678607
Banner and Bursar: A match made ... somewhere?
Banner and Bursar: A match made ... somewhere?
Phyrev4
Phyrev4
Does PaaS Pay Off?
Does PaaS Pay Off?
中文Project
中文Project
Similar to Sioux Hot-or-Not: Domain Driven Design (Edwin Van Dillen)
Oop 1
Oop 1
phananhvu
Experience in Corporate Training in Virtual Worlds
Experience in Corporate Training in Virtual Worlds
Agile Dimensions LLC
Systems Engineering - a smarter way
Systems Engineering - a smarter way
Mark Borowski
Badgeville Summit, Engage 2012 - CASE STUDY : EMC Gamifies Global ECN Community
Badgeville Summit, Engage 2012 - CASE STUDY : EMC Gamifies Global ECN Community
Badgeville, Inc.
Oracle Fusion applications 101 [2010 OAUG Collaborate]
Oracle Fusion applications 101 [2010 OAUG Collaborate]
Rhapsody Technologies, Inc.
Tech editors conf tucker yen-jacoby revised final for may 24 2012
Tech editors conf tucker yen-jacoby revised final for may 24 2012
Cisco Public Relations
Oracle Fusion Middleware,foundation for innovation
Oracle Fusion Middleware,foundation for innovation
Alicja Sieminska
Bestpractices Portal Projects
Bestpractices Portal Projects
allerhed
Cast Iron Overview Webinar 6.13.12 Final(Jb)
Cast Iron Overview Webinar 6.13.12 Final(Jb)
Carolyn Crowe
Oracle Hatchet Job on Mark Logic
Oracle Hatchet Job on Mark Logic
Dave Kellogg
Aras ALM Workshop for PLM Configuration Management
Aras ALM Workshop for PLM Configuration Management
Aras
Software Factories in the Real World: How an IBM® WebSphere® Integration Fact...
Software Factories in the Real World: How an IBM® WebSphere® Integration Fact...
Prolifics
Making Scrum Stick Inside Heavy Regulated Industries (2012)
Making Scrum Stick Inside Heavy Regulated Industries (2012)
Laszlo Szalvay
Domain Driven Design Development Spring Portfolio
Domain Driven Design Development Spring Portfolio
Srini Penchikala
Cisco Localisation Toolkit: General Overview
Cisco Localisation Toolkit: General Overview
Gary Lefman
AD111 - The X Path: Practical guide to taking your IBM Lotus Notes applicatio...
AD111 - The X Path: Practical guide to taking your IBM Lotus Notes applicatio...
Stephan H. Wissel
Ceedo Sales training
Ceedo Sales training
Dedi Ben-Natan
XebiaLabs Overview Slides
XebiaLabs Overview Slides
XebiaLabs
Pragmatic Model Driven Development In Java Using Smart Use Cases
Pragmatic Model Driven Development In Java Using Smart Use Cases
Rody Middelkoop
Improving Defence Program Execution
Improving Defence Program Execution
IBMGovernmentCA
Similar to Sioux Hot-or-Not: Domain Driven Design (Edwin Van Dillen)
(20)
Oop 1
Oop 1
Experience in Corporate Training in Virtual Worlds
Experience in Corporate Training in Virtual Worlds
Systems Engineering - a smarter way
Systems Engineering - a smarter way
Badgeville Summit, Engage 2012 - CASE STUDY : EMC Gamifies Global ECN Community
Badgeville Summit, Engage 2012 - CASE STUDY : EMC Gamifies Global ECN Community
Oracle Fusion applications 101 [2010 OAUG Collaborate]
Oracle Fusion applications 101 [2010 OAUG Collaborate]
Tech editors conf tucker yen-jacoby revised final for may 24 2012
Tech editors conf tucker yen-jacoby revised final for may 24 2012
Oracle Fusion Middleware,foundation for innovation
Oracle Fusion Middleware,foundation for innovation
Bestpractices Portal Projects
Bestpractices Portal Projects
Cast Iron Overview Webinar 6.13.12 Final(Jb)
Cast Iron Overview Webinar 6.13.12 Final(Jb)
Oracle Hatchet Job on Mark Logic
Oracle Hatchet Job on Mark Logic
Aras ALM Workshop for PLM Configuration Management
Aras ALM Workshop for PLM Configuration Management
Software Factories in the Real World: How an IBM® WebSphere® Integration Fact...
Software Factories in the Real World: How an IBM® WebSphere® Integration Fact...
Making Scrum Stick Inside Heavy Regulated Industries (2012)
Making Scrum Stick Inside Heavy Regulated Industries (2012)
Domain Driven Design Development Spring Portfolio
Domain Driven Design Development Spring Portfolio
Cisco Localisation Toolkit: General Overview
Cisco Localisation Toolkit: General Overview
AD111 - The X Path: Practical guide to taking your IBM Lotus Notes applicatio...
AD111 - The X Path: Practical guide to taking your IBM Lotus Notes applicatio...
Ceedo Sales training
Ceedo Sales training
XebiaLabs Overview Slides
XebiaLabs Overview Slides
Pragmatic Model Driven Development In Java Using Smart Use Cases
Pragmatic Model Driven Development In Java Using Smart Use Cases
Improving Defence Program Execution
Improving Defence Program Execution
Recently uploaded
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
Delhi Call girls
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Drew Madelung
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
The Digital Insurer
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
ThousandEyes
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
Enterprise Knowledge
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
hans926745
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
hans926745
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
Enterprise Knowledge
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
debabhi2
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
lior mazor
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
giselly40
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
Remote DBA Services
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
The Digital Insurer
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
Delhi Call girls
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
wesley chun
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
Safe Software
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
Michael W. Hawkins
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
Earley Information Science
Recently uploaded
(20)
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
Sioux Hot-or-Not: Domain Driven Design (Edwin Van Dillen)
1.
Domain Driven Design
with Lego Mindstroms Edwin van Dillen evdillen@sogyo.nl 1 © 1995-2007 Sogyo 1 About Sogyo … Competence areas: • Software Engineering • Software Architecture • Enterprise Application Integration (EAI) • Application Management © 1995-2007 Sogyo 2 1
2.
Are you familiar
with? “DDD is about “Once your mind is as making the warped to objects as mine computer invisible.” is, you’ll find you prefer a Domain Model even in fairly simple cases.” Rob Vens Hexagonal Alistair Cockburn Architecture Eric Evans “The hart of software is its ability to solve domain-related problems for its user.” Martin Fowler © 1995-2007 Sogyo 3 Agenda Why Domain Driven Design? Introduction in Domain Driven Design Domain Driven Development Related technologies and frameworks for DDD Roundup and conclusions © 1995-2007 Sogyo 4 2
3.
Why Domain Driven
Design? What is the problem with software? 5 © 1995-2007 Sogyo 5 What is our challenge? In his work, Larman refers to investigations of project results and concludes that about 65% of the requirements that are mentioned at the beginning of a project, are not relevant anymore at the end of the project. Oke, so we have to deal with changes in the requirement. Source: “Applying UML and Patterns, 3rd edition”, Craig Larman, Prentice Hall © 1995-2007 Sogyo 6 3
4.
How do change
reflect on software? In order to make software changeable we need to deal with complexity of in such a way that it is manageable. There are two types of complexity [Brooks]: Essence Accidental Source: http://www-inst.eecs.berkeley.edu/~maratb/readings/NoSilverBullet.html © 1995-2007 Sogyo 7 Software Development Principals to deal with accidental complexity. Minimum coupling Maximum cohesion “Loose coupling is and remains the best way to master complexity” Based upon Edsgar Wybe Dijkstra Founder of structured programming Introduce “Separation of Concerns” © 1995-2007 Sogyo 8 4
5.
Traditional design
Layering model Interface Reasons to do so: Separation of interface, Logic logic and data Better maintainability Data Better scalability © 1995-2007 Sogyo 9 Traditional Design In practice: Calls folow from top to Interface bottom Tight coupling between Logic layers Focus on presentation and persistence. Data So layering is not the solution when dealing with accidental complexity © 1995-2007 Sogyo 10 5
6.
Can different software
architecture styles help? Transaction Script Table Module Effort to Enhance Domain Model Source: Martin Fowler Complexity of Domain Logic choose the right style for the right application/service © 1995-2007 Sogyo 11 What is domain driven? Presentation Domain Model Persistency Messaging Authentication © 1995-2007 Sogyo 12 6
7.
Why domain driven
development? Most of the development time is still spent on writing the plumbing logic in stead of the real business logic; The appearance of an application changes more often then the business logic (rule of thumb) Domain-classes: 10-20 years Database functions: 5 years User interface/communication: 2 years So, we approach the problem by applying an other paradigm! © 1995-2007 Sogyo 13 Introduction in Domain Driven Design The case of the Lego Mindstorms Robot! 14 © 1995-2007 Sogyo 14 7
8.
What is domain
modeling about? “Domain modeling is not a matter of making as ‘realistic’ a model as possible. Even in a domain of tangible real-world things, our model is an artificial creation….” “It is more like moviemaking, loosely representation reality to a particular purpose” Create a common language; Source: “DDD: tackling complexity in the heart of software” by Eric Evans © 1995-2007 Sogyo 15 What is a domain model ? A domain model is an representation of ‘real- world’ conceptual classes. (bron: [[Eliens]) bron: Eliens Eliens]) Not about software parts It is complete independent © 1995-2007 Sogyo 16 8
9.
Domain of the
Robot Meet our robot: Sound senor CPU (communication via Bluetooth) Pressure senor Motors Light senor Sonar © 1995-2007 Sogyo 17 Domain of the Robot To begin with: © 1995-2007 Sogyo 18 9
10.
Domain of the
Robot © 1995-2007 Sogyo 19 Domain of the Robot © 1995-2007 Sogyo 20 10
11.
Testability
The domain model is completely independent. So lets test it! © 1995-2007 Sogyo 21 Domain Driven Development Gluing the services around the domain 22 © 1995-2007 Sogyo 22 11
12.
Now lets implement
the domain Presentation Domain Model Persistency Messaging Authentication © 1995-2007 Sogyo 23 The glue between domain and services Services Domain Presentation Domain Adapter Model “Convert the interface of a class into another interface clients expect.” GoF-adapter pattern © 1995-2007 Sogyo 24 12
13.
The Lego Mindstorms
Service © 1995-2007 Sogyo 25 Adapters © 1995-2007 Sogyo 26 13
14.
Related technologies and
frameworks for DDD 27 © 1995-2007 Sogyo 27 What if my domain is not a Robot? What about events? Events from the domain to adaptors and vice versa is oke. Be aware of the consequence when using events in the domain itself. What about persistency? Can be written by hand, the use of O/R-bridges is advised. © 1995-2007 Sogyo 28 14
15.
Support by frameworks
for DDD AOP For instantiating the domain Think Postsharp Persistency Translation of Objects to Relation structure Think of NHibernate NakedObjects… Choose the application architecture instead of the framework! © 1995-2007 Sogyo 29 Domain Specific Languages It often related to DDD; What does Domain mean here? “any topic of interest” Keith Short Domains are used to get the focus on a specific topic within the whole area of the system Make solutions easier to understand and maintain Easy to integrate with development process Improve agility through rapid iteration © 1995-2007 Sogyo 30 15
16.
DSL and DDD
Domain examples in DSL: Security (rather broad domain) Web service security (more specific domain) Also business domains, such as Health insurance So DSL can be applied to support DDD; We are now building a DSL for persistency © 1995-2007 Sogyo 31 software architecture SOA Enterprise DOA TOA Application / service © 1995-2007 Sogyo 32 16
17.
Roundup and conclusions
33 © 1995-2007 Sogyo 33 Pros and Cons of domain driven Pros Cons Separation of concerns; Requires more time at the start of the development The domain logic is project; centralised; For the domain to be The domain model itself can independent of the services be tested early in the requires design experience project; Requires good OO skills of Adding/changing services developers and analysts; does not influence the domain or other services; © 1995-2007 Sogyo 34 17
18.
Lessons Learned: Martin
Fowler/Jimmy Nilsson In PI don’t do: Inherit from a certain base class (except domain classes) Only instantiate via provided factory Use specially provided datatypes (such as collections) Implement a specific interface Provide specific constructors Provide mandatory specific fields “Persistence Ignorance (PI)” Martin Fowler © 1995-2007 Sogyo 35 Lessons Learned by Sogyo Get a clear understanding of the expected lifespan of the application Table driven often looks like a good approach in the first iteration; A domain model is often smaller than you expect. Find the right abstraction level A domain model must have (business) responsibilities. It is not just about data, but behaviour Domain modelling is done by domain modellers They must understand the business and OO © 1995-2007 Sogyo 36 18
19.
Articles
Will be published in the “New Stuff” in April ! Domain Driven Design in de praktijk Een case met Lego Mindstorms Will be published in the Java Magazine of 29 March Domain Driven Design Achtergrond en ervaringen uit de praktijk Leave your e-mail address and we will send a PDF © 1995-2007 Sogyo 37 Resources Eliens]: Object- [Eliens]: Principles of Object-Oriented Software Development, Eliens, Addison-Wesley (2000, 2th Eliens, Addison- edition) Domain- [Evans]: Domain-Driven Design: Tackling Complexity Addison- in the Heart of Software, Evans, Addison-Wesley (2003) [Fowler]: Patterns of Enterprise Application Architecture, Fowler, Addison-Wesley (2003) Addison- Vens]: http://www.sepher.nl [Vens]: http://www.sepher.nl [Cockburn]:http://alistair.cockburn.us/index.php/Hex agonal_architecture [Nilsson]: Applying Domain Driven Design and Patterns: using .NET © 1995-2007 Sogyo 38 19
20.
Sogyo
Landgoed Sandwijck Utrechtseweg 301 3731 GA De Bilt Tel:030 220 22 16 Fax:030 220 55 06 www.sogyo.nl www.edwinvandillen.com © 1995-2007 Sogyo 39 20
Download now