Está en la página 1de 8

Una arquitectura software consiste en un conjunto de patrones y abstracciones

coherentes que proporcionan el marco de referencia necesario para guiar la construccin


del software para un sistema de informacin]
La Arquitectura del Software es el diseo de ms alto nivel de la estructura de un sistema.

Una Arquitectura de Software, tambin denominada Arquitectura lgica, consiste


en un conjunto de patrones y abstracciones coherentes que proporcionan el marco

Una arquitectura de software se selecciona y disea con base en objetivos


(requerimientos) y restricciones. Los objetivos son aquellos prefijados para el sistema
de informacin, pero no solamente los de tipo funcional, tambin otros objetivos como
la mantenibilidad, auditabilidad, flexibilidad e interaccin con otros sistemas de
informacin. Las restricciones son aquellas limitaciones derivadas de las tecnologas
disponibles para implementar sistemas de informacin. Unas arquitecturas son ms
recomendables de implementar con ciertas tecnologas mientras que otras
tecnologas no son aptas para determinadas arquitecturas. Por ejemplo, no es viable
emplear una arquitectura de software de tres capas para implementar sistemas en
tiempo real.

Breve resea histrica


En los aos 1960 ya se acercaba el concepto de arquitectura de software en los crculos
de investigacin (por ejemplo, porEdsger Dijkstra). No obstante, toma popularidad en
los aos 1990 tras reconocerse la denominada crisis del software y como tema de inters
de la incipiente disciplina de la ingeniera del software

Breve Historia de la Arquitectura del software 1960 la historia de la arquitectura del


software remonta a la poca de los aos 60 desde ese entonces se empez a utilizar el
trmino cuando Edsger Dijkstra de la Universidad Tecnolgica de Eindhoven en Holanda
en 1968 propuso que se establezca una estructura correcta de los sistemas de software
antes de que se inicie la programacin como tal, escribiendo cdigo de cualquier manera.

En 1969 un ao despus de la sesin en que se fundara la ingeniera de software, P. I.


Sharp formul que la ingeniera era diferente a la arquitectura. En 1969 Fred Brooks Jr y
Ken Iverson llamaban arquitectura a la estructura conceptual de un sistema en la
perspectiva del programador
3. Breve Historia de la Arquitectura del software En 1972, Parnas public un ensayo en el
que discuta la forma en 1972 que la modularidad en el diseo de sistemas poda mejorar
la flexibilidad y el control conceptual del sistema, introduciendo el concepto de
Ocultamiento de informacin, La herencia de este concepto en la ingeniera y la
arquitectura ulterior es inmensa, y se confunde estrechamente con la idea de abstraccin.
En 1975, Brooks, diseador del sistema operativo OS/360 y Premio 1975 Turing 2000,
utilizaba el concepto de arquitectura del sistema para designar la especificacin completa
y detallada de la interfaz de usuario. En la dcada de 1980, los mtodos de desarrollo
estructurado 1980 demostraron no escalar suficientemente y fueron dejando el lugar a un
nuevo paradigma, el de la programacin orientada a objetos.
4. Breve Historia de la Arquitectura del software La dcada de 1990, fue la dcada de la
arquitectura de software, dando cumplimiento a las profecas de Perry y Wolf, fue sin
duda la dcada de 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). 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 (Clements Enero de 1996.), a afirmar que la AS promova
un modelo que deba ser ms de integracin de componentes pre-programados que de
programacin.
6. Conceptos fundamentales (inicios y fundamentos )
Estilos: Un estilo, es un concepto descriptivo que define una forma de articulacin u
organizacin arquitectnica. El conjunto de los estilos cataloga las formas bsicas
posibles de estructuras de software, siendo este, un aspecto fundamental de la AS (Wolfy
Perry).
El modelado OO y UML no lo cubren satisfactoriamente.
Su descripcin, se puede formular en lenguaje natural o en diagramas

Se recomienda hacerlo en un lenguaje de descripcin arquitectnica (ADLs) o en


