A model-driven framework for domain specific languages demonstrated on a test automation language

Innovation in today’s automotive industry is largely based on electronics and software. To get a competitive edge a company has to deliver new features steadily. This trend is boosted by a decreasing technology life cycle. The result is an exponential growth of software inside a car. As quality plays a critical role software and hardware have to be tested properly, manual testing is not practicable anymore. At the BMW Group a framework for test automation has been developed including a Microsoft Excel based test specification language. The language and its implementation approach offer various places for improvement, however due to the chosen technology the emendation possibilities are limited. Therefore the development of a new domain specific language (DSL) was decided. However, the development of a new DSL is a difficult task at the moment. The developer needs expertise in the field of language development which involves design, lexical analysis, parser and compiler construction, implementation of a suited runtime and most importantly knowledge of the concepts within the specific domain. A various number of tools supporting domain specific language development is available, yet most lack in categories like reusability, maintainability, interoperability or ease of use. For that reason this thesis proposes a new framework for the development of domain specific languages which is based on the vision of Model-Driven Engineering (MDE). In MDE models are the central artifact of software engineering and enable reuse. A domain and its language (syntax and semantic) are described by models. The framework allows the reuse of existing textual grammars for compiler generator tools, translating them into models. Thereby it becomes possible to apply a large number of MDE transformation and generation tools to them. In turn a language parser and generator can be produced from these grammar models. An additional goal is to automatically generate a suitable language editor and debugger to improve developer experience. Using the proposed framework, the test automation language is reimplemented. This is realized by reusing an existing language and extending it. Also different problems like error reporting or tool support for the DSL are solved.

[1]  Shigeru Chiba,et al.  A metaobject protocol for C++ , 1995, OOPSLA.

[2]  Krzysztof Czarnecki,et al.  Classification of Model Transformation Approaches , 2003 .

[3]  Richard F. Paige,et al.  Model comparison: a foundation for model composition and model transformation testing , 2006, GaMMa '06.

[4]  Michael R. Levy Web programming in guide , 1998 .

[5]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[6]  Bernhard Rumpe,et al.  Introduction to GaMMa 2006 first international workshop on global integrated model management , 2006, GaMMa '06.

[7]  Will Tracz,et al.  Software development using domain-specific software architectures: CDRl A011—a curriculum module in the SEI style , 1995, SOEN.

[8]  Andy Evans,et al.  Mapping between Levels in the Metamodel Architecture , 2001, UML.

[9]  David M. Weiss,et al.  Software Product-Line Engineering: A Family-Based Software Development Process , 1999 .

[10]  Julia L. Lawall,et al.  Language Technology for Internet-Telephony Service Creation , 2006, 2006 IEEE International Conference on Communications.

[11]  M. Broy,et al.  A Holistic Approach to Software Quality at Work , 2022 .

[12]  Mikael Peltier MTrans, a DSL for model transformation , 2002, Proceedings. Sixth International Enterprise Distributed Object Computing.

[13]  William M. Waite,et al.  Maptool - Supporting Modular Syntax Development , 1996, CC.

[14]  Todd L. Veldhuizen,et al.  C++ Templates as Partial Evaluation , 1998, PEPM.

[15]  Shigeru Chiba,et al.  OpenJava: A Class-Based Macro System for Java , 1999, Reflection and Software Engineering.

[16]  Raphael A. Finkel,et al.  Advanced programming language design , 1995 .

[17]  Frédéric Jouault,et al.  On the architectural alignment of ATL and QVT , 2006, SAC '06.

[18]  David S. Wile,et al.  Lessons learned from real DSL experiments , 2003, 36th Annual Hawaii International Conference on System Sciences, 2003. Proceedings of the.

[19]  David A. Watt,et al.  Programming language concepts and paradigms , 1990, Prentice Hall International Series in Computer Science.

[20]  Manfred Broy,et al.  Challenges in automotive software engineering , 2006, ICSE.

[21]  C M Holloway,et al.  Lfm2000 - Fifth NASA Langley Formal Methods Workshop , 2000 .

[22]  Jean-Marie Favre,et al.  Towards a Basic Theory to Model Model Driven Engineering , 2004 .

[23]  Frédéric Jouault Jean Bézivin On the Specification of Textual Syntaxes for Models , 2006 .

