Spelling suggestions: "subject:"[een] SEARCH-BASED SOFTWARE ENGINEERING"" "subject:"[enn] SEARCH-BASED SOFTWARE ENGINEERING""
11 |
Transformation by exampleKessentini, Marouane 02 1900 (has links)
La transformation de modèles consiste à transformer un modèle source en un modèle cible conformément à des méta-modèles source et cible. Nous distinguons deux types de transformations. La première est exogène où les méta-modèles source et cible représentent des formalismes différents et où tous les éléments du modèle source sont transformés. Quand elle concerne un même formalisme, la transformation est endogène. Ce type de transformation nécessite généralement deux étapes : l’identification des éléments du modèle source à transformer, puis la transformation de ces éléments. Dans le cadre de cette thèse, nous proposons trois principales contributions liées à ces problèmes de transformation. La première contribution est l’automatisation des transformations des modèles. Nous proposons de considérer le problème de transformation comme un problème d'optimisation combinatoire où un modèle cible peut être automatiquement généré à partir d'un nombre réduit d'exemples de transformations. Cette première contribution peut être appliquée aux transformations exogènes ou endogènes (après la détection des éléments à transformer). La deuxième contribution est liée à la transformation endogène où les éléments à transformer du modèle source doivent être détectés. Nous proposons une approche pour la détection des défauts de conception comme étape préalable au refactoring. Cette approche est inspirée du principe de la détection des virus par le système immunitaire humain, appelée sélection négative. L’idée consiste à utiliser de bonnes pratiques d’implémentation pour détecter les parties du code à risque. La troisième contribution vise à tester un mécanisme de transformation en utilisant une fonction oracle pour détecter les erreurs. Nous avons adapté le mécanisme de sélection négative qui consiste à considérer comme une erreur toute déviation entre les traces de transformation à évaluer et une base d’exemples contenant des traces de transformation de bonne qualité. La fonction oracle calcule cette dissimilarité et les erreurs sont ordonnées selon ce score. Les différentes contributions ont été évaluées sur d’importants projets et les résultats obtenus montrent leurs efficacités. / Model transformations take as input a source model and generate as output a target model. The source and target models conform to given meta-models. We distinguish between two transformation categories. Exogenous transformations are transformations between models expressed using different languages, and the whole source model is transformed. Endogenous transformations are transformations between models expressed in the same language. For endogenous transformations, two steps are needed: identifying the source model elements to transform and then applying the transformation on them. In this thesis, we propose three principal contributions. The first contribution aims to automate model transformations. The process is seen as an optimization problem where different transformation possibilities are evaluated and, for each possibility, a quality is associated depending on its conformity with a reference set of examples. This first contribution can be applied to exogenous as well as endogenous transformation (after determining the source model elements to transform). The second contribution is related precisely to the detection of elements concerned with endogenous transformations. In this context, we present a new technique for design defect detection. The detection is based on the notion that the more a code deviates from good practice, the more likely it is bad. Taking inspiration from artificial immune systems, we generate a set of detectors that characterize the ways in which a code can diverge from good practices. We then use these detectors to determine how far the code in the assessed systems deviates from normality. The third contribution concerns transformation mechanism testing. The proposed oracle function compares target test cases with a base of examples containing good quality transformation traces, and assigns a risk level based on the dissimilarity between the two. The traces help the tester understand the origin of an error. The three contributions are evaluated with real software projects and the obtained results confirm their efficiencies.
|
12 |
Uma Abordagem para Recomendação de Módulos para Projetos de Desenvolvimento Distribuído de Linhas de Produto de SoftwarePereira, Thaís Alves Burity 28 February 2011 (has links)
Made available in DSpace on 2015-05-14T12:36:28Z (GMT). No. of bitstreams: 1
arquivototal.pdf: 2198784 bytes, checksum: 572b347cf59107b757a2f48f47d938a2 (MD5)
Previous issue date: 2011-02-28 / Coordenação de Aperfeiçoamento de Pessoal de Nível Superior / Software Product Line (SPL) has been adopted by software industry in recent years, mainly
by promoting software reuse in a systematic and predictable way, and supporting product
development for global markets. Despite the benefits, SPL requires a high initial effort and
the involvement of domain experts, which are not always available in a local team. In such a
scenario, Global Software Development (GSD) approaches would be applied to find domain
experts and more qualified teams for SPL projects. Moreover, such work strategy reinforces
some of the benefits already offered by SPL approach, such as reducing development cost and
increasing product quality. Nonetheless, GSD approaches also present some obstacles, which
are mainly related to communication between dispersed development teams. Assuming that
dependencies between software components greatly influence the need for communication
between their respective development teams, in this work it is presented an approach to
identify candidates for modules to be developed in a (partially) independent manner by
geographically dispersed teams, in which a module is a clustering of components. To do so,
the approach defines: quantitative measures that describe the dependence between software
components in SPL projects; an algorithm based on metaheuristics for clustering components
into modules, dealing with clustering as an optimization problem; and a quantitative measure
that describe the dependencies between modules, which must be employed to guide the
allocation of the development teams to the modules. / Linhas de Produto de Software (LPS) tem ganhado bastante espaço na indústria de software
nos últimos anos, principalmente por promover o reuso de maneira sistemática e previsível, e
oferecer apoio ao desenvolvimento de produtos para mercados globais. No entanto, o
desenvolvimento de LPS exige das organizações grande investimento inicial e a participação
de profissionais qualificados, os quais nem sempre estão disponíveis localmente. Nesse
cenário, o Desenvolvimento Distribuído de Software (DDS) pode ser empregado para
encontrar especialistas do domínio e equipes mais qualificadas para o desenvolvimento de
LPS. Além disso, essa forma de trabalho reforça alguns dos benefícios já oferecidos por LPS,
tais como redução de custo de desenvolvimento e aumento da qualidade dos produtos. Apesar
disso, abordagens de DDS também têm suas limitações, relacionadas principalmente à
comunicação entre as equipes participantes de um mesmo projeto. Partindo da premissa de
que dependências entre componentes de software exercem grande influência sobre a
necessidade de comunicação entre suas respectivas equipes de desenvolvimento, neste
trabalho é apresentada uma abordagem para identificar candidatos à módulos para serem
desenvolvidos de forma (parcialmente) independente por equipes geograficamente dispersas,
sendo um módulo um agrupamento de componentes. Para tanto, a abordagem define: medidas
quantitativas que descrevem a dependência entre componentes de software em projetos de
LPS; um algoritmo baseado em metaheurísticas para agrupar componentes em módulos,
tratando o agrupamento como um problema de otimização; e uma medida quantitativa que
descreve as dependências entre módulos, que deve ser empregada para guiar a alocação das
equipes de desenvolvimento aos módulos.
|
13 |
Investigando a refatoração automática de software baseada em algoritmos de otimização multiobjetivosSilva Júnior, Leonardo Bezerra 19 September 2014 (has links)
Refactoring is a process that aims to change the code without changing the visible behavior and is used to correct structural problems in software, arising from unplanned maintenance or an unstructured development process. The mechanisms behind the refactoring process, however, are relatively complex and dangerous if done manually (for each refactoring is necessary to evaluate a number of pre and post-conditions to ensure that the behavior is not changed). Many current development tools facilitate the refactorings usage, but in a semiautomatic way, so that the programmer must detect the need for a specific refactoring. New techniques have emerged in an effort to approximate the software engineering to other engineerings with respect to process automation. In this context, the application of search algorithms arises as a means to provide support to software maintenance by automatically applying refactorings. This work fits in this context, Search-Based Software Refactoring, and investigates in detail the topic, including the proposition of a specific algorithm for the area, entitled MultiObjective Particle Swarm Optimization with Path Relinking (MOPSOPR). An open source framework which enables the search and automatic application of refactoring sequences has also been proposed. This framework allows exploration of the problem of automatic refactoring through various optimization algorithms. In particular, in this msc dissertation, the framework is used to enable comparative analysis of the proposed algorithm with the most used algorithm in the literature of this subject, the Non-Dominated Sorting Genetic Algorithm-II (NSGA-II). Several experiments were conducted, which included real-world softwares. Despite showing some positive results, the overall assessment does not indicate a unanimous superiority of the proposed algorithm compared to the NSGA-II in several experiments. However, the study revealed interesting research frontiers to be explored in future work. / Refatoração é um processo que objetiva a mudança de código sem a mudança de comportamento visível e é utilizada para corrigir problemas estruturais no software, advindos de manutenções sem planejamento ou de um processo de desenvolvimento desestruturado. Os mecanismos por trás do processo de refatoração, entretanto, são relativamente complexos e perigosos se feitos manualmente (para cada refatoração é preciso avaliar uma série de pré e pós-condições para garantir que o comportamento não seja alterado). Muitas ferramentas de desenvolvimento atuais facilitam as refatorações, mas de forma semiautomatizada, de maneira que o programador deve perceber a necessidade de uma refatoração específica. Novas técnicas tem surgido em um esforço para aproximar a engenharia de software das outras engenharias no que diz respeito à automatização de processos. Neste contexto, a aplicação de algoritmos de busca surge como uma proposta para prover suporte à manutenção de software através da aplicação automática de refatorações. Este trabalho se insere neste contexto, o de Refatoração de Software Baseada em Buscas (do inglês Search-Based Software Refactoring), e investiga detalhadamente o tema, propondo inclusive um algoritmo específico para a área, intitulado MultiObjective Particle Swarm Optimization with Path Relinking (MOPSOPR). Um framework open-source que possibilita a busca e aplicação automática de sequências de refatorações foi também proposto. Este framework permite a exploração do problema de refatoração automática através de vários algoritmos de otimização. Em particular, neste trabalho o framework foi utilizado para viabilizar análises comparativas do algoritmo proposto com o algoritmo mais utilizado na literatura deste tema, o Non-Dominated Sorting Genetic Algorithm- II (NSGA-II). Vários experimentos foram conduzidos, inclusive considerando-se softwares reais. Apesar de apresentar alguns resultados positivos, a avaliação geral não indica uma superioridade unânime do algoritmo proposto em relação ao NSGA-II nos diversos experimentos realizados. Entretanto, o estudo realizado revelou interessantes fronteiras de investigação a serem exploradas em trabalhos futuros.
|
14 |
From examples to knowledge in model-driven engineering : a holistic and pragmatic approachBatot, Edouard 11 1900 (has links)
No description available.
|
15 |
Automatically correcting syntactic and semantic errors in ATL transformations using multi-objective optimizationVaraminyBahnemiry, Zahra 12 1900 (has links)
L’ingénierie dirigée par les modèles (EDM) est un paradigme de développement logiciel
qui promeut l’utilisation de modèles en tant qu’artefacts de première plan et de processus
automatisés pour en dériver d’autres artefacts tels que le code, la documentation et les cas de
test. La transformation de modèle est un élément important de l’EDM puisqu’elle permet de
manipuler les représentations abstraites que sont les modèles. Les transformations de modèles,
comme d’autres programmes, sont sujettes à la fois à des erreurs syntaxiques et sémantiques.
La correction de ces erreurs est difficile et chronophage, car les transformations dépendent
du langage de transformation comme ATL et des langages de modélisation dans lesquels
sont exprimés les modèles en entrée et en sortie. Les travaux existants sur la réparation
des transformations ciblent les erreurs syntaxiques ou sémantiques, une erreur à la fois, et
définissent manuellement des patrons de correctifs. L’objectif principal de notre recherche
est de proposer un cadre générique pour corriger automatiquement de multiples erreurs
syntaxiques et sémantiques. Afin d’atteindre cet objectif, nous reformulons la réparation des
transformations de modèles comme un problème d’optimisation multiobjectif et le résolvons au
moyen d’algorithmes évolutionnaires. Pour adapter le cadre aux deux catégories d’erreurs, nous
utilisons différents types d’objectifs et des stratégies sophistiquées pour guider l’exploration
de l’espace des solutions. / Model-driven engineering (MDE) is a software development paradigm that promotes the
use of models as first-class artifacts and automated processes to derive other artefacts from
them such as code, documentation and test cases. Model transformation is an important
element of MDE since it allows to manipulate the abstract representations that are models.
Model transformations, as other programs are subjects to both syntactic and semantic errors.
Fixing those errors is difficult and time consuming as the transformations depend on the
transformation language such as ATL, and modeling languages in which input and output
models are expressed. Existing work on transformation repair targets either syntactic or
semantic errors, one error at a time, and define patch templates manually. The main goal of
our research is to propose a generic framework to fix multiple syntactic and semantic errors
automatically. In order to achieve this goal, we reformulate the repair of model transformations
as a multi-objective optimization problem and solve it by means of evolutionary algorithms.
To adapt the framework to the two categories of errors, we use different types of objectives
and sophisticated strategies to guide the search.
|
16 |
Towards Search-based Game Software EngineeringBlasco Latorre, Daniel 20 April 2024 (has links)
Tesis por compendio / [ES] Los videojuegos son proyectos multidisciplinares que implican, en buena medida, el desarrollo de software. Esta tesis trata la faceta del desarrollo de videojuegos relativa al software mediante la Ingeniería del Software basada en Búsqueda (SBSE, Search-based Software Engineering). El objetivo específico de este trabajo es valerse de las características de los videojuegos en pro de una Ingeniería del Software de Videojuegos basada en Búsqueda (SBGSE, Search-based Game Software Engineering), incluyendo el uso de simulaciones de videojuegos para guiar búsquedas, codificación de granularidad fina y operaciones genéticas de mejora.
Las aproximaciones propuestas superan a las de referencia en mantenimiento (trazabilidad de requisitos) y creación de contenido (generación de NPCs). El mantenimiento y la creación de contenido son, a menudo, tareas esenciales para garantizar la retención de usuarios por medio de actualizaciones o expansiones. Además, esta investigación aborda la necesidad de estudios de caso industriales.
Esta tesis presenta un compendio que incluye tres artículos realizados durante el proceso de investigación y publicados en revistas académicas, con resultados que muestran que las aproximaciones de la Ingeniería del Software de Videojuegos basada en Búsqueda (SBGSE, Search-based Game Software Engineering) pueden mejorar la calidad de las soluciones generadas, así como reducir el tiempo necesario para producirlas. / [CA] Els videojocs són projectes multidisciplinaris que impliquen, en bona part, el desenvolupament de software. Aquesta tesi tracta la faceta del desenvolupament de videojocs relativa al software mitjançant l'Enginyeria del Software basada en Cerca (SBSE, Search-based Software Engineering). L'objectiu específic d'aquest treball és valdre's de les característiques dels videojocs en pro d'una Enginyeria del Software de Videojocs basada en Cerca (SBGSE, Search-based Game Software Engineering), incloent-hi l'ús de simulacions de videojocs per a guiar cerques, codificació de granularitat fina i operacions genètiques de millora.
Les aproximacions proposades superen a les de referència en manteniment (traçabilitat de requisits) i creació de contingut (generació de NPCs). El manteniment i la creació de contingut són, sovint, tasques essencials per a garantir la retenció d'usuaris per mitjà d'actualitzacions o expansions. A més, aquesta investigació aborda la necessitat d'estudis de cas industrials.
Aquesta tesi presenta un compendi que inclou tres articles realitzats durant el procés d'investigació i publicats en revistes acadèmiques, amb resultats que mostren que les aproximacions de l'Enginyeria del Software de Videojocs basada en Cerca (SBGSE, Search-based Game Software Engineering) poden millorar la qualitat de les solucions generades, així com reduir el temps necessari per a produir-les. / [EN] Video games are multidisciplinary projects which involve software development to a significant extent. This thesis tackles the software aspect of video game development through Search-based Engineering. Specifically, the objective of this work is to leverage the characteristics of video games towards Search-based Game Software Engineering, including the use of video game simulations to guide the search, a fine-grained encoding, and improvement genetic operations.
The approaches proposed outperform the baselines in maintenance (requirement traceability) and content creation (NPC generation) tasks. Maintenance and content creation are often essential tasks to ensure player retention by means of updates or expansions. In addition, this research addresses the need for industrial case studies.
This thesis presents a compendium that includes three papers produced through the research and published in academic journals, with results that show that Search-based Game Software Engineering approaches can provide improved solutions, in terms of quality and time cost. / This work has been partially supported by the Ministry of Economy and Competitiveness (MINECO) through the Spanish National R+D+i Plan and ERDF funds under the Project ALPS (RTI2018-096411-B-I00). / Blasco Latorre, D. (2024). Towards Search-based Game Software Engineering [Tesis doctoral]. Universitat Politècnica de València. https://doi.org/10.4995/Thesis/10251/203655 / Compendio
|
17 |
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.
|
18 |
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.
|
19 |
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.
|
20 |
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.0344 seconds