Académique Documents
Professionnel Documents
Culture Documents
Todava no se ha escrito una historia aceptable de la AS. Desde que Mary Shaw o David
Garlan researan escuetamente la prehistoria de la especialidad a principios de los 90 .
A continuacin se inspeccionan algunas fuentes ms de cerca, con el objeto de sealar
las supervivencias y las re-semantizaciones que han experimentado las ideas
fundadoras en la AS contempornea, definir con mayor claridad el contexto, entender
que muchas contribuciones que pasaron por complementarias han sido en realidad
antagnicas y comprender mejor por qu algunas ideas que surgieron hace cuatro
dcadas demoraron un cuarto de siglo en materializarse.
Nadie volvi a hablar del asunto en esa conferencia, sin embargo. Por unos aos,
arquitectura fue una metfora de la que se ech mano cada tanto, pero sin precisin
semntica ni consistencia pragmtica. En 1969 Fred Brooks Jr y Ken Iverson llamaban
arquitectura a la estructura conceptual de un sistema en la perspectiva del
programador. En 1971, C. R. Spooner titul uno de sus ensayos Una arquitectura de
software para los 70s [Spo71], sin que la mayor parte de la historiografa de la AS
registrara ese antecedente.
En 1975, Brooks, diseador del sistema operativo OS/360 y Premio Turing 2000,
utilizaba el concepto de arquitectura del sistema para designar la especificacin
completa y detallada de la interfaz de usuario y consideraba que el arquitecto es un
agente del usuario, igual que lo es quien disea su casa [Bro75], empleando una
nomenclatura que ya nadie aplica de ese modo. En el mismo texto, identificaba y
razonaba sobre las estructuras de alto nivel y reconoca la importancia de las
decisiones tomadas a ese nivel de diseo. Tambin distingua entre arquitectura e
implementacin; mientras aquella deca qu hacer, la implementacin se ocupa de
cmo. Aunque el concepto de AS actual y el de Brooks difieren en no escasa medida, el
texto de Brooks The mythical man-month sigue siendo, un cuarto de siglo ms tarde, el
ms ledo en ingeniera de software. Se ha sealado que Dijkstra y Brooks, el primero
partidario de un formalismo matemtico y el segundo de considerar las variables
humanas, constituyen dos personalidades opuestas, que se sitan en los orgenes de
las metodologas fuertes y de las heterodoxias giles, respectivamente [Tra02]; pero
eso ser otra historia.
En la misma poca, otro precursor importante, David Parnas, demostr que los
criterios seleccionados en la descomposicin de un sistema impactan en la estructura
de los programas y propuso diversos principios de diseo que deban seguirse a fin de
obtener una estructura adecuada. Parnas desarroll temas tales como mdulos con
ocultamiento de informacin [Par72], estructuras de software [Par74] y familias de
programas [Par76], enfatizando siempre la bsqueda de calidad del software, medible
4
Deca Parnas que las decisiones tempranas de desarrollo seran las que probablemente
permaneceran invariantes en el desarrollo ulterior de una solucin. Esas decisiones
tempranas constituyen de hecho lo que hoy se llamaran decisiones arquitectnicas.
Como escriben Clements y Northrop [CN96] en todo el desenvolvimiento ulterior de la
disciplina permanecera en primer plano esta misma idea: la estructura es primordial
(structure matters), y la eleccin de la estructura correcta ha de ser crtica para el xito
del desarrollo de una solucin. Ni duda cabe que la eleccin de la estructura correcta
sintetiza, como ninguna otra expresin, el programa y la razn de ser de la AS.
de software en el diseo es uno de Mary Shaw [Shaw84] seguido por otro llamado
Larger scale systems require higher level abstractions [Shaw89]. Se hablaba entonces
de un nivel de abstraccin en el conjunto; todava no estaban en su lugar los
elementos de juicio que permitieran reclamar la necesidad de una disciplina y una
profesin particulares.
La declaracin, no tiene una palabra de desperdicio: cada idea cuenta, cada intuicin
ha permanecido viva desde entonces. Los autores prosiguen reseando el progreso de
las tcnicas de diseo en la dcada de 1970, en la que los investigadores pusieron en
claro que el diseo es una actividad separada de la implementacin y que requiere
notaciones, tcnicas y herramientas especiales. Los resultados de esta investigacin
comienzan ahora (decan en 1992) a penetrar el mercado en la forma de herramientas
8
de ingeniera asistida por computadoras, CASE. Pero uno de los resultados del uso de
estas herramientas ha sido que se produjo la absorcin de las herramientas de diseo
por los lenguajes de implementacin. Esta integracin ha tendido a esfumar, si es que
no a confundir, la diferencia entre diseo e implementacin. En la dcada de 1980 se
perfeccionaron las tcnicas descriptivas y las notaciones formales, permitindonos
razonar mejor sobre los sistemas de software. Para la caracterizacin de lo que
suceder en la dcada siguiente ellos formulan esta otra frase que ha quedado
inscripta en la historia mayor de la especialidad:
La dcada de 1990, creemos, ser la dcada de la arquitectura de software.
Usamos el trmino arquitectura en contraste con diseo, para evocar
nociones de codificacin, de abstraccin, de estndares, de entrenamiento
formal (de los arquitectos de software) y de estilo. ? Es tiempo de reexaminar el papel de la arquitectura de software en el contexto ms amplio
del proceso de software y de su administracin, as como sealar las
nuevas tcnicas que han sido adoptadas.
Considerada como disciplina por mrito propio, la AS ha de ser, para ellos, beneficiosa
como marco de referencia para satisfacer requerimientos, una base esencial para la
estimacin de costos y administracin del proceso y para el anlisis de las
dependencias y la consistencia del sistema.
Dando cumplimiento a las profecas de Perry y Wolf, la dcada de 1990 fue sin duda la
de la consolidacin y diseminacin de la AS en una escala sin precedentes. Las
contribuciones ms importantes surgieron en torno del instituto de ingeniera de la
informacin de la Universidad Carnegie Mellon (CMU SEI), antes que de cualesquiera
organismos de industria. En la misma dcada, demasiado prdiga en acontecimientos,
surge tambin la programacin basada en componentes, que en su momento de
mayor impacto impuls a algunos arquitectos mayores, como Paul Clements [Cle96b],
a afirmar que la AS promova un modelo que deba ser ms de integracin de
componentes pre-programados que de programacin.
dos textos fundamentales, el de la Banda de los Cuatro en 1995 [Gof95] y la serie POSA
desde 1996 [BMR+96]. El primero de ellos promueve una expansin de la
programacin orientada a objetos, mientras que el segundo desenvuelve un marco
ligeramente ms ligado a la AS. Este movimiento no ha hecho ms que expandirse
desde entonces. El originador de la idea de patrones fue Christopher Alexander, quien
incidentalmente fue arquitecto de edificios; Alexander desarroll en diversos estudios
de la dcada de 1970 temas de anlisis del sentido de los planos, las formas, la
edificacin y la construccin, en procura de un modelo constructivo y humano de
arquitectura, elaborada de forma que tenga en cuenta las necesidades de los
habitantes [Ale77]. El arquitecto (y puede copiarse aqu lo que deca Fred Brooks) debe
ser un agente del usuario.
11