lenguajes formales de especificacin. Ejemplos: arquitecturas basadas en flujo de datos,
las peer-to-peer, las de invocacin implcita, las jerrquicas, las centradas en datos o las
de intrprete- mquina virtual.
Lenguajes de descripcin arquitectnica (ADLs) Los ADLs permiten modelar una
arquitectura mucho antes que se lleve a cabo la programacin de las aplicaciones que la
componen, analizar su adecuacin, determinar sus puntos crticos y eventualmente
simular su comportamiento. Aparecieron a principios de los 90s
Lo integran un conjunto de propuestas, ampliamente conocidas en el mbito acadmico
Se fundamentan en la incapacidad de expresar conectores en UML
Alrededor de 20 ADLs han sido reconocidos Son poco utilizados en la industria del
software Ejemplos: AADL, Acme, Rapide, LILEANA, etc.
Frameworks y Vistas
Un framework permite ordenar las diferentes perspectivas de una arquitectura en
trminos de vistas.
Una vista es un subconjunto resultante de practicar una seleccin o abstraccin sobre
una realidad, desde un punto de vista determinado.
1Frameworks y Vistas La IEEE Std 1471-2000 procura establecer una base comn para la
descripcin de arquitecturas de software, e implementa para ello tres trminos bsicos:
Arquitectura. Es la organizacin fundamental de un sistema, encarnada en sus
componentes, las relaciones entre ellos y con su entorno, y los principios que gobiernan
su diseo y evolucin. Vista. Es la representacin concreta de un sistema en particular
desde una perspectiva unitaria. Punto de vista. Define un patrn o plantilla (template)
para representar un conjunto de incumbencias (concerns) relativas a una arquitectura.
Ejemplos: punto de vista estructural, punto de vista conductual, punto de vista de
interconexin fsica. El punto de vista estructural ha sido motivado por el trabajo de los
ADLs
14. Procesos y metodologas

Proceso. Hace alusin a los marcos de trabajo las cuales son representados por vistas.
Por ejemplo: las vistas estticas se corresponden con las perspectivas particulares de los
diferentes participantes y las vistas dinmicas tienen que ver con etapas del proceso, el
ciclo de vida o metodologa caracterizadas en requerimientos, anlisis, diseo,
implementacin e integracin.
Metodologa. Hace referencia a un framework que es usado para estructurar, planear y
controlar el proceso de desarrollo en sistemas de informacin: RUP, RAD, RSD, ARIS,
PERA, CIMOSA, GRAI, GERAM, CMM. En el campo de a AS la dominante es el Modelo
de Madurez de la Capacidad (CMM).
18. Abstraccin Una abstraccin denota las caractersticas esenciales de un objeto que lo
distingue de otras clases de objeto y provee de este modo delimitaciones conceptuales
bien definidas, relativas a la perspectiva del observador. Grady Booch, 1991 La
abstraccin consiste en extraer las propiedades esenciales, o identificar los aspectos
importantes, o examinar selectivamente ciertos aspectos de un problema, posponiendo o
ignorando los detalles menos sustanciales, distractivos o irrelevantes. IEEE, Rumbaugh,
Shaw, et. En un estilo, menos es ms: Si una decisin se pospone hasta el momento de
tratar las cosas a bajo nivel, entonces, sta no es una decisin arquitectnica Bass,
Clemennts, Kazman, 1998
19. Escenarios Son tcnicas que se implementan en la elicitacin de los requerimientos,
particularmente en relacin a los operadores de sistemas. Los escenarios, tambin son
utilizados como mtodos para comparar alternativas de diseo ya que permiten realizar
una descripcin anticipada del sistema y tpicamente se expresan en una frase
24. Arquitecturas ms comunes
Monoltica. Donde el software se estructura en grupos funcionales muy acoplados
. Cliente-servidor. Donde el software reparte su carga de cmputo en dos partes
independientes pero sin reparto claro de funciones.
Arquitectura de tres niveles. Especializacin de la arquitectura cliente- servidor donde la
carga se divide en tres partes (o capas) con un reparto claro de funciones: una capa
para la presentacin (interfaz de usuario), otra para el clculo (donde se encuentra
modelado el negocio) y otra para el almacenamiento (persistencia).

25. Arquitecturas mas comunes desde otra perspectiva:


