View
104
Download
0
Embed Size (px)
DESCRIPTION
Boa parte do tempo gasto no processo de software é destinado às atividades de manutenção e evolução de software. Para realizar essas atividades, é necessário, primeiramente, compreender o programa a ser modificado. Nesse contexto a visualização de software é um importante meio para compreensão das atividades de evolução. Na medida em que esta evolução vai acontecendo, o processo de desenvolvimento vai se tornando mais difícil, o que leva a necessidade de uma série de manutenções. Por volta de 90% dos custos totais de um sistema estão associados à manutenção. A compreensão do código é fundamental para as atividades de manutenção, e atualmente cerca de 50% do tempo gasto com a manutenção é no processo de compreender o sistema. Um software raramente é desenvolvido individualmente. Por isso, os sistemas de controle de versão e repositório de código fonte, como o GIT, colaboram no gerenciamento do desenvolvimento em grupo. Esses sistemas registram modificações feitas por cada um dos usuários, mantêm a história da evolução do software, ajudando a compreender como ele está evoluindo e assim, tornar mais fácil o suporte a futuras alterações. As ferramentas de visualização de software têm utilizado um conjunto de métricas para apoiar os engenheiros de software em suas atividades de manutenção e evolução. Entretanto, é importante que a evolução de software, seja analisada através de diferentes estratégias de análise. Por esse motivo, foi construído a primeira versão do Visminer, um ambiente de análise da evolução do software. Este software possui código fonte livre, disponível para toda a comunidade. Ele foi construído na forma de plugin, seguindo boas práticas de programação das tecnologias de Framework. Além disso, o Visminer pode também ser utilizado como uma api de acesso aos dados dos repositórios Git e GitHub. Nesse mesmo projeto, foi desenvolvido também a aplicação Visminer Web. O Visminer Web faz uso da api VisMiner. Ela possui visualizações desenvolvidas para a web que tem como objetivo ajudar os usuários na realização de atividades de compreensão de software.
Citation preview
XI Seminário de Iniciação
Científica, Tecnológica e
Inovação - SICTI PIBIC e PIBITI 2013/14
IFBA – Campus de Porto Seguro, 01 a 03 / out / 2014
Utilizando Múltiplas
Estratégias de Análise Visual
para Suporte à Evolução de
Software
Bolsista:
Marcos Antônio de Souza Silva
Orientador:
Renato Lima Novais
2
Introdução
Sistemas de software têm por natureza a evolução
[Lehman 78][Lehman 80]. Na medida em que esta
evolução vai acontecendo, o processo de
desenvolvimento vai se tornando mais difícil, o que leva a
necessidade de uma série de manutenções.
3
Justificativa
As técnicas de visualização de informação [Chen,
2004] e de software [Diehl, 2007] têm sido
utilizadas na Engenharia de Software como uma
possível solução para a árdua tarefa de
compreender, manter e evoluir sistemas de
software [Storey, 2005].
4
Objetivos
Objetivo geral
• Desenvolver um ambiente visual multi-estratégia para
análise da evolução de software, utilizando como dados,
informações extraídas do repositório de código fonte GIT
5
Objetivos
Objetivos específicos
• Desenvolvimento de uma API para ajudar na
compreensão do software através da utilização da
visualização de software e métricas de software;
• Desenvolvimento de uma aplicação utilizando a API.
6
Metodologia
7
•Revisão de literatura sobre os conceitos
associados;
•Estudo de construção de uma infraestrutura de
visualização de software.
•Aplicação das técnicas de visualização no
contexto de evolução de software.
Resultados e discussão
8
•VisMiner API
•VisMiner WEB
Figura 1 – Arquitetura completa do Visminer
VisMiner API
9
Código Fonte
Repositório
Local ou GIT
VisMiner
API
Métricas
VisMiner WEB
10
Métricas
VisMiner
WEB
Gráficos Gerados
VisMiner WEB
11
VisMiner WEB
12
VisMiner WEB
13
VisMiner WEB
14
VisMiner WEB
15
VisMiner WEB
16
Conclusões
17
•Visminer
um ambiente de análise da evolução do software.
código fonte livre
Construído na forma de plugin.
Além disso, o Visminer pode também ser utilizado como uma api de
acesso aos dados dos repositórios Git e GitHub.
•Visminer Web
Código exemplo para o usufruto da utilização de uma API.
Trabalho Futuros
18
VisMiner WEB
Partição Binivel TreeMap Bubble Chart Colorido
VisMiner API
•Implementação de hierarquia de pacotes.
•Adicionar análise de novas métricas
Referências
19
[Chen04] Chaomei Chen. Information Visualization — Beyond the Horizon.
(2nd edition), Springer Verlag, Berlin, Heidelberg, New York, 2004.
[Diehl07] Diehl, S. 2007 Software Visualization: Visualizing the Structure,
Behaviour, and Evolution of Software. Springer-Verlag New York, Inc.
[Lehman78] Lehman, M. M. (1978), "Laws of Program Evolution - Rules and
Tools for Programming Management," In Proc. Infotech State of the Art
Conference, Why Software Projects Fail, April 9-11, pp. IV1-IV25.
[Lehman80] Lehman, M. M. (1980), "Program Life Cycles and Laws of
Software Evolution," Proceedings of IEEE, Special Issue on Software
Engineering, September, 1060-1076.
[Shneiderman 96] Shneiderman, B. The eyes have it: A task by data type
taxonomy for information visualizations. In VL ’96: Proceedings of the 1996
IEEE Symposium on Visual Languages, page 336,Washington, DC, USA,
1996. IEEE Computer Society.
[Storey05] Storey, M. D., Čubranić, D., and German, D. M. 2005. On the use
of visualization to support awareness of human activities in software
development: a survey and a framework. In Proceedings of the 2005 ACM
Symposium on Software Visualization (St. Louis, Missouri, May 14 - 15,
2005). SoftVis '05. ACM, New York.
Agradecimentos
20