Uso de UML en Aplicaciones Web

Frecuentemente somos cuestionados en nuestros cursos acerca de las formas para representar de manera más explícita cierto tipo de aplicaciones utilizando UML, pero sin lo “aburrido” de la notación. Cierto es que UML es gráfico de por sí, pero usar los mismos elementos independientemente del tipo de aplicación, por ejemplo cuando estudiamos el modelado de aplicaciones web, el modelado del negocio, de sistemas de tiempo real o de bases de datos, a algunas personas les genera ruido y prefieren algo más explícito.

Para resolverlo aprovechamos una de las características peculiares que le dan flexibilidad a la notación de UML. Y consiste en el conjunto de mecanismos de extensión (de significado): estereotipo, restricción y valor etiquetado. Estos mecanismos le permiten a UML extender y enriquecer el significado de sus elementos y símbolos básicos de tal suerte que pueden ser empleados para representar dominios en donde nunca se tuvo una intención explícita de origen de aplicarlos. Haberlo hecho así supondría una limitante para la aplicación genérica del lenguaje unificado. Ejemplos de estos dominios son el modelado de negocio (aunque ya existe BPMN como un estándar más específico), el modelado de bases de datos, el modelado de aplicaciones web o el modelado de circuitos electrónicos, por mencionar algunos.

Arquitectura para web
La mayoría de las aplicaciones desarrolladas hoy en día son las aplicaciones llamadas web, es decir, aquellas que tienen como elemento significativo de su arquitectura un navegador y un protocolo de comunicación HTTP. Cuando capacitamos a la gente en arquitectura y patrones, buscamos que el alumno comprenda las formas de elaborar este tipo de aplicaciones, como su ubicación en algunos de los patrones de arquitectura web: “Cliente Delgado Web”, “Cliente Robusto Web” o “Reparto Web”.

El estándar de facto en web
En 1998, Jim Conallen definió una extensión a la que denominó WAE (Web Application Extension) para UML. Esta extensión es la convención más difundida y aceptada hasta nuestros días y podríamos decir que define el estándar de facto. En esta entrega, formada por dos artículos, presentaremos los elementos que definen el 20-80 en el modelado de aplicaciones web usando la WAE. El foco de este artículo es la WAE en los diagramas de clases.

Extensiones WAE para el diagrama de clases
Algunos de los ejemplos más comunes de estereotipos que se pueden asociar a las clases y a las relaciones entre éstas, para representar una aplicación en web son las siguientes:

Un ejemplo de sistema en web
Si bien no presentaremos el modelo de casos de uso para ejemplificar el uso de esta notación, para resaltar el modelo de clases con sus extensiones, si necesitamos ubicar el ejemplo en algún escenario. Por ejemplo: en nuestro sitio nuestros alumnos pueden consultar los datos del curso en el que están inscritos y, desde este mismo lugar, pueden también contestar una encuesta de satisfacción durante el último día del mismo. En la figura 1 vemos parte del modelo de clases de dicho sistema utilizando los estereotipos propios de WAE.

Anotaciones básicas
Suponemos que está de más comentar que las relaciones entre las clases en los diagramas de clases no sugieren o asumen ningún tipo de flujo, que las puntas de flechas sólo son restricciones en cuanto al sentido en que la relación puede ser transitada. Recordemos que el diagrama de clases es un diagrama estructural. También cabe señalar que el diagrama de clases que aquí se presenta tiene un punto de vista de diseño y no uno conceptual (figura 1).



Figura 1: Modelo de sistema de cursos y encuestas con extensiones WAE.

Nombres o íconos
Igual que cuando brindamos nuestra capacitación presencial, y antes de analizar este modelo de clases, consideramos conveniente recordarle a nuestro público que algunos elementos estereotipados cuentan con íconos alternativos que pueden utilizarse, aunque esto es algo opcional. En nuestro ejemplo se muestran directamente los nombres de los estereotipos para cada clase y relación, en lugar de los íconos asociados a cada uno de esos estereotipos. Muchas herramientas de modelado te permiten, de manera simple, elegir entre una u otra forma de representación.

Aplicación de WAE en las páginas
En el diagrama de la figura 1 podemos observar varias clases a las que se les han asociado los estereotipos antes descritos, también podemos observar que entre las clases sólo existen relaciones de asociación, de las cuales algunas usan los estereotipos WAE y otras no. Las que no usan los estereotipos WAE como por ejemplo: la relación entre LoginForm y LoginValidator es la veterana relación de composición, la cual indica lo de siempre, que el script del lado del cliente LoginValidator es una pieza inseparable de la forma LoginForm.

Relaciones WAE entre las páginas del sistema
También podemos ver que la página del lado del servidor llamada PresentarDatosCurso es la responsable de procesar los datos que la forma Login le envía (relación «submit»). Otra de las cosas que podemos ver es que la página del lado del servidor PresentarDatosCurso es la que se encarga de construir la página del lado del cliente CursoForm (relación «build») o, en caso de presentarse un error, redirigir el control a la página del lado del servidor que se encarga de manejarlo ReportarError (relación «redirect»). Finalmente, podemos notar también que la página del lado del cliente CursoForm mantiene una liga hacia la página del lado del servidor EncuestaParticipante (relación «link»).

Sólo el comienzo
Existen algunos otros elementos definidos en la WAE que aquí hemos omitido. Este artículo presenta sólo unos pocos de los más utilizados. Próximamente presentaremos los estereotipos y aplicación de éstos en los diagramas de componentes; y recuerda que al elaborar tus modelos, en muchos casos, entre más simple mejor. Al fin y al cabo un modelo busca simplificar, no complicar las cosas.

Acerca de los autores
Sergio Orozco es Director General e Instructor Senior, Charlie Macías es Consultor Senior e Instructor Senior,ambos especializados en temas relacionados con UML en Milestone Consulting. Milestone Consulting (UML Value Added Training Center), es una empresa especializada en capacitación práctica-intensiva y consultoría en UML, BPMN, Arquitectura de SW y PM. Milestone Consulting fue la primer empresa mexicana miembro de la OMG, además de ser REP del PMI. info@milestone.com.mx www.milestone.com.mx