Documentos de Académico
Documentos de Profesional
Documentos de Cultura
En un libro clave sobre el tema, Shaw y Garlan [Sha96] plantean lo siguiente sobre la arquitec-
tura del software:
Desde el primer programa que se dividió en módulos, los sistemas de software han tenido arquitecturas
y los programadores han sido los responsables de las interacciones entre los módulos y las propiedades
globales del ensamble. Históricamente, las arquitecturas han estado implícitas: accidentes de implemen-
tación o sistemas heredados del pasado. Los desarrolladores de buen software han adoptado con fre-
cuencia uno o varios patrones de arquitectura como estrategias para la organización del sistema, pero
los utilizan de manera informal y no tienen manera de hacerlos explícitos en el sistema resultante.
Hay una diferencia entre los términos arquitectura y diseño. Un diseño es una instancia de una arqui-
tectura, similar a un objeto que es una instancia de una clase. Por ejemplo, considere la arquitectura
de cliente-servidor. Con esta arquitectura es posible diseñar de muchos modos un sistema de software
basado en red, con el uso de una plataforma Java (Java EE) o Microsoft (estructura .NET). Entonces,
hay una arquitectura, pero con base en ella pueden crearse muchos diseños. Así, no es válido mezclar
“arquitectura” y “diseño”.
WebRef Aunque el autor está de acuerdo con que un diseño de software es una instancia de una arqui-
En la dirección www2.umassd. tectura específica de software, los elementos y estructuras que se definen como parte de ésta
edu/SECenter/SAResources. son el origen de todo diseño que evolucione a partir de ellos. El diseño comienza con la consi-
html, se encuentran apuntadores deración de la arquitectura.
útiles para muchos sitios de
arquitectura de software. En este libro, el diseño de la arquitectura de software considera dos niveles de la pirámide
del diseño (véase la figura 8.1): el diseño de los datos y el de la arquitectura. En el contexto del
análisis precedente, el diseño de los datos permite representar el componente de datos de la
arquitectura con definiciones de sistemas y clase convencionales (que incluyen atributos y ope-
raciones) en sistemas orientados a objeto. El diseño arquitectónico se centra en la representa-
ción de la estructura de los componentes del software, sus propiedades e interacciones.
“La arquitectura es demasiado • Las representaciones de la arquitectura del software permiten la comunicación entre
importante para dejarla en todas las partes (participantes) interesadas en el desarrollo de un sistema basado en
manos de una sola persona, no computadora.
importa cuán brillante sea.”
• La arquitectura resalta las primeras decisiones que tendrán un efecto profundo en todo
Scott Ambler el trabajo de ingeniería de software siguiente y, también importante, en el éxito último
del sistema como entidad operacional.
PU El modelo del diseño de la arquitectura y los patrones arquitectónicos contenidos dentro de éste
NT
O son transferibles. Es decir, los géneros, estilos y patrones arquitectónicos pueden aplicarse al
CLAVE diseño de otros sistemas y representan un conjunto de abstracciones que permite a los ingenie-
El modelo arquitectónico da un punto ros de software describir la arquitectura en formas predecibles.
de vista de la Gestalt del sistema, lo
que permite que el ingeniero de
9.1.3 Descripciones arquitectónicas
software lo examine como un todo.
Cada uno de nosotros tiene una imagen mental de lo que significa la palabra arquitectura. Sin
embargo, la realidad es que tiene significados diferentes para distintas personas. La conclusión es
que los diversos participantes verán una arquitectura desde puntos de vista diferentes motivados
por varios conjuntos de preocupaciones. Esto implica que una descripción arquitectónica en rea-
lidad es un conjunto de productos del trabajo que reflejan puntos de vista distintos del sistema.
Por ejemplo, el arquitecto de un gran edificio de oficinas debe trabajar con distintos partici-
pantes. La preocupación principal del propietario de la edificación (un participante) es garanti-
zar el placer estético y que brinde suficiente espacio de oficinas e infraestructura para garantizar
su rentabilidad. Por tanto, el arquitecto debe desarrollar una descripción con el empleo de pers-
CAPÍTULO 9 DISEÑO DE LA ARQUITECTURA 209
pectivas del edificio que se apeguen a las preocupaciones del dueño. Los puntos de vista em-
pleados son dibujos del edificio en tres dimensiones (para ilustrar el aspecto estético) y un
conjunto de planos en dos dimensiones que expliquen la preocupación por el espacio de oficinas
y la infraestructura.
Pero el espacio de oficinas tiene muchos otros participantes, incluido el fabricante de acero
CONSEJO estructural que proveerá dicho material para la estructura del edificio. Necesita información
El esfuerzo debe centrarse en arquitectónica detallada sobre el acero que soportará al edificio, incluso de las vigas tipo I, sus
representaciones de la arquitectura dimensiones, conectividad, materiales y muchos otros detalles. A estas preocupaciones se abo-
que guiarán todos los demás can diferentes productos del trabajo que representan distintos puntos de vista de la arquitectura.
aspectos del diseño. Hay que dedicar Los planos especializados (otro punto de vista) de la estructura de acero de la edificación se
tiempo a revisar con cuidado la
centran sólo en una de las muchas preocupaciones del fabricante.
arquitectura. Un error aquí tendrá un
efecto negativo a largo plazo. La descripción de la arquitectura de un sistema basado en software debe tener características
análogas a las mencionadas para el edificio de oficinas. Tyree y Ackerman [Tyr05] recalcan esto
así: “Los desarrolladores desean lineamientos claros y decisivos sobre la forma de proceder con
el diseño. Los consumidores desean la comprensión clara de los cambios ambientales que de-
ben ocurrir y las garantías de que la arquitectura satisfará las necesidades de negocios. Otros
arquitectos desean una comprensión clara y notable de los aspectos clave de la arquitectura.”
Cada uno de estos “deseos” se refleja en un punto de vista diferente representado con el uso de
una perspectiva distinta.
IEEE Computer Society hizo la propuesta IEEE-Std-1471-2000, Recommended Practice for
Architectural Description of Software-Intensive Systems, [IEE00], con los siguientes objetivos:
1) establecer un marco conceptual con un vocabulario que se use durante el diseño de la arqui-
tectura del software, 2) proporcionar lineamientos detallados para representar una descripción
arquitectónica y 3) estimular las mejores prácticas del diseño arquitectónico.
El estándar IEEE define una descripción arquitectónica (DA) como “un conjunto de productos
para documentar una arquitectura”. La descripción en sí se representa con el uso de perspecti-
vas múltiples, donde cada perspectiva es “una representación del sistema completo desde el
punto de vista de un conjunto de preocupaciones relacionadas [de un participante]”. Una pers-
pectiva se crea de acuerdo con reglas y convenciones definidas en un punto de vista: “especifica-
ción de las convenciones para construir y usar una perspectiva” [IEE00]. En este capítulo se
estudian varios productos del trabajo que se utilizan para desarrollar distintas perspectivas de
la arquitectura del software.
Aunque los principios subyacentes del diseño arquitectónico se aplican a todos los tipos de la
arquitectura, con frecuencia será el género arquitectónico el que dicte el enfoque específico para
la estructura que deba construirse. En el contexto del diseño arquitectónico, el género implica