[24]  Jim Steel,et al.  Practical Declarative Model Transformation with Tefkat , 2005, MoDELS Satellite Events.

[25]  Jean-Marie Favre,et al.  Foundations of Meta-Pyramids: Languages vs. Metamodels - Episode II: Story of Thotus the Baboon1 , 2004, Language Engineering for Model-Driven Software Development.

[26]  Mary Sheeran,et al.  Lava: hardware design in Haskell , 1998, ICFP '98.

[27]  Rubén Prieto-Díaz,et al.  Domain analysis: an introduction , 1990, SOEN.

[28]  Todd L. Veldhuizen C++ Templates as Partial Evaluation , 1999, PEPM.

[29]  J. C. Wortmann,et al.  Development and Evolution of Software Architectures for Product Families , 1998, Lecture Notes in Computer Science.

[30]  Douglas C. Schmidt,et al.  Patterns for concurrent and networked objects , 2000 .

[31]  Katsuhiko Gondow,et al.  Experience with ANSI C markup language for a cross-referencer , 2003, 36th Annual Hawaii International Conference on System Sciences, 2003. Proceedings of the.

[32]  Stefano Ceri,et al.  Web Modeling Language (WebML): a modeling language for designing Web sites , 2000, Comput. Networks.

[33]  Bernd Hardung,et al.  Reuse of software in distributed embedded automotive systems , 2004, EMSOFT '04.

[34]  Dave Thomas,et al.  Agile Web Development with Rails , 2005 .

[35]  Arie van Deursen,et al.  Little languages: little maintenance , 1998 .

[36]  Maria João Varanda Pereira,et al.  Automatic generation of language-based tools using the LISA system , 2005, IEE Proc. Softw..

[37]  Jean Bézivin,et al.  Model-based DSL frameworks , 2006, OOPSLA '06.

[38]  Peter Tabeling,et al.  Fundamental Modeling Concepts: Effective Communication of It Systems , 2006 .

[39]  Arie van Deursen,et al.  Domain-specific language design requires feature descriptions , 2002 .

[40]  Hui Wu,et al.  Weaving a debugging aspect into domain-specific language grammars , 2005, SAC '05.

[41]  Jean Bézivin,et al.  A Practical Experiment to Give Dynamic Semantics to a DSL for Telephony Services Development , 2006 .

[42]  Jim Steel,et al.  Anti-Yacc: MOF-to-text , 2002, Proceedings. Sixth International Enterprise Distributed Object Computing.

[43]  Sooyong Park,et al.  SOFTWARE PRODUCT LINE ENGINEERING , 2006 .

[44]  Daniel G. Bobrow,et al.  Book review: The Art of the MetaObject Protocol By Gregor Kiczales, Jim des Rivieres, Daniel G. and Bobrow(MIT Press, 1991) , 1991, SGAR.

[45]  Rubén Prieto-Díaz,et al.  DARE: Domain analysis and reuse environment , 1998, Ann. Softw. Eng..

[46]  Jean Bézivin,et al.  Technological Spaces: An Initial Appraisal , 2002 .

[47]  Edsger W. Dijkstra,et al.  Notes on structured programming , 1970 .

[48]  Emin Gün Sirer,et al.  Using production grammars in software testing , 1999, DSL '99.

[49]  Lutz Bichler,et al.  Codegeneratoren für MOF-basierte Modellierungssprachen , 2005 .

[50]  Jack Greenfield,et al.  Software factories: assembling applications with patterns, models, frameworks and tools , 2004, OOPSLA '03.

[51]  Kyo Chul Kang,et al.  Feature-Oriented Domain Analysis (FODA) Feasibility Study , 1990 .

[52]  Audris Kalnins,et al.  Model Transformation Language MOLA , 2003, MDAFA.

[53]  Adele Goldberg Why Smalltalk? , 1995, CACM.

[54]  Marieke Huisman The Calculation of a Polytypic Parser , 1996 .

[55]  S. A. Brown,et al.  A description of the APT language , 1963, CACM.

[56]  T. Reiter,et al.  Towards a semantic infrastructure supporting model-based tool integration , 2006, GaMMa '06.

[57]  Mark Simos,et al.  Weaving the model web: a multi-modeling approach to concepts and features in domain engineering , 1998, Proceedings. Fifth International Conference on Software Reuse (Cat. No.98TB100203).

