El
concepto de Arquitectura de Software es una extensión de la Ingeniería
de Software para la producción y evaluación de software de alta calidad
[18]; de acuerdo al Software Engineering Institute (SEI), la Arquitectura de Software se refiere a “las estructuras de un
sistema, compuestas de elementos con propiedades visibles de forma
externa y las relaciones que existen entre ellos”; que satisface el
subconjunto de requerimientos, tales como: atributos de calidad,
requerimientos funcionales primarios y restricciones, denominados drivers
de la arquitectura. Ahora bien, el desarrollo de la arquitectura
software se divide en las etapas de: Requerimientos, Diseño, Documentación y Evaluación. Será durante la etapa de diseño de la
arquitectura de software que se tomen decisiones de diseño que definirán
y guiarán el desarrollo de un sistema de software; para después crear
un conjunto de estructuras que satisfagan los drivers
arquitecturales. Por ende durante el desarrollo de un sistema software
existirán una gran cantidad de decisiones que se entrelazan, de tal
manera, que un cambio en las decisiones pueden afectar
significativamente a otros aspectos del diseño, por lo que un arquitecto
de software debe ser capaz de analizar y evaluar los efectos de las
decisiones de diseño. Así, este proceso ha sido tradicionalmente
considerado como un trabajo altamente creativo, que requiere una
experiencia especial, juicio y talento [13]. Las
decisiones de diseño arquitectónico subyacen en el software
arquitectura y se define como el conjunto de adiciones, sustracciones y
modificaciones en la arquitectura software, así como también incluye,
los fundamentos, las reglas y limitaciones de diseño, y requerimientos
adicionales [14]. Como tal, las arquitecturas de software puede ser
visto como el resultado de un conjunto de decisiones de diseño
arquitectónico [10]. La práctica indica que la toma de decisiones es
realizada a través del conocimiento arquitectural (Architectural Knowledge, AK)
que engloba los conceptos de decisiones de diseño, justificación,
alternativas y diseño arquitectural. Este conocimiento es expresado en
términos de estilos arquitectónicos, patrones, mejores prácticas,
arquitecturas de referencia, tácticas, frameworks, entre otros [13].
No hay comentarios:
Publicar un comentario