Ir a versión españolaGo to English version
Ultima modificación : 23-03-2012
www.agustincernuda.info
Índice del sitio
Aviso
Sea cual sea la dirección que vea en la barra de su navegador, para enlazar a esta página debería utilizar siempre como base www.agustincernuda.info, para prevenir futuros enlaces rotos.
Contacto
Agustín Cernuda del Río
Escríbeme: guti en uniovi punto es

WebStats

El proyecto Itacio

Acerca de Itacio

Itacio es un modelo de componentes, cuyo objetivo es ofrecer una estrategia general de desarrollo que, apoyándose en la combinación de componentes, permita una verificación estática y automática del software que se está construyendo.

Su motivación surge del hecho de que la construcción de software mediante componentes es esencialmente una actividad artesana, y las pruebas por sí solas no pueden detectar muchos tipos de errores que sin embargo podrían evitarse. Así que en mi opinión debería realizarse algún tipo de análisis estático; un análisis automatizado, exigente y conservador que señale cualquier combinación de componentes no válida. Si no está garantizado que una unión es correcta, se considera que es incorrecta y se rechaza.

Hoy en día, si exceptuamos los mecanismos habituales (básicos) de comprobación de signaturas, los componentes suelen suministrarse básicamente con documentación pensada para seres humanos. Esta documentación es ambigua e incompleta, y en cualquier caso la gente que la lee puede cometer errores. Si los componentes fuesen caracterizados de manera más seria, se podrían detectar muchos problemas casi en tiempo de diseño, simplemente verificando las exigencias y garantías de los componentes involucrados.

Itacio pretende aportar especificaciones más sólidas. Pero los métodos formales suelen ser difíciles de entender y utilizar. El objetivo de Itacio es ofrecer una forma de especificar componentes que sea útil en el "mundo real", sin la necesidad de conocimientos muy especializados.

Por supuesto, la especificación de un componente puede ofrecer garantías que en realidad no cumple. Pero este problema no tiene solución conocida, de todas formas.

Ambito del proyecto

Este proyecto está siendo desarrollado por Agustín Cernuda del Río, en principio como tesis doctoral para obtener el título de Doctor en Ingeniería Informática en la Universidad de Oviedo . También colaboran en el desarrollo José Emilio Labra Gayo y Juan Manuel Cueva Lovelle . Se han llevado a cabo experimentos por medio de C++ / Java / CLP (Eclipse) / XML / VML.

Inicialmente, el proyecto Itacio no tuvo más apoyo económico que el tiempo y dinero de su autor. Posteriormente, se abordó el proyecto ATACS en pos de los objetivos de fondo planteados en Itacio.

¿Por qué ese nombre tan raro?

"Encerré en precioso mármol para la mansión eterna el tierno cuerpo de Itacio".

Este es el texto que aparece en la tapa del sarcófago de Itacio. Es un sarcófago visigodo de mármol blanco, y algunos autores opinan que data del siglo V. Se conserva en el Panteón de los Reyes de la Catedral de Oviedo en Asturias. Está decorado con estilo bizantino, y parece que no se construyó en Asturias sino probablemente en Zamora; se supone que llegó a Asturias durante la Monarquía (probablemente bajo el reinado de Alfonso II) después de una incursión militar. Nadie sabe quién fue Itacio, pero la inscripción parece dar a entender que murió a una edad temprana.

En resumen, tenemos un caparazón duro, creado para proteger algo delicado y misterioso. Un caparazón con una inscripción en la que queda claramente establecida su misión, dando la información precisa sobre su propósito pero casi ninguna sobre lo que hay en su interior. Un caparazón construido para permanecer y resistir el paso de los siglos. Un objeto que han hecho otros, pero que los asturianos hemos adoptado como nuestro, integrándolo con el resto de nuestros tesoros artísticos.

Así que, además de hacer referencia a mis raíces culturales y a la historia antigua de Asturias, y teniendo en cuenta lo que se ha dicho aquí sobre el propósito del proyecto, parece un buen nombre para un modelo de componentes.

Escrutinio público

Durante el 5 y el 6 de Junio de 2000, asistí al III Workshop on Component-Based Software Engineering, que se celebró en la Universidad de Limerick (Irlanda) como parte de la 22nd Conference on Software Engineering. Mi contribución se encuentra en mis páginas sobre investigación (ver mapa del sitio).

Fue una oportunidad excelente para conocer el estado del arte en ingeniería del software basada en componentes. El formato del "workshop" fue diferente este año; en ediciones anteriores, el número de participantes era mucho mayor, pero esta vez los organizadores fueron mucho más selectivos, y sólo unas 15 personas pudieron asistir a las sesiones (se aceptaron 17 artículos de unos 40 presentados; haber pasado esa criba es una buena señal).

Mi presentación generó opiniones positivas y ningún argumento en contra. Parece que en líneas generales la orientación del proyecto es buena y las ideas que hay tras él no se han explotado aún. (Por cierto, Irlanda es preciosa y los irlandeses muy buena gente...)

Otro artículo sobre Itacio fue presentado en el Workshop sobre Gestión del Conocimiento del SOCO/ISFI 2001 (Paisley, Escocia). También he recibido preguntas de otros investigadores (radicados en Suiza) interesados en el modelo.

Un nuevo artículo fue aceptado para el JISBD 2001 (Jornadas sobre Ingeniería del Software y Bases de Datos) en Almagro, Ciudad Real. Se seleccionaron 38 artículos de 89 presentados. Fue presentado allí con opiniones muy favorables.

Prototipo en Java

He estado programando un poco para verificar las ideas presentadas aquí. Por supuesto, se trata sólo de prototipos. Desgraciadamente, no se puede mostrar la funcionalidad del prototipo, porque el motor de inferencias es el del sistema CLP ECLiPSe, que no puedo distribuir libremente.

Estado del proyecto

Desde ICSE 2000, he estado trabajando en implementación, intentando construir algo que pueda utilizar para mis experimentos. He construido un sitio web local en mi equipo de desarrollo gracias al Personal Web Server de Microsoft. Mediante una interfaz de usuario basada en web, puedo ejecutar validaciones y editar mis sistemas sin recordar complejas líneas de comandos. También he utilizado clases Java de terceros para generar grafos del sistema sin tener que dibujar yo mismo; puedo describir mis sistemas con simples ficheros de texto. El prototipo está basado en XML/XSL/VML, con un CGI en C++ y el núcleo Java (sin applet

En este momento estoy intentando aprovechar el trabajo de Carine Lucas sobre contratos de reutilización, plasmando sus ideas en Itacio, para demostrar que Itacio se puede aplicar a este nivel de abstracción. Sólo es cosa de programar con CLP, pero no me resulta fácil... Nuna he sido ni siquiera un buen programador en Prolog, así que en CLP soy un novato.

Octubre: después de implementar con éxito dos de los ocho casos de uso de Carine Lucas, he visto que no puedo implementar los demás con el diseño actual. Hay un fallo de diseño en la representación del conocimiento que compromete la calidad y mantenibilidad futuras. Así que... vuelta a empezar de cero. Qué se le va a hacer...

Enero: Trabajo en un artículo que remito al Workshop sobre Gestión del Conocimiento del SOCO-ISFI 2001, lo que me sirve para formalizar un poco las ideas que se deducen del trabajo práctico. Ha habido un paréntesis porque he cambiado de trabajo. Empiezo a pensar en otro ejemplo (además del de los contratos) para aplicar Itacio a un sistema de generación de páginas web como el empleado en estas :-)

Febrero: Tras la "vuelta a empezar" mencionada en Octubre, ya están implementados cinco de los ocho casos de modificación de contrato.

Marzo: Buenas noticias. Implemento los ocho modificadores de contrato, y la idea parece funcionar. El artículo del SOCO/ISFI 2001 ha sido aceptado. Envío otra contribución al 27 Euromicro, sobre la aplicación de Itacio al modelo de contratos. He recibido preguntas de otros grupos de investigación acerca de Itacio.

