Está en la página 1de 3

Arquitectura de software

En los inicios de la informtica, la programacin se consideraba un arte y se


desarrollaba como tal, debido a la dificultad que entraaba para la mayora de las
personas, pero con el tiempo se han ido descubriendo y desarrollando formas y guas
generales, con base a las cuales se puedan resolver los problemas. A estas, se les ha
denominado Arquitectura de Software, porque, a semejanza de los planos de un edificio
o construccin, estas indican la estructura, funcionamiento e interaccin entre las partes
del software. En el libro "An introduction to Software Architecture", David Garlan y
Mary Shaw definen que la Arquitectura es un nivel de diseo que hace foco en aspectos
"ms all de los algoritmos y estructuras de datos de la computacin; el diseo y
especificacin de la estructura global del sistema es un nuevo tipo de problema".

ndice

1 Arquitectura
2 Breve resea histrica
3 Modelos o vistas
4 Arquitecturas ms comunes
5 Bibliografa
6 Vase tambin
7 Enlaces externos

Arquitectura

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.

La arquitectura de software define, de manera abstracta, los componentes que


llevan a cabo alguna tarea de computacin, sus interfaces y la comunicacin
entre ellos. Toda arquitectura debe ser implementable en una arquitectura fsica,
que consiste simplemente en determinar qu computadora tendr asignada cada
tarea.

La arquitectura de software, tiene que ver con el diseo y la implementacin de


estructuras de software de alto nivel. Es el resultado de ensamblar un cierto nmero de
elementos arquitectnicos de forma adecuada para satisfacer la mayor funcionalidad y
requerimientos de desempeo de un sistema, as como requerimientos no funcionales,
como la confiabilidad, escalabilidad, portabilidad, y disponibilidad.
Kruchten, Philippe

Comprende a los componentes del software, sus propiedades externas visibles y las
relaciones entre ellos.

Estructura: descripcin de subsistemas como composicin de componentes.


Comportamiento: descripcin de la comunicacin entre componentes.
Cualquier otra informacin que el arquitecto considere relevante:
Protocolos de comunicacin, sincronizacin y acceso a datos.
Distribucin fsica.
Puntos de variabilidad y extensin.
Aspectos de seguridad.

Breve resea histrica


En los aos 1960 ya se acercaba el concepto de arquitectura de software en los crculos
de investigacin (por ejemplo, por Edsger 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.

Modelos o vistas
Toda arquitectura de software debe describir diversos aspectos del software.
Generalmente, cada uno de estos aspectos se describe de una manera ms comprensible
si se utilizan distintos modelos o vistas. Es importante destacar que cada uno de ellos
constituye una descripcin parcial de una misma arquitectura y es deseable que exista
cierto solapamiento entre ellos. Esto es as porque todas las vistas deben ser coherentes
entre s, evidente dado que describen la misma cosa.
Cada paradigma de desarrollo exige diferente nmero y tipo de vistas o modelos para
describir una arquitectura. No obstante, existen al menos tres vistas absolutamente
fundamentales en cualquier arquitectura:

La visin esttica: describe qu componentes tiene la arquitectura.


La visin funcional: describe qu hace cada componente.

La visin dinmica: describe cmo se comportan los componentes a lo largo del


tiempo y como interactan entre s.

Las vistas o modelos de una arquitectura de software pueden expresarse mediante uno o
varios lenguajes. El ms obvio es el lenguaje natural, pero existen otros lenguajes tales
como los diagramas de estado, los diagramas de flujo de datos, etc. Estos lenguajes son
apropiados nicamente para un modelo o vista. Afortunadamente existe cierto consenso
en adoptar UML (Unified Modeling Language, lenguaje unificado de modelado) como
lenguaje nico para todos los modelos o vistas. Sin embargo, un lenguaje generalista
corre el peligro de no ser capaz de describir determinadas restricciones de un sistema de
informacin (o expresarlas de manera incomprensible).

Arquitecturas ms comunes
Generalmente, no es necesario inventar una nueva arquitectura de software para cada
sistema de informacin. Lo habitual es adoptar una arquitectura conocida en funcin de
sus ventajas e inconvenientes para cada caso en concreto. As, las arquitecturas ms
universales son:

Descomposicion Modular. 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). Una capa solamente tiene relacin con la siguiente.

Otras arquitecturas afines menos conocidas son:

Modelo Vista Controlador.


En pipeline.
Entre pares.
En pizarra.
Orientada a servicios.
Dirigida por eventos.
Mquinas virtuales

http://babel.ls.fi.upm.es/~fred/sbc/arquitecturas_sw.pdf
http://es.wikipedia.org/wiki/Arquitectura_de_software

También podría gustarte