C贸mo comunicar la arquitectura: Vistas y Puntos de vista
“Esencialmente, todo modelo es incorrecto. Pero algunos son 煤tiles.” Empirical Model-Building and Response Surfaces (George Box, 1987).
Arquitectura restrictiva: Restringe las decisiones que quedan por tomar (por ejemplo cu谩ndo se le da a un equipo de desarrollo)
Arquitectura descriptiva: Documenta las decisiones tomadas y describe el estado actual del sistema, restricciones del pasado m谩s las actuales
El arquitecto va a trabajar con diferentes personas para garantizar que la arquitectura se ejecute correctamente:
- Analista: Negociaci贸n de requerimientos.
- Operaciones: C谩lculo de recursos.
- Desarrolladores: Restricciones y libertades para desarrollar.
- Dise帽adores de productos dependientes (Product Managers): Definici贸n de interoperabilidad. Comunicaci贸n entre productos. Requerimientos de comunicaci贸n como una API. Sincronizar equipos.
- Gestores de proyecto (Project Manager): Gesti贸n de equipos y recursos
- Equipo de calidad (QA): M茅tricas y conformidad.
Documentaci贸n vs implementaci贸n
Modelo de Arquitectura: Se compone de elementos tales como m贸dulos, componentes, conectores, restricciones, estilo, patrones, atributos de calidad.
C贸digo fuente: Hace referencia a paquetes, clases, interfaces, m茅todos, funciones, par谩metros, tipos.
La “fuente de la verdad” va a ser el c贸digo y no el documento de arquitectura. Se deben buscar estrategias para sincronizar el estado actual del c贸digo con el documento de arquitectura.
Las posibles estrategias son las siguientes:
- Ignorar la divergencia: Aplica cuando el equipo de trabajo es peque帽o y mientras todos conozcan la diferencia entre el modelo de la arquitectura y la implementaci贸n consiste en mantener el documento de arquitectura tal y como se encuentra concebido, sabiendo que es lo que hace falta completar y que est谩 en el c贸digo fuente.
- Modelado Ad-hoc: Se tiene una idea de la diferencia entre el modelado y el c贸digo fuente, de tal forma que se puede enunciar el modelo de arquitectura a pesar de que no se encuentra en el documento.
- Modelos de alto nivel: Se puede seguir modelando la arquitectura con modelos de alto nivel que tienden a cambiar menos y por ende, son m谩s baratos.
- Sincronizaci贸n en hitos del ciclo de vida: Consiste en actualizar el modelo de arquitectura en alg煤n punto del ciclo de vida de la aplicaci贸n. Permite versionar el modelo de arquitectura y saber en cada momento del proyecto cual era el estado del modelo de arquitectura.
- Sincronizar en una crisis: Actualizar el modelo de arquitectura cuando dentro del desarrollo, el c贸digo fuente ri帽e contra alguna definici贸n plasmada en el modelo arquitect贸nico.
- Sincronizaci贸n constante: Es la estrategia m谩s obvia, pero la menos eficiente de todas porque es la m谩s costosa y m谩s complicada de ejecutar porque es bastante complicado tener el modelo actualizado contra el c贸digo fuente.
Comentarios
Publicar un comentario