miércoles, 10 de octubre de 2012

Attribute-Driven Design (ADD) 2.0

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:
  1. Conocimiento de la arquitectura actual
    1. Si es el único elemento que puede elegir (por ejemplo, todo el sistema o el último elemento de la izquierda)
    2. El número de dependencias que tiene con otros elementos del sistema (por ejemplo, mayor o menor dependencias)
  2. Riesgo y dificultad
  3. Criterio de negocio
  4. 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:

  1. 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].
  2. 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:
    1. Conocimientos, habilidades y experiencia con la que los patrones.
    2. 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.
    3. 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!





6 comentarios: