31 research outputs found

    Search‐based model transformations

    Get PDF
    Model transformations are an important cornerstone of model‐driven engineering, a discipline which facilitates the abstraction of relevant information of a system as models. The success of the final system mainly depends on the optimization of these models through model transformations. Currently, the application of transformations is realized either by following the apply‐as‐long‐as‐possible strategy or by the provision of explicit rule orchestrations. This implies two main limitations. First, the optimization objectives are implicitly hidden in the transformation rules and their orchestration. Second, manually finding the best orchestration for a particular scenario is a major challenge due to the high number of possible combinations. To overcome these limitations, we present a novel framework that builds on the non‐intrusive integration of optimization and model transformation technologies. In particular, we formulate the transformation orchestration task as an optimization problem, which allows for the efficient exploration of the transformation space and explication of the transformation objectives. Our generic framework provides several search algorithms and guides the user in providing a proper search configuration. We present different instantiations of our framework to demonstrate its feasibility, applicability, and benefits using several case studiesEuropean Commission ICT Policy Support Programme 317859Ministerio de Economia y Competitividad TIN2015-70560-RJunta de Andalucía P10-TIC-5960Junta de Andalucía P12-TIC-186

    Solving heterogeneity for a successful service market

    Get PDF
    Diese Dissertation ist im Kontext eines neuen Paradigmas im Software Engineering mit dem Namen On-The-Fly Computing entstanden. OTF Computing basiert auf der Idee von spezialisierten On-The-Fly MĂ€rkten. OTF MĂ€rkte haben unterschiedliche Eigenschaften und die Marktakteure in diesen MĂ€rkten benutzen verschiedene Modellierungstechniken fĂŒr das Service Engineering. Diese Unterschiede resultieren in HeterogenitĂ€t und erschweren deshalb die AusfĂŒhrung von automatisierten Marktoperationen, da Servicebeschreibungen nicht automatisch miteinander verglichen werden können. FĂŒr das beschriebene Problem bietet diese Dissertation eine Lösung um einen erfolgreichen OTF Markt zu ermöglichen. FĂŒr die Vergleichbarkeit von Servicebeschreibungen in einem OTF Markt wird eine formale ZwischenreprĂ€sentation (Kernsprache) eingefĂŒhrt. Die Marktoperationen werden auf Basis der Kernsprache definiert, die die optimale AusfĂŒhrung der automatisierten Marktoperationen in einem OTF Markt unterstĂŒtzt. Der erste Beitrag dieser Dissertation ist der Ansatz Language Optimizer (LOpt). LOpt nutzt als Basis eine Kernsprache, die strukturelle, verhaltensbezogene und nicht-funktionale Serviceeigenschaften beinhaltet. LOpt konfiguriert diese Sprache basierend auf formalisierten Markteigenschaften und einer Wissensbasis mit Konfigurationsexpertise, um eine optimale Kernsprache zur Servicespezifikation im jeweiligen OTF Markt zu erstellen. Der zweite Beitrag dieser Dissertation ist die Anwendung des Model Transformation By-Example Ansatzes um den Marktakteuren ohne Expertise im Sprachdesign Transformationen von ihren proprietĂ€ren Sprachen in die optimale Kernsprache zu ermöglichen. Der beschriebene Ansatz generiert Transformationen auf Basis von Beispielabbildungen zwischen Servicebeschreibungen zweier Sprachen. Dabei wird die Idee genetischer Algorithmen angewendet.This PhD thesis is written in the context of a new software development paradigm called On-The-Fly Computing. It is based on the idea of specialized service markets called On-The-Fly (OTF) markets. OTF markets have different properties and their participants use different modeling techniques to perform the activity of service engineering. Such differences result in heterogeneity in OTF markets and complicate the execution of automated market operations like service matching as service specifications cannot be automatically compared with each other. This PhD thesis proposes a solution to cope with the mentioned heterogeneity to foster the success of OTF markets and the OTF Computing paradigm. In order to achieve the comparability of specifications in an OTF market, a formal intermediate representation called core language is introduced. Automated market operations are defined on a core language that optimally supports the execution of these operations in this market. The first contribution of this PhD thesis is the approach language Optimizer (LOpt), which supports the systematic design of a service specification language optimal for the execution of automated market operations in an OTF market. LOpt uses a comprehensive core language covering various structural, behavioral, and non-functional service properties. LOpt performs a configuration of this language based on formalized market properties and a knowledge base containing the configuration expertise. The second contribution of this PhD thesis is the application of the Model Transformations By-Example technique to define transformations from proprietary specification languages of market actors to the optimal core language. The approach generates transformations based on example mappings between concrete specifications in both languages given by market actors. ...by Svetlana Arifulina, M.Sc. ; Thesis Supervisors: Prof. Dr. Gregor Engels and Jun. Prof. Dr. Heiko HamannTag der Verteidigung: 08.12.2016UniversitĂ€t Paderborn, Univ., Dissertation, 201

    Quality Assurance of Software Models - A Structured Quality Assurance Process Supported by a Flexible Tool Environment in the Eclipse Modeling Project

    Get PDF
    The paradigm of model-based software development (MBSD) has become more and more popular since it promises an increase in the efficiency and quality of software development. In this paradigm, software models play an increasingly important role and software quality and quality assurance consequently leads back to the quality and quality assurance of the involved models. The fundamental aim of this thesis is the definition of a structured syntax-oriented process for quality assurance of software models that can be adapted to project-specific and domain-specific needs. It is structured into two sub-processes: a process for the specification of project-specific model quality assurance techniques, and a process for applying them on concrete software models within a MBSD project. The approach concentrates on quality aspects to be checked on the abstract model syntax and is based on quality assurance techniques model metrics, smells, and refactorings well-known from literature. So far, these techniques are mostly considered in isolation only and therefore the proposed process integrates them in order to perform model quality assurance more systematically. Three example cases performing the process serve as proof-of-concept implementations and show its applicability, its flexibility, and hence its usefulness. Related to several issues concerning model quality assurance minor contributions of this thesis are (1) the definition of a quality model for model quality that consists of high-level quality attributes and low-level characteristics, (2) overviews on metrics, smells, and refactorings for UML class models including structured descriptions of each technique, and (3) an approach for composite model refactoring that concentrates on the specification of refactoring composition. Since manually reviewing models is time consuming and error prone, several tasks of the proposed process should consequently be automated. As a further main contribution, this thesis presents a flexible tool environment for model quality assurance which is based on the Eclipse Modeling Framework (EMF), a common open source technology in model-based software development. The tool set is part of the Eclipse Modeling Project (EMP) and belongs to the Eclipse incubation project EMF Refactor which is available under the Eclipse public license (EPL). The EMF Refactor framework supports both the model designer and the model reviewer by obtaining metrics reports, by checking for potential model deficiencies (called model smells) and by systematically restructuring models using refactorings. The functionality of EMF Refactor is integrated into standard tree-based EMF instance editors, graphical GMF-based editors as used by Papyrus UML, and textual editors provided by Xtext. Several experiments and studies show the suitability of the tools for supporting the techniques of the structured syntax-oriented model quality assurance process

    Selective Traceability for Rule-Based Model-to-Model Transformations

    Get PDF
    Model-to-model (M2M) transformation is a key ingredient in a typical Model-Driven Engineering workflow and there are several tailored high-level interpreted languages for capturing and executing such transformations. While these languages enable the specification of concise transformations through task-specific constructs (rules/mappings, bindings), their use can pose scalability challenges when it comes to very large models. In this paper, we present an architecture for optimising the execution of model-to-model transformations written in such a language, by leveraging static analysis and automated program rewriting techniques. We demonstrate how static analysis and dependency information between rules can be used to reduce the size of the transformation trace and to optimise certain classes of transformations. Finally, we detail the performance benefits that can be delivered by this form of optimisation, through a series of benchmarks performed with an existing transformation language (Epsilon Transformation Language - ETL) and EMF-based models. Our experiments have shown considerable performance improvements compared to the existing ETL execution engine, without sacrificing any features of the language

    Search-Based Information Systems Migration: Case Studies on Refactoring Model Transformations

    Full text link
    Information systems are built to last for decades; however, the reality suggests otherwise. Companies are often pushed to modernize their systems to reduce costs, meet new policies, improve the security, or to be more competitive. Model-driven engineering (MDE) approaches are used in several successful projects to migrate systems. MDE raises the level of abstraction for complex systems by relying on models as first-class entities. These models are maintained and transformed using model transformations (MT), which are expressed by means of transformation rules to transform models from source to target meta-models. The migration process for information systems may take years for large systems. Thus, many changes are going to be introduced to the transformations to reflect the new business requirements, fix bugs, or to meet the updated metamodels. Therefore, the quality of MT should be continually checked and improved during the evolution process to avoid future technical debts. Most MT programs are written as one large module due to the lack of refactoring/modularization and regression testing tools support. In object-oriented systems, composition and modularization are used to tackle the issues of maintainability and testability. Moreover, refactoring is used to improve the non-functional attributes of the software, making it easier and faster for developers to work and manipulate the code. Thus, we proposed an intelligent computational search approach to automatically modularize MT. Furthermore, we took inspiration from a well-defined quality assessment model for object-oriented design to propose a quality assessment model for MT in particular. The results showed a 45% improvement in the developer’s speed to detect or fix bugs, and developers made 40% less errors when performing a task with the optimized version. Since refactoring operations changes the transformation, it is important to apply regression testing to check their correctness and robustness. Thus, we proposed a multi-objective test case selection technique to find the best trade-off between coverage and computational cost. Results showed a drastic speed-up of the testing process while still showing a good testing performance. The survey with practitioners highlighted the need of such maintenance and evolution framework to improve the quality and efficiency of the existing migration process.Ph.D.College of Engineering & Computer ScienceUniversity of Michigan-Dearbornhttp://deepblue.lib.umich.edu/bitstream/2027.42/149153/1/Bader Alkhazi Final Dissertation.pdfDescription of Bader Alkhazi Final Dissertation.pdf : Restricted to UM users only

    Confluence Analysis for a Graph Programming Language

    Get PDF
    GP 2 is a high-level domain-specific language for programming with graphs. Users write a set of graph transformation rules and organise them with imperative-style control constructs to perform a desired computation on an input graph. As rule selection and matching are non-deterministic, there might be different graphs resulting from program execution. Confluence is a property that establishes the global determinism of a computation despite possible local non-determinism. Conventional confluence analysis is done via so-called critical pairs, which are conflicts in minimal context. A key challenge is extending critical pairs to the setting of GP 2. This thesis concerns the development of confluence analysis for GP 2. First, we extend the notion of conflict to GP 2 rules, and prove that non-conflicting rule applications commute. Second, we define symbolic critical pairs and establish their properties, namely that there are only finitely many of them and that they represent all possible conflicts. We give an effective procedure for their construction. Third, we solve the problem of unifying GP 2 list expressions, which arises during the construction of critical pairs, by giving a unification procedure which terminates with a finite and complete set of unifiers (under certain restrictions). Last but not least, we specify a confluence analysis algorithm based on symbolic critical pairs, and show its soundness by proving the Local Confluence Theorem. Several existing programs are analysed for confluence to demonstrate how the analysis handles several GP 2 features at the same time, and to demonstrate the merit of the used techniques

    A History-based Approach for Model Repair Recommendations in Software Engineering

    Get PDF
    Software is an everyday companion in today’s technology society that need to be evolved and maintained over long time periods. To manage the complexity of software projects, it has always been an effort to increase the level of abstraction during software development. Model-Driven Engineering (MDE) has shown to be a suitable method to raise abstraction levels during software development. Models are primary development artifacts in MDE that describe complex software systems from different viewpoints. In MDE software projects, models are heavily edited through all stages of the development process. During this editing process, the models can become inconsistent due to uncertainties in the software design or various editing mistakes. While most inconsistencies can be tolerated temporarily, they need to be resolved eventually. The resolution of an inconsistency affecting a model’s design is typically a creative process that requires a developer’s expertise. Model repair recommendation tools can guide the developer through this process and propose a ranked list of repairs to resolve the inconsistency. However, such tools will only be accepted in practice if the list of recommendations is plausible and understandable to a developer. Current approaches mainly focus on exhaustive search strategies to generate improved versions of an inconsistent model. Such resolutions might not be understandable to developers, may not reflect the original intentions of an editing process, or just undo former work. Moreover, those tools typically resolve multiple inconsistencies at a time, which might lead to an incomprehensible composition of repair proposals. This thesis proposes a history-based approach for model repair recommendations. The approach focuses on the detection and complementation of incomplete edit steps, which can be located in the editing history of a model. Edit steps are defined by consistency-preserving edit operations (CPEOs), which formally capture complex and error-prone modifications of a specific modeling language. A recognized incomplete edit step can either be undone or extended to a full execution of a CPEO. The final inconsistency resolution depends on the developer’s approval. The proposed recommendation approach is fully implemented and supported by our interactive repair tool called ReVision. The tool also includes configuration support to generate CPEOs by a semi-automated process. The approach is evaluated using histories of real-world models obtained from popular open-source modeling projects hosted in the Eclipse Git repository. Our experimental results confirm our hypothesis that most of the inconsistencies, namely 93.4%, can be resolved by complementing incomplete edits. 92.6% of the generated repair proposals are relevant in the sense that their effect can be observed in the models’ histories. 94.9% of the relevant repair proposals are ranked at the topmost position. Our empirical results show that the presented history-based model recommendation approach allows developers to repair model inconsistencies efficiently and effectively.Software ist in unserer heutigen Gesellschaft ein alltĂ€glicher Begleiter. Diese wird stĂ€ndig weiterentwickelt und ĂŒberarbeitet. Model-Driven Engineering (MDE) hat sich als geeignete Methode erwiesen, um bei der Entwicklung komplexer Software von technischen Details zu abstrahieren. Hierbei werden Modelle als primĂ€re Entwicklungsartefakte verwendet, welche ein Softwaresystem aus verschiedenen Sichten beschreiben. Modelle in MDE werden in allen Entwicklungsphasen einer Software fortlaufend ĂŒberarbeitet. WĂ€hrend der Bearbeitung können die Modelle aufgrund von Unklarheiten im Design oder verschiedenen Bearbeitungsfehlern inkonsistent werden. Auch wenn Inkonsistenzen vorĂŒbergehend toleriert werden können, so mĂŒssen diese letztlich doch behoben werden. Die Behebung einer Inkonsistenz, welche sich auf das Design eines Modells auswirkt, ist meist ein kreativer Prozess, der das Fachwissen eines Entwicklers erfordert. Empfehlungswerkzeuge können den Entwickler mit ReparaturvorschlĂ€gen unterstĂŒtzen. Damit solche Werkzeuge in der Praxis akzeptiert werden, mĂŒssen die VorschlĂ€ge plausible und nachvollziehbar sein. Die meisten aktuelle AnsĂ€tze verwenden Suchstrategien, welche Reparaturen durch systematisches Ausprobieren generieren. Die so generierten Reparaturen sind fĂŒr Entwickler hĂ€ufig schwer nachvollziehbar, da sie vorhergehende Bearbeitungsschritte nicht beachten oder diese einfach rĂŒckgĂ€ngig machen. DarĂŒber hinaus lösen diese Reparaturwerkzeuge in der Regel mehrere Inkonsistenzen gleichzeitig, was zu unverstĂ€ndlichen und umfangreichen Reparaturen fĂŒhren kann. Diese Arbeit beschreibt einen Ansatz zum Erkennen und ErgĂ€nzen unvollstĂ€ndiger Bearbeitungsschritte, basierend auf der Bearbeitungshistorie eines Modells. Dazu werden konsistenzerhaltende Bearbeitungsoperationen definiert, die komplexe und fehleranfĂ€llige Änderungen einer bestimmten Modellierungssprache formal erfassen. Ein unvollstĂ€ndiger Bearbeitungsschritt kann dann entweder rĂŒckgĂ€ngig gemacht oder zu einer konsistenzerhaltenden Bearbeitungsoperationen erweitert werden. Die endgĂŒltige Reparatur der Inkonsistenz hĂ€ngt von der EinschĂ€tzung des Entwicklers ab. Der vorgeschlagene Ansatz wurde in unserem interaktiven Reparaturwerkzeug ReVision implementiert. DarĂŒber hinaus umfasst das Werkzeug UnterstĂŒtzung zum Generieren von konsistenzerhaltenden Bearbeitungsoperationen. Das Reparaturverfahren wurde anhand von Historien realer Modelle aus bekannten Open-Source-Modellierungsprojekten im Eclipse-Git-Repository bewertet. Die experimentellen Ergebnisse bestĂ€tigen unsere Hypothese, dass die meisten Inkonsistenzen, nĂ€mlich 93.4%, durch ErgĂ€nzung unvollstĂ€ndiger Bearbeitungen gelöst werden können. 92.6% der generierten ReparaturvorschlĂ€ge könnten in der entsprechenden Modellhistorie beobachtet werden. Von diesen ReparaturvorschlĂ€ge wurden 94.9% an erster Stelle vorgeschlagen. Unsere empirischen Ergebnisse zeigen, dass der vorgestellte historienbasierte Modellempfehlungsansatz es Entwicklern ermöglicht, Modellinkonsistenzen effizient und effektiv zu reparieren

    Contrasting dedicated model transformation languages versus general purpose languages: a historical perspective on ATL versus Java based on complexity and size

    Get PDF
    Model transformations are among the key concepts of model-driven engineering (MDE), and dedicated model transformation languages (MTLs) emerged with the popularity of the MDE pssaradigm about 15 to 20 years ago. MTLs claim to increase the ease of development of model transformations by abstracting from recurring transformation aspects and hiding complex semantics behind a simple and intuitive syntax. Nonetheless, MTLs are rarely adopted in practice, there is still no empirical evidence for the claim of easier development, and the argument of abstraction deserves a fresh look in the light of modern general purpose languages (GPLs) which have undergone a significant evolution in the last two decades. In this paper, we report about a study in which we compare the complexity and size of model transformations written in three different languages, namely (i) the Atlas Transformation Language (ATL), (ii) Java SE5 (2004–2009), and (iii) Java SE14 (2020); the Java transformations are derived from an ATL specification using a translation schema we developed for our study. In a nutshell, we found that some of the new features in Java SE14 compared to Java SE5 help to significantly reduce the complexity of transformations written in Java by as much as 45%. At the same time, however, the relative amount of complexity that stems from aspects that ATL can hide from the developer, which is about 40% of the total complexity, stays about the same. Furthermore we discovered that while transformation code in Java SE14 requires up to 25% less lines of code, the number of words written in both versions stays about the same. And while the written number of words stays about the same their distribution throughout the code changes significantly. Based on these results, we discuss the concrete advancements in newer Java versions. We also discuss to which extent new language advancements justify writing transformations in a general purpose language rather than a dedicated transformation language. We further indicate potential avenues for future research on the comparison of MTLs and GPLs in a model transformation context.UniversitĂ€t Ulm (1055)Peer Reviewe

    Explicitly Integrated Architecture - An Approach for Integrating Software Architecture Model Information with Program Code

    Get PDF
    Software-Architekturspezifikationen und -Implementierungen sind zwei Sichtweisen auf Softwarearchitektur. Sie beschreiben gemeinsame Aspekte, wie z.B. die Existenz und Verbindung von Komponenten. Die Spezifikation fĂŒgt Informationen zum Design, zur Kommunikation und zur Analyse hinzu. Die Implementierung beschreibt stattdessen zusĂ€tzlich Details fĂŒr ein ausfĂŒhrbares System. Die Konsistenz zwischen diesen Darstellungen manuell zu verwalten, ist schwierig und fehleranfĂ€llig. Diese Arbeit stellt einen Ansatz vor, der Informationen der Architekturspezifikation vollstĂ€ndig in die Implementierung integriert, sodass die Spezifikation als eigenstĂ€ndiges Artefakt nicht mehr notwendig ist. Das Tool Codeling extrahiert die integrierte Architekturspezifikation in unterschiedlichen Sprachen aus dem Code und propagiert Änderungen in dieser Spezifikation automatisch an den Code zurĂŒck.Specifications and implementations are both viewpoints upon software architecture. Besides common aspects, the specification adds information for design, communication, or analysis, while the implementation adds details for an executable system instead. Managing the consistency between these representations manually is difficult and error-prone. This thesis presents an approach, that completely integrates architecture specifications with the implementation, so that separate specification artifacts are not necessary anymore. The tool Codeling extracts integrated architecture specifications in multiple languages from code, and automatically propagates changes in these specifications back to the code
    corecore