• Sonuç bulunamadı

A avaliação da qualidade dos modelos desenvolvidos no estudo de casos do Capítulo 6 é realizada de duas maneiras: i) comparando o modelo de classes OO com o modelo de classes OA obtido a partir da aplicação das refatorações desenvolvidas neste trabalho; e ii) comparando o modelo de classes OA obtido a partir da aplicação das refatorações com outra versão desse modelo de classes OA obtido a partir da engenharia reversa do código OA desenvolvido por terceiros e disponibilizados na literatura. Neste trabalho, realizou-se a engenharia reversa da versão OA das aplicações Health Watcher (Greenwood et al., 2007), JSpider (2011) e JAccounting (2011) com objetivo de obter seu diagrama de classes e depois compará-lo com os diagramas obtidos a partir da aplicação das refatorações.

A comparação entre os modelos é realizada subjetivamente por meio da avaliação conceitual entre esses modelos e objetivamente por meio da utilização de métricas OA adaptadas ao contexto de modelos de classes anotados. As métricas utilizadas para comparação objetiva são apresentadas na Tabela 7.1 e Tabela 7.2.

A Tabela 7.1 apresenta um conjunto de métricas OA extraído da literatura (Figueiredo et al., 2008; Sant’anna et al., 2007; Ceccato e Tonella, 2004; Ducasse et

al., 2006) e adaptado ao contexto dos modelos de classes anotados. Isso foi feito,

pois tais métricas foram elaboradas para serem aplicadas em códigos fonte OO e OA e com essa adaptação puderam ser obtidas diretamente a partir do modelo de classes anotado. Na primeira e segunda colunas da Tabela 7.1 são apresentados o nome da métrica e seu significado original. Na terceira coluna é apresentada a adaptação do significado dessa métrica para o contexto dos modelos de classes anotados. Caso o significado adaptado seja idêntico ao significado original, o símbolo “-” é colocado.

Tabela 7.1 – Métricas OA Adaptadas para Comparação entre Modelos de Classes OO Anotados e Modelos de Classes OA.

Métrica Significado Original dada pelo Autor da Métrica Modelos de Classe Anotados Adaptação ao Contexto de

NOA (Numbers

of Attributes)

Conta o número de variáveis e atributos de classes,

interfaces ou aspectos.

Conta o número de atributos de classes, interfaces ou aspectos, pois no modelo de classes não é possível identificar variáveis existente no corpo de um método.

Além disso, como são utilizados modelos de classes da UML, relacionamentos de associação, agregação e composição entre classes são contadas como atributos.

NOO (Number

of Operations)

Conta o número de métodos construtores e adendos de classes, interfaces e aspectos. - CA (Concern Attributes)

Conta o número de atributos que contribuem para

implementação de um determinado interesse.

Conta o número de atributos que são afetados por interesses classificados como Secundários no componente (classe,

interface ou aspecto) ao qual ele pertence.

CO (Concern

Operations)

Conta o número de

operações que participam da implementação de um

interesse.

Conta o número de operações que são afetadas por interesses classificados como Secundários no componente (classe,

interface ou aspecto) ao qual ele pertence.

CA% ((CA/NOA)*100)

Porcentagem entre o número de atributos relacionados à implementação de um

interesse e todos os atributos existentes em um módulo.

Porcentagem entre o número de atributos que são afetados por interesses classificados como Secundários e todos os atributos existentes em um componente.

CO% ((CO/NOO)*100)

Porcentagem entre o número de operações relacionadas à implementação de um

interesse e todas as

operações existentes em um módulo.

Porcentagem entre o número de operações que são afetadas por interesses classificados como Secundários e todas as operações existentes em um componente. VS (Vocabulary Size) Conta o número de componentes do software. -

Na Tabela 7.2 o conjunto de métricas elaborado neste trabalho é apresentado, sendo que na primeira coluna tem-se o nome da métrica e na segunda, a sua descrição.

Tabela 7.2 – Métricas OA Elaboradas para Comparação entre Modelos de Classes OO Anotados e Modelos de Classes OA.

Métrica Descrição da Métrica

NOSC (Number of

Secundary Concerns)

Conta o número de Interesses Secundários que afetam um determinado componente (classe, interface ou aspecto). NOP (Number of

Pointcuts)

Conta o número de conjuntos de junção existentes em um aspecto.

NOAP (Number of

Anonymous Pointcuts)

Conta o número de conjuntos de junção anônimos existentes em um aspecto.

NOAP%

((NOAP/NOP)*100) Porcentagem entre o número de conjuntos de junção anônimos e todos os conjuntos de junção existentes em um aspecto.

NORP (Number of

Operations Related with the Pointcut)

Conta o número de operações relacionadas a um determinado conjunto de junção.

NORP/ (NORP/NOP)

Proporção entre o número de operações relacionadas aos conjuntos de junção de um aspecto e o total de conjuntos de junção existentes neste aspecto.

NOAC (Number of

Affected Components)

Conta o número de componentes (classes, interfaces e aspectos) que são afetados por Interesses Secundários. NOAC%

((NOAC/VS)*100)

Porcentagem entre o número de componentes que são afetados por Interesses Secundários e todos os

componentes do sistema.

Esse conjunto de métricas é classificado em dois grupos:

Métricas de Modularização: são as utilizadas para comparação entre as duas versões OO do modelo de classes de um software: o modelo original da aplicação, ou seja, antes da modularização dos interesses transversais existentes no software e o outro corresponde ao modelo OO após a modularização dos interesses transversais. O objetivo é determinar o grau de modularização dos interesses existentes em um software. Para isso são utilizadas as métricas NOA, NOO, CA, CO, CA%, CO%, NOAC, NOAC%, VS e NOSC.

Métricas de Adequação às Boas Práticas de Projeto OA: são utilizadas para comparação entre as duas versões OA do modelo de classes de um software: o modelo obtido com o auxílio das refatorações elaboradas neste

trabalho e o outro corresponde a uma solução criada por outro pesquisador, sem utilizar as refatorações. O objetivo é determinar a correspondência desses modelos de classes OA às práticas de projeto OA preconizadas pela comunidade científica. As métricas NOC, NOP, NOAP, NOAP%, NORP e NORP/ são utilizadas.

A métrica NOC é classificada no grupo de métricas de adequação às boas práticas de projeto OA, pois pode indicar a existência de aspectos responsáveis pela modularização de mais de um tipo de interesse, o que corresponde a uma má prática de projeto OA e pode levar à implementação de bad smells como o God

Aspect (Piveta et al., 2007).

7.3 Avaliação das Soluções para Modularização da Aplicação

Benzer Belgeler