Tema 07_Diseño Arquitectónico
-
Upload
raul-opazo -
Category
Documents
-
view
3 -
download
0
description
Transcript of Tema 07_Diseño Arquitectónico
Ingeniería de Ingeniería de SoftwareSoftwareDiseño ArquitectónicoDiseño Arquitectónico
Prof. Pedro G. Campos
22
Diseño Arquitectónico Diseño Arquitectónico Sistemas grandes se pueden Sistemas grandes se pueden
descomponer en subsistemas.descomponer en subsistemas. ““Diseño Arquitectónico”:Diseño Arquitectónico”:
Proceso inicial para identificar Proceso inicial para identificar subsistemas y establecer la subsistemas y establecer la comunicación entre ellos y su control.comunicación entre ellos y su control.
De acuerdo a ISO/IEC 42010De acuerdo a ISO/IEC 42010– La arquitectura (de un sistema o software) La arquitectura (de un sistema o software)
corresponde a los conceptos o corresponde a los conceptos o propiedades fundamentales de un sistema propiedades fundamentales de un sistema … sus elementos, relaciones, y los … sus elementos, relaciones, y los principios de su diseño y evolución.principios de su diseño y evolución.
33
Diseño Arquitectónico Diseño Arquitectónico Architecture in the smallArchitecture in the small: arquitectura de : arquitectura de
programas individuales. En este caso, programas individuales. En este caso, interesa la forma en que se descompone el interesa la forma en que se descompone el programa en módulosprograma en módulos
Architecture in the largeArchitecture in the large: arquitectura de : arquitectura de grandes y complejos sistemas empresariales grandes y complejos sistemas empresariales que incluyen otros sistemas. Estos sistemas que incluyen otros sistemas. Estos sistemas empresariales suelen estar distribuidos en empresariales suelen estar distribuidos en diferentes computadores, que pueden ser diferentes computadores, que pueden ser propiedad de (y administrados por) propiedad de (y administrados por) diferentes compañías.diferentes compañías.
44
Diseño Arquitectónico Diseño Arquitectónico
Arquitectura general del sistema de streaming de video Netflix.Fuente: Cockcroft, A. Netflix Cloud Architecture. 2011 O’Reilly Velocity Conference, Santa Clara, CL, USA, 2011.
55
Diseño Arquitectónico Diseño Arquitectónico
Arquitectura del sistema Zuul, front door de la familia de sistemas de Netflix. Fuente: Cohen, M. and Hawthorne, M. Announcing Zuul: Edge Service in the Cloud. Netflix Tech Blog, techblog.netflix.com, 2013.
66
Diseño Arquitectónico Diseño Arquitectónico
Arquitectura del sistema de recomendación de Netflix. Fuente: Amatriain, X. and Basilico, J. System Architectures for Personalization and Recommendation. Netflix Tech Blog, techblog.netflix.com, 2013.
77
Diseño Arquitectónico Diseño Arquitectónico Ventajas de especificación del diseño y Ventajas de especificación del diseño y
documentación de una arquitectura de documentación de una arquitectura de software:software:
– Comunicación entre los stakeholdersComunicación entre los stakeholders– Análisis del sistemaAnálisis del sistema
Afectarán desempeño, fiabilidad y mantenibilidadAfectarán desempeño, fiabilidad y mantenibilidad
– Reutilización a gran escalaReutilización a gran escala La arquitectura se puede transferir a sistemas con La arquitectura se puede transferir a sistemas con
requerimientos similares y así poder reutilizar requerimientos similares y así poder reutilizar software a gran escala.software a gran escala.
88
Diseño Arquitectónico Diseño Arquitectónico Actividades comunesActividades comunes
– 1. Estructuración del sistema:1. Estructuración del sistema: Se estructura en varios subsistemas (unidad de Se estructura en varios subsistemas (unidad de
software independientes)software independientes)– 2. Modelado de control:2. Modelado de control:
Son las relaciones de control entre las partes Son las relaciones de control entre las partes del sistema.del sistema.
– 3. Descomposición modular:3. Descomposición modular: Cada subsistema se descompone en módulos.Cada subsistema se descompone en módulos.
99
Diseño Arquitectónico Diseño Arquitectónico No existe una distinción clara entre No existe una distinción clara entre
subsistemas y módulos pero es útil subsistemas y módulos pero es útil distinguirlos:distinguirlos:– 1. Subsistema:1. Subsistema:
Es un sistema por si mismo cuya operación no Es un sistema por si mismo cuya operación no depende de otro subsistema.depende de otro subsistema.
– 2. Módulo:2. Módulo: Es por lo regular un componente del sistema Es por lo regular un componente del sistema
que suministra servicios a otros módulos.que suministra servicios a otros módulos.
1010
Diseño Arquitectónico Diseño Arquitectónico RepresentaciónRepresentación
– Se usan comúnmente diagramas de bloques, Se usan comúnmente diagramas de bloques, simples e informales, mostrando las entidades simples e informales, mostrando las entidades (módulos/subsistemas) y relaciones entre ellas.(módulos/subsistemas) y relaciones entre ellas.
– Muchas veces se critica la falta de formalismo y Muchas veces se critica la falta de formalismo y semántica.semántica.
– Sin embargo, esta representación es útil para la Sin embargo, esta representación es útil para la comunicación con los comunicación con los stakeholdersstakeholders y para la y para la planificación del proyectoplanificación del proyecto
1111
Diseño Arquitectónico Diseño Arquitectónico Modelo de 4 + 1 vistas de arquitectura de Modelo de 4 + 1 vistas de arquitectura de
softwaresoftware– Vista lógicaVista lógica, que muestra las principales abstracciones , que muestra las principales abstracciones
en el sistema.en el sistema.– Vista de procesoVista de proceso, que muestra cómo, en tiempo de , que muestra cómo, en tiempo de
ejecución, interactúan los procesos que componen el ejecución, interactúan los procesos que componen el sistema.sistema.
– Vista físicaVista física, que muestra el hardware del sistema y , que muestra el hardware del sistema y cómo se distribuyen los componentes de software en cómo se distribuyen los componentes de software en los procesadores del sistema.los procesadores del sistema.
– Vista de desarrolloVista de desarrollo, que muestra cómo se , que muestra cómo se descompone el software para el desarrollo.descompone el software para el desarrollo.
– Relación con casos de uso o escenarios (+1).Relación con casos de uso o escenarios (+1).
1212Arquitectura del sistema de recomendación de Netflix. Fuente: Amatriain, X. and Basilico, J. System Architectures for Personalization and Recommendation. Netflix Tech Blog, techblog.netflix.com, 2013.
1313
Diseño Arquitectónico Diseño Arquitectónico Uso de modelos arquitectónicosUso de modelos arquitectónicos
– Facilita la discusión sobre el diseño general del Facilita la discusión sobre el diseño general del sistema.sistema.
– Permite documentar la arquitectura que se ha Permite documentar la arquitectura que se ha diseñado.diseñado.
1414
Diseño Arquitectónico y Diseño Arquitectónico y características del características del sistemasistema RendimientoRendimiento
– Localizar operaciones críticas y minimizar Localizar operaciones críticas y minimizar comunicaciones. Usar componentes grandescomunicaciones. Usar componentes grandes
SeguridadSeguridad– Utilizar una arquitectura de capas con los elementos Utilizar una arquitectura de capas con los elementos
críticos en las capas internascríticos en las capas internas– Localizar las características críticas en un número Localizar las características críticas en un número
pequeño de subsistemas.pequeño de subsistemas. DisponibilidadDisponibilidad
– Incluir componentes redundantes y mecanismos para Incluir componentes redundantes y mecanismos para tolerancia a fallostolerancia a fallos
MantenibilidadMantenibilidad– Utilizar componentes pequeños y reemplazablesUtilizar componentes pequeños y reemplazables
1515
Modelos ArquitectónicosModelos Arquitectónicos
Arquitectura de depósito –repositorio o base de Arquitectura de depósito –repositorio o base de datos centralizada– datos centralizada– (repository architecture):(repository architecture):– El intercambio de datos entre módulos se realiza por El intercambio de datos entre módulos se realiza por
medio de un depósito central.medio de un depósito central.– Es particularmente útil cuando se deben intercambiar Es particularmente útil cuando se deben intercambiar
grandes volúmenes de datos entre módulos.grandes volúmenes de datos entre módulos.– Permite una alta independencia entre módulos, y Permite una alta independencia entre módulos, y
facilita la mantención de la consistencia de los datos.facilita la mantención de la consistencia de los datos.– El repositorio se transforma en un punto crítico, por lo El repositorio se transforma en un punto crítico, por lo
que un fallo en él afecta a todo el sistema.que un fallo en él afecta a todo el sistema.
1616
El modelo de depósito: la El modelo de depósito: la arquitectura de una arquitectura de una herramienta CASE de tipo herramienta CASE de tipo entornoentorno
Traductor de diseño
Editor de diseño
Generador de código
Depósito de proyectos
Editor de programas
Generador de Informes
Analizador de diseño
1717
Modelos ArquitectónicosModelos Arquitectónicos
Arquitectura cliente-servidor Arquitectura cliente-servidor (client-server (client-server architecture):architecture):– La funcionalidad de los sistemas se organiza en torno a La funcionalidad de los sistemas se organiza en torno a
servicios.servicios.– Cada servicio es proporcionado por un servidor diferente.Cada servicio es proporcionado por un servidor diferente.
Un servidor en este modelo es un proceso lógico.Un servidor en este modelo es un proceso lógico. Pueden ejecutarse varios servidores en un mismo computador.Pueden ejecutarse varios servidores en un mismo computador.
– Es útil cuando se necesita acceso desde diferentes Es útil cuando se necesita acceso desde diferentes lugares, y en casos en que la carga del sistema es lugares, y en casos en que la carga del sistema es variable.variable.
– Permite que los servidores sean distribuidos en una red.Permite que los servidores sean distribuidos en una red.– Cada servicio es un posible punto de falla. El rendimiento Cada servicio es un posible punto de falla. El rendimiento
depende tanto de la red como del resto del sistema.depende tanto de la red como del resto del sistema.
1818
El modelo cliente-servidor: El modelo cliente-servidor: bibliotecabiblioteca de películas e de películas e imágenesimágenes
Servidor de catálogos
Catálogo
Servidor de videos
Archivos de clips de videos
Servidor de imágenes
Fotografías digitalizadas
Servidor de hipertexto
Web de hipertexto
Cliente 1 Cliente 2 Cliente 3 Cliente 4
Red de banda ancha
1919
Sistema cliente Sistema cliente servidor de cajero servidor de cajero automático (ATM)automático (ATM)
Account server
Customeraccountdatabase
Tele-processing
monitor
ATM
ATM
ATM
ATM
2020
Clientes gruesos (fat) o Clientes gruesos (fat) o delgados (thin)delgados (thin) Modelo cliente delgado (thin client)Modelo cliente delgado (thin client)
– Todo el procesamiento y Todo el procesamiento y administración de los datos es hecha administración de los datos es hecha por el Servidor. El cliente solo por el Servidor. El cliente solo ejecuta una aplicación de despliegue.ejecuta una aplicación de despliegue.
Modelo cliente grueso (fat client)Modelo cliente grueso (fat client) – El servidor es solo responsable por el El servidor es solo responsable por el
almacenamientio de los datos.almacenamientio de los datos.
2121
Thin-clientmodel
Fat-clientmodel Client
Client
ServerData management
Applicationprocessing
Presentation
Server
Datamanagement
PresentationApplication processing
Clientes gruesos (fat) o Clientes gruesos (fat) o delgados (thin)delgados (thin)
2222
Modelos ArquitectónicosModelos Arquitectónicos
Arquitectura de capas Arquitectura de capas (layered architecture):(layered architecture):– Organiza el sistema como un conjunto de capas (o Organiza el sistema como un conjunto de capas (o
máquinas abstractas), cada una de las cuales máquinas abstractas), cada una de las cuales provee un conjunto de servicios relacionados.provee un conjunto de servicios relacionados.
– Las capas de mayor nivel utilizan servicios Las capas de mayor nivel utilizan servicios provistos por las capas de menor nivel.provistos por las capas de menor nivel.
– Permite el reemplazo de capas completas, Permite el reemplazo de capas completas, mientras la interfaz se mantenga.mientras la interfaz se mantenga.
– Suele ser difícil conseguir una separación “limpia” Suele ser difícil conseguir una separación “limpia” entre capas. Puede llevar a problemas de entre capas. Puede llevar a problemas de rendimiento por el paso por múltiples niveles.rendimiento por el paso por múltiples niveles.
2323
El modelo de capas (máquina El modelo de capas (máquina abstracta): sistema de abstracta): sistema de administración de versionesadministración de versiones
Sistema Operativo
Sistema de Bases de Datos
Administrador de archivos fuente
Administrador de versiones
2424
Modelos ArquitectónicosModelos Arquitectónicos
Arquitectura Modelo-Vista-Controlador Arquitectura Modelo-Vista-Controlador (MVC, (MVC, Model-View-Controller architecture):Model-View-Controller architecture):– Separa la presentación (e interacción) de los datos Separa la presentación (e interacción) de los datos
del sistema.del sistema. El sistema se estructura en torno a componentes lógicos de El sistema se estructura en torno a componentes lógicos de
tres tipos.tres tipos. El modelo administra los datos y las operaciones sobre ellos.El modelo administra los datos y las operaciones sobre ellos. La vista se encarga de presentar los datos a los usuarios.La vista se encarga de presentar los datos a los usuarios. El controlador gestiona la interacción del usuario (teclas, El controlador gestiona la interacción del usuario (teclas,
clicks de mouse, etc.).clicks de mouse, etc.).– Permite gestionar de forma independiente los Permite gestionar de forma independiente los
datos y la presentación de ellos.datos y la presentación de ellos.
2525
Modelo MVC: aplicación Modelo MVC: aplicación WebWeb
2626
Mezcla de modelos: Mezcla de modelos: Arquitectura C/S de 3 Arquitectura C/S de 3 capascapas
Client
Server
Datamanagement
PresentationServer
Applicationprocessing
2727
Arquitectura de Sitios Arquitectura de Sitios WebWeb
2828
Arquitectura de Sitios Arquitectura de Sitios Web DinámicosWeb Dinámicos
2929
Arquitectura de Arquitectura de Aplicaciones WebAplicaciones Web
3030
Arquitectura de Arquitectura de Aplicaciones WebAplicaciones Web
3131
Arquitectura de Arquitectura de Aplicaciones WebAplicaciones Web
3232
Arquitectura de Arquitectura de Aplicaciones WebAplicaciones Web
3333
Arquitectura de Arquitectura de Aplicaciones WebAplicaciones Web
Arquitectura de Arquitectura de Aplicaciones WebAplicaciones Web
3434
3535
Modelo genérico: flujo de Modelo genérico: flujo de datos de un compiladordatos de un compilador
Análisis léxico
Análisis sintáctico
Análisis semántico
Generación de código
Tabla de símbolos
3636
Modelo de referencia: la Modelo de referencia: la arquitectura OSIarquitectura OSI
Application
Presentation
Session
Transport
Network
Data link
Physical
7
6
5
4
3
2
1
Communica tions medium
Network
Data link
Physical
Application
Presentation
Session
Transport
Network
Data link
Physical
Application
3737
Modelo de referencia: Modelo de referencia: Java EEJava EE
3838
Modelo de referencia: Modelo de referencia: .NET: Aplicación Web.NET: Aplicación Web
3939
Modelos de control: Modelos de control: control centralizadocontrol centralizado
Programa principal
Rutina 1 Rutina 2 Rutina 3
Rutina 3.1 Rutina 3.2Rutina 1.2Rutina 1.1
4040
Modelos de control: Modelos de control: sistemas dirigidos por sistemas dirigidos por eventoseventos
Controlador de eventos y mensajes
Subsistema 1
Subsistema 2
Subsistema 3
Subsistema 4
4141
Descomposición Descomposición modular: modelos de modular: modelos de objetosobjetos
issue ()sendReminder ()acceptPayment ()sendReceipt ()
invoice#dateamountcustomer
Invoice
invoice#dateamountcustomer#
Receipt
invoice#dateamountcustomer#
Payment
customer#nameaddresscredit period
Customer
4242
Modelos de flujos de datos: Modelos de flujos de datos: sistema de procesamiento de sistema de procesamiento de facturasfacturas
Read issuedinvoices
Identifypayments
Issuereceipts
Findpayments
due
Receipts
Issuepaymentreminder
Reminders
Invoices Payments
4343
ConclusionesConclusiones El diseño de la El diseño de la arquitecturaarquitectura de un de un
sistema permite dar sistema permite dar estructuraestructura al mismo. al mismo. Existen diferentes tipos de arquitectura, Existen diferentes tipos de arquitectura, las cuales pueden ser mezcladas.las cuales pueden ser mezcladas.
Resulta útil, en la etapa de requerimientos, Resulta útil, en la etapa de requerimientos, tener al menos un tener al menos un esbozo inicialesbozo inicial de la de la arquitectura del sistema.arquitectura del sistema.
Diferentes estilos arquitectónicos pueden Diferentes estilos arquitectónicos pueden influir en las influir en las características generalescaracterísticas generales de los sistemas.de los sistemas.
4444
¿Preguntas?¿Preguntas?