utilizando múltiplas estratégias de análise visual para suporte à evolução de software - xi...
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.TRANSCRIPT
![Page 1: Utilizando Múltiplas Estratégias de Análise Visual para Suporte à Evolução de Software - XI SICTI](https://reader034.vdocuments.pub/reader034/viewer/2022051515/559416871a28ab9e468b46e3/html5/thumbnails/1.jpg)
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
![Page 2: Utilizando Múltiplas Estratégias de Análise Visual para Suporte à Evolução de Software - XI SICTI](https://reader034.vdocuments.pub/reader034/viewer/2022051515/559416871a28ab9e468b46e3/html5/thumbnails/2.jpg)
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
![Page 3: Utilizando Múltiplas Estratégias de Análise Visual para Suporte à Evolução de Software - XI SICTI](https://reader034.vdocuments.pub/reader034/viewer/2022051515/559416871a28ab9e468b46e3/html5/thumbnails/3.jpg)
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
![Page 4: Utilizando Múltiplas Estratégias de Análise Visual para Suporte à Evolução de Software - XI SICTI](https://reader034.vdocuments.pub/reader034/viewer/2022051515/559416871a28ab9e468b46e3/html5/thumbnails/4.jpg)
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
![Page 5: Utilizando Múltiplas Estratégias de Análise Visual para Suporte à Evolução de Software - XI SICTI](https://reader034.vdocuments.pub/reader034/viewer/2022051515/559416871a28ab9e468b46e3/html5/thumbnails/5.jpg)
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
![Page 6: Utilizando Múltiplas Estratégias de Análise Visual para Suporte à Evolução de Software - XI SICTI](https://reader034.vdocuments.pub/reader034/viewer/2022051515/559416871a28ab9e468b46e3/html5/thumbnails/6.jpg)
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
![Page 7: Utilizando Múltiplas Estratégias de Análise Visual para Suporte à Evolução de Software - XI SICTI](https://reader034.vdocuments.pub/reader034/viewer/2022051515/559416871a28ab9e468b46e3/html5/thumbnails/7.jpg)
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.
![Page 8: Utilizando Múltiplas Estratégias de Análise Visual para Suporte à Evolução de Software - XI SICTI](https://reader034.vdocuments.pub/reader034/viewer/2022051515/559416871a28ab9e468b46e3/html5/thumbnails/8.jpg)
Resultados e discussão
8
•VisMiner API
•VisMiner WEB
Figura 1 – Arquitetura completa do Visminer
![Page 9: Utilizando Múltiplas Estratégias de Análise Visual para Suporte à Evolução de Software - XI SICTI](https://reader034.vdocuments.pub/reader034/viewer/2022051515/559416871a28ab9e468b46e3/html5/thumbnails/9.jpg)
VisMiner API
9
Código Fonte
Repositório
Local ou GIT
VisMiner
API
Métricas
![Page 10: Utilizando Múltiplas Estratégias de Análise Visual para Suporte à Evolução de Software - XI SICTI](https://reader034.vdocuments.pub/reader034/viewer/2022051515/559416871a28ab9e468b46e3/html5/thumbnails/10.jpg)
VisMiner WEB
10
Métricas
VisMiner
WEB
Gráficos Gerados
![Page 11: Utilizando Múltiplas Estratégias de Análise Visual para Suporte à Evolução de Software - XI SICTI](https://reader034.vdocuments.pub/reader034/viewer/2022051515/559416871a28ab9e468b46e3/html5/thumbnails/11.jpg)
VisMiner WEB
11
![Page 12: Utilizando Múltiplas Estratégias de Análise Visual para Suporte à Evolução de Software - XI SICTI](https://reader034.vdocuments.pub/reader034/viewer/2022051515/559416871a28ab9e468b46e3/html5/thumbnails/12.jpg)
VisMiner WEB
12
![Page 13: Utilizando Múltiplas Estratégias de Análise Visual para Suporte à Evolução de Software - XI SICTI](https://reader034.vdocuments.pub/reader034/viewer/2022051515/559416871a28ab9e468b46e3/html5/thumbnails/13.jpg)
VisMiner WEB
13
![Page 14: Utilizando Múltiplas Estratégias de Análise Visual para Suporte à Evolução de Software - XI SICTI](https://reader034.vdocuments.pub/reader034/viewer/2022051515/559416871a28ab9e468b46e3/html5/thumbnails/14.jpg)
VisMiner WEB
14
![Page 15: Utilizando Múltiplas Estratégias de Análise Visual para Suporte à Evolução de Software - XI SICTI](https://reader034.vdocuments.pub/reader034/viewer/2022051515/559416871a28ab9e468b46e3/html5/thumbnails/15.jpg)
VisMiner WEB
15
![Page 16: Utilizando Múltiplas Estratégias de Análise Visual para Suporte à Evolução de Software - XI SICTI](https://reader034.vdocuments.pub/reader034/viewer/2022051515/559416871a28ab9e468b46e3/html5/thumbnails/16.jpg)
VisMiner WEB
16
![Page 17: Utilizando Múltiplas Estratégias de Análise Visual para Suporte à Evolução de Software - XI SICTI](https://reader034.vdocuments.pub/reader034/viewer/2022051515/559416871a28ab9e468b46e3/html5/thumbnails/17.jpg)
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.
![Page 18: Utilizando Múltiplas Estratégias de Análise Visual para Suporte à Evolução de Software - XI SICTI](https://reader034.vdocuments.pub/reader034/viewer/2022051515/559416871a28ab9e468b46e3/html5/thumbnails/18.jpg)
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
![Page 19: Utilizando Múltiplas Estratégias de Análise Visual para Suporte à Evolução de Software - XI SICTI](https://reader034.vdocuments.pub/reader034/viewer/2022051515/559416871a28ab9e468b46e3/html5/thumbnails/19.jpg)
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.
![Page 20: Utilizando Múltiplas Estratégias de Análise Visual para Suporte à Evolução de Software - XI SICTI](https://reader034.vdocuments.pub/reader034/viewer/2022051515/559416871a28ab9e468b46e3/html5/thumbnails/20.jpg)
Agradecimentos
20