23
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 Silva Orientador: Marcelo de Almeida Maia Linha de Pesquisa: Engenharia de Software

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

Embed Size (px)

Citation preview

Page 1: 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

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

Page 2: 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

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

Page 3: 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

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

Page 4: 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

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

Page 5: 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

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

Page 6: 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

Proposta do trabalho

Page 7: 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

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

Page 8: 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

Na prática…

jEdit

Funcionalidade relativa a colocar palavras selecionadas

em maiúsculo

Page 9: 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

Executando a característica para coleta de rastros

Page 10: 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

RÓTULO1: CLICK ON MENU EDIT

RÓTULO2:MOUSE OVER SUBITEM TEXT OF MENU EDIT

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

Page 11: 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

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

IDEM…

Page 12: 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

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

B de determinado software…

Page 13: 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

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

Page 14: 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

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

Page 15: 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

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

Page 16: 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

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

Page 17: 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

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

Page 18: 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

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

Page 19: 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

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

Page 20: 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

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

Page 21: 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

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

Page 22: 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

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).

Page 23: 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

Sugestões/perguntas

?