34 research outputs found
Automatische Duplikateliminierung in Aktivitätsdiagrammen von Fahrzeugfunktionen
The article may be also found at https://dl.gi.de/handle/20.500.12116/1039.Die Spezifikation von Fahrzeugfunktionen ist eine komplexe Aufgabe. Zum Umgang mit dieser Komplexität werden zur Beschreibung der Funktionen grafische Modellierungssprachen wie UML verwendet. Bei der Modellierung können Duplikate entstehen, welche Ausgangspunkt für Fehler und Inkonsistenzen in der weiteren Entwicklung sind. Dieser Beitrag widmet sich der Eliminierung von Duplikaten, welche bei der Spezifikation von Fahrzeugfunktionen mittels UML Aktivitätsdiagrammen auftreten. Es wird dargestellt, wie in UML Aktivitätsdiagrammen identifizierte Duplikate automatisiert eliminiert werden, ohne die ursprüngliche Funktionalität zu verändern. Mehrfach auftretende Elemente werden zusammengefasst und durch das Einfügen von weiteren Elementen und Verbindungen zusammengesetzt
Evolution of Model Transformations by Model Refactoring: Long Version
Model-to-model transformations between visual languages are often defined by typed, attributed graph transformation systems. Here, the source and target languages of the model transformation are given by type graphs (or meta models), and the relation between source and target model elements is captured by graph transformation rules. On the other hand, refactoring is a technique to improve the structure of a model in order to make it easier to comprehend, more maintainable and amenable to change. Refactoring can be defined by graph transformation rules, too. In the context of model transformation, problems arise when models of the source language of a model transformation become subject to refactoring. It may well be the case that after the refactoring, the model transformation rules are no longer applicable because the refactoring induced structural changes in the models. In this paper, we consider a graph-transformation-based evolution of model transformations which adapts the model transformation rules to the refactored models. In the main result, we show that under suitable assumptions, the evolution leads to an adapted model transformation which is compatible with refactoring of the source and target models. In a small case study, we apply our techniques to a well-known model transformation from statecharts to Petri nets
Evolution von Software-Architekturen
In diesem technischen Bericht wird die Evolution von Software-Architekturen anhand von kleinen, effizient und schnell ausführbaren, systematischen Schritten dargestellt. Die Architektur wird dabei so adaptiert, dass diese sich besser für die Erweiterung um neue Funktionalität eignet. Die Umgestaltungsschritte werden durch einen dargestellten Kalkül formal beschrieben, wodurch die Implikationen präzise und bis hin zu notwendigen Beweisverpflichtungen festgelegt sind. Dabei bleibt das migrierte System in jedem Zwischenschritt lauffähig, kann so weiter im Produktiveinsatz verbleiben und permanenten Tests unterzogen werden
Refactoring of Model Transformations
Model-to-model transformations between visual languages are often defined by typed, attributed graph transformation systems. Here, the source and target languages of the model transformation are given by type graphs (or meta models),
and the relation between source and target model elements is captured by graph transformation rules. On the other hand, refactoring is a technique to improve the structure of a model in order to make it easier to comprehend, more maintainable
and amenable to change. Refactoring can be defined by graph transformation rules, too. In the context of model transformation, problems arise when models of the source language of a model transformation become subject to refactoring. It may well be the case that after the refactoring, the model transformation rules are no longer applicable because the refactoring induced structural changes in the models. In this paper, we consider a graph-transformation-based evolution of model transformations
which adapts the model transformation rules to the refactored models.
In the main result, we show that under suitable assumptions, the evolution leads to an adapted model transformation which is compatible with refactoring of the source and target models. In a small case study, we apply our techniques to a well-known
model transformation from statecharts to Petri nets
Refactoring OCL Annotated UML Class Diagrams
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
Handling High-Level Model Changes Using Search Based Software Engineering
Model-Driven Engineering (MDE) considers models as first-class artifacts during the software
lifecycle. The number of available tools, techniques, and approaches for MDE is increasing as its
use gains traction in driving quality, and controlling cost in evolution of large software systems.
Software models, defined as code abstractions, are iteratively refined, restructured, and evolved.
This is due to many reasons such as fixing defects in design, reflecting changes in requirements,
and modifying a design to enhance existing features.
In this work, we focus on four main problems related to the evolution of software models: 1) the
detection of applied model changes, 2) merging parallel evolved models, 3) detection of design
defects in merged model, and 4) the recommendation of new changes to fix defects in software
models.
Regarding the first contribution, a-posteriori multi-objective change detection approach has been
proposed for evolved models. The changes are expressed in terms of atomic and composite
refactoring operations. The majority of existing approaches detects atomic changes but do not
adequately address composite changes which mask atomic operations in intermediate models.
For the second contribution, several approaches exist to construct a merged model by
incorporating all non-conflicting operations of evolved models. Conflicts arise when the
application of one operation disables the applicability of another one. The essence of the problem
is to identify and prioritize conflicting operations based on importance and context – a gap in
existing approaches. This work proposes a multi-objective formulation of model merging that
aims to maximize the number of successfully applied merged operations.
For the third and fourth contributions, the majority of existing works focuses on refactoring at
source code level, and does not exploit the benefits of software design optimization at model
level. However, refactoring at model level is inherently more challenging due to difficulty in
assessing the potential impact on structural and behavioral features of the software system. This requires analysis of class and activity diagrams to appraise the overall system quality, feasibility,
and inter-diagram consistency. This work focuses on designing, implementing, and evaluating a
multi-objective refactoring framework for detection and fixing of design defects in software
models.Ph.D.Information Systems Engineering, College of Engineering and Computer ScienceUniversity of Michigan-Dearbornhttp://deepblue.lib.umich.edu/bitstream/2027.42/136077/1/Usman Mansoor Final.pdfDescription of Usman Mansoor Final.pdf : Dissertatio
Business processes refactoring to improve usability in E-commerce applications
Refactoring is a technique that applies step-by-step transformations intended to improve the quality of software while preserving its behavior. It represents an essential activity in today's software lifecycle and a powerful tool against software decay. Software decay, however, is not only about code becoming legacy, but it is also about systems becoming less usable compared to competitor solutions adopting new designs and new technologies. If we narrow the focus on e-commerce systems, the role of usability becomes essential: higher usability is in fact a requirement to win the market competition and to retain customers from turning to other choices. One reason why an e-commerce application can start suffering from poor usability is because of its business processes (BPs) becoming difficult to access, complicated to execute, and, overall, offering a poor user experience. In this paper we argue that refactoring can be a key solution for this kind of usability issues. In particular, we propose a catalog of refactorings as a means to systematically identify and address lack of usability in the BPs of an e-commerce application, and to seize opportunities for usability improvement. To make the presentation concrete and to provide evidence of the benefits that applying our refactorings can bring, we present a number of examples with reference to well-known e-commerce websites.Laboratorio de Investigación y Formación en Informática Avanzad
MagicUWE4R: Una herramienta de refactoring en el modelado de aplicaciones web
El punto central de esta tesis es la inclusión de la práctica de refactoring dentro de una metodología de desarrollo de aplicaciones web existente. Es decir, se utiliza la técnica de refactoring (que siempre se relacionó con las metodologías ágiles y el código fuente) en el contexto del desarrollo de software dirigido por modelos (MDD).
Ante la ausencia de herramientas de refactoring aplicadas al desarrollo Web dirigido por modelos, se desarrolla MagicUWE4R, que implementa los refactorings para el modelo de navegación y presentación de la metodología UWE. A su vez, se pone énfasis en el buen diseño de la herramienta, de manera que el motor de refactoring sea extensible para otros refactorings más complejos, mediante una implementación simple y elegante. Esto a causa de principalmente dos puntos claves: el uso de patrones de diseño y la composición de refactorings.Facultad de Informátic