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:

Slides:



Advertisements
Apresentações semelhantes
Métricas e Medição de Software
Advertisements

Manutenção em software Conceitos básicos
Boas Práticas Adotadas em um Projeto de Design de Testes – Um relato de experiência
Os projetos.
Programação em Java Prof. Maurício Braga
Engenharia de Software
Natanael (njsj) Thiago (tan2) Rodrigo (rml2)
Tipos de sistemas de Lehman
Testando o sistema Teste funcional: o sistema integrado realiza as funções especificadas nos requisitos? Teste de desempenho: os requisitos não-funcionais.
Rational Unified Process(RUP)
Faculdade de Ciências Sociais de Aplicadas de Petrolina – FACAPE
Gerenciamento de Configuração
Processo de Reengenharia Prático Pós- Graduação Pós- Graduação Karolyne Almeida Siqueira Michael Caldas da Silva.
APRESENTAÇÃO DE ESTÁGIO
Bruno Augusto Vivas e Pôssas
de Leitura Literatura.
Engenharia Reversa É o processo de derivar as especificações lógicas dos componentes do sistema a partir de sua descrição física com auxílio de ferramentas.
Luciano Marquardt Everaldo Artur Grahl
Programação orientada a objetos com Java
TIPOS DE TESTES APLICÁVEIS E NÃO APLICÁVEIS AO PROJETO
Roteiro Para o Trabalho do Módulo
TSDD Teste de segurança durante o desenvolvimento.
Título do Trabalho Nome Orientador Data.
Gerenciamento de Requisitos com Casos de Uso
Classes e objetos Modelagem
Configuração de manutenção
Gerência de Configuração de Software
MANUTENÇÃO DE SOFTWARE
Engenharia de Requisitos
Prof.Alfredo Parteli Gomes
Gerenciamento de Configuração
Introdução a Computação Trabalho Final PUC Minas – São gabriel
Prof. Esp. Fernando Barreto
O Fluxo de Implementação
CMMI – Gerência de Configuração
Área de Atendimento Web
A aplicação da Engenharia Semiótica no design da interface de usuário do software ASK2000 Jair C Leite Salerno Silva DIMAp - UFRN.
Linguagem de Programação JAVA
Objetivos das Atividades de Implementação • Implementar as classes do modelo de projeto em termos de componentes (código fonte ou executável, etc.) •
Modelos de Processo de Software
Gerência de Configuração - GC
Observatório - EPT NÚCLEO DE TECNOLOGIA. Função: Gerar soluções estratégicas através da aplicação e desenvolvimento de ferramentas de TI. A coordenação.
ANÁLISE E DESENVOLVIMENTO
Fase de Concepção (Início, Planejamento)
Aluno: Cristiano Levi Arnold Orientador: Alexandre Luís Franco 2009
Desenvolvendo Boletim Técnico Documentação Porto Alegre, Maio 2014.
Professor: Márcio Amador
Software engineering, the software process and their support M.M. Lehman Apresentadora: Tarciana Dias da Silva.
TESTES DE SOFTWARE Qualidade de software Professores: Juliano Bedin Juliano Bedin Sara Priscila Dutkwicz Leandro Bovi.
Plano de Manutenção <RedMan>
1/113 Contexto para Gerência de Configuração. 2/113 Gerência de Configuração e mudança Objetivo Compreender a importância do uso de mecanismos de gerência.
Detecting bad smells in source code using change history information
Gerência de Configuração Autor: Silvio Cortez. Fluxos e papeis Escrever plano Definir ferramentas Escrever plano de gerência de configuração Gerente de.
Automação de Testes de Software
Centro de Informática Universidade Federal de Pernambuco Engenharia de Requisitos Paulo Ramos Jaelson Castro.
Conceitos Básicos Introdução.
Hukarz Open Source Process D01 Alan Kelon, Silvio Meira Recife, 01/12/2006.
Gerência de Configuração Unibratec Análise e Gerencia de Projetos Profº Henrique Vila Nova.
Proposta de Trabalho Final Disciplina: Projeto de BD Manuela Klanovicz Ferreira Melissa Rafaelli.
1 Padrões de Reengenharia Orientada a Objetos Nome: Gewerton J. Gomes da Cruz Silva Prof: Fabio Kon.
Fase de Concepção (Início, Planejamento)
Engenharia de Software
Linguagem Técnica II SCM Software Configuration Management Aula 03 Prof. Renato Novais
Gerenciamento de Configuração de Software
Maraca² RFP Reply. Introdução Reuso dentro da organização Busca e recuperação.
TÉCNICAS DE ESTIMATIVAS
Fundamentos de Engenharia de SW Diagramas da UML Usados no Projeto de Software.
1 Projeto Piloto Conclusão em Agenda Projeto Piloto –Descrição –Execução da aplicação –Implementação de requisitos funcionais e não- funcionais.
Banco de Dados Parte 1 Profa. Ana Karina Barbosa Fevereiro/2008.
Processos de Software Ludimila Monjardim Casagrande 1º Semestre Desenvolvimento e Qualidade.
Transcrição da apresentação:

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 1

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 2

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 4

