Posted by admin on July 26, 2010

Ikuspro es el proyecto de fín de carrera que hice en su día en el que aprendí un montón de cosas sin las cuales no se me habría ocurrido empezar el proyecto PFA.
En su día ya comenté un poco de qué iba el tema . Tras eso la cosa terminó en que el proyecto obtuvo matrícula de honor.
A rasgos generales aprendí lo siguiente y por tanto ahora que está liberado puede que sirva a alguien para indagar en estos aspectos:
- Implementación de un framework MVC para Swing usando genericidad.
- Diseño de interfaces gráficas Swing con soporte para persistencia.
- Buenas prácticas Swing: integración con los OS más utilizados, no recarga del hilo de eventos usando workers etc…
- Programación concurrente en Java, diseño productor-consumidor.
- Separación de una aplicación en dos partes comunicadas mediante sincronización de hilos.
- Implementación con ANTLR de un intérprete de un subconjunto de ANSI-C que se comunica con el GUI mediante mensajes XML.
- Comunicación entre procesos mediante un API XML.
- Dibujado en Canvas con Java2D e integración del mismo con el GUI.
Lo cierto es que fue bastante divertido. Me consta que en EUITI tienen pensado utilizarlo en laboratorios y la idea es que otros alumnos extiendan Ikuspro con nuevas funcionalidades e incluso con nuevos intérpretes.
Gracias a Mikel Villamañe por confiar en mí para implementar la idea.
A continuación el material que usé en la defensa, un pantallazo y el enlace al repositorio en mi github.
Posted by admin on October 2, 2009
Ikuspro es el nombre del software que he desarrollado para mi PFC. Se trata de un simulador gráfico de programas.
La idea del proyecto es de mi director de PFC que es profesor del departamento de LSI de EUITI-BI e imparte clases de “Fundamentos de Informática” por lo que pensó que una herramienta de este tipo podría ser útil para quien se enfrenta por primera vez a la metodología de programación.
Con Ikuspro la ejecución de los programas se hace visual y gracias a ello se alivia un poco la sensación de abstracción que suele inspirar la programación. Es algo parecido a lo que ocurre con Logo, aquella tortuga que hacíamos mover por toda la pantalla sin darnos cuenta de que estábamos programando por primera vez.
De todos modos lo mejor es que ponga un ejemplo. Este código por ejemplo:

Como puedes ver este código es C.
Ikuspro en la versión actual incluye un intérprete de C que he desarrollado con el objetivo de que puedan funcionar los ejercicios utilizados en la asignatura de “Fundamentos de Informática”. Este ejemplo es muy sencillo para no recargar esta entrada pero el intérprete de C de Ikuspro es bastante más avanzado soportando funciones, arrays, condicionales, bucles e incluso punteros parcialmente.
Hablo del intérprete como algo independiente de Ikuspro ya que una parte interesante del proyecto es que Ikuspro está pensado en realidad como un simulador gráfico que se puede extender en el futuro con nuevos intérpretes para otros lenguajes sin mayor dificultad. Siendo un poco más técnicos, lo que hace Ikuspro es ejecutar el intérprete adecuado para el tipo de programa en un hilo independiente comunicándose ambos como productor-consumidor vía mensajes XML.
A continuación la simulación gráfica que genera Ikuspro al término de este programa y digo al término ya que con Ikuspro se va viendo la ejecución del programa línea a línea, en realidad como si de un debugger se tratara sólo que mucho más fácil y sobre todo didáctico para el usuario objetivo.

Además, Ikuspro también genera comentarios didácticos acerca de lo que va sucediéndo línea a línea y muestra la salida estándar del intérprete, que es fiel a lo esperable.
A continuación un pantallazo de Ikuspro donde puedes ver las diferentes partes y hacerte una idea del funcionamiento del mismo:

Enlace a imágen ampliada
Ikuspro está desarrollado enteramente en Java. El intérprete C que incorpora se ha desarrollado con ANTLR.
Por último, el título de esta entrada es “Ikuspro en beta” porque esta semana he terminado de realizar mis pruebas así que está listo para realizar pruebas con usuarios. Ikuspro actualmente está numerado como 0.9 en lugar de 1.0 para dar cabida a alguna idea interesante y factible que pueda surgir en las pruebas con usuarios.
Si has llegado a leer hasta aquí y te gustaría probar Ikuspro:
Página web provisional del proyecto Ikuspro