Está en la página 1de 20

Introducción a las

arquitecturas de
desarrollo de software
comercial.
2

Definicion:

La arquitectura de software de un
sistema es el conjunto de estructuras
necesarias para razonar sobre el
sistema. Comprende elementos de
software, relaciones entre ellos, y
propiedades de ambos. (Bass,
Clements y Kazman, 2012).
De esta definición, el término “elementos de software” es vago,
pero una manera de entenderlo es considerar de forma individual las
partes del sistema que se deben desarrollar, las cuales se conocen
como módulos. Por otro lado, las propiedades de estos elementos se
refieren a las interfaces: los contratos que exhiben estos módulos y
que permiten a otros módulos establecer dependencias o, dicho de
otro modo, conectarse con ellos. El establecimiento de interfaces
bien definidas entre elementos es un aspecto fundamental en la
integración y la prueba exitosa de las partes de un sistema
desarrolladas por separado, por ello juegan un rol esencial en la
arquitectura.

3

VISIÓN GENERAL DEL
DESARROLLO
DE SISTEMAS DE SOFTWARE
Expresado de manera simplificada, el desarrollo de un sistema
de software puede verse como una transformación hacia la
solución técnica de determinada problemática u oportunidad
con el fin de resolverla Este cambio enfrenta a menudo
restricciones en relación con el tiempo, el costo y la calidad.

4
5
6
7
Modelos de Arquitectura
de Software
• Modelo dinámico. Aquí, el
objetivo es describir el
comportamiento del sistema a
través del tiempo, y sus
componentes son: modelo de
máquina de estados, vista de
actividades, vista de Modelos de Modelo
interacción. proceso dinamico

• Modelo estructural. Sirve


para describir los distintos
tipos y relaciones estáticas que
existen entre los distintos
objetos de un sistema. En él Modelo
encontramos: diagramas de
clases, de casos de uso, de
estructural
secuencia…

• Modelos de proceso. Pone el


foco en los pasos involucrados
en el desarrollo del software,
de manera que la arquitectura
es el resultado de seguir un
Patrones comunes en la arquitectura de
software
1. Programación por capas.
Puede utilizarse para estructurar programas que pueden descomponerse en
subtareas. Cada una de ellas proporciona servicios a la capa siguiente y
podemos encontrar las 4 comunes: capa de presentación, de aplicación, de
lógica de negocios y de acceso a datos.

2. Arquitectura de microservicios.
Basa la construcción de las aplicaciones en un conjunto de pequeños
servicios que se ejecutan en su propio proceso y se comunican con
mecanismos ligeros. Por ejemplo: una API con recursos HTTP. Cada uno de
estos servicios independientes se encargará de implementar una
funcionalidad.
8
3. Patrón cliente-servidor.
El primero, se encarga de proporcionar servicios a múltiples componentes
del cliente, mientras que este solicita servicios del servidor. Se trata de una
especie de ‘escucha’ constante de las solicitudes del cliente.

4. Patrón maestro-esclavo.
Suele utilizarse para replicaciones en la base de datos (la maestra es la fuente
autorizada y las esclavas se sincronizan con ella). Estas dos partes
distribuyen el trabajo y calculan el resultado final de toda la actividad que
realizan dichos esclavos. Este patrón es una arquitectura fundamental que los
desarrolladores utilizan cuando tienen dos o más procesos que necesitan
ejecutarse de forma simultánea

9
5. Filtro de tubería.
Se utiliza, sobre todo, para la estructura de sistemas que producen y procesan
una secuencia de datos. En la ingeniería de software, el filtro de tubería se
aplica cuando los datos de entrada deben transformarse en datos de salida a
través de componentes para el cálculo. Los componentes reciben el nombre
de ‘filtros’ conectados entre sí por ‘tuberías’ que transmiten los datos.

6. Patrón intermediario.
Es usado para estructurar sistemas distribuidos con componentes
desacoplados (pueden interactuar entre sí). El responsable de coordinar la
comunicación entre los componentes es el intermediario. Podemos
encontrarlo en software de Message Broker, como la plataforma de software
Apache ActiveMQ, por ejemplo.

10
7. Modelo-vista-controlador.
Es el conocido MVC, que divide una aplicación interactiva en tres partes
(modelo, vista, controlador) encargadas de contener la funcionalidad, mostrar
la información al usuario y manejar su entrada. Este patrón de arquitectura de
software separa los datos y la lógica de negocio de una aplicación de su
representación.

8. Patrón de intérprete.
Es usado para el diseño de un componente que interpreta programas escritos
en un lenguaje y define cómo hacer la evaluación de las líneas de programas.
“La idea básica es tener una clase para cada símbolo del idioma”.

11
9. Patrón de pizarra.
Sus principales elementos son: la pizarra (memoria global estructurada),
fuente de conocimiento (módulos especializados) y componente de control
(encargado de seleccionar y ejecutar los módulos). Suele utilizarse para el
reconocimiento de voz, identificaciones, seguimientos, etc.

10. Patrón de igual a igual.


Todos los elementos individuales se les denomina ‘pares’, que pueden
funcionar tanto como ‘cliente’, como ‘servidor’. Además, pueden ir
cambiando su rol con el paso del tiempo.

12
Introducción a SOA
“Service Oriented Architecture”
Arquitectura Orientada a Servicios

Definición:
Una arquitectura orientada a servicios (SOA)
es una arquitectura software basada en los
conceptos clave de front-end de aplicaciones,
servicio, repositorio de servicios, y bus de
servicios.

14
15

Concepto
Aplicacion
como servicio.
16

Elementos que
componen SOA

- Application
Frontend
- Servicio
- Repositorio de
servicios
- Bus de servicios
- Si bien el frontend de la aplicación es el propietario del proceso
del negocio, los servicios proporcionan la funcionalidad del
negocio que los frontends de las aplicaciones y otros servicios
pueden utilizar.
- Un servicio consiste en: (a) una implementación que
proporciona lógica del negocio y datos, (b) un contrato del
servicio que especifica la funcionalidad, uso, y restricciones
para el cliente (que puede ser un frontend de una aplicación u
otro servicio), y (c) una interfaz del servicio que físicamente
expone la funcionalidad.

17
- El repositorio de servicios almacena los contratos del servicio
de los servicios individuales de una SOA, y el bus de servicios
interconecta los front-ends de las aplicaciones y los servicios.
Un servicio está formado por un contrato, uno o más interfaces y
una implementación. Los bloques de construcción de SOA son los
servicios, los cuales están débilmente acoplados para favorecer su
reutilización y son altamente interoperables a través de sus
contratos. Los servicios en sí mismos son "ajenos" a las
interacciones requeridas a nivel de transporte para hacer posible la
comunicación entre el suministrador del servicio y el consumidor
del servicio.

18
19

Componentes
que integran una
arquitectura
SOA
Muchas gracias!
“Piensa siempre como podrías hacer mejor las cosas y
cuestiónate a ti mismo”
- Elon Musk -

20

También podría gustarte