mod a0008 - Arquitectura Agil - Implementación y Despliegue

G1

En un modelo totalmente orientado a la re utilización de componentes, sin duda los requisitos también deben estar en consonancia. ¿ Qué significa esto ? Pues que habrá muchos requisitos generales para aplicaciones que ya vengan cubiertos por el sólo hecho de utilizar tal módulo o tal componente.

Por ejemplo requisitos de autenticación ya vienen solucionados al usar el core de Drupal. En este aspecto a su vez hay multitud de módulos relacionados que permiten satisfacer casi cualquier tipo de autenticación del mercado, desde contribuciones que atacan a productos propietarios hasta la implementación de cualquier estándar como puede ser OpenId.

Incluimos a continuación un posible listado de requisitos "auto" cubiertos. Los agruparemos por funcionalidades. Como ejemplo podemos tratar la funcionalidad de Autenticación al sistema.

Para los requisitos no cubiertos por la núcleo de requisitos "auto-cubiertos", indicaremos explícitamente las funcionalidades pedidas. El objetivo es que haya un documento de requisitos auto cubiertos para cualquier portal que respete la arquitectura y una pequeño subconjunto de requisitos específicos para cada Portal.

El objetivo es que el conjunto de requisitos que diferencien un portal de otro sea mínimo y se convierta en un documento manejable y ágil tanto para desarrollo como para el propio cliente.

G2

La idea del modelo de análisis propuesto es enseñar un documento que pueda entender perfectamente el cliente. Donde no haya tecnicismos y los vocablos utilizados reflejen únicamente la complejidad de su negocio.

Cualquier sistema, por complejo que sea se puede reflejar con la figura superior. Disponemos de una serie de peticiones de usuario que son satisfechas por el sistema. A su vez disponemos de N funcionalidades que utiliza el sistema. Encauzado en una arquitectura de componentes donde entre todos permiten un funcionamiento eficiente y seguro. Y todo ello secundado por una envolvente de aspecto.

Brqx_Estudio_Analisis_2010.gif

La navegación por el mismo y sus consecuencias se minimizan por completo. Simples figuras de Cuadros o Redondeles nos indican el funcionamiento interno de cada acción. Los cuadros mostrarán su resultado en otra interfaz y los círculos, en cambio, no cambiarán de perspectiva para el despliegue de su información.

brqx_Analisis_Funcionalidades_Drupal_2010.gif

A su vez, de forma visual mostraremos las N pantallas que intervienen en el flujo de navegación del portal.

brqx_Analisis_Funcionalidades_Drupal_2010.gif

Ahondaremos en la simplificación y en la funcionalidad mínima en función del negocio y la absoluta facilidad y gestión ágil y visual en las facetas de administración.

Se indica cada una de las funcionalidades y su descripción. Se indicarán a continuación las acciones que tendrá cada funcionalidad.

brqx_Analisis_Funcionalidades_Drupal_2010.gif

Describimos todos los roles e indicamos relaciones con las funcionalidades y las acciones en el sistema

brqx_Analisis_Roles_Drupal_2010.gif

Indicamos los distintos tipos de datos, su descripción y su representación, de una forma totalmente simple de manera que el cliente pueda entender y participar en la composición de los contenidos.

brqx_Analisis_Tipos_Drupal_2010.gif

Habilitamos posibilidad de incorporar complejidad adicional mediante procesos complejos.

brqx_Analisis_Procesos_Complejos_Drupal_2010.gif

Como pueden ver se trata de una arquitectura extremadamente simple cuyo fin es servir de enlace entre la mentalidad del cliente y los problemas de su negocio y los componentes, roles ,funcionalidades y representaciones de los mismos que se hará en la aplicación.

G3

El objetivo del documento es definir y explicar los conceptos y diagramas usados en las variopintas facetas involucradas en la arquitectura, de forma que se pueda aplicar directamente en el producto final. En éste caso, el producto seleccionado es Drupal.

Podemos comprobar las asociaciones entre funcionalidades definidas y los componentes con los cuales conformaremos esas funcionalidades.

brqx_diseno_01_navegacion_tabla_navegacion.gif

Exponemos a continuación las taxonomías, su explicación, ejemplo y relación con los tipos definidos.

brqx_diseno_04_procesos_grafos_complejos.gif

Continuamos con los distintos componentes, su representación y su ejemplificación.

brqx_diseno_04_procesos_grafos_complejos.gif

Hemos visto como queda totalmente definido sin lugar a confusiones la representación e implementación de cualquier Tipo de Usuario o Taxonomía definida

A continución propondremos un modelo para poder representar procesos con algún tipo de complejidad añadida. Los hemos denominado "Procesos Complejos en la arquitectura.

brqx_diseno_04_procesos_grafos_complejos.gif

Entramos en el universo de versiones Drupal. Indicamos una simple representación de módulos y temas utilizados en el futuro portal.

brqx_diseno_05_modulos_y_temas.gif

Como bien ha quedado explicado en la arquitectura, cada módulo define componentes en la misma, a su vez también nosotros creamos componentes para cambiar la visualización o representación de Tipos de usuario y otros objetos en pantalla. Drupal aporta dos poderosos métodos de visualización. Vistas y Plantillas.

Cada Vista incluye su parametrización y su formato como se puede comprobar en las siguientes tablas.

brqx_diseno_06_plantillas_y_vistas.gif

Las vistas nos aportan una potencia asombrosa, permitiendo parametrizarlas para poder relacionar completamente contenidos al estilo E/R de BBDD. Las posibilidades en este campo de Drupal son ilimitadas.

Esta funcionalidad es más común a cualquier otro CMS, pero por supuesto Drupal también dispone de objetos para modelar la distribución de contenidos en el portal. Los principales atractivos indicados son los Bloques, pero también tiene Paneles, Tabuladores y otras muchas variantes que incrementan de forma exponencial las posibilidades de implementación.

Nos centraremos en esta arquitectura en los Bloques. Indicamos la colocación de los mismos y comportamiento y origen de su funcionalidad.

brqx_diseno_07_bloques_y_temas.gif

Drupalizamos totalmente la forma de relacionar las funcionalidades aportadas por los módulos y los roles correspondientes.

Será la forma "casi exacta" en la que el producto nos permte visualizar y ajustar esta parametrización.

El poder de drupal a nivel de configuración de usuarios y gestión de roles y métodos de autenticación es también impactante. Dispone de funcionalidades para diferenciar visualización, permisos, acciones, todo ligado al rol correspondiente.

En la representación final, todos los contenidos Drupal los "envuelve" en lo que se llama tema ("theme" en Inglés)

A continuación proponemos una descripción de los temas indicados con una pequeña miniatura (thumb) de cada uno referenciando su origen y los componentes que incorpora.