Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
Desarrollo de la navegación en entornos web M.J. Escalona, M. Mejías, J.Torres, A. Reina Departamento de Lenguajes y Sistemas Informáticos Universidad de Sevilla Avda. Reina Mercedes S/N 41012 Sevilla Fax: 95 455 71 39. Tlf: 95 455 71 39 {escalona, risoto, jtorres, reinaqu}@lsi.us.es Abstract. Uno de los aspectos más importantes que aparecen en el entorno de la Web es la navegación. La navegación lleva asociada la idea de moverse por un espacio de información, donde es crucial el concepto de posición actual o contexto, ya que muchas veces, el siguiente paso a dar mientras se navega dependerá de qué pasos se hayan dado antes. Esta importancia de la navegación se constata en el tratamiento que se le da en las metodologías de diseño web (OOHDM, RMM, etc.). Sin embargo, si analizamos cómo se plantea el estudio de la navegación en estas metodologías veremos que en la mayoría de los casos estas propuestas tratan el aspecto de la navegación sólo en la fase de diseño, sin entrar a analizar como se especifica o analiza la navegación. El objetivo de este trabajo es presentar NDT (Navigational Development Tecnique), una técnica que permite realizar la especificación, el análisis y el diseño de la navegación de un sistema. 1. Introducción En los últimos años, ha aparecido un interés creciente en el desarrollo de los sistemas de información en la web. La práctica ha demostrado que los sistemas de información en la web requieren un tratamiento especial durante el proceso de desarrollo, siendo necesario proponer nuevos modelos y técnicas que den soporte al equipo de trabajo asegurando la calidad del producto resultante [12]. Con esta idea, han diferentes metodologías que ofrecen modelos y técnicas específicas para tratar los sistemas web: OOHDM[11], UWE[8], WSDM[3], etc. Uno de los aspectos más importantes en los sistemas de información en la web es el de la navegación. La gran mayoría de las propuestas metodológicas para sistemas web resaltan este aspecto ofreciendo modelos que permitan diseñarlo e implementarlo asegurando la calidad del resultado. Sin embargo, analizando dichos modelos y técnicas y viendo los resultados de diferentes estudios comparativos [8][4], se puede observar que este aspecto, en la mayoría de las propuestas, se trata solamente en las últimas fases del ciclo de vida, principalmente en diseño e implementación. La idea principal que plantea este trabajo es la de debatir la necesidad de elevar el estudio de este aspecto a las primeras etapas del ciclo de vida. Basado en esta idea se presenta NDT (Navigational Development Technique) [6]. Esta propuesta se mueve en las primeras fases del ciclo de vida y define un proceso estructurado para especificar, analizar y diseñar el aspecto de la navegación en sistemas de información web. Este trabajo presenta una visión general de NDT así como la conexión entre esta propuestas y otras metodologías para la web. 2. NDT (Navigational Development Technique) Como se ha comentado, el aspecto de la navegación ha sido tratado en las propuestas metodológicas que se mueven en el entorno de la web normalmente en la fase de diseño e implementación. Algunas propuestas metodológicas como OOHDM[13] o SOHDM[8] plantean la necesidad de capturar los requisitos de navegación. Para ello, proponen técnicas como los casos de uso o los escenarios para definir las necesidades del sistema. Sin embargo, tanto desde el ámbito de estas propuestas como del ámbito de la programación orientada a aspectos[10], se han observado ya las ventajas que ofrece el hecho de tratar la navegación como un aspecto independiente en el proceso de desarrollo. El problema es que estas propuestas separan dicho concepto solo a partir del diseño. NDT plantea separar el aspecto de la navegación desde la propia captura de requisitos. Para eso, propone un proceso de desarrollo dividido en tres flujos de trabajo: captura y definición de requisitos, análisis de la navegación y diseño de la navegación. NDT se puede describir como una técnica orientada al proceso puesto que describe qué debe hacer el usuario en cada momento del desarrollo. Para ello, divide cada flujo en actividades que a su vez se dividen en tareas. Además, NDT está orientada a la técnica puesto que describe y ofrece las técnicas a usar en cada paso del ciclo de desarrollo. Y por último, también se puede añadir que es una propuesta orientada al producto, puesto que en cada momento del ciclo de vida define la estructura de los resultados que deben obtenerse. En la tabla número 1 se presenta una visión general del proceso de NDT, las técnicas que propone y el resultado a obtener en cada flujo de trabajo. Proceso de desarrollo Técnicas Productos 1. Captura de requisitos 1.1. Definir entorno de trabajo y objetivos 1.2. Definir e identificar requisitos de almacenamiento 1.3. Clasificar y definir los actores del sistema 1.4. Definir e identificar requisitos funcionales 1.5. Definir e identificar requisitos de interacción 1.6. Definir e identificar requisitos no funcionales - Patrones - Casos de uso [7] - BNL [2] Documento de requisitos del sistema 2. Análisis de la navegación 2.1. Definir los actores en estudio 2.2. Definir los nodos 2.3. Definir los enlaces básicos 2.4. Definir los índices menú 2.5. Definir los índices de consulta 2.6. Definir los índices de selección 2.7. Obtener el grafo navegacional para cada actor - Patrones - Teoría de grafos - Algoritmos de análisis Documento de análisis de la navegación 3. Diseño de la navegación 3.1 Definir el modelo de clases navegacionales 3.2 Definir los contextos navegacionales - Diag. de clases[1] - Contextos navegacionales [11] Documento de diseño de la navegación Tabla 1: Resumen de NDT 2.1- Captura de requisitos El primer flujo de trabajo es el de la captura de requisitos. En este flujo hay que indicar qué requerimientos tiene el sistema. Para ello, se comienza estudiando el entorno de trabajo y definiendo los objetivo. Una vez definidos, se pasa a estudiar las necesidades de almacenamiento de información. En esta segunda actividad hay que describir qué debe guardar el sistema y la estructura que debe tener la información que se guarda. Teniendo en cuenta que un sistema de información en la web puede ser muy diferente dependiendo de la persona que en cada momento interactúe con el sistema, en la tercera actividad se propone hacer un estudio de los posibles usuarios del mismo, clasificando y definiendo los roles posibles, sus incompatibilidades y relaciones de herencia. La cuarta actividad propone estudiar las necesidades funcionales del sistema, indicando qué debe ofrecer el sistema a cada uno de los diferentes roles definidos en la etapa anterior. La quinta actividad es sin duda la más relevante para el resto del proceso de desarrollo. En ella se deben definir los requisitos de interacción, o lo que es lo mismo, cómo el usuario va a interactuar con el sistema. Para ello, en una primera tarea hay que definir las frases . Las frases describen qué campos son relevantes para cada actor a la hora de recuperar la información almacenada y qué criterios de recuperación va a seguir. La segunda tarea consiste en definir los prototipos de visualización. Éstos recogen quién va a poder interactuar con el sistema, qué información se ve y qué casos de usos se pueden ejecutar en cada momento, además de cómo se va a poder navegar en el sistema. Estos prototipos serán la base fundamental para el resto del proceso propuesto por NDT. La última actividad de este primer flujo consiste en identificar los llamados requisitos no funcionales que recogen aspectos como las necesidades de seguridad, eficiencia, etc. Para terminar con este breve resumen, indicar que la propuesta de captura de requisitos de NDT está orientada en dos caminos diferentes. Por un lado, trata de ser lo suficientemente clara para que sea fácilmente entendible porel cliente. Pero por otro lado, debe ofrecer resultados concretos y estructurados que sean útiles para el equipo de desarrollo. Por estas dos razones, para la definición de los objetivos y requisitos se propone el uso de patrones. Un patrón es una tabla con campos definidos que el equipo de desarrollo irá completando junto con el cliente. La práctica nos ha demostrado que los patrones son fácilmente entendibles por los clientes pero que a la vez ofrecen una descripción estructurada, concisa y detallada para el equipo de desarrollo[5]. 2.2- Análisis de la navegación Este segundo flujo de trabajo tiene por objetivo final el definir, a partir de las especificaciones realizadas, un modelo de navegación coherente y sin errores. Para ello, parte de la definición de los actores y de los prototipos de visualización. La primera actividad del análisis consiste en estudiar esos prototipos y los actores definidos para observar qué roles tienen un sistema de navegación similar. Los actores con un sistema de navegación similar forman parte de un mismo grupo. El resto de actividades de análisis se aplican para cada grupo de actores. La segunda actividad propone identificar los nodos del sistema. Un nodo es un punto de la navegación en el que se ofrece información al usuario. NDT propone una técnica para conseguir estos nodos de forma automática a partir de los prototipos. En la tercera actividad se identifican lo enlaces, o lo que es lo mismo, las posibilidades de navegar de un nodo a otro. Siguiendo también un proceso automático, en las tres siguientes actividades se identifican los índices. Existen tres tipos de índices: índices menú, se identificarán con menús, diccionarios, etc. en el diseño; índices consulta, son puntos en los que el usuario puede realizar consultas o debe rellenar una serie de campos para seguir navegando; y por último los índices de selección, que son puntos de la navegación en los que el usuario debe seleccionar la ruta de navegación de una lista de posibilidades[8]. Para realizar todas estas actividades, NDT propone algoritmos y técnicas que permiten conseguirla de una manera automática. Al final del flujo, se obtiene una estructura en forma de grafo que debe cumplir una serie de métricas marcadas por NDT para asegurar la coherencia y corrección del resultado. 2.3- Diseño de la navegación En el último flujo, se parte del resultado del análisis para obtener lo que se conoce como modelo de navegación. Este modelo se divide a su vez en dos: modelo de clases navegacionales y contextos navegacionales. El primero utilizando los conocidos diagramas de clases de UML[1], representa los aspectos de la navegación. El segundo, expresa las visiones que de este modelo se ofrece dependiendo del punto de la navegación en el que se encuentre el usuario. También ofrece NDT técnicas propias y sistemáticas para conseguir estos modelos a partir de los resultados del análisis. El resultado de este flujo, conseguido de forma sistemática en NDT se corresponde con modelos similares a los propuestos en algunas metodologías para el desarrollo de sistemas en la web como OOHDM o UWE. La idea es que a mediante NDT se consigan es tos modelos que servirán como base para continuar el ciclo de vida propuesto en ellas. 3. Conclusiones y trabajos futuros Este trabajo plantea la necesidad de ofrecer un proceso que permita tratar el aspecto de la navegación de forma independiente desde los primeros momentos del proceso de desarrollo. Para ello, ha presentado NDT que se plantea como una técnica que permite conseguir de forma sistemática los modelos navegacionales que sirven como base para aplicar otras propuestas metodológicas ampliamente aceptadas. Para concluir, indicar que NDT es aún un proyecto en desarrollo. Actualmente se está desarrollando una herramienta case, NDT-Tool, que dé soporte al proceso de desarrollo. Hasta ahora, solo los dos primeros flujos de trabajo se han aplicado a proyectos reales y han dado bastantes buenos resultados. 4. Referencias 1. G. Booch, J. Rumbaugh, I. Jacobson. Unified Modeling Language User Guide. Ed. Addison- Wesley, 1999. 2. N. Brisaboa. M.J. Durán, C. Lalín, J.R. López, J.R. Paramá, .R. Penabad, A.S. Places. Arquitectura para Bibliotecas Virtuales , 1999. 3. O.M.F. De Troyer, C.J. Leune. WSDM: A User Centered Design Method for Web Sites . Tilburg University, Infolab. 1997 4. A. Durán. Un Entorno Metodológico de Ingeniería de Requisitos para Sistemas de Información. Departamento de Lenguajes y Sistemas Informáticos. Universidad de Sevilla. Septiembre 2000. 5. M.J. Escalona. Metodología para el desarrollo de sistemas de información global: análisis comparativo y propuesta. Departamento de Lenguajes y Sistemas Informáticos. Universidad de Sevilla, Enero 2002. http://www.lsi.us.es/~informes 6. M.J. Escalona, M. Mejías, J.Torres, A. Reina. NDT: una técnica para el desarrollo de la navegación. Congreso Ideas 2002. La Habana, Cuba. Abril de 2002 7. I. Jacobson. Modeling with use cases-Formalizing use-case modelling. Journal of Object-Oriented Programming, June 1995 8. N. Koch. Software Engineering for Adaptative Hypermedia Applications. Ph. Thesis, Reihe Softwaretechnik 12, Uni-Druck Publishing Company, Munich 2001. 9. H. Lee, C. Lee & C. Yoo. A Scenario-based object-oriented methodology for developing hypermedia information systems. Processing of 31st Annual Conference on Systems Science. Eds. Sprague R. 10. A. Reina, J. Torres. Analysing the navigational aspect Second Workshop on Aspect-Oriented Software Development. Febrero 2002. Bonn, Alemania. 11. G. Rossi. An Object Oriented Method for Designing Hipermedia Applications. PHD Thesis, Departamento de Informática, PUC-Rio, Brazil, 1996. 12. Schwabe, D. Rossi, G. A Conference Review System with OOHDM. 1st International Workshop on Web-Oriented Software Technology. Valencia, Junio 2001 13. P. Vilain, D.Schwabe, C. Sieckenius. A diagrammatic Tool for Representing User Interaction in UML. Lecture Notes in Computer Science. Forthcoming. Proc. UML’2000. York, 2000.
Compartir