11 |
[en] IDENTIFICATION AND REFACTORING OF DESIGN PROBLEMS IN SOFTWARE SYSTEMS / [pt] IDENTIFICAÇÃO E REFATORAÇÃO DE PROBLEMAS DE PROJETO EM SISTEMAS DE SOFTWAREWILLIAN NALEPA OIZUMI 27 October 2022 (has links)
[pt] Sistemas impactados por Problemas de Projeto (PPs) podem se tornar
difíceis de manter e evoluir. A identificação de PPs pode ocorrer por
meio de múltiplos sintomas, tais como code smells. Após tal identificação,
pode-se remover os PPs por meio de refatorações. No entanto, decidir onde
e como refatorar é uma tarefa desafiadora. Assim, técnicas de recomendação
de refatoração têm sido propostas. Apesar disso, ainda há pouco consenso
sobre quais requisitos devem ser atendidos por elas. Nesta tese, estamos
propondo quatro requisitos empiricamente identificados que tais técnicas
devem seguir. Primeiro, cada PP geralmente está relacionado a vários tipos
de sintomas no código-fonte e eles devem ser considerados juntos para gerar
recomendações. Além disso, uma técnica de recomendação deve permitir a
seleção de contextos específicos para refatoração. Quarto, também deve-se
considerar as funcionalidades modificadas para criar recomendações úteis.
Finalmente, os desenvolvedores nem sempre conduzem as refatorações mais
eficazes na prática, muitas vezes inconscientemente, resultando na remoção
incompleta de PPs. Assim, eles precisam de assistência para remover
os PPs. Existem apenas técnicas que atendem parcialmente aos requisitos
mencionados. Sendo assim, nós propomos a técnica OrganicRef. OrganicRef
destina-se a ajudar os desenvolvedores na remoção de PPs em seus contextos
de interesse. OrganicRef encontra as funcionalidades dos elementos
de código usando um algoritmo de modelagem de tópicos. Em seguida, ele
coleta múltiplos tipos de sintomas que afetam os elementos do código. Para
recomendar refatorações, OrganicRef combina heurísticas baseadas em regras
e baseadas em funcionalidades. OrganicRef também aplica otimização
baseada em busca para derivar várias recomendações possíveis. Para avaliar
o OrganicRef, realizamos um estudo experimental com seis projetos de
software. Os resultados mostraram que as recomendações do OrganicRef
melhoram significativamente a qualidade dos elementos refatorados. / [en] Software projects impacted by Design Problems (DPs) may become difficult to maintain and evolve. The identification of DPs may occur through symptoms such as code smells. After such identification, developers can remove the DPs through refactorings. However, deciding where and how to refactor is a challenging task. Thus, several refactoring recommendation techniques have been proposed. Nevertheless, there is still little consensus on which requirements must be satisfied by them. In this thesis, we are proposing four empirically identified requirements that any DP removal technique should follow. First, each single DP is usually related with multiple types of symptoms in the source code and they should be considered altogether for generating recommendations. Second, a recommendation technique should
allow the selection of possible candidate contexts for refactoring. Fourth, the technique should consider the features of undergoing changes to create useful recommendations. Finally, developers do not always conduct the most effective refactorings in practice, quite often unconsciously, resulting in the incomplete removal of DPs. Thus, they need assistance to remove DPs. There are techniques partially fulfilling the aforementioned requirements, though none satisfactorily meets them all. Thus, we propose the
OrganicRef technique. OrganicRef is intended to help developers in removing DPs in their contexts of interest. OrganicRef finds the contexts by capturing the features affecting relevant code elements using a topic modeling algorithm. Then, it collects multiple symptom types affecting the code elements. To recommend effective refactorings, OrganicRef combines rulebased and feature-driven heuristics. It also uses search-based optimization to derive multiple possible recommendations. To evaluate OrganicRef, we
conducted an empirical study with six open source projects. Results showed that OrganicRef recommendations significantly improves the design of refactored elements.
|
12 |
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.
|
13 |
Metamodel co-evolution with related model-driven engineering artifacts : a multi-objective search frameworkKessentini, Wael 08 1900 (has links)
No description available.
|
14 |
A Framework for Autonomous Generation of Strategies in Satisfiability Modulo Theories / Un cadre pour la génération autonome de stratégies dans la satisfiabilité modulo des théoriesGalvez Ramirez, Nicolas 19 December 2018 (has links)
La génération de stratégies pour les solveurs en Satisfiabilité Modulo des Théories (SMT) nécessite des outils théoriques et pratiques qui permettent aux utilisateurs d’exercer un contrôle stratégique sur les aspects heuristiques fondamentaux des solveurs de SMT, tout en garantissant leur performance. Nous nous intéressons dans cette thèse au solveur Z3 , l’un des plus efficaces lors des compétitions SMT (SMT-COMP). Dans les solveurs SMT, la définition d’une stratégie repose sur un ensemble de composants et paramètres pouvant être agencés et configurés afin de guider la recherche d’une preuve de (in)satisfiabilité d’une instance donnée. Dans cette thèse, nous abordons ce défi en définissant un cadre pour la génération autonome de stratégies pour Z3, c’est-à-dire un algorithme qui permet de construire automatiquement des stratégies sans faire appel à des connaissances d’expertes. Ce cadre général utilise une approche évolutionnaire (programmation génétique), incluant un système à base de règles. Ces règles formalisent la modification de stratégies par des principes de réécriture, les algorithmes évolutionnaires servant de moteur pour les appliquer. Cette couche intermédiaire permettra d’appliquer n’importe quel algorithme ou opérateur sans qu’il soit nécessaire de modifier sa structure, afin d’introduire de nouvelles informations sur les stratégies. Des expérimentations sont menées sur les jeux classiques de la compétition SMT-COMP. / The Strategy Challenge in Satisfiability Modulo Theories (SMT) claims to build theoretical and practical tools allowing users to exert strategic control over core heuristic aspects of high-performance SMT solvers. In this work, we focus in Z3 Theorem Prover: one of the most efficient SMT solver according to the SMT Competition, SMT-COMP. In SMT solvers, the definition of a strategy relies on a set of tools that can be scheduled and configured in order to guide the search for a (un)satisfiability proof of a given instance. In this thesis, we address the Strategy Challenge in SMT defining a framework for the autonomous generation of strategies in Z3, i.e. a practical system to automatically generate SMT strategies without the use of expert knowledge. This framework is applied through an incremental evolutionary approach starting from basic algorithms to more complex genetic constructions. This framework formalise strategies modification as rewriting rules, where algorithms acts as enginess to apply them. This intermediate layer, will allow apply any algorithm or operator with no need to being structurally modified, in order to introduce new information in strategies. Validation is done through experiments on classic benchmarks of the SMT-COMP.
|
15 |
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.
|
16 |
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.
|
17 |
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.
|
18 |
From examples to knowledge in model-driven engineering : a holistic and pragmatic approachBatot, Edouard 11 1900 (has links)
No description available.
|
19 |
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.
|
20 |
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
|
Page generated in 0.0384 seconds