The main subject of the session was the demonstration of a DSL focused on facilitating the introduction of domain abstractions into an existing code base.
We started by showing a few examples of the Patterns DSL applied to different domains such as JavaFX, code reuse, SWT, and GEF. In a few of them we completely replaced the underling code while in others we only abstracted parts of it.
|JavaFX code abstracted|
|Patterns and Models abstracted|
|GEF code abstracted|
During the hands-on part of the session we started from scratch to introduce abstraction into a Java code base.
Using a set of Java classes we built an artifacts model representing our modeled starting point.
Then we applied a few refactoring such as "Introduce Patterns in Pattern Language", "Extract Patterns", "Extract scattered Pattern" to progressively gain the ability to use in our model patterns like "Property", "JavaBean", "JavaBeanModel", and "JavaProject".
|First pattern introduced|
|Java Beans patterns|
|Java code without and with new abstractions|