SlideShare a Scribd company logo
1 of 20
Download to read offline
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
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
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
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
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
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
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
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
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
Domain of the Robot




© 1995-2007 Sogyo             19




        Domain of the Robot




© 1995-2007 Sogyo             20




                                   10
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
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
The Lego Mindstorms Service




© 1995-2007 Sogyo                     25




        Adapters




© 1995-2007 Sogyo                     26




                                           13
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
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
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
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
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
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
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

More Related Content

What's hot

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 2015Simon 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 2015Mozaic Works
 
Basics of Software Architecture for .NET Developers
Basics of Software Architecture for .NET DevelopersBasics of Software Architecture for .NET Developers
Basics of Software Architecture for .NET DevelopersDan Douglas
 
4 - Architetture Software - Architecture Portfolio
4 - Architetture Software - Architecture Portfolio4 - Architetture Software - Architecture Portfolio
4 - Architetture Software - Architecture PortfolioMajong DevJfu
 
Software Design
Software DesignSoftware Design
Software DesignHa Ninh
 
2013 Good Design Is Good Business MDD Embedded Systems
2013 Good Design Is Good Business MDD Embedded Systems2013 Good Design Is Good Business MDD Embedded Systems
2013 Good Design Is Good Business MDD Embedded SystemsRoger Snook
 
Model Driven Architectures
Model Driven ArchitecturesModel Driven Architectures
Model Driven ArchitecturesLalit Kale
 
Model-Driven Software Development
Model-Driven Software DevelopmentModel-Driven Software Development
Model-Driven Software Developmentelliando dias
 
Refactoring for Software Architecture Smells
Refactoring for Software Architecture SmellsRefactoring for Software Architecture Smells
Refactoring for Software Architecture SmellsGanesh Samarthyam
 
Introduction to SOFTWARE ARCHITECTURE
Introduction to SOFTWARE ARCHITECTUREIntroduction to SOFTWARE ARCHITECTURE
Introduction to SOFTWARE ARCHITECTUREIvano Malavolta
 
[2015/2016] Collaborative software development with Git
[2015/2016] Collaborative software development with Git[2015/2016] Collaborative software development with Git
[2015/2016] Collaborative software development with GitIvano Malavolta
 
2 - Architetture Software - Software architecture
2 - Architetture Software - Software architecture2 - Architetture Software - Software architecture
2 - Architetture Software - Software architectureMajong DevJfu
 
Design concepts and principle,
Design concepts and principle, Design concepts and principle,
Design concepts and principle, awikhan12
 

What's hot (20)

The Modern Software Architect
The Modern Software ArchitectThe 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 2015Simon 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 design05 architectural design
05 architectural design
 
Basics of Software Architecture for .NET Developers
Basics of Software Architecture for .NET DevelopersBasics of Software Architecture for .NET Developers
Basics of Software Architecture for .NET Developers
 
4 - Architetture Software - Architecture Portfolio
4 - Architetture Software - Architecture Portfolio4 - Architetture Software - Architecture Portfolio
4 - Architetture Software - Architecture Portfolio
 
MDA
MDAMDA
MDA
 
Software Design
Software DesignSoftware Design
Software Design
 
Introduction to MDA
Introduction to MDAIntroduction to MDA
Introduction to MDA
 
2013 Good Design Is Good Business MDD Embedded Systems
2013 Good Design Is Good Business MDD Embedded Systems2013 Good Design Is Good Business MDD Embedded Systems
2013 Good Design Is Good Business MDD Embedded Systems
 
Model Driven Architectures
Model Driven ArchitecturesModel Driven Architectures
Model Driven Architectures
 
Model-Driven Software Development
Model-Driven Software DevelopmentModel-Driven Software Development
Model-Driven Software Development
 
Yogesh_Kadam
Yogesh_KadamYogesh_Kadam
Yogesh_Kadam
 
04 design concepts_n_principles
04 design concepts_n_principles04 design concepts_n_principles
04 design concepts_n_principles
 
08 component level_design
08 component level_design08 component level_design
08 component level_design
 
Refactoring for Software Architecture Smells
Refactoring for Software Architecture SmellsRefactoring for Software Architecture Smells
Refactoring for Software Architecture Smells
 
Introduction to SOFTWARE ARCHITECTURE
Introduction to SOFTWARE ARCHITECTUREIntroduction to SOFTWARE ARCHITECTURE
Introduction to SOFTWARE ARCHITECTURE
 
[2015/2016] Collaborative software development with Git
[2015/2016] Collaborative software development with Git[2015/2016] Collaborative software development with Git
[2015/2016] Collaborative software development with Git
 
Unit4
Unit4Unit4
Unit4
 
2 - Architetture Software - Software architecture
2 - Architetture Software - Software architecture2 - Architetture Software - Software architecture
2 - Architetture Software - Software architecture
 
Design concepts and principle,
Design concepts and principle, Design concepts and principle,
Design concepts and principle,
 

Viewers also liked

2014 Developers' Choice Awards Reveal Database Trends
2014 Developers' Choice Awards Reveal Database Trends2014 Developers' Choice Awards Reveal Database Trends
2014 Developers' Choice Awards Reveal Database TrendsProgress
 
