CAPÍTULO 7 EXPERIMENTO DE MANUTENÇÃO
7.2 Definição e Planejamento do Experimento
O objetivo do experimento conduzido foi comparar as versões GRENJ-OO e GRENJ- OA quanto à compreensão, à manutenibilidade e à reusabilidade, do ponto de vista de desenvolvedores de software no contexto de alunos de pós-graduação.
O planejamento do experimento constou de a) seu contexto, que corresponde ao ambiente no qual foi aplicado; b) a definição das hipóteses que corresponde a uma previsão dos resultados que se pretende obter; c) seleção de variáveis controladas pelo experimento, ou seja, o que se pretende controlar; d) o critério de seleção dos participantes; e) o projeto experimental, que consiste no planejamento das atividades do experimento; f) tipo de projeto, que se refere à forma de distribuição dos membros para executar essas atividades, e g) instrumentação, relacionada aos artefatos (formulários, diagramas de classes, versões de
frameworks) que foram utilizados durante a realização do experimento.
a) Seleção do contexto. O estudo foi realizado com estudantes de mestrado em
Ciência da Computação da Universidade Federal de São Carlos, que cursaram a disciplina Engenharia de Software, no primeiro semestre de 2010. Foram elaborados questionários relacionados às versões GRENJ-OO e GRENJ-OA, cenários de manutenção e cenários de utilização no domínio desse framework.
b) Definição de hipóteses. A hipótese a ser testada é: “a versão orientada a aspectos do framework GRENJ-OO facilita a compreensão de suas funcionalidades, sua reutilização, manutenção e evolução em relação à sua versão orientada a objetos”. Essa hipótese possui como base o estudo quantitativo baseado em métricas de separação de interesses, acoplamento, coesão e de tamanho apresentado no Capítulo 6. Os resultados obtidos no estudo quantitativo indicaram que o uso de orientação a aspectos melhorou os níveis de separação de interesses, reduziu o acoplamento e aumentou a coesão das unidades que implementam cada padrão e variante da linguagem de padrões GRN no framework GRENJ- OO.
c) Seleção de variáveis. As variáveis independentes são todas aquelas que são
manipuladas e controladas durante o estudo. Neste estudo, as versões GRENJ-OO e GRENJ- OA são as variáveis independentes. As variáveis dependentes são aquelas que estão sob análise (WOHLIN et al., 2000). Nesse experimento as variáveis dependentes são: as respostas dos questionários relacionados às arquiteturas desses frameworks, que indicam o número de acertos de cada participante ao analisar as versões OO e OA desse framework, o tempo de
Capítulo 7 - Experimento de Manutenção 105 resposta dos questionários, o tempo para realizar manutenções e o tempo para instanciar aplicações utilizando as versões do framework. Essas variáveis são influenciadas pelas versões OO e OA do framework.
d) Critério de seleção dos participantes. Os participantes do estudo foram
selecionados por meio de amostragem não-probabilística por conveniência, ou seja, a probabilidade de todos os elementos da população pertencer à mesma amostra é desconhecida.
e) Projeto experimental. O experimento foi planejado seguindo uma estrutura de
blocos e foi balanceado para assegurar que os tratamentos tenham o mesmo número de participantes, para possibilitar a comparação dos efeitos das variáveis independentes. O experimento foi dividido em três etapas: Compreensão, Manutenção e Reutilização. A etapa de “Compreensão” teve o objetivo de verificar a facilidade dos participantes envolvidos em localizar as unidades que implementam as funcionalidades fornecidas pelo framework. As etapas de “Manutenção” e “Reutilização” envolveram os mesmos participantes e tiveram como objetivo comparar a manutenibilidade e a reusabilidade das versões GRENJ-OO e GRENJ-OA do framework, por meio de dois cenários de manutenção e dois de instanciação. Ambos os cenários de manutenção e de reutilização foram aplicados às versões OO e OA. Cada uma das etapas do experimento é composta por duas fases nas quais os grupos estão organizados como ilustrado na Tabela 7.1. Para evitar que a ordem das variáveis independentes exercesse influência sobre os resultados do experimento, em cada etapa do experimento houve a preocupação em definir de maneira homogênea a ordem de utilização de cada uma dessas variáveis. Assim, na Etapa 1 - Compreensão, Fase 1, o grupo 1 utilizou a versão GRENJ-OO e o grupo 2 a versão GRENJ-OA. Na Fase 2 houve inversão das versões anteriormente utilizadas pelos grupos.
Tabela 7.1 – Etapas do experimento.
Treinamento: Apresentação dos conceitos de programação orientada a aspectos, linguagem de padrões GRN,
framework GRENJ-OO e a realização do piloto do experimento.
Etapa 1 – Compreensão
Grupo Fase 1 Fase 2
Grupo 1 Questionário 1 Framework OO Questionário 2 Framework OA Grupo 2 Questionário 1 Framework OA Questionário 2 Framework OO
Etapa 2 – Manutenção
Grupo Fase 1 Fase 2
Grupo 1 Estratégia de Recurso Instanciável Framework OA
Itemizar Transação do Recurso Framework OO
Grupo 2 Estratégia de Recurso Instanciável
Framework OO Itemizar Transação do Recurso Framework OA
Etapa 3 – Reutilização
Grupo Fase 1 Fase 2
Grupo 1 Biblioteca Framework OA Aplicação Hotel - Framework OO Grupo 2 Biblioteca Framework OO Aplicação Hotel - Framework OA
Capítulo 7 - Experimento de Manutenção 106
f) Tipo de projeto. O experimento possui três fatores e três tratamentos aplicáveis a
esses fatores (3*3 fatorial). Esse experimento foi realizado com doze participantes, que foram organizados em dois grupos com seis membros cada. A distribuição dos participantes nos grupos colocou a mesma quantidade de participantes experientes em cada grupo. O nível de experiência de cada participante foi avaliado com base na análise de questionários de caracterização de perfil (Apêndice C) respondidos por cada um. O questionário constou de um conjunto de questões relacionadas aos conceitos e técnicas necessárias para a realização do experimento (orientação a objetos, orientação a aspectos, linguagens Java e AspectJ, linguagem de padrões GRN, frameworks GRENJ-OO e GRENJ-OA e ambiente Eclipse). Os resultados obtidos com a aplicação desse questionário são exibidos no gráfico da Figura 7.1, tendo no eixo x os participantes e no eixo y o grau de acerto. Com base nas informações obtidas dos questionários, os participantes P2, P5, P8, P9 e P11 foram considerados como os mais experientes.
g) Instrumentação. Os documentos utilizados pelos participantes durante o
experimento foram: questionário de caracterização de perfil; formulário de consentimento; questionários sobre as arquiteturas dos frameworks GRENJ-OO e GRENJ-OA; roteiros para a execução dos cenários de manutenção; modelos de classes das aplicações que foram instanciadas durante a realização do experimento; manuais de instanciação das versões GRENJ-OO e GRENJ-OA; tabelas para registro do tempo de execução das manutenções e das instanciações de aplicações nas versões utilizadas do GRENJ, os casos de teste das duas manutenções e instanciações e scripts de bases de dados. No Apêndice D estão questionários relacionados às arquiteturas das versões GRENJ-OO e GRENJ-OA. No Apêndice E estão o modelo de formulário de consentimento do experimento e exemplos de tabelas utilizadas para registrar os tempos para realizar manutenções e instanciar aplicações com as versões GRENJ- OO e GRENJ-OA. No Apêndice F estão os modelos de classes das aplicações, os manuais de instanciação das versões do framework e um modelo de roteiro para a execução de cenários de manutenção. No Apêndice G podem ser encontrados exemplos de casos de teste utilizados nas manutenções e instanciações realizadas e um exemplo de script de base de dados. Após a descrição e o planejamento do experimento passou-se à fase de execução como descrito na seção a seguir.
Capítulo 7 - Experimento de Manutenção 107
7.2.1 Execução
Para a execução do experimento, inicialmente os participantes foram divididos em dois grupos, com seis membros cada um. Os participantes receberam um treinamento no qual foram apresentados todos os conceitos necessários, com o objetivo de nivelar o grau de conhecimento dos participantes nos conceitos e técnicas necessários para a realização do experimento. Em seguida, foi realizado o piloto do experimento, uma simulação do experimento real, para que todos os participantes tivessem conhecimento de sua estrutura para
F ig ura 7 .1 . E xp er iên cia do s par ticip an tes d o ex per im en to .
Capítulo 7 - Experimento de Manutenção 108 que pudessem executá-lo de maneira correta. O experimento foi organizado em três etapas: “Compreensão”, “Manutenção” e “Reutilização”, sendo que cada etapa possui duas fases: uso da versão OO e uso da versão OA, que serão descritas a seguir.
Na etapa “Compreensão” o objetivo foi verificar a facilidade dos participantes em encontrar determinadas funções (padrões e variantes da GRN) no código fonte ao responderem aos questionários cujas questões se relacionavam às arquiteturas das versões OO e OA do framework e marcaram o tempo gasto para respondê-lo. Enquanto um grupo respondia as questões relacionadas à versão OO, o outro respondia as questões da versão OA.
Na etapa “Manutenção” o objetivo foi registrar o tempo gasto pelos participantes para a realização de cenários de manutenção nas versões OO e OA do framework. Como ocorreu na etapa “Compreensão”, enquanto um grupo realizava manutenção na versão OO o outro realizava na versão OA.
Na etapa “Reutilização” o objetivo foi registrar o tempo gasto dos participantes para instanciar os frameworks para aplicações no domínio de biblioteca e hotel. Aqui também todos os participantes tiveram contato com as duas versões do framework.
Os cenários de manutenção e de instanciação das aplicações utilizados no experimento possuem graus de complexidade similares, para que esses fatores não influenciassem os resultados.