[en] MAINTAINABILITY AND REUSABILITY OF ASPECT-ORIENTED SOFTWARE: AN ASSESSMENT FRAMEWORK - CLAUDIO NOGUEIRA SANTANNA (MAXWELL, 2004)
[pt] O desenvolvimento de software orientado a aspectos (DSOA) vem obtendo maior atenção tanto da academia quanto da indústria. Sistemas orientados a aspectos compreendem novas abstrações de engenharia de software e tratam de diferentes dimensões de complexidade. Conseqüentemente, o DSOA traz novos problemas para a engenharia de software experimental. Novos mecanismos de avaliação são necessários para medir os graus de manutenibilidade e reusabilidade de sistemas orientados a aspectos. Esta dissertação apresenta um framework de avaliação para o DSOA composto por dois elementos: um conjunto de métricas e um modelo de qualidade. No intuito de evitar a reinvenção de soluções já testadas, esses elementos são baseados em princípios bem conhecidos da engenharia de software e métricas já existentes. O framework proposto foi avaliado no contexto de dois estudos empíricos de domínios distintos, com características, níveis de controle e níveis de complexidade diferentes. O primeiro estudo empírico comparou uma abordagem orientada a objetos com uma abordagem orientada a aspectos para o projeto e implementação de um sistema multi- agentes. O segundo estudo envolveu a aplicação do framework proposto para avaliar as implementações em Java e AspectJ dos padrões de projeto da GoF. === [en] Aspect-oriented software development (AOSD) is gaining wide attention both in research environments and in industry. Aspect- oriented systems encompass new software engineering abstractions and different complexity dimensions. As a consequence, AOSD poses new problems to empirical software engineering. It requires new assessment mechanisms to measure the maintainability and reusability degrees of aspect-oriented systems. This dissertation presents an assessment framework for AOSD, which is composed of two components: a suite of metrics and a quality model. These components are based on well-known principles and existing metrics in order to avoid the reinvention of well-tested solutions. The proposed framework has been evaluated in the context of two different empirical studies with different characteristics, diverse domains, varying control levels and different complexity degrees. The first study compared an object-oriented approach and an aspect-oriented approach to the design and implementation of a multi-agent system. The second study involved the application of the proposed framework to evaluate Java and AspectJ implementations of the GoF design patterns.