Visualización Dinámica de programa
Visualización Dinámica de Programas | |
|---|---|
Las Técnicas de Visualización de Programas (TVP) realizan representaciones gráficas y abstracciones de alto nivel que describen el código y los datos del programa, transformando la información tradicional en una más significativa que facilita la comprensión por el programador. La integración de varias TVP contribuye a solucionar problemas relacionados con el diseño e implementación de estructuras de datos y programas. Se propone el Ambiente Integrado de Visualización de Estructuras de Datos (VIA-ED) basado en mapas conceptuales que constituye un repositorio de recursos, uno de los cuales es el sistema VisualProg que tiene como entrada el código en el lenguaje SubC, desarrollado para este fin, y que integra los componentes de visualización de código, datos y complejidad del programa. VisualProg fue implementado teniendo en cuenta la arquitectura propuesta para el diseño de Sistemas de Visualización de Programas (Arq_VP), concebida en tres capas: Analizador de Código, Controladora y Vista.
Sumario
El diseño de información y las visualizaciones
El diseño en la actualidad, provoca una sinergia entre la funcionalidad y la estética. Para hablar de las visualizaciones es necesario remontarse al conocimiento de la realidad, ya que las visualizaciones son artefactos que pretenden ampliar la capacidad del conocimiento. Las visualizaciones construcción mental que se acerca al conocimiento mediante la conciencia de un objeto real pero ausente o inexistente. En correspondencia, los datos se han venido transformando en información durante toda la historia de la humanidad, aún antes de que existieran las computadoras pero el surgimiento de estas ha creado un paradigma desde diferentes puntos de vista que ha causado una revolución tecnológica en los últimos años en cuanto a la visualización se refiere.
La programación y la Visualización de software
La programación origina efectos en el desarrollo de las capacidades cognitivas, favorece la actividad intelectual que permite establecer planificaciones y estrategias, construir algoritmos, estructurar instrucciones, analizar y comprender programas, aprender la sintaxis de los distintos lenguajes de programación, comparar recursos usados por los programadores expertos y por los principiantes La visualización de información, en general, consiste en el uso de recursos gráficos, de animación y multimediales con importante interacción entre el usuario y la computadora. . Específicamente, la visualización de software, usa recursos similares a la de información, tiene como finalidad facilitar la comprensión y el uso efectivo de programas, usa gráficas por computadoras y animación interactiva para ayudar a ilustrar y presentar programas, procesos y algoritmos. Esta se basa en el uso del diseño gráfico, de animación, de sonido, de video y tiene como característica sobresaliente la interacción entre el usuario y la computadora, apuntando a una mayor comprensión y a un uso efectivo del software
La Visualización de Software comprende la Visualización de Algoritmos y la de Programas. La primera consiste en la visualización de abstracciones de alto nivel que describen el algoritmo, mientras que la segunda se refiere al código real de programa y a las estructuras de datos. Ambas pueden darse en forma estática o dinámica
Visualización de Programas
La Visualización de Programas presenta vistas del código fuente del programa y de las estructuras de datos. La visualización estática de programa realiza un análisis de su texto y provee la información válida para todas las ejecuciones independientemente de su entrada . Los Sistemas de Visualización de Programas emplean editores sintácticos u optimizadores de código que producen un mejoramiento de la impresión, como sangrías, diferencias de colores entre palabras reservadas y otros identificadores, la representación gráfica de la estructura del programa y de los datos; pero, no pueden explicar la conducta del programa ya que esto depende de los datos de entrada, además del texto mismo. Una representación dinámica del programa provee información acerca de la ejecución de un programaespecífico sobre un conjunto de datos de entrada
Herramientas deVisualización de Programas
Herramientas: CASE utilizadas básicamente para el modelado de diagramas con el Lenguaje Unificado de Modelado (UML). Las animaciones interactivas son una herramienta muy valiosa para la enseñanza, divulgación y el aprendizaje electrónico
Uso de Arq_VP para el diseño SVP dinámicos
Para el diseño de SVP dinámicos, están presentes diferentes capas y es necesario diseñar las interfaces de conexión entre ellas, que serán las encargadas de pasar la información necesaria a cada una de las capas. Cada interfaz de la capa Controladora procesará los datos que se corresponden con una única vista.
Capa Controladora
En esta capa se incluyen los módulos que activan eventos relacionados con el cambio de objetos en memoria para mapearlos en la visualización (métodos declarativos); eventos de ciertos puntos importantes dentro de la ejecución del programa (métodos imperativos) o ambos (métodos declarativos-imperativos).
Capa de Vista
En la capa de Vista se ejecutan las rutinas que dibujan la vista correspondiente en la pantalla de visualización, mostrando las distintas figuras y sus combinaciones, dependiendo de las órdenes del controlador. Se incluyen las rutinas para el dibujo, usando los objetos gráficos más comunes, como cuadrados, círculos, flechas, rectángulos que han sido definidos en la capa Controladora.
Capa Analizador de Código de VisualProg
VisualProg interpreta el código SubC y suministra la información a la capa Controladora que a su vez llama a los módulos de Vista, los que realizan la salida fundamental del sistema o sea la visualización.
Programas escritos en SubC para la búsqueda en distintas estructuras de datos
Búsqueda en una lista enlazada
Nodo *Elemento ( Nodo *Cabeza, int i) { . Nodo *t = Cabeza; . for (int c = 0; t && c <= i; c++, t = t ->prox) ; . return t ; }
Búsqueda en un arreglo
Int Elemento (int * array, int index) 5 . { return array [index]; }
Fuentes
- ACM y IEEE-CS. (2005). Computing Curricula 2005. The Overview Report covering undergraduate degree programs in Computer Engineering, Computer Science, Information Systems Information Technology, Software Engineering: ACM & IEEECS, 58.aiSee. (2009). aiSee Application Examples: PAG/WWW (Version 2.0) Software Educativo.
- Almeida, F., Blanco, V. y Moreno, L. (2003). EDApplets: Una Herramienta Web para la Enseñanza de Estructuras de Datos y Técnicas Algorítmicas. Artículo presentado en X Jornadas de Enseñanza Universitaria de la Informática, Universidad de Laguna. Tenerife, 12.
- Anderson, J. (1983). The architecture of cognition (Harvard University Press ed. Vol. 2). Cambridge, MA, 63-78 pp.
- Apoio-Informática-Ltda. (2007). VisuAlg. Programa que interpreta e executa algoritmos (Version 2.0) Programa de Computadora.