With Progress Pacific, The RAD Race Has Already Been Won!
With Progress Pacific, The RAD Race Has Already Been Won!With Progress Pacific, The RAD Race Has Already Been Won!
With Progress Pacific, The RAD Race Has Already Been Won!Progress
 
Beijing to Burketown by Jane Hardy
Beijing to Burketown by Jane HardyBeijing to Burketown by Jane Hardy
Beijing to Burketown by Jane Hardybryceives
 
Progress Pacific: Contemporary App Development
Progress Pacific: Contemporary App DevelopmentProgress Pacific: Contemporary App Development
Progress Pacific: Contemporary App DevelopmentProgress
 
Factors influencing popularity of branded content in Facebook fan pages
Factors influencing popularity of branded content in Facebook fan pagesFactors influencing popularity of branded content in Facebook fan pages
Factors influencing popularity of branded content in Facebook fan pagesToni Cañabate
 
Health Related CMC Backgrounds
Health Related CMC BackgroundsHealth Related CMC Backgrounds
Health Related CMC Backgroundsguestf01d8a
 
A,E,J &J Presentation
A,E,J &J PresentationA,E,J &J Presentation
A,E,J &J Presentationguest1b1543
 
Learning At Large Mlearn 2009
Learning At Large Mlearn 2009Learning At Large Mlearn 2009
Learning At Large Mlearn 2009Mike 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...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 ComputerMobile Phone To Computer
Mobile Phone To ComputerIan Hay
 
Sense-it - mLearn 2015 presentation
Sense-it - mLearn 2015 presentationSense-it - mLearn 2015 presentation
Sense-it - mLearn 2015 presentationMike Sharples
 
Reference Scope Identification in Citing Sentences
Reference Scope Identification in Citing SentencesReference Scope Identification in Citing Sentences
Reference Scope Identification in Citing SentencesAkihiro Kameda
 
Beijing to Burketown by Jane Hardy
Beijing to Burketown by Jane HardyBeijing to Burketown by Jane Hardy
Beijing to Burketown by Jane Hardybryceives
 
9678607
96786079678607
9678607GRX
 
Banner and Bursar: A match made ... somewhere?
Banner and Bursar: A match made ... somewhere?Banner and Bursar: A match made ... somewhere?
Banner and Bursar: A match made ... somewhere?F. Tracy Farmer
 
Does PaaS Pay Off?
Does PaaS Pay Off?Does PaaS Pay Off?
Does PaaS Pay Off?Progress
 
中文Project
中文Project中文Project
中文Projectmakiyo
 

Viewers also liked (20)

2014 Developers' Choice Awards Reveal Database Trends
2014 Developers' Choice Awards Reveal Database Trends2014 Developers' Choice Awards Reveal Database Trends
2014 Developers' Choice Awards Reveal Database Trends
 
Lewis Diagram
Lewis DiagramLewis Diagram
Lewis Diagram
 
With Progress Pacific, The RAD Race Has Already Been Won!
With Progress Pacific, The RAD Race Has Already Been Won!With Progress Pacific, The RAD Race Has Already Been Won!
With Progress Pacific, The RAD Race Has Already Been Won!
 
Webstock 2011
Webstock 2011Webstock 2011
Webstock 2011
 
Beijing to Burketown by Jane Hardy
Beijing to Burketown by Jane HardyBeijing to Burketown by Jane Hardy
Beijing to Burketown by Jane Hardy
 
Progress Pacific: Contemporary App Development
Progress Pacific: Contemporary App DevelopmentProgress 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 pagesFactors 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 BackgroundsHealth Related CMC Backgrounds
Health Related CMC Backgrounds
 
A,E,J &J Presentation
A,E,J &J PresentationA,E,J &J Presentation
A,E,J &J Presentation
 
Learning At Large Mlearn 2009
Learning At Large Mlearn 2009Learning 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...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 ComputerMobile Phone To Computer
Mobile Phone To Computer
 
Sense-it - mLearn 2015 presentation
Sense-it - mLearn 2015 presentationSense-it - mLearn 2015 presentation
Sense-it - mLearn 2015 presentation
 
Reference Scope Identification in Citing Sentences
Reference Scope Identification in Citing SentencesReference Scope Identification in Citing Sentences
Reference Scope Identification in Citing Sentences
 
Beijing to Burketown by Jane Hardy
Beijing to Burketown by Jane HardyBeijing to Burketown by Jane Hardy
Beijing to Burketown by Jane Hardy
 
9678607
96786079678607
9678607
 
Banner and Bursar: A match made ... somewhere?
Banner and Bursar: A match made ... somewhere?Banner and Bursar: A match made ... somewhere?
Banner and Bursar: A match made ... somewhere?
 
Phyrev4
Phyrev4Phyrev4
Phyrev4
 
Does PaaS Pay Off?
Does PaaS Pay Off?Does PaaS Pay Off?
Does PaaS Pay Off?
 
中文Project
中文Project中文Project
中文Project
 

