title: An adaptable OCL engine for validating models in different tool environments
Creators: name: Zehetner, Christoph
Publisher: name: TU Wien
Year: 2013

description: Die Computerwissenschaft beschäftigt sich schon seit vielen Jahren mit Modellierungstechniken zur Beschreibung von Strukturen, Architekturen und Prozessen in Softwareprojekten. Anfänglich wurden Modelle für reine Kommunikations- und Entwurfszwecke eingesetzt. Im Laufe der letzten Jahre gewann die modellgetriebene Softwareentwicklung, auch bekannt als Model-Driven Development (MDD), immer mehr an Bedeutung, womit die Modelle zum Kernstück des Entwicklungsprozesses wurden. Basierend auf den Modellen können Teile des Systems (Source Code) generiert und weiter verarbeitet werden. Dabei spielt vor allem die Gültigkeit der Modelle eine tragende Rolle. Verschiedenste Modellierungstechniken wurden entwickelt, um eine fundierte Basis für MDE zu schaffen. Die Object Management Group (OMG) führte daraufhin, einen de facto Standard für die Modellierung von Systemen, die Unified Modelling Language (UML) ein. Das Hauptproblem ist, dass ein UML Modell nicht notwendigerweise ausreichend ausdruckstark ist, um alle komplexen Aspekte eines Systems abzubilden. Einige Aspekte werden dadurch in natürlicher Sprache formuliert. Die Praxis hat gezeigt, dass solche Situationen zu Unklarheiten und Fehlern führen. Eine Möglichkeit stellt die Object Constraint Language (OCL) bereit, indem Bedingungen für Modelle definiert werden können, welche ebenfalls in den Entwicklungsprozess integriert werden können. Neben der Entwicklung von Standards für die Modellierung von Systemen, entwickelten mehrere Anbieter, Computer-Aided Software Engineering (CASE) Tools, um eine breite Palette von Instrumenten des MDD Ansatzes zu unterstützen. Der Support hängt von der Implementierung der Standards des Anbieters ab und ist somit von CASE-Tool zu CASE-Tool unterschiedlich. In Allgemeinen, ist nur eine mangelhafte Validierung der erstellten Modelle in CASE-Tools möglich, die eine essentielle Rolle in der frühen Entwurfsphase spielen. Darüber hinaus gibt es nur wenig Unterstützung für das Definieren von OCL Ausdrücken für Modelle. Außerdem können Modelle von den Benutzern definiert werden, die nicht den wohlgeformten Regeln in der UML-Spezifikation entsprechen. Eine automatische Validierung der OCL Ausdrücke der UML-Spezifikation vor der Codegenerierung ermöglicht das Entdecken von Fehlern in der frühen Entwurfsphase. Daher stellt es einen großen Mehrwert dar, CASE-Tools, um die Definition und Validierung von OCL Ausdrücken zu erweitern. Die Arbeit beschäftigt sich mit einem adaptiven Ansatz zur Transformation von OCL Ausdrücken in verschiedene Umgebungen oder CASE-Tools. Dazu werden Mappingmuster definiert, um ein Schema Matching zwischen wählbaren Umgebungen (Quell-und Ziel-Schema) zu bewerkstelligen. Die OCL Ausdrücke sind einem wählbaren Quell-Schema zugeordnet, welches auf das Ziel-Schema gemappt ist. Das Ziel dieser Arbeit ist es, den OCL-Ausdruck zu analysieren und einen semantisch äquivalenten Ausdruck für das Ziel-Schema je zu generieren basierend auf vordefinierten Transformationsmustern.
description: The software engineering process has significantly changed over the last decade. The paradigm Model-Driven Development (MDD) gained more and more popularity. In the past, models were typically used for brainstorming and communication purposes. This viewpoint has shifted dramatically. The software engineering process becomes more model-centric and less code-centric. Thus, models are the key artefacts in the development process and all steps rely on these models and their correctness. Sophisticated modelling techniques have been invented to ensure a consistent and comprehensive technology base. The standard for modelling structural and behavioural aspects of systems, the Unified Modelling Language (UML) was introduced by the Object Management Group (OMG). The problem is that an UML model is not necessary expressive enough to provide all complex aspects of a system. Some aspects of the domain are more expressed in natural language. Practise has shown that such situations will lead to ambiguities and to errors. Therefore the Object Constraint Language (OCL) can be used to specify conditions on models that must hold for the system. Apart from the development of standards for modelling systems, several vendors developed Computer-Aided Software Engineering (CASE) tools to provide a wide range of instruments to support the MDD approach. The support of the sophisticated techniques depends on the vendor-s realization of the standards, which is different from tool to tool. In general there is a lack of validating models in CASE tools, which is essential in the early design phase. Additionally, there is only little support for writing OCL expressions for models. Furthermore, models defined by the users of the tool are not validated against the well-formedness rules (WFR) - described with OCL - of the UML specification. An automatic validation of the OCL expressions of the UML specification before code generation allows the detection of errors in the early design phase and reduces problems for the further progress of projects. Thus, it is a huge value that CASE tools support the definition and validation of OCL expressions. The contribution of this master-s thesis is to provide an adaptive solution for managing OCL transformation in different environments or CASE tools, called ADOCLE. Therefore mapping patterns are defined to manage the schema matching between selectable environments (source and target schema). The OCL expressions are applied to a selectable source schema, which is mapped to a target schema. The goal of this work is to analyse OCL expressions and generate semantically equivalent expressions in the target schema depending on predefined transformation patterns.