Teaching pragmatic model-driven software development

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.

[1]  Jack Greenfield Software Factories: Assembling Applications with Patterns, Models, Frameworks and Tools , 2004, GPCE.

[2]  Don S. Batory,et al.  Teaching model-driven engineering from a relational database perspective , 2015, Software & Systems Modeling.

[3]  Michaela Bacíková,et al.  Pragmatic model-driven software development from the viewpoint of a programmer: Teaching experience , 2014, 2014 Federated Conference on Computer Science and Information Systems.

[4]  Ruben Picek,et al.  Model Driven Development – Future or Failure of Software Development? , 2007 .

[5]  Anthony J. Cowling Modelling: a neglected feature in the software engineering curriculum , 2003, Proceedings 16th Conference on Software Engineering Education and Training, 2003. (CSEE&T 2003)..

[6]  P.J. Mosterman Automatic Code Generation: Facilitating New Teaching Opportunities in Engineering Education , 2006, Proceedings. Frontiers in Education. 36th Annual Conference.

[7]  Ján Kollár,et al.  A Task-driven Grammar Refactoring Algorithm , 2012 .

[8]  Tariq M. King,et al.  Experiences of Teaching Model-Driven Engineering in a Software Design Course , 2009 .

[9]  Marjan Mernik,et al.  From DCOM interfaces to domain-specific modeling language: A case study on the sequencer , 2011, Comput. Sci. Inf. Syst..

[10]  Martin Fowler,et al.  Domain-Specific Languages , 2010, The Addison-Wesley signature series.

[11]  Slavomír Šimoňák Verification of Communication Protocols Based on Formal Methods Integration , 2012 .

[12]  Zoran Budimac,et al.  XML schema metrics for quality evaluation , 2014, Comput. Sci. Inf. Syst..

[13]  Bernhard Rumpe,et al.  Model-driven Development of Complex Software : A Research Roadmap , 2007 .

[14]  Marjan Mernik,et al.  A preliminary study on various implementation approaches of domain-specific language , 2008, Inf. Softw. Technol..

[15]  David Thomas,et al.  The Pragmatic Programmer: From Journeyman to Master , 1999 .

[16]  Ivan Lukovic,et al.  Extended Entity-Relationship approach in a Multi-Paradigm Information System Modeling Tool , 2014, 2014 Federated Conference on Computer Science and Information Systems.

[17]  Marjan Mernik,et al.  An object-oriented approach to language compositions for software language engineering , 2013, J. Syst. Softw..

[18]  Ileana Ober,et al.  Towards Interoperability in Component Based Development with a Family of DSLs , 2008, ECSA.

[19]  Branko Milosavljevic,et al.  UML Profile for Specifying User Interfaces of Business Applications , 2010, ADBIS.

[20]  Mark Rouncefield,et al.  Model-driven engineering practices in industry: Social, organizational and managerial factors that lead to success or failure , 2014, Sci. Comput. Program..

[21]  Daniel Kimmig,et al.  Teaching model-driven software development: revealing the "great miracle" of code generation to students , 2014, ACE.

[22]  Markus Völter,et al.  Model-Driven Software Development: Technology, Engineering, Management , 2006 .

[23]  Jaroslav Porubän,et al.  Annotation based parser generator , 2009, 2009 International Multiconference on Computer Science and Information Technology.

[24]  Bran Selic,et al.  The Pragmatics of Model-Driven Development , 2003, IEEE Softw..

[25]  Zdeněk Havlice Auto-Reflexive Software Architecture with Layer of Knowledge Based on UML Models , 2013 .

[26]  Branislav Sobota,et al.  A Toolset for Support of Teaching Formal Software Development , 2014, SEFM.

[27]  Jon Whittle,et al.  Mismatches between Industry Practice and Teaching of Model-Driven Software Development , 2011, MoDELS Workshops.

[28]  Michael J. Donahoo,et al.  Efficient description and cache performance in Aspect-Oriented user interface design , 2014, 2014 Federated Conference on Computer Science and Information Systems.

[29]  Nuno Oliveira,et al.  Comparing general-purpose and domain-specific languages: An empirical study , 2010, Comput. Sci. Inf. Syst..

[30]  S. W. Ambler,et al.  Agile model driven development is good enough , 2003 .

[31]  Miguel Goulão,et al.  Quality in use of domain-specific languages: a case study , 2011, PLATEAU '11.

[32]  Milan Nosal,et al.  Practical experience with task-driven case studies , 2014, 2014 IEEE 12th IEEE International Conference on Emerging eLearning Technologies and Applications (ICETA).

[33]  Jaroslav Porubän,et al.  XML to annotations mapping definition with patterns , 2014, Comput. Sci. Inf. Syst..

[34]  Bedir Tekinerdogan,et al.  Experiences in teaching a graduate course on model-driven software development , 2011, Comput. Sci. Educ..

[35]  Miroslav Hajdukovic,et al.  Using code generation approach in developing kiosk applications , 2008, Comput. Sci. Inf. Syst..

[36]  Ahmet Demir Comparison of model-driven architecture and software factories in the context of model-driven development , 2006, Fourth Workshop on Model-Based Development of Computer-Based Systems and Third International Workshop on Model-Based Methodologies for Pervasive and Embedded Software (MBD-MOMPES'06).

[37]  Gordana Milosavljevic,et al.  A domain-specific language for defining static structure of database applications , 2010, Comput. Sci. Inf. Syst..

[38]  Anneke Kleppe,et al.  MDA explained - the Model Driven Architecture: practice and promise , 2003, Addison Wesley object technology series.

[39]  Karel Richta,et al.  Application and relational database co-refactoring , 2014, Comput. Sci. Inf. Syst..

[40]  Borivoj Melichar,et al.  Tree template matching in unranked ordered trees , 2013, J. Discrete Algorithms.

[41]  Ivan Lukovic,et al.  Model execution: An approach based on extending domain-specific modeling with action reports , 2013, Comput. Sci. Inf. Syst..

[42]  Ján Kollár,et al.  Role of Patterns in Automated Task-Driven Grammar Refactoring , 2013, SLATE.