En el mundo de la ingeniería de software es muy común utilizar los diagramas UML para el proceso de diseño de software, sobre todo si se utiliza un lenguaje de programación orientado a objetos para implementar una determinada aplicación. Debido a lo anterior, es que se hace necesario empezar a crear herramientas estándares para el desarrollo de aplicaciones WEB, considerando que actualmente estas últimas están remplazando a las clásicas aplicaciones de escritorio.
Para afrontar los nuevos desafíos que se presentan hoy en el amplio mundo del desarrollo de aplicaciones web es que presentaremos el "diagrama de Garret", es decir, un lenguaje visual que permite diseñar la arquitectura de una aplicación WEB.
Como ya describimos a modo muy general qué es un diagrama de Garrett, ahora vamos a ver el detalle de éste, todo esto con el fin de que podamos usarlo en el futuro para el diseño de nuestras aplicaciones web.
Unidades básicas
Los elementos visuales más básicos de un diagrama de Garret son "página" y "archivo".
Estos dos elementos nos permiten formar los pilares sobre los cuales se forjará todo el diseño posterior. La representación de una página y un archivo se muestra al lado izquierdo de la siguiente imagen:
También se muestra a la derecha de la imagen anterior un "conjunto de páginas" y "un conjunto de archivos", estas dos entidades permiten agrupar a varias páginas o archivos que tienen un tratamiento de navegación idéntico, lo cual permite simplificar el diseño y hacerlo más legible y expresivo.
Relaciones
Las relaciones nos permiten representar los vínculos existentes entre 2 páginas. Estas relaciones son representadas por una línea. Las relaciones se traducirán en la aplicación Web como relaciones de navegación. La siguiente imagen ilustra ilustra la representación visual de una relación:
Adicionalmente, será posible utilizar flechas para representar el flujo lógico de la navegación entre las páginas, pero este método no es restrictivo para navegar a través de la página de manera inversa, para que el flujo de navegación sea restrictivo es necesario agregar una pequeña línea perpendicular a la flecha. Lo anterior es descrito gráficamente en la siguiente imagen:
Las direcciones y flechas también pueden ser etiquetados para aumentar la expresividad y significación del diagrama.
Conjuntos concurrentes
Una acción del usuario puede desembocar en múltiples resultados, por ejemplo, abrir una ventana de pop-up mientras se carga la página principal. El símbolo de semi-círculo representa la multiplicidad de resultados que puede generar una acción:
Puntos de continuación
Nos sirve para separar un diagrama en varias páginas. Esto es necesario cuando el diagrama no cabe en una sola página. Se representa a través de un rectángulo incompleto con una pequeña etiqueta dentro que nos sirve para identificar hacia donde se dirige el punto de continuación.
Elementos Comunes: Áreas y áreas iterativas
El área
Identifica a un grupo de páginas que comparten uno o más atributos comunes (tales como una ventana pop-up o tener un tratamiento único de diseño), además es necesario utilizar etiquetas para identificar al área. Se representa a través de un rectángulo con puntas redondeadas.
Áreas iterativas
Podrías tener un catálogo de productos en el cual cada producto tiene varias páginas asociadas a él. Podrías dibujar una instancia de esa estructura para cada producto, pero es mejor utilizar un área iterativa, el cual se representa a través de una pila de áreas.
Componentes re-utilizables: Áreas de flujo y referencias de flujo
Permiten agrupar un conjunto de páginas relacionadas con alguna funcionalidad o característica especial, la cual puede ser referenciada a través de una referencia de flujo (el concepto es similar a las "funciones" que se utilizan en los lenguajes de programación tradicionales).
Elementos condicionales
El sistema sigue los datos de uno o más atributos para determinar hacia donde debe dirigir al usuario, por ejemplo, al hacer un login en una página. Se representa a través de un rombo y es importante etiquetar ésta con un código, el cual se puede referenciar en el pie de página, con el fin de no sobrecargar de sobremanera el diagrama.
Buscando camino: Conectores y flechas condicionales
Un conector o flecha condicional es utilizado para presentar un camino o no dependiendo de si una o más condiciones son cumplidas. Se representan igual que los conectores o flechas tradicionales, pero la línea es entrecortada.
Elección Múltiple: Ramas condicionales
Cuando un sistema debe seleccionar un camino entre un número de opciones mutuamente excluyentes para ser presentados al usuario, usamos una rama condicional, el cual se representa con un triángulo.
Selectores condicionales
Los caminos no son mutuamente excluyentes,cualquier número de caminos que satisfagan las condiciones pueden ser presentadas al usuario. La forma de este elemento es similar a un trapecio.
Racimos
Presenta más de una entrada dada ciertas condiciones, por ejemplo, si un atributo es X, entonces se le presenta al usuario la página B, en cambio si el atributo es Y, el usuaurio ve caminos hacia las páginas C y D. Este elemento se representa con un circulo.
Áreas condicionales
Cuando una o más condiciones se aplican a un grupo de páginas, éstas son encerradas en un "área condicional". Su representación es igual que las áreas tradicionales, pero utilizando una línea entrecortada.
Comentarios finales
Ahora ya sabemos que disponemos de todo un lenguaje visual para diseñar nuestros proyectos de aplicaciones web. Este diagrama va en la línea de empezar a estandarizar la práctica de la ingeniería de aplicaciones web, que sabemos serán cada vez más frecuentes en el fururo. Si deseas investigar más sobre este tipo de diagrama puedes consultar directamente el libro "The elements of User Experience" del propio Jesse James Garrett.
Bueno eso ha sido todo por hoy, espero que les sea de utilidad.