Descomposicin Modular
Arquitecturas de Dominio Especfico Diseo Software Arquitectura Multiprocesador
Diseo Software Arquitectura Cliente Servidor Diseo Software Distribuido Diseo
Software Tiempo Real
26. Modalidades y tendencias
Corrientes de la AS propuestas por Carlos Billy Reynoso (2004): 1.Arquitectura como
etapa de ingeniera y diseo orientada a objetos. Esta perspectiva concierne a decisiones
sobre organizacin, seleccin de elementos estructurales, comportamiento, composicin y
estilo arquitectnicos susceptibles de ser descritas a travs de las cinco vistas clsicas del
modelo 4+1 de Kruchten (UML y Rational). Rumbaugh, Jacobson, Book, Larman,
Kruchten, entre otros..
2.Arquitectura estructural. Basada en un modelo esttico de estilos, ADLs y vistas. La
representan los acadmicos de la Universidad Carnegie Mellon de Pittsbugh: Shaw,
Clements, Garlan, Allen, Abowd, Ockerbloom. En ella se reconocen tres modalidades en
cuanto a formalizacin: Descripcin verbales o diagramas de caja (los ms informales)
Los que se sirven de ADLs (intermedios), y Los que utilizan lenguajes formales de
especificacin como CHAM y Z (los ms exigentes)
.Arquitectura basada en patrones. No est rgidamente vinculada con el modelado UML,
ni a las metodologas de CMM. El diseo consiste en identificar y articular patrones
preexistentes, que se definen en forma parecida a los estilos de arquitectura
. Arquitectura procesual. Intenta establecer modelos de ciclo de vida y tcnicas de
elicitacin de requerimientos, brainstorming, diseo, anlisis, seleccin de alternativas,
validacin, comparacin, estimacin de calidad y justificacin econmica especficas para
la arquitectura de software. La documentacin se encuentra en SEI, pero no se mezcla
con CMM.
.Arquitectura basada en escenarios. Es la corriente ms nueva. Se trata de un movimiento
predominantemente europeo, con centro en Holanda. Recupera el nexo de la AS con los
requerimientos y la funcionalidad del sistema, el cual es, ocasionalmente borroso en la
arquitectura estructural clsica. En esta corriente suele utilizarse diagramas de casos de

uso UML como herramienta informal u ocasional, dado que los casos de uso son uno de
los escenarios posibles. Los casos de uso no estn orientados a objeto.
Otras menos populares son: Gentica), Arquitectura centrada en la accin (inteligencia
artificial heideggeriana), Arquitectura epistemolgicamente reflexiva, etc. Y del lado
opuesto: la anti-arquitectura
Diferencias entre arquitectura y diseo La arquitectura es el primer paso en la produccin
de un diseo de software (Shaw y Garlan,1996), en donde los pasos que la distinguen
son:
1. Arquitectura. Asocia los requerimientos con los componentes del sistema que habrn
de implementarla. Estilos complejos a partir de estilos simples, es decir, sistemas a partir
de subsistemas.
2.Diseo de cdigo. Comprende algoritmos y estructuras de datos; los componentes son
primitivas de los lenguajes de programacin (nmeros, caracteres, punteros, etc.).
3.Diseo ejecutable. Remite el diseo a un nivel de detalle ms bajo (asignacin de
memoria, formato de datos, etc.). La arquitectura concierne a un nivel de abstraccin mas
elevado; se ocupa de componentes y no de procedimientos; de las interacciones de esos
componentes y no de las interfaces; de las restricciones a ejercer sobre los componentes
y de las interacciones y no de los algoritmos, los procedimientos y los tipos. (Dewayne
Perry, 1997)
32. Diferencias entre arquitectura y diseo Taylor Medvidovic (2000). Seala que la
literatura mantiene un estado ambiguo al existir diferentes interpretaciones.
1) Arquitectura y diseo son lo mismo
2) La AS se encuentra en un nivel de abstraccin por encima del diseo
3 )La AS es otro paso en el proceso de software 4)La AS es algo nuevo y en alguna
medida diferente al diseo
Fundamentos de la arquitectura del software La Arquitectura de Software
es la organizacin fundamental de un sistema encarnada en sus componentes, las
relaciones entre ellos y el ambiente y los principios que orientan su diseo y evolucin

