Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Arquitectura
Arquitectura
1. Introduccin
El campo de las arquitecturas software, como rea de investigacin, es relativamente
nuevo. En (Shaw y Clements, 2006b; Shaw y Clements, 2006a) se hace un repaso de la
historia de esta disciplina, y aunque la primera mencin de arquitectura software data
del ao 1969, cuando Ian P. Sharp utiliz el trmino en una conferencia de la OTAN
(Randell y Buxton, 1970), no es hasta mediados de los aos 90 cuando de verdad ha
empezado a despegar, considerando los expertos en el rea que es aproximadamente a
partir del ao 2000 cuando ha alcanzado su mayor apogeo (Shaw y Clements,2006a;
Kruchten et al., 2006).
Se define arquitectura software como la estructura del sistema, que comprende
elementos software, las propiedades de esos elementos visibles externamente y las
relaciones entre ellos. La arquitectura software conforma el esqueleto de cualquier
sistema software, y es la principal responsable de los atributos de calidad del sistema.
Una arquitectura adecuada, correctamente diseada, documentada y evaluada,
constituye la base para que un proyecto finalice con xito (Bass et al., 2003).
Esta definicin implica que la arquitectura de un sistema define componentes y la
interaccin existente entre ellos, pero no detalles internos a esos componentes, que se
puede considerar que no pertenecen a la arquitectura de la aplicacin. Adems, la
arquitectura del sistema se puede ver desde un nmero no determinado de perspectivas,
todas ellas vlidas siempre que valgan para algn fin: anlisis, comunicacin o
comprensin.
Se define estilo arquitectnico como la abstraccin de distintas arquitecturas software
(Klein et al., 1999). As, las conocidas como arquitectura cliente-servidor o arquitectura
en tres capas seran, en realidad, estilos arquitectnicos.
Se han desarrollado diversos mtodos para disear, documentar y evaluar arquitecturas
software, como pueden ser el Attribute-Driven Design (ADD), Attribute-Based
Architectural Styles (ABAS), Quality Attribute Workshop (QAW), Active Reviews for
Intermediate Designs (ARID), Architecture Tradeoff Analysis Method (ATAM), CostBenefit Analysis Method (CBAM) y Views and Beyond (V&B). Resultan
especialmente interesantes porque no son tcnicas independientes, sino que se
proporcionan formas de combinar unas con otras (Nord et al., 2004).
Attribute-Driven Design (ADD) es un mtodo de diseo arquitectnico dirigido por
los atributos de calidad que se quiere que posea el sistema, ms que por la funcionalidad
de la aplicacin, que queda en un segundo nivel (Bass et al., 2001).
Las entradas para el mtodo ADD son los requisitos de calidad del sistema expresados
en forma de escenarios generales, y la salida es una arquitectura conceptual (Hofmeister
et al., 2000), la cual ayuda a alcanzar los atributos de calidad deseados y proporciona la
estructura necesaria para dotar al sistema de la funcionalidad requerida.
Attribute-Based Architectural Styles (ABAS) (Klein y Kazman, 1999), por su parte,
es a la arquitectura lo que los patrones de diseo a los objetos, es decir, son soluciones
basadas en estilos arquitectnicos que han surgido de la experiencia de resolver
problemas que se presentan de manera frecuente. ABAS utiliza los atributos de calidad
para definir un marco de aplicacin de un estilo arquitectnico concreto,
proporcionando un razonamiento, cuantitativo o cualitativo, que fundamente la
utilizacin de un estilo arquitectnico en un diseo determinado.
Architecture Tradeoff Analysis Method (ATAM) (Kazman et al., 2000) es la
evolucin de un mtodo anterior llamado SAAM (Software Architecture Analysis
Method) (Kazman et al., 1994), para el anlisis de arquitecturas software basado en la
utilizacin de escenarios, en el que la evaluacin de una arquitectura no se realiza para
identificar de manera precisa el comportamiento de un atributo de calidad, lo cual no es
posible en fases tempranas del diseo por falta de informacin, sino para descubrir qu
decisiones de diseo afectan de una u otra forma a los atributos de calidad. Esto se hace
a travs de la identificacin de:
Riesgos: decisiones aplazadas o decisiones cuyo efecto no se alcanza a valorar.
Puntos sensibles: partes de la arquitectura que pueden tener mucha influencia en
algn atributo de calidad.
Puntos de compromiso: partes de la arquitectura cuya modificacin significa
mejorar algn atributo de calidad a costa de empeorar otro. Es lo que sucede, en
algunos casos, con la modificabilidad y el rendimiento.
El objetivo es poder tomar decisiones razonadas acerca del diseo para, en sucesivos
anlisis, dedicar ms esfuerzo a completar esas partes de la arquitectura.
Active Reviews for Intermediate Designs (ARID) (Clements, 2000) es un mtodo de
anlisis de arquitecturas resultado de combinar Active Design Reviews (ADR), (Parnas
yWeiss, 1985) y ATAM. Resulta ms ligero que ATAM y es til para ser aplicado en
etapas ms tempranas del diseo arquitectnico e, incluso, sobre partes del sistema en
lugar de sobre el sistema completo. La evaluacin se basa en detallar el funcionamiento
del sistema en una serie de escenarios predefinidos, a travs de lo cual se pueden
identificar posibles puntos problemticos de la arquitectura.
Su utilidad no se encuentra en la sustitucin de ATAM, sino que ms bien prepara el
camino en sistemas en los que, por su complejidad, puedan ser necesarias revisiones de
la arquitectura en etapas intermedias del diseo.
Quality Attribute Workshop (QAW) (Barbacci et al., 2003) es un mtodo creado para
complementar ATAM. Su utilidad reside en la identificacin de los atributos de calidad
que dirigen el proceso de diseo de la arquitectura, por lo que su aplicabilidad es previa
al diseo arquitectnico. Ms concretamente, lo que pretende definir este mtodo es el
significado de los atributos de calidad en el contexto del sistema en desarrollo, la
manera de descubrir, caracterizar y priorizar los atributos de calidad, y la forma de
utilizar esta informacin. El resultado de este proceso es una lista de factores que van a
dirigir el diseo de la arquitectura y una lista de escenarios que servirn para evaluar los
atributos de calidad.
Cost-Benefit Analysis Method (CBAM) (Kazman et al., 2002) es un mtodo para
evaluar los beneficios, costes y riesgos de las diferentes decisiones que se toman para
disear la arquitectura software del sistema. Al igual que QAW, tambin est pensado
para su integracin con ATAM, ya que los resultados producidos por la evaluacin de la
arquitectura, especialmente las estrategias arquitectnicas a seguir, se utilizan como
entrada en CBAM para tomar decisiones basadas en criterios econmicos.
5. El Nivel de Presentacin
Idealmente, ningn otro nivel debera tener visibilidad directa sobre los elementos del
nivel de presentacin.
Esto se puede conseguir aplicando el Principio de Separacin Modelo-Vista.
BIBLIOGRAFA COMPLEMENTARIA
Barbacci, M. R. et al. (2003) Quality Attribute Workshops, Third Edition. Inf. Tec.
CMU/SEI-2003-TR-016, Software Engineering Institute - Carnegie Mellon University,
Pittsburg, PA, USA.
Bass, L. et al. (2001) Quality Attribute Design Primitives and the Attribute Driven
Design Method. En F. van der Linden (ed.), PFE '01: Revised Papers from the 4th
International Workshop on Software Product-Family Engineering, tomo 2290 de
Lecture Notes in Computer Science, pags. 169-186. ACM, Springer-Verlag.
Bass, L. et al. (2003) Software Architecture in Practice. Addison-Wesley, Boston, MA,
second edition
Clements, P. C. (2000) Active Reviews for Intermediate Designs. Inf. Tec. CMU/SEI2000-TN-009, Software Engineering Institute Carnegie Mellon University, Pittsburg,
PA, USA.
Clements, P. (2005) Comparing the SEI's Views and Beyond Approach for
Documenting Software Architectures with ANSI-IEEE 1471-2000. Inf.Tec. CMU/SEI2005-TN-017, Software Engineering Institute Carnegie Mellon University.