La ingeniera inversa es un proceso que sirve para analizar un sistema
existente con el objetivo de identificar sus componentes, relaciones y crear otras representaciones del mismo o alguna abstraccin sobre el propio sistema. La reingeniera enfrenta una gran dificultada, la cual es la falta de informacin de alto nivel de los programas para as automatizar el proceso de ingeniera inversa, es por esto que la mayora de las propuestas existentes permiten extraer algn tipo de informacin del dominio. Toda esa informacin es posible obtenerla mediante tcnicas manuales que se basan en la observacin para posteriormente generar un diseo que mejore al anterior. El desarrollo de interfaces de usuario es un proceso que se presta igualmente a la ingeniera inversa, la creacin de estas es una tarea difcil y muy costosa, pues se estima que el 50% de cdigo de las aplicaciones corresponde a la interfaz de usuario. Una de las propuestas enfocada a facilitar la construccin automtica de interfaces, ha sido la que se conoce como Interfaces de Usuario Basadas en Modelos, que consiste en desarrollar interfaces mediante descripciones de alto nivel de los distintos aspectos de la interfaz, en lugar de escribir el cdigo directamente con un lenguaje de programacin. Uno de los aspectos ms interesantes de la modelizacin de interfaces de usuario es cmo poder aprovechar esta especificacin utilizada en la definicin de la interfaz no solamente para la generacin automtica de la misma, sino para llevar a cabo, de forma automtica, procesos ms laboriosos que involucren tcnicas de reingeniera para el mantenimiento de las propias interfaces. En general, la mayora de las propuestas que utilizan el paradigma basado en modelos han aportado herramientas y aplicaciones capaces de controlar el proceso de generacin automtica de las interfaces. En base a lo anterior el artculo nos propone dos lenguajes de especificacin y diferentes herramientas, capaces de hacer frente a los requisitos establecidos para llevar a cabo procesos de ingeniera inversa. Por un lado, XIML permite la especificacin de los elementos de la interfaz para la construccin de aplicaciones multimodales. Por otro lado, PEGASUS describe, utilizando ontologas del dominio, informacin explcita tanto de los datos como de la presentacin de la interfaz con alta independencia entre el modelo del dominio y el de la presentacin. En base a estos lenguajes se presentan tambin distintas herramientas y metodologas de uso, como DESK que utiliza la representacin explcita utilizada por PERSEUS para la caracterizacin de cambios a partir de la interfaz final generada, haciendo mnimas suposiciones sobre los conocimientos del
usuario final en cuanto a programacin o lenguajes de especificacin para
interfaces. Uno de los puntos clave para una correcta especificacin de la interfaz es ver los distintos niveles de modelizacin que se van a llevar a cabo. Entre los diferentes aspectos que se han distinguido a la hora de modelizar las interfaces, se han considerado principalmente los siguientes modelos:
Modelo del dominio: describe la estructura y atributos de la informacin
que la aplicacin proporciona. Modelo de la presentacin: consiste en una descripcin declarativa de la representacin de la interfaz. Modelo de tarea: describe las tareas que los usuarios pueden llevar a cabo bajo la interfaz. Modelo del dialogo: representa una especificacin de cmo ser el comportamiento de la interfaz. Modelo del usuario y de la plataforma: permiten una personalizacin del aspecto de la interfaz en funcin del perfil del usuario que la manipula y de las caractersticas del equipo que se utiliza para interactuar con la interfaz de usuario.
Para la modelizacin de dominio existen herramientas como: ADEPT, que nos
permite un modelo de dominio minimalista, y est compuesto exclusivamente por una lista de tipos de entidad. Esta herramienta est enfocada a la identificacin de los requerimientos del usuario. Tambin est la herramienta UIDE, la cual utiliza un modelo extendido de datos para generar el layout de la interfaz de usuario. De forma parecida, Mecano y MOBI-D utilizan un modelo del dominio a partir del cual se genera el layout y el comportamiento dinmico de la interfaz. En estas herramientas es posible definir modelos del dominio mediante la utilizacin de un lenguaje de frames con la cual podemos marcar la jerarqua de las interfaces. Para la modelizacin de la presentacin tenemos a MASTERMIND, el cual est basado en ideas extradas de otras herramientas como HUMANOID e ITS. HUMANOID define un elaborado modelo de la interfaz que incluye componentes de la aplicacin, la presentacin y el dilogo. Uno de los trabajos ms notables en la modelizacin de tareas es ConCurTaskTrees, que aporta una especificacin del modelado de tareas utilizado para disear aplicaciones interactivas. Uno de los principales aspectos a tener en cuenta en la representacin de la informacin de la interfaz para procesos de reingeniera es adoptar, de forma generalizada, una especificacin que permita recuperar, a partir de la generacin de la interfaz, informacin semntica suficiente para poder inferir o detectar las estructuras que dieron lugar a su generacin.
Uno de los aspectos de mayor relevancia actual en materia de desarrollo de
interfaces de usuario es la necesidad de producir interfaces que puedan utilizarse en varias plataformas. Esto es posible gracias a XIML, que es un lenguaje de modelado de interfaces que provee el soporte necesario para la modelizacin, diseo y generacin de interfaces multiplataforma. El lenguaje XIML es capaz de representar las cinco dimensiones de una interfaz (tareas, dominio, usuarios, presentacin y dialogo) y las relaciones que se puedan establecer entre los elementos de cada una de estas dimensiones. Otra de las soluciones que se proponen es la utilizacin de ontologas del dominio como propuesta para poder reflejar aspectos semnticos de alto nivel que luego puedan ser identificados en procesos de reingeniera. Para este cometido se dise PEGASUS, un sistema de representacin del conocimiento y generacin automtica de pginas webs dinmicas, que utiliza ontologas del dominio a la medida para la descripcin y estructuracin conceptual de la informacin. El proceso de ingeniera inversa con XIML se puede dividir en dos metodologas que son: concreta y abstracta. Ingeniera inversa concreta. En el caso concreto, el proceso de ingeniera inversa est basado en reglas. Las reglas para convertir HTML a XIML se basan en su mayora en las reglas usadas por una herramienta que convierte XIML a HTML. Basado en estas reglas, el proceso automatizado de ingeniera inversa HTML a XIML sigue los siguientes pasos: 1. Identificacin de todos los elementos de presentacin y navegacin en la pgina HTML. 2. Trazado relacional entre los elementos identificados y elementos intermedios XIML basado en la base de conocimiento acerca del dispositivo de presentacin. 3. Resolucin de ambigedades en el trazado relacional usando las reglas de conversin XIML a HTML. Se anticipa que normalmente no todas las ambigedades o conflictos pueden ser resueltos automticamente. 4. (Opcional) Reconversin de la presentacin y dialogo a una tercera representacin como WML. Ingeniera inversa abstracta. Este proceso incluye los siguientes pasos: 1. Proceso de ingeniera inversa concreta para producir modelos de presentacin y dialogo en XIML. 2. Asignacin de elementos de presentacin a tareas en forma interactiva usando la herramienta MOBILE. 3. Definicin interactiva de los modelos de dominio y usuarios en XIML a partir del modelo de tareas. 4. (Opcional) Reconversin a una tercera representacin. Tambin se propone una herramienta de autor concreta, DESK, que hace uso de la representacin del conocimiento de PEGASUS y permite, de forma transparente, aplicar una ingeniera inversa explcita a partir de la interfaz web
generada. De esta forma se detectan los elementos que intervienen en los
cambios que lleva a cabo el usuario final sobre la interfaz. Los principales pasos en el proceso de interaccin con DESK son los siguientes: 1. En primer lugar, el usuario edita una pgina concreta, generada por PEGASUS, mediante la herramienta DESK del front-end. 2. DESK recoge informacin sobre la interaccin del usuario y la plasma en un modelo de monitorizacin, que es un modelo estructurado codificado en XML, el cual refleja informacin de alto nivel sobre las acciones o cambios llevados a cabo por el usuario durante la edicin de un documento web. 3. Los cambios realizados por el usuario se envan al servidor. La parte de DESK que se encuentra en el back-end procesa los cambios a partir del modelo de monitorizacin, empleando para ello los correspondientes mecanismos de inferencia mediante el uso de conocimiento de alto nivel del dominio. 4. Como resultado final del proceso anterior de inferencia se modifican los modelos subyacentes de PEGASUS: presentacin y dominio. 5. Finalmente se enva al usuario informacin relativa a los cambios efectuados y a lo acontecido durante todo el proceso de inferencia. 6. La prxima vez que se genere una pgina del mismo tipo, los cambios surtirn efecto, habiendo modificado as el mecanismo por el cual se generan las pginas web de forma persistente.
Ingeniera Inversa De Interfaces De Usuario
Las IGUs sofisticadas se van volviendo de rigor para los productos
basados en computadoras y para los sistemas de todo tipo. Por tanto, el nuevo desarrollo de interfaces de usuario ha pasado a ser uno de los tipos ms comunes de las actividades de reingeniera. Ahora bien, antes de que se pueda reconstruir una interfaz de usuario, deber tener lugar una actividad de ingeniera inversa. Cmo puedo entender el funcionamiento de la interfaz de usuario existente? Para comprender totalmente una interfaz de usuario ya existente (IU), es preciso especificar la estructura y comportamiento de la interfaz. Se sugieren tres preguntas bsicas a las cuales hay que responder cuando comienza la ingeniera inversa de la IU:
Cules son las acciones bsicas que deber procesar la interfaz,
por ejemplo, acciones de teclado y clics de ratn? Cul es la descripcin compacta de la respuesta de comportamiento del sistema a estas acciones? Qu queremos decir con sustitucin, o ms exactamente, qu concepto de equivalencia de interfaces es relevante en este caso?
La notacin de modelado de comportamiento puede proporcionar una
forma de desarrollar las respuestas de las dos primeras preguntas indicadas anteriormente. Gran parte de la informacin necesaria para crear un modelo de comportamiento se puede obtener mediante la observacin de la manifestacin extrema de la interfaz existente. Ahora bien, es preciso extraer del cdigo la informacin adicional necesaria para crear el modelo de comportamiento. Es importante indicar que una IGU de sustitucin puede que no refleje la interfaz antigua de forma exacta (de hecho, puede ser totalmente diferente). Con frecuencia, merece la pena desarrollar metforas de interaccin nuevas. Por ejemplo, una solicitud de IU antigua en la que un usuario proporcione un superior (del 1 a 10) para encoger o agrandar una imagen grfica. Es posible que una IGU diseada utilice una barra de imgenes y un ratn para realizar la misma funcin.