Reusing OCL in the Definition of Imperative Languages
207 pages, year of publication:
price: 38.50 EUR
Semantics of Programming Languages, OCL, Executable Models, SOIL
The Object Constraint Language (OCL) has proven to be a valuable ingredient for the specification of UML models. It allows to formulate logical propositions for models that typically cannot be expressed in the visual modeling paradigms of UML. A similar textual ingredient is required for the imperative specification of behavior in certain applications of UML, most prominently Executable UML models and model transformation.
There is no such imperative language in the UML standard, but there are several candidates for such a language that are based on OCL for expressions. One of them is ImperativeOCL, which is part of the OMG Query, Views, Transformations (QVT) standard. However, the embedding of OCL into several of these languages is what we call a non-modular embedding. Such a non-modular embedding results in problems w. r. t. to language semantics and/or sets up obstacles for the reuse of existing OCL tools and instruments. In our work we therefore define requirements for a modular embedding of OCL into an imperative language. We introduce our language SOIL (Simple OCL-based Imperative Language) which embeds OCL in a modular way.
We provide an informal description of SOIL as well as a formal definition of the language syntax and semantics, and prove its consistency and type safety. We describe applications of our approach in two fields: first, the extension of the UML-based Specification Environment (USE) by an imperative language and, second, the development of the model transformation tool XGenerator2 that has been successfully applied in several eGovernment projects. Our work makes three major contributions. First, we provide a critical review of the embedding of OCL into existing programming languages. Second, we provide a simple but already useful OCL-based imperative language with a sound and formal semantics that can be implemented out of the box using existing OCL engines. Third, our work contributes a general guideline for a safe embedding of OCL into other languages.
This title is available as eBook (PDF) too. You can purchase it alone or combined with the printed book (eBundle). In both cases we use the payment service of PayPal for charging you - nevertheless it is not necessary to have a PayPal-account.
With purchasing the eBook or eBundle you accept our licence for eBooks.