6 research outputs found

    Towards Automatic Support of Software Model Evolution with Large Language~Models

    Full text link
    Modeling structure and behavior of software systems plays a crucial role, in various areas of software engineering. As with other software engineering artifacts, software models are subject to evolution. Supporting modelers in evolving models by model completion facilities and providing high-level edit operations such as frequently occurring editing patterns is still an open problem. Recently, large language models (i.e., generative neural networks) have garnered significant attention in various research areas, including software engineering. In this paper, we explore the potential of large language models in supporting the evolution of software models in software engineering. We propose an approach that utilizes large language models for model completion and discovering editing patterns in model histories of software systems. Through controlled experiments using simulated model repositories, we conduct an evaluation of the potential of large language models for these two tasks. We have found that large language models are indeed a promising technology for supporting software model evolution, and that it is worth investigating further in the area of software model evolution

    Recommender systems in model-driven engineering: A systematic mapping review

    Full text link
    Recommender systems are information filtering systems used in many online applications like music and video broadcasting and e-commerce platforms. They are also increasingly being applied to facilitate software engineering activities. Following this trend, we are witnessing a growing research interest on recommendation approaches that assist with modelling tasks and model-based development processes. In this paper, we report on a systematic mapping review (based on the analysis of 66 papers) that classifies the existing research work on recommender systems for model-driven engineering (MDE). This study aims to serve as a guide for tool builders and researchers in understanding the MDE tasks that might be subject to recommendations, the applicable recommendation techniques and evaluation methods, and the open challenges and opportunities in this field of researchThis work has been funded by the European Union’s Horizon 2020 research and innovation programme under the Marie Skłodowska-Curie Grant Agreement No. 813884 (Lowcomote [134]), by the Spanish Ministry of Science (projects MASSIVE, RTI2018-095255-B-I00, and FIT, PID2019-108965GB-I00) and by the R&D programme of Madrid (Project FORTE, P2018/TCS-431

    A Focus+Context Approach to Alleviate Cognitive Challenges of Editing and Debugging UML Models

    Get PDF
    Copyright (c) 2019 IEEE Personal use of this material is permitted. Permission from IEEE must be obtained for all other uses, in any current or future media, including reprinting/republishing this material for advertising or promotional purposes, creating new collective works, for resale or redistribution to servers or lists, or reuse of any copyrighted component of this work in other works.Model-Driven Engineering has been proposed to increase the productivity of developing a software system. Despite its benefits, it has not been fully adopted in the software industry. Research has shown that modelling tools are amongst the top barriers for the adoption of MDE by industry. Recently, researchers have conducted empirical studies to identify the most severe cognitive difficulties of modellers when using UML model editors. Their analyses show that users’ prominent challenges are in remembering the contextual information when performing a particular modelling task; and locating, understanding, and fixing errors in the models. To alleviate these difficulties, we propose two Focus+Context user interfaces that provide enhanced cognitive support and automation in the user’s interaction with a model editor. Moreover, we conducted two empirical studies to assess the effectiveness of our interfaces on human users. Our results reveal that our interfaces help users 1) improve their ability to successfully fulfil their tasks, 2) avoid unnecessary switches among diagrams, 3) produce more error-free models, 4) remember contextual information, and 5) reduce time on tasks.NSERC CREATE 465463-2015 NSERC Discovery Grant 15524

    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

    A User-Centric Approach to Improve the Quality of UML-like Modelling Tools and Reduce the Efforts of Modelling

    Get PDF
    As software systems grow in size and complexity, their development and maintenance are becoming increasingly challenging. Model-Driven Engineering (MDE) has been proposed as a means to increase the developer's productivity of such large-scale complex software systems. Despite its benefits, MDE has not been fully adopted in the software industry due to several barriers. Research has shown that modelling tools are amongst the top barriers for the industry's reluctance to adopt MDE, mostly because there is a little investigation of the modellers' interactions with modelling tools when editing and debugging models, which are cognitively difficult tasks. More specifically, MDE tool research has not considered 1) a thorough analysis of modellers and their tasks, to understand their challenges of using modelling tools, 2) the underlying human-cognitive factors, and 3) a systematic assessment of the effectiveness of proposed solutions (i.e., tooling techniques) on human users. This thesis argues that MDE tools can be enhanced to overcome (some of) the challenges of adoption by considering human-cognitive factors (i.e., user-centric) when designing and proposing model-easing techniques for model editors. We advance our thesis in three main steps. As a first step, we conducted an empirical study to identify the most-severe cognitive difficulties of modellers when using UML model editors. In our study, we asked the recruited subjects to perform several model-editing and model-debugging tasks. We collected information during the sessions that could help us understand the subjects' cognitive challenges. The results show that users face multiple challenges, amongst which the most prominent challenges are remembering contextual information when performing a particular modelling task; and locating, understanding, and fixing errors in the models. In the second step, we identified the cognitive factors that drive the most prominent challenges and subsequently devised several tooling advancements that provide enhanced cognitive support and automation in the users' interaction with a model editor. The philosophy behind our tooling advancements is to provide the contextual information that are relevant to performing a particular modelling task, thereby, alleviating the modellers' cognitive challenges of recollecting information from different diagrams. We also proposed an on-the-fly error-resolution technique that aims at resolving errors as they occur. We implemented our Eclipse-based model-editor and embedded our tooling techniques in the tool. Lastly, we conducted two empirical studies to assess the effectiveness of our model-editor on human users. The Context study aimed at evaluating our tool's ability to reduce the challenges of remembering contextual information, whereas the Debugging study aimed at assessing our tool's ability to improve the users' experience of debugging models. Our results reveal that our interfaces help users 1) improve their ability to successfully fulfil their tasks, 2) avoid unnecessary context switches among diagrams, 3) produce more error-free models, 4) remember contextual information, and 5) reduce time on tasks
    corecore