DSL Theorie and Practice

In a recent TWINS meeting (September, 18, 2009) a part of the Sioux design flow has been presented, discussed and demonstrated: domain specific modeling (DSL).

Background

Sioux fits within the common workflow using cyclic modelling: we start out with a requirements model that evolves into the final, executable model: executable sources. The cycle starts by decomposing the system under development, thus introducing interfaces that need to develop into the interface model, both syntactical and semantically. There is however a ‘hidden agenda’ here. The modelling process itself brings along additional benefits:
• The growth of the ubiquitous language.
• More and shorter communication lines within the project.
• Cross-fertilisation between the involved disciplines.
• More focus on the core of the project.

The methods Sioux investigated and applies are:
• Model-Driven Software Development (MDSD)
• Textual Domain Specific Languages (DSL)
• Modeling through use of lexers, parsers and tree walkers, e.g. ANTLR, XText
• Creation of domain specific code generators, thus reducing boring manual labour and a significant quality improvement.

In general modeling is beneficial, if only for the emerging ubiquitous language. Nevertheless, modeling is not the ultimate-all-solving-box of Pandora. One of the things that we observed is that modeling is often seen as synonymous with generation, which is incorrect; generation is valuable, but not for all cases and situations. The underlying business case drives both positively and negatively driving modeling.
 

AttachmentSize
dsl.theory.and_.practice.pdf1.12 MB
Solution reference: