Programação Visual
Sistemas de Visualização
Maria Alice G. V. Ferreira
Maio de 2003
Visualização
• Programação Visual (VP em inglês) é qualquer
sistema que permite ao usuário especificar um
programa em duas ou mais dimensões. Inclui
linguagens de programação gráficas e diagramas de
blocos convencionais
• Visualização de Programas (PV em inglês) - é a
visualização de quaiquer aspecto (estático ou
dinâmico) de um programa através de expressão
gráfica:
Maria Alice G. V. Ferreira PCS5715- EP-USP-PCS
2
Sistemas de Visualização
• Software destinado a realizar a visualização de
objetos ou fenômenos complexos. Estes sistemas
permitem a criação de aplicações científicas ou
técnicas, cujo objetivo principal é obtido através
de visualização de algum tipo; exemplos são das
áreas geoespacial, médica, etc. As visualizações,
geralmente, estão conjugadas com animação.
– AVS
– Khoros
Maria Alice G. V. Ferreira PCS5715- EP-USP-PCS
3
Exemplo: AVS – Modelagem de Ventos
Maria Alice G. V. Ferreira PCS5715- EP-USP-PCS
4
Exemplo: AVS – visualização de dados
tridimensional
Maria Alice G. V. Ferreira PCS5715- EP-USP-PCS
5
Exemplo: AVS – figuras tridimensionais
Maria Alice G. V. Ferreira PCS5715- EP-USP-PCS
6
Programação visual
• Programa é descrito através de grafos dirigidos
– nós - representam operadores ou funções
– arcos - representam os “caminhos” através
dos quais passam os dados
• Exemplo: Cantata
Maria Alice G. V. Ferreira PCS5715- EP-USP-PCS
7
Por que usar programação visual?
• Similaridade com diagramas de blocos, que já são
conhecidos dos usuários e desenvolvedores
• Aumento de produtividade
• Universalidade  o ícone tem sempre o mesmo sentido,
em qualquer linguagem, tornando a linguagem visual
universal (não totalmente correto)
• Imagens guardam similaridade conceitual com os
objetos que representam e seu reconhecimento pelo ser
humano é mais fácil do que o reconhecimento de texto /
o significado pode ser aprendido
Maria Alice G. V. Ferreira PCS5715- EP-USP-PCS
8
Khoros
• Khoros é um ambiente integrado de
desenvolvimento para análise, processamento e
visualização, com um amplo ferramental destinado
a estas tarefas, idealizado pela Universidade do
Novo México e, atualmente, comercializado pela
Khoral Research Inc.
• A interface de Khoros é uma linguagem visual
denominada Cantata.
Maria Alice G. V. Ferreira PCS5715- EP-USP-PCS
9
Ambiente de Desenvolvimento do Khoros
Application
Toolboxes
Visual
Programming
Environment
Software
Development
Environment
Programming
Services
DATAMANIP
ENVISION
IMAGE
GEOMETRY
MATRIX
Cantata
Craftsman
Composer
GUISE
Data Services
Foundation Services
UNIX / Maria
Windows
AliceNT
G. V. Ferreira PCS5715- EP-USP-PCS
GUI / Visualization Services
X Windows
10
Khoros Supports the Entire Software Development Cycle
Visual Programming
•Plug-and-play approach to algorithm development
Algorithm
Development
•Connect algorithmic components as an intuitive block diagram
•R&D algorithms can be deployed at the touch of a button
Software Development Environment
Algorithm
Evaluation
•Manage toolboxes containing software objects
•Interactive GUI editing
•Create new algorithmic components in a well-structured framework
Algorithm
Deployment
Software Systems Integration
•Easily integrate new code with legacy code
•Manage large systems as toolboxes of simple components
•Maintenance is simple!
Algorithm
Maintenance
Just update a workspace and deploy
Maria Alice G. V. Ferreira PCS5715- EP-USP-PCS
11
Cantata
• O algoritmo é desenvolvido sobre o
workspace, através da colocação de glyphs
sobre ele.
• Workspace – similar aos formulários do VB ou
da Web
• Glyphs
ícones
que
representam
“operadores”.
• Os operadores são programas do sistema e
podem ser conectados como nós do grafo. As
arestas do grafo indicam caminhos que os
fluxos de resultados podem percorrer. Os
operadores são conectados entre si, conforme
o processamento pretendido.
Maria Alice G. V. Ferreira PCS5715- EP-USP-PCS
12
Exemplo de Algoritmo em Cantata
Maria Alice G. V. Ferreira PCS5715- EP-USP-PCS
13
Programação Dataflow
• A saída de um glyph pode ser alimentada como
entrada de um outro glyph
• As conexões de dados impõem uma ordem de
execução entre os blocos
• Dataflow - forma de programação, onde os dados
fluem de um bloco para outro, forçando a
execução do bloco onde chegam.
• A ordem de execução pode ser controlada também
por conexões de controle.
Maria Alice G. V. Ferreira PCS5715- EP-USP-PCS
14
Conexões de Controle
• Permitem controlar a passagem dos “dados”pelos blocos
control
connection
Maria Alice G. V. Ferreira PCS5715- EP-USP-PCS
15
Estrutura dos glyphs
• Os glyphs podem ser personalizados através de
painéis
denominados
panes.
• A figura ao lado mostra
uma interface Cantata,
onde um dos glyphs tem o
seu pane exposto. Nele
podem ser indicadas as
imagens a serem “somadas” pelo bloco de adição,
cuja saída será exibida no
vídeo.
Maria Alice G. V. Ferreira PCS5715- EP-USP-PCS
16
Estrutura dos
glyphs
• Os glyphs podem
indicar estruturas
de controle: blocos
if-then-else,
repetitivos, chaves,
merge, expressões
etc.
Maria Alice G. V. Ferreira PCS5715- EP-USP-PCS
17
Estrutura dos glyphs
• Controles
condicionais:
– Merge
– If-then-else
– Switch
– Trigger – só executa quando chegarem dados de outro
bloco.
• Outros:
– Clipping
– Threshing
Maria Alice G. V. Ferreira PCS5715- EP-USP-PCS
18
Glyph de iteração – contagem repetitiva
Maria Alice G. V. Ferreira PCS5715- EP-USP-PCS
19
Procedimentos
Procedimentos podem ser
aninhados
Procedimentos podem ser
armazenados para reuso
Maria Alice G. V. Ferreira PCS5715- EP-USP-PCS
20
Expressões
• podem ser usadas como argumentos dos “glyphs”
• são exigidas por estruturas de controle
• expressões - contêm:
– operadores aritméticos e lógicos (de relação, lógicos,
shifts)
– constantes pré-definidas : pi, e, sqrt(2), ln 10, maxint,
etc
– funções : sin, cos, tan, sqrt, bessel, impulso, degrau,
gama, etc
– v = expressão
Maria Alice G. V. Ferreira PCS5715- EP-USP-PCS
21
Criação de Glyphs
• via menu Toolbox - permite criar um ícone de acordo com
o critério de categoria/subcategoria/nome do operador
– Data Visualization and Exploration
– Data Manipulation
– Image Processing
– Linear Algebra
– Geometry visualization and rendering
– Streaming Data Manipuation
– M-File (MATLAB) support
• através da lista de aceleração de rotinas (Accelerated
routine list)
• através da lista de busca de rotinas (Accelerated glyph
finder list)
Maria Alice G. V. Ferreira PCS5715- EP-USP-PCS
22
Computação distribuída
Take advantage of a heterogeneous computing environment
Distributed Computing
Allows you to specify
which machine you want
each glyph to run on
Maria Alice G. V. Ferreira PCS5715- EP-USP-PCS
23
Interfaces AVS
Tradicionais
Maria Alice G. V. Ferreira PCS5715- EP-USP-PCS
24
Referências bibliográficas
• Documentos do Khoros:
http://www.khoral.com
• Documentos do AVS:
http://www.avs.com
Maria Alice G. V. Ferreira PCS5715- EP-USP-PCS
25
Download

Programação Visual