[58]  Dominic Duggan,et al.  A Mixin-Based, Semantics-Based Approach to Reusing Domain-Specific Programming Languages , 2000, ECOOP.

[59]  Didier Parigot,et al.  Aspect and XML-oriented Semantic Framework Generator: SmartTools , 2002, LDTA@ETAPS.

[60]  Ghica van Emde Boas Fantastic, unique, UML tool for the Java environment (FUUT-je) (poster session) , 2000, OOPSLA '00.

[61]  Yannis Smaragdakis,et al.  JTS: tools for implementing domain-specific languages , 1998, Proceedings. Fifth International Conference on Software Reuse (Cat. No.98TB100203).

[62]  Jean Bézivin,et al.  Extending AMMA for Supporting Dynamic Semantics Specifications of DSLs , 2006 .

[63]  M Mernik,et al.  When and how to develop domain-specific languages , 2005, CSUR.

[64]  Ralf Lämmel,et al.  Towards an engineering discipline for GRAMMARWARE Draft as of August 17 , 2003 , 2003 .

[65]  Marie-Pierre Gervais,et al.  Model Bus: Towards the Interoperability of Modelling Tools , 2003, MDAFA.

[66]  Frank Marschall,et al.  BOTL - The Bidirectional Object Oriented Transformation Language , 2003 .

[67]  Qian Wang,et al.  Rapidly prototyping implementation infrastructure of domain specific languages: a semantics-based approach , 2005, SAC '05.

[68]  Pierre-Alain Muller,et al.  Metamodel-Aware Textual Concrete Syntax Specification , 2006 .

[69]  Jan Willem Klop,et al.  Term Rewriting Systems: From Church-Rosser to Knuth-Bendix and Beyond , 1990, ICALP.

[70]  Aditya Agrawal Graph rewriting and transformation (GReAT): a solution for the model integrated computing (MIC) bottleneck , 2003, 18th IEEE International Conference on Automated Software Engineering, 2003. Proceedings..

[71]  J. Oldevik,et al.  An Empirical Study of the UML Model Transformation Tool ( UMT ) , 2004 .

[72]  Jean Bézivin,et al.  KM3: A DSL for Metamodel Specification , 2006, FMOODS.

[73]  Eelco Visser,et al.  Stratego: A Language for Program Transformation Based on Rewriting Strategies , 2001, RTA.

[74]  Brian W. Kernighan,et al.  The C Programming Language , 1978 .

[75]  Frank Weil,et al.  Model-Driven engineering in a large industrial context — motorola case study , 2005, MoDELS'05.

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

[77]  Frank Keller,et al.  FMC: an approach towards architecture-centric system development , 2003, 10th IEEE International Conference and Workshop on the Engineering of Computer-Based Systems, 2003. Proceedings..

[78]  Stanley M. Sutton,et al.  SAFARI: a meta-tooling framework for generating language-specific IDE's , 2006, OOPSLA '06.

[79]  Jean Bézivin,et al.  On the unification power of models , 2005, Software & Systems Modeling.

[80]  Charles W. Krueger,et al.  New methods in software product line practice , 2006, CACM.

[81]  Judith Bishop,et al.  Multi-platform user interface construction: a challenge for software engineering-in-the-small , 2006, ICSE.

[82]  Samuele Pedroni,et al.  PyPy's approach to virtual machine construction , 2006, OOPSLA '06.

[83]  Alan Borning,et al.  Automated testing of stochastic systems: a statistically grounded approach , 2006, ISSTA '06.

[84]  Dániel Varró,et al.  Benchmarking for graph transformation , 2005, 2005 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC'05).

[85]  Arend Rensink Subjects, Models, Languages, Transformations , 2004, Language Engineering for Model-Driven Software Development.

[86]  Thomas Kühne,et al.  What is a Model? , 2004, Language Engineering for Model-Driven Software Development.

[87]  Andy Schürr,et al.  PROGRES: Language and Environment , 1999 .

[88]  Felix Bloos Echtzeitanalyse der Kommunikation in Kfz-Bordnetzen auf Basis des CAN-Protokolls , 1999 .

[89]  Denis Avrilionis,et al.  Elements for the definition of a model of software engineering , 2006, GaMMa '06.

[90]  Samuel N. Kamin Programming languages - an interpreter-based approach , 1990 .

