ABSTRACT
Giving accurate and relevant static analysis feedback to modeling tool users significantly helps them design useful models. This feedback is even more valuable when it comes with completion proposals, called quick fixes, which users can apply to automatically resolve specific issues. However, implementing such static analysis and quick fix tooling is tedious and error prone. For instance, providing accurate messages typically requires decomposing complex model queries into simpler ones, while suitably handling their dependencies. Moreover, each quick fix should actually resolve the issue it is supposed to fix, which is not always easy to ensure. This paper presents an approach that leverages reverse propagation of OCL-like boolean expressions to provide correct-by-construction quick fixes. It only requires adding specific annotations to expressions in order to guide quick fix computation. A proof-of-concept implementation of this approach on the AnimUML partial modeling tool is described. It is able to automatically construct messages, to report different messages depending on which part of a predicate fails, and to provide quick fixes.
- Olivier Beaudoux, Arnaud Blouin, Olivier Barais, and Jean-Marc Jézéquel. 2010. Active Operations on Collections. In Model Driven Engineering Languages and Systems, Dorina C. Petriu, Nicolas Rouquette, and Øystein Haugen (Eds.). Springer Berlin Heidelberg, Berlin, Heidelberg, 91--105. Google ScholarCross Ref
- Jean Bézivin and Frédéric Jouault. 2006. Using ATL for checking models. Electronic Notes in Theoretical Computer Science 152 (2006), 69--81.Google ScholarDigital Library
- Esther Guerra and Juan de Lara. 2004. Event-Driven Grammars: Towards the Integration of Meta-modelling and Graph Transformation. In Graph Transformations, Hartmut Ehrig, Gregor Engels, Francesco Parisi-Presicce, and Grzegorz Rozenberg (Eds.). Springer Berlin Heidelberg, Berlin, Heidelberg, 54--69.Google Scholar
- Ábel Hegedüs, Ákos Horváth, István Ráth, Moisés Castelo Branco, and Dániel Varrò. 2011. Quick fix generation for DSMLs. In 2011 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC). 17--24. Google ScholarCross Ref
- Nicolas Hili, Ernesto Posse, and Juergen Dingel. 2018. Calur: an action language for UML-RT. In 9th European Congress on Embedded Real Time Software and Systems (ERTS 2018).Google Scholar
- Frédéric Jouault and Olivier Beaudoux. 2015. On the Use of Active Operations for Incremental Bidirectional Evaluation of OCL. In Proceedings of the 15th International Workshop on OCL and Textual Modeling (CEUR Workshop Proceedings, Vol. 1512). CEUR, Ottawa, Canada, 35--45.Google Scholar
- Frédéric Jouault, Valentin Besnard, Théo Le Calvar, Ciprian Teodorov, Matthias Brun, and Jerome Delatour. 2020. Designing, Animating, and Verifying Partial UML Models. In Proceedings of the 23rd ACM/IEEE International Conference on Model Driven Engineering Languages and Systems (Virtual Event, Canada) (MODELS '20). Association for Computing Machinery, New York, NY, USA, 211--217. Google ScholarDigital Library
- Andreas Kästner, Martin Gogolla, and Bran Selic. 2018. From (Imperfect) Object Diagrams to (Imperfect) Class Diagrams: New Ideas and Vision Paper. In Proceedings of the 21th ACM/IEEE International Conference on Model Driven Engineering Languages and Systems (Copenhagen, Denmark) (MODELS '18). Association for Computing Machinery, New York, NY, USA, 13--22. Google ScholarDigital Library
- Andreas Kästner, Martin Gogolla, and Bran Selic. 2018. Towards flexible object and class modeling tools: an experience report. In MoDELS (Workshops) (CEUR Workshop Proceedings, Vol. 2245). CEUR-WS.org, 233--242.Google Scholar
- Théo Le Calvar, Fabien Chhel, Frédéric Jouault, and Frédéric Saubion. 2021. Coupling solvers with model transformations to generate explorable model sets. Software and Systems Modeling 20, 5 (01 Oct 2021), 1633--1652. Google ScholarDigital Library
- Claudia Loitsch, Karin Müller, Stephan Seifermann, Jörg Henß, Sebastian Krach, Gerhard Jaworek, and Rainer Stiefelhagen. 2018. UML4ALL Syntax - A Textual Notation for UML Diagrams. In Computers Helping People with Special Needs, Klaus Miesenberger and Georgios Kouroupetroglou (Eds.). Springer International Publishing, Cham, 598--605.Google Scholar
- Steffen Mazanek, Sonja Maier, and Mark Minas. 2008. Auto-completion for diagram editors based on graph grammars. In 2008 IEEE Symposium on Visual Languages and Human-Centric Computing. 242--245. Google ScholarDigital Library
- Parsa Pourali. 2018. Tooling Advances Inspired to Address Observed Challenges of Developing UML-like Models When Using Modelling Tools. In Proceedings of the 21st ACM/IEEE International Conference on Model Driven Engineering Languages and Systems: Companion Proceedings (Copenhagen, Denmark) (MODELS '18). Association for Computing Machinery, New York, NY, USA, 168--173. Google ScholarDigital Library
- Rick Salay, Michalis Famelis, and Marsha Chechik. 2012. Language Independent Refinement Using Partial Modeling. In Fundamental Approaches to Software Engineering, Juan de Lara and Andrea Zisman (Eds.). Springer Berlin Heidelberg, Berlin, Heidelberg, 224--239.Google Scholar
Index Terms
- From OCL-based model static analysis to quick fixes
Recommendations
Quick Fixes for Novice Programmers: Effective but Under-Utilised
UKICER '23: Proceedings of the 2023 Conference on United Kingdom & Ireland Computing Education ResearchProfessional software development environments typically provide “quick fixes” for common program errors: a common solution to an error that can be enacted with a single click. For example, an “unknown type” error can be fixed by adding an import for ...
Comments