2 research outputs found

    The role of Artificial Intelligence in Software Engineering

    Full text link
    There has been a recent surge in interest in the application of Artificial Intelligence (AI) techniques to Software Engineering (SE) problems. The work is typified by recent advances in Search Based Software Engineering, but also by long established work in Probabilistic reasoning and machine learning for Software Engineering. This paper explores some of the relationships between these strands of closely related work, arguing that they have much in common and sets out some future challenges in the area of AI for SE. © 2012 IEEE

    Algoritmos baseados em estimadores de distribuição e técnicas da otimização com muitos objetivos aplicados na refatoração automática de software

    Get PDF
    Search Based Software Engineering (SBSE) is a research area in which optimization algorithms are applied to solve Software Engineering problems. SBSE area comprises several sub-areas, among them, Search Based Software Refactoring (SBSR), which deals with automatic software refactoring processes. One of the problems investigated in SBSR is the determination of a sequence of refactorings that provides code improvement, according to predetermined criteria. To model this problem as an optimization problem, it is necessary to define objective functions. In this case, the objective functions are quality metrics used in Software Engineering. Since there are many metrics to consider, the problem of determining sequences of refactorings is a Many-Objective Combinatorial Optimization Problem. Many-Objective optimization comprises a set of algorithms and techniques used to solve problems that take into account more than three objectives. In order to solve problems of this nature, new methods are proposed to reduce the deterioration of the search as the number of objectives increases, among them, the multi-objective evolutionary algorithms, which include the Estimation of Distribution Algorithms (EDA). However, despite having good results in combinatorial optimization problems the investigation of EDA in the context of optimization with many objectives are still incipient. The goal of this work is to investigate the use of EDA in the automatic selection of a sequence of refactorings. In order to achieve this goal, a new EDA is proposed, which incorporates many-objective optimization techniques existing in literature. The proposed algorithm was validated and added to a previously implemented automatic software refactoring framework. Furthermore, a set of experiments was conducted to evaluate the proposed algorithm. The results obtained by the proposed algorithm were compared to the results obtained by algorithms existing in the literature.A Engenharia de Software Baseada em Busca, conhecida como SBSE (do inglês, Search Based Software Engineering), é uma área que usa algoritmos de otimização para solucionar problemas da Engenharia de Software. A área de SBSE compreende diversas subáreas, dentre estas, encontra-se a Refatoração de Software Baseada em Busca (SBSR, do inglês Search Based Software Refactoring), que trata de processos de refatoração automática de software utilizando algoritmos de otimização. Um dos problemas encontrados na SBSR é a determinação de sequências de refatorações com o objetivo da melhoria do código, de acordo com critérios previamente determinados. Para modelar este problema como um problema de otimização é necessário que sejam definidas funções objetivo. Nesse caso, as funções objetivo são métricas de qualidade utilizadas na Engenharia de Software. Como são muitas as métricas a se considerar, o problema de determinação de sequências de refatorações é naturalmente um Problema de Otimização combinatório com Muitos Objetivos. A otimização com muitos objetivos compreende um conjunto de algoritmos e técnicas que buscam resolver problemas de otimização com mais de três funções objetivo. Para resolver problemas dessa natureza, são propostos novos métodos que visam reduzir a deterioração da busca à medida que o número de objetivos aumenta. Dentre eles, destacam-se os algoritmos evolucionários multiobjetivo, que incluem os Estimation of Distribution Algorithms (EDA). No entanto, apesar de ter bons resultados em problemas de otimização combinatória, os EDA ainda são pouco explorados no contexto da otimização com muitos objetivos. O objetivo deste trabalho é investigar o uso dos EDA na seleção automática de uma sequência de refatorações. Para que esse objetivo seja atingido, propõe-se um novo EDA, no qual são incorporadas técnicas de otimização de muitos objetivos existentes na literatura. O algoritmo proposto foi validado e adicionado a um framework de refatoração automática de software previamente implementado. Após a condução de um conjunto de experimentos, os resultados obtidos pelo algoritmo proposto foram comparados aos resultados obtidos pelos algoritmos encontrados na literatura aplicados no contexto de SBSR.São Cristóvão, S
    corecore