Presenter: Koen Van Exem & Walter Hesius

Objective(s) of the session:

Domain inheritance is a the application of the Object Oriented paradigm to domains.

Encapsulation allows for parallel development and inheritance for integration of domains .


Domain Inheritance allows you to add structure and behavior in sub-domains.

Structure can be added to existing types, like new inheritance relationships and relations, but also by adding new types altogether.

Behavior (methods) from types in the super domain can be overridden or added. These domain overridden methods are not to be confused with type overridden methods.

We will contrast this approach with CBD (Component Based Development), SOA (Service Oriented Architecture), Domain Driven Design (DDD) and Aspect Orientation (AO).

Especially the comparison with AO will be beneficial, because there is some common ground ( composing/integration different domains/models ) but also
a lot of differences ( most notably that current AO is either asymmetric or symmetric, while Domain Inheritance is hierarchic )

Scaling Agility will be achieved through domain encapsulation and (continuous) integration. 
By using domain encapsulation we avoid the scaling problem rather than trying to fix it. 
The whole (your integrated domain) becomes more than the sum of its parts (the encapsulated domains).

Format and length: 90 minutes presentation interspersed with coding dojo's

Intended audience and prerequisites:

A thorough knowledge of Object Orientation, 
a basic knowledge of Aspect Orientation is welcome but not necessary.