ARQUITECTURA DE SOFTWARE
En los inicios de
la informática, la programación se consideraba un arte y se
desarrollaba como tal, debido a la dificultad que entrañaba para la mayoría de
las personas, pero con el tiempo se han ido descubriendo y desarrollando formas
y guías 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 construcción, estas indican la estructura,
funcionamiento e interacción entre las partes del software. En el libro “introduction
to Software Architecture", David Garlan y Mary Shaw definen que la
Arquitectura es un nivel de diseño que hace foco en aspectos "más allá de
los algoritmos y estructuras de datos de la computación; el diseño y
especificación de la estructura global del sistema es un nuevo tipo de
problema.
ARQUITECTURA
La Arquitectura
del Software es el diseño de más alto nivel de la estructura de un sistema.
Una Arquitectura
de Software, también denominada Arquitectura lógica, consiste en
un conjunto de patrones y abstracciones coherentes que proporcionan el marco
Una arquitectura
de software se selecciona y diseña con base en objetivos y restricciones. Los
objetivos son aquellos prefijados para el sistema de información, pero no
solamente los de tipo funcional, también otros objetivos como la
mantenibilidad, auditabilidad, flexibilidad e interacción con otros sistemas de
información. Las restricciones son aquellas limitaciones derivadas de las
tecnologías disponibles para implementar sistemas de información. Unas
arquitecturas son más recomendables de implementar con ciertas tecnologías
mientras que otras tecnologías 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 computación, sus interfaces y la comunicación entre ellos. Toda
arquitectura debe ser implementable en una arquitectura física, que
consiste simplemente en determinar qué computadora tendrá asignada
cada tarea.
TIPOS DE ARQUITECTURAS DE SOFTWARE
Generalmente, no
es necesario inventar una nueva arquitectura de software para cada sistema de
información. Lo habitual es adoptar una arquitectura conocida en función de sus
ventajas e inconvenientes para cada caso en concreto. Así, las arquitecturas
más universales son:
Monolítica. Donde
el software se estructura en grupos funcionales muy acoplados.
Cliente-servidor.
Donde el software reparte su carga de cómputo en dos partes independientes pero
sin reparto claro de funciones.
Arquitectura de
tres niveles. Especialización 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 presentación (interfaz de usuario), otra para el cálculo (donde se
encuentra modelado el negocio) y otra para el almacenamiento (persistencia).
Una capa solamente tiene relación con la siguiente.
Otras
arquitecturas afines menos conocidas son:
En pipeline.
Entre pares.
En pizarra.
Orientada a
servicios.
Dirigida por
eventos.
Máquinas virtuales
MONOLITICA
No hay comentarios:
Publicar un comentario