CAPÍTULO 5 A FERRAMENTA F3T
6.3 Experimento 1: Reúso de Frameworks por Meio de DSLs
6.3.1 Definição e Planejamento do Experimento 1
Esse experimento foi definido como apresentado no Quadro 6.1. As etapas da fase de planejamento do experimento estão descritas nas Subseções 6.3.1.1 a 6.3.1.5.
Quadro 6.1. Definição do Experimento 1.
Análise da instanciação de frameworks por meio de DSLs
Com o propósito de avaliação
A partir do ponto de vista dos desenvolvedores
Com respeito à eficiência (tempo) e à dificuldade (número de problemas)
No contexto de
estudantes de graduação dos cursos de Ciência da Computação e de Engenharia da Computação da Universidade Federal de São Carlos (UFSCar)
6.3.1.1 Contexto e Participantes
O contexto desse experimento foi multi-teste dentro de um objeto de estudo (WOHLIN et al., 2000), pois consistiu em testes experimentais executados por um grupo de indivíduos para estudar uma única abordagem, que é o reúso de frameworks por meio de DSLs. O experimento foi realizado em um laboratório de computação no ambiente universitário. Ao todo, participaram do experimento 18 alunos de graduação.
6.3.1.2 Formulação das Hipóteses
As questões, métricas e hipóteses definidas para esses experimento foram:
Questão 1 (Q1): A DSL torna a instanciação do framework GRENJ mais eficiente quando comparada com a instanciação realizada com o wizard?
Métrica 1 (M1): tempo (t) gasto pelos participantes na instanciação do framework GRENJ em uma aplicação.
Hipótese Nula (H10): Não há diferença significativa entre a DSL e o wizard quanto ao tempo gasto para a instanciação do framework GRENJ em uma aplicação. Isso pode ser formalizado como tDSL = tWizard.
Hipótese Alternativa (H11): Com a DSL o tempo gasto pelos participantes na instanciação do framework GRENJ em uma aplicação é menor do que com o wizard. Isso pode ser formalizado como tDSL < tWizard.
Hipótese Alternativa (H12): Com a DSL o tempo gasto pelos participantes na instanciação do framework GRENJ em uma aplicação é maior do que com o wizard. Isso pode ser formalizado como tDSL > tWizard.
Questão 2 (Q2): A DSL reduz a chance dos participantes cometerem erros durante a instanciação do framework GRENJ em uma aplicação? O termo “problemas”, ao invés de “defeitos” ou “falhas”, porque também foram consideradas situações em que o código-fonte não continha defeitos nem apresentava falhas, porém a aplicação não estava correta por falta de alguma característica ou função.
Métrica 2 (M2): número de problemas (p) no código-fonte das aplicações por causa de erros cometidos pelos participantes durante o reúso do framework GRENJ.
Hipótese Nula (H20): Não há diferença significativa no número de problemas encontrados nas aplicações desenvolvidas pelos participantes com o reúso do framework GRENJ com a DSL e com o wizard. Isso pode ser formalizado como pDSL = pWizard.
Hipótese Alternativa (H21): Com a DSL o número de problemas encontrados nas aplicações desenvolvidas com o reúso do framework GRENJ é menor do que com o wizard. Isso pode ser formalizado como pDSL < pWizard.
Hipótese Alternativa (H22): Com a DSL o número de problemas encontrados nas aplicações desenvolvidas com o reúso do framework GRENJ é maior do que com o wizard. Isso pode ser formalizado como pDSL > pWizard.
6.3.1.3 Variáveis
Esse experimento teve as seguintes variáveis independentes: 1) o framework GRENJ; 2) o Eclipse IDE versão 4.2.1; 3) o wizard do framework GRENJ; 4) a linguagem de
programação Java, e 5) as aplicações desenvolvidas pelos participantes: 5.a) Sistema de Biblioteca e 5.b) Sistema de Hotel. As duas aplicações tratam de transações de aluguel e têm o mesmo nível de complexidade.
As variáveis dependentes são as seguintes: 1) eficiência, que está relacionada com o tempo gasto com a instanciação do framework GRENJ para as aplicações do Sistema de Biblioteca e do Sistema de Hotel, e 2) o número de problemas encontrados nas aplicações por decorrência de erros cometidos pelos participantes durante a instanciação do framework.
6.3.1.4 Modelo
O modelo de experimento utilizado foi um fator com dois tratamentos pareados (WOHLIN et al., 2000). Nesse experimento, o fator foi o uso de uma abordagem para instanciar o framework em uma aplicação, enquanto que os tratamentos foram as abordagens aplicadas: DSL e wizard.
O experimento seguiu o formato em que os participantes são alocados em grupos homogêneos para que o nível de experiência deles não impactasse nos resultados. Um Formulário de Caracterização de Participante (Apêndice C) foi elaborado e distribuído entre os participantes para determinar o nível de experiência de cada um. Nesse formulário os participantes responderam questões de múltipla escolha a respeito do seu conhecimento sobre: 1) programação Java, 2) Eclipse IDE, 3) padrões de software e 4) frameworks. Cada questão possuía a seguinte pontuação:
0 – quando o participante não tinha conhecimento algum; 1 – quando o participante tinha apenas conhecimento teórico; 2 – quando o participante tinha conhecimento teórico e prático.
Nessa fase de planejamento do experimento, foi decidido que os participantes seriam divididos em dois grupos (G1 e G2), sendo que cada grupo deveria ser composto com o mesmo número (ou aproximado) de participantes que obtiveram pontuação baixa (0- 2), média (3-5) e alta (6-8) no Formulário de Caracterização de Participante.
Para que pudesse realizar o experimento, os participantes foram treinados na instanciação do framework GRENJ, tanto utilizando a DSL quanto usando o wizard. Para desenvolver uma aplicação reutilizando o framework GRENJ com o wizard, os participantes tinham que selecionar e preencher os formulários do wizard de acordo com os requisitos da aplicação e gerar o código dessa aplicação. Para desenvolver uma aplicação reutilizando o framework GRENJ com a DSL, os participantes tinham que criar um modelo da aplicação utilizando a DSL e gerar o código-fonte dessa aplicação a partir desse modelo.
No quadro 6.2 é apresentado como foram definidas as atividades de desenvolvimento das aplicações reutilizando o framework GRENJ para cada um dos participantes do G1 e do G2.
Quadro 6.2. Atividades do Experimento 1.
Atividade Aplicação Forma de reúso do framework GRENJ Grupo 1 (G1) Grupo 2 (G2)
1 Hotel Wizard DSL
2 Biblioteca DSL Wizard
6.3.1.5 Instrumentação
Os participantes receberam os seguintes materiais para a execução do experimento: documento de requisitos das aplicações; unidades de teste para verificar a existência de problemas nas aplicações; e o Formulário de Coleta de Dados (Apêndice C), no qual era preenchido o tempo gasto no desenvolvimento das aplicações, as mensagens de erro retornadas pelas unidades de testes e opiniões e sugestões a respeito da DSL e do wizard.
6.3.2 Operação do Experimento 1
Depois de definir e planejar o experimento, sua fase de operação foi realizada em duas etapas: Preparação e Execução.
6.3.2.1 Preparação
Alguns dias antes da realização do experimento, os participantes preencheram o Formulário de Caracterização de Participante (Apêndice C), reportando sua experiência com relação aos conceitos e tecnologias utilizados no experimento. Os participantes também foram treinados no desenvolvimento de aplicações reutilizando o framework GRENJ tanto com a DSL quanto com o wizard.
6.3.2.2 Execução
Primeiramente, os participantes foram posicionados nos grupos com base na sua pontuação no Formulário de Caracterização de Participante. Cada grupo ficou com 9 participantes. O G1 ficou com 4 participantes com pontuação baixa (0-2), 3 com pontuação média (3-5) e 2 com pontuação alta (6-8). O G2 ficou com 5 participantes com pontuação baixa (0-2), 2 com pontuação média (3-5) e 2 com pontuação alta (6-8). Após tomarem conhecimento de qual grupo pertenciam, os participantes receberam o material para executarem a Atividade 1. O tempo limite era de 60 minutos para cada atividade.
Na Atividade 1, os participantes do G1 desenvolveram a aplicação Sistema de Hotel reutilizando o framework GRENJ com o wizard e os participantes do G2 desenvolveram a mesma aplicação, porém reutilizando o framework GRENJ com a DSL. Cada participante desenvolveu sua aplicação individualmente e registrou o tempo gasto nessa atividade desde a modelagem (DSL) ou preenchimento dos formulários (wizard) até a geração do código- fonte das aplicações. Depois disso, com o relógio parado, os participantes executavam as unidades de teste para verificar se o framework foi instanciado corretamente ou não. Quando as unidades de testes retornavam mensagens de erro, os participantes escreviam essas mensagens no Formulário de Coleta de Dados (Apêndice C) e, então, mediam o tempo gasto para corrigir os problemas na aplicação e executavam novamente as unidades de teste. Quando ocorriam interrupções não havia pausa na contagem do tempo, porém o tempo gasto com essas interrupções também foi anotado pelos participantes para que fosse abatido do tempo total de desenvolvimento da aplicação. A execução das unidades de teste não era considerada como uma interrrupção.
A Atividade 2 foi executada da mesma forma que a Atividade 1. Contudo, nessa segunda atividade, os participantes do G1 desenvolveram a aplicação do Sistema de Biblioteca reutilizando o framework GRENJ com a DSL e os participantes do G2 desenvolveram a mesma aplicação reutilizando o framework GRENJ com o wizard.