Utilização de Análise de Características Dinâmicas em analises estáticas.



Documentos relacionados
ISO/IEC 12207: Gerência de Configuração

Extração da Métrica WMC a partir de Código Java

ENQUALAB 2013 QUALIDADE & CONFIABILIDADE NA METROLOGIA AUTOMOTIVA. Elaboração em planos de Calibração Interna na Indústria Automotiva

ROTEIRO PARA ELABORAÇÃO DE CASE 31º TOP DE MARKETING ADVB/RS

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE. Modelos de Processo de Desenvolvimento de Software

ANEXO 11. Framework é um conjunto de classes que colaboram para realizar uma responsabilidade para um domínio de um subsistema da aplicação.

Governança de TI. ITIL v.2&3. parte 1

Enterprise Quality Management [EQM] Excelência em Gestão da Qualidade

Exemplos: Análise de Valor Agregado (Ex_vagregado.SPRJ)

Metadados. 1. Introdução. 2. O que são Metadados? 3. O Valor dos Metadados

Processos de Desenvolvimento de Software. Prof. Hélio Engholm Jr

GARANTIA DA QUALIDADE DE SOFTWARE

DEMONSTRAÇÕES FINANCEIRAS COMBINADAS

5. Métodos ágeis de desenvolvimento de software

Coordinators. Agenda. Definição. Definição Exemplos Artefatos Funcionalidades. Modelo de Coordenação

Mídias sociais como apoio aos negócios B2C

Sistema de Indicadores Online de Ciência, Tecnologia e Inovação

PHC Imóveis CS. A gestão das atividades da mediadora imobiliária

TOP SER HUMANO ABRH-RS 2015 Categoria Estudante TABELA DE AVALIAÇÃO. 1 APRESENTAÇÃO peso Estruturação geral do trabalho 20

FERRAMENTAS E SOLUÇÕES DE APOIO À GESTÃO E MANUTENÇÃO DE ATIVOS

Engenharia de Software. Apostila I >>> Introdução à ES - HEngholmJr

Faculdade Pitágoras. Engenharia de Software. Prof.: Julio Cesar da Silva.

Engenharia de Software

Engenharia Reversa e Reengenharia

Rede de Laboratórios de Produtividade de Software

Processo de Desenvolvimento de Software

MANUAL DE SUPORTE. Controle de Suporte. Este manual descreve as funcionalidades do controle de suporte.

Gestão de Modificações. Fabrício de Sousa

ÀREA DE DESENVOLVIMENTO

Levantamento, Análise e Gestão Requisitos. Aula 12

Múltiplos Estágios processo com três estágios Inquérito de Satisfação Fase II

FACULDADE DE ENGENHARIA DE COMPUTAÇÃO. PROJETO FINAL I e II PLANO DE TRABALHO <NOME DO TRABALHO> <Nome do Aluno> <Nome do Orientador>

Implantação de um Processo de Medições de Software

GereComSaber. Desenvolvimento de Sistemas de Software. Universidade do Minho Conselho de Cursos de Engenharia Licenciatura em Engenharia Informática

Elementos para construção de um briefing

Padrões de Qualidade de Software e Métricas de Software

Engenharia de Software III

Exame de Fundamentos da ITIL

Pós-Graduação em Gerenciamento de Projetos práticas do PMI

Capítulo X. Gerenciar Mudanças dos Requisitos. Aluizio Saiter, M. Sc.

Para construção dos modelos físicos, será estudado o modelo Relacional como originalmente proposto por Codd.

Report Express. Um jeito mais ágil, econômico e seguro de levar informações até seus clientes.

Testes de Usabilidade

ISO 9001:2008. Alterações e Adições da nova versão

DADOS MAIS RELEVANTES OBTIDOS COM A APLICAÇÃO DA GINÁSTICA LABORAL NAS EMPRESAS LIDER TRATORES, BANCO SICREDI E JE MÍDIA VISUAL

Modelagem de Processo Interno para solicitação de Serviço

Fundamentos de Teste de Software

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação

Entendendo como funciona o NAT

Está na hora de adequar seu site para mobile!

PLANOS DE CONTINGÊNCIAS

O Impacto da Engenharia de Requisitos no Processo de Métricas. Fátima Cesarino CAIXA

