• Nenhum resultado encontrado

Trabalhos relacionados ao uso de medida de similaridade para análise de requisitos

5 Trabalhos Relacionados

5.3 Trabalhos relacionados ao uso de medida de similaridade para análise de requisitos

apoiado pelos grupos de estórias sugeridos pela ferramenta desenvolvida neste trabalho.

5.3 Trabalhos relacionados ao uso de medida de similaridade para análise de requisitos

No trabalho de Matsuoka e Lepage (2011) é apresentada uma abordagem para a detecção de termos ambíguos em especificações de requisitos, para contribuir com a qualidade do desenvolvimento do software. Segundo os autores, um sistema que verifica a existência de palavras ambíguas em requisitos de software ajudará o analista humano a tomar uma decisão sobre o uso correto do termo. A abordagem sugerida pelos autores consiste em, a partir de um texto T a ser analisado, extrair os termos candidatos a palavras ambíguas w, restringindo-se ao termos técnicos conforme recomendações contidas na IEEE std 830 (IEEE, 1998). Em seguida são coletados da WordNet todos os significados de w e é feita a atribuição deles para cada sentença S de T, por meio da medida de similaridade semântica WuP. Após isso, os significados de w para cada S são reatribuídos por meio de agrupamento particional. Nesse processo de agrupamento particional é utilizada a medida similaridade semântica WuP para verificar a semelhança entre as sentenças. Por fim, as sentenças são agrupadas novamente por seus conjuntos de significados. Segundo os autores, após esse agrupamento

final, restará apenas uma única sentença S onde a palavra w é considerada ambígua. Para outras sentenças, a palavra w aparentemente não é ambígua.

Para resolver o problema de descoberta de serviços inter e multi organizacionais, Yale-Loehr et al. (2010) desenvolvem uma abordagem semi-automática para recomendar serviços compartilhados a partir de especificações de requisitos de software. Nessa abordagem, é utilizada uma função similaridade semântica para comparar palavras-chaves nas especificações de requisitos por meio dos conjuntos de sinônimos (denominado synsets) extraídos da WordNet. Segundo os autores, o algoritmo da função de similaridade compara dois documentos de requisitos e emite um conjunto de requisitos semelhantes. Para isso, o algoritmo recebe como entrada duas listas que representam as palavras-chaves de duas linhas de diferentes documentos de requisitos. Em seguida, cada sinônimo de cada palavra da primeira lista é comparado a cada palavra da segunda lista. Se a semelhança entre as palavras atingir determinado limiar e se o sinônimo estiver contido na outra palavra, elas são consideradas semelhantes. O algoritmo de similaridade retornará um conjunto de palavras semelhantes que será utilizado nas etapas seguintes do sistema de recomendação de serviços compartilhados.

O objetivo do reuso de software é reaproveitar partes de um software já produzido em novos projetos, visando à diminuição de custos, ao aumento de produtividade e à redução do esforço de desenvolvimento. No trabalho de Bildhauer et al. (2009), os autores apresentam o projeto ReDseeDS que apóia o reuso de partes de software baseando-se na verificação de similaridade dos seus requisitos. Segundo os autores, quando se inicia o desenvolvimento de um novo software, os novos requisitos são comparados a antigos requisitos armazenados em repositórios de casos passados. A comparação entre os requisitos pode ser feita em três diferentes níveis de granularidade: i) similaridade de palavras básicas; ii) similaridade de sentenças em linguagem natural; e iii) similaridade de cenários. Para calcular a similaridade entre palavras básicas, os autores utilizam a abordagem proposta por Li et al. (2006), em que a medida de similaridade entre palavras é calculada baseando-se no comprimento de caminho mínimo entre dois synsets no grafo, já que, na WordNet, os nomes e verbos são arranjados hierarquicamente em um grafo acíclico direcionado pelo relacionamento do tipo hasHyponym. Para calcular a similaridade entre as sentenças, os autores extraem, de cada sentença, um vetor de palavras cujo comprimento é o numero de palavras distintas de cada sentença. O valor referente à similaridade de cada palavra do vetor para as demais palavras da sentença é

calculado usando a abordagem proposta por Li et al. (2006). A similaridade entre as sentenças é definida com base no cosseno do ângulo formado entre os vetores.

