“die modellwerkstatt” focuses on supporting teams to follow the ideal software development process. We create tools and solutions that will assist you during all phases of a typical software project life-cycle - requirements gathering, elaboration and proper fulfilment, while obeying imposed time and costs restrictions. 

“die modellwerkstatt” develops domain specific languages (DSL) dedicated to the problem domains of our customers. DSLs allow us to build an intuitive logical model of the future application and each of its intended components. These models are then automatically translated into executable programming code. This model-driven approach, typically referred to as Model driven software development (MDSD), brings a lot of worth-while benefits and is in particular popular in the automotive, telecom and avionics industry.

To describe an ideal process in more detail: 

  1. First, together with the domain specialists, a common way of looking at things is developed and domain specific languages are born. The DSLs codifies the shared vocabulary and all the relationships typical for the domains at hands. 

  2. Requirements of the planned application are transformed into a logical model. The logical model then fosters discussions with the corresponding principal departments. It not only helps to discover further requirements, but also structures and eases the process of codifying them in a formal way. Since runnable code is generated from the model, the involved parties are motivated to formulate the requirements clearly. We identified this “DSL-assisted” requirement discussion phase to have a significant impact on decreasing the overall development-risk of the project. 

  3. Technical aspects like the programming language, the target runtime environments, the user interface frameworks or details about the database are captured and isolated in the code generators. This ensures a high level of long-term safety of investment due to the inherent flexibility baked into the scheme. The code generators can be replaced with different ones at any time. Also, new requirements can be added to the application model with a great level of freedom. 

As a result the long-term maintenance cost is mostly attached to extending the logical model and improving or adopting the code generators. The inner structure of the application remains solid and stable over time. Development risk is minimized. 

To realise the described ideal software development process for our customer,
“die modellwerkstatt” builds on four key factors:

 A higher level of abstraction of the logical models when using DSLs. This does not only improve code readability and clearness, but also accelerates the development cycles.  A modular system design: Code-Generators generate clearly structured modular code, which is assembled together using the techniques known from software product-line engineering. Clever modularisation is mandatory!
 Employment of formal methods for the specification, development and verification. Use-Cases, which illustrate requirements in detail, are used to verify the logical application-model. These Use-Cases are also formulated in the Domain Specific Language. Optimal tool support. Domain Specific Languages and code generators have to be developed in a timely manner and with restricted efforts. With JetBrains MPS, a meta programming system, we are using one of the most innovative technologies in the model driven design environment space.

Available Case Studies

  • In two consecutive german Articles (Article 1, Article 2) published in the Java Magazin, Daniel Stieger and Wolfgang Messner from die modellwerkstatt and Tom Schindl from bestSolution introduce to the idea of modelling business applications and how models translate nicely to Java FX applications.   

  • Testing an Asic: The case study describes how Daniel Stieger from die modellwerkstatt and Michael Gau from Bachmann electronics built a DSL and a C generator for testing an integrated circuit. A language was devised to formulate test cases which in turn generates to c code.
  • DSLs to fully generate Business ApplicationsDaniel Stieger, Matthias Farwick, Berthold Agreiter, Wolfgang Messner document early efforts in generating business applications from scratch with the jetbrains MPS. 

  • Domain-Specific Languages for Business Applications - Modelling User Interfaces: Daniel Stieger, Wolfgang Messner, Oscar Rodriguez and Vaclav Pech are discussing the unique challenges of business application development, especially business logic handling and user interface design.

Feel free to contact us on matters of software development and domain specific