SlideShare una empresa de Scribd logo
1 de 62
Diseño
Arquitectónico
Ingeniería de Software 2015
Rotta, Damián
Índice
0-Objetivos de la presentación.
1-Qué es el diseño arquitectónico?
2-Decisiones de Diseño Arquitectónico.
3-Vistas Arquitectónicas.
4-Patrones Arquitectónicos.
5-Arquitecturas de Aplicación.
2
Objetivos de la presentación0
3
Objetivos
Entender porque el diseño arquitectónico del
software es importante.
Comprender las decisiones que se deben tomar
respecto al sistema durante el proceso de diseño
arquitectónico.
4
Objetivos
Introducir el concepto de patrones
arquitectónicos.
Conocer los patrones arquitectónicos usados con
frecuencia en diferentes tipos de aplicaciones.
5
Que es el diseño arquitectónico1
6
Que es el Diseño Arquitectónico
Organización del sistema -> Diseño de la estructura
global.
Identificación componentes estructurales principales y la
relación entre ellos.
Desarrollo incremental de arquitecturas no suele tener
éxito.
7
Arquitectura de un sistema de control
para un robot empacador
8
Abstracción en el diseño arquitectónico
Architecture in the small:
Arquitectura de los programas individuales.
Architecture in the large:
Arquitectura de sistemas complejos. Distribuidos en
diferentes computadoras.
9
Importancia de la arquitectura del
software
Requisitos funcionales:
Componentes individuales
Requisitos no funcionales:
La manera en que los componentes están
organizados y en que se comunican.
10
Ventajas de una arquitectura explícita
Comunicación con los interesados (stakeholders)
Análisis de Sistemas
Reutilización a gran escala
11
Representación
Diagrama de bloques:
Muy abstractos.
Útiles para la comunicación.
Contradicción?
No, el modelo puede ser usado de distintas
maneras
12
Uso de los modelos arquitectónicos
Cómo una manera de facilitar la discusión sobre
el diseño del sistema:
Discusión sobre el sistema cómo un todo.
Cómo una manera de documentar la arquitectura
que ha sido:
Mostrar componentes, sus interfaces y sus
conecciones.
13
Decisiones de diseño arquitectónico2
14
Decisiones del diseño arquitectónico
Procesos difieren dependiendo del tipo de
sistema que está siendo desarrollado.
Conjunto de decisiones comunes a todos los
procesos de diseño.
Pensar el diseño arquitectónico cómo una serie
de decisiones más que cómo una secuencia de
actividades.
15
Decisiones del diseño arquitectónico
Arquitectura de aplicaciones genéricas.
Distribución del sistema.
Patrones arquitectónicos (architectural styles).
Enfoque fundamental.
Descomposición del sistema.
Estrategia de control.
Evaluación del diseño.
Documentación.
16
Arquitectura y características del sistema
Desempeño
Seguridad de datos (security)
Arquitectura de capas
Seguridad de personas(safety)
Disponibilidad
Mantenibilidad
17
Vistas Arquitectónicas3
18
Vistas Arquitectónicas
Perspectivas y vistas útiles para documentar y
diseñar la arquitectura.
Notación ha ser usada.
Cada modelo arquitectónico muestra solo una
vista o perspectiva.
19
Vista del modelo de la arquitectura 4+1
Vista lógica: abstracciones clave
Vista de procesos: procesos interactuantes
Vista de desarrollo: cómo se descompone en
módulos durante el desarrollo
Vista física: cómo se distribuye (hw y sw) a
través de distintos procesadores.
Casos de uso relacionados
20
Dónde estamos?
0-Objetivos de la presentación.
1-Qué es el diseño arquitectónico?
2-Decisiones de Diseño Arquitectónico.
3-Vistas Arquitectónicas.
4-Patrones Arquitectónicos.
5-Arquitecturas de Aplicación.
21
Patrones arquitectónicos4
22
Patrones arquitectónicos
Representar, compartir y reutilizar conocimiento.
Descripción estilizada de una buena práctica de
diseño, probada en diferentes ambientes.
Deben incluir información sobre cuándo son
útiles y cuando no.
Representados mediantes tablas y gráficos.
23
Patrón Modelo-Vista-Controlador
24
La organización del patrón MVC
25
Arquitectura de una aplicación web que
usa el patrón MVC
26
Arquitectura de capas (layered)
Usada para modelar la interconexión entre
subsistemas.
Organiza el sistema en un conjunto de capas
donde cada una brinda una serie de servicios
dados.
Permite el desarrollo incremental de las capas.
Solo las capas adyacentes se ven afectadas.
27
Patrón de Arquitectura en capas
28
Una arquitectura de capas genérica
29
La arquitectura del sistema LIBSYS
30
Arquitectura de Repositorio
31
Arquitectura de Repositorio
Los subsistemas deben intercambiar datos:
-BD Centralizada o repositorio.
-Cada subsistema mantiene su BD y los
datos se transfieren explícitamente.
32
El patrón Repositorio
33
Arquitectura de repositorio para un IDE
34
Arquitectura Cliente-Servidor
Datos y procesos están distribuidos a través de
una gama de componentes.
Conjunto de servidores autónomos proveen
servicios específicos,
Conjunto de clientes que solicitan esos servicios
y
Red que permite a los clientes acceder a los
servidores
35
El patrón Cliente-Servidor
36
Ejemplo Cliente-Servidor para filmoteca
37
Arquitectura Pipe and Filter
Transformaciones funcionales procesan
entradas para producir salidas.
Datos fluyen de una a otra y son transformados
en el camino.
38
Arquitectura Pipe and Filter
39
Ejemplo arquitectura Pipe and Filter
40
Arquitecturas de Aplicación5
41
Arquitecturas de aplicación
Usados para satisfacer necesidades de una
organización.
Organizaciones similares tienen requerimientos
parecidos.
Podemos hablar de arquitecturas de aplicación
genéricas que podamos adaptar.
42
Uso de las arquitecturas de aplicación
Punto de partida para el proceso de diseño
arquitectónico.
Lista de comparación en el diseño (design checklist).
Una manera de organizar el trabajo del equipo de
desarrollo.
Medida de reutilización de componentes.
Vocabulario para hablar sobre tipos de aplicación.
43
Ejemplos de tipos de aplicaciones
Procesamiento de:
Datos.
Transacciones.
Eventos.
Lenguajes.
44
Ejemplos de tipos de aplicaciones
Nos enfocaremos en dos tipos de aplicaciones.
Procesamiento de transacciones:
-Sistemas de comercio electrónico
(e-commerce)
-Sistemas de reservación
Procesamiento de lenguaje:
-Compiladores
-Intérpretes de comandos
45
Sistemas de procesamiento de transacciones
Procesos del usuario solicitan información de
una base de datos o quieren actualizarla.
Perspectiva del usuario: transacción es cualquier
secuencia coherente de acciones que satisfacen
un objetivo.
46
Arquitectura de aplicaciones de
procesamiento de transacciones
47
Arquitectura de software de un ATM
48
Arquitectura de sistemas de información
Tienen una estructura genérica que puede
organizarse cómo una arquitectura de capas.
Sistemas basados en transacciones que
generalmente involucran operaciones con bases
de datos.
49
Arquitectura en capas de un sistema
de información
50
Arquitectura del MHC-PMS
51
Sistemas de información basados en web
Interfaz de usuario implementada mediante un
navegador web.
Ej: comercio electrónico.
Algunas funcionalidades adicionales.
52
Implementación del servidor
Usualmente implementados cómo arquitecturas
cliente-servidor multinivel (multi-tier)
Servidor responsable de todas las interacciones
con el usuario.
Gestor de la base de datos maneja dlas
transacciones.
53
Sistemas de procesamiento de lenguajes
Aceptan un lenguaje natural o artificial cómo
entrada y generan alguna otra representación de
ese lenguaje.
Compiladores tienen una arquitectura genérica
(análisis léxico, sintáctico, etc)
54
Arquitectura de un sistema de
procesamiento de lenguajes
55
Componentes de un compilador
Un analizador léxico.
Una tabla de símbolos.
Un analizador sintáctico.
Un árbol sintáctico.
Un analizador semántico.
Un generador de código.
56
Compilador con arquitectura Pipe and
Filter
57
Procesamiento de lenguajes con
arquitectura de repositorio
58
Recapitulando (1)
Arquitectura de software como descripción de la
organización de un sistema.
Decisiones de diseño arquitectónico incluyen:
tipo de aplicación, distribución y patrones
arquitectónicos.
Arquitecturas pueden ser documentadas desde
varias perspectivas.
59
Recapitulando (2)
Patrones arquitectónicos son una manera de
reutilizar conocimiento.
Modelos de sistemas de aplicación ayudan
comprensión y comparación.
Sistemas de procesamiento de transacciones y
de lenguajes.
60
Créditos y referencias
“Software Engineering”, Ian Sommerville, 9th
Edition. Pags: 147-172
El template de la presentación es de
SlidesCarnival.
61
Gracias!
Alguna Pregunta?
62

