CS 587 -
Model-Driven Software Development

Bilkent University

Study Material
Exam Guidelines

Bilsen Logo

Dr. Bedir Tekinerdoğan

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:

  • Rationale for Model-Driven Software Development
  • Evolution Problems of Software Development
  • Meta-Modeling
  • Meta-Meta-Modeling
  • Object Constraint Language (OCL)
  • Meta-data interchange and serialization (XMI)
  • UML Profiling
  • Model-Driven Architecture (MDA)
  • Software Factories
  • Model-driven engineering methodologies
  • Model Transformations
  • Aspect-Oriented Model Transformations
  • Model-to-Text Transformations
  • Model-to-Model Transformations
  • Domain-Specific Languages
  • Adoption Strategies for MDSD
  • MDSD Tools

The design of this course together with the experiences in teaching MDSD is explained in the following paper:

B. Tekinerdogan. Experiences in Teaching a Graduate Course on Model-Driven Software Development, Journal of Computer Science Education, Vol. 21, No. 4, pp. 363-389, December 2011.