2ª avaliação - SIMULADO INSTRUÇÕES

Integração do Teamcenter com o Catia V5

Layout : Este layout desenvolvido com html5 e css3 e compatível com qualquer dispositivo, ou seja, ele se molda para qualquer resolução, tablet,

Portal de Fornecedores Não-Revenda

Referências internas são os artefatos usados para ajudar na elaboração do PT tais como:

Métricas para avaliação de Linguagens de

O Software Face Match

Melhores práticas no planejamento de recursos humanos

Pesquisa Etnográfica

EXPRESSO LIVRE 2º Encontro Técnico de Desenvolvedores

Feature-Driven Development

Gerenciamento de Projetos Modulo II Ciclo de Vida e Organização do Projeto

Mídias sociais como apoio aos negócios B2B

Wilson Moraes Góes. Novatec

Introdução Ciclo de vida tradicional de desenvolvimento Prototipagem Pacotes de software Desenvolvimento de 4ª geração Terceirização

IW10. Rev.: 02. Especificações Técnicas

MANUAL DO USUÁRIO SORE Sistema Online de Reservas de Equipamento. Toledo PR. Versão Atualização 26/01/2009 Depto de TI - FASUL Página 1

Gestão de defeito: Descreva! Sumário. Introdução. Problema. Justificativa. Metodologia. Referencial teórico. Demonstração do Mantis.

Versão Melhorias Melhorias Versão 6.0.1

Aplicações da FPA em Insourcing e Fábrica de Software

Gestão da Qualidade. Aula 18. Prof. Pablo

ERP Enterprise Resource Planning

Processos Técnicos - Aulas 4 e 5

4 O Workflow e a Máquina de Regras

Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 03 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO)

UML - Unified Modeling Language

SIMULADO: Simulado 3 - ITIL Foundation v3-40 Perguntas em Português

Sistema de Gestão de Ciclo de Vida de Farmácias AVP003. Manual de Utilizador Externo - Entregas ao Domicílio e Vendas via Internet

GERENCIAMENTO DO CONTEÚDO INFORMATIVO Utilizando O Sistema Web Contábil IDEAL. Atendimento: Tel : (11) suporte@webcontabil.

QUALIDADE DE SOFTWARE. Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 27 Slide 1

Módulo 2. Estrutura da norma ISO 9001:2008 Sistemas de Gestão da Qualidade Requisitos 0, 1, 2, 3 e 4/4, Exercícios

Manual do Sistema de Cadastro de Cultivares Locais, Tradicionais e Crioulas

Manual Geral do OASIS

Gestão de Projetos. - Modelos de Produção. - Parâmetros de Produção. - Projetos. - Itens de Material. - Composições

Bases Matemáticas. Aula 2 Métodos de Demonstração. Rodrigo Hausen. v /15

Engenharia de Software I: Análise e Projeto de Software Usando UML

Banco de Dados Aula 1 Introdução a Banco de Dados Introdução Sistema Gerenciador de Banco de Dados

Conversando com a Família Práticas Narrativas

SISTEMA DE BANCO DE IMAGENS MANUAL DE USO

Prêmio Inovação UP 2012 Manual de Preenchimento do Formulário

SAV Sistema de Aluguel de Veículos I - DOCUMENTO DE REQUISITOS Versão 1.00

Proposta Comercial. Proposta Comercial de prestação de serviços de Desenvolvimento de web site para o Vereador Marcelo Ramos.

Gerenciamento de Projetos no Marketing Desenvolvimento de Novos Produtos

GESTÃO DAS INFORMAÇÕES DAS ORGANIZAÇÕES MÓDULO 11

SUMÁRIO Acesso ao sistema... 2 Atendente... 3

Transcrição:

Utilização de Análise de Características Dinâmicas em analises estáticas. Felipe A. Miziara 1, Marcelo A. Maia 1 1 Departamento de pós-graduação em Ciências da Computação Universidade Federal de Uberlândia (UFU) Uberlândia MG Brazil felipe.miziara@gmail.com, marcmaia@facom.ufu.br Abstract. This paper describes a proposal for using features execution traces of a software to a better statics analysis comprehension done by the opensource software Sonar. Resumo. Este artigo descreve uma proposta para utilizar rastros de execução de características de um software para uma melhor compreensão dos resultados (métricas) das análises estáticas realizadas pelo software opensource Sonar. 1. Caracterização do Problema Ao longo de um ciclo de manutenções em um sistema de software, uma importante tarefa é a análise de impacto que as novas implementações podem gerar. Estes impactos podem ser insignificantes ou podem gerar bugs em características inesperadas do sistema. A não consciência das classes que estão envolvidas em alguma característica específica é comum no mercado [Wilde et al. 2003]. Isto pode ocorrer por falta de documentação do projeto, falha no compartilhamento do conhecimento ou até mesmo em sistemas onde o código mantém um alto acoplamento e uma alta complexidade. O rastreamento da causa raiz destes bugs pode ser uma tarefa difícil e pode gerar manutenções desnecessárias no sistema. Este problema pode ser minimizado caso tenhase total ciência do impacto gerado em todas as atividades de manutenção realizadas no software em questão. Para tal tarefa este trabalho propõe separar os resultados da análise estática do software por características extraídas via extração de rastros de execução. 2. Fundamentação Teórica Através de experimentos realizados com seres humanos, [Lafetá et al. 2011] comprovou que com o uso de uma abordagem estática em conjunto com uma abordagem dinâmica a assertividade e tempo gasto na compreensão de sistemas foram melhores ou pelo menos similares à abordagens comumente utilizadas na indústria. Neste mesmo trabalho [Lafetá et al. 2011] mostrou que as características obtidas através de coleta de rastros de execução podem contribuir fazendo parte da documentação do sistema, melhorando o processo de compreensão, já que esta prática não é amplamente utilizada por sua dificuldade de manutenção [Wilde et al. 2003].

