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.
*You can purchase the eBook (PDF) 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.