Relational reference attribute grammars: Improving continuous model validation

Just like current software systems, conceptual models are characterised by increasing complexity and rate of change. Yet, these models only become useful if they can be continuously evaluated, validated and serialized. To achieve sufficiently low response times for large models, incremental analysis is required. Reference Attribute Grammars (RAGs) offer mechanisms to perform incremental analysis efficiently using dynamic dependency tracking. However, not all features used in conceptual modelling are directly available in RAGs. In particular, support for noncontainment model relations is only available through encodings. We present an approach called Relational RAGs to directly model uni- and bidirectional noncontainment relations in RAGs and provide efficient means for navigating and editing them. Furthermore, we discuss the efficient and inter-operable serialization and deserialization of such model instances. This approach is evaluated using a scalable benchmark for incremental model editing and the JastAdd RAG system. Our work demonstrates the suitability of RAGs for validating complex and continuously changing models of current software systems.

[1]  Görel Hedin,et al.  JastAdd--an aspect-oriented compiler construction system , 2003, Sci. Comput. Program..

[2]  Michael W. Godfrey,et al.  What Does Control Flow Really Look Like? Eyeballing the Cyclomatic Complexity Metric , 2012, 2012 IEEE 12th International Working Conference on Source Code Analysis and Manipulation.

[3]  Renzo Orsini,et al.  A Relationship Mechanism for a Strongly Typed Object-Oriented Database Programming Language , 1991, VLDB.

[4]  Eelco Visser,et al.  IceDust 2: Derived Bidirectional Relations and Calculation Strategy Composition , 2017, ECOOP.

[5]  Kenneth A. Ross,et al.  Efficient Incremental Evaluation of Queries with Aggregation , 1994, ILPS.

[6]  Görel Hedin,et al.  Circular reference attributed grammars - their evaluation and applications , 2007, Sci. Comput. Program..

[7]  Roger King,et al.  Cactis: a self-adaptive, concurrent implementation of an object-oriented database management system , 1989, ACM Trans. Database Syst..

[8]  Görel Hedin,et al.  Incremental Evaluation of Reference Attribute Grammars using Dynamic Dependency Tracking , 2012 .

[9]  Thomas R. Gross,et al.  Verifying Multi-object Invariants with Relationships , 2011, ECOOP.

[10]  William R. Cook,et al.  The design and implementation of Object Grammars , 2014, Sci. Comput. Program..

[11]  James E. Rumbaugh Relations as semantic constructs in an object-oriented language , 1987, OOPSLA 1987.

[12]  Mark Nottingham,et al.  JavaScript Object Notation (JSON) Pointer , 2013, RFC.

[13]  Conrad Bock,et al.  A More Complete Model of Relations and Their Implementation: Roles , 1998, J. Object Oriented Program..

[14]  Uwe Aßmann,et al.  A combined formal model for relational context-dependent roles , 2015, SLE.

[15]  Frank Budinsky,et al.  Eclipse modeling framework : a developer's guide , 2004 .

[16]  Dániel Varró,et al.  The Train Benchmark: cross-technology performance evaluation of continuous model queries , 2017, Software & Systems Modeling.

[17]  S. Doaitse Swierstra,et al.  Higher order attribute grammars , 1989, PLDI '89.

[18]  Görel Hedin,et al.  Reference Attributed Grammars , 2000, Informatica.

[19]  Jeff Rothenberg,et al.  The nature of modeling , 1989 .

[20]  Kevin Waugh,et al.  A Classification of Object-Relational Impedance Mismatch , 2009, 2009 First International Confernce on Advances in Databases, Knowledge, and Data Applications.

[21]  Görel Hedin,et al.  JavaRAG: a Java library for reference attribute grammars , 2015, MODULARITY.

[22]  Uwe Aßmann,et al.  A Metamodel Family for Role-Based Modeling and Programming Languages , 2014, SLE.

[23]  Görel Hedin,et al.  Continuous model validation using reference attribute grammars , 2018, SLE.

[24]  Frédéric Jouault,et al.  Efficient OCL-based Incremental Transformations , 2016, OCL@MoDELS.

[25]  Georg Hinkel NMF: A Multi-platform Modeling Framework , 2018, ICMT.

[26]  O.L. Madsen,et al.  An object-oriented metaprogramming system , 1988, [1988] Proceedings of the Twenty-First Annual Hawaii International Conference on System Sciences. Volume II: Software track.

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

[28]  Eelco Visser,et al.  Unifying and Generalizing Relations in Role-Based Data Modeling and Navigation , 2014, SLE.

[29]  Torbjörn Ekman,et al.  Demand-driven evaluation of collection attributes , 2009, Automated Software Engineering.

[30]  Hans-Jörg Schek,et al.  A Relational Object Model , 1990, ICDT.

[31]  Uwe Aßmann,et al.  Reference Attribute Grammars for Metamodel Semantics , 2010, SLE.

[32]  Torbjörn Ekman,et al.  Rewritable Reference Attributed Grammars , 2004 .

[33]  Donald E. Knuth,et al.  Semantics of context-free languages , 1968, Mathematical systems theory.

[34]  Ákos Horváth,et al.  Viatra 3: A Reactive Model Transformation Platform , 2015, ICMT.

[35]  Torsten Grust,et al.  Incremental Updates for Materialized OQL Views , 1997, DOOD.

[36]  Daniel Jackson,et al.  Alloy: a lightweight object modelling notation , 2002, TSEM.

[37]  Friedrich Steimann,et al.  Computing repair alternatives for malformed programs using constraint attribute grammars , 2016, OOPSLA.

[38]  Christoff Bürger,et al.  Reference attribute grammar controlled graph rewriting: motivation and overview , 2015, SLE.

[39]  Wolfgang Lehner,et al.  Relationships for Dynamic Data Types in RSQL , 2015, BTW.

[40]  Friedrich Steimann,et al.  On the representation of roles in object-oriented and conceptual modelling , 2000, Data Knowl. Eng..

[41]  Ákos Horváth,et al.  EMF-IncQuery: An integrated development environment for live model queries , 2015, Sci. Comput. Program..

[42]  Michael Hicks,et al.  Adapton: composable, demand-driven incremental computation , 2014, PLDI.

[43]  Gavin M. Bierman,et al.  First-Class Relationships in an Object-Oriented Language , 2005, ECOOP.

[44]  Dániel Varró,et al.  Survey and classification of model transformation tools , 2018, Software & Systems Modeling.