Está en la página 1de 26

Tipos de arquitecturas

de software
La arquitectura de software es la
estructura de un sistema de software,
incluyendo sus componentes, sus
relaciones y sus principios de diseño.
La arquitectura de software es
importante porque determina cómo se
comportará el sistema y cómo se
puede desarrollar, implementar y
mantener.
Arquitectura de Software

Forma parte del


diseño del
sistema a partir
de los
Requerimientos
Definición Formal

Una arquitectura de software


se entiende como la estructura
de un sistema, que contiene
componentes, sus propiedades
visibles a otros componentes y
las relaciones entre ellos
Componentes de un Sistema

Un sistema complejo estará formado


por sub sistemas

La arquitectura del Software se


encarga de:
• Los sub sistemas que componen el sistema
• Las interfaces y las formas en que se
comunican entre ellos
Utilidad
Permite una comunicación entre los interesados en el
sistema

Permitirá tomar decisiones tempranas de diseño

Facilita el reúso de componentes


Arquitectura y Calidad
La arquitectura impacta en la forma en que
un sistema alcanza sus requerimientos de
calidad
• Las cualidades del producto forman parte
del diseño de la arquitectura
• La arquitectura, permite, pero no garantiza
que cualquier requisito de calidad se
alcance
Arquitectura y Funcionalidad
La funcionalidad está relacionada con los requisitos de
calidad

La funcionalidad indica que el sistema debe hacer

La arquitectura permite tener calidad en el sistema al


momento que implementa la funcionalidad
La Importancia de la Calidad

Los atributos
de calidad del • Interoperabilidad
• Disponibilidad
software • Seguridad
impactan en • Portabilidad
el diseño de • entre otros
la arquitectura
Impacto de los Interesados

Los requisitos de calidad que solicita que


solicita un cliente difícilmente se documentan

Los interesados impactan


Esto provoca:
en:
Entender las Toma de
Objetivos que Conflictos Negociación
restricciones decisiones
no se entre los en base a
reales del basados en
alcanzan interesados compromisos
sistema compromisos
Creación de una Arquitectura

Existen diversos métodos y guías para la definición


de una arquitectura que consideran los requisitos
funcionales y también los atributos de calidad.
Definición de Requerimientos

Creación de un modelo a partir de los


requerimientos que serán la base del diseño de
la arquitectura basado en atributos de calidad
Identificación de Requerimientos

Pueden
contener
restricciones
Como se
Corresponden
comporta el
a los
software, cómo
requerimientos
lo hace, no qué
URPS+
es lo que hace
La
identificación
se basa en
requerimientos
no
funcionales
Requerimientos No Funcionales

Facilidad de Uso Fiabilidad Rendimiento Soporte (Support). + . Seguridad,


(Usabilitu). Factores (Reliability). (Performance). Adaptabilidad, manejo de recursos
Humanos, ayuda del Frecuencia de fallos, Tiempo de facilidad de
sistema, capacidad de respuesta, mantenimiento,
documentación, recuperación de productividad, internacionalización,
calidad de las fallas disponibilidad facilidad de
interfaces modificación
Diseño de la Arquitectura

Una vez identificados los requerimientos


de la arquitectura y de las restricciones:
• Elegir la Arquitectura de Referencia
• Definir los componentes que formarán parte del
diseño
• Generar las vistas que representan el diseño de
la arquitectura
• Documentar el diseño de la arquitectura
Consideraciones
Elegir los estilos y patrones más apropiados que
permitan lograr la calidad esperada

Basarse en patrones o arquitecturas reconocidas

Considerar el tamaño de la aplicación objetivo


• Una pequeña puede basarse en un patrón
• Complejas pueden requerir una mezcla
Restricciones

Una restricción es una condición que no es negociable e


impacta en el diseño de la arquitectura

Pueden ser de negocio de desarrollo, de tiempo, costos,


etc.

Por ejemplo:
• El almacenamiento usará Oracle ya que es la Base de Datos
institucional
• Los encargados de soporte de la empresa manejan C#, por lo que será
el lenguaje a desarrollar
Tipos de arquitecturas de software

La arquitectura de La arquitectura de
software es la software es importante
estructura de un porque determina
sistema de software, cómo se comportará el
incluyendo sus sistema y cómo se
componentes, sus puede desarrollar,
relaciones y sus implementar y
principios de diseño. mantener.
tipos de arquitecturas de software
● Existen muchos tipos diferentes de arquitecturas de software, cada
uno con sus propias ventajas y desventajas. Los tipos de
arquitecturas de software más comunes son:

