32 research outputs found

    Refactoring OCL annotated UML class diagrams

    Get PDF
    Refactoring of UML class diagrams is an emerging research topic and heavily inspired by refactoring of program code written in object-oriented implementation languages. Current class diagram refactoring techniques concentrate on the diagrammatic part but neglect OCL constraints that might become syntactically incorrect by changing the underlying class diagram. This paper formalizes the most important refactoring rules for class diagrams and classifies them with respect to their impact on attached OCL constraints. For refactoring rules that have an impact on OCL constraints, we formalize the necessary changes of the attached constraints. Our refactoring rules are specified in a graph-grammar inspired formalism. They have been implemented as QVT transformation rules. We finally discuss for our refactoring rules the problem of syntax preservation and show, by using the KeY-system, how this can be resolve

    Refactoring OCL Annotated UML Class Diagrams

    Get PDF
    Refactoring of UML class diagrams is an emerging research topic and heavily inspired by refactoring of program code written in object-oriented implementation languages. Current class diagram refactoring techniques concentrate on the diagrammatic part but neglect OCL constraints that might become syntactically incorrect by changing the underlying class diagram. This paper formalizes the most important refactoring rules for class diagrams and classifies them with respect to their impact on annotated OCL constraints. For refactoring rules, whose application on class diagrams could make attached OCL constraints incorrect, we formally describe how the OCL constraints have to be refactored to preserve their syntactical correctness. Our refactoring rules are defined in the graph-grammar based formalism proposed by the QVT Merge Group for the specification of model transformations

    Transformation Techniques for OCL Constraints

    Get PDF
    Constraints play a key role in the definition of conceptual schemas. In the UML, constraints are usually specified by means of invariants written in the OCL. However, due to the high expressiveness of the OCL, the designer has different syntactic alternatives to express each constraint. The techniques presented in this paper assist the designer during the definition of the constraints by means of generating equivalent alternatives for the initially defined ones. Moreover, in the context of the MDA, transformations between these different alternatives are required as part of the PIM-to-PIM, PIM-to-PSM or PIM-to-code transformations of the original conceptual schema

    UML is still inconsistent! How to improve OCL Constraints in the UML 2.3 Superstructure

    Get PDF
    Since the first OMG specification of the Unified Modeling Language (UML), the Object Constraint Language (OCL) has been used for the definition of well-formedness rules in the UML specification. These rules have been specified within the early OCL years, when no appropriate tooling existed. Thus, they could not be checked for syntactical and static semantics correctness. In this paper we present an analysis of the static correctness of all OCL rules specified in the UML 2.3 superstructure document. We categorise found errors and propose changes for both the UML specification process and the OCL language to improve the UML specification’s correctness in future versions

    Refactoreo de diagramas de clases UML empleando slicing de modelos

    Get PDF
    El refactoreo es un proceso que permite mejorar la estructura interna de un sistema sin modificar su comportamiento. Su aplicación sobre diagramas UML es actualmente campo de investigación. Por otra parte, el slicing constituye una técnica ampliamente usada en diversas áreas de la ingeniería de software (como ser debugging, testing, reuso, mantenimiento, etc.) y más recientemente ha encontrado aplicación en el campo de los modelos UML. Sin embargo, la combinación de ambos procedimientos en el dominio de lenguajes como UML no ha sido objeto de indagación hasta el momento. En este trabajo se presenta una aproximación para su uso combinado.III Workshop de Ingeniería de Software y Bases de Datos (WISBD)Red de Universidades con Carreras en Informática (RedUNCI

    Refactoreo de diagramas de clases UML empleando slicing de modelos

    Get PDF
    El refactoreo es un proceso que permite mejorar la estructura interna de un sistema sin modificar su comportamiento. Su aplicación sobre diagramas UML es actualmente campo de investigación. Por otra parte, el slicing constituye una técnica ampliamente usada en diversas áreas de la ingeniería de software (como ser debugging, testing, reuso, mantenimiento, etc.) y más recientemente ha encontrado aplicación en el campo de los modelos UML. Sin embargo, la combinación de ambos procedimientos en el dominio de lenguajes como UML no ha sido objeto de indagación hasta el momento. En este trabajo se presenta una aproximación para su uso combinado.III Workshop de Ingeniería de Software y Bases de Datos (WISBD)Red de Universidades con Carreras en Informática (RedUNCI

    Schéma de refactoring de diagrammes de classes basé sur la notion de délégation

    Get PDF
    National audienceL'activité de refactoring consiste à restructurer un modèle en vue d'améliorer certains facteurs de qualité, tout en préservant la cohérence de ce modèle. Dans cet article, nous proposons un schéma de refactoring de diagrammes de classes basé sur la notion de délégation. L'idée consiste à redistribuer le contenu d'une classe d'un diagramme de classes par déplacement dans une nouvelle classe d'un ensemble d'attributs et de méthodes associées à un concept, au sens type abstrait de données. La vérification de la cohérence est à la fois interne au diagramme de classes et entre les différents diagrammes du modèle en cours de développement. Nous illustrons notre propos sur une étude de cas simplifiée, une application bancaire

    Extended Version of Elucidative Development for Model-Based Documentation and Language Specification

    Get PDF
    Documentation is an essential activity in software development, for source code as well as modelling artefacts. Typically, documentation is created and maintained manually which leads to inconsistencies as documented artefacts like source code or models evolve during development. Existing approaches like literate/elucidative programming or literate modelling address these problems by deriving documentation from software development artefacts or vice versa. However, these approaches restrict themselves to a certain kind of artefact and to a certain phase of the software development life-cycle. In this paper, we propose elucidative development as a generalisation of these approaches supporting heterogeneous kinds of artefacts as well as the analysis, design and implementation phases of the software development life-cycle. Elucidative development allows for linking source code and model artefacts into documentation and thus, maintains and updates their presentation semi-automatically. We present DEFT as an integrated development environment for elucidative development. We show, how DEFT can be applied to language specifications like the UML specification and help to avoid inconsistencies caused by maintenance and evolution of such a specification

    Merging cloned alloy models with colorful refactorings

    Get PDF
    Likewise to code, clone-and-own is a common way to create variants of a model, to explore the impact of different features while exploring the design of a software system. Previously, we have introduced Colorful Alloy, an extension of the popular Alloy language and toolkit to support feature-oriented design, where model elements can be annotated with feature expressions and further highlighted with different colors to ease understanding. In this paper we propose a catalog of refactorings for Colorful Alloy models, and show how they can be used to iteratively merge cloned Alloy models into a single feature-annotated colorful model, where the commonalities and differences between the different clones are easily perceived, and more efficient aggregated analyses can be performed.This work is financed by the ERDF — European Regional Development Fund through the Operational Programme for Competitiveness and Internationalisation – COMPETE 2020 Programme and by National Funds through the Portuguese funding agency, FCT – Fundação para a Ciência e a Tecnologia within project PTDC/CCI-INF/29583/2017 – POCI-01-0145-FEDER-029583

    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
    corecore