Novática, la revista de ATI Novática es la revista de ATI (Asociación de Técnicos de Informática)
Nota importante:Se permite la reproducción y difusión de este artículo por cualquier medio, excepto si está marcado con© o Copyright, debiéndose en todo caso citar su procedencia 
Important notice: This article can be reproduced and disseminated via any medium except if marked with © or Copyright. Full mention of the source is mandatory

Novática 150 (marzo-abril 2001)

Monografía: "Visualización del software"
 

Presentación: la representación de lo abstracto

Fuentes de interés

Editores invitados: Cristóbal Pareja (1), J. Ángel Velázquez (2)

(1) Depto. Sistemas Informáticos y Programación, Universidad Complutense de Madrid; (2) Escuela Superior de CC. Experimentales y Tecnología Universidad Rey Juan Carlos

<cpareja@sip.ucm.es>
<a.velazquez@escet.urjc.es>
 

1. Introducción

Aunque suelen confundirse, los significados de visualizar y ver son distintos. Por ejemplo, el diccionario de María Moliner define visualizar como «hacer visible mediante aparatos lo que no lo es a simple vista» o como «representar mentalmente nociones abstractas». Por tanto, visualizar es hacer algo visible mediante cierta representación. Puede ser un proceso puramente mental, aunque lo normal es que finalmente se dibuje. También supone usar algún tipo de lenguaje gráfico en vez de limitarnos al lenguaje oral. Así, un gráfico con la evolución de las ventas de una empresa es una visualización de esta actividad.

La visualización es importante debido a su fuerza expresiva: «una imagen vale más que mil palabras». Mapas, diagramas, señales de circulación, etc. son signos y señales omnipresentes en nuestras vidas; los anuncios, la televisión y la Web también están repletos de imágenes. En nuestra cultura resulta difícil concebir una actividad de ingeniería sin representaciones de los objetos que desarrolla, por ejemplo mediante planos. En este caso, el objetivo de la visualización es ayudar a la comprensión, diseño, análisis o uso. Como producto técnico que es, el software no es ajeno a su posible representación visual.

En realidad, el software se ha visualizado desde que apareció, aunque de formas no siempre aceptadas universalmente. Un organigrama es una representación gráfica y estática de un programa. El formateado de un programa es una forma rudimentaria de visualización, también estática, basada en los criterios estéticos del programador. Existen muchas otras representaciones de toda clase de elementos del software: estructuras de datos, diagramas de diseño, etc.

La búsqueda de mejores representaciones visuales ha dado origen a la investigación en visualización del software. Suele considerarse como un hito en la visualización del software el vídeo Sorting Out Sorting de Ronald Baecker en 1981, que reproducía la animación de varios algoritmos de ordenación. Otros sistemas claves fueron Balsa, desarrollado por Mark Brown en 1984, Tango por John Stasko en 1990 y Pavane por G.-C. Roman et al. en 1992. En paralelo, aumentaron los entornos comerciales que ofrecían soporte visual al diseño (herramientas CASE con diversas clases de diagramas) y a la programación (entornos de programación visual). Tampoco han sido ajenos a esta evolución las tecnologías multimedia y Web, que han facilitado que las visualizaciones se integren con otros medios, especialmente explicaciones en texto.

Existen áreas fronterizas, donde la visualización juega un papel importante, como la programación visual o la programación mediante demostración. Aunque en ambos casos, existe alguna clase de visualización, la diferencia principal es de propósito: la visualización del software busca representaciones gráficas del mismo que ayuden a su comprensión, mientras que la programación visual persigue que los programas se especifiquen más fácilmente mediante una notación gráfica. En concreto, los diagramas de diseño son una clase de programación visual de alto nivel.
 

2. Monográfico sobre visualización del software

El presente monográfico aborda la visualización del software en general, aunque con énfasis en su uso educativo. Esta atención especial se debe al interés existente hoy en día por el buen diseño pedagógico y técnico de las animaciones de algoritmos por parte de la comunidad internacional especializada en la innovación educativa en informática.

Se abre el monográfico con una visión panorámica de la visualización del software por parte de Luis Gómez, de la Universidad Politécnica de Madrid. Su artículo presenta la visualización de la información en general y del software en particular, incidiendo en clasificaciones, historia, problemas y usos de la visualización del software.

Los tres artículos siguientes reflexionan sobre el diseño, uso y utilidad de la visualización del software, fundamentalmente en la docencia. Mordechai Ben-Ari, del Weizmann Institute of Science (Tel Aviv, Israel), analiza el impacto educativo de las visualizaciones. Para ello, expone los experimentos realizados hasta el momento sobre el éxito en el aprendizaje de las representaciones gráficas en general y las visualizaciones de software en particular. Explica estos resultados a partir de la teoría pedagógica del constructivismo y por último describe algunas experiencias educativas actuales en visualización con unas bases pedagógicas sólidas. Por su parte, Sami Khuri, de la San José State University (EE.UU.), aborda el problema de que, pese a la gran cantidad y calidad de los sistemas de visualización existentes, no siempre se hace una planificación cuidadosa de su uso y diseño. Su artículo expone los distintos factores que intervienen en la fase previa de análisis de requisitos, con especial atención al usuario. Por último, Thomas Naps, de la Lawrence University (EE.UU.), analiza el uso que puede jugar la visualización de algoritmos dentro de cuatro modelos de aprendizaje concretos.