También en marzo, empiezo a trabajar en la aplicación de Itacio al diagnóstico de equipos a distancia. Creo que la idea es buena, y parece funcionar. Por cierto, me está empezando a gustar el Prolog; a lo mejor en el futuro llego a dominar también la parte de CLP.

A finales de abril, malas noticias: rechazado el artículo del Euromicro, y el que había enviado a las Jornadas de Calidad del Software de ATI. No lo escondo: todo el mundo tiene algo que ocultar, excepto mi mono y yo.

Junio-Julio: remitido artículo al JISBD 2001 y otro a SISOFT 2001, y se incluye el diagnóstico remoto de equipos mediante a Itacio en la Oferta Tecnológica de la Universidad de Oviedo. También acudo al SOCO/ISFI 2001 en Paisley, Escocia, donde presento mi trabajo.

Julio: Trabajo en la creación de un sistema de procesamiento de sonido basado en componentes. Espero aplicarle el modelo de Itacio como experiencia práctica. Los artículos de JISBD y SISOFT son aceptados.

Agosto: Trabajo en un nuevo (y espero que definitivo) prototipo de Itacio, esta vez basado en bases de datos.

Septiembre: A finales del mes anterior (después de un verano de duro trabajo) el prototipo ya estaba funcionando. Me dedico a utilizarlo en diferentes experimentos, con éxito (incluyendo el sistema de sonido mencionado previamente).

También en Septiembre presento un caso de aplicación de Itacio (el diagnóstico remoto de equipos Windows) a las Jornadas de Transferencia de Tecnología de la Universidad de Oviedo.

Después de eso, mi trabajo se centra en el manuscrito de mi Tesis Doctoral, puesto que he llegado al punto que inicialmente había previsto. En realidad, ya había escrito una buena parte del mismo en años precedentes, pero decido empezar de nuevo.

Octubre: Con el fin de someter a revisión los aspectos de Programación Lógica de Itacio, el día 12 remito un artículo al CLPSE 2001 sobre la aplicación de Itacio al sistema WaveX. El día 18 me confirman su aceptación con gran interés.

Noviembre: Mi artículo sobre la verificación de contratos se presenta en el JISBD de Almagro, con muy buena aceptación e interés por parte de la comunidad allí presente.

Diciembre: El artículo del CLPSE es presentado en Pafos (Chipre) con gran éxito. Los expertos allí presentes valoran muy positivamente mis ideas. Era el último aspecto de Itacio que faltaba por someter a la opinión de expertos.

El día 15 de diciembre, cumpliéndose mis planes de Agosto, termino un borrador de mi disertación. Faltan el resumen y algunos otros detalles, pero el resultado de casi cinco años de duro trabajo está aquí.

En Febrero se inscribe la tesis en el Departamento de Informática. Comienzan los largos y tortuosos trámites hasta su defensa.

Posteriormente, un trabajo sobre la aplicación de Itacio al modelo de fiabilidad de Hamlet et al es aceptado en IDEAS 2002 como presentación breve. Desgraciadamente, al final no puedo acudir a Cuba.

19 de junio de 2002: al fin, después de sorprendentes trámites e inconvenientes arbitrarios, defiendo con éxito mi Tesis Doctoral sobre Itacio, con opiniones muy favorables del tribunal y el público. Es el premio a un gran esfuerzo.

22 de marzo de 2005: Me doy cuenta de que hace MUCHO tiempo que no actualizo esta página. Mi actividad investigadora ha decrecido durante un tiempo, debido a mis obligaciones docentes y administrativas. Pero el trabajo en Itacio continúa, examinando nuevas ideas. El nuevo proyecto ATACS es una vertiente más de Itacio.

Diciembre de 2005: Lamentablemente, desde finales de 2005, mi trabajo en la Universidad se limita al tiempo parcial, y casi he tenido que abandonar estas investigaciones, que espero retomar en algún momento. Por ahora, investigo sólo un poco en aspectos de docencia. Pero estaré encantado de comentar cualquier aspecto de estos proyectos.

Continuará...

Espero añadir material a medida que lo vaya generando. Mientras tanto, si quieres más información sobre Itacio o hacer cualquier comentario, escríbeme.