Descripción de la Arquitectura de Software: Conceptos y Prácticas

Puntos Clave
  • La norma ISO/IEC/IEEE 42010 define la descripción de la arquitectura de software como el producto de trabajo que expresa la arquitectura.
  • El uso de múltiples vistas permite comunicar preocupaciones específicas a diferentes stakeholders, aunque requiere gestión de consistencia.
  • Las descripciones de arquitectura no son solo técnicas, sino que también gestionan aspectos de costos, plazos y procesos.

La descripción de la arquitectura de software es el conjunto de prácticas para expresar, comunicar y analizar las arquitecturas de software (también conocido como renderizado arquitectónico). Según la norma ISO/IEC/IEEE 42010, es el resultado de aplicar estas prácticas a través de un producto de trabajo que expresa la arquitectura de un sistema.

Conceptos Fundamentales

La descripción de la arquitectura define las prácticas, técnicas y tipos de representaciones que los arquitectos de software utilizan para registrar la estructura de un sistema. En esencia, se trata de una actividad de modelado, donde los modelos pueden adoptar diversas formas, como texto, dibujos informales, diagramas o formalismos específicos (lenguajes de modelado).

El Rol de las Vistas y los Puntos de Vista

Para abordar eficazmente las necesidades de diversos stakeholders (usuarios finales, propietarios del sistema, desarrolladores, ingenieros y gestores de programas), una descripción arquitectónica suele emplear múltiples vistas. Cada vista se organiza para abordar preocupaciones específicas de interés para diferentes partes interesadas.

  • Vista: Una representación del sistema que aborda preocupaciones específicas.
  • Punto de Vista (Viewpoint): Una especificación que describe las notaciones, técnicas de modelado y convenciones utilizadas en una vista para expresar la arquitectura.

Aunque el uso de múltiples vistas es efectivo, puede generar redundancia o inconsistencias. Por ello, se utilizan mecanismos para gestionar las correspondencias entre vistas y asegurar la coherencia del sistema.

Mitos y Realidades de la Documentación Arquitectónica

Existe la creencia errónea de que las descripciones de arquitectura solo tratan temas técnicos. Sin embargo, estas deben abordar cuestiones relevantes para muchos interesados, incluyendo la gestión de costos, cronogramas y procesos. Asimismo, no se limitan a los aspectos estructurales; también deben cubrir preocupaciones conductuales, estéticas y otros requisitos extra-funcionales.

Evolución Histórica

Históricamente, las descripciones comenzaron con dibujos informales y texto, los cuales siguen siendo ampliamente utilizados en la industria. La disciplina ha sido influenciada por la ingeniería de software (abstracción de datos y programación a gran escala) y el diseño de sistemas (como SARA).

Contribuciones de Perry y Wolf

Perry y Wolf propusieron que la representación de las arquitecturas debe incluir tres elementos clave: elementos, forma y justificación. Además, distinguieron tres tipos de elementos:

  1. Procesamiento: Cómo se transforma la información.
  2. Datos: La información que se utiliza y transforma.
  3. Conexión: El "pegamento" que mantiene unidos los demás elementos.

Mecanismos para la Descripción de la Arquitectura

Para facilitar la reutilización de estilos exitosos, se emplean diversos mecanismos:

  • Puntos de vista de arquitectura: Especificaciones de notaciones y técnicas.
  • Lenguajes de descripción de arquitectura (ADL): Lenguajes formales para definir la estructura del software.
  • Marcos de trabajo (Frameworks) de arquitectura: Estructuras predefinidas para organizar la descripción.

Preguntas Frecuentes

Respuestas a las dudas más habituales sobre Descripción de la Arquitectura de Software: Conceptos y Prácticas.

Es una representación del sistema que se enfoca en una preocupación específica para un grupo de stakeholders determinado, siguiendo las convenciones de un punto de vista.

Volver al índice enciclopédico