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
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>
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.
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
Revistas
Congresos
Páginas Web
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.