Post on 18-Apr-2015
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
?