Abstract The Object Constraint Language (OCL) has become a key element of Model Driven Engineering (MDE) software development approaches, enabling the precise specification of software requirements, and the platform-independent definition of software designs in UML models. UML and OCL can also be used, in principle, to support the semantic representation of software systems, for program analysis or program re-engineering. In this paper we identify the extensions and modifications of standard OCL which are needed in order to accurately represent software application semantics. We define an extended OCL version, AgileUML OCL, for program semantic representation, and show how this extended language can be given a mathematical semantics consistent with the OCL standard semantics.
Lano et al. (Mon,) studied this question.