El diseño basado en atributos [1] [2] (también llamado ADD o método de diseño basado en atributos) es una metodología para crear arquitecturas de software que tiene en cuenta los atributos de calidad del software. Anteriormente se conocía como método de diseño basado en arquitectura (o ABD), pero debido a problemas de marca registrada, el nombre se cambió a diseño basado en atributos alrededor de 2001. [3]
El método de diseño basado en atributos
En el libro Arquitectura de software en la práctica [4] los autores describen ADD como un método iterativo que, en cada iteración, ayuda al arquitecto a realizar los siguientes pasos:
- Elija una parte del sistema para diseñar.
- Reúne todos los requisitos arquitectónicamente significativos para la parte seleccionada. Esto significa que seleccionas todos los atributos de calidad y objetivos comerciales que podrían afectar la arquitectura de esta fase.
- Cree una arquitectura para la parte seleccionada que cumpla con los requisitos arquitectónicamente significativos seleccionados y pruebe este diseño.
Entrada requerida
ADD solo se puede iniciar correctamente cuando los siguientes recursos ya están disponibles:
- Requisitos funcionales
- Requisitos de calidad
- restricciones
Por supuesto, no podemos esperar hasta que se cumplan todos estos requisitos, ya que esto puede llevar un tiempo. El proceso ADD puede comenzar una vez que se disponga de un conjunto de ASR (requisitos arquitectónicamente significativos, que son los tres recursos enumerados anteriormente).
Pasos del proceso
- Elija un elemento del sistema a diseñar
- Seleccione un elemento del sistema que aún no esté diseñado. En la primera iteración, será el propio sistema. Más adelante, será necesario elegir entre varios elementos. Esta elección puede basarse en la disponibilidad de personal, la disponibilidad de recursos de entrada, la mitigación de riesgos, etc. En caso de que no tenga ninguna de estas limitaciones, se sugiere optar por una estrategia de amplitud.
- Identificar los requisitos arquitectónicamente significativos (ASR) para el elemento elegido
- Identifique los requisitos de rendimiento más importantes para este elemento seleccionado. Debe priorizar estos requisitos para asegurarse de que su diseño refleje los requisitos de rendimiento más importantes.
- Generar una solución de diseño para el elemento elegido
- Este paso es el corazón de ADD, ya que en él se creará la arquitectura. La arquitectura que cree debe reflejar los ASR seleccionados. Puede hacerlo utilizando patrones arquitectónicos o tácticas. La mayoría de las veces, tendrá que hacer concesiones entre varias tácticas y ASR.
- Inventario de los requisitos restantes y selección de la entrada para la siguiente iteración
- Eche un vistazo a los ASR enumerados y compruebe si ya se cumplen con el diseño que tiene en este momento. Para cada ASR, deberá comprobar si se cumple, se delega a uno de los hijos, se distribuye entre los hijos o si no se puede cumplir. En este último caso, deberá cambiar su arquitectura.
- Repita los pasos 1 a 4 hasta que se hayan satisfecho todos los ASR.
- ¡Repetir!
Producción
Un conjunto de bocetos de vistas arquitectónicas, no una arquitectura completamente detallada.
AGREGAR 3.0
En los últimos años, ADD se ha actualizado sustancialmente para incluir diseño específico de la plataforma, por ejemplo, opciones de tecnología y marco a través de catálogos de conceptos de diseño, y para enfatizar la toma y documentación de decisiones arquitectónicas . [5]
Referencias
- ^ Wojcik, Rob; Bachmann, Felix; Bass, Len; Clements, Paul C.; Merson, Paulo; Nord, Robert; Wood, William G. (noviembre de 2006). "Diseño basado en atributos (ADD), versión 2.0". SEI .
- ^ "Método de diseño basado en atributos". SEI .
- ^ Bachmann, Felix; Bass, Len (2001). "Introducción al método de diseño basado en atributos". IEEE . págs. 745–746. CiteSeerX 10.1.1.97.5395 .
- ^ Bass, Len; Clements, Paul; Kazman, Rick (2013). "Capítulo 17". Arquitectura de software en la práctica (tercera edición). Pearson. ISBN 978-0-321-81573-6.
- ^ Cervantes H., Kazman R., Diseño de arquitecturas de software, Addison Wesley, 2016.