SUPPORT TO THE SYNTHESIS OF STRUCTURAL MODELS OF OBJECT-ORIENTED SOFTWARE USING CO-EVOLUTIONARY GENETIC ALGORITHMS - THIAGO SOUZA MENDES GUIMARAES (PONTIFÍCIA UNIVERSIDADE CATÓLICA DO RIO DE JANEIRO, 2005)
COORDENAÇÃO DE APERFEIÇOAMENTO DO PESSOAL DE ENSINO SUPERIOR === Esta dissertação investiga o uso de Algoritmos Genéticos Co-evolucionários na automatização do processo de desenvolvimento de Sistemas de Software Orientados a Objetos. A qualidade final do software depende principalmente da qualidade da modelagem desenvolvida para o mesmo. Durante a fase de modelagem, diversos modelos são desenvolvidos antecipando diversas visões do produto final, e possibilitando a avaliação do software antes mesmo que ele seja implementado. A síntese de um modelo de software pode, portanto, ser vista como um problema de otimização onde se busca uma melhor configuração entre os elementos contemplados pelo paradigma de orientação a objetos, como classes, métodos e atributos, que atenda a critérios de qualidade de design. O objetivo do trabalho foi estudar uma forma de sintetizar modelagens de maior qualidade através da evolução por Algoritmos Genéticos Co- evolucionários. Para avaliar a modelagem do software, foram investigadas métricas de qualidade de software tais como: Reutilização, Flexibilidade, Inteligibilidade, Funcionalidade, Extensibilidade e Efetividade. Essas métricas foram aplicadas na função de avaliação, que por sua vez, foi definida objetivando a síntese de uma modelagem de software orientado a objetos com uma maior qualidade. Neste problema, deseja-se contemplar mais de um objetivo ao mesmo tempo. Para isso, foi utilizada a técnica de Pareto para problemas multi- objetivos. Os resultados obtidos foram comparados com modelagens produzidas por especialistas e as suas características analisadas. O desempenho do AG no processo de otimização foi comparado com o da busca aleatória e, em todos os casos, os resultados obtidos pelo modelo foram sempre superiores. === This work investigates the use of Co-evolutionary Genetic Algorithms in the automation of the development process of object-oriented software systems. The software final quality depends mainly on the design quality developed for the same. During the design phase, different models are developed anticipating various visions of the end product, thus making possible the software evaluation before it is implemented. The synthesis of a software model can, therefore, be seen as an optimization problem where it seeks a better configuration between the contemplated elements for the object-oriented paradigm, as classes, methods and attributes, which follows the quality design criteria. The work goal was to study a way to synthesize designs of better quality through its evolution by Coevolutionary Genetic Algorithms. In order to assess the software quality, it was also investigated software quality metrics, such as: Reusability, Flexibility, Understandability, Functionality, Extensibility and Effectiveness. These metrics were applied in an evaluation function that, in turn, was defined aiming at the object-oriented design synthesis with a better quality. In this problem, it is desired to contemplate more than one objective at a time. For this, the Pareto technique for multi-objective problems was used. The results were compared with designs produced by specialists and its characteristics analyzed. The GA performance in the optimization process was compared with the exhaustive search and, in all cases, the model results were superior.