OOHDM [35] es una metodología que tiene como objetivo proveer un conjunto de modelos de diseño y guías, para diseñar y construir aplicaciones hipermediales de alta calidad utilizando los conceptos de la programación orientada a objetos [36]. Dicha metodología, ha sido utilizada para diseñar diferentes tipos de aplicaciones hipermediales, como por ejemplo galerías interactivas, presentaciones multimedia y en aplicaciones Web, lo que atañe a este trabajo.
Una de las ventajas de esta metodología, comparada con otras, es que cuando realiza el desarrollo del diseño de la aplicación hipermedia centra especial atención en la navegación que contendrá la misma. Esto se realiza basándose en la teoría de que un buen diseño de navegación es la clave para que el usuario de la misma no se encuentre perdido en ningún momento, y además que el mismo pueda encontrar fácilmente la información buscada. Para la realización de este propósito OOHDM maneja conceptos como nodo, links, anchor y nodos en contextos entre otros, todos estos referentes a la navegación.
No obstante, el éxito de esta metodología es la clara identificación de tres diferentes niveles de diseño en forma independiente de la implementación, proponiendo por este motivo, que el desarrollo de las aplicaciones hipermediales sea realizado a través de un proceso compuesto por cuatro etapas. Estas cuatro son, la etapa de Diseño del Modelo Conceptual, Diseño del Modelo Navegacional, Diseño de las Interfaces Abstractas, y por último la etapa de Implementación. Con estas tres primeras se obtiene un conjunto de modelos orientados a objetos que describen cada uno de los modelos de la aplicación. Estos mismos son desarrollados en forma incremental, en cada paso cada modelo es construido y enriquecido. El objetivo principal de esta separación es la división de los modelos basándose en las responsabilidades dentro de una aplicación hipermedial, logrando de este modo la ventaja de la independencia en la realización de cada uno de ellos [37].
A continuación se presenta una breve descripción de cada una de las etapas que se emplean en esta metodología.
4.2.1. Diseño Conceptual
Durante esta actividad, se construye un esquema conceptual representado por los objetos del dominio, las relaciones y colaboraciones existentes establecidas entre ellos. Como se dijo anteriormente OOHDM es una metodología que utiliza la programación orientada a objetos, por lo cual, el esquema conceptual está construido por clases con métodos, relaciones entre ellas y subsistemas.
Este diseño conceptual es la realización de la construcción del diseño en objetos del dominio de la aplicación. Es realizado utilizando los métodos, patrones y técnicas de la programación orientada a objetos.
Para el desarrollo de esta diseño se utiliza notación similar a UML (Lenguaje de Modelado Unificado12) y tarjetas de clases y relaciones similares a las tarjetas CRC (Clase Responsabilidad Colaboración13). El esquema de las clases consiste en un conjunto de clases conectadas por relaciones. Los objetos son instancias de las clases. Las clases serán usadas durante el diseño de navegación para derivar nodos, y las relaciones que serán usadas para derivar enlaces.
12 Unified Modeling Language. 13 Class Responsibility Collaboration.
4.2 Metodología OOHDM
4.2.2. Diseño Navegacional
La primera generación de aplicaciones Web fue pensada para realizar navegación a través del espacio de información, utilizando un simple modelo de datos de hipermedia. Con el paso del tiempo las aplicaciones Web empezaron a progresar, con más variedades en el diseño y en la navegación; por lo cual se volvieron más complejas.
En OOHDM, la navegación es considerada un paso crítico en el diseño de este tipo de aplicaciones. Un modelo navegacional es construido como una vista sobre un diseño conceptual, refiriéndose a vista como visión de navegar los objetos propios de la aplicación.
El diseño de navegación es expresado en dos esquemas, el esquema de clases navegacionales y el esquema de contextos navegacionales. En OOHDM existe un conjunto de tipos predefinidos de clases navegacionales: nodos, enlaces, y estructuras de acceso. La semántica de los nodos y los enlaces son las tradicionales de las aplicaciones hipermediales, y las estructuras de acceso, tales como índices o recorridos guiados, representan los posibles caminos de acceso a los nodos.
La principal estructura primitiva del espacio navegacional es la noción de contexto navegacional. Un contexto navegacional es un conjunto de nodos, enlaces, clases de contextos, y otros contextos navegacionales (contextos que tienen la cualidad de ser anidados). Pueden ser definidos por comprensión o extensión, o por enumeración de sus miembros. Los contextos navegacionales juegan un rol similar a las colecciones y fueron inspirados sobre el concepto de contextos anidados. Organizan el espacio navegacional en conjuntos convenientes de nodos que pueden ser recorridos en un orden particular y que deberían ser definidos como caminos para ayudar al usuario a lograr la tarea deseada.
Los nodos son enriquecidos con un conjunto de clases especiales que permiten de un nodo observar y presentar atributos (incluidos las anclas, anchor), así como métodos (comportamiento) cuando se navega en un particular contexto. Cuando se navega por un nodo navegacional no se muestra toda la información de éste. En algunos contextos se podría decir que existen “diferentes formas” de mirar al un mismo nodo, presentando para los diferentes contextos, distinta información de un mismo nodo.
4.2.3. Diseño de Interfaz Abstracta
Una vez que las estructuras navegacionales son definidas, se deben especificar los aspectos de interfaz. Esto significa definir la forma en la cual los objetos navegacionales pueden aparecer, cómo los objetos de interfaz activarán la navegación y las otras funcionalidades de la aplicación, y qué transformaciones de la interfaz son pertinentes y cuando es necesario realizarlas.
Una clara separación entre partes, diseño navegacional y diseño de interfaz abstracta, permite construir diferentes interfaces para el mismo modelo navegacional, dejando un alto grado de independencia de la tecnología de interfaz de usuario.
El aspecto de la interfaz del usuario de aplicaciones interactivas (en particular las aplicaciones Web) es un punto crítico en el desarrollo, y las metodologías modernas tienden a descuidar este aspecto. En OOHDM, se utiliza el diseño de interfaz abstracta para describir la interfaz del usuario de la aplicación de hipermedia.
El modelo de interfaz ADVs (Vista de Datos Abstracta14) [38] especifica la organización y comportamiento de la interfaz, pero la apariencia física real o de los atributos, y la disposición de las propiedades de las ADVs en la pantalla real son hechas en la fase de implementación.
14
Capítulo 4. Metodología y Patrones Utilizados
4.2.4. Implementación
En esta fase, se deben implementar los diseños realizados en las etapas anteriores. Hasta esta etapa, todos los modelos fueron construidos en forma independiente de la plataforma de implementación; en esta etapa es tenido en cuenta el entorno particular en el cual se va a correr la aplicación y se deben tomar decisiones con respecto a las tecnologías que serán utilizadas. Se deberá examinar con atención como llevar los diseños realizados en OOHDM a las tecnologías que se utilizarán para la implementación, evaluando cuales son las más adecuadas y eficientes.
Al llegar a esta fase, se deben definir los ítems de información que son parte del problema del dominio. Se debe identificar también, cómo son organizados los ítems de acuerdo con el perfil del usuario y tareas; decidir qué interfaz debería ver, y cómo debería comportarse. A fin de implementar todo en un entorno Web, se debe decidir además qué información, tanto objetos conceptuales como navegacionales, corresponde ser almacenada. También se debe decidir como será la apariencia de las pantallas que serán mostradas a los usuarios.
Si bien el ideal sería que los diseños desarrollados en cada una de las etapas puedan ser implementados sin problemas, resulta no ser así en las aplicaciones reales. Cuando se deciden las tecnologías y el desarrollo de la etapa de implementación comienza a ser desarrollada es indispensable, en general, tener que modificar o agregar objetos al diseño conceptual o modificar algún otro modelo para que la implementación pueda ser llevada a cabo. Esto implica modificar diseños ya cerrados para adecuarlos a las tecnologías. En general, es muy difícil que se logre la implementación completa de la aplicación sin tener que realizar ningún cambio que se deba hacer para ajustar el modelo a la implementación.