On the Expressive Power of OCL
FM '99 Proceedings of the Wold Congress on Formal Methods in the Development of Computing Systems-Volume I - Volume I
The Object Constraint Language: Getting Your Models Ready for MDA
The Object Constraint Language: Getting Your Models Ready for MDA
Object and reference immutability using Java generics
Proceedings of the the 6th joint meeting of the European software engineering conference and the ACM SIGSOFT symposium on The foundations of software engineering
OCLLib, OCLUnit, OCLDoc: Pragmatic Extensions for the Object Constraint Language
MODELS '09 Proceedings of the 12th International Conference on Model Driven Engineering Languages and Systems
Combining OCL and Programming Languages for UML Model Processing
Electronic Notes in Theoretical Computer Science (ENTCS)
Domain Specific Languages
A library of OCL specification patterns for behavioral specification of software components
CAiSE'06 Proceedings of the 18th international conference on Advanced Information Systems Engineering
The epsilon object language (EOL)
ECMDA-FA'06 Proceedings of the Second European conference on Model Driven Architecture: foundations and Applications
On the evolution of OCL for capturing structural constraints in modelling languages
Rigorous Methods for Software Construction and Analysis
Modular embedding of the object constraint language into a programming language
SBMF'11 Proceedings of the 14th Brazilian conference on Formal Methods: foundations and Applications
Object constraint language (OCL): a definitive guide
SFM'12 Proceedings of the 12th international conference on Formal Methods for the Design of Computer, Communication, and Software Systems: formal methods for model-driven engineering
Hi-index | 0.00 |
The Object Constraint Language (OCL) is widely used to enrich modeling languages with structural constraints, side effect free query operations implementation and contracts. OCL was designed to be small and compact language with appealing short "to-the-point" expressions. When trying to apply it to larger EMF models some shortcomings appear in the language expressions, the invariant constructs as well as in the supporting tools. In this paper we argue that some of these shortcomings are mainly related to the scalability of the OCL language and its trade-offs between domain-specificity and general-purpose. We present an alternative approach based on an internal DSL in Scala. By using this modern multi-paradigm programing language we can realize an internal DSL with similar features found in OCL while taking full advantage of the host language including state-of-the-art tool support. In particular, we discuss the mapping between the OCL and Scala concepts together with some additional constructs for better scalability in both expressiveness and reusability of the expressions.