MELHORAR A COMPREENSÃO DO SISTEMA 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 5

Proposta do trabalho 6

SUBCONJUNTOS DE ELEMENTOS DO RASTRO Como fazer? Executar uma característica para duas versões A e B do sistema em análise. RÓTULO 1 Rastro de execução de uma característica do sistema em estudo RÓTULO 2 DESENVOLVEDOR RÓTULO 3 ... ... ... ... ... ... SUBCONJUNTOS DE ELEMENTOS DO RASTRO (SUB-RASTRO) RÓTULOS SEMÂNTICOS 7

Funcionalidade relativa a colocar palavras selecionadas 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 Versão B Versão A 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 DE ELEMENTOS DO RASTRO PARA VERSÃO B SUBCONJUNTO DE ELEMENTOS DO RASTRO PARA VERSÃO A VERIFICAR ALTERAÇÕES 13

PARA SUB-RASTRO COM RÓTULO 1 Elementos do sub-rastro que representam o código fonte alterado ELEMENTOS DE RASTRO FILTRADOS PARA O SUB-RASTRO COM ROTÚLO1 SEPARAR CÓDIGO CÓDIGO FONTE ALTERADO PARA SUB-RASTRO COM RÓTULO 1 14

COM VALOR SEMÂNTICO AGREGADO Enriquecento o código fonte com elementos semânticos CÓDIGO FONTE ALTERADO PARA SUB-RASTRO COM RÓTULO 1 CÓDIGO FONTE ALTERADO COM VALOR SEMÂNTICO AGREGADO PARA SUB-RASTRO COM RÓTULO 1 ADICIONAR VALOR SEMÂNTICO RÓTULO 1 RÓTULO 2 RÓTULO 3 15

COM VALOR SEMÂNTICO AGREGADO Processo análogo com os demais sub-rastros CÓDIGO FONTE ALTERADO PARA SUB-RASTRO COM RÓTULO 2 CÓDIGO FONTE ALTERADO COM VALOR SEMÂNTICO AGREGADO PARA SUB-RASTRO COM RÓTULO 2 ADICIONAR VALOR SEMÂNTICO RÓTULO 1 RÓTULO 2 RÓTULO 3 16

COM VALOR SEMÂNTICO AGREGADO Processo análogo com os demais sub-rastros CÓDIGO FONTE ALTERADO PARA SUB-RASTRO COM RÓTULO 3 CÓDIGO FONTE ALTERADO COM VALOR SEMÂNTICO AGREGADO PARA SUB-RASTRO COM RÓTULO 1 ADICIONAR VALOR SEMÂNTICO RÓTULO 1 RÓTULO 2 RÓTULO 3 17

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

Próximo passo... LSI PARÂMETROS PARA CONSULTA DOCUMENTAÇÃO DO SISTEMA DESENVOLVEDOR CÓDIGO FONTE RETORNADO CONSULTA DE INTERESSE CÓDIGO FONTE ALTERADO COM VALOR SEMÂNTICO AGREGADO ESPAÇO VETORIAL SEMÂNTICO LSI 19

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 CONSULTA ENVOLVENDO ALGUM TERMO DO RÓTULO 1 LSI ESPAÇO VETORIAL SEMÂNTICO ESPAÇO VETORIAL SEMÂNTICO RESULTADO 1 RESULTADO 2 20

Resultados esperados X X RESULTADO 1 RESULTADO 2 1°.........cod_font1.java 2°.........cod_font4.java RESULTADO 2 1°.........cod_font4.java 2°.........cod_font2.java 3°.........cod_font9.java 4°.........cod_font1.java ANÁLISE COMPARATIVA MENOS resultados retornados na consulta. MAIS resultados retornados na consulta. X 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 21

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

Sugestões/perguntas ? 23