CS 587 -
CS 587 Model-Driven Software Development
Instructor: Dr. Bedir Tekinerdoğan
The application of models to software development is a well-known approach and has become even more popular with the introduction of the Unified Modeling Language (UML). Despite the increasing standardization, however, models have so far still been considered merely as documentation since the relation between the developed models and the code is intentional and not formal. In general software is enduring a continuous change and as such the corresponding documentation must be adapted together or it will become inconsistent. Moreover, the usage of such models is largely depending on the interpretation of the software developer, and as such leads only indirectly to the code. This is the reason why models tend to be considered as an overhead, or even unnecessary in current software projects.
In Model-Driven Software Development (MDSD) an entirely different approach is adopted with respect to the usage of models. MDSD is considered as the natural continuation of the current programming languages and software development methods. In MDSD models do not constitute documentation but are considered equal to code. MDSD aims to utilize domain-specific languages to create models that express application structure and behavior in a more efficient way. The models are then (semi)automatically transformed into executable code by model transformations. The course will teach the important concepts in model-driven software development, the requirements for setting up a model-driven approach, the state-of-the art MDE approaches, and the key obstacles in MDSD projects. The topics of the course include, but are not limited to:
The design of this course together with the experiences in
teaching MDSD is explained in the following paper: