Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Oows

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 18

OOWS: Un Mtodo de Produccin de Software en Ambientes Web*

Joan Fons, Oscar Pastor, Pedro Valderas y Marta Ruiz Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia Camino de Vera s/n 46022 Valencia, Spain {jjfons, opastor, pvalderas, mruiz}@dsic.upv.es

Abstract. Este artculo presenta una aproximacin para el modelado orientado a objetos de soluciones web que proporciona mecanismos para la especificacin de sistemas de informacin dinmicos hipermediales y de comercio electrnico. Se propone una extensin de un mtodo OO para la generacin automtica de cdigo usando modelos conceptuales (OO-Method) que permite capturar y representar la semntica navegacional y de presentacin de informacin usando primitivas de abstraccin de alto nivel. Se define un proceso guiado de construccin de una solucin web completa y se aplica la aproximacin planteada a un caso de estudio sobre una aplicacin para el comercio electrnico.

Introduccin
Hoy en da, con la rpida expansin de Internet y los avances en el rea de las tecnologas web han aparecido un nuevo tipo de aplicaciones en estos entornos, y son cada vez ms complejas y dinmicas. Adems, debido al acelerado crecimiento y la alta competitividad de las actividades comerciales en la Red, estos sistemas son construidos en periodos temporales muy cortos, sin el apoyo de herramientas de trabajo adecuadas y utilizando soluciones ad-hoc, lo que est llevando a construir s istemas software de baja calidad y de difcil mantenimiento y evolucin. En los ltimos aos han surgido gran cantidad de aproximaciones metodolgicas que intentan ayudar en la sistematizacin de la construccin de soluciones en ambientes web, proporcionando mecanismos de abstraccin que faciliten el desarrollo de estos sistemas. Adems, se estn intentando definir marcos de trabajo integrados que proporcionen herramientas adecuadas para dar soporte a la construccin de estos sistemas en todas sus fases. Pero actualmente no existe ningn mtodo totalmente establecido. Existen dos tendencias claras. Unas aproximaciones se basan en extender iniciativas orientadas al diseo hipermedial (navegacional), introduciendo expresividad para dotar de dinamismo a los sistemas. Estas aproximaciones aparecieron hacia el princi*

Esta investigacin est soportada por el Programa CYTED, en el proyecto VII.18, WEST y el Proyecto CICYT del programa FEDER, con ref. TIC 1FD97-1102

pio o mitad de la dcada de los 90, con el objetivo de construir aplicaciones hipermediales donde se una el concepto de navegacin con la multimedia, en sistemas claramente estticos (sin funcionalidad). Es por esto que la mayora de estas aproximaciones estn basadas en el Modelo Relacional clsico, o bien en extensiones de ste. Algunos ejemplos destacables de estas iniciativas son OOHDM [22] (actualizacin OO de HDM [9]), WebML [6], ADM [14], AutoWeb [16] y RMM [11]. El otro grupo de aproximaciones se basan en la idea de extender los mtodos de desarrollo orientados a aplicaciones dinmicas (con funcionalidad), que podramos llamar convencionales, tratando de introducir la semntica de la hipermedia como caracterstica inherente a este nuevo tipo de sistemas software. Este tipo aproximaciones ( por lo general, ms recientes) tratan de introducir caractersticas navegacionales al modelo OO. En este grupo podemos encontrar los m todos UWE [4], WSDM [7], EORM [13], OOH [10] y OO-Method [17]. Sin embargo, en estas propuestas, las caractersticas hipermediales y las propiedades funcionales son tratadas habitualmente por separado, dificultando el problema de desarrollar una aplicacin web en un marco de trabajo unificado. En la prctica, estos mtodos proporcionan una solucin parcial, bien porque se centran en captar las caractersticas navegacionales (en detrimento de la especificacin funcional del sistema), o bien en captar las caractersticas ms convencionales (definicin de clases y operaciones para expresar la funcionalidad), sin tener en cuenta la semntica navegacional de los sistemas. Detrs de estas soluciones parciales est empezando a ser ampliamente aceptado que los sitios web estn evolucionando de simples repositorios de informacin hipermedia hacia complejas aplicaciones hipermediales distribudas, normalmente conocidas como aplicaciones web [3]. Adems, la complejidad de los sistemas aumenta debido al gran tamao y la cantidad de potenciales tipos diferentes de usuarios con los que pueden interactuar. Por tanto, se deben proporcionar mecanism os que faciliten y guen la construccin de soluciones y favorezcan el reuso de soluciones ya probadas . Nuestra propuesta proporciona una contribucin en este contexto: empezando por afirmar que el modelado conceptual es necesario para desarrollar aplicaciones web correctas y de calidad, introducimos una aproximacin diferente que se centra en crear un entrono de trabajo integrado, donde se aborda tanto la perspectiva funcional del sistema, como la perspectiva navegacional y la de presentacin de la informacin. Todas estas perspectivas unidas pueden ser usadas como entrada para ambientes de generacin automtica de cdigo. Para poner en prctica estas ideas, se ha diseado e implementado un proceso de produccin de software, donde se definen unas guas para aplicar tcnicas de modelado conceptual para el desarrollo de aplicaciones web: integrar las tres actividades que tradicionalmente se llevan a cabo por separado. Una primera donde se modelan las operaciones, una segunda donde se expresa el concepto de navegacin y una tercera donde se plasman los requisitos de presentacin de informacin usando primitivas bsicas de presentacin a nivel de modelado conceptual. As, en nuestra aproximacin, la fase de modelado conceptual se considera como una nica fase. Usando lo que podramos llamar una aproximacin de modelado conceptual OO, se introduce la expresividad necesaria en el modelo para especificar correctamente los requisitos navegacionales y las caractersticas de presentacin. Toda esta informacin es utilizada para proporcionar una gua metodolgica precisa para ir del espacio del problema (modelado conceptual) al espacio de la solucin (representado

por el producto software final), soportado por un proceso de generacin automtica de cdigo. Este artculo est organizado en 4 secciones. La seccin 2 describe el mtodo de produccin de soluciones web OOWS , describiendo el proceso de desarrollo, el modelo de navegacin y el modelo de presentacin. En la seccin 3 se aplica el mtodo a un caso de estudio, y en la seccin 4 se presentan las conclusiones y los trabajos futuros.

OOWS: Un mtodo de desarrollo de aplicaciones web


Nuestra intencin es definir un mtodo de desarrollo que permita especificar sistemas software para ambientes web, extendiendo un mtodo OO existente. Este tipo de aplicaciones tienen una base comn con las aplicaciones software tradicionales: la funcionalidad del sistema y la interaccin con los usuarios. Sin embargo, introducen nuevas caractersticas navegacionales que deben ser capturadas para representar de una manera ms precisa y aproximada el sistema. El mtodo tomado como la base para definir esta aproximacin es OO-Method [19]. Este mtodo capta las propiedades funcionales del sistema que se consideran relevantes para construir una es pecificacin textual OO y formal de manera automtica. Esta especificacin formal OO constituye un repositorio de informacin de alto nivel del sistema que ser utilizado como entrada a un compilador (automtico) de modelos conceptuales (model compiler) . La definicin de un modelo de ejecucin junto con una estrategia basada en patrones de traduccin (de la especificacin a la implementacin), hacen posible la construccin de una implementacin operacional, generando un prototipo del sistema completo (incluyendo las caractersticas estticas y dinmicas) en la plataforma destino del sistema. En el contexto del proyecto OO-Method se han dirigido muchos esfuerzos hacia el desarrollo de nuevos modelos para enriquecer el Mtodo de Produccin de Software Orientado a Objetos con la expresividad necesaria para especificar las caractersticas navegacionales. Esta extensin del mtodo OO-Method con capacidades navegacionales y de presentacin es lo que llamamos OOWS [18][20] (Mtodo de Produccin de Soluciones Web Orientadas a Objeto).

Proceso de desarrollo de una aplicacin web En este apartado se define el proceso o gua metodolgica a seguir para definir y posteriormente obtener un sistema software para un entorno web. Siguiendo la aproximacin OO-Method, la especificacin de los requisitos de usuario debe realizarse en la fase de modelado conceptual. Para modelar la navegacin asociada al sistema deseado se propone un proceso de desarrollo de soluciones -web con dos pasos principales: E specificacin del Problema y Desarrollo de la Solucin. En la fase de Especificacin del Problema se deben capturar las peculiaridades y el comportamiento que debe ofrecer el sistema para satisfacer los requisitos de usuario identificados. En este paso se incluye el conjunto de requisitos usando una aproximacin de Casos de Uso [12] y posteriormente las actividades de modelado conceptual del sistema. En el modelado conceptual, las abstracciones que se derivan

del problema son especificadas en trminos de clases y de su estructura, comportamiento y funcionalidad, construyendo los siguientes modelos: de Objetos, Dinmico, Funcional, Navegacional y de Presentacin. stos describen la sociedad de objetos desde cinco puntos de vista diferentes usando un marco de trabajo OO bien definido: El Modelo de Objetos define la estructura y las relaciones estticas entre clases identificadas en el dominio del problema. En el Modelo Dinmico se describen las posibles secuencias de servicios y los aspectos relacionados con la interaccin entre objetos. El Modelo Funcional captura la semntica asociada a los cambios de estado entre los objetos motivados por la ocurrencia de eventos o servicios. El Modelo de Navegacin define la semntica navegacional asociada a las clases de los objetos del modelo. Es en este modelo donde se explicita la navegacin permitida en la aplicacin para cada agente del sistema. El Modelo de Presentacin captura los requisitos bsicos de presentacin de informacin, orientado hacia ambientes web. Est fuertemente basado en el modelo de navegacin y permite definir, de una manera abstracta la estructura lgica de presentacin de los objetos navegacionales en la interfaz de usuario. En esta fase se realiza un estudio de los tipos de usuarios que pueden interactuar con el sistema, indicando qu visibilidad sobre el sistema tendrn (qu atributos y qu operaciones podrn ver y/o activar), cmo se podrn conectar (requerirn o no identificacin), y se organizarn en jerarquas de especializacin [8] para potenciar el reuso en la especificacin del sistema, facilitando as la tarea de modelado. En la fase de Desarrollo de la Solucin se propone una estrategia de generacin de cdigo basada en componentes para integrar la solucin propuesta en ambientes web. En esta etapa se obtendr una aplicacin web, con una funcionalidad equivalente a la especificacin inicial segn una visin operativa. Esta fase se desarrolla de manera totalmente automtica por un compilador de modelos conceptuales (model compiler) que, en funcin de unos patrones arquitectnicos y dependiendo de la plataforma destino, construye un sistema software que recoge los requisitos de la aplicacin modelada, siguiendo uno de los principales objetivos de la m etodologa propuesta por OO-Method. Esta estrategia, adems, facilita las tareas de mantenimiento y evolucin, ya que la generacin automtica basada en patrones se realiza utilizando soluciones previamente probadas y validadas. Un cambio en el sistema (evolucin), implicar una modificacin en el modelo conceptual y una regeneracin automtica del sistema. Adems, esta filosofa nos permite obtener de una manera ms rpida aplicaciones finales de calidad, evitando entre otras, la fase de pruebas (testing ) del sistema. A continuacin se presentan las extensiones navegacionales y de presentacin de informacin que se introducen en la propuesta OO-Method, a lo que hemos llamado la aproximacin OOWS. El Modelo de Navegacin de OOWS En esta seccin se presentan las primitivas de modelado conceptual para extender un mtodo OO con la intencin de capturar la semntica navegacional de una aplicacin

web. En el mtodo OOWS, se incorpora un nuevo modelo en la fase de modelado conceptual que recoge las caractersticas navegacionales: el Modelo de Navegacin. Su objetivo es definir cmo se le proporcionar a cada usuario del sistema el acceso a la informacin y la funcionalidad que le es relevante para llevar a cabo su tarea dentro del sistema y qu secuencias de caminos debern seguir para conseguirlo. Actualmente, y debido al gran auge de las aplicaciones de carcter comercial en Internet (e-commerce), es de vital importancia que el acceso al sistema facilite la interaccin con el sistema e incluso se le personalice. Un eje mplo ilustrativo es la tienda virtual Amazon.com [2], en donde, si se conecta un usuario registrado, el sistema mantiene informacin sobre sus preferencias, sus compras anteriores, sus productos ms deseados, etc., proponindole nuevas compras que puedan ser de su inters. Esto nos lleva a tener en cuenta tambin aspectos referentes a personalizacin a nivel de usuario [21][1][5]. Pero existe actualmente una gran controversia en lo que se refiere al concepto de navegacin: qu es la navegacin?. Cmo la debemos captar y expresar? Se debe definir a nivel de modelado conceptual o a nivel de implementacin?. Existen muchos autores que giran en torno a la misma idea, pero sin proporcionar una definicin que sea aceptada definitivamente. Algunos llegan i n cluso a confundir conceptos, como por ejemplo tratar parte de la funcionalidad del sistema como requisito de navegacin (debido a que puede haber una fuerte interrelacin). Nosotros proponemos una definicin de navegacin lo suficientemente genrica que pueda ser aceptada por cualquier mtodo o propuesta. Para ello revisemos las caractersticas bsicas y novedosas que incorpora una aplicacin web. Cuando un usuario se conecta a una aplicacin web, sta le proporciona una visin del sistema software formada por un conjunto de nodos enlazados entre s definiendo los posibles caminos que el usuario puede tomar. Esta estructura se puede organizar en un grafo dirigido donde los nodos representan los puntos de interaccin con el usuario, proporcionndole un conjunto de datos y/o servicios (cohesivos) con los que el usuario puede interactuar; los arcos representan una alcanzabilidad entre nodos, indicando los posibles siguientes nodos (o caminos) que se puede alcanzar o seguir. Segn esta visin, la navegacin ser todo cambio de nodo provocado al activar un enlace de navegacin. De esta manera podemos definir la navegacin a nivel de modelado conceptual y se elimina la problemtica de definirla en trminos del espacio de la solucin (nmero de peticiones al servidor, paginacin (scrolling) de datos, ocultacin parcial de informacin en la misma pgina, etc.). En la aproximacin OOWS, los requisitos navegacionales de una aplicacin web se obtienen aadiendo una vista navegacional (mapa navegacional ) sobre el Modelo de Objetos de OO-Method, indicando el conjunto posible de caminos navegacionales que se le proporcionarn al usuario. Al definir este modelo dependiente del modelo de objetos, se crea una relacin fuerte de dependencia entre ambos modelos, integrndolos de una manera clara y posibilitando la comprobacin automtica de propiedades semnticas del sistema. La semntica navegacional de las aplicaciones hipermediales se captura en funcin de cada agente del sistema identificado en el modelo de objetos, adaptando o personalizando el acceso en funcin de las necesidades de cada tipo de usuario. Estos mapas son descritos usando una notacin intuitiva bas ada en UML [15].

El modelo de navegacin est compuesto por un conjunto de mapas de navegacin (uno por cada agente) que representan y estructuran la visin global del sistema para cada tipo de usuario, definiendo su navegacin permitida. ste se representa directamente usando un grafo dirigido en el cual los nodos son los contextos navegacionales y los arcos son los enlaces (o vnculos) de navegacin. En este nivel de abstraccin, slo nos interesa especificar qu contextos conformarn nuestro mapa de navegacin y desde dnde sern alcanzables. Existen dos posibilidades: que los nodos (contextos) navegacionales sean alcanzables desde cualquier ubicacin en el sistema (llamados contextos de exploracin, E) o que los nodos slo sean alcanzables siguiendo un camino predeterminado de pasos de navegacin (llamados contextos de secuencia, S ). Los contextos de exploracin definen unos enlaces de navegacin implcitos (enlaces de exploracin, representados por una flecha con l neas discontinuas) que surgen del agente y terFig. 1. Mapa de Navegacin minan en el contexto, indicando que ese agente siempre puede activar ese enlace y alcanzar el contexto de exploracin. Adems, se puede marcar uno de estos enlaces de exploracin como default o home (aparece una H asociada al enlace), indicando que cuando el usuario se conecte, navegar automticamente a este contexto. En la Figura 1 se puede apreciar un mapa de navegacin genrico para el agente Agente donde aparecen dos contextos de exploracin (marcados con la etiqueta E) y uno de secuencia (ma rcado con la etiqueta S ). Un contexto navegacional es una Unidad de Interaccin Abstracta que representa una vista sobre un conjunto de datos y/o servicios (del esquema conceptual) acces ible para un usuario en un determinado momento. Es una Unidad porque constituye el elemento lgico bsico de creacin de la navegacin permit ida en los mapas navegacionales. De Interaccin porque representa una interaccin con el usuario (espera una accin/respuesta por parte del usuario, bien de navegacin, bien de activacin de un servicio), y Abstracta porque slo se especifica qu datos y/o servicios se visualizarn en el contexto, pero no cmo se presentarn. Grficamente se re- Fig. 2. Clase Navegacional presenta como un paquete UML estereotipado con la palabra context. Est compuesto por un conjunto de clases navegacionales , estereotipadas con la palabra reservada view (Figura 2), que hacen referencia a clases identificadas en el modelo de objetos. Con ellas se puede definir la visibilidad (vista) ofertada al agente en este nodo, tanto de los atributos de la clase como de los servicios que puede activar. Este conjunto de atributos y servicios debe ser un subconjunto vlido de atributos y servicios con los que el agente tenga definida una relacin de agente en el modelo de objetos (relacin de visibilidad de atributos y/o servicios en OOMethod). Asociado a los servicios pueden aparecer enlaces de servicio. Estos enlaces indican el contexto destino que se alcanzar despus de la ejecucin del servicio. Adems, se puede especificar un filtro de poblacin , que mediante una frmula bien formada

en funcin de atributos de la clase navegacional sobre la que se define, indican un filtrado de objetos que se llevar a cabo. En un contexto navegacional debe aparecer una clase navegacional principal, llamada clase directora y opcionalmente otras que contribuyen en complementar la informacin de esta clase, llamadas clases de complementarias . Las clases navegacionales estn unidas entre s por relaciones binarias unidireccionales que pueden ser definidas sobre una relacin de agregacin o de herencia existente entre las dos clases en el modelo de objetos1. En el caso de que exista ms de una relacin definida en el modelo de objetos entre estas dos clases, se deber especificar una propiedad adicional de la relacin que indique que rol se est utilizando, para eliminar la ambigedad. Se pueden definir dos tipos de relaciones entre clases navegacionales: una relacin de dependencia de contexto (se representa grficamente mediante flechas discontinuas) que indica una recuperacin de informacin relacionada de las instancias de la clase complementaria a travs de la relacin de agregacin o herencia sobre la que est definida la relacin, y una relacin de contexto (grficamente, flechas continuas), que es una relacin de dependencia de contexto que adems define una navegacin a un nodo navegacional destino, causando la aparicin de un vnculo de navegacin en el mapa navegacional asociado. Las relaciones de contexto tienen las siguientes propiedades: atributo de contexto , que indica el contexto destino de la navegacin atributo de enlace, que especifica qu atributo (normalmente de la clase navegacional final de la relacin) se utilizar como ancla para activar la navegacin al contexto destino atributo de rol, que indica el rol de la relacin de agregacin o herencia que estamos utilizando. Se utiliza para eliminar la ambigedad en caso de existencia de ms de una relacin entre las dos clases. Es opcional si entre las dos clases existe una nica relacin definida en el modelo de objetos

Fig. 3. Contexto de Navegacin

Usando las primitivas descritas anteriormente es posible especificar completamente la semntica asociada a los requisitos de navegacin para aplicaciones web. Sin embargo, y debido al carcter de Internet, nos har falta especificar algunas propiedades adicionales de diseo para facilitar el acceso a la informacin deseada y que pueden
1

No puede existir ninguna clase navegacional en un contexto que est inconexa, es decir, que no est relacionada con ninguna otra clase navegacional.

llegar a ser cruciales para el sistema. Estas propiedades tienen que ver con la incorporacin de estructuras de acceso y la definicin de mecanismos de bsqueda de la poblacin dentro de un contexto. Estas caractersticas se abordarn en el siguiente apartado. Diseo Navegacional Avanzado. Una vez que se han construido los mapas navegacionales, la semntica navegacional del sistema ya ha sido capturada. Sin embargo, se pueden definir mecanismos adicionales que estructuren el acceso y permitan realizar bsquedas de informacin dentro de un nodo navegacional. Ambos mecanismos permitirn explorar y facilitar el acceso a la misma informacin, sin implicar navegacin. Estas caractersticas son recogidas en la zona de caractersticas navegacionales avanzadas de un contexto de navegacin (ver Figura 3). Un ndice proporciona un acceso indexado (por alguna propiedad propia o de un objeto relacionado) a los objetos principales del contexto (objetos de la clase directora). Por ejemplo, en un Museo Virtual podra existir un contexto que presentara las pinturas expuestas. En este contexto se podra definir un ndice de acceso a las pinturas segn corrientes pictricas. Al seleccionar un elemento de este ndice, se recuperaran todas las pinturas de esta corriente, dentro del mismo contexto. Existen dos tipos de ndices que pueden ser especificados (ver Figura 4): ndices de atributos (ATTRIBUTES-INDEX) , que se definen sobre uno o varios atributos de la clase directora. Al menos uno de estos atributos actuar como atributo de enlace (atributo/s que servir/n para activar el ndice). Se crear un ndice donde aparecern slo los valores de los atributos especificados de la poblacin de objetos del contexto. Se puede indicar que no aparezcan duplicados (DISTINCT VALUES ), para que slo se recuperen los valores distintos. ndices de relacin (RELATION -INDEX) , que se definen sobre uno o varios atributos de una clase relacionada en el modelo de objetos con la clase directora del contexto. Al menos uno de estos atributos servir como atributo de enlace (atributo/s que servir/n para activar el ndice). Si existe ms de una relacin entre la clase directora y la clase del ndice en el modelo de objetos, ser necesario especificar un atributo de rol para eliminar la ambigedad. Se crear un ndice con todos los valores de atributos de los objetos de la clase relacionada. Se puede indicar que no aparezcan duplicados (DISTINCT VALUES), para que slo se recuperen los valores distintos.
ATTRIBUTES INDEX nombre ATTRIBUTES lista-atributos LINK-ATTRIBUTES lista-atributos [ DISTINCT VALUES ] RELATION INDEX nombre ON RELATION rol-relacin ATTRIBUTES lista-atributos LINK-ATTRIBUTES lista-atributos [ DISTINCT VALUES ]

Fig. 4. Plantillas de definicin de ndices asociados a contextos

Adicionalmente, sobre un contexto se pueden especificar mecanismos de bsqueda, expresados como filtros de informacin. Estos filtros permiten restringir el espacio de objetos de la clase directora recuperados en funcin de una expresincondicin bas ada sobre alguna propiedad (atributo) de la clase directora u obtenida

por una relacin entre clases . Esta expresin se puede especificar en tie mpo de modelado o la puede introducir el usuario en tiempo de ejecucin. La Figura 5 muestra la plantilla de definicin de un filtro. Existen tres tipos: exacto, que toma un nico valor y devuelve el conjunto de instancias de la clase directora cuyo valor de atributo coincida exactamente con el valor indicado por el usuario aproximado , que toma un nico valor y devuelve el conjunto de instancias de la clase directora cuyo valor de atributo sea semejante al valor indicado por el usuario rango, que toma dos valores, un mximo y un mnimo y devuelve conjunto de instancias de la clase directora cuyo valor de atributo est entre estos valores2. Si slo se especifica uno de estos valores, se acota nicamente por un extremo FILTER nombre ATTRIBUTE atributo TYPE { exact | like | range } { EXPRESSION condicin }
Fig. 5. Plantilla de definicin de un filtro de contexto

La Figura 6 muestra un ejemplo de un filtro completamente especificado en tiempo de modelado que recupera los libros best-sellers. Se puede considerar que un libro es un best-seller cuando se han vendido ms de 1.000.000 de copias. Al seleccionar este filtro, la poblacin de libros se filtrara por aquellos libros que cumplen esta condicin. FILTER libros_best-sellers ATTRIBUTE vendidos TYPE range EXPRESSION vendidos > 1.000.000
Fig. 6. Filtro especificado completamente en tiempo de modelado

Otras primitivas que se pueden especificar en el modelo de navegacin OOWS: Sesin. Primitiva de modelado que nos permite realizar cierto control cuando un usuario se conecta al sistema. Existen bsicamente dos momentos donde se pueden lanzar operaciones: ejecutar un conjunto de servicios cuando el usuario inicia o cuando termina la sesin de interaccin con el sistema. El agente de estos servicios es siempre el propio usuario. La sintaxis es: #Clase.Servicio1# #Clase.Servicio2# ... Eventos de inicio de sesin ##Clase.Servicio1## ##Clase.Servicio2## ... Eventos de fin de sesin

Agente conectado. Esta primitiva proporciona capacidad expresiva para acceder al usuario conectado a la aplicacin en tiempo de ejecucin. Esta expresividad es la base para personalizar el acceso y la recuperacin de informacin segn el usuario
2

Este atributo solo tiene sentido en atributos de tipo numrico o de texto.

concreto. Se puede utilizar en frmulas de filtro, en condiciones de navegacin, etc. Se representa mediante el trmino #Clase_Agente# . Condicin de navegacin. La navegacin capturada mediante las relaciones de contexto se caracteriza por ser esttica, es decir, enlaza unvocamente dos contextos navegacionales. Sin embargo, dada la naturaleza de las aplicaciones web se hacen necesarios mecanismos que expresen dinmicamente condiciones de navegacin que sean evaluadas en tiempo de ejecucin. stas condiciones permiten especificar restricciones que deben satisfacerse para que se pueda producir una navegacin. Se expresan en las relaciones de contexto, mediante el atributo de contexto, explicitando la condicin o condiciones que deben cumplirse para alcanzar el contexto destino. Mediante el uso de estas caractersticas avanzadas, se pueden complementar algunos requisitos navegacionales adicionales del sistema. A continuacin vamos a proponer un modelo que capture los requisitos de presentacin de informacin del sistema. Modelo de Presentacin Una vez definido el modelo de navegacin que captura la semntica navegacional del sistema, debemos asociar caractersticas de presentacin al sistema. Para ello se introduce un nuevo modelo, el Modelo de Presentacin, que complementa la informacin capturada en el modelo de navegacin para la creacin de interfaces con informacin de presentacin. En este modelo se utilizan los nodos o contextos navegacionales como entidades bsicas donde se definen estas propiedades de presentacin adicionales. La manera de especificar los requisitos de presentacin se basar en el uso de unos patrones de presentacin simples que se podrn asociar a los distintos elementos que forman un nodo de navegacin. Existirn propiedades de presentacin que podrn ser aplicadas a nivel de un contexto de navegacin, a nivel de estructuras de acceso y/o mecanismos de bsquedas (filtros), y a relaciones (navegacionales) entre clases. Los patrones de presentacin de informacin que se pueden especificar son: Paginacin de informacin. Este patrn permite capturar la semntica scrolling de informacin. Cuando se especifica paginacin, el conjunto de instancias que deban ser presentadas sern troceadas en bloques lgicos, de manera que en una mis ma pantalla slo aparezcan unas cuantas instancias del conjunto de todas las posibles. Se proporcionarn mecanismos para avanzar y retroceder entre las distintas pginas lgicas que se obtienen, pudiendo especificar el tipo de paginacin como secuencial (se proporciona acceso al siguiente, al anterior, al primero y al lt imo bloque), o aleatorio (cuando adems de los anteriores, el usuario puede acceder directamente a un bloque intermedio ). Se podr indicar adems una cardinalidad en la paginacin, que indicar el nmero de instancias que se recuperarn. Puede ser de dos tipos: esttica, cuando se define en tiempo de modelado y dinmica, cuando se permite modificar en tiempo de ejecucin por el usuario. En este ltimo caso se indicar un nmero de instancias a mostrar por defecto (que podr ser modificable) o una seleccin de valores posibles entre los que el usuario deber elegir. Otra propiedad de la paginacin es la circularidad . Si se pagina con esta propiedad

activada, la siguiente instancia de la ltima instancia ser la primera instancia, y la instancia anterior a la primera instancia ser la ltima instancia. Cuando se define que un contexto est paginado, las instancias sobre las que se pagina son las de la clase directora. Si se aplica a una estructura de acceso ndice o un filtro de bsqueda, se pagina el conjunto de resultados obtenidos. Por ltimo, se puede indicar paginacin sobre una relacin navegacional (relacin de dependencia de contexto y relacin de contexto) entre dos clases cuando la cardinalidad en el modelo de objetos de la clase complementaria destino sea muchos. En este caso se crea una paginacin que se aplicar nicamente sobre el conjunto de objetos relacionados que se presentarn. Ordenacin. Este patrn permite definir una ordenacin de la poblacin de una clase segn el valor de uno o ms atributos sobre los que se aplica. La ordenacin puede ser: ascendente (asc) o descendente (desc). En el caso de especificar varios atributos, cada atributo tendr un carcter de ordenacin ascendente o descendente, y sta se aplicar jerrquicamente, empezando por el primer atributo, y siguiendo por los dems sucesivamente. Este patrn se puede aplicar a clases navegacionales, indicando cmo se van a ordenar las instancias de la clase (los atributos sobre los que se ordene deben aparecer especificados en el contexto); anlogamente al caso anterior, se pueden aplicar a estructuras de ndices y a filtros de bsqueda, ordenando los resultados obtenidos por alguno/s de los atributo/s especificado/s por estos mecanismos. Patrn de presentacin . Existen cuatro modos: registro, tabular, maestro-detalle (pudiendo indicar en ste ltimo caso como presentar el elemento detalle, recursivamente) y rbol. Se pueden aplicar a: relaciones de navegacin (relacin de dependencia de contexto y relacin de contexto). El patrn de presentacin definir el modo en que la informacin de las instancias relacionadas ser presentada. Los patrones registro y tabular son indicados para relaciones 1 a 1, mientras que los dos ltimos son adecuados para relaciones 1 a muchos muchos a muchos. El patrn rbol es tambin muy adecuado para representar relaciones reflexivas. la clase directora , indicando el modo en que se vern las instancias de esta clase. El patrn maestro-detalle no se puede aplicar directamente a esta clase. Con estos patrones sencillos de presentacin de informacin, combinados con la informacin de navegacin definida en el modelo de navegacin, podemos capturar los requisitos bsicos para la construccin de interfaces del sistema, a nivel de m odelado conceptual. Este repositorio de informacin ser utilizado por el g enerador (comp ilador) para generar las distintas interfaces para cada usuario, dentro de la arquitectura de aplicacin web que propone el mtodo OOWS. En el siguiente apartado se va a presentar un caso de estudio donde se ha aplicado el mtodo propuesto, siguiendo el proceso definido de construccin de aplicaciones web. Al final se presenta un ejemplo de interfaz generada teniendo en cuenta las primitivas especificadas en los modelos para este caso de estudio.

Un caso de estudio: La tienda virtual de venta de discos DiscoWeb


En esta seccin se aplica la aproximacin OOWS en el desarrollo de una aplicacin web para la compra discogrfica por Internet. Los requisitos del sistema se presentan a continuacin: El sistema est orientado a la venta on-line de lbumes de msica, organizados por categoras. Existen dos tipos de usuarios de esta aplicacin: los Administradores y los Usuarios Navegantes. Los primeros son los encargados de la gestin bsica de los lbumes que se ponen en venta. Los segundos son los usuarios comunes (compradores) de esta aplicacin. La funcionalidad del sistema es: (Usuarios Navegantes). Las compras que se realicen se debern ir incluyendo, simblicamente, en una cesta de la compra; el usuario podr consultar en cualquier momento el contenido de su cesta y realizar modificaciones sobre su contenido. Esta cesta de la compra se crear en el momento en el que se reciba la peticin de entrada en el sistema y pertenecer al usuario que est navegando en ese momento; todas las operaciones que el usuario realice sobre el sistema se harn de forma annima, de modo que el usuario no deber identificarse (registrarse) hasta que no vaya a confirmar su compra; para comprar un lbum se deber llegar a l a travs del autor o de la categora a la que pertenece; desde la pgina de inicio podremos acceder a un listado de autores o a un listado de categoras y desde ah al listado de los lbumes del autor o de la categora que hayamos seleccionado; cuando seleccionemos un lbum de la lista, se mostrarn todos los datos de ese lbum y se podr comprar. Esto har que el lbum sea incluido en la cesta de la compra de ese usuario y que se muestre su contenido actual; mientras veamos el contenido de la cesta, podremos cambiar el nmero de unidades que se desea adquirir de cada lbum de los comprados hasta el momento o eliminar alguna de las compras de la cesta; cuando se decida confirmar la compra se realizarn dos acciones: la primera consistir en crear una factura (para lo que el comprador debe haberse identificado) y la segunda ser reducir el stock de los lbumes comprados; cuando se haya confirmado una compra, ya no se podr modificar el contenido de la cesta. (Administradores). Gestionar y mantener el catlogo de productos del sistema, as como mantener la lista de autores que poseen discos en la tienda. El caso de estudio empieza con la elicitacin de los requisitos del sistema en la fase de Especificacin del Problema. El sistema se divide en la funcionalidad relevante y estos requisitos s on descritos mediante un diagrama de casos de uso. En la Figura 7 se muestra el dia grama de caso de uso para el agente Usuario Navegante. Del mismo modo se han descrito los requisitos para el agente Administrador (no aparecen en este artculo por falta de espacio y por carecer de aspectos interesantes). En la fa -

Registro - Compra

Cesta de la compra

Usuario Navegante

Categoras

Autores

Fig. 7. Caso de uso del agente Usuario Navegante

se de modelado conceptual se construyen los siguientes modelos: Modelo de Objetos, Modelo Dinmico, Modelo Funcional, Modelo Navegacional y Modelo de Presentacin. Estos dos ltimos recogen las extensiones incorporadas a OO-Method. La Figura 8 muestra el Modelo de Objetos del caso de estudio. La cesta de la compra participa directamente en el proceso de compra on-line del internauta Usuario Navegante. Para su construccin se han estudiado los requisitos funcionales del sistema desde un punto de vista OO, y se ha asociado esta funcionalidad a cada usuario, segn los casos de uso planteados (esta informacin no est visible por motivos de espacio del artculo).

Fig. 8. Modelo de Objetos de DiscoWeb

Despus del Modelo de Objetos, se construye el Modelo Dinmico donde se describen las vidas vlidas de los objetos representando el comportamiento de cada clase del sistema segn la interpretacin descrita por OO-Method. La Figura 9 presenta una porcin del Modelo Dinmico de la clase Cesta:

Fig. 9. Porcin del Modelo Dinmico de la clase Cesta

El Modelo Funcional captura la semntica asociada a los cambios de estado de los objetos. El valor de cada atributo es modificado dependiendo de la accin que activ el cambio de estado, de los argumentos de dicho evento y del estado actual del objeto. La Figura 10 muestra un ejemplo para la clase Linea, donde se halla definida la siguiente evaluacin:
Atributo: Cantidad Categora: De Estado Evento: ModCantidad(p_nuevaCantidad) Efecto: = p_nuevaCantidad Condicin: p_nuevaCAntidad > 0 Fig. 10. Parte del Modelo Funcional de la clase Linea

A continuacin se construye el Modelo de Navegacin donde se estructurar el acceso de cada usuario al sistema. La Figura 11 presenta el mapa de navegacin del agente Usuario Navegante con sus contextos de navegacin que han sido identificados en las primeras fases de especificacin del sistema. Tambin aparecen sobre el mapa los servicios que son ejecutados al iniciar y finalizar una sesin. Cuando el servidor Web recibe una peticin de un internauta, ejecuta el servicio crear del Usuario Navegante asocindole adems una Cesta. Cuando el Usuario Navegante abandona el sistema se ejecuta el servicio destruir, eliminando adems, si no ha sido confirmada, su Cesta asociada.

#Usuario_Navega.crear# ##Usuario_Navega.destruir##
Usuario Navegante

E
Autores

E
Categorias

S
Detalles_Autor

S
Detalles_Categorias

S
Albumes

E
Registrarse

E
Cesta

S
Facturas

Fig. 11. Mapa de Navegacin del agente Usuario Navegante

En este mapa de navegacin se aprecia que el Usuario Navegante siempre tendr disponibles los contextos (marcados como contextos de exploracin) Autores, Categoras, Cesta y Registrarse. A partir de estos, y siguiendo diferentes caminos navegacionales, podr alcanzar los dems (Detalles_Autor, Detalles_Categora, Albumes y Facturas). En la Figura 12 se describe con detalle el contexto Autores, donde se recupera la informacin sobre un autor (su nombre), los lbumes que estn disponibles de este autor (ttulo, ao y precio) y el nombre de la categora del lbum. Seleccionando el ttulo de un lbum podremos navegar al contexto lbumes, donde se proporcionar informacin adicional del lbum y podremos comprarlo. Adems, se ha definido una e structura de acceso ndice de tipo atributo, que permitir acceder a los autores por su letra_inicial (atributo derivado definido en la clase Autor). Tambin se ha definido un filtro de tipo aproximado para facilitar la bsqueda de autores por su nombre.

Fig. 12. Contexto Autores para el agente Usuario Navegante

Finalmente, se construye el Modelo de Presentacin donde se captan los requis itos de presentacin de informacin para cada contexto del mapa de navegacin. En la Figura 13 se muestra como ejemplo la plantilla de presentacin asociada al contexto Autores. En ella se especifica que los objetos de la clase directora se presentarn en modo tabular y el contexto (objetos de la clase directora) estar paginado con una cardinalidad esttica de 1 elemento, con posibilidad de acceso secuencial y circular. El patrn de presentacin asociado a la relacin de contexto definida entre un Autor y sus Albumes ser maestro-detalle, con el detalle en modo tabular y con una paginacin de cardinalidad esttica de 5 elementos, con acceso secuencial, circular. Se ha definido una ordenacin de los elementos de la clase Album por el ao de modo ascendente y la relacin de contexto definida entre la clase Album con la clase Categora se presentar en modo tabular (relacin 1 a 1). Despus de construir estos modelos, el proceso llega a su segunda fase, Desarrollo de la Solucin , donde en una estrategia de compilacin de modelos, se obtiene el prototipo software completo de manera automtica, siguiendo la especificacin realizada del sistema. En la Figura 14 aparece una posible interfaz de usuario que representa correctamente los requisitos, tanto navegacionales como de interfaz, especificados para el agente Usuario Navegante.

Fig. 13. Informacin adicional de presentacin del contexto Autores

Fig. 14. Pgina generada a partir del contexto navegacional Autores

Como se puede apreciar en este contexto generado (Figura 14), esta implementacin recoge las caractersticas navegacionales y de presentacin de informacin que se haban especificado en la definicin del contexto (Figuras 12 y 13). Se puede apreciar que existe un enlace desde esta pgina (en realidad desde cualquier pgina, ya que se el frame izquierdo es comn a todas las pginas) a cada uno de los contextos de exploracin especificados (Autores, Categoras, Cesta y Registrarse). Esta pgina proporciona informacin sobre un autor y sus lbumes disponibles, mo strando su ttulo, ao, precio y categora. Adems, aparece el ndice que se haba especificado, usando el atributo letra_inicial de la clase Autor y tambin el mecanismo de bsqueda de

de autores por su atributo nombre. Si nos fijamos en aspectos de presentacin de informacin, la paginacin del contexto (objetos de la clase directora Autor) se realiza elemento en elemento (cardinalidad 1). Es por esto que slo nos aparece informacin sobre un autor o grupo (Queen) y se nos proporcionan mecanismos para avanzar o retroceder secuencialmente. L a informacin complementaria sobre los lbumes para este grupo aparece en modo maestro-detalle (con el detalle en modo tabular) y adems paginado de 5 en 5 elementos, como haba sido explicitado.

Conclusiones
En este artculo hemos presentado una propuesta metodolgica para la construccin de aplicaciones web dentro un marco de trabajo OO en ambientes de compilacin automtica de modelos. Este marco definido integra formalmente diferentes modelos para dar un soporte completo a la especificacin de este tipo de sistemas software, adems de definir un proceso metodolgico guiado. El trabajo realizado ha consistido en extender un mtodo formal existente OO (OO-Mehod), dotndolo de la expresividad necesaria para construir soluciones web. Esta expresividad ha sido capturada en: un Modelo de Navegacin que captura la estructura navegacional asociada a cada usuario del sistema, proporcionando el acceso a la informacin, y a la funcionalidad, permitiendo definir estructuras de acceso y mecanismos de bsqueda que faciliten el acceso a la informacin deseada; un Modelo de Presentacin, que refleja las caractersticas esenciales de presentacin de i n formacin de los nodos n avegacionales mediante (unos pocos) patrones bsicos de presentacin. Se ha aplicado el mtodo a un caso de estudio, siguiendo el proceso propuesto de construccin de un sistema web. Adicionalmente, se han realizado trabajos orientados a dar soporte a: la introduccin de caractersticas de personalizacin a nivel de modelado conceptual, para crear sistemas adaptativos la definicin de operadores conceptuales orientados al reuso conceptual la construccin de interfaces web declarativas, basadas en XML Actualmente estamos aplicando el mtodo a numerosos casos de estudio reales, extendindolo incorporando nuevas primitivas navegacionales detectadas, y definiendo sus patrones de traduccin software a plataformas destino. En este mbito se est se rediseando la estrategia de generacin de cdigo basada en componentes para adaptarla a una arquitectura software destino y completamente distribuida, basada y orientada en servicios web.

Referencias
[1] Abrahao S., Fons J., and Pastor O. Conceptual Modeling of Personalized Web Applications. SpringerVerlag (LNCS). Editores: Paul De Bra, Peter Brusilovsky, Ricardo Conejo. 2nd Intenational Conference on Adaptive Hypermedia and Adaptive Web Based Sy stems. Mlaga, Espaa, Junio, 2002

[2] Amazon.com Tienda Virtual de Comercio Electrnico. http://www.amazon.com [3] Baresi L., Garzotto F., Paolini P. From Web Sites to Web Applications: New Issues for Conceptual Modeling. ER2000 Workshop on Conceptual Modeling and the Web, LNCS 1921. Springer-Verlag, 2000 [4] Baumeister H., Koch N., and Mandel L. Towards a UML extension for Hypermedia Design. In UML'99 The Unified Modeling Language, Springer Verlag. LNCS 1723. Fort Collins, USA, Octubre 1999. [5] Cachero C., Garrigs I., and Gmez J. Personalizacin de Aplicaciones en OO-H. In Proc. V Workshop Iberoamericano de Ingeniera de Requisitos y Desarrollo de Ambientes de Software, IDEAS02. ISBN: 959-7164-08-6. La Habana, Cuba, Abril, 2002 [6] Ceri S., Fraternali P., Bongio A. Web Modeling Language (WebML): a Modeling Language for Designing Web Sites . In WWW9, Vol. 33 (1-6), pp 137-157. Computer Networks, 2000 [7] De Troyer O. and Leune C. WSDM: A user-centered design method for Web sites . In Proc. of the 7th International World Wide Web Conference, 1997 [8] Fons J., Valderas P., and Pastor O. Specialization in Navigational Models . Anales JAIO, 31st. Argentine Conference on Computer Science and Operacional Research. Iberoamerican Conference on Web Engineering 2002 (ICWE02), Santa Fe, Argentina, Septiembre, 2002 [9] Garzotto F., Paolini P. and Schwabe D. HDM - A Model-Based Approach to Hypertext Application Design. ACM Transactions on Information Systems, vol. 11 (1), pp. 1-26. 1993 [10] Gmez J., Cachero C., and Pastor O. Extending a Conceptual Modeling Approach to Web Application Design. Proc. Conference on Advanced Information Systems Engineering (CAiSE00), Springer- Verlag, LNCS 1789, pp. 79-93, 2000 [11] Isakowitz T., Stohr E. A., and Balasubramanian V. RMM: A Methodology for Structured Hypermedia Design. CACM: Communications of the ACM., pages 34-44, Agosto, 1995 [12] Jacobson I., Christerson M., Jonsson P., Overgaard G. OO Software Engineering , a Use Case Driven Approach. Reading, Massachusetts. Addison-Wesley, 1992 [13] Lange D. An Object-Oriented Design Method for Hypermedia Information Systems. Proc. Hawaii International Conference on System Science, 1994 [14] Mecca G., Merialdo P., Atzeni P. and Crescenzi V. The Araneus Guide to Web-Site Development. Technical Report, University of Roma. 1999 [15] Object Management Group. Unified Modeling Language Specification Version 1.4 draft. Technical report, www.omg.org, February 2001 [16] Paolini P. and Fraternali P. A Conceptual Model and a Tool Environment for Developing More Scalable, Dynamic, and Customizable Web Applications. In Proc. EDBT98 Conference, Valencia, Espaa, Marzo, 1998 [17] Pastor O., Insfrn E., et. al. OO-Method: An OO Software Production Environment Combining Conventional and Formal Methods. Proc. Conference on Advanced Information Sy stems Engineering (CAiSE), LNCS 1250, Springer- Verlag, pp. 145-159, 1997 [18] Pastor O., Abrahao S., and Fons J. J. An Object-Oriented approach to automate web applications development. In 2nd International Conference on Electronic Commerce and Web Technologies (EC-Web'01), Springer-Verlag, LNCS 2115. ISBN: 3-540-42517-9. M unich, Germany, Septiembre, 2001 [19] Pastor O., Pelechano V., Insfrn E,. and Gmez J. From Object Oriented Conceptual Modeling to Automated Programming in Java. 17th International Conference on Conceptual Modeling (ER'98). Springer-Verlag, LNCS 1507, pp. 183-196. Singapore, November, 1998 [20] Pastor O., Abrahao S., and Fons J. Building E -Commerce Applications from O bjectOriented Conceptual Models . Newsletter of the ACM SIGecom Exchanges, volume 2.2, ACM Press, pp. 24-32. June, 2001 [21] Rossi G., Schwabe D., and Guimaraes R. Designing personalized web applications. In Proc. of the WWW10, Hong Kong, May 2001 [22] Schwabe D., Rossi G. and Barbosa D.J. Systematic Hypermedia Application Design with OOHDM. Proc. ACM Conference on Hypertext. pp.166. 1996

También podría gustarte