11 research outputs found

    RoclET – A Tool for Wrestling with OCL Specifications

    Get PDF
    In this paper, we describe the architecture and the functionality of our own OCL tool called RoclET. Besides standard features of OCL tools such as editing of class and object diagrams and parsing of OCL assertions (invariants, pre-/post-conditions), our tool supports also the evaluation of OCL constraints in a given system snapshot (object diagram), refactoring of UML/OCL models, and impact analysis. RoclET is deployed in form of an Eclipse plugin

    Improving the OCL Semantics Definition by Applying Dynamic Meta Modeling and Design Patterns

    Get PDF
    OCL is a standard specification language, which will probably be supported by most software modeling tools in the near future. Hence, it is important for OCL to have a solid formal foundation, for its syntax and its semantic definition. Currently, OCL is being formalized by metamodels expressed in MOF, complemented by well formedness rules written in the own OCL. This recursive definition not only brings about formal problems, but also puts obstacles in language understanding. On the other hand, the OCL semantics metamodel presents quality weaknesses due to the fact that certain object-oriented design rules (patterns) were not obeyed in their construction. The aim of the proposal presented in this article is to improve the definition for the OCL semantics metamodel by applying GoF patterns and the dynamic metamodeling technique. Such proposal avoids circularity in OCL definition and increases its extensibility, legibility and accuracy

    Correctly defined concrete syntax

    Get PDF
    Due to their complexity, the syntax of modern modeling languages is preferably defined in two steps. The abstract syntax identifies all modeling concepts whereas the concrete syntax should clarify how these concepts are rendered by graphical and/or textual elements. While the abstract syntax is often defined in form of a metamodel, there does not exist such standard format yet for concrete syntax definitions. The diversity of definition formats—ranging from EBNF grammars to informal text—is becoming a major obstacle for advances in modeling language engineering, including the automatic generation of editors. In this paper, we propose a uniform format for concrete syntax definitions. Our approach captures both textual and graphical model representations and even allows to assign more than one rendering to the same modeling concept. Consequently, following our approach, a model can have multiple, fully equivalent representations, but—in order to avoid ambiguities when reading a model representation—two different models should always have distinguishable representations. We call a syntax definition correct, if all well-formed models are represented in a non-ambiguous way. As the main contribution of this paper, we present a rigorous analysis technique to check the correctness of concrete syntax definition

    Correctly defined concrete syntax

    Get PDF
    Due to their complexity, the syntax of modern modeling languages is preferably defined in two steps. The abstract syntax identifies all modeling concepts whereas the concrete syntax should clarify how these concepts are rendered by graphical and/or textual elements. While the abstract syntax is often defined in form of a metamodel, there does not exist such standard format yet for concrete syntax definitions. The diversity of definition formats-ranging from EBNF grammars to informal text-is becoming a major obstacle for advances in modeling language engineering, including the automatic generation of editors. In this paper, we propose a uniform format for concrete syntax definitions. Our approach captures both textual and graphical model representations and even allows to assign more than one rendering to the same modeling concept. Consequently, following our approach, a model can have multiple, fully equivalent representations, but-in order to avoid ambiguities when reading a model representation-two different models should always have distinguishable representations. We call a syntax definition correct, if all well-formed models are represented in a non-ambiguous way. As the main contribution of this paper, we present a rigorous analysis technique to check the correctness of concrete syntax definitions

    Herramienta para automatizar la transformación UML/OCL a Object-Z

    Get PDF
    En el proceso de construcción de software, el análisis y diseño son una tarea muy importante. UML (Unified Modeling Language, [OMG]) ha sido desarrollado para modelar sistemas Orientado a Objetos integrando lenguajes predecesores tales como la notación de Booch, OMT, etc. Este lenguaje ha sido aceptado como un estándar por OMG (Object Management Group) en el año 1997 [OMG]. Los principales diagramas provistos por UML son: diagramas de casos de usos, diagramas de clases, diagramas de estados, diagramas de secuencias. UML también provee un lenguaje textual, OCL (Object Constraint Language), fácil de leer y de escribir, que permite especificar características adicionales sobre los modelos en una forma similar a lógica de predicados. OCL es un lenguaje semi formal, su sintaxis está precisamente definida pero su semántica aún presenta ambigüedad, imprecisión e inconsistencia. Las expresiones OCL no tienen efectos laterales, es decir que su evaluación no puede alterar el estado del sistema correspondiente. Su evaluación solamente retorna un valor. En este trabajo presentamos una traducción de UML/OCL en lógica de predicados de primer orden. El objetivo es verificar propiedades de los diagramas UML y verificar la validez de las expresiones OCL que acompañan a dichos diagramas. Para ello se define una sintaxis y semántica para OCL. El beneficio de esta formalización es permitir la evaluación de expresiones OCL en un modelo UML.Facultad de Informátic

    Herramienta para automatizar la transformación UML/OCL a Object-Z

    Get PDF
    En el proceso de construcción de software, el análisis y diseño son una tarea muy importante. UML (Unified Modeling Language, [OMG]) ha sido desarrollado para modelar sistemas Orientado a Objetos integrando lenguajes predecesores tales como la notación de Booch, OMT, etc. Este lenguaje ha sido aceptado como un estándar por OMG (Object Management Group) en el año 1997 [OMG]. Los principales diagramas provistos por UML son: diagramas de casos de usos, diagramas de clases, diagramas de estados, diagramas de secuencias. UML también provee un lenguaje textual, OCL (Object Constraint Language), fácil de leer y de escribir, que permite especificar características adicionales sobre los modelos en una forma similar a lógica de predicados. OCL es un lenguaje semi formal, su sintaxis está precisamente definida pero su semántica aún presenta ambigüedad, imprecisión e inconsistencia. Las expresiones OCL no tienen efectos laterales, es decir que su evaluación no puede alterar el estado del sistema correspondiente. Su evaluación solamente retorna un valor. En este trabajo presentamos una traducción de UML/OCL en lógica de predicados de primer orden. El objetivo es verificar propiedades de los diagramas UML y verificar la validez de las expresiones OCL que acompañan a dichos diagramas. Para ello se define una sintaxis y semántica para OCL. El beneficio de esta formalización es permitir la evaluación de expresiones OCL en un modelo UML.Facultad de Informátic

    Semantics of OCL specified with QVT

    Get PDF
    The Object Constraint Language (OCL) has been for many years formalized both in its syntax and semantics in the language standard. While the official definition of OCL's syntax is already widely accepted and strictly supported by most OCL tools, there is no such agreement on OCL's semantics, yet. In this paper, we propose an approach based on metamodeling and model transformations for formalizing the semantics of OCL. Similarly to OCL's official semantics, our semantics formalizes the semantic domain of OCL, i.e. the possible values to which OCL expressions can evaluate, by a metamodel. Contrary to OCL's official semantics, the evaluation of OCL expressions is formalized in our approach by model transformations written in QVT. Thanks to the chosen format, our semantics definition for OCL can be automatically transformed into a tool, which evaluates OCL expressions in a given context. Our work on the formalization of OCL's semantics resulted also in the identification and better understanding of important semantic concepts, on which OCL relies. These insights are of great help when OCL has to be tailored as a constraint language of a given DSL. We show on an example, how the semantics of OCL has to be redefined in order to become a constraint language in a database domain

    Model refactoring using transformations

    Get PDF
    Modern software is reaching levels of complexity encountered in biological systems; sometimes comprising systems of systems each of which may include tens of millions of lines of code. Model Driven Engineering (MDE) advocates raising the level of abstraction as an instrument to deal with software complexity. It promotes usage of software models as primary artifacts in a software development process. Traditionally, these MDE models are specified by Unified Modeling Language (UML) or by a modeling language created for a specific domain. However, in the vast area of software engineering there are other techniques used to improve quality of software under development. One of such techniques is refactoring which represents introducing structured changes in software in order to improve its readability, extensibility, and maintainability, while preserving behavior of the software. The main application area for refactorings is still programming code, despite the fact that modeling languages and techniques has significantly gained in popularity, in recent years. The main topic of this thesis is making an alliance between the two virtually orthogonal techniques: software modeling and refactoring. In this thesis we have investigated how to raise the level of abstraction of programming code refactorings to the modeling level. This resulted in a catalog of model refactorings each specified as a model transformation rule. In addition, we have investigated synchronization problems between different models used to describe one software system, i.e. when one model is refactored what is the impact on all dependent models and how this impact can be formalized. We have concentrated on UML class diagrams as domain of refactorings. As models dependent on class diagrams, we have selected Object Constraint Language (OCL) annotations, and object diagrams. This thesis formalizes the most important refactoring rules for UML class diagrams and classifies them with respect to their impact on object diagrams and annotated OCL constraints. For refactoring rules that have an impact on dependent artifacts we formalize the necessary changes of these artifacts. Moreover, in this thesis, we present a simple criterion and a proof technique for the semantic preservation of refactoring rules that are defined for UML class and object diagrams, and OCL constraints. In order to be able to prove semantic preservation, we propose a model transformation approach to specify the semantics of constraint languages

    An OCL Semantics Specified with QVT

    No full text
    Abstract. Metamodeling became in the last decade a widely accepted tool to describe the (abstract) syntax of modeling languages in a concise, but yet precise way. For the description of the language’s semantics, the situation is less satisfactory and formal semantics definitions are still seen as a challenge. In this paper, we propose an approach to specify the semantics of modeling languages in a graphical way. As an example, we describe the evaluation semantics of OCL by transformation rules written in the graphical formalism QVT. We believe that the graphical format of our OCL semantics has natural advantages with respect to understandability compared to existing formalizations of OCL’s semantics. Our semantics can also be seen as a reference implementation of an OCL evaluator, because the transformation rules can be executed by any QVT compliant transformation engine.
    corecore