visualização de software com o kdevelop 4 · 2009-07-01 · live blue kde hacking in the tropics...
TRANSCRIPT
Live Blue KDE hacking in the tropics Visualização de Software com o KDevelop 4 FISL 10 1
Live Blue (http://liveblue.wordpress.com)
Visualização de Softwarecom o KDevelop 4
Sandro Santos [email protected]
http://[email protected]
Live Blue KDE hacking in the tropics Visualização de Software com o KDevelop 4 FISL 10 2
Um desafio inicial
● Qual método do seu sistema é o mais chamado ?
Live Blue KDE hacking in the tropics Visualização de Software com o KDevelop 4 FISL 10 3
Um desafio inicial
● Qual método do seu sistema é o mais chamado ?
Live Blue KDE hacking in the tropics Visualização de Software com o KDevelop 4 FISL 10 4
Um desafio inicial
● Qual método do seu sistema é o mais chamado ?
Live Blue KDE hacking in the tropics Visualização de Software com o KDevelop 4 FISL 10 5
Um desafio inicial
● Como melhorar a compreensão de sistemas que estão cada vez mais complexos ?
● Como obter, de forma rápida e intuitiva, informações relevantes a partir de centenas de milhares de linhas de código ?
● Uma saída:● Visualizar o software = gerar representações visuais
interativas explorando aspectos cognitivos do sistema visual humano
Live Blue KDE hacking in the tropics Visualização de Software com o KDevelop 4 FISL 10 6
Visualização
● Computação gráfica● Visualização científica● Visualização de informação:
– Geralmente aplicada a grandes conjuntos de dados– A meta é facilitar a obtenção de informações não tão
aparentes no sistema– Aparentes: sumarizações e busca por item específico– Nãoaparentes: padrões, exceções, relacionamentos,
grupos, similaridades, distâncias etc
Live Blue KDE hacking in the tropics Visualização de Software com o KDevelop 4 FISL 10 7
Visualização de Informação
● Quantos números 3 abaixo ?
1281768756138976546984506985604982826762
9809858458224509856458945098450980943585
9091030209905959595772564675050678904567
8845789809821677654876364908560912949686
Live Blue KDE hacking in the tropics Visualização de Software com o KDevelop 4 FISL 10 8
Visualização de Informação
● Quantos números 3 abaixo ?
1281768756138976546984506985604982826762
9809858458224509856458945098450980943585
9091030209905959595772564675050678904567
8845789809821677654876364908560912949686
Live Blue KDE hacking in the tropics Visualização de Software com o KDevelop 4 FISL 10 9
Visualização de Informação
Live Blue KDE hacking in the tropics Visualização de Software com o KDevelop 4 FISL 10 10
Visualização de Informação
Live Blue KDE hacking in the tropics Visualização de Software com o KDevelop 4 FISL 10 11
Visualização de Informação
● O sistema visual humano processa diversas informações visuais simultaneamente
● Imagens são notadamente bem lembradas● Visualizações ajudam a encontrar padrões● Porém estes serão invisíveis se não apresentados
da melhor forma● Entender como funciona a percepção visual
humana é importante para os sistemas
Live Blue KDE hacking in the tropics Visualização de Software com o KDevelop 4 FISL 10 12
Visualização de Informação
● Diversos paradigmas de visualização existem para diferentes tipos de dados:
– 1D– 2D– 3D– Multidimensionais– Hierárquicos– Network– Temporais
Live Blue KDE hacking in the tropics Visualização de Software com o KDevelop 4 FISL 10 13
Visualização de Informação
● 1D: SeeSoft
Live Blue KDE hacking in the tropics Visualização de Software com o KDevelop 4 FISL 10 14
Visualização de Informação
● 2D: selforganizing maps
Live Blue KDE hacking in the tropics Visualização de Software com o KDevelop 4 FISL 10 15
Visualização de Informação
● 3D: WebBook
Live Blue KDE hacking in the tropics Visualização de Software com o KDevelop 4 FISL 10 16
Visualização de Informação
● 3D: WebBook
Live Blue KDE hacking in the tropics Visualização de Software com o KDevelop 4 FISL 10 17
Visualização de Informação
● Multidimensionais:
Live Blue KDE hacking in the tropics Visualização de Software com o KDevelop 4 FISL 10 18
Visualização de Informação
● Hierárquicos:
Live Blue KDE hacking in the tropics Visualização de Software com o KDevelop 4 FISL 10 19
Visualização de Informação
● Hierárquicos:
Live Blue KDE hacking in the tropics Visualização de Software com o KDevelop 4 FISL 10 20
Visualização de Informação
● Hierárquicos:
Live Blue KDE hacking in the tropics Visualização de Software com o KDevelop 4 FISL 10 21
Visualização de Informação
● Network:
Live Blue KDE hacking in the tropics Visualização de Software com o KDevelop 4 FISL 10 22
Visualização de Informação
● Temporais:● Representam informações que se baseiam numa
ordem temporal● Aplicação: visualização da evolução de repositórios de
software
Live Blue KDE hacking in the tropics Visualização de Software com o KDevelop 4 FISL 10 23
Visualização de Software
● Em sistemas complexos, compreender a partir somente do códigofonte não é viável
● Como obter as seguintes informações:– Fluxo de controle: complexidade ciclomática, código não
alcançável, possibilidade de loops etc– Associação de métricas a atributos visuais: coesão,
acoplamento, modularidade– Localização de bad smells e sugestões de refactoring– Classes frequentemente atualizadas no repositório– Recuperação de arquitetura
Live Blue KDE hacking in the tropics Visualização de Software com o KDevelop 4 FISL 10 24
Visualização de Software
● Geralmente as abordagens se classificam em:● Visualização estática:
– Representa visualmente os aspectos estruturais, obtidos dos artefatos de software, sem requerer a sua execução
● Visualização dinâmica:– Representa aspectos de execução e comportamento do
software durante sua execução. Ex: KCachegrind● Visualização de Evolução:
– Realiza a visualização de repositórios
Live Blue KDE hacking in the tropics Visualização de Software com o KDevelop 4 FISL 10 25
Visualização de Software
● Visualização estática:
Live Blue KDE hacking in the tropics Visualização de Software com o KDevelop 4 FISL 10 26
Visualização de Software
● Visualização estática:
Live Blue KDE hacking in the tropics Visualização de Software com o KDevelop 4 FISL 10 27
Visualização de Software
● Visualização dinâmica:
Live Blue KDE hacking in the tropics Visualização de Software com o KDevelop 4 FISL 10 28
Visualização de Software
● Visualização de evolução:
Live Blue KDE hacking in the tropics Visualização de Software com o KDevelop 4 FISL 10 29
O KDevelop
● Criado em 1998 com o objetivo de ser uma IDE multilinguagem de fácil uso para o KDE
Live Blue KDE hacking in the tropics Visualização de Software com o KDevelop 4 FISL 10 30
O KDevelop
● Totalmente reprojetado para a versão 4
Live Blue KDE hacking in the tropics Visualização de Software com o KDevelop 4 FISL 10 31
O KDevelop
● Características da versão 4:– Core languages: C/C++, C#, Ruby, Java– Version control support: Subversion, Perforce– Build systems: GNU Autotools, CMake, QMake– Suporte a vários projetos simultâneos– Baseado na KDevPlatform + Sublime– Arquitetura de plugins (Kross enabled)– Navegação e consulta baseadas em semântica– Visualização de software
Live Blue KDE hacking in the tropics Visualização de Software com o KDevelop 4 FISL 10 32
O KDevelop
● Visualização de software no KDevelop 4:● Projeto participante do Google Summer of Code 2009
● Meta:– Control Flow Graphs– Visualização Polimétrica– Projeto arquitetural para suporte de novas visualizações
Live Blue KDE hacking in the tropics Visualização de Software com o KDevelop 4 FISL 10 33
O KDevelop
Live Blue KDE hacking in the tropics Visualização de Software com o KDevelop 4 FISL 10 34
O KDevelop
● O KDevelop e a DUChain:● Estrutura de representação das declarações,
definições e usos presentes no códigofonte
TopDUContext
DUContext DUContext
Live Blue KDE hacking in the tropics Visualização de Software com o KDevelop 4 FISL 10 35
O KDevelop
● O KDevelop e a DUChain:● Estrutura de representação das declarações,
definições e usos presentes no códigofonte
TopDUContext
DUContext DUContext
Live Blue KDE hacking in the tropics Visualização de Software com o KDevelop 4 FISL 10 36
O KDevelop
● O KDevelop e a DUChain:● Estrutura de representação das declarações,
definições e usos presentes no códigofonte
TopDUContext
DUContext DUContext
Live Blue KDE hacking in the tropics Visualização de Software com o KDevelop 4 FISL 10 37
O KDevelop
● O KDevelop e a DUChain:● Estrutura de representação das declarações,
definições e usos presentes no códigofonte
TopDUContext
DUContext DUContext
Live Blue KDE hacking in the tropics Visualização de Software com o KDevelop 4 FISL 10 38
O KDevelop
● O KDevelop e a DUChain:● Estrutura de representação das declarações,
definições e usos presentes no códigofonte
TopDUContext
DUContext DUContext
Live Blue KDE hacking in the tropics Visualização de Software com o KDevelop 4 FISL 10 39
O KDevelop
● O KDevelop e a DUChain:● Estrutura de representação das declarações,
definições e usos presentes no códigofonte
TopDUContext
DUContext DUContext
Live Blue KDE hacking in the tropics Visualização de Software com o KDevelop 4 FISL 10 40
O KDevelop
● O KDevelop e a DUChain:● Estrutura de representação das declarações,
definições e usos presentes no códigofonte
TopDUContext
DUContext DUContext
Live Blue KDE hacking in the tropics Visualização de Software com o KDevelop 4 FISL 10 41
O KDevelop
● O KDevelop e a DUChain:● Estrutura de representação das declarações,
definições e usos presentes no códigofonte
TopDUContext
DUContext DUContext
Live Blue KDE hacking in the tropics Visualização de Software com o KDevelop 4 FISL 10 42
O KDevelop
● O KDevelop e a DUChain:● Estrutura de representação das declarações,
definições e usos presentes no códigofonte
TopDUContext
DUContext DUContext
Live Blue KDE hacking in the tropics Visualização de Software com o KDevelop 4 FISL 10 43
O KDevelop
● O KDevelop e a DUChain:● Estrutura de representação das declarações,
definições e usos presentes no códigofonte
TopDUContext
DUContext DUContext
Live Blue KDE hacking in the tropics Visualização de Software com o KDevelop 4 FISL 10 44
O KDevelop
● O KDevelop e a DUChain:● Estrutura de representação das declarações,
definições e usos presentes no códigofonte
TopDUContext
DUContext DUContext
Live Blue KDE hacking in the tropics Visualização de Software com o KDevelop 4 FISL 10 45
O KDevelop
● O KDevelop e a DUChain:● Estrutura de representação das declarações,
definições e usos presentes no códigofonte
TopDUContext
DUContext DUContext
Live Blue KDE hacking in the tropics Visualização de Software com o KDevelop 4 FISL 10 46
O KDevelop
● O KDevelop e a DUChain:● Estrutura de representação das declarações,
definições e usos presentes no códigofonte
TopDUContext
DUContext DUContext
Live Blue KDE hacking in the tropics Visualização de Software com o KDevelop 4 FISL 10 47
O KDevelop
● O KDevelop e a DUChain:● Estrutura de representação das declarações,
definições e usos presentes no códigofonte
TopDUContext
DUContext DUContext
Live Blue KDE hacking in the tropics Visualização de Software com o KDevelop 4 FISL 10 48
O KDevelop
● KDevelop, Graphviz, KGraphViewer:● Utilização do Graphviz para representação e layout
dos control flow graphs● Utilização da KPart do KGraphViewer para a
renderização do grafo
Live Blue KDE hacking in the tropics Visualização de Software com o KDevelop 4 FISL 10 49
O KDevelop
● Resultados preliminares:
Live Blue KDE hacking in the tropics Visualização de Software com o KDevelop 4 FISL 10 50
O KDevelop
● Resultados preliminares:
Live Blue KDE hacking in the tropics Visualização de Software com o KDevelop 4 FISL 10 51
O KDevelop
● Resultados preliminares:
Live Blue KDE hacking in the tropics Visualização de Software com o KDevelop 4 FISL 10 52
O KDevelop
● Resultados preliminares:
Live Blue KDE hacking in the tropics Visualização de Software com o KDevelop 4 FISL 10 53
O KDevelop
● Resultados preliminares:
Live Blue KDE hacking in the tropics Visualização de Software com o KDevelop 4 FISL 10 54
O KDevelop
● Resultados preliminares:
Live Blue KDE hacking in the tropics Visualização de Software com o KDevelop 4 FISL 10 55
O KDevelop
● Resultados preliminares:
Live Blue KDE hacking in the tropics Visualização de Software com o KDevelop 4 FISL 10 56
O KDevelop
● Resultados preliminares:
Live Blue KDE hacking in the tropics Visualização de Software com o KDevelop 4 FISL 10 57
O Develop
● Desafios:● Tradeoff entre informação e desempenho● Funcionalidades eficazes de navegação● Visualização de conexões signalsslots● Visualização dos incoming arcs● Representação multinível
Live Blue KDE hacking in the tropics Visualização de Software com o KDevelop 4 FISL 10 58
Trabalhos (não muito) futuros
● Conclusão dos control flow graphs● Implementação da visualização polimétrica● Framework para futuras visualizações● Visualização de dependência entre classes
Live Blue KDE hacking in the tropics Visualização de Software com o KDevelop 4 FISL 10 59
Conclusões
● Ferramentas de visualização como apoio indispensável ao editor de código em sistemas complexos
● Desafios para navegação e filtragem dos artefatos● Visualização de evolução● Recuperação de arquitetura● Rastreabilidade de requisitos
Live Blue KDE hacking in the tropics Visualização de Software com o KDevelop 4 FISL 10 60
Live Blue (http://liveblue.wordpress.com)
Visualização de Softwarecom o KDevelop 4
Sandro Santos [email protected]
http://[email protected]