Tarea: Desarrollar la Arquitectura
Tomar decisiones concretas sobre la arquitectura para proporcionar orientación y dirección para el trabajo de desarrollo para la iteración.
Disciplinas: Analysis & Design
Objetivo

Proporcionar un diseño esquelético para que las actividades de diseño sean llevadas a cabo coherentemente por el equipo.

Relaciones
Roles Realizador principal: Otras actividades adicionales que realiza:
Entradas Obligatoria: Opcional:
  • Ninguno
Salidas
Descripción principal

 

Esta tarea se basa en el trabajo realizado durante  Analyze the Architectural Requirements para producir un enfoque concreto a seguir para el flujo principal de desarrollo.

El objetivo es resolver las cuestiones generales que afectan a la actividad de diseño y desarrollo de la iteración actual. Estos son:

 

  • Especificar los mecanismos o pautas comunes que serán utilizados.
  • Especificar lo que se usará de los activos de software existentes y la forma en que se integrará con la solución general.
  • Especificar que nuevo software tiene que ser desarrollado.
  • Asegurarse de que los recursos de hardware y software están especificados para apoyar el desarrollo y prueba de la solución.
  • Asegurarse de que la arquitectura es útil y es utilizada por el equipo del proyecto.

 

Las decisiones técnicas tomadas como parte de esta tarea son concretas y sin ambigüedades. Capturar las decisiones arquitectónicas en el Architecture Notebook. Asegúrese de que estas se comunican a todo el equipo.

Esta tarea se aplica iterativamente; las iteraciones después de la primera tendrán que tener en cuenta el Design y Build de productos que se han desarrollado hasta entonces.

Pasos
Identificar prioridades de la arquitectura

Determinar las prioridades para esta iteración del trabajo de arquitectura. Equilibrar los objetivos de la iteración actual con los objetivos generales del proyecto asegurando que la arquitectura puede soportar las necesidades actuales y futuras.

Refinar los mecanismos de la arquitectura

Perfeccionar cada mecanismo arquitectónico en un mecanismo de diseño (Design Mechanism) observando los requerimientos en el contexto de la iteración actual. Incluir cada escenario de importancia arquitectónica en el alcance. Busque cosas en común entre distintos escenarios escenarios y proponga componentes y patrones comunes para su solución. Trabaje con los desarrolladores y analistas para llegar a un consenso sobre los mecanismos de la arquitectura.

Identificar patrones de negocio

 

La arquitectura del sistema puede a menudo ser el mejor comunicada mostrando cómo maneja el comportamiento de las áreas importantes de negocio.

Ver  Business Pattern. Trabajar con los stakeholders para asegurar los patrones de negocio se basan en un conocimiento sólido.

Identificar las oportunidades de reutilización

Aproveche la reutilización de componentes ya existentes mediante la evaluación de sus interfaces y el comportamiento que proporcionan. Reutilice componentes cuando sus interfaces son similares o coincidan con las interfaces de los componentes que tendría que desarrollar desde cero. Si no hay similitud modifique las interfaces recientemente identificadas para poder que mejorar el ajuste con las interfaces de los componentes existentes.

 

Trabaje con los desarrolladores para llegar a un consenso sobre la idoneidad de la utilización de componentes ya existentes.

 

Identificar los elementos de diseño importantes de la arquitectura

Perfeccionar las abstracciones clave para decidir sobre los elementos de diseño importantes (como las clases y subsistemas) que conforman la arquitectura, y proporcionar al menos un nombre y una breve descripción para cada uno. Agregar al diseño (Design). Llegar a un consenso con los desarrolladores sobre las opciones de diseño más importantes.

Mapear el software al hardware

Mapear los elementos de diseño arquitectónico más importantes hacia el entorno de despliegue. Trabajar con especialistas de hardware y de red para asegurar que el hardware es suficiente para satisfacer las necesidades del sistema, y que cualquier nuevo hardware esté disponible en el tiempo.

Defina la arquitectura de desarrollo y la arquitectura de pruebas

Asegúrese de que las arquitecturas de desarrollo y pruebas están definidas. Tenga en cuenta las diferencias de arquitectura significativa entre estos entornos y trabaje con el equipo para diseñar estrategias para mitigar los riesgos que estas pueden introducir.

Validar la arquitectura

Verificar que las decisiones arquitectura son apropiados para su propósito.

 

El trabajo de desarrollo se debe realizar para producir una versión (Build) que muestra que la arquitectura del software es viable. Esta debe ser la base definitiva para la validación de la adecuación de la arquitectura. Mientras que el software debe ser desarrollado de forma iterativa, más de un incremento de la versión puede ser necesario para probar la arquitectura. Durante las primeras etapas del proyecto (hasta el final de elaboración (Elaboration)) puede ser aceptable que el software deje una sensación de incompleto o de prototipo ya que se enfocará principalmente en conseguir una línea de base de arquitectura que proporcione una base estable para la fase de construcción.

 

Comunicar las decisiones

Asegúrese que aquellos que deben actuar a partir del trabajo de arquitectura lo entiendan y sean capaces de trabajar con el. Asegúrese de que la descripción de la arquitectura expresa claramente no sólo la solución sino también la motivación y los objetivos relacionados con las decisiones que se han hecho en la configuración de la arquitectura. Esto hará que sea más fácil para que otros puedan entender la arquitectura y para adaptarse con el tiempo.

Factores clave

El arquitecto debe realizar esta tarea mediante la colaboración con todo el equipo para promover el consenso y un entendimiento común de la solución global. El arquitecto debe trabajar para coordinar y orientar las actividades técnicas del equipo en lugar de tratar de hacer todo el trabajo solo. El arquitecto debe poner énfasis en la participación de los desarrolladores a lo largo de esta tarea.

 


 

Más información