Utilizando Múltiplas Estratégias de Análise Visual para Suporte à Evolução de Software - XI...

20
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

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 of Utilizando Múltiplas Estratégias de Análise Visual para Suporte à Evolução de Software - XI...

Page 1: Utilizando Múltiplas Estratégias de Análise Visual para Suporte à Evolução de Software - XI SICTI

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

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

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

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

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

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

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

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

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

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

VisMiner WEB

11

Page 12: Utilizando Múltiplas Estratégias de Análise Visual para Suporte à Evolução de Software - XI SICTI

VisMiner WEB

12

Page 13: Utilizando Múltiplas Estratégias de Análise Visual para Suporte à Evolução de Software - XI SICTI

VisMiner WEB

13

Page 14: Utilizando Múltiplas Estratégias de Análise Visual para Suporte à Evolução de Software - XI SICTI

VisMiner WEB

14

Page 15: Utilizando Múltiplas Estratégias de Análise Visual para Suporte à Evolução de Software - XI SICTI

VisMiner WEB

15

Page 16: Utilizando Múltiplas Estratégias de Análise Visual para Suporte à Evolução de Software - XI SICTI

VisMiner WEB

16

Page 17: Utilizando Múltiplas Estratégias de Análise Visual para Suporte à Evolução de Software - XI SICTI

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

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

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

Agradecimentos

20