[91]  Jonathan Bachrach,et al.  The Java syntactic extender (JSE) , 2001, OOPSLA '01.

[92]  Holger M. Kienle Using smgn for rapid protoptyping of small domain-specific languages , 2001, SIGP.

[93]  Ivan Porres,et al.  Coral : A Metamodel Kernel for Transformation Engines , 2004 .

[94]  Steve Freeman,et al.  Evolving an embedded domain-specific language in Java , 2006, OOPSLA '06.

[95]  Jean Bézivin,et al.  Bridging the MS/DSL Tools and the Eclipse Modeling Framework , 2005, OOPSLA 2005.

[96]  Tom Mens,et al.  A Taxonomy of Model Transformation , 2006, GRaMoT@GPCE.

[97]  Anna Gerber,et al.  MOF to EMF: there and back again , 2003, eclipse '03.

[98]  Ivan Porres,et al.  Difference and Union of Models , 2003, UML.

[99]  Giancarlo Guizzardi,et al.  An ontological approach to domain engineering , 2002, SEKE '02.

[100]  Manuel Wimmer,et al.  Bridging existing Web modeling languages to model-driven engineering: a metamodel for WebML , 2006, ICWE '06.

[101]  J. M. Neighbors,et al.  Draco: a method for engineering reusable software systems , 1989 .

[102]  Jon Louis Bentley,et al.  Programming pearls , 1987, CACM.

[103]  Charles Consel,et al.  Domain-Specific Languages: From Design to Implementation Application to Video Device Drivers Generation , 1999, IEEE Trans. Software Eng..

[104]  Elizabeth Bjarnason APPLAB — A Laboratory for Application Languages , 1996 .

[105]  Gabor Karsai,et al.  The Generic Modeling Environment , 2001 .

[106]  Jan Decaluwe MyHDL: a python-based hardware description language , 2004 .

[107]  Arie van Deursen,et al.  The ASF+SDF Meta-environment: A Component-Based Language Development Environment , 2001 .

[108]  Christopher W. Pidgeon,et al.  DMS®: Program Transformations for Practical Scalable Software Evolution , 2002, IWPSE '02.

[109]  Eckard Lehmann Time partition testing: systematischer Test des kontinuierlichen Verhaltens von eingebetteten Systemen , 2004 .

[110]  Matthias Felleisen,et al.  Fostering Little Languages , 2004 .

