Análise de Evolução de software para recuperação da rastreabilidade entre documentação e...

Preview:

Citation preview

Análise de Evolução de software para

recuperação da rastreabilidade entre

documentação e código fonte baseada em

modelos de características

Aluno: Allysson Costa e SilvaOrientador: Marcelo de Almeida MaiaLinha de Pesquisa: Engenharia de Software

ContextualizaçãoManutenção de software

Funcionalidades do sistema de software com defeitos Funcionalidades a serem adicionadas/alteradas

Espalhamento da implementação A implementação das funcionalidades perpassam

vários componentes do sistema como métodos, classes e pacotes

Necessidade de compreensão da implementação Novos desenvolvedores Código antigo(legado)

Compreensão dos pontos alterados entre diferentes versões do sistema

Caracterização do problema Rastreabilidade entre documentação e código fonte não documentada

Dificuldade de focalização em partes específicas do código fonte durante a manutenção

Distância sintática e semântica entre os vocabulários presentes no código fonte e documentação

Fundamentos teóricosCaracterísticas (features)

Funcionalidades presentes no software que podem ser observadas e controladas em tempo de execução pelos usuários finais

Comunicação entre usuários e desenvolvedores em razão das funcionalidades do sistema

Uma importante ferramenta para modelagem de conceitos do domínio do problema e para a engenharia reversa

LSI (Latent Semantic Indexing) Técnica para Recuperação de Informação Espaço vetorial semântico Medir a similaridade entre termos e documentos

Objetivos do trabalho

Recuperar a rastreabilidade entre código fonte e documentação com foco nas partes alteradas entre duas versões do sistema em

análise

Gerar uma aproximação entres os vocabulários presentes no código fonte e na

documentação do sistema

MELHORAR A COMPREENSÃO DO SISTEMA

Proposta do trabalho

Como fazer?

Rastro de execução de

uma característicado sistema em estudo

...

...

SUBCONJUNTOS DE ELEMENTOS DO RASTRO

(SUB-RASTRO)

...

...

RÓTULO 1

...

...RÓTULOS

SEMÂNTICOS

Executar uma característica para duas versões A e B do sistema em análise.

DESENVOLVEDOR

RÓTULO 2

RÓTULO 3

Na prática…

jEdit

Funcionalidade relativa a colocar palavras selecionadas

em maiúsculo

Executando a característica para coleta de rastros

RÓTULO1: CLICK ON MENU EDIT

RÓTULO2:MOUSE OVER SUBITEM TEXT OF MENU EDIT

RÓTULO3:UPPERCASE LOWER CASE ACTIONSUBITEM MENU EDIT/TEXT

Conjuntos de elementos (métodos) do sub-rastro

IDEM…

Analisando somente o que sofreu alteração entre duas versões A e

B de determinado software…

Isolar o que foi alterado no subconjunto do rastro com RÓTULO 1

SUBCONJUNTO DE ELEMENTOS

DO RASTRO PARA VERSÃO A

SUBCONJUNTO DE ELEMENTOS

DO RASTRO PARA

VERSÃO B

VERIFICAR ALTERAÇÕES

Elementos do sub-rastro que representam o código fonte alterado

SEPARARCÓDIGO

ELEMENTOS DE RASTRO FILTRADOS

PARA O

SUB-RASTRO

COM ROTÚLO1

CÓDIGO FONTE ALTERADOPARA SUB-RASTRO COM RÓTULO 1

Enriquecento o código fonte com elementos semânticos

ADICIONARVALOR

SEMÂNTICO

RÓTULO 1

RÓTULO 2

RÓTULO 3

CÓDIGO FONTE ALTERADO COM VALOR SEMÂNTICO AGREGADO

PARA SUB-RASTRO COM RÓTULO 1

CÓDIGO FONTE ALTERADO

PARA SUB-RASTRO COM RÓTULO 1

Processo análogo com os demais sub-rastros

ADICIONARVALOR

SEMÂNTICO

RÓTULO 1

RÓTULO 2

RÓTULO 3

CÓDIGO FONTE ALTERADO COM VALOR SEMÂNTICO AGREGADO

PARA SUB-RASTRO COM RÓTULO 2

CÓDIGO FONTE ALTERADO

PARA SUB-RASTRO COM RÓTULO 2

Processo análogo com os demais sub-rastros

ADICIONARVALOR

SEMÂNTICO

RÓTULO 1

RÓTULO 2

RÓTULO 3

CÓDIGO FONTE ALTERADO COM VALOR SEMÂNTICO AGREGADO

PARA SUB-RASTRO COM RÓTULO 1

CÓDIGO FONTE ALTERADO

PARA SUB-RASTRO COM RÓTULO 3

Configuração final: código fonte alterado com valor semântico agregado

Próximo passo... LSI

DESENVOLVEDORDOCUMENTAÇÃO

DO SISTEMA

ESPAÇO VETORIAL SEMÂNTICO

CÓDIGO FONTE ALTERADO COM VALOR SEMÂNTICO AGREGADO

LSI

PARÂMETROS PARA CONSULTA

CONSULTADE INTERESSE

CÓDIGO FONTERETORNADO

Avaliação da pesquisa LSI

CONSULTAENVOLVEND

OALGUM TERMO

DO RÓTULO 1

RESULTADO 1

LSILSI

RESULTADO 2

DESENVOLVEDOR

DOCUMENTAÇÃO

ESPAÇO VETORIALSEMÂNTICO

ESPAÇO VETORIALSEMÂNTICO

CÓDIGO FONTE ALTERADO SEMVALOR SEMÂNTICO AGREGADO

CÓDIGO FONTE ALTERADO COMVALOR SEMÂNTICO AGREGADO

Resultados esperados

RESULTADO 11°.........cod_font1.java2°.........cod_font4.java

RESULTADO 21°.........cod_font4.java2°.........cod_font2.java3°.........cod_font9.java4°.........cod_font1.java

MENOS resultados retornados na consulta.

MAIS resultados retornados na consulta.X

ANÁLISE COMPARATIVA

EXEMPLO: SUPONDO QUE cod_font4.java seja mais relevante para a pesquisa.

Posição (ranking) com MENOR precisão.

Posição (ranking) com MAIOR precisão.X

Considerações Finais

O estudo de caso utilizará 3 softwares de código aberto que possuam disponíveis:

repositório de versões; documentação (notas de versão, relatórios de

correção de erros, requisição de mudanças e quaisquer documentações que espelhem mudanças no sistema).

Análise dos resultados da consulta LSI a partir de medidas como revocação (recall) e precisão (precision).

Sugestões/perguntas

?

Recommended