Author(s): Almeida, Miguel Santos Baptista de
Date: 2011
Persistent ID: http://hdl.handle.net/10362/5622
Origin: Repositório Institucional da UNL
Subject(s): Modularidade; CaesarJ; Programação orientada por aspectos; Métricas de Software
Author(s): Almeida, Miguel Santos Baptista de
Date: 2011
Persistent ID: http://hdl.handle.net/10362/5622
Origin: Repositório Institucional da UNL
Subject(s): Modularidade; CaesarJ; Programação orientada por aspectos; Métricas de Software
Dissertação apresentada no âmbito do Mestrado em Engenharia Informática para obtenção do grau de Mestre em Engenharia Informática
Os defensores do paradigma de programação orientada a aspectos afirmam que este paradigma oferece melhor modularidade que a programação orientada a objectos, assim como um melhor suporte para separação de facetas transversais. Embora o AspectJ seja a linguagem de AOP mais conhecida, e alvo de mais estudos, surgiram novas linguagens de programação que propõem diferentes formas de instanciar este paradigma. O CaesarJ é uma destas linguagens. Possui abstracções e mecanismos que o diferenciam do AspectJ, tais como classes virtuais, polimorfismo de família e uma maneira diferente de representar um aspecto. Qualquer alegação de uma linguagem ser melhor, à luz de um critério bem definido (neste caso, a modularidade), tem que ser apoiada por avaliações rigorosas de implementações feitas nessa linguagem. Este trabalho pretende fazer isso com um estudo comparativo entre as duas linguagens em termos da modularidade que se obtém em software por elas implementado. Em particular, vai-se estudar uma faceta da modularidade: a coesão. Este estudo utiliza da estrutura padrão de relatórios experimentais em Engenharia de Software, assim como todos os testes estatísticos apropriados. Para este fim, foi desenvolvida uma métrica de coesão que foi usada, juntamente com várias métricas de tamanho para avaliar 51 exemplos de implementações de padrões de concepção. No contexto desta dissertação a ferramenta de recolha automática de métricas MuLATo foi adaptada para suportar esta nova métrica de coesão. Os resultados do estudo efectuado sugerem que o CaesarJ é mais verboso que Java mas contem componentes menos complexos e mais coesos.