Más contenido relacionado

La actualidad más candente

24 Ejercicios Subnetting
24 Ejercicios Subnetting24 Ejercicios Subnetting
24 Ejercicios SubnettingPatty Vm
 
Ejercicios de-subneteo-14
Ejercicios de-subneteo-14Ejercicios de-subneteo-14
Ejercicios de-subneteo-14Liseth Chávez
 
5.1 Listas de control de acceso ACL
5.1 Listas de control de acceso   ACL5.1 Listas de control de acceso   ACL
5.1 Listas de control de acceso ACLDavid Narváez
 
Enrutamiento estático de 3 Equipos y dos Routers CISCO CCNA1 capitulo 11
Enrutamiento estático de 3 Equipos y dos Routers CISCO CCNA1 capitulo 11Enrutamiento estático de 3 Equipos y dos Routers CISCO CCNA1 capitulo 11
Enrutamiento estático de 3 Equipos y dos Routers CISCO CCNA1 capitulo 11Ivan Sanchez
 
Resumen comandos ospf
Resumen comandos ospfResumen comandos ospf
Resumen comandos ospf1 2d
 
¿Qué es Microsoft Azure y Sus Principales Servicios y Características?
¿Qué es Microsoft Azure y Sus Principales Servicios y Características?¿Qué es Microsoft Azure y Sus Principales Servicios y Características?
¿Qué es Microsoft Azure y Sus Principales Servicios y Características?EanMusk
 
