15 research outputs found

    Towards the Co-Evolution of Models and Artefacts of Industrial Tools Through External Views

    Get PDF
    Modern software systems comprise multiple models. When these models are changed, interdependent models must be evolved accordingly. Manually managing this co-evolution of models is tedious and error-prone. Moreover, other interdependent artefacts, such as persisted states of industrial software applications, must co-evolve accordingly. Automated consistency preservation allows for efficiently managing the co-evolution of models. However, while state-of-the-art approaches operate delta-based, typical software applications persist changes state-based without conforming to explicit metamodels. Additionally, software applications may persist changes infrequently, even though interdependent models might be concurrently modified. As such, current approaches are insufficient for artefacts of industrial tools. To address these issues, we propose an approach for the co-evolution of models and artefacts of industrial tools by treating these artefacts as external views on the models

    Handling High-Level Model Changes Using Search Based Software Engineering

    Full text link
    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

    Derivation of Change Sequences from State-Based File Differences for Delta-Based Model Consistency

    Get PDF
    In der sichtenbasierten Software-Entwicklung ist es möglich, dass mehrere Sichten das gleiche Konzept abbilden, wodurch Sichten redundante oder abhängige Informationen darstellen können. Es ist essenziell, diese individuellen Sichten synchron zu halten, um Inkonsistenzen im System zu vermeiden. In Ansätzen mit einem Single Underlying Model (SUM) werden Inkonsistenzen vermieden, indem das SUM als zentrale und einzige Informationsquelle genutzt wird, von welcher Sichten projiziert werden. Um Sichten mit dem SUM zu synchronisieren, wird in den meisten Fällen eine deltabasierte Konsistenzhaltung verwendet. Diese nutzt feingranulare Änderungssequenzen, welche von den einzelnen Sichten bereitgestellt werden müssen, um das SUM inkrementell zu aktualisieren. In realen Anwendungsfällen ist die Funktionalität zur Bereitstellung dieser Änderungssequenzen jedoch selten verfügbar. Stattdessen werden nur zustandsbasierte Änderungen persistiert. Es ist insofern wünschenswert Sichten, welche nur zustandsbasierte Änderungen bereitstellen, in deltabasierter Konsistenzhaltung zu unterstützen. Dies kann erreicht werden, indem die feingranularen Änderungssequenzen von den zustandsbasierten Änderungen abgeleitet werden. In dieser Arbeit wird die Qualität von abgeleiteten Änderungssequenzen im Kontext von Modellkonsistenzhaltung evaluiert. Um eine solche Sequenz abzuleiten, müssen übereinstimmende Elemente aus den verglichenen Modellen identifiziert und deren Unterschiede bestimmt werden. Um übereinstimmenden Elemente zu identifizieren, nutzen wir zwei Strategien. Bei der einen Strategie werden übereinstimmende Elemente anhand ihres eindeutigen Bezeichners erkannt. Bei der anderen Strategie wird eine Ähnlichkeitsmetrik basierend auf den Eigenschaften der Elemente genutzt. Als Evaluationsgrundlage werden verschiedene Testszenarien erstellt. Für jeden Test wird eine initiale und eine geänderte Version von sowohl einem UML-Klassendiagramm als auch Java-Code bereitgestellt. Wir nutzen die verschiedenen Strategien, um Änderungssequenzen basierend auf den zustandsbasierten Änderungen der UML-Sicht abzuleiten, geben diese an das SUM weiter und untersuchen die Ergebnisse in beiden Domänen. Die Ergebnisse zeigen, dass die Strategie, welche eindeutige Bezeichner nutzt, in fast allen betrachteten Fällen (97 %) die korrekte Änderungssequenz liefert. Bei der Nutzung der ähnlichkeitsbasierten Strategie können wir zwei wiederkehrende Fehlermuster identifizieren. Bezüglich dieser Probleme stellen wir eine erweiterte ähnlichkeitsbasierte Strategie vor, welche in der Lage ist, die Auftrittshäufigkeit der Fehlermuster zu reduzieren ohne die Ausführungsgeschwindigkeit signifikant zu beeinflussen

    Commit-Based Continuous Integration of Performance Models

    Get PDF

    Modelado colaborativo en lenguaje natural a través de redes sociales

    Full text link
    El desarrollo dirigido por modelos (MDE) automatiza el desarrollo del software y tiene como pieza central los modelos. Estos, además de ser elementos de diseño del sistema, se usan durante todo el ciclo de vida del sistema para validar, simular, probar, mantener y generar código de la aplicación final. Los modelos se convierten en una pieza fundamental, y es esencial para garantizar la calidad del software, su adecuada construcción. Para eso, no solo es necesaria la participación de los expertos en modelado, sino que, además los expertos de dominio juegan un papel muy importante en el desarrollo de modelos de dominio. Nace así la necesidad de modelado colaborativo entre expertos de dominio y expertos de modelado. Para facilitar las tareas de modelado colaborativo, las herramientas juegan un papel muy importante. Y deben dar soporte, no solo al modelado, sino también a labores de gestión, comunicación y coordinación. Por otro lado, las redes sociales han ganado importancia durante los últimos años. Han demostrado una gran eficacia en tareas de discusión, de coordinación, y de diseminación de información. Tanto es así, que no solo se han quedado en el ámbito personal, sino que muchas redes sociales han nacido para satisfacer estas necesidades en el ámbito laboral, como Workplace by Facebook, Slack o Yammer. En la ingeniería del software el uso de las redes sociales se ha adoptado como mecanismo de coordinación y colaboración. Redes Sociales como Stackoverflow, han surgido para que comunidades de desarrolladores compartan y aprendan unos de otros. Por otro lado, el avance en el procesamiento de lenguaje natural (LN) ha permitido que surjan bots o chatbots, programas con los que se interactua a través de LN y que permiten obtener información o automatizar tareas. Aprovechándose de las ventajas que ofrecen las redes sociales para comunicación y coordinación, en este trabajo se propone SOCIO, un bot que funciona sobre redes sociales para realizar tareas de modelado colaborativo. SOCIO proporciona soporte para modelado, interpretando requisitos expresados en LN, acercando de esta manera el modelado a participantes con poca experiencia en esa área, como pueden ser expertos de dominio. El bot mantiene un historial de mensajes que ayuda a mantener la trazabilidad del modelo. SOCIO tiene una arquitectura fácilmente extensible a diferentes redes sociales. Actualmente, el bot está disponible en Telegram y Twitter. Por último, la herramienta ha sido evaluada en un estudio preliminar sobre Telegram con resultados muy prometedores, que nos animan para continuar trabajando sobre este enfoque y mejorar el procesamiento de lenguaje natural.Model Driven Engineering (MDE) automates software development by promoting models as the main assets in software projects. Models are actively used throughout the software life cycle, as design elements, to simulate, validate, test, maintain and generate code for the final application. This way, models becomes as a fundamental part of development, and are essential to ensure the quality of software. Thus, not only the involvement of modelling experts is necessary, but also the domain experts have an important role to play in development of the domain models. Modelling is a collaborative task performed between modelling experts and domain experts. Therefore, the tools are important to facilitate collaborative task. They must provide collaboration support and management, discussion and coordination mechanisms. Currently, social networks have gained an enormous prominence in our daily life. They provide a lightweight, agile, ubiquitous mechanism for discussion, coordination and dissemination of information tasks. Not only general propose networks, but also many social networks like Workplace by Facebook, Slack or Yammer, have emerged to meet this need in enterprises. In software engineering, the use of social networks has been adopted as a coordination and collaboration mechanism. Social networks such as Stackoverflow have emerged to help developer communities to share and learn from each other. In addition, the advance in the processing of natural language (NL) has allowed bots or chatbots to emerge. These are programs whose interaction mechanism is based on NL, and can be used to obtain information or automate tasks. Given the benefits of social networks, this work proposes SOCIO, a bot, which works over social networks, to assist in collaborative modelling tasks. SOCIO provides modelling support interpreting requirements in NL. Thus it facilitates the modelling task to participants with low technical experience, like domain experts. SOCIO has an extensible architecture that supports different social networks. Currently, the bot is available on Telegram and Twitter. Finally, the tool has been evaluated in a preliminary study on Telegram with very promising results, which encourages us to continue working on this approach and improve natural language processing

    Konsistenzerhaltung von Feature-Modellen durch externe Sichten

    Get PDF
    Bei der Produktlinienentwicklung werden Software-Produktlinien(SPLs) meistens Featureorientiert strukturiert und organisiert. Um die gemeinsamen und variablen Merkmale der Produkte einer Produktlinie darzustellen, können Feature-Modelle verwendet werden. Ein Software-Werkzeug zum Erstellen und Editieren von Feature-Modellen ist FeatureIDE, welche die Zustände der Feature-Modelle als Dateien der Extensible Markup Language (XML) persistiert. Bei der Entwicklung von Software-Systemen existieren allerdings mehrere unterschiedliche Artefakte. Diese können sich Informationen mit den Feature-Modellen teilen. Um diese Artefakte und Modelle gemeinsam automatisch evolvieren zu können, werden Konsistenzerhaltungsansätze benötigt. Solche Ansätze sind jedoch nicht mit den persistierten XML-Dateien kompatibel. In dieser Arbeit implementieren wir eine bidirektionale Modell-zu-Text-Transformation, welche die als XML-Dateien persistierten Zustände der FeatureIDE-Modelle in geeignete Modellrepräsentationen überführt, um daraus feingranulare Änderungssequenzen abzuleiten. Diese können zur deltabasierten Konsistenzerhaltung verwendet werden. Für die Modellrepräsentation verwenden wir ein bestehendes Metamodell für Variabilität. Zur Ableitung der Änderungssequenzen wird ein existierendes Konsistenzerhaltungsframework eingesetzt. Wir validieren die Korrektheit der Transformation mithilfe von Round-Trip-Tests. Dabei zeigen wir, dass die in dieser Arbeit implementierte Transformation alle geteilten Informationen zwischen FeatureIDE und dem Variabilitäts-Metamodell korrekt transformiert. Zudem können mithilfe der in dieser Arbeit implementierten Transformation und mit dem verwendeten Konsistenzerhaltungsframework zu 94,44% korrekte feingranulare Änderungssequenzen aus den als XML-Datei persistierten Zuständen der FeatureIDE-Modelle abgeleitet werden

    An efficient line-based approach for resolving merge conflicts in XMI-based models

    Get PDF
    Conflicts in software artefacts can appear during collaborative development through version control systems. When these conflicts happen in XMI models, the conflict sections generated by diff programs break the XMI serialisation and compromise the ability to use model editors that assume well-formedness of this serialisation. While these conflict sections already mark the conflicting lines of the model, current tools for conflict resolution in models ignore them and instead load the different versions of a model from the repository, over which they perform a full and costly comparison that re-identifies the conflicts. We present a novel approach that prevents this repetition of work by directly parsing XMI-based models with conflict sections, which allows for a targeted analysis of only the lines of the model that have been detected to be in conflict by the version control system. We have implemented this approach in the Peacemaker tool, which can load XMI models with conflict sections, compute and display conflicts at the model level, and provide appropriate resolution actions. Compared with state-of-the-art model comparison tools with support for conflict resolution, Peacemaker is able to identify the vast majority of conflicts in models while reducing the required time by up to 60%. The small subset of non-identified conflicts does not introduce issues into the models, e.g. there is no loss of model information, and the resulting models after line-merging these conflicts conform to their metamodels

    Méthode agile pour la conception collaborative multidisciplinaire de systèmes intégrés : application à la mécatronique

    Get PDF
    This work focuses on the multidisciplinary and collaborative design of integrated systems. These systems are subject to an ever increasing number of requirements, leading to the need for more comprehensive functional and spatial integration. These different types of product integration are also at the origin of organizational complexity. This complexity arises not only from the great number of actors performing various engineering activities but also from the diversity of disciplines involved (designated in this manuscript as “multidisciplinary integration”). To encourage this multidisciplinary integration, “preliminary design” and “detailed design” have been identified as the most significant steps, especially since they are characterized by the collaboration of multiple experts handling a large number of product definition’ technical data. Systems that have been designed thanks to multidisciplinary approaches are generally poorly integrated. This is partially due to the compartmentalization of disciplines, as well as to the “project-planned” method, where project planning is predominant and information is mainly spread out “top-down”. To ensure better cooperation between the various disciplines, to enable decision making based on operational indicators and to analyze and understand the multidisciplinary integration processes, a method inspired by the founding principles of agile methods (the agile manifesto) is proposed for the collaborative design of integrated systems. This work is based on three complementary concepts. The first is, the Collaborative Actions Framework, an operational framework for collaboration around actions. One objective of this framework is to improve the collaboration among designers, whatever their disciplinary origin. It also ensures traceability between decision making and corrections/changes made to technical data. This traceability is made possible by the useof the second concept, called Workspace. Even if this term is already well known, we propose a new definition/usage to transform it into collaboration spaces. This concept offers great possibilities, including the continuous delivering/sharing of experts’ contributions, multidisciplinary integration and change validation. The exchange of technical data between workspaces, or simultaneous work on the same data, relies on the ability to manage several parallel versions of the same item into a single datamanagement system. These opportunities are offered by the third concept, called Branch & Merge. Finally, these three concepts are illustrated through a scenario and a computer prototype. A mechatronic product, “the synergistic combination of mechanical and electrical engineering, computer science, and information technology” (Harashima et al., 1996), is used to illustrate the opportunities offered by our work in terms of multidisciplinary integration during collaborative design.Ces travaux portent sur la conception multidisciplinaire de systèmes intégrés. Ces systèmes sont soumis à un nombre d’exigences toujours croissant, entraînant des besoins en termes d’intégration fonctionnelle et spatiale. Ces différents types d’intégration relative au produit sont également la source d’une complexité organisationnelle, provenant à la fois de la multitude d’acteurs réalisant différentes activités d’ingénierie, mais également de la diversité des domaines impliqués, désignée dans ce manuscrit par « intégration multidisciplinaire ». Pour favoriser cette intégration multidisciplinaire, les phases de « conception préliminaire » et de « conception détaillée » ont été identifiées comme déterminantes, notamment car elles se caractérisent par la collaboration de nombreux experts, manipulant un grand nombre de données techniques de définition. Les systèmes conçus lors de conceptions multidisciplinaires restent faiblement intégrés. Cela est en partie dû au cloisonnement entre les disciplines et à un mode d’organisation projet basé sur une planification prédominante, caractérisé notamment par une diffusion de l’information principalement descendante (top-down). Afin d’assurer une meilleure collaboration entre ces différentes disciplines, de permettre des prises de décision éclairées par des indicateurs opérationnels et de pouvoir analyser et mieux comprendre les phénomènes d’intégration des expertises, l’introduction d’une méthode inspirée des principes fondateurs des méthodes agiles est proposée pour la conception collaborative de systèmes intégrés.La contribution de ces travaux s’appuie sur trois concepts complémentaires. Le premier, intitulé Collaborative Actions Framework correspond à un cadre de collaboration opérationnelle autour d’actions. Un des objectifs de ce framework est de faciliter la collaboration des acteurs des projets de conception, quelle que soit leur origine disciplinaire, mais également d’assurer une traçabilité entre les prises de décision et les corrections/modifications apportées sur les données techniques. Cette traçabilité est rendue possible grâce aux liens existants avec le second concept intitulé Workspace. Apportant un nouvel éclairage sur les possibilités offertes par la collaboration autour de ces espaces de collaboration, ce concept offre un certain nombre de possibilités,notamment la mise en commun continue des travaux, l’intégration multidisciplinaire et la validation des modifications. Les échanges de données techniques entre les workspaces, ou le travail simultané sur les mêmes données techniques, s’appuient quant à eux sur la possibilité de pouvoir gérer de façon parallèle différentes versions d’une même donnée technique. Ces possibilités sont proposées par le troisième concept, intitulé branch & merge, qui permet également à différents acteurs de travailler simultanément sur les mêmes données. Enfin, ces trois concepts sont ensuite illustrés par l’intermédiaire d’un démonstrateur composé d’un scénario et d’un prototype informatique. Un produit mécatronique, combinaison synergique et systémique de la mécanique, de l'électronique et de l'informatique temps réel, est utilisé afin d’illustrer les possibilités offertes par nos travaux en termes d'intégration multidisciplinaire lors de la conception collaborative
    corecore