Arquitectura de Software
La arquitectura de software se basa en los siguientes espectos:
-Uso de componentes.
-La relación entre ellos.
-El ambiente en el que van a trabajar.
También se contemplan los principios o reglas que normarán su diseño y evolución
Una definición de parte de ingeniería de software seria la siguiente:
-Una arquitectura de software es la estructura de ·estructuras” de un sistema, la cual abarca componentes de software, propiedades externas visibles a estos componentes y sus relaciones. (Es lo más alto que se puede tomar en cuenta en el diseño)
¿Por qué es importante la arquitectura?
-R1: Porque las representaciones de la arquitectura de software facilitan la comunicación entre todas las partes interesadas, en el desarrollo de un sistema basado en computadora.
-R2: Destaca decisiones tempranas de diseño que tendrían un profundo impacto en todo el trabajo de ingeniería
-R3: Porque constituye un modelo relativamente pequeño e intelectualmente comprensible de cómo está estructurado el sistema y de cómo trabajan junto con los componentes.
Aplicaciones monolíticas
Son aquellas que conocemos como “aplicaciones de estación”, en otras palabras, interfaces gráficas de usuario –GUI’s-
Son servicios de presentación, negocios y persistencia de datos, en la misma máquina. No hay concurrencia de usuarios.
Arquitectura Cliente-Servidor
Una de sus características es que cuenta con clientes bastantes pesados, aunque esto no es un estándar, dependiendo del lenguaje.
Existen conexiones dedicadas a Bases de Datos mediante esta arquitectura.
Generalmente los protocolos de comunicación son pesados.
Existe ejecución remota de SQL´s.
Existe alta administración y el rendimiento es bajo.
El tráfico en la red puede estar saturado o ser muy alto
Arquitectura Cliente-Servidor Mejorada
Se aplica la lógica de negocios en Bases de Datos.
Existen clientes pesados, aunque tampoco es un estándar.
Las conexiones a las bases de datos se convierten en conexiones dedicadas.
El rendimiento en este tipo de arquitectura es mucho mejor.
Existe una alta administración, baja escalabilidad flexibilidad y portabilidad.
Arquitectura de tres niveles
Reutilización de la lógica de negocios para diferentes clientes o sistemas, son aplicables en este enfoque, se mejora la escalabilidad y la flexibilidad de las aplicaciones
Existe una completa independencia de la base de datos.
Arquitectura vs Diseño
Compone un conjunto de decisiones estratégicas de diseño, lineamientos, reglas y patrones que restringen el diseño y la implementación de un software.
