Slide 1

Propaganda
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
Contextualização
Manutençã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óricos
Caracterí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?
 Executar uma característica para duas versões A e B do
sistema em análise.
RÓTULO 1
RÓTULO 2
Rastro de
execução de
uma
característica
do sistema
em estudo
DESENVOLVEDOR
RÓTULO 3
...
...
...
...
...
...
SUBCONJUNTOS DE
ELEMENTOS DO RASTRO
(SUB-RASTRO)
RÓTULOS
SEMÂNTICOS
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
ACTION
SUBITEM
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
SUBCONJUNTO
DE ELEMENTOS
DO
RASTRO PARA
VERSÃO B
VERSÃO A
VERIFICAR
ALTERAÇÕES
Elementos do sub-rastro que
representam o código fonte alterado
ELEMENTOS
DE RASTRO
FILTRADOS
PARA
O
SUBRASTRO
COM
ROTÚLO1
SEPARAR
CÓDIGO
CÓDIGO FONTE ALTERADO
PARA SUB-RASTRO COM RÓTULO 1
Enriquecento o código fonte com
elementos semânticos
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
ADICIONAR
VALOR
SEMÂNTICO
RÓTULO 2
RÓTULO 1
RÓTULO 3
Processo análogo com os
demais sub-rastros
CÓDIGO FONTE ALTERADO
CÓDIGO FONTE ALTERADO
COM VALOR SEMÂNTICO AGREGADO
PARA
SUB-RASTRO COM RÓTULO 2
PARA
SUB-RASTRO COM RÓTULO 2
ADICIONAR
VALOR
SEMÂNTICO
RÓTULO 2
RÓTULO 1
RÓTULO 3
Processo análogo com os
demais sub-rastros
CÓDIGO FONTE ALTERADO
CÓDIGO FONTE ALTERADO
COM VALOR SEMÂNTICO AGREGADO
PARA
SUB-RASTRO COM RÓTULO 1
PARA
SUB-RASTRO COM RÓTULO 3
ADICIONAR
VALOR
SEMÂNTICO
RÓTULO 2
RÓTULO 1
RÓTULO 3
Configuração final: código fonte alterado
com valor semântico agregado
Próximo passo... LSI
PARÂMETROS PARA CONSULTA
DOCUMENTAÇÃO
DO SISTEMA
DESENVOLVEDOR
CÓDIGO FONTE
RETORNADO
LSI
CÓDIGO FONTE ALTERADO COM
VALOR SEMÂNTICO AGREGADO
CONSULTA
DE INTERESSE
ESPAÇO VETORIAL
SEMÂNTICO
Avaliação da pesquisa LSI
CÓDIGO FONTE ALTERADO SEM
VALOR SEMÂNTICO AGREGADO
CÓDIGO FONTE ALTERADO COM
VALOR SEMÂNTICO AGREGADO
DESENVOLVEDOR
DOCUMENTAÇÃO
LSI
LSI
ESPAÇO VETORIAL
SEMÂNTICO
CONSULTA
ENVOLVENDO
ALGUM
TERMO
DO
RÓTULO 1
RESULTADO 1
RESULTADO 2
ESPAÇO VETORIAL
SEMÂNTICO
Resultados esperados
RESULTADO 1
RESULTADO 2
1°.........cod_font1.java
2°.........cod_font4.java
1°.........cod_font4.java
2°.........cod_font2.java
3°.........cod_font9.java
4°.........cod_font1.java
ANÁLISE COMPARATIVA
MENOS resultados retornados
na consulta.
X
MAIS resultados retornados
na consulta.
EXEMPLO: SUPONDO QUE cod_font4.java seja mais relevante para a pesquisa.
Posição (ranking) com
MENOR precisão.
X
Posição (ranking) com
MAIOR precisão.
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
?
Download