Model-Driven Software Engineering

To control the quality of software systems, we inevitably need to control their complexity, regulating their safety, information security, efficiency and economy.

To control the quality of software systems, we inevitably need to control their complexity, regulating their safety, information security, efficiency and economy. Without a thorough understanding of the domain such control is impossible, especially when the code of today's software systems is growing beyond the human scale.  The goal of model-driven software engineering is to bring the code of software systems back to a size and shape which can be managed by human software engineers.

Model-driven software engineering is a software-engineering approach based on high-level descriptions of the relevant aspects of software. The actual implementation is derived automatically through code generation or interpretation. While the strategy and goals of model-driven software engineering are clear, the execution of this vision is still limited to clearly defined (and large) sub-domains of software engineering. The challenge is to make it effectively available to all software engineers, in all their specialized contexts.

Bridging the knowledge about the specific domain context to the general software technology is an intrinsic part of our approach. Model-driven software engineering is relevant for all domains which develop and apply software technology. With language workbenches, such as Rascal Metaprogramming Language and Ensō we support software engineers in building their own model-driven software engineering solutions. Next to this we also research and develop solutions for specific areas such as banking, computational auditing and digital forensics.

Where model-driven engineering is chosen as solution to prevent future complexity, in the context of existing large and complex software systems, the application domain Software Maintenance is relevant.

Contact person: Tijs van der Storm
Research group: Software Analysis and Transformation (SWAT)
Research partners:  University of Groningen, TU Eindhoven, OCÉ,  Belastingdienst, NFI
Spin-off: SWAT.engineering (being formed)
Tools:  Rascal Metaprogramming Language, Ensō, Rebel, Derric