Este trabalho propõe utilizar como principal ferramenta de análise estática o sistema opensource chamado Sonar [http://www.sonarsource.org]. O sistema Sonar é um analisador estático de códigos fontes, onde dentre suas características se destacam as análises de métricas de projetos orientados a objetos. A imagens 1 mostra um exemplo de uma análise estática realizada pelo Sonar. Foram retiradas do projeto Nemo, que é uma execução publica do próprio Sonar [http://nemo.sonarsource.org]. Figure 1. Exemplo de mais Métricas analisadas pelo Sonar Dentre as métricas mensuradas pelo Sonar destacam-se as métricas Chidamber e Kemerer, que foi umas das grandes adições ao sistema em sua versão 2.0 [Conforme descrito no Release Notes 2.0 http://www.sonarsource.org/downloads/]. Chidamber e Kemerer propuseram [Chidamber e Kemerer et al. 1994] um conjunto de métricas para projetos orientados a objetos. Elas foram: Peso dos métodos por classes: WMC; Profundidade da árvore de Herança: DIT; Números de filhos: NOC; Acoplamento entre classes de objetos: CBO; Resposta por classe: RFC;

Falta de Coesão nos Métodos: LCOM A figura 2 demonstra um exemplo tirado do projeto Nemo [http://nemo.sonarsource.org] cruzando algumas destas métricas: Figure 2. Exemplo das métricas Chidamber e Kemerer. 4. Caracterização da Contribuição O objetivo deste trabalho é propor uma visão por características, obtidas através de coletas de rastros de execução, para análise estática. Acreditamos que, através da relação entre rastros de execução e o resultado das métricas da analise estática seja possível traçar uma ligação entre os rastros coletados da características e as classes envolvidas. Com a coleta de rastros de uma característica em específico, temos o conjunto de classes responsáveis pela execução da mesma. De posse disto é possível relacionar a característica com os resultados das análises estáticas das classes responsáveis. Desta forma, ao submeter uma nova manutenção no software em estudo, haverá impacto em suas métricas estáticas (não importando, neste momento, se o impacto será positivo ou negativo), o que por sua vez estarão relacionadas com as características e seus rastros de execução. Esta relação mostrará quais características sofreram o impacto causado pela manutenção e ainda quais métricas estáticas foram alteradas. Ao tornar este tipo de atividade uma prática constante no ciclo de vida de manutenção de um software, o sistema Sonar criará um histórico de submissões (funcionalidade já presente no software), o que nos permitirá visualizar todos os impactos gerados nas características individuais do software e com isto, caso ocorra algum bug gerado por uma implementação qualquer, acreditamos que a busca pela causa raiz do bug exija menos esforço. Outra contribuição resultante deste trabalho é a melhoria do algoritmo de sumarização proposto por [Silvia et al. 2011]. Em seu trabalho [Silvia et al. 2011] demonstra técnicas de compreensão de rastros de execução de programas, uma das técnicas apresentadas mostra o processo de sumarização de rastros que mede a relevância de um rastro pelo tamanho de sua sub-árvore, o que pode dar falsa relevância aos métodos com uma alta complexidade ciclomática.

Com a utilização das análises estáticas realizadas pelo software Sonar, como a CC dos métodos (complexidade ciclomática), estas informações poderão ser utilizadas na forma de um interchange format (IF) com a ferramenta de sumarização melhorando assim a acurácia da ferramenta. 5. Estado Atual do Trabalho Atualmente o trabalho proposto está em seu estado inicial. Já se iniciou o trabalho de compreensão do software Sonar com o objetivo de realizar a manutenção evolutiva para incluir o conceito de características (coletadas dinamicamente) nas métricas de análise estática. Para facilitar a atividade de manutenção foi utilizada a abordagem proposta por [Lafetá et al. 2011], onde foi definido características específicas e seus rastros foram coletados. O trabalho atual está sendo analisar os rastros na tentativa de identificar objetos chaves para tornar a tarefa de manutenção mais assertiva. Durante a análise dos rastros e com ajuda da análise estática dos fontes do projeto, encontrou-se que o módulo sonar-server será o alvo principal de tarefa de manutenção evolutiva. Para conclusão do trabalho é necessário finalizar as implementações na ferramenta Sonar e realizar testes no software final. Para realização destes testes iremos submeter alguns projetos open-source no Sonar e definir características individuais para cada Software avaliado. Desta forma podemos verificar a eficiência da influência da métrica complexidade ciclomática (CC) para tentar eliminar os falsos positivos na busca de rastros com alta profundidade em sua sub-árvore. Após finalizar as atividades de evolução do software sonar, o próximo passo é realizar pequenas manutenções (tamanho medido em volume de implementação) nos softwares escolhidos e que foram submetidos para análise no sonar. Ao realizar estas manutenções iremos re-submeter o software no Sonar, e analisar qual impacto a manutenção realizada teve nas métricas das características. Com a análise destes resultados poderemos determinar a eficiência ou não da abordagem em análise de impacto das manutenções.

6. Trabalhos Relacionados O trabalho proposto por [Lafetá et al. 2011] realizou experimentos com seres humanos sobre o impacto o do uso de rastros de execução em atividades de localização de características de software, e como conclusão principal percebeu que a utilização da abordagem proposta no mínimo se igual a não utilização, o que prova a eficiência da utilização da técnica apresentada. O trabalho apresentado por [Silva et al. 2011] demonstra técnicas para compreensão de rastros de execução de programas orientados a objetos. Uma das técnicas apresentadas foi a sumarização dos rastros coletados de forma a simplificar e melhorar a qualidade destes rastros. 7. Avaliação dos Resultados Os resultados obtidos até o presente momento ainda estão muito superficiais para uma avaliação consistente. Isto ocorre, pois o trabalho ainda está em seu estágio inicial de desenvolvimento, onde a primeira etapa (modificação do sonar para inclusão de rastros de execução) ainda não finalizou. 8. Referências [Chidamber e Kemerer et al. 1994] Churcher, N.I., Shepperd, M.J., Chidamber, S., Kemerer, C.F. (1994). A Metrics Suite for Object Oriented Design. [http://nemo.sonarsource.org] (2011) Sonar as a Service, http://nemo.sonarsource.org, novembro. [http://www.sonarsource.org] (2011) Sonar Portal, http://www.sonarsource.org, novembro. [Lafetá et al. 2011] Lafetá, R, Maia, M (2011). O impacto do uso de rastros de execução em atividades de localização de características de software: Um experimento controlado. [Silva et al. 2011] Silva, L (2011). Técnicas para compreensão de rastros de execução de programas orientados a objetos. [Wilde et al. 2003] Wilde, N., Buckellew, M., Page, H., Rajlich, V., e Pounds, L. (2003). A Comparison of Methods for Locating Features in Legacy Software. J. Syst. Software, 65(2):105 114.