Método para la aplicación de documentación inteligente de frameworks orientados a objetos

  1. Ortigosa, Álvaro
Dirigida por:
  1. Roberto Moriyón Salomón Director/a
  2. Marcelo Campo Director/a

Universidad de defensa: Universidad Autónoma de Madrid

Fecha de defensa: 29 de mayo de 2000

Tribunal:
  1. Manuel Enrique Collado Machuca Presidente/a
  2. Manuel Alfonseca Moreno Secretario/a
  3. Alain Pirotte Vocal
  4. Pedro Antonio González Calero Vocal
  5. Idoia Alarcón Rodríguez Vocal

Tipo: Tesis

Resumen

Disponer de documentación de calidad es un requisito fundamental para el éxito del proceso de desarrollo de software. Los documentos fluyen a través de este proceso, comunicando decisiones tomadas durante las distintas etapas que lo componen. Más aún, la documentación desempeña un papel central en la reutilización de software, donde es necesario que cada componente de software a ser reutilizada sea bien comprendida. Este aspecto cobra especial importancia en el caso de los frameworks de aplicaciones orientados a objetos. Estos frameworks constituyen un gran avance en la reutilización de software porque, más que la reutilización de código de componentes individuales, permiten reutilizar el diseño de sistemas o subsistemas. Sin embargo, dependiendo de la complejidad del framework, el desarrollo de nuevas aplicaciones es, generalmente, una tarea difícil y trabajosa, principalmente en el caso de usuarios inexpertos. Esta dificultad constituye el mayor obstáculo a una utilización más generalizada de esta tecnología. Por este motivo, durante los últimos 10 años se ha invertido un considerable esfuerzo en la creación de técnicas de documentación más poderosas. Las técnicas tradicionales de documentación de diseño y código orientado a objetos no son suficientes para describir el complejo diseño de un framework, especialmente si se tienen en cuenta los distintos tipos de usuarios que pueden necesitar la documentación del mismo. Cuatro tipo de usuarios de frameworks han sido identificados: programadores de aplicaciones, encargados de mantenimiento del framework, diseñadores de otros frameworks y verificadores. Considerando esta variedad de tipos de usuarios, distintos métodos de documentación han sido específicamente propuestos para documentar frameworks. Algunos de ellos son informales y prescriptivos, es decir, describen cómo el framework debe ser utilizado. Otros métodos, en cambio, son más formales y descriptivos: describen el diseño del framework y el usuario debe deducir cómo utilizarlo. Cada método está orientado a un determinado tipo de usuario y, si bien algunos son capaces de describir adecuadamente algunos aspectos del framework, ninguno consigue satisfacer con éxito todos los requisitos de la documentación de frameworks. Esto es especialmente cierto desde el punto de vista de los programadores de aplicaciones. Estas limitaciones llevan a pensar que resulta necesario complementar la documentación con herramientas que ayuden de forma efectiva al usuario en la instanciación de un framework determinado. En la comunidad de Ingeniería de Software cuenta cada día con mayor aceptación la idea de que es esencial la utilización de herramientas más inteligentes para conseguir una mayor eficiencia en el desarrollo de software, especialmente en términos de reducir los costes de desarrollo de software confiable. En esta dirección, entre las diferentes propuestas que se han realizado, destacan los llamados libros de recetas interactivas (active cookbooks). Estos libros proporcionan al usuario una interfaz que le permite acceder a recetas que le proveen ayuda semiautomatizada para el proceso de instanciación. Las recetas no explican los motivos subyacentes a las soluciones que proponen, sino únicamente la forma en que el problema planteado se puede resolver mediante la utilización del framework. Este tipo de asistencia simplifica la instanciación de funcionalidad prevista a priori, ya que para una persona resulta sencillo seguir una lista de instrucciones detalladas paso a paso. Sin embargo, es precisamente su secuencialidad estricta el aspecto que representa una de las desventajas fundamentales de esta forma de abordar el problema. El usuario de un manual de recetas interactivas tiene que limitarse a seguir cada receta del principio al final hasta el último detalle, sin ningún grado de flexibilidad, o resignarse a no utilizar la herramienta. En este sentido, la herramienta de asistencia ideal sería aquella que permita al usuario del framework describir la funcionalidad requerida y, en función de eso, genere automáticamente una aplicación que provea esa funcionalidad. Aunque actualmente no es posible ofrecer este tipo de herramientas, sí es posible construir herramientas inteligentes que le indiquen al usuario qué debe hacer para implementar una determinada funcionalidad. De esta forma se potencia al máximo tanto la capacidad del ordenador para planificar y realizar actividades repetitivas y rutinarias como la capacidad de la persona para tomar decisiones en función de análisis más profundos y matizados. En esta tesis se presenta SmartBooks, un método para documentar y asistir la instanciación de frameworks. El objetivo de SmartBooks es permitir la construcción de sistemas inteligentes de documentación y seguimiento del proceso de instanciación, que puedan guiar activamente el proceso de instanciación, pero que al mismo tiempo sean lo suficientemente flexibles para adaptarse a las distintas necesidades de los usuarios. En consecuencia, SmartBooks se basa en la idea de ofrecer explicaciones procedurales sensibles al contexto, de acuerdo con la funcionalidad requerida para la nueva aplicación. Para lograr flexibilidad y adaptabilidad, SmartBooks propone la utilización de explicaciones generadas dinámicamente utilizando técnicas de planificación, en particular planificación con minimización de compromisos. Las explicaciones generadas, denominadas planes de instanciación, son estructuradas como una secuencia de actividades que el usuario debería ejecutar para implementar la aplicación. Esas actividades son representadas por tareas de instanciación, un concepto basado en los modelos de tareas de usuario. El método SmartBooks propone la utilización de reglas de instanciación para documentar los frameworks, de forma tal de poder general planes de instanciación. Este trabajo describe la especificación de las reglas de instanciación, utilizando tanto notaciones gráficas como textuales. También presenta un algoritmo de planificación, denominado PIT, el cual ha sido desarrollado para satisfacer los requisitos del dominio de instanciación de frameworks. Además, se describe el diseño de módulos destinados a administrar y asistir al usuario en la ejecución de las tareas de instanciación. Finalmente, se presenta un prototipo de entorno de instanciación, desarrollado para probar el enfoque propuesto