Navegación

Búsqueda

Búsqueda avanzada

Resultados de búsqueda para Search-Based Software Engineering

An evolutionary approach for generating software models: The case of Kromaia in Game Software Engineering

In the context of Model-Driven Engineering applied to video games, software models are high-level abstractions that represent source code implementations of varied content such as the stages of the game, vehicles, or enemy entities (e.g., final bosses). In this work, we present our Evolutionary Model Generation (EMoGen) approach to generate software models that are comparable in quality to the models created by human developers. Our approach is based on an evolution (mutation and crossover) and assessment cycle to generate the software models. We evaluated the software models generated by EMoGen in the Kromaia video game, which is a commercial video game released on Steam and PlayStation 4. Each model generated byEMoGen has more than 1000 model elements. The results, which compare the software models generated by our approach and those generated by the developers, show that our approach achieves results that are comparable to the ones created manually by the developers in the retail and digital versions of the video game case study. However, our approach only takes five hours of unattended time in comparison to ten months of work by the developers. We perform a statistical analysis, and we make an implementation of EMoGen readily available.

Autores: Daniel Blasco / Jaime Font / Mar Zamorano / Carlos Cetina / 
Palabras Clave: Game Software Engineering - Model-Driven Engineering - Search-Based Software Engineering

Topic Modeling for Feature Location in Software Models: Studying both Code Generation and Interpreted Models

Context: In the last 20 years, the research community has increased its atten-tion to the use of topic modeling for software maintenance and evolution tasks in code. Topic modeling is a popular and promising information re-trieval technique that represents topics by word probabilities. Latent Di-richlet Allocation (LDA) is one of the most popular topic modeling methods. However, the use of topic modeling in model-driven software development has been largely neglected. Since software models have less noise (imple-mentation details) than software code, software models might be well-suited for topic modeling.Objective: This paper presents our LDA-guided evolutionary approach for feature location in software models. Specifically, we consider two types of software models: models for code generation and interpreted model.Method: We evaluate our approach considering two real-world industrial case studies: code-generation models for train control software, and interpreted models for a commercial video game. To study the impact on the results, we compare our approach for feature location in models against random search and a baseline based on Latent Semantic Indexing, which is a popular infor-mation retrieval technique. In addition, we perform a statistical analysis of the results to show that this impact is significant. We also discuss the results in terms of the following aspects: data sparsity, implementation complexity, calibration, and stability.Results: Our approach significantly outperforms the baseline in terms of re-call, precision, and F-measure when it comes to interpreted models. This is not the case for code-generation models.Conclusions: Our analysis of the results uncovers a recommendation towards results improvement. We also show that calibration approaches can be trans-ferred from code to models. The findings of our work with regards to the compensation of instability have the potential to help not only feature loca-tion in models, but also in code.

Autores: Francisca Pérez / Raúl Lapeña / Ana Cristina Marcén / Carlos Cetina / 
Palabras Clave: Feature location - Search-Based Software Engineering - Software Models - Topic Modeling

Many-Objective Test Suite Generation for Software Product Lines

A Software Product Line (SPL) is a set of products builtfrom a number of features, the set of valid products being dened bya feature model. Typically, it does not make sense to test all productsdened by an SPL and one instead chooses a set of products to test(test selection) and, ideally, derives a good order in which to test them(test prioritisation). Since one cannot know in advance which productswill reveal faults, test selection and prioritisation are normally based onobjective functions that are known to relate to likely effectiveness orcost. This article introduces a new technique, the grid-based evolutionstrategy (GrES), which considers several objective functions that assessa selection or prioritisation and aims to optimise on all of these. Theproblem is thus a many-objective optimisation problem. We use a newapproach, in which all of the objective functions are considered but one(pairwise coverage) is seen as the most important. We also derive a novelevolution strategy based on domain knowledge. The results of the evalua-tion, on randomly generated and realistic feature models, were promising,with GrES outperforming previously proposed techniques and a range ofmany-objective optimisation algorithms.

Autores: Rob Hierons / Miqing Li / Xiaohui Liu / José Antonio Parejo Maestre / Sergio Segura Rueda / Xin Yao / 
Palabras Clave: Evolutionary algorithms - many-objectives optimization - Search-Based Software Engineering - software product lines - Testing

Looking for novelty in SBSE problems

Search-based software engineering (SBSE) was conceived to support engineers searching for innovative ideas to solve recurrent software engineering problems along the software project lifecycle. However, current approaches require the engineer to formulate and quantify their search objectives, which may be challenging. As SBSE consolidates as a discipline, problems become more demanding, and consequently the definition of the search problem and the characteristics of the search space remain oversimplified. Thus the evaluation of problem solutions by means of a fitness function could be failing to address essential aspects that can cause disappointment for the engineer after reaching final results. This position paper launches the idea that novelty search opens up a new scenario, as it rewards solution novelty, a concept mapping to problem characteristics other than fitness and whose definition might be more intuitive to the engineer. We explore its applicability to SBSE and discuss some preliminary findings of interest to the SBSE community.

Autores: José Raúl Romero / Aurora Ramírez / Christopher L. Simons / 
Palabras Clave: next release problem - novelty search - Search-Based Software Engineering

SIP: Optimal Product Selection from Feature Models Using Many-Objective Evolutionary Optimization

Robert M. Hierons, Miqing Li, Xiaohui Liu, Sergio Segura, and Wei Zheng. 2016. SIP: Optimal Product Selection from Feature Models Using Many-Objective Evolutionary Optimization. ACM Trans. Softw. Eng. Methodol. 25, 2, Article 17 (April 2016), 39 pages. DOI: http://dx.doi.org/10.1145/2897760 Indicadores de calidad: – Revista de referencia en el área de Ingeniería del Software (CS-SE: 21/106). – Colaboración internacional con los profesores Robert Hierons [1] y XiaoHui Liu [2]. – Hemos sido invitados a presentar el trabajo en FSE16 e ICSE17 como parte de la iniciativa journal-first (ver programa de la conferencia [3]). – Ha recibido 6 citas desde su publicación en abril de 2016 [4]. [1] http://dblp.uni-trier.de/pers/hd/h/Hierons:Robert_M= [2] http://dblp.uni-trier.de/pers/hd/l/Liu:Xiaohui [2] http://icse2017.gatech.edu/?q=technical-research-accepted [4] https://goo.gl/XyTmQR

Autores: Rob Hierons / Miqing Li / Xiaohui Liu Liu / Sergio Segura / Wei Zheng / 
Palabras Clave: Optimization - Search-Based Software Engineering - software product lines

Hacia un Algoritmo Exacto para Resolver el Problema de Agrupamiento de Módulos Software

El problema de agrupamiento de módulos software consiste en encontrar una partición del conjunto de módulos de un determinado software de tal forma que se maximice la cohesión entre módulos pertenecientes al mismo componente de la partición a la vez que se minimiza el acoplamiento entre módulos pertenecientes a distintos componentes. El objetivo es estructurar el software de una manera que mejore el desarrollo y la mantenibilidad del sistema. Este problema, conocido como emph{Software Module Clustering}, ha sido abordado en el pasado usando principalmente algoritmos heurísticos y metaheurísticas. En este trabajo describimos un algoritmo exacto basado en ramificación y poda.

Autores: Miguel Ángel Domínguez / Francisco Chicano / Enrique Alba / 
Palabras Clave: Agrupamiento de módulos software - Algoritmos exactos - Ramificación y poda - Search-Based Software Engineering

No encuentra los resultados que busca? Prueba nuestra Búsqueda avanzada