[111]  Runhe Huang,et al.  Automation of grid service code generation with AndroMDA for GT3 , 2005, 19th International Conference on Advanced Information Networking and Applications (AINA'05) Volume 1 (AINA papers).

[112]  Jean-Marie Favre,et al.  Foundations of Model (Driven) (Reverse) Engineering : Models - Episode I: Stories of The Fidus Papyrus and of The Solarus , 2004, Language Engineering for Model-Driven Software Development.

[113]  Eric Johnson,et al.  Adding domain-specific and general purpose language features to Java with the Java language extender , 2006, OOPSLA '06.

[114]  Claus Brabrand,et al.  The metafront System: Extensible Parsing and Transformation , 2003, LDTA@ETAPS.

[115]  Frank Budinsky,et al.  Eclipse Modeling Framework , 2003 .

[116]  Jean Bézivin,et al.  Bridging the Generic Modeling Environment ( GME ) and the Eclipse Modeling Framework ( EMF ) , 2005 .

[117]  Vincent van Oostrom,et al.  Processes, Terms and Cycles: Steps on the Road to Infinity, Essays Dedicated to Jan Willem Klop, on the Occasion of His 60th Birthday , 2005, Processes, Terms and Cycles.

[118]  Jean Bézivin,et al.  Language Engineering for Model-driven Software Development , 2005 .

[119]  Wilson C. Hsieh,et al.  Maya: multiple-dispatch syntax extension in Java , 2002, PLDI '02.

[120]  Ed Seidewitz,et al.  What Models Mean , 2003, IEEE Softw..

[121]  Levi Lucio,et al.  Principles for System Prototype and Verification Using Metamodel Based Transformations , 2006, Seventeenth IEEE International Workshop on Rapid System Prototyping (RSP'06).

[122]  Eelco Visser,et al.  Concrete syntax for objects: domain-specific language embedding and assimilation without restrictions , 2004, OOPSLA '04.

[123]  Martin Odersky,et al.  An Overview of the Scala Programming Language , 2004 .

[124]  Octavian Patrascoiu Model Transformations in YATL. Studies and Experiments , 2004 .

[125]  Robert Wagner Developing Model Transformations with Fujaba , 2006 .

[126]  Jan Hendrik Hausmann,et al.  Dynamic META modeling: a semantics description technique for visual modeling languages , 2005 .

[127]  Paul Klint,et al.  Term Rewriting Meets Aspect-Oriented Programming , 2005, Processes, Terms and Cycles.

[128]  Kent Beck,et al.  Extreme Programming Explained: Embrace Change (2nd Edition) , 2004 .

[129]  James R. Larus,et al.  Facile: a language and compiler for high-performance processor simulators , 2001, PLDI '01.

[130]  Eric J. Evans,et al.  Domain-driven design , 2003 .

[131]  Anne Rogers,et al.  Hancock: a language for extracting signatures from data streams , 2000, KDD '00.

[132]  Giancarlo Succi,et al.  Domain analysis and framework-based software development , 1997, SIAP.

[133]  Bonnie A. Nardi,et al.  A Small Matter of Programming: Perspectives on End User Computing , 1993 .

[134]  Terence Parr A Functional Language For Generating Structured Text , 2006 .

[135]  Jean Bézivin,et al.  Towards a precise definition of the OMG/MDA framework , 2001, Proceedings 16th Annual International Conference on Automated Software Engineering (ASE 2001).

[136]  John Aycock,et al.  Compiling Little Languages in Python , 1998 .

[137]  Daniel Le Métayer,et al.  Introduction to Gamma , 1991, Research Directions in High-Level Parallel Programming Languages.

[138]  Russell W. Quong,et al.  ANTLR: A predicated‐LL(k) parser generator , 1995, Softw. Pract. Exp..

[139]  Matthias Anlauff,et al.  XASM - An Extensible, Component-Based ASM Language , 2000, Abstract State Machines.

[140]  Mark van den Brand,et al.  TIDE: A Generic Debugging Framework - Tool Demonstration , 2005, Electron. Notes Theor. Comput. Sci..

[141]  Daniel Amyot,et al.  Evaluation of Development Tools for Domain-Specific Modeling Languages , 2006, SAM.

[142]  James Milne Neighbors,et al.  Software construction using components , 1980 .

[143]  Paul N. Weinberg,et al.  SQL, the complete reference , 1999 .

[144]  Jean Bézivin,et al.  TCS:: a DSL for the specification of textual concrete syntaxes in model engineering , 2006, GPCE '06.

[145]  Didier Parigot Towards domain-driven development: the smartTools software factory , 2004, OOPSLA '04.

[146]  Ellis Horowitz Programming languages: a grand tour , 1983 .

[147]  Douglas C. Schmidt,et al.  Pattern-Oriented Software Architecture, Patterns for Concurrent and Networked Objects , 2013 .

[148]  Anindya Basu,et al.  A Language-Based Approach to Protocol Construction , 1998 .

[149]  Stephen J. Mellor,et al.  Executable UML - A Foundation for Model-Driven Architecture , 2002, Addison Wesley object technology series.

[150]  Matthias Felleisen,et al.  Hygienic macro expansion , 1986, LFP '86.

[151]  Martin Gogolla,et al.  Model transformations? transformation models! , 2006, MoDELS'06.

[152]  Diomidis Spinellis,et al.  Notable design patterns for domain-specific languages , 2001, J. Syst. Softw..

[153]  Paul Hudak,et al.  Modular domain specific languages and tools , 1998, Proceedings. Fifth International Conference on Software Reuse (Cat. No.98TB100203).

[154]  Calton Pu,et al.  Spidle: A DSL Approach to Specifying Streaming Applications , 2003, GPCE.

[155]  Oege de Moor,et al.  Compiling embedded languages , 2003, J. Funct. Program..

[156]  James R. Cordy,et al.  The TXL source transformation language , 2006, Sci. Comput. Program..

[157]  Jean-Marc Jézéquel,et al.  Weaving executability into object-oriented meta-languages , 2005, MoDELS'05.

[158]  Ivan Kurtev,et al.  MISTRAL: A Language for Model Transformations in the MOF Meta-modeling Architecture , 2004, MDAFA.