Teaching Pragmatic Model-Driven Software Development

Jaroslav Porubän1, Michaela Bačíková1, Sergej Chodarev1 and Milan Nosál’1

  1. Technical University of Košice, Department of Computers and Informatics
    Letná 9, Košice, Slovak Republic
    {jaroslav.poruban, michaela.bacikova, sergej.chodarev}@tuke.sk, milan.nosal@gmail.com


Model-driven software development is surrounded by numerous myths and misunderstandings that hamper its adoption. For long, our students were victims of these myths and considered MDSD impractical and only applied in academy. In this paper we discuss these myths and present our experience with devising an MDSD course that challenges them and motivates students to understand MDSD principles. The main contribution of this work is a set of MDSD teaching guidelines that can make the course pragmatic in the eyes of students – programmers. These guidelines introduce MDSD from the viewpoint of a programmer as a pragmatic tool for solving concrete problems in the development process. In our MDSD course we implemented the presented guidelines. The course shows several techniques and principles of model-driven development in multiple incremental iterations instead of concentrating on a single tool. At the same time we unite these techniques by using a dynamic visualisation tool that shows to the students the whole infrastructure in the big picture. The course is implemented as an iterative incremental MDSD case study. The paper concludes with a survey performed with our students that indicates positive results of the approach.

Key words

Model-driven Software Development, Teaching, Case Study, Iterative MDSD, Visualisation Tool, Pragmatic MDSD, Domain-Specific Languages

Digital Object Identifier (DOI)


Publication information

Volume 12, Issue 2 (June 2015)
Year of Publication: 2015
ISSN: 2406-1018 (Online)
Publisher: ComSIS Consortium

Full text

DownloadAvailable in PDF
Portable Document Format

How to cite

Porubän, J., Bačíková, M., Chodarev, S., Nosál’, M.: Teaching Pragmatic Model-Driven Software Development. Computer Science and Information Systems, Vol. 12, No. 2, 683-705. (2015), https://doi.org/10.2298/CSIS140107022P