No trabalho de Gao et al. (2007), os autores apresentam uma metodologia para procurar requisitos para software de Planejamento de Recurso Corporativo (do Inglês,

Enterprise Resource Planning), ou simplesmente ERP. Segundo os autores, os usuários

corporativos usam termos diferentes dos usados pelos fornecedores de ERP, e, por isso, é necessário fazer a correspondência entre as atividades empresariais e as funções do sistema ERP. As atividades empresariais e as funções do sistema são representadas no formato de modelo de negócios são construídos com o uso da linguagem VPML. Para medir a similaridade dos modelos, os autores combinam o uso de medidas de similaridade semântica baseada em distância entre conceitos àquelas baseadas em características dos conceitos. A similaridade entre os modelos é verificada em nível de atividade. Uma atividade é definida como um 4-Tupla: (nome, entrada, saída, recurso) em que "nome" refere-se ao identificador da atividade; "entrada" refere-se aos objetos de negócio; "saída" são os formulários ou eventos de saída; e "recurso" refere-se à pessoa ou máquina necessária para a atividade. Para os autores, a verificação de similaridade entre o modelo de atividades fornecido pela empresa e o modelo de referência do software ERP ajudará a empresa a decidir por mudar seus processos de negócios ou personalizar o software ERP.

Durante o desenvolvimento de um software, o analista de requisitos pode pesquisar por funcionalidades relacionadas, ambíguas ou duplicadas. Em Natt och Dag et. al, (2002), os autores apresentam um método para encontrar relacionamentos entre requisitos por meio da análise de similaridade textual com auxílio de medidas estatísticas. Nesse trabalho, os autores utilizam três medidas estatísticas de similaridade para encontrar pares de requisitos textuais duplicados. As medidas de similaridade Dice, Cosine e Jaccard foram utilizadas para verificar o nível de correspondência entre termos para os campos descrição e resumo dos requisitos analisados. A partir de uma tabela de contingência, os autores avaliaram os resultados obtidos por faixas de limiar de similaridade para uma das medidas. Segundo os autores, o método proposto pode ser eficaz para identificar requisitos duplicados e interdependência entre eles. No entanto, há uma limitação da proposta desse trabalho que está relacionada ao tamanho do texto que compõe os requisitos. Para requisitos descritos com pouco texto, acredita-se que as medidas de similaridade propostas sejam ineficazes, uma vez que, a quantidade de palavras para o levantamento de dados estatísticos é pequena. Nesse caso, o uso de funções de similaridade que considerem o relacionamento entre palavras

distintas, ao invés daquelas que consideram apenas a exata correspondência entre termos, pode minimizar problemas particulares envolvendo similaridade entre textos curtos.

Os trabalhos apresentados nesta seção realizam a comparação dos requisitos por similaridade textual. As estratégias de verificação de similaridade vistas nos trabalhos são baseadas em dados estatísticos, como por exemplo, os dados usados nas funções Dice e Jaccard, em vetores de termos, como a medida Cosine Similarity ou baseadas em informações obtidas da WordNet, como a distância entre os conceitos. De modo geral, os trabalhos aqui apresentados utilizam alguma medida de similaridade para identificar características comuns existentes em requisitos.

A abordagem proposta neste trabalho utilizou uma medida de similaridade para comparar estórias de usuário para sugerir possíveis casos de duplicidade e evolução em requisitos. Este trabalho também utilizou uma função de similaridade para apoiar o agrupamento de estórias de usuário e sugerir possíveis alterações em sprints do Scrum.

Este capítulo apresentou alguns trabalhos que, de alguma maneira, estão relacionados a abordagem desenvolvida neste trabalho. Foram apresentados trabalhos relacionados a agrupamento de requisitos, a mineração de estórias de usuário e trabalhos que fazem uso de alguma medida de similaridade para analisar requisitos. Os estudos aqui vistos mostram que os requisitos textuais podem ser analisados por uso de agrupamento de textos e por similaridade. No entanto, boa parte destes trabalhos analisam requisitos que possuem mais conteúdo de texto que as estórias de usuário empregadas no Scrum. No geral, as estórias usadas no Scrum são sentenças curtas de texto e, por esta razão, possuem uma quantidade menor de palavras para ser analisada.