orientada a de
cliente-servidor
servicios (SOA): microservicios
hartista
Agencia carrillo adopciones

en capas
monolítica distribuida
alitas
● Arquitectura orientada a servicios (SOA): SOA es un enfoque de
arquitectura que se basa en la interacción entre servicios autónomos. Los
servicios son unidades de software que proporcionan una funcionalidad
específica.
● Arquitectura de microservicios: La arquitectura de microservicios es
una variante de SOA que se caracteriza por la descomposición del sistema
en un conjunto de servicios pequeños, autónomos e independientes.
● Arquitectura cliente-servidor: La arquitectura cliente-servidor es un
enfoque de arquitectura que divide el sistema en dos partes: un cliente y
un servidor. El cliente es la parte que interactúa con el usuario, mientras
que el servidor es la parte que proporciona los datos y la funcionalidad.
● Arquitectura monolítica: La arquitectura monolítica es un
enfoque de arquitectura en el que todos los componentes del
sistema se integran en una sola unidad.
● Arquitectura distribuida: La arquitectura distribuida es un
enfoque de arquitectura en el que los componentes del sistema se
encuentran en diferentes ubicaciones.
● Arquitectura en capas: La arquitectura en capas es un enfoque
de arquitectura en el que los componentes del sistema se
organizan en capas. Cada capa proporciona una funcionalidad
diferente.
Definición de los
tipos de
arquitecturas
SOA
● La arquitectura orientada a servicios (SOA) es un enfoque de arquitectura
que se basa en la interacción entre servicios autónomos. Los servicios son
unidades de software que proporcionan una funcionalidad específica.
● En una arquitectura SOA, los servicios se comunican entre sí mediante
mensajes. Los mensajes se envían a través de una red, como Internet.
● SOA ofrece una serie de ventajas, como:
● Flexibilidad: SOA permite que los servicios se puedan combinar y
recombinar para crear nuevas funcionalidades.
● Escalabilidad: SOA permite que los servicios se puedan escalar
horizontalmente para adaptarse a las necesidades cambiantes del sistema.
● Reusabilidad: Los servicios se pueden reutilizar en diferentes sistemas.
Arquitectura de microservicios
● La arquitectura de microservicios es una variante de SOA que se caracteriza por la
descomposición del sistema en un conjunto de servicios pequeños, autónomos e
independientes.
● En una arquitectura de microservicios, cada microservicio proporciona una
funcionalidad específica. Los microservicios se comunican entre sí mediante una
API REST.
● La arquitectura de microservicios ofrece una serie de ventajas, como:
● Flexibilidad: La arquitectura de microservicios permite que los microservicios se
puedan desarrollar, implementar y escalar de forma independiente.
● Escalabilidad: La arquitectura de microservicios permite que los microservicios se
puedan escalar horizontalmente para adaptarse a las necesidades cambiantes del
sistema.
● Reusabilidad: Los microservicios se pueden reutilizar en diferentes sistemas.
Arquitectura cliente-servidor
● La arquitectura cliente-servidor es un enfoque de arquitectura que divide el
sistema en dos partes: un cliente y un servidor. El cliente es la parte que
interactúa con el usuario, mientras que el servidor es la parte que proporciona
los datos y la funcionalidad.
● En una arquitectura cliente-servidor, el cliente se ejecuta en el dispositivo del
usuario, mientras que el servidor se ejecuta en un servidor remoto.
● La arquitectura cliente-servidor ofrece una serie de ventajas, como:
● Flexibilidad: La arquitectura cliente-servidor permite que el cliente y el
servidor se desarrollen y mantengan de forma independiente.
● Escalabilidad: La arquitectura cliente-servidor permite que el servidor se
pueda escalar horizontalmente para adaptarse a las necesidades cambiantes
del sistema.
Arquitectura monolítica
● La arquitectura monolítica es un enfoque de arquitectura en el que
todos los componentes del sistema se integran en una sola unidad.
● En una arquitectura monolítica, todos los componentes del
sistema se ejecutan en el mismo proceso.
● La arquitectura monolítica ofrece una serie de ventajas, como:
● Sencillez: La arquitectura monolítica es relativamente sencilla de
implementar y mantener.
● Rendimiento: La arquitectura monolítica puede proporcionar un
mejor rendimiento que las arquitecturas distribuidas.
Arquitectura distribuida
● La arquitectura distribuida es un enfoque de arquitectura en el que
los componentes del sistema se encuentran en diferentes
ubicaciones.
● En una arquitectura distribuida, los componentes del sistema se
comunican entre sí

También podría gustarte