Using DSL for Co-Design

Overview of the solution: 

A domain specific language (DSL), and a corresponding generator were developed and used for modeling and generation of software. The generator and the DSL cover the majority of the source code. Only for (client) specific requirements, manual changes are needed.

Co-Design Challenges Addressed: 

Today's situation w.r.t. co-design

  • Communication problems, e.g. between engineers and domain experts.
  • Development asynchronicity, i.e.different lead times causes delay
  • Ostrich tactics, i.e. integration problems are discovered at the very end
  • Building the wrong system, i.e. because of delays and synchronicity issues, the customer has limited influence in the product creation process

 

Additional Information: 

One of the Sioux solutions addressing these issues is creating and using models, i.e. domain specific models, using domain specific langauges (DSL).

The Sioux solution involves:

  • Creating a grammar (e.g. lexer, parser, generator) using the selected methods: ANTLR, Xtext, EMF, ASD and tools: Eclipse, NetBeans, openArchitectureWare.
  • Include the domain experts in the creation of the models in their own language and concepts. This way the domain experts can model in a trusted context not needing to learn a new jargon or development in general.
  • Creating test cases (test-driven solution).
  • Creating a generator that translates the model into running code.
  • Create modular and independent models: separation of concerns. This drives exchangeability so that realizations and mock-ups are relatively easly to exchange.