WHAT IS DOMAIN?
• Business or whatever activity we are trying to
assist with the software
Slide 5
Slide 5 text
• Assembly parts != Car
• Vision
• Specification
• Architecture
Slide 6
Slide 6 text
• Communication between experts & developers
• Develop model together
Slide 7
Slide 7 text
UBIQUITOUS LANGUAGE
• Model driven: Based on the Domain Model
• Building up a common, rigorous language between
developers and users
• UML
• Software doesn't cope well with ambiguity
Slide 8
Slide 8 text
BOUNDED CONTEXT
• Model gets bigger
• Bound context
• Domain & sub domain
Domain
Sub Domain
Service
Sub Domain
Service
Sub Domain
Service
Slide 9
Slide 9 text
• Product in Catalog domain
• Product in Stock Management domain
Product image, title, price
product code, storage
Slide 10
Slide 10 text
• Subdomain has its own model
• Each model has bounded context
Slide 11
Slide 11 text
BUILDING BLOCKS
Model Driven Development
Slide 12
Slide 12 text
LAYERED ARCHITECTURE
Slide 13
Slide 13 text
ENTITY
• Not defined by their attributes
• Continuity
• Identity
Slide 14
Slide 14 text
VALUE OBJECT
• These objects describe characteristics of a thing.
• Immutable during lifecycle
Slide 15
Slide 15 text
SERVICE
• oo manger
• significant process or transformation in the domain is not a
responsibility of an ENTITY or VALUE OBJECT, add
SERVICE
• The interface is defined in terms of other elements in the
domain model
• Stateless
Slide 16
Slide 16 text
MODULE
• Highly cohesive
• Low coupling
• Derived from the Ubiquitous Language
Slide 17
Slide 17 text
AGGREGATE
• Logical boundary for things that can change in a
business transaction of a given context.
• Reduce many to many relationship
• Root: outside objects holds references to
Slide 18
Slide 18 text
AGGREGATE
Slide 19
Slide 19 text
FACTORY
• Produces complicated aggregates or sometimes
also entities and value objects
Slide 20
Slide 20 text
REPOSITORY
• Interfaces for storing and retrieving Aggregate
Roots