• Nenhum resultado encontrado

Metodologia para o experimento de identificação de estórias duplicadas

6 Metodologia de Pesquisa

6.2 Metodologia para o experimento de identificação de estórias duplicadas

O objetivo deste experimento é verificar se é possível identificar casos de estórias de usuários duplicadas por meio da utilização de uma função de similaridade. A hipótese adotada é que uma estória de usuário n, pertencente ao conjunto de estórias novas N, seja considerada uma versão duplicada da estória original o, pertencente ao conjunto de estórias originais O, quando n e o possuírem um nível de similaridade maior ou igual a um determinado limiar informado pelo usuário.

A função de similaridade utilizada neste experimento foi a função escolhida por meio do experimento descrito na seção 6.1. A ferramenta de apoio à decisão desenvolvida

neste trabalho utilizou tal função de similaridade e comparou as estórias de usuários reais e estórias de usuários duplicadas produzidas para este experimento. A ferramenta de apoio à decisão comparou estórias originais com novas estórias, de fato duplicadas, e após analisar um limiar de similaridade informado, indicou os possíveis casos encontrados de estórias duplicadas. O número de pares de estórias de usuário que foram comparados é igual a

num_O x num_N, tal que num_O é o número de estórias originais e num_N é o número de

novas estórias de usuário duplicadas. No Quadro 5, a seguir, é apresentado o algoritmo de indicação de estórias duplicadas utilizado pela ferramenta de apoio à decisão.

Quadro 5 - Algoritmo para indicação de estórias duplicadas

Algoritmo para indicação de duplicidade de estórias de usuário

entrada: estórias de usuários originais O = {o1, o2, …, on}

estórias de usuários novas N = {n1, n2, …, nk}

limiar de similaridade L

saída: casos de duplicidade Dup = {(o1 n1), …, (on nk)}

para cada o∈O faça para cada n∈N faça

- calcular a similaridade S entre o e n; se S >= L então

- indicar como possível caso de duplicidade o par de estórias o,n; fimse

fimpara fimpara

Para avaliação dos resultados, foram considerados os números de verdadeiro positivos (VP), falso positivos (FP), verdadeiro negativos (VN) e falso negativos (FN). Um caso verdadeiro positivo é aquele que para o qual uma real estória duplicada é indicada pelo algoritmo; um caso falso positivo é aquele em que uma estória não duplicada é erroneamente indicada pelo algoritmo como sendo uma estória duplicada; um caso verdadeiro negativo ocorre quando uma estória não duplicada é corretamente identificada pelo algoritmo e; um caso falso negativo é aquele par o qual uma real estória duplicada é classificada pelo algoritmo como estória não duplicada. A Tabela 1 apresenta a tabela de contingência com os possíveis resultados para a indicação de duplicações de estórias de usuário.

Tabela 1 - Tabela de contingência com os resultados para indicação de estórias duplicadas Abaixo do limiar de similaridade Acima ou igual ao limiar de similaridade Total Estórias não duplicadas Verdadeiro Negativo (VN) Falso Positivo (FP) VN + FP Estórias duplicadas Falso Negativo (FN) Verdadeiro Positivo (VP) FN + VP Total VN + FN FP + VP VN + FP + FN + VP

A partir dos números conseguidos para os casos verdadeiro positivos, falso positivos, verdadeiro negativos e falso negativos foram calculadas as medidas Recall (revocação), Precision (precisão) e Accuracy (acurácia). Com base nas medidas Recall e

Precision foi calculado a medida F-measure (medida F). Tais medidas são descritas em

Rijsbergen (1979) e são geralmente utilizadas para analisar o desempenho de classificadores, como por exemplo, a tarefa de categorização de textos visto em Yang (1999).

As medidas recall, precision, F-measure e accuracy são descritas nas Equações 25, 26, 27 e 28 respectivamente. A medida recall refere-se a completude ou cobertura e diz o percentual de casos de estórias duplicadas identificadas corretamente dentre todas as estórias realmente duplicadas. A medida precision diz o percentual de estórias duplicadas identificadas corretamente dentre todas as que foram classificadas como duplicadas. Já, a medida F-measure, equilibra as medidas recall e precision procurando dar a elas pesos iguais o que permitirá analisar, de forma unificada, o percentual de cobertura de estórias duplicadas e a precisão do método de identificação de duplicidades. Com a medida F-measure é possível ter uma avaliação sobre o desempenho do método de identificação de duplicidades com base na cobertura e precisão alcançada pelo método. Por fim, a medida accuracy diz quão efetivas são as indicações verdadeiras, ou seja, o percentual de estórias realmente duplicadas e estórias realmente não duplicadas que foram corretamente classificadas.

2&%1 = l` + mSl`

(25)

O2&% = l` + m`l`

(26)

m˗,&1J2& = 2 8 2&%1 + O2&% 2&%1 8 O2&%

(27)

1%%J21%o = l` + m` + lS + mSl` + lS

(28)

As estórias de usuário duplicadas utilizadas neste experimento foram geradas a partir de estórias reais de três diferentes bases com o uso de ferramentas automáticas de reescrita de texto. As ferramentas utilizadas neste experimento parafrasearam o texto da estória original, gerando uma estória duplicada com texto de grafia distinta, mas com mesmo significado do texto da estória original. A Figura 16 apresenta um esquema em que se apresentam os conjuntos de estórias duplicadas (X1, X2 e X3; Y1, Y2 e Y3; Z1, Z2 e Z3) gerados

a partir das ferramentas de reescrita de texto ou parafraseadores (P1, P2 e P3), para as bases de

estórias A, B e C. Amostras extraídas dos conjuntos de estórias duplicadas foram utilizadas neste experimento.

As estórias de usuário originais e estórias de usuário duplicadas analisadas neste experimento foram submetidas aos processos de preprocessamento tokenização, lematização e remoção de stopwords. Para este experimento, foi considerado apenas o trecho condizente à funcionalidade tanto das estórias de usuário originais, quanto das estórias duplicadas.

O Quadro 6 apresenta alguns exemplos de trechos de funcionalidades de estórias de usuário originais e estórias de usuário duplicadas.

Quadro 6 - Exemplos de funcionalidades de estórias de usuário duplicadas Funcionalidade Original: I want to send files to allow students to download

Funcionalidade Duplicada: I need to send documents to permit pupils to download Funcionalidade Original: I want to send announcements to the students

Funcionalidade Duplicada: I need to send declarations to the pupils

Funcionalidade Original: I want to see messages or warnings given by the teacher to me

Funcionalidade Duplicada: I need to receive communications or notices given by the instructor to me

Em um cenário real de uso da metodologia ágil Scrum, este experimento indicará se o uso de uma função de similaridade pode indicar a existência de duplicidade de estórias de usuário entre novas estórias de usuário que serão inseridas no backlog do produto e estórias de usuário não implementadas.

Base A P1 P2 P3 X1 X2 X3 Base B P1 P2 P3 Y1 Y2 Y3 Base C P1 P2 P3 Z1 Z2 Z3