2 2 estilos arquitectonicos
2 2 estilos arquitectonicos2 2 estilos arquitectonicos
2 2 estilos arquitectonicoslandeta_p
 
PROPUESTA DE REDES
PROPUESTA DE REDESPROPUESTA DE REDES
PROPUESTA DE REDESjohana45
 
DIRECCIONES IP CLASE "C"
DIRECCIONES IP CLASE "C"DIRECCIONES IP CLASE "C"
DIRECCIONES IP CLASE "C"Yali Granda
 
Diseno de la arquitectura
Diseno de la arquitecturaDiseno de la arquitectura
Diseno de la arquitecturaFatima Cham
 

La actualidad más candente (20)

Transacciones en SQL SERVER
Transacciones en SQL SERVERTransacciones en SQL SERVER
Transacciones en SQL SERVER
 
24 Ejercicios Subnetting
24 Ejercicios Subnetting24 Ejercicios Subnetting
24 Ejercicios Subnetting
 
Presentacion Patrones Creacionales
Presentacion Patrones CreacionalesPresentacion Patrones Creacionales
Presentacion Patrones Creacionales
 
Ejercicios de-subneteo-14
Ejercicios de-subneteo-14Ejercicios de-subneteo-14
Ejercicios de-subneteo-14
 
Modelo E R
Modelo E RModelo E R
Modelo E R
 
5.1 Listas de control de acceso ACL
5.1 Listas de control de acceso   ACL5.1 Listas de control de acceso   ACL
5.1 Listas de control de acceso ACL
 
Enrutamiento estático de 3 Equipos y dos Routers CISCO CCNA1 capitulo 11
Enrutamiento estático de 3 Equipos y dos Routers CISCO CCNA1 capitulo 11Enrutamiento estático de 3 Equipos y dos Routers CISCO CCNA1 capitulo 11
Enrutamiento estático de 3 Equipos y dos Routers CISCO CCNA1 capitulo 11
 
PLANOS CABLEADO ESTRUCTURADO
PLANOS CABLEADO ESTRUCTURADOPLANOS CABLEADO ESTRUCTURADO
PLANOS CABLEADO ESTRUCTURADO
 
Resumen comandos ospf
Resumen comandos ospfResumen comandos ospf
Resumen comandos ospf
 
Tabla de enrutamiento
Tabla de enrutamientoTabla de enrutamiento
Tabla de enrutamiento
 
