• Nenhum resultado encontrado

5. Avaliação

5.1. Análise da DSL Intermediária Proposta

5.2.2. Experimento Controlado

Esta Seção descreve a definição, o design e o planejamento do experimento controlado que foi efetuado com a linguagem LWiSSy seguindo as diretrizes apresentadas em um renomado livro de engenharia de software experimental

111

[JURISTO, 2001]. A Tabela 5-2 provê uma visão global dos principais elementos do experimento.

Objetivo Avaliar a eficácia de LWiSSy em facilitar a

compreensão e manutenção de sistemas RSASF.

Contexto Exercício em sala de aula, sistemas de RSASF

serão analisados.

Hipóteses nulas

(1) Nenhum efeito sobre a eficácia em relação à compreensão.

(2) Nenhum efeito sobre a eficácia em relação à manutenção.

Fator principal Tipo de linguagem usada; código fonte (Java ME)

vs. modelos gráficos (LWiSSy)

Variáveis dependentes Nível de compreensão e tempo

Tabela 5-2 Visão geral do experimento

Como descrito na Tabela 5-2, o objetivo do estudo é analisar LWiSSy com o

propósito de avaliar sua eficácia no que diz respeito a facilitação da

compreensão e manutenção de sistemas RSASF. O foco na qualidade é melhorar a eficácia obtida durante o desenvolvimento de sistemas para RSASF na perspectiva dos especialistas de domínio e redes. O experimento é realizado em um contexto onde os participantes são estudantes de um curso de graduação em Ciência da Computação. O material do experimento consiste em dois sistemas RSASF, sendo um modelado em LWiSSy e outro em Java ME. O experimento foi replicado em dois diferentes grupos utilizando o mesmo design, procedimento e material. No restante da Seção, os dois grupos serão nomeados como Grupo A e Grupo B, respectivamente.

5.2.2.1. Participantes

Para este experimento foram considerados vinte estudantes da disciplina de Arquitetura de Software, no último ano do curso de graduação em Ciência da Computação da Universidade Federal do Rio Grande do Norte. Os estudantes já cursaram as disciplinas de programação de sistemas e engenharia de software. A disciplina de redes de computadores está sendo cursada neste semestre também.

112

Inicialmente, os estudantes foram separados em dois grupos (Grupo A e B). Eles possuem um nível de conhecimento misto; em geral têm conhecimento limitado, porém similar, nas áreas de engenharia de software, redes de computadores e programação. Em ambos os grupos, a amostra de participantes que participou do experimento foi composta de estudantes pertencentes ao curso que, voluntariamente, concordaram em participar do experimento. Por fim, o experimento não foi mandatório, os resultados foram anônimos para conservar a privacidade dos envolvidos e os estudantes não foram avaliados de acordo com suas performances.

5.2.2.2. Material

O experimento foi executado considerando dois sistemas RSASF. O primeiro sistema, FireDetectionSystem, foi descrito anteriormente na Seção 4.4.1. Ele foi modelado utilizando LWiSSy.

O segundo sistema, o qual foi modelado em Java ME, é um sistema demo para Sun SPOT que envia dados periódicos de um ou mais sensores Sun SPOT para uma aplicação instalada em um laptop ou PC que exibe os dados coletados. Ela é composta de duas aplicações. A primeira aplicação, instalada nos nós sensores, coleta dados periodicamente de um sensor e transmite-os para uma aplicação desktop onde os dados são exibidos. A segunda aplicação, instalada no laptop ou PC, coleta e exibe as amostras enviadas pelos sensores. Apesar de simples, os sistemas são realistas o suficiente e podem ser considerados como representativos para sistemas RSASF. Além disso, ambos os sistemas têm as mesmas complexidade e características de rede, além de aplicações similares.

5.2.2.3. Definição de hipóteses

As questões de pesquisa deste experimento são as seguintes:

RQ1. A utilização de LWiSSy ajuda os especialistas a entenderem o sistema

113

RQ2. A utilização de LWiSSy afeta no tempo necessário para a compreensão

dos sistemas modelados?

