216 research outputs found

    Model transformations in Converge

    Get PDF
    Model transformations are currently the focus of much interest and research due to the OMG’s QVT initiative. Current proposals for model transformation languages can be divided into two main camps: those taking a ‘declarative’ approach, and those opting for an ‘imperative’ approach. In this paper we detail an imperative, meta-circular, object orientated, pattern matching programming language Converge which is enriched with features pioneered by the Icon programming language, amongst them: success/failure, generators and goal-directed evaluation. By presenting these features in a language suitable for representing models, we show that we are able to gain some of the advantages of declarative approaches in an imperative setting

    Model transformations in converge.

    Get PDF
    Model transformations are currently the focus of much interest and research due to the OMG’s QVT initiative. Current proposals for model transformation languages can be divided into two main camps: those taking a ‘declarative’ approach, and those opting for an ‘imperative’ approach. In this paper we detail an imperative, meta-circular, object orientated, pattern matching programming language Converge which is enriched with features pioneered by the Icon programming language, amongst them: success/failure, generators and goal-directed evaluation. By presenting these features in a language suitable for representing models, we show that we are able to gain some of the advantages of declarative approaches in an imperative setting

    A model for tracing variability from features to product-line architectures: a case study in smart grids

    Get PDF
    In current software systems with highly volatile requirements, traceability plays a key role to maintain the consistency between requirements and code. Traceability between artifacts involved in the development of Software Product Lines (SPL) is still more critical because it is necessary to guarantee that the selection of variants that realize the different SPL products meet the requirements. Current SPL traceability mechanisms trace from variability in features to variations in the configuration of product-line architecture (PLA) in terms of adding and removing components. However, it is not always possible to materialize the variable features of a SPL through adding or removing components, since sometimes they are materialized inside components, i.e. in part of their functionality: a class, a service and/or an interface. Additionally, variations that happen inside components may crosscut several components of architecture. These kinds of variations are still challenging and their traceability is not currently well-supported. Therefore, it is not possible to guarantee that those SPL products with these kinds of variations meet the requirements. This paper presents a solution for tracing variability from features to PLA by taking these kinds of variations into account. This solution is based on models and traceability between models in order to automate SPL configuration by selecting the variants and realizing the product application. The FPLA modeling framework supports this solution which has been deployed in a software factory. Validation has consisted in putting the solution into practice to develop a product line of power metering management applications for Smart Grids

    A Declarative Language for Preserving Consistency of Multiple Models

    Get PDF
    Der Einsatz mehrerer Modelle zur Beschreibung eines Softwaresystems birgt oftmals die Herausforderung, diese konsistent zu halten. WĂ€hrend es viel Forschung zur Konsistenzhaltung zweier Modelle gibt, untersuchen nur wenige Arbeiten die Spezifika der Konsistenzhaltung mehrerer Modelle. In dieser Bachelorarbeit wird eine neue Programmiersprache vorgestellt, die es erlaubt, Transformationen zu erstellen, die mehr als zwei Modelle konsistent halten. Die Sprache verwendet ein Zwischen-Metamodell, sodass alle Transformationen zuerst von einem existierenden Modell in das Zwischenmodell und dann erst in die anderen Modelle ausgefĂŒhrt werden. ZunĂ€chst betrachten wir verschiedene Möglichkeiten, wie Modelle mit ausschließlich binĂ€ren Transformationen konsistent gehalten werden können. Im Weiteren demonstrieren wir Vorteile davon, ein Zwischen-Metamodell in den Konsistenzhaltungsprozess einzufĂŒhren. Im nĂ€chsten Schritt prĂ€sentieren wir die Gemeinsamkeiten-Sprache als eine Möglichkeit der Konsistenzhaltung mittels Zwischen-Metamodellen. Sie ermöglicht Entwicklern, Metaklassen des Zwischen-Metamodells gemeinsam mit deren Attributen und Referenzen zu deklarieren. Die Abbildungen vom Zwischenmodell in die Modelle, die konsistent gehalten werden sollen, und zurĂŒck, können direkt in den Zwischen-Metaklassen, -Attributen und -Referenzen festgelegt werden. Um Logik nicht zu duplizieren, können bidirektionale AusdrĂŒcke fĂŒr die Abbildungen verwendet werden. Die Sprache ist deklarativ und soll auf diese Weise eine hohe Nachvollziehbarkeit der Transformationen ermöglichen. Wir haben ein prototypische Implementierung der Sprache fĂŒr Vitruvius erstellt, die in Eclipse fĂŒr EMF-Modelle verwendet werden kann. Die Implementierung kann als Machbarkeitsnachweis gesehen werden, eignet sich allerdings noch nicht fĂŒr den Praxiseinsatz. Die Idee, Zwischen-Metamodelle fĂŒr die skalierbare und modulare Konsistenzhaltung mehrerer Modelle einzusetzen, wurde in anderen Arbeiten in realistische Szenarien bereits erfolgreich umgesetzt. Soweit uns bekannt ist, existiert noch kein Ansatz, der es erlaubt, ein Zwischen-Metamodell und die Transformationen fĂŒr dieses in der selben Sprache zu definieren

    Code generation through model transformation

    Get PDF

    Model transformations in converge.

    Get PDF
    Model transformations are currently the focus of much interest and research due to the OMG’s QVT initiative. Current proposals for model transformation languages can be divided into two main camps: those taking a ‘declarative’ approach, and those opting for an ‘imperative’ approach. In this paper we detail an imperative, meta-circular, object orientated, pattern matching programming language Converge which is enriched with features pioneered by the Icon programming language, amongst them: success/failure, generators and goal-directed evaluation. By presenting these features in a language suitable for representing models, we show that we are able to gain some of the advantages of declarative approaches in an imperative setting

    Towards using intelligent techniques to assist software specialists in their tasks

    Full text link
    L’automatisation et l’intelligence constituent des prĂ©occupations majeures dans le domaine de l’Informatique. Avec l’évolution accrue de l’Intelligence Artificielle, les chercheurs et l’industrie se sont orientĂ©s vers l’utilisation des modĂšles d’apprentissage automatique et d’apprentissage profond pour optimiser les tĂąches, automatiser les pipelines et construire des systĂšmes intelligents. Les grandes capacitĂ©s de l’Intelligence Artificielle ont rendu possible d’imiter et mĂȘme surpasser l’intelligence humaine dans certains cas aussi bien que d’automatiser les tĂąches manuelles tout en augmentant la prĂ©cision, la qualitĂ© et l’efficacitĂ©. En fait, l’accomplissement de tĂąches informatiques nĂ©cessite des connaissances, une expertise et des compĂ©tences bien spĂ©cifiques au domaine. GrĂące aux puissantes capacitĂ©s de l’intelligence artificielle, nous pouvons dĂ©duire ces connaissances en utilisant des techniques d’apprentissage automatique et profond appliquĂ©es Ă  des donnĂ©es historiques reprĂ©sentant des expĂ©riences antĂ©rieures. Ceci permettra, Ă©ventuellement, d’allĂ©ger le fardeau des spĂ©cialistes logiciel et de dĂ©brider toute la puissance de l’intelligence humaine. Par consĂ©quent, libĂ©rer les spĂ©cialistes de la corvĂ©e et des tĂąches ordinaires leurs permettra, certainement, de consacrer plus du temps Ă  des activitĂ©s plus prĂ©cieuses. En particulier, l’IngĂ©nierie dirigĂ©e par les modĂšles est un sous-domaine de l’informatique qui vise Ă  Ă©lever le niveau d’abstraction des langages, d’automatiser la production des applications et de se concentrer davantage sur les spĂ©cificitĂ©s du domaine. Ceci permet de dĂ©placer l’effort mis sur l’implĂ©mentation vers un niveau plus Ă©levĂ© axĂ© sur la conception, la prise de dĂ©cision. Ainsi, ceci permet d’augmenter la qualitĂ©, l’efficacitĂ© et productivitĂ© de la crĂ©ation des applications. La conception des mĂ©tamodĂšles est une tĂąche primordiale dans l’ingĂ©nierie dirigĂ©e par les modĂšles. Par consĂ©quent, il est important de maintenir une bonne qualitĂ© des mĂ©tamodĂšles Ă©tant donnĂ© qu’ils constituent un artĂ©fact primaire et fondamental. Les mauvais choix de conception, ainsi que les changements conceptuels rĂ©pĂ©titifs dus Ă  l’évolution permanente des exigences, pourraient dĂ©grader la qualitĂ© du mĂ©tamodĂšle. En effet, l’accumulation de mauvais choix de conception et la dĂ©gradation de la qualitĂ© pourraient entraĂźner des rĂ©sultats nĂ©gatifs sur le long terme. Ainsi, la restructuration des mĂ©tamodĂšles est une tĂąche importante qui vise Ă  amĂ©liorer et Ă  maintenir une bonne qualitĂ© des mĂ©tamodĂšles en termes de maintenabilitĂ©, rĂ©utilisabilitĂ© et extensibilitĂ©, etc. De plus, la tĂąche de restructuration des mĂ©tamodĂšles est dĂ©licate et compliquĂ©e, notamment, lorsqu’il s’agit de grands modĂšles. De lĂ , automatiser ou encore assister les architectes dans cette tĂąche est trĂšs bĂ©nĂ©fique et avantageux. Par consĂ©quent, les architectes de mĂ©tamodĂšles pourraient se concentrer sur des tĂąches plus prĂ©cieuses qui nĂ©cessitent de la crĂ©ativitĂ©, de l’intuition et de l’intelligence humaine. Dans ce mĂ©moire, nous proposons une cartographie des tĂąches qui pourraient ĂȘtre automatisĂ©es ou bien amĂ©liorĂ©es moyennant des techniques d’intelligence artificielle. Ensuite, nous sĂ©lectionnons la tĂąche de mĂ©tamodĂ©lisation et nous essayons d’automatiser le processus de refactoring des mĂ©tamodĂšles. A cet Ă©gard, nous proposons deux approches diffĂ©rentes: une premiĂšre approche qui consiste Ă  utiliser un algorithme gĂ©nĂ©tique pour optimiser des critĂšres de qualitĂ© et recommander des solutions de refactoring, et une seconde approche qui consiste Ă  dĂ©finir une spĂ©cification d’un mĂ©tamodĂšle en entrĂ©e, encoder les attributs de qualitĂ© et l’absence des design smells comme un ensemble de contraintes et les satisfaire en utilisant Alloy.Automation and intelligence constitute a major preoccupation in the field of software engineering. With the great evolution of Artificial Intelligence, researchers and industry were steered to the use of Machine Learning and Deep Learning models to optimize tasks, automate pipelines, and build intelligent systems. The big capabilities of Artificial Intelligence make it possible to imitate and even outperform human intelligence in some cases as well as to automate manual tasks while rising accuracy, quality, and efficiency. In fact, accomplishing software-related tasks requires specific knowledge and skills. Thanks to the powerful capabilities of Artificial Intelligence, we could infer that expertise from historical experience using machine learning techniques. This would alleviate the burden on software specialists and allow them to focus on valuable tasks. In particular, Model-Driven Engineering is an evolving field that aims to raise the abstraction level of languages and to focus more on domain specificities. This allows shifting the effort put on the implementation and low-level programming to a higher point of view focused on design, architecture, and decision making. Thereby, this will increase the efficiency and productivity of creating applications. For its part, the design of metamodels is a substantial task in Model-Driven Engineering. Accordingly, it is important to maintain a high-level quality of metamodels because they constitute a primary and fundamental artifact. However, the bad design choices as well as the repetitive design modifications, due to the evolution of requirements, could deteriorate the quality of the metamodel. The accumulation of bad design choices and quality degradation could imply negative outcomes in the long term. Thus, refactoring metamodels is a very important task. It aims to improve and maintain good quality characteristics of metamodels such as maintainability, reusability, extendibility, etc. Moreover, the refactoring task of metamodels is complex, especially, when dealing with large designs. Therefore, automating and assisting architects in this task is advantageous since they could focus on more valuable tasks that require human intuition. In this thesis, we propose a cartography of the potential tasks that we could either automate or improve using Artificial Intelligence techniques. Then, we select the metamodeling task and we tackle the problem of metamodel refactoring. We suggest two different approaches: A first approach that consists of using a genetic algorithm to optimize set quality attributes and recommend candidate metamodel refactoring solutions. A second approach based on mathematical logic that consists of defining the specification of an input metamodel, encoding the quality attributes and the absence of smells as a set of constraints and finally satisfying these constraints using Alloy
    • 

    corecore