El
método ADD es un enfoque a la definición de una arquitectura de
software en el que se basa el proceso de diseño de los requisitos del
software de atributos de calidad. ADD es un proceso de diseño recursivo
que descompone un sistema o elemento del sistema mediante la aplicación
de tácticas arquitectónicas [Bass 03] y los patrones que satisfacen los
drivers. ADD sigue esencialmente el
ciclo “Plan, Do, and Check”:
- Plan: Los atributos de calidad y las restricciones de diseño son consideradas para seleccionar qué tipos de elementos se utilizan en la arquitectura.
- Do: Los elementos son instanciados para satisfacer los atributos de calidad, así como los requisitos funcionales.
- Check: El resultado es analizado para determinar si los requisitos son satisfechos.
Este proceso se repite hasta que todos los requisitos de gran importancia arquitectónica se cumplen.
Paso 1: Confirmar que existe suficiente información sobre los requerimientos
¿Que
se hace en el paso 1?
En el primer paso, usted
confirma que hay suficiente información acerca de los requisitos
para proceder con el paso 2. En esencia, se asegura que los
stakeholders han dado prioridad a los requisitos de acuerdo a
los objetivos de negocio y a la misión. También debe confirmar que
se dispone de información suficiente sobre los atributos de calidad
para proceder.
Como arquitecto, se debe
priorizar la lista de requerimientos para determinar en qué
elementos del sistema se deben concentrarse durante el diseño. Se
deben considerar los requisitos y su impacto potencial en la
estructura de la arquitectura, en orden descendente de importancia
para los stakeholders. Los requisitos que no han sido priorizadas
deberán ser marcados y devueltos a para su clasificación.
Además, se debe
determinar si existe suficiente información acerca de los atributos
de calidad del sistema. Cada atributo de calidad debe ser expresado
de la forma "estímulo-respuesta", de la misma manera como
escenarios de atributos de calidad [Bass 03]. Each requirement should
be described as the system’s measurable quality attribute response
to a specific stimulus with the following made explicit:
•
Estímulo fuente
•
Estímulo
•
Artefacto
•
Entorno
•
Respuesta
•
Respuesta de medida
Conocer esta información
para cada atributo de calidad ayuda al arquitecto para seleccionar
varios patrones de diseño y tácticas para lograr esos requisitos.
Si esta información no está disponible, usted debe crear requisitos
derivados o trabajar con los interesados para aclarar los
requisitos. En cualquier caso, los escenarios de atributos de calidad
se puede utilizar para documentar estos requisitos.
¿Que
decisiones de diseño se toman durante el paso 1?: No se
toman decisiones de diseño durante este paso.
Paso 2: Seleccionar un elemento del sistema para descomponer
¿Que
se hace en el paso 2?
En este segundo paso, se
debe elegir qué elemento del sistema será el enfoque de diseño en
los pasos subsiguientes (el elemento con el cual se va a trabajar).
Se puede llegar a este paso en una de las siguientes dos maneras:
- Caso 1: Primera iteración. Si se accede por primera vez a la Etapa 2 como parte de una "nueva creación" de desarrollo. El único elemento que puede descomponerse es el propio sistema. Por defecto, todos los requisitos son asignados a ese sistema.
- Caso 2: Más de una iteración. Se están perfeccionando un sistema parcialmente diseñado y se ha visitado el paso 2 anteriormente. En este caso, el sistema se ha dividido en dos o más elementos, y los requisitos han sido asignados a estos elementos. Debe elegir uno de estos elementos como el elemento central de las etapas subsiguientes.
En el segundo caso, es
posible elegir el elemento que se centran en base a una de las cuatro
áreas de interés:
- Conocimiento de la arquitectura actual
- Si es el único elemento que puede elegir (por ejemplo, todo el sistema o el último elemento de la izquierda)
- El número de dependencias que tiene con otros elementos del sistema (por ejemplo, mayor o menor dependencias)
- Riesgo y dificultad
- Criterio de negocio
- Criterio de la organización
¿Que
decisiones de diseño se toman durante el paso 1?: No se
toman decisiones de diseño durante este paso.
Paso 3: Identificar los drivers arquitecturales candidatos
¿Que
se hace en el paso 3?
En este punto, usted ha
elegido un elemento del sistema a descomponerse, y las partes
interesadas han dado prioridad a los requisitos que afecten a ese
elemento. Durante este paso, podrás clasificar estos mismos
requisitos por segunda vez en función de su impacto relativo en la
arquitectura. Esta segunda clasificación puede ser tan simple como
la asignación de "alto impacto", "medio impacto"
o "bajo impacto" para cada requisito.
Dado que las stakeholders
clasificaron los requisitos inicialmente, la segunda clasificación
basada en el impacto arquitectura tiene el efecto de ordenar
parcialmente los requisitos en un grupos. Si utiliza simples rankings
alta / media / baja, los grupos serían:
(H,H) (H,M) (H,L) (M,H)
(M,M) (M,L) (L,H) (L,M) (L,L)
-->
Paso 4: Elige un concepto de diseño que satisfaga los drivers arquitecturales
¿Que
se hace en el paso 4?
En el paso 4, debe elegir
los tipos principales de elementos que aparecerán en la arquitectura
y los tipos de relaciones entre ellos. Restricciones de diseño y los
atributos de calidad (que son los aspirantes a drivers de
arquitectura) se utilizan para determinar los tipos de elementos,
relaciones y sus interacciones.
Como arquitecto, debe
seguir estos seis sub-pasos:
- Identificar los problemas de diseño que se asocian con los drivers arquitectónicos candidatos. Por ejemplo, para un requisito de atributo de calidad en cuanto a disponibilidad, las preocupaciones principales de diseño podría ser la prevención de fallo, detección de fallos, y la recuperación de fallos [Bass 03].
- Para cada problema de diseño, crear una lista de patrones alternativos que responden a la preocupación. Los patrones en la lista se derivan de:
- Conocimientos, habilidades y experiencia con la que los patrones.
- Táctica de arquitectura conocida para lograr los atributos de calidad [Bass 03] Si un driver arquitectónico candidato se refiere a más de un atributo de calidad, se pueden aplicar múltiples tácticas.
- Otras fuentes, como libros, documentos, material para conferencias, motores de búsqueda, productos comerciales, etc.
Para
cada patrón en su lista, usted debe
- Identificar los parámetros discriminantes de cada modelo para ayudar a elegir entre los patrones y tácticas en la lista. Por ejemplo, en cualquier patrón de reinicio (por ejemplo, warm restart, cold restart), la cantidad de tiempo que le toma a un reinicio es un parámetro discriminante. Para los patrones usados para lograr la modificabilidad (por ejemplo, layers), un parámetro discriminante es el número de dependencias que existen entre los elementos en el patrón.
- Estimar los valores de los parámetros discriminantes
Si te interesa conocer los pasos 4, 5, 6, 7, 8 de ADD consulta ADDv2.0 o enviame un correo!