¿Qué es Microsoft Azure y Sus Principales Servicios y Características?
¿Qué es Microsoft Azure y Sus Principales Servicios y Características?¿Qué es Microsoft Azure y Sus Principales Servicios y Características?
¿Qué es Microsoft Azure y Sus Principales Servicios y Características?
 
2 2 estilos arquitectonicos
2 2 estilos arquitectonicos2 2 estilos arquitectonicos
2 2 estilos arquitectonicos
 
16. Cableado Estructurado.pptx
16. Cableado Estructurado.pptx16. Cableado Estructurado.pptx
16. Cableado Estructurado.pptx
 
Bases de Datos No Relacionales (NoSQL): Cassandra, CouchDB, MongoDB y Neo4j
Bases de Datos No Relacionales (NoSQL): Cassandra, CouchDB, MongoDB y Neo4jBases de Datos No Relacionales (NoSQL): Cassandra, CouchDB, MongoDB y Neo4j
Bases de Datos No Relacionales (NoSQL): Cassandra, CouchDB, MongoDB y Neo4j
 
ospf isis
ospf   isisospf   isis
ospf isis
 
PROPUESTA DE REDES
PROPUESTA DE REDESPROPUESTA DE REDES
PROPUESTA DE REDES
 
DIRECCIONES IP CLASE "C"
DIRECCIONES IP CLASE "C"DIRECCIONES IP CLASE "C"
DIRECCIONES IP CLASE "C"
 
Diseno de la arquitectura
Diseno de la arquitecturaDiseno de la arquitectura
Diseno de la arquitectura
 
Metodologiasad 1
Metodologiasad 1Metodologiasad 1
Metodologiasad 1
 
55784943 practicas-ospf
55784943 practicas-ospf55784943 practicas-ospf
55784943 practicas-ospf
 

Destacado

Introducción al Diseño Arquitectónico Basado En Patrones
Introducción al Diseño Arquitectónico Basado En PatronesIntroducción al Diseño Arquitectónico Basado En Patrones
Introducción al Diseño Arquitectónico Basado En PatronesJoemmanuel Ponce
 
Proceso metodológico del diseño arquitectónico
Proceso metodológico del diseño arquitectónicoProceso metodológico del diseño arquitectónico
Proceso metodológico del diseño arquitectónicoJorge Granados Valencia
 
Diseño arquitectonico 1
Diseño arquitectonico 1Diseño arquitectonico 1
Diseño arquitectonico 1Javier Rivera
 
Principios ordenadores y organización l
Principios ordenadores y organización lPrincipios ordenadores y organización l
Principios ordenadores y organización lEvelyn Ventura
 
Elementos para el Diseño, Forma y Espacio
Elementos para el Diseño, Forma y EspacioElementos para el Diseño, Forma y Espacio
Elementos para el Diseño, Forma y EspacioManuel Alamo Ramírez
 
Principios ordenadores ching
Principios ordenadores   chingPrincipios ordenadores   ching
Principios ordenadores chingDiego Medina
 
RELACIONES ESPACIALES BÁSICAS
RELACIONES ESPACIALES BÁSICASRELACIONES ESPACIALES BÁSICAS
RELACIONES ESPACIALES BÁSICASLuis Ismael Pérez
 
Arquitectura forma, espacio y orden
Arquitectura forma, espacio y ordenArquitectura forma, espacio y orden
Arquitectura forma, espacio y ordenmarijuli9
 
Desarrollo basado en patrones
Desarrollo basado en patronesDesarrollo basado en patrones
Desarrollo basado en patronesMarvin Zumbado
 
patrones de diseño web.
  patrones de diseño web.   patrones de diseño web.
patrones de diseño web. Diana Luna
 
Inv Aplicada 3
Inv Aplicada 3Inv Aplicada 3
Inv Aplicada 3rgv127
 
Clase01 02 Introduccion
Clase01 02 IntroduccionClase01 02 Introduccion
Clase01 02 Introduccionurio
 
Introduccion a la_teoria_de_la_arquitectura
Introduccion a la_teoria_de_la_arquitecturaIntroduccion a la_teoria_de_la_arquitectura
Introduccion a la_teoria_de_la_arquitecturaGaby Prado Paucar
 
