21 |
Improving automation in model-driven engineering using examplesFaunes Carvallo, Martin 06 1900 (has links)
Cette thèse a pour but d’améliorer l’automatisation dans l’ingénierie dirigée par les modèles (MDE pour Model Driven Engineering). MDE est un paradigme qui promet de réduire la complexité du logiciel par l’utilisation intensive de modèles et des transformations automatiques entre modèles (TM). D’une façon simplifiée, dans la vision du MDE, les spécialistes utilisent plusieurs modèles pour représenter un logiciel, et ils produisent le code source en transformant automatiquement ces modèles. Conséquemment, l’automatisation est un facteur clé et un principe fondateur de MDE. En plus des TM, d’autres activités ont besoin d’automatisation, e.g. la définition des langages de modélisation et la migration de logiciels.
Dans ce contexte, la contribution principale de cette thèse est de proposer une approche générale pour améliorer l’automatisation du MDE. Notre approche est basée sur la recherche méta-heuristique guidée par les exemples.
Nous appliquons cette approche sur deux problèmes importants de MDE, (1) la transformation des modèles et (2) la définition précise de langages de modélisation. Pour le premier problème, nous distinguons entre la transformation dans le contexte de la migration et les transformations générales entre modèles. Dans le cas de la migration, nous proposons une méthode de regroupement logiciel (Software Clustering) basée sur une méta-heuristique guidée par des exemples de regroupement. De la même façon, pour les transformations générales, nous apprenons des transformations entre modèles en utilisant un algorithme de programmation génétique qui s’inspire des exemples des transformations passées. Pour la définition précise de langages de modélisation, nous proposons une méthode basée sur une recherche méta-heuristique, qui dérive des règles de bonne formation pour les méta-modèles, avec l’objectif de bien discriminer entre modèles valides et invalides.
Les études empiriques que nous avons menées, montrent que les approches proposées obtiennent des bons résultats tant quantitatifs que qualitatifs. Ceux-ci nous permettent de conclure que l’amélioration de l’automatisation du MDE en utilisant des méthodes de recherche méta-heuristique et des exemples peut contribuer à l’adoption plus large de MDE dans l’industrie à là venir. / This thesis aims to improve automation in Model Driven Engineering (MDE). MDE is a paradigm that promises to reduce software complexity by the mean of the intensive use of models and automatic model transformation (MT). Roughly speaking, in MDE vision, stakeholders use several models to represent the software, and produce source code by automatically transforming these models. Consequently, automation is a key factor and founding principle of MDE. In addition to MT, other MDE activities require automation, e.g. modeling language definition and software migration.
In this context, the main contribution of this thesis is proposing a general approach for improving automation in MDE. Our approach is based on meta-heuristic search guided by examples. We apply our approach to two important MDE problems, (1) model transformation and (2) precise modeling languages. For transformations, we distinguish between transformations in the context of migration and general model transformations.
In the case of migration, we propose a software clustering method based on a search algorithm guided by cluster examples. Similarly, for general transformations, we learn model transformations by a genetic programming algorithm taking inspiration from examples of past transformations.
For the problem of precise metamodeling, we propose a meta-heuristic search method to derive well-formedness rules for metamodels with the objective of discriminating examples of valid and invalid models.
Our empirical evaluation shows that the proposed approaches exhibit good results. These allow us to conclude that improving automation in MDE using meta-heuristic search and examples can contribute to a wider adoption of MDE in industry in the coming years.
|
22 |
Improving automation in model-driven engineering using examplesFaunes Carvallo, Martin 06 1900 (has links)
Cette thèse a pour but d’améliorer l’automatisation dans l’ingénierie dirigée par les modèles (MDE pour Model Driven Engineering). MDE est un paradigme qui promet de réduire la complexité du logiciel par l’utilisation intensive de modèles et des transformations automatiques entre modèles (TM). D’une façon simplifiée, dans la vision du MDE, les spécialistes utilisent plusieurs modèles pour représenter un logiciel, et ils produisent le code source en transformant automatiquement ces modèles. Conséquemment, l’automatisation est un facteur clé et un principe fondateur de MDE. En plus des TM, d’autres activités ont besoin d’automatisation, e.g. la définition des langages de modélisation et la migration de logiciels.
Dans ce contexte, la contribution principale de cette thèse est de proposer une approche générale pour améliorer l’automatisation du MDE. Notre approche est basée sur la recherche méta-heuristique guidée par les exemples.
Nous appliquons cette approche sur deux problèmes importants de MDE, (1) la transformation des modèles et (2) la définition précise de langages de modélisation. Pour le premier problème, nous distinguons entre la transformation dans le contexte de la migration et les transformations générales entre modèles. Dans le cas de la migration, nous proposons une méthode de regroupement logiciel (Software Clustering) basée sur une méta-heuristique guidée par des exemples de regroupement. De la même façon, pour les transformations générales, nous apprenons des transformations entre modèles en utilisant un algorithme de programmation génétique qui s’inspire des exemples des transformations passées. Pour la définition précise de langages de modélisation, nous proposons une méthode basée sur une recherche méta-heuristique, qui dérive des règles de bonne formation pour les méta-modèles, avec l’objectif de bien discriminer entre modèles valides et invalides.
Les études empiriques que nous avons menées, montrent que les approches proposées obtiennent des bons résultats tant quantitatifs que qualitatifs. Ceux-ci nous permettent de conclure que l’amélioration de l’automatisation du MDE en utilisant des méthodes de recherche méta-heuristique et des exemples peut contribuer à l’adoption plus large de MDE dans l’industrie à là venir. / This thesis aims to improve automation in Model Driven Engineering (MDE). MDE is a paradigm that promises to reduce software complexity by the mean of the intensive use of models and automatic model transformation (MT). Roughly speaking, in MDE vision, stakeholders use several models to represent the software, and produce source code by automatically transforming these models. Consequently, automation is a key factor and founding principle of MDE. In addition to MT, other MDE activities require automation, e.g. modeling language definition and software migration.
In this context, the main contribution of this thesis is proposing a general approach for improving automation in MDE. Our approach is based on meta-heuristic search guided by examples. We apply our approach to two important MDE problems, (1) model transformation and (2) precise modeling languages. For transformations, we distinguish between transformations in the context of migration and general model transformations.
In the case of migration, we propose a software clustering method based on a search algorithm guided by cluster examples. Similarly, for general transformations, we learn model transformations by a genetic programming algorithm taking inspiration from examples of past transformations.
For the problem of precise metamodeling, we propose a meta-heuristic search method to derive well-formedness rules for metamodels with the objective of discriminating examples of valid and invalid models.
Our empirical evaluation shows that the proposed approaches exhibit good results. These allow us to conclude that improving automation in MDE using meta-heuristic search and examples can contribute to a wider adoption of MDE in industry in the coming years.
|
23 |
Une approche heuristique pour l’apprentissage de transformations de modèles complexes à partir d’exemplesBaki, Islem 12 1900 (has links)
L’ingénierie dirigée par les modèles (IDM) est un paradigme d’ingénierie du logiciel
bien établi, qui préconise l’utilisation de modèles comme artéfacts de premier ordre
dans les activités de développement et de maintenance du logiciel. La manipulation de
plusieurs modèles durant le cycle de vie du logiciel motive l’usage de transformations
de modèles (TM) afin d’automatiser les opérations de génération et de mise à jour des
modèles lorsque cela est possible.
L’écriture de transformations de modèles demeure cependant une tâche ardue, qui
requiert à la fois beaucoup de connaissances et d’efforts, remettant ainsi en question les
avantages apportés par l’IDM. Afin de faire face à cette problématique, de nombreux
travaux de recherche se sont intéressés à l’automatisation des TM. L’apprentissage de
transformations de modèles par l’exemple (TMPE) constitue, à cet égard, une approche
prometteuse. La TMPE a pour objectif d’apprendre des programmes de transformation
de modèles à partir d’un ensemble de paires de modèles sources et cibles fournis en guise
d’exemples.
Dans ce travail, nous proposons un processus d’apprentissage de transformations
de modèles par l’exemple. Ce dernier vise à apprendre des transformations de modèles
complexes en s’attaquant à trois exigences constatées, à savoir, l’exploration du contexte
dans le modèle source, la vérification de valeurs d’attributs sources et la dérivation d’attributs
cibles complexes. Nous validons notre approche de manière expérimentale sur 7
cas de transformations de modèles. Trois des sept transformations apprises permettent
d’obtenir des modèles cibles parfaits. De plus, une précision et un rappel supérieurs à
90% sont enregistrés au niveau des modèles cibles obtenus par les quatre transformations
restantes. / Model-driven engineering (MDE) is a well-established software engineering paradigm
that promotes models as main artifacts in software development and maintenance activities.
As several models may be manipulated during the software life-cycle, model transformations
(MT) ensure their coherence by automating model generation and update
tasks when possible.
However, writing model transformations remains a difficult task that requires much
knowledge and effort that detract from the benefits brought by the MDE paradigm. To
address this issue, much research effort has been directed toward MT automation. Model
Transformation by Example (MTBE) is, in this regard, a promising approach. MTBE
aims to learn transformation programs starting from a set of source and target model
pairs supplied as examples.
In this work, we propose a process to learn model transformations from examples.
Our process aims to learn complex MT by tackling three observed requirements, namely,
context exploration of the source model, source attribute value testing, and complex target
attribute derivation. We experimentally evaluate our approach on seven model transformation
problems. The learned transformation programs are able to produce perfect
target models in three transformation cases, whereas, precision and recall higher than
90% are recorded for the four remaining ones.
|
24 |
Geração evolucionária de heurísticas para localização de defeitos de software / Evolutionary generation of heuristics for software fault localizationFreitas, Diogo Machado de 24 September 2018 (has links)
Submitted by Franciele Moreira (francielemoreyra@gmail.com) on 2018-10-30T13:30:59Z
No. of bitstreams: 2
Dissertação - Diogo Machado de Freitas - 2018.pdf: 1477764 bytes, checksum: 73759c5ece96bf48ffd4d698f14026b9 (MD5)
license_rdf: 0 bytes, checksum: d41d8cd98f00b204e9800998ecf8427e (MD5) / Approved for entry into archive by Luciana Ferreira (lucgeral@gmail.com) on 2018-10-30T13:41:38Z (GMT) No. of bitstreams: 2
Dissertação - Diogo Machado de Freitas - 2018.pdf: 1477764 bytes, checksum: 73759c5ece96bf48ffd4d698f14026b9 (MD5)
license_rdf: 0 bytes, checksum: d41d8cd98f00b204e9800998ecf8427e (MD5) / Made available in DSpace on 2018-10-30T13:41:38Z (GMT). No. of bitstreams: 2
Dissertação - Diogo Machado de Freitas - 2018.pdf: 1477764 bytes, checksum: 73759c5ece96bf48ffd4d698f14026b9 (MD5)
license_rdf: 0 bytes, checksum: d41d8cd98f00b204e9800998ecf8427e (MD5)
Previous issue date: 2018-09-24 / Coordenação de Aperfeiçoamento de Pessoal de Nível Superior - CAPES / Fault Localization is one stage of the software life cycle, which demands important resources
such as time and effort spent on a project. There are several initiatives towards the
automation of the fault localization process and the reduction of the associated resources.
Many techniques are based on heuristics that use information obtained (spectrum) from the
execution of test cases, in order to measure the suspiciousness of each program element to
be defective. Spectrum data generally refers to code coverage and test results (positive or
negative). The present work presents two approaches based on the Genetic Programming
algorithm for the problem of Fault Localization: a method to compose a new heuristic from a
set of existing ones; and a method for constructing heuristics based on data from program
mutation analysis. The innovative aspects of both methods refer to the joint investigation of:
(i) specialization of heuristics for certain programs; (ii) application of an evolutionary
approach to the generation of heuristics with non-linear equations; (iii) creation of heuristics
based on the combination of traditional heuristics; (iv) use of coverage and mutation spectra
extracted from the test activity; (v) analyzing and comparing the efficacy of methods that use
coverage and mutation spectra for fault localization; and (vi) quality analysis of the mutation
spectra as a data source for fault localization. The results have pointed to the competitiveness
of both approaches in their contexts. / Localização de Defeitos é uma etapa do ciclo de vida de software, que demanda recursos
importantes tais como o tempo e o esforço gastos em um projeto. Existem diversas iniciativas
na direção da automação do processo de localização de defeitos e da redução dos recursos
associados. Muitas técnicas são baseadas heurísticas que utilizam informação obtida
(espectro) a partir da execução de casos de teste, visando a medir a suspeita de cada
elemento de programa para ser defeituoso. Os dados de espectro referem-se, em geral, à
cobertura de código e aos resultados dos teste (positivo ou negativo). O presente trabalho
apresenta duas abordagens baseadas no algoritmo Programação Genética para o problema de
Localização de Defeitos: um método para compor automaticamente novas heurísticas a partir
de um conjunto de heurísticas existentes; e um método para a construção de heurísticas
baseadas em dados oriundos da análise de mutação de programas. Os aspectos inovadores de
ambos os métodos referem-se à investigação conjunta de: (i) especialização de heurísticas
para determinados programas; (ii) aplicação de abordagem evolutiva para a geração de
heurísticas com equações não lineares; (iii) criação de heurísticas a partir da combinação de
heurísticas tradicionais; (iv) uso de espectro de cobertura e de mutação extraídos da
atividade de teste; (v) análise e comparação da eficácia de métodos que usam os espectros
de cobertura e de mutação para a localização de defeitos; e (vi) análise da qualidade dos
espectros de mutação como fonte de dados para a localização de defeitos. Os resultados
apontaram competitividade de ambas as abordagens em seus contextos.
|
Page generated in 0.0337 seconds