25 research outputs found
Verification of model transformations
Model transformations are a central element of model-driven
development (MDD) approaches such as the model-driven architecture (MDA). The correctness of model transformations is critical to their effective use in practical software development, since users must be able
to rely upon the transformations correctly preserving the semantics of models. In this paper we define a formal semantics for model transformations, and provide techniques for proving the termination, confluence and correctness of model transformations
Process-Integrated Refinement Patterns in UML
Abstract: The Unified Modeling Language (UML) is a widely used standard in Model-Driven Engineering (MDE). Using the UML in a software development process means to refine and evolve models in many ways. Firstly, a system model evolves through different layers of abstraction towards an appropriate design in an object-oriented programming language (vertical refinement). Secondly, a set of consecutive revisions is produced within a level (horizontal refinement). Whereas the UML supports the specification of a system at all levels of abstraction, the concept of refinement lacks precise semantics and is open to misconceptions. As a general-purpose modeling language, there are no precise conceptual guidelines on how to use the wide range of UML diagrams in a development process. The semantics of a specific kind of refinement most often requires the context, i.e., the triggering development activity of the enacted process model, to be taken into account. Refinement relationships have to be documented manually, which is a very error-prone and tedious work. In this position paper, we outline our ongoing work on developing a framework for the specification and operationalization of UML refinement patterns
Evaluation of Model Transformation Approaches for Model Refactoring
This paper provides a systematic evaluation framework for comparing
model transformation approaches, based upon the ISO/IEC 9126-1
quality characteristics for software systems. We apply this framework to
compare five transformation approaches (QVT-R, ATL, Kermeta, UMLRSDS
and GrGen.NET) on a complex model refactoring case study: the
amalgamation of apparent attribute clones in a class diagram.
The case study highlights the problems with the specification and design
of the refactoring category of model transformations, and provides
a challenging example by which model transformation languages and approaches
can be compared. We take into account a wide range of evaluation
criteria aspects such as correctness, efficiency, flexibility, interoperability,
reusability and robustness, which have not been comprehensively
covered by other comparative surveys of transformation approaches.
The results show clear distinctions between the capabilities and suitabilities
of different approaches to address the refactoring form of transformation
problem
Automated Requirements Formalisation for Agile MDE
Model-driven engineering (MDE) of software systems from precise specifications has become established as an important approach for rigorous software development. However, the use of MDE requires specialised skills and tools, which has limited its adoption.In this paper we describe techniques for automating the derivation of software specifications from requirements statements, in order to reduce the effort required in creating MDE specifications, and hence to improve the usability and agility of MDE. Natural language processing (NLP) and Machine learning (ML) are used to recognise the required data and behaviour elements of systems from textual and graphical documents, and formal specification models of the systems are created. These specifications can then be used as the basis of manual software development, or as the starting point for automated software production using MDE
A logic-based approach for the verification of UML timed models
This article presents a novel technique to formally verify models of real-time systems captured through a set of heterogeneous UML diagrams. The technique is based on the following key elements: (i) a subset of Unified Modeling Language (UML) diagrams, called Coretto UML (C-UML), which allows designers to describe the components of the system and their behavior through several kinds of diagrams (e.g., state machine diagrams, sequence diagrams, activity diagrams, interaction overview diagrams), and stereotypes taken from the UML Profile for Modeling and Analysis of Real-Time and Embedded Systems; (ii) a formal semantics of C-UML diagrams, defined through formulae of the metric temporal logic Tempo Reale ImplicitO (TRIO); and (iii) a tool, called Corretto, which implements the aforementioned semantics and allows users to carry out formal verification tasks on modeled systems. We validate the feasibility of our approach through a set of different case studies, taken from both the academic and the industrial domain