• Nenhum resultado encontrado

CAPÍTULO 6 AVALIAÇÃO QUANTITATIVA DAS VERSÕES GRENJ-OO E

6.3 Resultados

6.3.3 Grupo 3: Detalhes das Transações de Negócio

Os resultados das métricas de separação de interesses, acoplamento, coesão e tamanho são apresentados considerando uma variante de cada padrão. Nessa avaliação, as implementações OO e OA das variantes desses padrões são comparadas. A apresentação dos resultados está separada para as métricas de separação de interesses e para as de acoplamento, coesão e tamanho.

6.3.3.1 Métricas de Separação de Interesses

A apresentação dos resultados das métricas de separação de interesses está dividida em três partes. Na primeira, são apresentados os resultados para as variantes Itemizar Locação de Recurso Instanciável, do padrão Itemizar Transação do Recurso, e Pagamento em Dinheiro, do padrão Pagar pela Transação do Recurso. Na segunda são mostrados os resultados para a variante Transação com Executor, do padrão Identificar o Executor da Transação. Na terceira são apresentados os resultados para os padrões Identificar Tarefas de Manutenção e Identificar Peças de Manutenção sem variantes.

O padrão Itemizar Transação do Recurso é um dos padrões da GRN que possui o maior número de variabilidades, em virtude de que em sua implementação no framework GRENJ-OO há código relacionado a ele por unidades que implementam os padrões Identificar Recurso, Locar Recurso, Reservar Recurso, Comercializar Recurso, Cotar Recurso, Conferir a Entrega do Recurso, Manter Recurso, Cotar a Manutenção, Identificar Tarefas de Manutenção e Identificar Peças de Manutenção. A orientação a aspectos foi utilizada para modularizar cada uma dessas variantes, no qual a variante Itemizar Locação de Recurso Instanciável foi escolhida para comparação.

Capítulo 6 - Avaliação Quantitativa das Versões GRENJ-OO e GRENJ-OA 94 Considerando apenas a variante Itemizar Locação de Recurso Instanciável do padrão Itemizar Transação do Recurso, os resultados de CDC mostraram que sua versão OA reduziu em 60%, o número de unidades que contribuem para a sua implementação, como ilustrado no gráfico da Figura 6.11. Isso ocorre por desacoplar a implementação do padrão Itemizar Transação do Recurso de unidades que foram projetadas para implementar outros padrões, ou seja, o código relacionado ao padrão foi removido da implementação dos demais padrões da GRN no GRENJ-OO. Para CDO, houve uma redução de 40,86% na quantidade de operações que contribuem para a implementação dessa variante, decorrente da melhoria no valor de CDC para essa variante. Por encapsular em aspectos o código relacionado ao padrão Itemizar Transação do Recurso, que estava localizado em unidades que implementam outros padrões, o valor de CDLOC para a variante Itemizar Locação de Recurso Instanciável mostrou que sua versão OA foi 100% superior à OO.

Figura 6.11. Gráfico com os resultados das métricas de separação de interesses para as variantes dos

padrões Itemizar Transação do Recurso e Pagar pela Transação do Recurso.

Para a variante Pagamento em Dinheiro do padrão Pagar pela Transação do Recurso, sua versão OA reduziu em 53,33% o número de unidades que contribuem para implementá-la em relação à OO, como ilustrado no gráfico da Figura 6.11. Isso ocorre em virtude da remoção de código relacionado a essa variante das unidades que implementam outras variantes do padrão Pagar pela Transação do Recurso. Com isso, também houve uma redução de 57,71% no número de operações que contribuem para a implementação dessa variante em sua implementação OA comparado com OO. Com relação à CDLOC, a versão OA dessa variante foi 100% superior em relação à OO. Esse resultado se justifica pela remoção do código relacionado a essa variante de unidades que implementam as demais variantes do

Capítulo 6 - Avaliação Quantitativa das Versões GRENJ-OO e GRENJ-OA 95 padrão, reduzindo os pontos de transição de interesse relacionados a essa variante pelo código do padrão.

