Journal Article10.1007/S10270-019-00740-1
A verified catalogue of OCL optimisations
1
TL;DR: A set of refactorings intended to optimise OCL expressions, notably covering cases likely to arise in generated OCL code, are contributed and a method to verify the correctness of the implemented catalogue based on translation validation and model finding is proposed.
read more
Abstract: OCL is widely used by model-driven engineering tools with different purposes like writing integrity constraints for meta-models, as a navigation language in model transformation languages or to define transformation specifications. Another scenario is the automatic generation of OCL code by a repair system. These generated expressions tend to be complex and unreadable due to the nature of the generative process. However, to be useful this code should be simple and resemble manually written code as much as possible when a developer must manually maintain it. There exists refactorings approaches for manually written OCL code, but there is no tool targeted to the optimisation of OCL expressions which have been automatically synthesised. Moreover, there is no available catalogue of OCL refactorings which can be integrated seamlessly into a tool. In this work, we contribute a set of refactorings intended to optimise OCL expressions, notably covering cases likely to arise in generated OCL code. We also contribute the implementation of these refactorings, built as a generic transformation catalogue using bentō, a transformation reuse tool for ATL. This makes it possible to specialise the catalogue for any OCL variant based on Ecore. Moreover, we propose a method to verify the correctness of the implemented catalogue based on translation validation and model finding. We describe the design and implementation of the catalogue and evaluate it by optimising a large amount of OCL expressions and proving the correctness of each optimisation execution. We also derive working implementations of the catalogue for ATL, EMF/OCL and SimpleOCL made available in a tool called BeautyOCL.
read more
Chat with Paper
AI Agents for this Paper
Find similar papers on Google Scholar, PubMed and Arxiv
Write a critical review of this paper
Analyze citations of this paper to find unaddressed research gaps
Citations
Distributed model validation with Epsilon
TL;DR: This paper demonstrates a low-overhead data-parallel approach for distributed model validation in the context of an OCL-like language that minimises communication costs by exploiting the deterministic structure of programs and can take advantage of multiple cores on each (heterogeneous) machine with highly configurable computational granularity.
References
CakeML: a verified implementation of ML
Ramana Kumar,Magnus O. Myreen,Michael Norrish,Scott Owens +3 more
- 08 Jan 2014
TL;DR: This work has developed and mechanically verified an ML system called CakeML, which supports a substantial subset of Standard ML, and its formally verified compiler can bootstrap itself: it applies the verified compiler to itself to produce a verified machine-code implementation of the compiler.
380
Stratego/XT 0.17. A language and toolset for program transformation
TL;DR: An overview ofStratego/XT 0.17 is given, including a description of the Stratego language and XT transformation tools; a discussion of the implementation techniques and software engineering process; and a descriptionof applications built with Strate go/XT.
346
A critical review of "automatic patch generation learned from human-written patches": essay on the problem statement and the evaluation of automatic software repair
Martin Monperrus
- 31 May 2014
TL;DR: A critical review of Kim et al.'s PAR, a novel template-based approach for fixing Java bugs, and the main evaluation criteria of automatic software repair: understandability, correctness and completeness shows that depending on how one sets up the repair scenario, the evaluation goals may be contradictory.
206
Towards Model Transformation Generation By-Example
Manuel Wimmer,Michael Strommer,Horst Kargl,Gerhard Kramler +3 more
- 03 Jan 2007
TL;DR: A by-example approach for defining inter-model mappings representing semantic correspondences between concrete domain models, which is more user-friendly, then directly specifying model transformation rules or mappings based on the abstract syntax.
139
The Object Constraint Language (OCL)
Sinan Si Alhir
- 01 Jan 2002
TL;DR: This chapter provides an introduction to using the Object Constraint Language (OCL) in composing UML models with an introductory understanding of how to use the OCL.
136
Related Papers (5)
Fang Yu,Tevfik Bultan,Erik O. Peterson +2 more
- 07 Sep 2007
Fabian Büttner,Marina Egea,Jordi Cabot +2 more
- 30 Sep 2012