1 3 ingenieria software y patrones de diseño
1 3 ingenieria software y patrones de diseño1 3 ingenieria software y patrones de diseño
1 3 ingenieria software y patrones de diseñolandeta_p
 

Destacado (20)

Introducción al Diseño Arquitectónico Basado En Patrones
Introducción al Diseño Arquitectónico Basado En PatronesIntroducción al Diseño Arquitectónico Basado En Patrones
Introducción al Diseño Arquitectónico Basado En Patrones
 
Diseño arquitectonico
Diseño arquitectonicoDiseño arquitectonico
Diseño arquitectonico
 
Proceso metodológico del diseño arquitectónico
Proceso metodológico del diseño arquitectónicoProceso metodológico del diseño arquitectónico
Proceso metodológico del diseño arquitectónico
 
Diseño Arquitectonico
Diseño ArquitectonicoDiseño Arquitectonico
Diseño Arquitectonico
 
Diseño arquitectonico 1
Diseño arquitectonico 1Diseño arquitectonico 1
Diseño arquitectonico 1
 
Principios ordenadores y organización l
Principios ordenadores y organización lPrincipios ordenadores y organización l
Principios ordenadores y organización l
 
Elementos para el Diseño, Forma y Espacio
Elementos para el Diseño, Forma y EspacioElementos para el Diseño, Forma y Espacio
Elementos para el Diseño, Forma y Espacio
 
Principios ordenadores ching
Principios ordenadores   chingPrincipios ordenadores   ching
Principios ordenadores ching
 
RELACIONES ESPACIALES BÁSICAS
RELACIONES ESPACIALES BÁSICASRELACIONES ESPACIALES BÁSICAS
RELACIONES ESPACIALES BÁSICAS
 
Arquitectura forma, espacio y orden
Arquitectura forma, espacio y ordenArquitectura forma, espacio y orden
Arquitectura forma, espacio y orden
 
Desarrollo basado en patrones
Desarrollo basado en patronesDesarrollo basado en patrones
Desarrollo basado en patrones
 
13.diseño de web apps
13.diseño de web apps13.diseño de web apps
13.diseño de web apps
 
patrones de diseño web.
  patrones de diseño web.   patrones de diseño web.
patrones de diseño web.
 
12.diseño basado en patrones
12.diseño basado en patrones12.diseño basado en patrones
12.diseño basado en patrones
 
Inv Aplicada 3
Inv Aplicada 3Inv Aplicada 3
Inv Aplicada 3
 
Teatina_ Lima
Teatina_ LimaTeatina_ Lima
Teatina_ Lima
 
Clase01 02 Introduccion
Clase01 02 IntroduccionClase01 02 Introduccion
Clase01 02 Introduccion
 
Plan de Clase del Taller de Diseño 1
Plan de Clase del Taller de Diseño 1Plan de Clase del Taller de Diseño 1
Plan de Clase del Taller de Diseño 1
 
Introduccion a la_teoria_de_la_arquitectura
Introduccion a la_teoria_de_la_arquitecturaIntroduccion a la_teoria_de_la_arquitectura
Introduccion a la_teoria_de_la_arquitectura
 
1 3 ingenieria software y patrones de diseño
1 3 ingenieria software y patrones de diseño1 3 ingenieria software y patrones de diseño
1 3 ingenieria software y patrones de diseño
 

Similar a Diseño arquitectónico

Principios de diseño de la arquitectura del software
Principios de diseño de la arquitectura del softwarePrincipios de diseño de la arquitectura del software
Principios de diseño de la arquitectura del softwareJose Patricio Bovet Derpich
 
Ingenieria de software - Unidad 3 arquitecturas de software
Ingenieria de software - Unidad 3 arquitecturas de softwareIngenieria de software - Unidad 3 arquitecturas de software
Ingenieria de software - Unidad 3 arquitecturas de softwareJosé Antonio Sandoval Acosta
 
Clase7 unidad1
Clase7 unidad1Clase7 unidad1
Clase7 unidad1zurda21
 
1-Unidad 1: Arquitectura de Diseño-1.1 MVC-Introducción
1-Unidad 1: Arquitectura de Diseño-1.1 MVC-Introducción1-Unidad 1: Arquitectura de Diseño-1.1 MVC-Introducción
1-Unidad 1: Arquitectura de Diseño-1.1 MVC-IntroducciónLuis Fernando Aguas Bucheli
 