Similar to Sioux Hot-or-Not: Domain Driven Design (Edwin Van Dillen)

Experience in Corporate Training in Virtual Worlds
Experience in Corporate Training in Virtual WorldsExperience in Corporate Training in Virtual Worlds
Experience in Corporate Training in Virtual WorldsAgile Dimensions LLC
 
Systems Engineering - a smarter way
Systems Engineering - a smarter waySystems Engineering - a smarter way
Systems Engineering - a smarter wayMark Borowski
 
Badgeville Summit, Engage 2012 - CASE STUDY : EMC Gamifies Global ECN Community
Badgeville Summit, Engage 2012 - CASE STUDY : EMC Gamifies Global ECN Community 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]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 2012Tech editors conf tucker yen-jacoby revised final  for may 24 2012
Tech editors conf tucker yen-jacoby revised final for may 24 2012Cisco Public Relations
 
Oracle Fusion Middleware,foundation for innovation
Oracle Fusion Middleware,foundation for innovationOracle Fusion Middleware,foundation for innovation
Oracle Fusion Middleware,foundation for innovationAlicja Sieminska
 
Bestpractices Portal Projects
Bestpractices Portal ProjectsBestpractices Portal Projects
Bestpractices Portal Projectsallerhed
 
Cast Iron Overview Webinar 6.13.12 Final(Jb)
Cast Iron Overview Webinar 6.13.12 Final(Jb)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 LogicOracle Hatchet Job on Mark Logic
Oracle Hatchet Job on Mark LogicDave Kellogg
 
Aras ALM Workshop for PLM Configuration Management
Aras ALM Workshop for PLM Configuration ManagementAras ALM Workshop for PLM Configuration Management
Aras ALM Workshop for PLM Configuration ManagementAras
 
Software Factories in the Real World: How an IBM® WebSphere® Integration Fact...
Software Factories in the Real World: How an IBM® WebSphere® Integration Fact...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) 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 PortfolioDomain Driven Design Development Spring Portfolio
Domain Driven Design Development Spring PortfolioSrini Penchikala
 
Cisco Localisation Toolkit: General Overview
Cisco Localisation Toolkit: General OverviewCisco Localisation Toolkit: General Overview
Cisco Localisation Toolkit: General OverviewGary 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...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
 
XebiaLabs Overview Slides
XebiaLabs Overview SlidesXebiaLabs Overview Slides
XebiaLabs Overview SlidesXebiaLabs
 
Pragmatic Model Driven Development In Java Using Smart Use Cases
Pragmatic Model Driven Development In Java Using Smart Use CasesPragmatic Model Driven Development In Java Using Smart Use Cases
Pragmatic Model Driven Development In Java Using Smart Use CasesRody Middelkoop
 
Improving Defence Program Execution
Improving Defence Program ExecutionImproving Defence Program Execution
Improving Defence Program ExecutionIBMGovernmentCA
 

Similar to Sioux Hot-or-Not: Domain Driven Design (Edwin Van Dillen) (20)

Oop 1
Oop 1Oop 1
Oop 1
 
Experience in Corporate Training in Virtual Worlds
Experience in Corporate Training in Virtual WorldsExperience in Corporate Training in Virtual Worlds
Experience in Corporate Training in Virtual Worlds
 
Systems Engineering - a smarter way
Systems Engineering - a smarter waySystems 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 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]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 2012Tech 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 innovationOracle Fusion Middleware,foundation for innovation
Oracle Fusion Middleware,foundation for innovation
 
Bestpractices Portal Projects
Bestpractices Portal ProjectsBestpractices Portal Projects
Bestpractices Portal Projects
 
Cast Iron Overview Webinar 6.13.12 Final(Jb)
Cast Iron Overview Webinar 6.13.12 Final(Jb)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 LogicOracle Hatchet Job on Mark Logic
Oracle Hatchet Job on Mark Logic
 
Aras ALM Workshop for PLM Configuration Management
Aras ALM Workshop for PLM Configuration ManagementAras 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...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) 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 PortfolioDomain Driven Design Development Spring Portfolio
Domain Driven Design Development Spring Portfolio
 
Cisco Localisation Toolkit: General Overview
Cisco Localisation Toolkit: General OverviewCisco 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...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 trainingCeedo Sales training
Ceedo Sales training
 
XebiaLabs Overview Slides
XebiaLabs Overview SlidesXebiaLabs Overview Slides
XebiaLabs Overview Slides
 
Pragmatic Model Driven Development In Java Using Smart Use Cases
Pragmatic Model Driven Development In Java Using Smart Use CasesPragmatic 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 ExecutionImproving Defence Program Execution
Improving Defence Program Execution
 

Recently uploaded

Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...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 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfhans926745
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdflior mazor
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)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 AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 

Recently uploaded (20)

Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor 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 Men08448380779 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...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 2024Bajaj 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 WorkerHow 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 SolutionsIAC 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.pdfTech 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[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.pdfThe 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 ProcessorsExploring 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.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 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 FresherStrategies 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 2024Axa 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 Men08448380779 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)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 AutomationFrom 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 MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber 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.pptxEIS-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