Repositorios de la Arquitectura de Software Existen unos cuantos repositorios de


informacin arquitectnica, cuyas direcciones son ms o menos permanentes. El ms
importante hoy en da parece ser el del Software Engineering Institute en la Universidad
Carnegie Mellon de Pittsburgh, Pennsylvania (http://www.sei.cmu.edu/ata/ata_init.html) El
sitio del SEI incluye abundante literatura acadmica
Relevancia de la Arquitectura de Software
Aunque todava no se ha constituido un repositorio uniformizado de estudios de casos en
base al cual se pueda extraer una conclusin responsable, la AS ha resultado
instrumental en un nmero respetable de escenarios reduciendo costos, evitando errores,
encontrando fallas, implementando sistemas de misin crtica. Cada uno de los
documentos que describen lenguajes de descripcin arquitectnica, por ejemplo, subraya
su utilizacin exitosa en proyectos de gran envergadura requeridos por organizaciones de
gobierno o por grandes empresas.
Definiciones de estilos Estilo tambin se utiliza en la informtica: las hojas de estilo en
cascada (Cascading Style Sheets, CSS segn sus siglas en ingls) componen un
lenguaje que se emplea para estipular cmo se presentar un documento que ha sido
desarrollado en XML, HTML o XHTML. Es
44. Los estilos arquitectnicos :
Es la clasificacin arquitectnica en los trminos de forma, tcnicas,materiales, perodo,
regin, etc.Surgen del estudio de la evolucin y la historia de la arquitectura. El estilo
arquitectnico es una manera de clasificar la arquitectura que da nfasis a las
caractersticasdel diseo, dando lugar a una terminologa Es un estilo bastante sencillo.
No lleva molduras ( detalles en relieve ) ni detalles recargados, es de lneas rectas y
simples.La decoracin transmite una sensacin de informalidad y juventud. Es simple y
funcional, se caracteriza por crear espacios amplios y luminosos. Se puede optar por
colores claros en paredes y muebles. Es un estilo muy prctico, los muebles son de lneas
puras y detalles discretos.Un mobiliario apropiado sera: Sillas. De madera laqueada, sola
o con base de acero. Podramos usar, asimismo, sillas en plstico decolores, con tapicera
tambin colorida y diseos modernos.Mesas. Las mesas pueden ser de plstico, enchape
melamnico o madera de acabado laqueado;preferentemente redondas, pues son menos
rgidas.Mobiliario de apoyo. Como en los estilos anteriores, slo para colocar vajilla y

mantelera. Pueden sersencillas, en madera o enchape melamnico, con puertas y


divisiones para guardar utensilios.
47. Los patrones arquitectnicos Por su parte, se han materializado con referencia a
lenguajes y paradigmas tambin especficos de desarrollo, mientras que ningn estilo
presupone o establece preceptivas al respecto. Si hay algn cdigo en las inmediaciones
de un estilo, ser cdigo del lenguaje de descripcin arquitectnica o del lenguaje de
modelado; de ninguna manera ser cdigo de lenguaje de programacin Los patrones de
arquitectura estn claramente dentro de la disciplina arquitectnica, solapndose con los
estilos
48. Patrones Arquitectnico Segn Buschmann los patrones de arquitectura se pueden
ver como la descripcin de un problema en particular y recurrente de diseo, que aparece
en contextos de diseo arquitectnicos especficos, y representa un esquema genrico
demostrado con xito para su solucin. Buschmann, et al., 1996). Los patrones
arquitectnicos se definen sobre aspectos fundamentales de la estructura del sistema
software, donde se especifican un conjunto de subsistemas con sus responsabilidades y
una serie de recomendaciones para organizar los distintos componentes.
49. Patrn de Diseo Un patrn de diseo provee un esquema para refinar los
subsistemas o componentes de un sistema de software, o las relaciones entre ellos.
Describe la estructura comnmente recurrente de los componentes en comunicacin, que
resuelve un problema general de diseo en un contexto particular