Arquitectura de software
Arquitectura de softwareArquitectura de software
Arquitectura de softwareLiliana Pacheco
 
Conceptosdemodelado.pdf
Conceptosdemodelado.pdfConceptosdemodelado.pdf
Conceptosdemodelado.pdfssuser20fade
 
DiseñO Del Software E IngenieríA Del Software
DiseñO Del Software E IngenieríA Del SoftwareDiseñO Del Software E IngenieríA Del Software
DiseñO Del Software E IngenieríA Del Softwarelcastillo110
 
Arquitecturas de software exposicion
Arquitecturas de software   exposicionArquitecturas de software   exposicion
Arquitecturas de software exposicionjuca piro
 

Similar a Diseño arquitectónico (20)

Principios de diseño de la arquitectura del software
Principios de diseño de la arquitectura del softwarePrincipios de diseño de la arquitectura del software
Principios de diseño de la arquitectura del software
 
6t
6t6t
6t
 
Diseño arquitectónico
Diseño arquitectónicoDiseño arquitectónico
Diseño arquitectónico
 
Ingenieria de software - Unidad 3 arquitecturas de software
Ingenieria de software - Unidad 3 arquitecturas de softwareIngenieria de software - Unidad 3 arquitecturas de software
Ingenieria de software - Unidad 3 arquitecturas de software
 
Principios diseño del software
Principios diseño del software Principios diseño del software
Principios diseño del software
 
Arquitectura de Software
Arquitectura de SoftwareArquitectura de Software
Arquitectura de Software
 
Unidad v diseno_isbuap2020
Unidad v diseno_isbuap2020Unidad v diseno_isbuap2020
Unidad v diseno_isbuap2020
 
Arquitectura. de Software. en ambientes distribuidos.
Arquitectura. de Software. en ambientes distribuidos.Arquitectura. de Software. en ambientes distribuidos.
Arquitectura. de Software. en ambientes distribuidos.
 
Clase7
Clase7Clase7
Clase7
 
Clase7 unidad1
Clase7 unidad1Clase7 unidad1
Clase7 unidad1
 
1-Unidad 1: Arquitectura de Diseño-1.1 MVC-Introducción
1-Unidad 1: Arquitectura de Diseño-1.1 MVC-Introducción1-Unidad 1: Arquitectura de Diseño-1.1 MVC-Introducción
1-Unidad 1: Arquitectura de Diseño-1.1 MVC-Introducción
 
Arquitectura de software
Arquitectura de softwareArquitectura de software
Arquitectura de software
 
Conceptosdemodelado.pdf
Conceptosdemodelado.pdfConceptosdemodelado.pdf
Conceptosdemodelado.pdf
 
DiseñO Del Software E IngenieríA Del Software
DiseñO Del Software E IngenieríA Del SoftwareDiseñO Del Software E IngenieríA Del Software
DiseñO Del Software E IngenieríA Del Software
 
Arquitecturas de software exposicion
Arquitecturas de software   exposicionArquitecturas de software   exposicion
Arquitecturas de software exposicion
 
Unidad 4. diseno del sistema
Unidad 4. diseno del sistemaUnidad 4. diseno del sistema
Unidad 4. diseno del sistema
 
Diseño de sistemas
Diseño de sistemasDiseño de sistemas
Diseño de sistemas
 
Ciclo de Vida y roles
Ciclo de Vida y roles Ciclo de Vida y roles
Ciclo de Vida y roles
 
Diseño de Software
Diseño de SoftwareDiseño de Software
Diseño de Software
 
1-Unidad 1. Arquitectura de Diseño
1-Unidad 1. Arquitectura de Diseño1-Unidad 1. Arquitectura de Diseño
1-Unidad 1. Arquitectura de Diseño
 

