Tuvimos una plática con Agustín Ramos acerca de la arquitectura de software y lo que debes aprender para practicarla. Este pequeño artículo incluye nuestro resumen y las recomendaciones de Agustín.

¿Qué es la arquitectura de software?

La arquitectura del software incluye el diseño del sistema a alto nivel: la descomposición del sistema en módulos, la descripción de las responsabilidades de cada uno y sus relaciones.

También incluye las prácticas y herramientas que permitirán que el proyecto cumpla con los atributos de calidad o requerimientos no funcionales.

Todo lo anterior está basado en un análisis de las funciones y atributos de calidad del sistema.

El proceso

En la plática tocamos 5 etapas del desarrollo de una arquitectura:

  1. Descubrimiento y definición de los atributos de calidad. Básicamente consiste en entender el problema, escuchar a todos los involucrados en el proyecto y definir los atributos del software que no están directamente relacionados con la funcionalidad, pero que debe de cumplir.

  2. Diseño del sistema. Generalmente te ayudarás de estilos de arquitectura y patrones de diseño para llegar a los objetivos funcionales y no funcionales.

  3. Validación del diseño. Mediante la creación de prototipos se puede validar que las asunciones principales acerca del diseño y su relación con los atributos de calidad se cumplen. Esto puede derivar en cambios sobre el diseño que lo mejoren.

  4. Comunicación del diseño. Después de definir la arquitectura es importante comunicar el diseño al equipo mediante un exposición directa y la documentación. Esta documentación debe incluir la mayor información posible sobre la razón de las decisiones y la evolución de la arquitectura.

  5. Seguimiento del diseño. Esto incluye varias cosas:

    • Verificación de que el equipo está siguiendo el diseño. Esto se logra con revisiones constantes con el equipo: programación en parejas y revisión de código.
    • El diseño nunca está está escrito en piedra. Después de las revisiones de código se descubrirán cosas que no están funcionando como se esperaba, por lo que será necesario modificar el diseño y dejar registro de los cambios y las decisiones tomadas.

Consejos específicos

Los arquitectos de software deben encontrar la solución más simple posible porque si no va a ser rígida.

Acerca de la documentación, Agustín recomienda, exponerla al equipo en una junta y hacer un video de esto, que se le pase a cada integrante del equipo. Se puede seguir el marco llamado “Arquitectura 4 + 1” que se compone de:

  • Vista de Componentes
  • Vista de Desarrollo
  • Vista de Procesos
  • Vista Física
  • Vista de Casos (Este es el +1)

Además, tenemos que mantener una bitácora de los cambios y los factores que los impulsaron, esto puede ser mediante los Architectural Decision Records.

Cómo empezar

Agustín nos recomendó algunos recursos para que empieces a aprender:

Para aprender patrones de diseño se habló de los siguientes libros:

Y entre los libros que se mencionan como la fuente de las ideas de patrones y diseño:

El capítulo

De todos modos no te pierdas el capítulo, que estuvo muy bueno:

Comentar