utilizando múltiplas estratégias de análise visual para suporte à evolução de software - xi...

Post on 01-Jul-2015

104 Views

Category:

Software

0 Downloads

Preview:

Click to see full reader

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

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

top related