A implementação OA da variante Transação com Executor do padrão Identificar o Executor da Transação reduziu em 50% o número de unidades que contribuem para a sua implementação (CDC), como mostrado no gráfico da Figura 6.12. Isso ocorre pela remoção de código relacionado ao padrão Identificar o Executor da Transação de unidades que implementam os padrões de transação e o padrão Identificar Tarefas de Manutenção. Com isso, a quantidade de operações que contribuem para sua implementação também foi reduzida, melhorando em 43,18% o valor de CDO em relação à solução OO. Em virtude da remoção de código relacionado ao padrão Identificar o Executor da Transação de unidades que implementam outros padrões, para CDLOC, a versão OA da variante desse padrão foi 100% superior em relação à OO.

Figura 6.12. Gráfico com os resultados das métricas de separação de interesses para a variante

“Transação com Executor” do padrão Identificar o Executor da Transação.

Com relação ao padrão Identificar Tarefas de Manutenção sem variantes, os resultados para as métricas CDC e CDO foram os mesmos para ambas as suas versões OO e OA, como mostrado no gráfico da Figura 6.13. Isso ocorre mesmo com a remoção de código relacionado a esse padrão de unidades que implementam o padrão Manter Recurso, pois um aspecto foi criado para modularizar esse código, não alterando os valores de CDC e de CDO. Esses resultados se justificam pela ocorrência de inversão de acoplamento, em que cada atributo e operação relacionado ao padrão Identificar Tarefas de Manutenção que estava presente em unidades que implementam o Manter Recurso foi removido e encapsulado em um aspecto. Com relação à CDLOC, a versão OA dessa variante foi 100% superior à solução OO. Isso ocorre em virtude da remoção do entrelaçamento e do espalhamento de interesses

Capítulo 6 - Avaliação Quantitativa das Versões GRENJ-OO e GRENJ-OA 96 relacionados ao padrão Identificar Tarefas de Manutenção, removendo os pontos de transição de interesse das unidades que o implementam.

Figura 6.13. Resultados das métricas de separação de interesses para os padrões Identificar Tarefas

de Manutenção e Identificar Peças de Manutenção sem variantes.

Para o padrão Identificar Peças de Manutenção sem variantes, os resultados das métricas de separação de interesses foram os mesmos que os do padrão Identificar Tarefas de Manutenção, como ilustrado no gráfico da Figura 6.13. Assim como no padrão Identificar Tarefas de Manutenção, isso ocorre em virtude da remoção de código relacionado ao padrão Identificar Peças de Manutenção das unidades que implementam o padrão Manter Recurso e da criação de um aspecto para modularizar esse código. Esse aspecto foi criado para separar a implementação do padrão Identificar Peças de Manutenção do padrão Manter Recurso.

6.3.3.2 Métricas de Acoplamento, Coesão e Tamanho

A apresentação dos resultados das métricas de acoplamento, coesão e tamanho está dividida em três partes. Na primeira são apresentados os resultados para as variantes Itemizar Locação de Recurso Instanciável, do padrão Itemizar Transação do Recurso, e Pagamento em Dinheiro, do padrão Pagar pela Transação do Recurso. Na segunda parte são mostrados os resultados para a variante Transação com Executor, do padrão Identificar o Executor da Transação. Na terceira parte, são apresentados os resultados para os padrões Identificar Tarefas de Manutenção e Identificar Peças de Manutenção sem variantes.

Para a variante Itemizar Locação de Recurso Instanciável do padrão Itemizar Transação do Recurso, os resultados de CBC e LCOO mostraram que a versão OA dessa variante reduziu em 60,86% o nível de acoplamento entre as unidades que a implementam e aumentou em 97,07% a coesão das mesmas, como mostrado no gráfico da Figura 6.14. Isso

Capítulo 6 - Avaliação Quantitativa das Versões GRENJ-OO e GRENJ-OA 97 ocorre em virtude da remoção do código relacionado ao padrão Itemizar Transação do Recurso de unidades que implementam outros padrões da GRN. Como conseqüência, os resultados das métricas de tamanho NOA, DIT, WOC e LOC também foram melhorados, em que a versão OA dessa variante foi respectivamente 80,76%, 81,81%, 80,97% e 79,95% superior em relação à OO. Esses resultados se justificam uma vez que houve a separação da implementação do padrão Itemizar Transação do Recurso de unidades que implementam padrões como Locar Recurso, Reservar Recurso, Comercializar Recurso, Cotar Recurso e Manter Recurso. Dessa forma, unidades relacionadas a esses padrões não são mais contadas na avaliação da implementação OA da variante Itemizar Locação de Recurso Instanciável.

