Tarea: Refinar la arquitectura
Refinar la arquitectura a un nivel de detalle apropiado para apoyar adecuadamente la construcción de la solución tecnológica.
Disciplinas: DiseñoDiseño
Relaciones
Descripción principal

Esta actividad se basa en el trabajo realizado durante la actividad de esbozar la arquitectura. El objetivo es tomar las decisiones arquitectónicas necesarias para apoyar los objetivos de la iteración actual del proyecto. Las decisiones tomadas deben ser concretas y sin ambigüedades. Deben ser documentadas en la descripcion de la arquitectura y comunicadas a todo el equipo.

Esta actividad se realiza de forma iterativa. Las iteraciones posteriores a la primera iteración del proyecto deben tener en cuenta los diseñado y construido de la solución hasta el momento.

Pasos
Identificar los elementos de diseño relevantes a la arquitectura
Refinar las abstracciones clave en elementos de diseño concretos (como clases y subsistemas) y proporcionar al menos un nombre y una breve descripción para cada uno. Agregar cada ítem al diseño de la solución.
Refinar los mecanismos arquitectónicos
Refinar cada mecanismo arquitectónico que esté priorizado para la iteración en curso. Para esto es necesario revisar los objetivos de la iteración actual para identificar qué mecanismos realmente deben entregarse en el software. Se debe trabajar en conjunto con los desarrolladores para perfeccionar estos mecanismos.
Asignar los diferentes elementos de diseño de software al hardware
Asignar los elementos de diseño relevantes a la arquitectura al entorno de despliegue del software (ambiente de producción). Se debe trabajar con especialistas en hardware y redes para garantizar que el hardware pueda satisfacer adecuadamente las necesidades de la solución de software y que cualquier hardware nuevo que se requiera pueda estar disponible oportunamente.
Actualizar la descripción de la arquitectura
Actualizar la descripcion de la arquitectura para que refleje cualquier cambio que haya sido realizado durante el desarrollo.
Validar la arquitectura

Asegurarse de que la arquitectura sea compatible con los requerimientos y las necesidades del equipo.

El equipo de desarrollo debe trabajar para generar una versión del sistema (o prototipo) que muestre que la arquitectura del software es viable. Esto debería proporcionar la base definitiva para validar la idoneidad de la arquitectura. Como el software debe desarrollarse de forma iterativa, puede ser necesario más de un incremento de la construcción para probar la arquitectura. Durante las primeras etapas del proyecto, puede ser aceptable que el software tenga un aspecto  incompleto o con forma de prototipo, ya que se ocupará principalmente en implementar la arquitectura de la solución que proporcionará una base estable para el desarrollo restante.

Comunicar las decisiones relacionadas a la arquitectura
Asegurarse de que aquellos que necesitan utilizar o trabajar sobre la descripción de la arquitectura puedan entenderla de forma adecuada. Asegurarse de que la descripción de la arquitectura transmita claramente no solo la solución a los requerimientos, sino también la motivación y los objetivos relacionados con las decisiones que se han tomado en la definición de la arquitectura. Esto facilitará que otras personas entiendan la arquitectura y puedan evolucionarla adecuadamente.