Uma vez que as questões de pesquisa foram formuladas, é possível transformá-las em hipóteses nulas para serem testadas durante o experimento:

H0c: A utilização de LWiSSY não afeta significativamente o nível de

compreensão do sistema;

H0t: A utilização de LWiSSY não afeta significativamente o tempo gasto na

compreensão do sistema.

Desse modo, as hipóteses alternativas são:

H0c: A utilização de LWiSSY afeta significativamente o nível de compreensão

do sistema;

H0t: A utilização de LWiSSY afeta significativamente o tempo gasto na

compreensão do sistema.

5.2.2.4. Seleção de variáveis

As variáveis dependentes do experimento são o nível de compreensão dos sistemas e o tempo necessário para entendê-los. O nível de compreensão obtido foi medido pelas respostas dos participantes em cada um dos questionários aplicados e que podem ser visualizados no Anexo A. As questões são subjetivas e, por isso, as respostas foram avaliadas pela explicação geral dos sistemas e palavras-chave presentes. O tempo necessário para responder cada questão foi medido pelo preenchimento do horário inicial e final nos quais os participantes executaram a tarefa de compreensão dos sistemas (métrica Time).

Dessa forma, para cada sistema y e participante P, nós consideramos as seguintes métricas:

a) – se a descrição do sistema está correta ou não.

b) – o tempo necessário para analisar a especificação do sistema e responder a questão.

114

O principal fator do estudo é a abordagem usada para expressar os sistemas: ou uma abordagem tradicional (com Java ME), ou nossa abordagem (com LWiSSy – utilização de DSL).

5.2.2.5. Design

Foi adotado um design de experimento simples destinado a ser executado em duas seções de 3 horas, cada. Os participantes foram randomicamente divididos em dois grupos (A e B) de dez estudantes. Uma vez que as habilidades dos participantes eram similares, como mencionado anteriormente, não foi necessário adotar nenhuma estratégia particular para garantir que as habilidades fossem distribuídas homogeneamente entre os dois grupos.

Na primeira sessão, os participantes analisaram um sistema modelado em LWiSSy e responderam um questionário. Logo após, um outro sistema, modelado em Java ME, foi analisado e outro questionário foi respondido. É importante ressaltar que os sistemas foram modelados de maneira que os participantes de ambos os grupos tivessem dificuldades comparáveis.

A segunda sessão foi similar à primeira, mas os sistemas foram analisados na ordem invertida. Assim sendo, primeiro eles analisaram o sistema modelado em Java ME e responderam o respectivo questionário. Por fim, analisaram o sistema modelado em LWiSSy e responderam o devido questionário.

5.2.2.6. Treinamento

Os treinamentos foram feitos por vídeo-aula para garantir que o mesmo nível de conhecimento fosse dispendido para ambos os grupos envolvidos no experimento.

Inicialmente, foi ministrada uma vídeo-aula de introdução à área de RSASF. Logo após, os participantes receberam treinamento sobre a utilização das linguagens Java ME e LWiSSy no desenvolvimento de sistemas para RSASF. As vídeo-aulas correspondentes às linguagens utilizadas tiveram uma duração de vinte minutos cada.

115

5.2.2.7. Procedimento

O experimento foi realizado seguindo um procedimento exato. Primeiro, os participantes receberam uma breve introdução sobre qual o foco do experimento, quais as atividades que eles teriam que desempenhar e foram randomicamente divididos nos grupos A e B. Depois disso, eles receberam o treinamento adequado e que já foi detalhado na Seção anterior. Feito isto, os participantes do grupo A receberam um sistema modelado com LWiSSy, enquanto o sistema fornecido aos participantes do grupo B foi modelado com Java ME. Neste momento foi proposto a ambos os grupos que eles efetuassem a análise dos sistemas e respondessem um questionário acerca das funcionalidades presentes em cada um dos sistemas. Após esta atividade, os grupos inverteram os papéis e aqueles que analisaram e responderam o questionário do sistema modelado com LWiSSy efetuaram a mesma atividade para àquele modelado com Java ME e vice-versa. Durante estas duas últimas tarefas, os participantes dispuseram de tempo livre.