Figura 6.14. Gráfico com os resultados das métricas de acoplamento, coesão e tamanho para as

variantes dos padrões Itemizar Transação do Recurso e Pagar pela Transação do Recurso.

O uso de OA na implementação da variante Pagamento em Dinheiro do padrão Pagar pela Transação do Recurso reduziu em 66,66% o acoplamento entre as unidades que a implementam e aumentou em 91,74% a coesão dessas unidades, como ilustrado no gráfico da Figura 6.14. Esses resultados se justificam por isolar a implementação dessa variante das demais variantes do padrão Pagar pela Transação do Recurso. Como conseqüência, os resultados de NOA, DIT, WOC e LOC para a sua versão OA também foram superiores em relação à OO.

Com relação à variante Transação com Executor do padrão Identificar o Executor da Transação, os resultados para as métricas CBC e LCOO, como mostrado no gráfico da Figura 6.15, apontaram uma redução de 87,5% no nível de acoplamento entre as unidades que implementam essa variante em sua versão OA e aumentou em 98,2% a coesão das mesmas. Isso se justifica pela remoção dos relacionamentos de dependência entre as unidades que implementam o padrão Identificar o Executor da Transação e unidades que implementam os

Capítulo 6 - Avaliação Quantitativa das Versões GRENJ-OO e GRENJ-OA 98 padrões de transação e Identificar Tarefas de Manutenção no GRENJ-OO. Com isso, na versão OA da variante Transação com Executor, houve uma redução de 84,84% no número de atributos (NOA), uma vez que as unidades relacionadas a outros padrões, que tinham código relacionado ao padrão Identificar o Executor da Transação na versão OO, não são mais contabilizadas. O mesmo ocorre para as medidas DIT, WOC e LOC.

Figura 6.15. Gráfico com os resultados das métricas de acoplamento, coesão e tamanho para a

variante “Transação com Executor” do padrão Identificar o Executor da Transação.

Para o padrão Identificar Tarefas de Manutenção sem variantes, os resultados das métricas CBC e LCOO mostraram que sua versão OA reduziu em 50% o nível de acoplamento entre as unidades que o implementam e aumentou em 75,27% a coesão das mesmas, como apresentado no gráfico da Figura 6.16. Essas melhorias são decorrentes da remoção de código relacionado ao padrão de unidades que implementam o padrão Manter Recurso. Com isso, os valores de NOA, DIT, WOC e LOC também foram melhorados, em que a versão OA do padrão Identificar Tarefas de Manutenção foi respectivamente 50%, 40%, 44,18% e 50,73% superior à OO. O valor de WOC representa o grau de complexidade das operações das unidades que contribuem para a implementação do padrão Identificar Tarefas de Manutenção.

Capítulo 6 - Avaliação Quantitativa das Versões GRENJ-OO e GRENJ-OA 99

Figura 6.16. Gráfico com os resultados das métricas de acoplamento, coesão e tamanho para os

padrões Identificar Tarefas de Manutenção e Identificar Peças de Manutenção sem variantes.

Considerando o padrão Identificar Peças de Manutenção sem variantes, os resultados de CBC e LCOO, mostrados na Figura 6.16, foram similares aos do padrão Identificar Tarefas de Manutenção, em que sua versão OA reduziu em 42,85% o acoplamento entre as unidades que implementam o padrão e aumentou em 72,62% a coesão dessas unidades. Isso ocorre em virtude da remoção de código relacionado ao padrão Identificar Peças de Manutenção de unidades que implementam o padrão Manter Recurso. Essas melhorias também se refletem nos resultados das métricas NOA, DIT, WOC e LOC, em que a versão OA do padrão Identificar Peças de Manutenção foi respectivamente 53,33%, 28,57%, 34,01% e 45,08% superior à sua versão OO.