Diseño arquitectónico

  • 2. Índice 0-Objetivos de la presentación. 1-Qué es el diseño arquitectónico? 2-Decisiones de Diseño Arquitectónico. 3-Vistas Arquitectónicas. 4-Patrones Arquitectónicos. 5-Arquitecturas de Aplicación. 2
  • 3. Objetivos de la presentación0 3
  • 4. Objetivos Entender porque el diseño arquitectónico del software es importante. Comprender las decisiones que se deben tomar respecto al sistema durante el proceso de diseño arquitectónico. 4
  • 5. Objetivos Introducir el concepto de patrones arquitectónicos. Conocer los patrones arquitectónicos usados con frecuencia en diferentes tipos de aplicaciones. 5
  • 6. Que es el diseño arquitectónico1 6
  • 7. Que es el Diseño Arquitectónico Organización del sistema -> Diseño de la estructura global. Identificación componentes estructurales principales y la relación entre ellos. Desarrollo incremental de arquitecturas no suele tener éxito. 7
  • 8. Arquitectura de un sistema de control para un robot empacador 8
  • 9. Abstracción en el diseño arquitectónico Architecture in the small: Arquitectura de los programas individuales. Architecture in the large: Arquitectura de sistemas complejos. Distribuidos en diferentes computadoras. 9
  • 10. Importancia de la arquitectura del software Requisitos funcionales: Componentes individuales Requisitos no funcionales: La manera en que los componentes están organizados y en que se comunican. 10
  • 11. Ventajas de una arquitectura explícita Comunicación con los interesados (stakeholders) Análisis de Sistemas Reutilización a gran escala 11
  • 12. Representación Diagrama de bloques: Muy abstractos. Útiles para la comunicación. Contradicción? No, el modelo puede ser usado de distintas maneras 12
  • 13. Uso de los modelos arquitectónicos Cómo una manera de facilitar la discusión sobre el diseño del sistema: Discusión sobre el sistema cómo un todo. Cómo una manera de documentar la arquitectura que ha sido: Mostrar componentes, sus interfaces y sus conecciones. 13
  • 14. Decisiones de diseño arquitectónico2 14
  • 15. Decisiones del diseño arquitectónico Procesos difieren dependiendo del tipo de sistema que está siendo desarrollado. Conjunto de decisiones comunes a todos los procesos de diseño. Pensar el diseño arquitectónico cómo una serie de decisiones más que cómo una secuencia de actividades. 15
  • 16. Decisiones del diseño arquitectónico Arquitectura de aplicaciones genéricas. Distribución del sistema. Patrones arquitectónicos (architectural styles). Enfoque fundamental. Descomposición del sistema. Estrategia de control. Evaluación del diseño. Documentación. 16
  • 17. Arquitectura y características del sistema Desempeño Seguridad de datos (security) Arquitectura de capas Seguridad de personas(safety) Disponibilidad Mantenibilidad 17
  • 19. Vistas Arquitectónicas Perspectivas y vistas útiles para documentar y diseñar la arquitectura. Notación ha ser usada. Cada modelo arquitectónico muestra solo una vista o perspectiva. 19
  • 20. Vista del modelo de la arquitectura 4+1 Vista lógica: abstracciones clave Vista de procesos: procesos interactuantes Vista de desarrollo: cómo se descompone en módulos durante el desarrollo Vista física: cómo se distribuye (hw y sw) a través de distintos procesadores. Casos de uso relacionados 20
  • 21. Dónde estamos? 0-Objetivos de la presentación. 1-Qué es el diseño arquitectónico? 2-Decisiones de Diseño Arquitectónico. 3-Vistas Arquitectónicas. 4-Patrones Arquitectónicos. 5-Arquitecturas de Aplicación. 21
  • 23. Patrones arquitectónicos Representar, compartir y reutilizar conocimiento. Descripción estilizada de una buena práctica de diseño, probada en diferentes ambientes. Deben incluir información sobre cuándo son útiles y cuando no. Representados mediantes tablas y gráficos. 23
  • 25. La organización del patrón MVC 25
  • 26. Arquitectura de una aplicación web que usa el patrón MVC 26
  • 27. Arquitectura de capas (layered) Usada para modelar la interconexión entre subsistemas. Organiza el sistema en un conjunto de capas donde cada una brinda una serie de servicios dados. Permite el desarrollo incremental de las capas. Solo las capas adyacentes se ven afectadas. 27
  • 28. Patrón de Arquitectura en capas 28
  • 29. Una arquitectura de capas genérica 29
  • 30. La arquitectura del sistema LIBSYS 30
  • 32. Arquitectura de Repositorio Los subsistemas deben intercambiar datos: -BD Centralizada o repositorio. -Cada subsistema mantiene su BD y los datos se transfieren explícitamente. 32
  • 34. Arquitectura de repositorio para un IDE 34
  • 35. Arquitectura Cliente-Servidor Datos y procesos están distribuidos a través de una gama de componentes. Conjunto de servidores autónomos proveen servicios específicos, Conjunto de clientes que solicitan esos servicios y Red que permite a los clientes acceder a los servidores 35
  • 38. Arquitectura Pipe and Filter Transformaciones funcionales procesan entradas para producir salidas. Datos fluyen de una a otra y son transformados en el camino. 38
  • 40. Ejemplo arquitectura Pipe and Filter 40
  • 42. Arquitecturas de aplicación Usados para satisfacer necesidades de una organización. Organizaciones similares tienen requerimientos parecidos. Podemos hablar de arquitecturas de aplicación genéricas que podamos adaptar. 42
  • 43. Uso de las arquitecturas de aplicación Punto de partida para el proceso de diseño arquitectónico. Lista de comparación en el diseño (design checklist). Una manera de organizar el trabajo del equipo de desarrollo. Medida de reutilización de componentes. Vocabulario para hablar sobre tipos de aplicación. 43
  • 44. Ejemplos de tipos de aplicaciones Procesamiento de: Datos. Transacciones. Eventos. Lenguajes. 44
  • 45. Ejemplos de tipos de aplicaciones Nos enfocaremos en dos tipos de aplicaciones. Procesamiento de transacciones: -Sistemas de comercio electrónico (e-commerce) -Sistemas de reservación Procesamiento de lenguaje: -Compiladores -Intérpretes de comandos 45
  • 46. Sistemas de procesamiento de transacciones Procesos del usuario solicitan información de una base de datos o quieren actualizarla. Perspectiva del usuario: transacción es cualquier secuencia coherente de acciones que satisfacen un objetivo. 46
  • 47. Arquitectura de aplicaciones de procesamiento de transacciones 47
  • 48. Arquitectura de software de un ATM 48
  • 49. Arquitectura de sistemas de información Tienen una estructura genérica que puede organizarse cómo una arquitectura de capas. Sistemas basados en transacciones que generalmente involucran operaciones con bases de datos. 49
  • 50. Arquitectura en capas de un sistema de información 50
  • 52. Sistemas de información basados en web Interfaz de usuario implementada mediante un navegador web. Ej: comercio electrónico. Algunas funcionalidades adicionales. 52
  • 53. Implementación del servidor Usualmente implementados cómo arquitecturas cliente-servidor multinivel (multi-tier) Servidor responsable de todas las interacciones con el usuario. Gestor de la base de datos maneja dlas transacciones. 53
  • 54. Sistemas de procesamiento de lenguajes Aceptan un lenguaje natural o artificial cómo entrada y generan alguna otra representación de ese lenguaje. Compiladores tienen una arquitectura genérica (análisis léxico, sintáctico, etc) 54
  • 55. Arquitectura de un sistema de procesamiento de lenguajes 55
  • 56. Componentes de un compilador Un analizador léxico. Una tabla de símbolos. Un analizador sintáctico. Un árbol sintáctico. Un analizador semántico. Un generador de código. 56
  • 57. Compilador con arquitectura Pipe and Filter 57
  • 58. Procesamiento de lenguajes con arquitectura de repositorio 58
  • 59. Recapitulando (1) Arquitectura de software como descripción de la organización de un sistema. Decisiones de diseño arquitectónico incluyen: tipo de aplicación, distribución y patrones arquitectónicos. Arquitecturas pueden ser documentadas desde varias perspectivas. 59
  • 60. Recapitulando (2) Patrones arquitectónicos son una manera de reutilizar conocimiento. Modelos de sistemas de aplicación ayudan comprensión y comparación. Sistemas de procesamiento de transacciones y de lenguajes. 60
  • 61. Créditos y referencias “Software Engineering”, Ian Sommerville, 9th Edition. Pags: 147-172 El template de la presentación es de SlidesCarnival. 61

Notas del editor

  1. -Cómo vimos en el capítulo 2, el diseñó arquitectónico es la primera etapa en el proceso de diseñó de software -La salida del proceso del diseñó arquitectónico es un modelo arquitectónico que describe cómo el sistema está organizado en un conjunto de componentes intercomunicados. -Refactorizacón de componentenes en respuesta a los cambios es relativamente fácil, refactorización de la arquitectura de un sistema suele ser costoso.