Finalmente, um questionário pós-experimento foi aplicado a fim de obtermos

insights sobre os diversos comportamentos dos participantes durante o

experimento e uma melhor explicação sobre os resultados quantitativos. O questionário é composto de 19 questões. O primeiro grupo de questões (Q1 até

Q8) tem o propósito de validar a fonte de instrumentação da validade interna. O

segundo grupo de questões (Q9 até Q14) efetua uma comparação entre a utilização das linguagens LWiSSy e Java ME. O último grupo de questões foca na opinião dos participantes sobre LWiSSy e a Q13, em especial, é dedicada a mensurar a utilidade percebida em LWiSSy. Eventualmente, as questões são expressas na escala Likert ([LIKERT, 1932]).

Todos os questionários utilizados durante a realização do experimento podem ser visualizados no Anexo A deste trabalho.

116

5.2.2.8. Resultados

A maneira como o material foi preparado tornou difícil e arriscado uma reação

on-the-fly.

Logo abaixo são reportados os resultados destinados a responder as questões de pesquisa RQ1 e RQ2.

RQ1. A utilização de LWiSSy ajuda os especialistas a entender o sistema WSAN modelado?

A porcentagem média de respostas corretas entre todos os participantes foi de 68% para os sistemas modelados com LWiSSy, com um mínimo de 30% e um máximo de 100%. Para testar a hipótese nula H0c, consideramos o número de respostas corretas e erradas dadas pelos participantes pertencentes às duas amostras experimentais. A fim de avaliar as respostas, nós consideramos um conjunto de palavras-chave e a descrição geral do sistema dados pelos participantes.

Resultados indicam que a utilizada de LWiSSy depende do background do participante em UML. Eles também mostram que as pessoas com conhecimento superficial acerca de WSAN não tem problemas em entender sistemas desenvolvidos em LWiSSy. Em geral, os participantes tiveram alguma dificuldade em identificar loops e estruturas de controle.

Considerando os resultados de ambos os experimentos, há uma significante diferença entre LWiSSy e Java ME (e.g. o número de respostas corretas foi significantemente mais alto com LWiSSy do que com Java ME). A média de porcentagem de respostas corretas entre todos os participantes foi de 48% para o sistema desenvolvido em Java ME, com um mínio de 10% e um máximo de 90%.

Os resultados indicam que a utilização de LWiSSy pode facilitar a compreensão de sistemas para WSAN ajudando, assim, a melhorar sua manutenção.

117

RQ2. A utilização de LWiSSy afeta no tempo necessário para a compreensão dos sistemas modelados?

Os participantes gastaram, em média, 12 minutos para entender o sistema modelado com LWiSSy, com um mínimo de 7 minutos e um máximo de 18 minutos.

Para testar a hipótese nula H0t, nós efetuamos uma comparação entre o tempo gasto pelos participantes para descrever o sistema modelado com LWiSSy e o tempo gasto por eles para descrever o sistema modelado cm Java ME. Os resultados mostram que durante a análise do sistema modelado em Java ME, os participantes gastaram 15% a mais de tempo do que durante a análise com LWiSSy.

Dessa forma, podemos concluir que LWiSSy tem um impacto positivos no tempo de compreensão quando comparada com Java ME.

5.2.2.9. Riscos a Validade

Um risco a validade desta prova de conceito é como a compreensão dos sistemas e o esforço gasto foram medidos. A compreensão do sistema foi avaliada por meio de questões relacionadas com cada sistema, como descrito nas seções anteriores.

Nossos resultados podem estar generalizados para desenvolvedores júnior, mas para esboçar qualquer conclusão sobre desenvolvedores mais experientes são necessários estudos empíricos envolvendo estes profissionais. Além disso, o número de participantes (vinte participantes) pode limitar a capacidade de testes estatísticos em revelar qualquer efeito. Para evitar ameaças sociais devido à apreensão de avaliação, os participantes não foram avaliados quanto ao desempenho. Finalmente, os participantes não tinham conhecimento sobre as hipóteses experimentais.

118

Documentos relacionados