• Nenhum resultado encontrado

5. FERRAMENTA A-USMAP (AUTOMATIC USER STORY MAP)

5.1. Processo e Organização da Ferramenta

A ferramenta A-USMap foi desenvolvida em linguagem de programação JAVA e o Ambiente de Desenvolvimento Integrado (IDE) utilizado foi o Netbeans 8.0.2. Foi necessária a utilização da biblioteca do Stanford Parser que faz a análise gramatical das estórias, a biblioteca WordNet que oferece o banco de sinônimos, a biblioteca Xtream que

permite a manipulação de dados via XML (cadastro de passos de desenvolvimento) e por fim, a biblioteca JGraphX que auxilia na representação gráfica do resultado do sequenciamento.

A Figura 18 apresenta o processo seguido pela ferramenta desenvolvida neste trabalho. A ferramenta apresenta a etapa de definição das Estórias de Usuário e a definição dos componentes de valor (temas). Em seguida, a ferramenta dispara o processo de criação de grupos com base nos temas; Os valores de prioridade e estimativas de esforço, bem como os passos do desenvolvimento (CRUD) são inseridos para que possa disparar o processo de sequenciamento das estórias. Finalmente, o resultado obtido no processo de sequenciamento é apresentado graficamente para que a equipe Scrum possa validá-lo ou refiná-lo na própria interface gráfica.

Figura 18: Processo da ferramenta

A Figura 19 apresenta o conjunto de Estórias de Usuário utilizado para o desenvolvimento da A-USMap. O conjunto demonstra as principais funcionalidades da ferramenta, onde todos os envolvidos trabalham em conjunto (Equipe Scrum), de acordo com o que foi proposto na metodologia (ref. ao Capítulo 4).

Figura 19: Estórias de Usuário (requisitos) da A-USMap

Na definição das Estórias de Usuário e componentes de valor (Estória 1), o usuário deverá escolher o arquivo .txt que contém as Estórias de Usuário digitalizadas (cada estória deve estar digitada em uma linha do arquivo) e inserir os componentes de valor.

Ao agrupar as Estórias de Usuário com base nos componentes de valor (Estória 2), a interface da ferramenta apresenta uma relação de todas as estórias que foram classificadas dentro dos seus respectivos grupos e outra relação das estórias que não foram identificadas como pertencentes a nenhum grupo. Ao analisar o resultado, a equipe Scrum pode remover as estórias (Estória 3) que não satisfaçam o usuário ou mesmo classificar uma estória que não tenha sido classificada anteriormente em um dos grupos criados no processo automático.

O próximo passo é inserir os valores de “Prioridade” e “Esforço” (Estória 4) para cada Estória de Usuário e disparar o processo de sequenciamento.

A Figura 20 apresenta a tela inicial da ferramenta depois dos grupos de Estórias de Usuário terem sido criados sobre um Backlog do Produto. A janela superior do lado esquerdo apresenta o campo para inserir o arquivo com todas as Estórias de Usuário e a listagem dos componentes de valor. Já a janela superior do lado direito apresenta as Estórias de Usuário agrupadas de acordo com os componentes de valor. A janela que fica na parte inferior da interface mostra as Estórias de Usuário que não foram agrupadas. O botão que se encontra na parte inferior direita, intitulado “Check Steps” deve ser utilizado para a próxima etapa, que é o cadastro de Passos e Ações.

Figura 20: Tela inicial após a criação dos grupos

Na etapa de definição de passos de desenvolvimento (Estória 5), o usuário poderá cadastrar todos os passos que ele acha importante para o sequenciamento (não é preciso ficar restrito ao CRUD e pode acomodar configurações específicas). Cada passo pode ser composto de várias ações e o cadastro é feito com verbos que indicam essas ações.

A Figura 21 mostra a tela de cadastro dos passos. Na ação marcada por “1" em vermelho, o usuário pode inserir e excluir Passos; na marcada por “2”, o usuário pode inserir

e remover ações associadas a um passo e, finalmente na ação marcada por “3”, o usuário visualizará o resultado do sequenciamento.

Figura 21: Cadastro de passos do sequenciamento

Esse cadastro de passos e ações será armazenado em um arquivo XML (eXtensible Markup Language) que armazena os dados cadastrados em um documento organizado hierarquicamente. Os passos são marcados por “<step>”, com os atributos “<name>, “<order>" e "<actions>". Cada ação de um passo é definida pelo marcador “<verb>”, com o atributo “<name>”. Esta escolha foi feita por se tratar de um cadastro simples, não sendo necessária a criação de um banco de dados.

O arquivo é atualizado em todo o cadastro de passos. A Figura 22 mostra a estrutura do arquivo XML.

Figura 22: Estrutura do arquivo XML

Depois da definição dos passos, o resultado final do sequenciamento (Estória 6) é apresentado na interface da ferramenta. Para este trabalho, foram consideradas três diferentes bibliotecas Java para a apresentação gráfica: Grappa (Graphviz, 2015), Java Universal Network/Graph Framework (JUNG, 2015) e JGraphX (2016). Entre essas, a única que disponibiliza uma release recente é a JGraphX que é uma biblioteca Java Swing que permite, além da visualização, a interação com os grafos gerados. Sendo assim, a JGraphX foi a ferramenta escolhida para compor a interface.

A Figura 23 apresenta um exemplo de visualização adaptado ao contexto do Scrum, considerando-se cada vértice do grafo como sendo uma Estória de Usuário e cada aresta uma relação entre essas estórias. Nesse exemplo, foi criada uma sequência para o componente de valor “faq” e outra para o componente de valor “courses”. Para cada estória é desenhado um cartão e para cada ligação é desenhada uma seta.

Figura 23: Exemplo resultado do sequenciamento

Conforme mostra a Figura 24, se o usuário desejar poderá manipular o resultado final, editando os valores de prioridade e esforço ou excluindo estórias e suas ligações (Estória 7).

Na Figura 24, temos o mesmo resultado final da Figura 23, porém, foi alterado o valor de prioridade da quarta estória do sequenciamento do componente de valor “courses”, fazendo com que ela trocasse de lugar com a terceira estória, e a última estória do componente de valor faq foi excluída. Depois da edição e exclusão, o sequenciamento é refeito (Estória 8).

Figura 24: Exemplo do resultado após a manipulação