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