La arquitectura del software se trata de abstracciones, de descomposicin y composicin, de estilos y esttica.
Tambin tiene relacin con el diseo y la implementacin de la
estructura de alto nivel del software.
Los diseadores construyen la arquitectura usando varios
elementos arquitectnicos elegidos apropiadamente.
Estos elementos satisfacen la mayor parte de los requisitos de
funcionalidad y performance del sistema, as como tambin otros requisitos no funcionales tales como conabilidad, escalabilidad, portabilidad y disponibilidad del sistema.
A continuacin en la figura siguiente se presentan las 4
+ 1 vistas que se usan para el diseo y la implementacin de la estructura de alto nivel de software
1.1.1 La vista lgica
Es aquella que trata de clases y subsistemas, tiene las siguientes particularidades:
soporta los requerimientos funcionales (estos son
asignados por el usuario final),
identifica mecanismos y disea elementos comunes atraves
del sistema;
utiliza los diagramas de clases y la notacin de Booch; adems de utilizar el estilo arquitectnico orientado a objetos
1.1.1 La vista lgica
Nota: La notacin para la vista lgica se deriva de la notacin de Booch.
Esta se simplifica considerablemente de tal modo de
tener en cuenta solamente los items relevantes para la arquitectura.
1.1.2 La vista de procesos
La arquitectura de procesos toma en cuenta algunos requisitos no funcionales tales como la performance y la disponibilidad.
Se enfoca en asuntos de concurrencia y distribucin,
integridad del sistema, de tolerancia a fallas.
La vista de procesos tambin especifica en cual hilo de
control se ejecuta efectivamente una operacin de una clase identificada en la vista lgica.
1.1.2 La vista de procesos
La arquitectura de procesos se describe en varios niveles de abstraccin, donde cada nivel se refiere a distintos intereses.
El nivel ms alto la arquitectura de procesos puede
verse como un conjunto de redes lgicas de programas comunicantes (llamados procesos) ejecutndose en forma independiente, y distribuidos a lo largo de un conjunto de recursos de hardware conectados mediante un bus, una LAN o WAN.
1.1.2 La vista de procesos
Un proceso es una agrupacin de tareas que forman una unidad ejecutable.
Los procesos representan el nivel al que la arquitectura
de procesos puede ser controlada tcticamente (comenzar, recuperar, reconfigurar, y detener).
Adems, los procesos pueden replicarse para
aumentar la distribucin de la carga de procesamiento, o para mejorar la disponibilidad.
1.1.2 La vista de procesos
Notacin para el diagrama de procesos
1.1.3 Vista de Desarrollo
La vista de desarrollo se centra en la organizacin real de los mdulos de software en el ambiente de desarrollo del software.
El software se empaqueta en partes pequeas:
bibliotecas de programas o subsistemas, que pueden ser desarrollados por uno o un grupo pequeo de desarrolladores.
Los subsistemas se organizan en una jerarqua de
capas, cada una de las cuales brinda una interfaz estrecha y bien definida hacia las capas superiores.
Diagrama parcial De los procesos
Notacin para el diagrama de desarrollo
1.1.4 Arquitectura Fsica
Mapeando el software al hardware
La arquitectura fsica toma en cuenta primeramente los
requisitos no funcionales del sistema tales como la disponibilidad, confiabilidad (tolerancia a fallas), performance (throughput), y escalabilidad.
El software ejecuta sobre una red de computadores o nodos
de procesamiento (o tan solo nodos).
Por lo tanto, el mapeo del software en los nodos requiere
ser altamente flexible y tener un impacto mnimo sobre el cdigo fuente.