Está en la página 1de 30

Algoritmos

Diseño y Arquitectura de
Software
Sesión 8:
Patrones Arquitectónicos
Logro de la sesión:
Al finalizar la sesión, el estudiante elabora un diseño
arquitectónico basado en los requerimientos
del producto y el Diseño de la
fundamentales de Software con Patrones
Arquitectura
Arquitectonicos.
Dudas sobre la sesión anterior:
1.Diseño de la
Arquitectura
Conocimientos previos:
1.Patrones de Diseño de
Software.
Utilidad de la sesión:
¿Qué pasaría si no conocemosel diseño de
arquitectónico software con Patrones
Arquitectónicos?
¿Sabríamos construir un producto informático?
Conocer el diseño arquitectónico de software
con
Patrones Arquitectónicos es útil porque
permite construir aplicaciones software.
Transformación de la sesión:
1. Patrones Arquitectónicos.
Fundamentos de Patrones
Un patrón es una solución general y reutilizable aplicable a diferentes problemas de diseño de
software. Se trata de plantillas que identifican problemas en el sistema y proporcionan soluciones
apropiadas a problemas generales a los que se han enfrentado los desarrolladores durante un largo
periodo de tiempo, a través de prueba y error.

Cada patrón describe un problema que ocurre una y otra vez en nuestro medio, y luego describe el
núcleo de la solución a ese problema, de tal manera que se puede utilizar esta solución un millón de
veces, sin tener que hacerlo de la misma manera dos veces
Desarrollo con Patrones
Aunque los patrones no son un método o proceso de desarrollo, pueden complementarlos. Los
patrones fueron inicialmente introducidos para ser reutilizados durante la fase de diseño, pero
muchos profesionales se dieron cuenta de su utilidad en otras fases del desarrollo. La amplia
aceptación de los patrones de diseño ha permitido cubrir todo el ciclo de vida del desarrollo
software.
PDaert fionniceiósn
Los patrones arquitectónicos, o patrones de arquitectura, también llamados arquetipos ofrecen
soluciones a problemas de arquitectura de software en ingeniería de software.
Aderqloustireescisó
t tonreci s.os
Dan una descripción de los elementos y el tipo de relación que tienen junto con un conjunto de
restricciones sobre cómo pueden ser usados.
Un patrón arquitectónico expresa un esquema de organización estructural esencial para un sistema de
software, que consta de subsistemas, sus responsabilidades e interrelaciones.
En comparación con los patrones de diseño, los patrones arquitectónicos tienen un nivel de abstracción
mayor.
Aunque un patrón arquitectónico comunica una imagen de un sistema, no es una arquitectura como tal.
Un patrón arquitectónico es más un concepto que captura elementos esenciales de una arquitectura de
software.
Muchas arquitecturas diferentes pueden implementar el mismo patrón y por lo tanto compartir
las mismas características.
DominDioefsni eci nóineldDe ilsoserñeossidot eer Psa.
trones
Control de acceso: Hay muchas situaciones en las cuales el acceso a datos, características y
funcionalidad son limitadas a la definición de los usuarios. Desde un punto de vista arquitectónico,
acceder a determinadas partes del software debe tener un riguroso control.
Concurrencia: Muchas aplicaciones deben manejar múltiples tareas de forma que simule el
paralelismo. Hay muchas formas de manejar esta concurrencia y cada una puede ser presentada por un
patrón arquitectónico diferente.
Distribución: El problema de distribución dirige el problema de forma en que los sistemas o
componentes se comunican con otros en un entorno distribuido.
Persistencia: Los datos persistentes son almacenados en bases de datos o archivos y pueden ser leídos
o modificados por otros procesos más adelante. En los entornos orientados a objetos esto va más allá y
lo que puede ser accedido o modificable son las propiedades de los objetos.
5
1. Patrón de capas
2. Patrón cliente-servidor
Daemaestro-esclavo
3.PPatrón ftirnoicnióensdAerlqosurieet sicsttoórneisc. os
4. Patrón de filtro de tubería
5. Modelo-vista-controlador
Def1in. iPciaóntrdóenlodserecsaisptoarses.
Este patrón se puede utilizar para estructurar programas que se pueden descomponer en grupos de sub
tareas, cada una de las cuales se encuentra en un nivel particular de abstracción. Cada capa proporciona
servicios a la siguiente capa superior.
Las 4 capas más comúnmente encontradas de un sistema de información general son:
Capa de presentación (también conocida como capa UI ) Capa de
aplicación (también conocida como capa de servicio )
Capa de lógica de negocios (también conocida como capa de dominio ) Capa
de acceso a datos (también conocida como capa de persistencia) Uso:
Aplicaciones de escritorio generales.
Aplicaciones web de comercio electrónico.
2D. ePfaintircóiónn cdlee
i lonstree-
Este patrón consiste en dos partes; un servidor y múltiples clientes. El componente del servidor
proporcionará servicios a múltiples componentes del cliente. Los clientes solicitan servicios del servidor
ssisetrovred
i s.or
y el servidor proporciona servicios relevantes a esos clientes. Además, el servidor sigue escuchando las
solicitudes de los clientes.
Uso:
Aplicaciones en línea como correo electrónico, uso compartido de documentos y banca.
3.DPefaintricóiónnmdeaelosstrreos-
Este patrón consiste en dos partes; maestro y esclavos. El componente maestro distribuye el trabajo entre
componentes esclavos idénticos y calcula el resultado final de los resultados que devuelven los esclavos.
isetsocreal s.vo
Uso:
En la replicación de la base de datos, la base de datos maestra se considera como la fuente autorizada y
las bases de datos esclavas se sincronizan con ella.
Periféricos conectados a un bus en un sistema informático (unidades maestra y esclava).
4.
PDeaftirnóicnióndedefillotsroredsiestoturebse. ría
Este patrón se puede usar para estructurar sistemas que producen y procesan una secuencia de datos.
Cada paso de procesamiento se incluye dentro de un componente de filtro. Los datos que se procesarán
se pasan a través de las tuberías. Estas tuberías se pueden utilizar para el almacenamiento en búfer o con
fines de sincronización.
Uso:
Compiladores Los filtros consecutivos realizan análisis léxico, análisis sintáctico y generación de
código.
Flujos de trabajo en bioinformática.
5. PatróDnedfineicmióon ddee lloo-
Este patrón, también conocido como patrón MVC, divide una aplicación interactiva en 3 partes, como
svriesstisat-ocroesn. trolador
Modelo: Contiene la funcionalidad y los datos básicos
Vista: Muestra la información al usuario (se puede definir más de una vista)
Controlador: Maneja la entrada del usuario
Esto se hace para separar las representaciones internas de información de las formas en que se presenta y
acepta la información del usuario. Desacopla los componentes y permite la reutilización eficiente del
código.
Uso:
Arquitectura para aplicaciones World Wide Web en los principales lenguajes de programación. Marcos
web como Django y Rails .
5. PatróDnedfineicmióon ddee lloo-
svriesstisat-ocroesn. trolador
Espacio práctico:
1.Caso de
estudio
Caso de estudio
Caso de estudio: Supermercado
Se pretende construir un sistema que controle de forma integrada la gestión de una cadena de Supermercados
con varias cajas registradoras con conexión a un servidor que centraliza toda la información.
El proceso de compras presenta el siguiente escenario: El proveedor solicita vender artículos al encargado de
compras, este verifica si hay stock suficiente, si no hay registra uno o varios artículos en la orden de compra.
El proceso de ventas presenta el siguiente escenario: El cliente solicita comprar artículos el encargado de
ventas este verifica si hay stock suficiente, si hay registra uno o varios artículos en la nota de pedido.
El proceso de almacén presenta el siguiente escenario: Cuando los artículos entran (mediante la orden de
compra) o salen (mediante la nota de venta), el encargado del almacén registra la cantidad que ingresa o sale de
cada articulo en el kardex, obteniéndose el stock respectivo.
Modelo de Dominio
Modelo de Requisitos
Modelo de Datos
Modelo de Negocio
Arquitectura Conceptual
Arquitectura de Módulos e Interfaces
Caso de estudio propuesto
Caso de estudio: Vuelos
Se desea construir un portal Web que permita a los usuarios reservar y comprar boletos de vuelos. Cualquier
usuario puede introducir una ciudad origen, una ciudad destino y unas fechas de viaje y el sistema responde
con un conjunto de vuelos que cumplen los criterios introducidos por el usuario. A partir de la respuesta del
sistema el usuario puede seleccionar la compra de un vuelo (de ida o de ida y vuelta), esta selección se
añade a la cesta de la compra del usuario. La única forma de pago admitida es mediante tarjeta de crédito,
para ello el usuario debe proporcionar su nombre completo, el número y tipo de la tarjeta y la fecha de
caducidad. Los usuarios deben registrarse previamente proporcionando un login y password junto con los
datos de la tarjeta de crédito. Para que el(los) boletos(s) puedan ser tramitados debe también proporcionarse
el nombre y apellidos de los viajeros. Una vez formalizada la compra el sistema genera un número de ticket
y el boleto electrónico que se remite posteriormente a la aerolínea correspondiente. Los boletos pueden ser
comprados en cualquier momento hasta 3 días antes de la realización del viaje. El sistema también admite
anulaciones, pero éstas únicamente pueden hacerse 15 días antes del vuelo. En este caso se cobra al cliente el
6% de la operación. El sistema interactuará con un sistema global de reservas de vuelos, que será el
encargado de proporcionar la disponibilidad de plazas y vuelos. En cualquier momento un usuario registrado
puede acceder a sus datos almacenados y eventualmente modificarlos (login, password, tarjeta de crédito).
Caso de estudio propuesto
Caso de estudio: Vuelos
Elaborar:
1. El diseño de la arquitectura de software, empleando los patrones arquitectónicos.
Cierre de la sesión: Conocimos
1. Patrones Arquitectónicos.

También podría gustarte