Como hemos comentado anteriormente, la visualización del software tiene relación con la programación visual y las metodologías de diseño. El artículo de María Dolores Lozano, Pascual González e Isidro Ramos hace una propuesta nueva para diseñar interfaces de usuario. En este caso, se usan diagramas de diseño visuales para diseñar un producto software de carácter visual, las interfaces de usuario.

Cierran el monográfico tres artículos que describen sistemas concretos de visualización del software. Manuel Carro y Manuel Hermenegildo, de la Universidad Politécnica de Madrid, proponen diversas visualizaciones para datos y restricciones en programas lógicos con restricciones, que se han implementado en las herramientas VIFID y TRIFID. Guido Rößling y Bernd Freisleben, de la University of Siegen (Alemania), describen las características principales del sistema de animación de algoritmos Animal y su lenguaje de guión AnimalScript, como son sus facilidades para la disposición relativa de objetos, su apoyo al multiligüismo y a la emisión de diagnósticos, y sus posibilidades de ampliación. Por último, Fernando Naharro, Cristóbal Pareja, Ángel Velázquez y Margarita Martínez describen las prestaciones del entorno de programación funcional WinHIPE para generar automáticamente visualizaciones de expresiones y páginas Web. Cada página está estructurada de forma que sea una lección sobre un algoritmo, que consta de una explicación del problema y el algoritmo, un programa y una animación.
 

3. Referencias

Existe una gran cantidad de información dispersa sobre visualización del software, principalmente en actas de congresos. Damos a continuación algunas referencias generales, de las que hemos excluido referencias de sistemas de visualización concretos por el gran número existente; sin embargo, muchas pueden localizarse a partir de las incluidas o de los artículos del monográfico.
 

4. Fuentes de interés

Libros
 

  • P. Eades y K. Zhang (eds.), Software Visualisation, World Scientific, 1996.
  • C. L. Jeffery, Program Monitoring and Visualization, Springer-Verlag, 1999.
  • J. Stasko, J. Domingue, M. H. Brown y B. A. Price (eds.), Software Visualization: Programming as a MultimediaExperience, MIT Press, 1998.

  • Revistas
     

  • Journal of Visual Languages and Computing, de Academic Press, http://www.academicpress.com/jvlc

  •  

     

    Congresos
     

  • SIGCSE Technical Symposium on Computer Science Education, última edición: http://www.math.grin.edu/~sigcse/2001/
  • SIGCSE/SIGCUE Conference on Innovation and Technology in Computer Science Education (ITiCSE), última edición: http://www.cs.ukc.ac.uk/events/iticse2001/
  • IEEE Symposium on Information Visualization (InfoVis), última edición: http://www.computer.org/proceedings/infovis/0804/0804toc.htm
  • IEEE Symposium on Visual Languages (VL), última edición: http://www.computer.org/proceedings/vl/0216/0216toc.htm
  • Program Visualization Workshop, http://cs.joensuu.fi/pages/pvw/workshop.htm

  • Páginas Web
     

  • The Complete Collection of Algorithm Animations, http://www.cs. hope.edu/~alganim/ccaa/ccaa.html
  • Computer Science Education Links, apartado de Algorithms and Algorithm Animation, http://www.cacs.usl.edu/~mccauley/edlinks/#Algorithms
  • Graph Drawing, http://www.cs.brown.edu/people/rt/gd.html

  •  

     

    Editores invitados

    Cristóbal Pareja Flores es Licenciado en CC. Matemáticas (especialidad CC. de la Computación) y Doctor en Informática. Desde 1988 trabaja como profesor en el Depto. de Sistemas Informáticos y Programación de la Universidad Complutense de Madrid. Sus intereses incluyen la innovación en la docencia universitaria de la informática, y la investigación, principalmente en programación funcional y concurrente y en entornos de programación. En esas áreas ha participado y dirigido diversos proyectos y publicaciones nacionales e internacionales. Es coordinador de la Sección Técnica «Enseñanza Universitaria de la Informática» de Novática.

    J. Ángel Velázquez Iturbide es Licenciado en Informática (1985) y Doctor en Informática (1990) por la Universidad Politécnica de Madrid. Es profesor titular de Universidad, anteriormente en la Universidad Politécnica de Madrid y desde 1997 en la Universidad Rey Juan Carlos. Es el coordinador del área de Lenguajes y Sistemas Informáticos de esta universidad. Sus intereses comprenden herramientas y entornos de programación, visualización del software y aplicaciones multimedia y Web, todo ello aplicado principalmente a la enseñanza universitaria de la informática. Es co-coordinador de la sección técnica de «Lenguajes Informáticos» de Novática. Es miembro de ACM, IEEE Computer Society, AACE y ATI.
     

    Vuelta a inicio