![Page 1: MÓDULO 1.4 ARQUITECTURA DE SOFTWARE CON UML · • Modelo de flujo de datos • Nodos fuente, nodos sumidero ... comunicación vs. Costo. Arquitectura de Software con UML 17 Redes](https://reader034.vdocuments.co/reader034/viewer/2022043008/5f99bb161bb68912820b5a76/html5/thumbnails/1.jpg)
INGENIERÍA DE SOFTWARE II
MÓDULO 1.4
ARQUITECTURA DE SOFTWARE CON UML
Gabriel [email protected]
Cali, 2008
![Page 2: MÓDULO 1.4 ARQUITECTURA DE SOFTWARE CON UML · • Modelo de flujo de datos • Nodos fuente, nodos sumidero ... comunicación vs. Costo. Arquitectura de Software con UML 17 Redes](https://reader034.vdocuments.co/reader034/viewer/2022043008/5f99bb161bb68912820b5a76/html5/thumbnails/2.jpg)
Arquitectura de Software con UML 2
Arquitectura de Software con UML
1. Motivación2. La Taxonomía de Flynn3. Estructura de Procesamiento4. Estructura de Memoria5. Redes de Interconexión6. Arquitectura de Software7. Estilos de Arquitectura
PROGRAMA
![Page 3: MÓDULO 1.4 ARQUITECTURA DE SOFTWARE CON UML · • Modelo de flujo de datos • Nodos fuente, nodos sumidero ... comunicación vs. Costo. Arquitectura de Software con UML 17 Redes](https://reader034.vdocuments.co/reader034/viewer/2022043008/5f99bb161bb68912820b5a76/html5/thumbnails/3.jpg)
Arquitectura de Software con UML 3
Motivación
Qué tan importante es la eficiencia en tiempo en una solución computacional ?
Cuál es la incidencia que tiene la arquitectura y la estrategia de solución en la eficiencia computacional (requerimiento no funcional) ?
Problema ejemplo: entrega de paquetes (un vehículo, dos vehículos, velocidad constante de
Costo vs. tiempo, complejidad
![Page 4: MÓDULO 1.4 ARQUITECTURA DE SOFTWARE CON UML · • Modelo de flujo de datos • Nodos fuente, nodos sumidero ... comunicación vs. Costo. Arquitectura de Software con UML 17 Redes](https://reader034.vdocuments.co/reader034/viewer/2022043008/5f99bb161bb68912820b5a76/html5/thumbnails/4.jpg)
Arquitectura de Software con UML 4
Motivación
En muchos casos, los requerimientos no funcionales son tan importantes como los funcionales.
Cuál es la complejidad algorítmica temporal de este fragmento de código ?
Qué estrategias se pueden usar para mejorar lo anterior ?
Si dispone de dos procesadores ?de tres procesadores ?de seis procesadores ?de doce procesadores ?
Cuál es la relación entre los requerimientos y la arquitectura del software y sus propiedades?
![Page 5: MÓDULO 1.4 ARQUITECTURA DE SOFTWARE CON UML · • Modelo de flujo de datos • Nodos fuente, nodos sumidero ... comunicación vs. Costo. Arquitectura de Software con UML 17 Redes](https://reader034.vdocuments.co/reader034/viewer/2022043008/5f99bb161bb68912820b5a76/html5/thumbnails/5.jpg)
Arquitectura de Software con UML 5
La Taxonomía de Flynn
1966: Michael Flynn define su famosa taxonomía para clasificar sistemas de procesadores paralelos
Basado en la fuente y cantidad de flujos distintos de instrucciones y de datos de entrada:– SISD– MISD– SIMD– MIMD
![Page 6: MÓDULO 1.4 ARQUITECTURA DE SOFTWARE CON UML · • Modelo de flujo de datos • Nodos fuente, nodos sumidero ... comunicación vs. Costo. Arquitectura de Software con UML 17 Redes](https://reader034.vdocuments.co/reader034/viewer/2022043008/5f99bb161bb68912820b5a76/html5/thumbnails/6.jpg)
Arquitectura de Software con UML 6
La Taxonomía de Flynn
MISD (tuberías)
![Page 7: MÓDULO 1.4 ARQUITECTURA DE SOFTWARE CON UML · • Modelo de flujo de datos • Nodos fuente, nodos sumidero ... comunicación vs. Costo. Arquitectura de Software con UML 17 Redes](https://reader034.vdocuments.co/reader034/viewer/2022043008/5f99bb161bb68912820b5a76/html5/thumbnails/7.jpg)
Arquitectura de Software con UML 7
La Taxonomía de Flynn
MISD (tuberías)
![Page 8: MÓDULO 1.4 ARQUITECTURA DE SOFTWARE CON UML · • Modelo de flujo de datos • Nodos fuente, nodos sumidero ... comunicación vs. Costo. Arquitectura de Software con UML 17 Redes](https://reader034.vdocuments.co/reader034/viewer/2022043008/5f99bb161bb68912820b5a76/html5/thumbnails/8.jpg)
Arquitectura de Software con UML 8
La Taxonomía de Flynn
SIMDProgramación paralela de datosProgramación paralela de control
Multiplicación de matrices en SIMD con seis procesadores:
![Page 9: MÓDULO 1.4 ARQUITECTURA DE SOFTWARE CON UML · • Modelo de flujo de datos • Nodos fuente, nodos sumidero ... comunicación vs. Costo. Arquitectura de Software con UML 17 Redes](https://reader034.vdocuments.co/reader034/viewer/2022043008/5f99bb161bb68912820b5a76/html5/thumbnails/9.jpg)
Arquitectura de Software con UML 9
La Taxonomía de Flynn
Problemas de síncronización:
• Necesidad de que un procesador espere a que otro termine su procesamiento para él poder hacer el suyo (tuberías, SIMD en general)
• Sincronización por tiempo (actividades iguales, mismos retrasos)
• Sincronización por “Barrera”
![Page 10: MÓDULO 1.4 ARQUITECTURA DE SOFTWARE CON UML · • Modelo de flujo de datos • Nodos fuente, nodos sumidero ... comunicación vs. Costo. Arquitectura de Software con UML 17 Redes](https://reader034.vdocuments.co/reader034/viewer/2022043008/5f99bb161bb68912820b5a76/html5/thumbnails/10.jpg)
Arquitectura de Software con UML 10
La Taxonomía de Flynn
MIMD síncrono:
• Máquinas sistólicas: máquinas de tubería (sistema cardiovascular) de dos dimensiones
• Varias etapas (cada etapa es una tubería)
• Cada etapa recibe como entrada la salida de la anterior: varios flujos de entrada de datos
![Page 11: MÓDULO 1.4 ARQUITECTURA DE SOFTWARE CON UML · • Modelo de flujo de datos • Nodos fuente, nodos sumidero ... comunicación vs. Costo. Arquitectura de Software con UML 17 Redes](https://reader034.vdocuments.co/reader034/viewer/2022043008/5f99bb161bb68912820b5a76/html5/thumbnails/11.jpg)
Arquitectura de Software con UML 11
La Taxonomía de Flynn
MIMD asíncrono
• Modelo de flujo de datos• Nodos fuente, nodos
sumidero• Multiplicación de
matrices en SIMD con doce procesadores: dos “etapas”
![Page 12: MÓDULO 1.4 ARQUITECTURA DE SOFTWARE CON UML · • Modelo de flujo de datos • Nodos fuente, nodos sumidero ... comunicación vs. Costo. Arquitectura de Software con UML 17 Redes](https://reader034.vdocuments.co/reader034/viewer/2022043008/5f99bb161bb68912820b5a76/html5/thumbnails/12.jpg)
Arquitectura de Software con UML 12
Escalamiento de la Taxonomía de Flynn
Granularidad
• Tamaño de la operación que realiza cada procesador• Grano fino (una sola instrucción de nivel de máquina
por vez), medio (máquinas sistólicas), grueso (poca sincronzación en general)
• Escalamiento de procesadores a sistemas• Arquitecturas
– Monolítica– Centralizada– Cliente servidor– De tres capas– De N capas– Distribuida
![Page 13: MÓDULO 1.4 ARQUITECTURA DE SOFTWARE CON UML · • Modelo de flujo de datos • Nodos fuente, nodos sumidero ... comunicación vs. Costo. Arquitectura de Software con UML 17 Redes](https://reader034.vdocuments.co/reader034/viewer/2022043008/5f99bb161bb68912820b5a76/html5/thumbnails/13.jpg)
Arquitectura de Software con UML 13
Estructura de Memoria
• La memoria es un recurso que comparten procesadores
• Base del trabajo o computación cooperativo
Tipos de estructura de memoria en multiprocesamiento:
• Memoria físicamente compartida: Cuello de botella (acceso)
• Memoria lógicamente compartida
• Memoria distribuida
![Page 14: MÓDULO 1.4 ARQUITECTURA DE SOFTWARE CON UML · • Modelo de flujo de datos • Nodos fuente, nodos sumidero ... comunicación vs. Costo. Arquitectura de Software con UML 17 Redes](https://reader034.vdocuments.co/reader034/viewer/2022043008/5f99bb161bb68912820b5a76/html5/thumbnails/14.jpg)
Arquitectura de Software con UML 14
Memoria Distribuida
Sistemas de redes de procesadores cada uno con su memoria (escala: base de datos distribuida)
Estructura de Memoria
![Page 15: MÓDULO 1.4 ARQUITECTURA DE SOFTWARE CON UML · • Modelo de flujo de datos • Nodos fuente, nodos sumidero ... comunicación vs. Costo. Arquitectura de Software con UML 17 Redes](https://reader034.vdocuments.co/reader034/viewer/2022043008/5f99bb161bb68912820b5a76/html5/thumbnails/15.jpg)
Arquitectura de Software con UML 15
Redes de Interconexión de Procesadores
Interconexión:• Entre procesadores• Entre procesadores y memorias
Qué fluye?• Datos• Información de control (sincronización)
Topologías:
• Canal Compartido (Ethernet)
![Page 16: MÓDULO 1.4 ARQUITECTURA DE SOFTWARE CON UML · • Modelo de flujo de datos • Nodos fuente, nodos sumidero ... comunicación vs. Costo. Arquitectura de Software con UML 17 Redes](https://reader034.vdocuments.co/reader034/viewer/2022043008/5f99bb161bb68912820b5a76/html5/thumbnails/16.jpg)
Arquitectura de Software con UML 16
Redes de Interconexión de Procesadores
Topología Interconexión completa o total:
• N procesadores: ( n(n-1)/2 ) enlaces
• Velocidad de acceso y comunicación vs. Costo
![Page 17: MÓDULO 1.4 ARQUITECTURA DE SOFTWARE CON UML · • Modelo de flujo de datos • Nodos fuente, nodos sumidero ... comunicación vs. Costo. Arquitectura de Software con UML 17 Redes](https://reader034.vdocuments.co/reader034/viewer/2022043008/5f99bb161bb68912820b5a76/html5/thumbnails/17.jpg)
Arquitectura de Software con UML 17
Redes de Interconexión de Procesadores
Topología hipercubo de grado n (n>0):
• Cada procesador está conectado directamente a otros n-1 procesadores
• Tiene 2n nodos (procesadores)• Tiene n(n-1)/2 enlaces• Balance entre Velocidad de acceso y
comunicación vs. Costo
![Page 18: MÓDULO 1.4 ARQUITECTURA DE SOFTWARE CON UML · • Modelo de flujo de datos • Nodos fuente, nodos sumidero ... comunicación vs. Costo. Arquitectura de Software con UML 17 Redes](https://reader034.vdocuments.co/reader034/viewer/2022043008/5f99bb161bb68912820b5a76/html5/thumbnails/18.jpg)
Arquitectura de Software con UML 18
Redes de Interconexión de Procesadores
Topología hipercubo:
• Estructura recursiva dimensional
• Un hipercubo de grado n+1 se construye con dos hipercubos de grado n
![Page 19: MÓDULO 1.4 ARQUITECTURA DE SOFTWARE CON UML · • Modelo de flujo de datos • Nodos fuente, nodos sumidero ... comunicación vs. Costo. Arquitectura de Software con UML 17 Redes](https://reader034.vdocuments.co/reader034/viewer/2022043008/5f99bb161bb68912820b5a76/html5/thumbnails/19.jpg)
Arquitectura de Software con UML 19
Redes de Interconexión de Procesadores
Topología Mariposa:
• Reduce el número de interconexiones entre procesadores con respecto a hipercubo, pero mantiene algunas relaciones de interconectividad
![Page 20: MÓDULO 1.4 ARQUITECTURA DE SOFTWARE CON UML · • Modelo de flujo de datos • Nodos fuente, nodos sumidero ... comunicación vs. Costo. Arquitectura de Software con UML 17 Redes](https://reader034.vdocuments.co/reader034/viewer/2022043008/5f99bb161bb68912820b5a76/html5/thumbnails/20.jpg)
Arquitectura de Software con UML 20
Redes de Interconexión de Procesadores
Topología Mariposa:
• Igual que el hipercubo, su estructura es recursiva
![Page 21: MÓDULO 1.4 ARQUITECTURA DE SOFTWARE CON UML · • Modelo de flujo de datos • Nodos fuente, nodos sumidero ... comunicación vs. Costo. Arquitectura de Software con UML 17 Redes](https://reader034.vdocuments.co/reader034/viewer/2022043008/5f99bb161bb68912820b5a76/html5/thumbnails/21.jpg)
Arquitectura de Software con UML 21
Arquitectura de Software
![Page 22: MÓDULO 1.4 ARQUITECTURA DE SOFTWARE CON UML · • Modelo de flujo de datos • Nodos fuente, nodos sumidero ... comunicación vs. Costo. Arquitectura de Software con UML 17 Redes](https://reader034.vdocuments.co/reader034/viewer/2022043008/5f99bb161bb68912820b5a76/html5/thumbnails/22.jpg)
Arquitectura de Software con UML 22
Arquitectura de Software
Arquitectura de Software? Cuál es la naturaleza de los
componentes y la relación entre ellos? Qué es un componente y qué denota?
Módulo, tarea, programa, proceso ? Cómo y dónde se ejecutan ? En
paralelo ? En secuencia ? Cómo se comunican ?
Qué significan las líneas ? Sincronización, comunicación, flujo de control o combinación de ellos ?
Qué significan los niveles (CP es jerárquicamente superior o no cabía horizontalmente) ?
Cómo opera en tiempo de ejecución ?
Qué se entiende por arquitectura de Software
![Page 23: MÓDULO 1.4 ARQUITECTURA DE SOFTWARE CON UML · • Modelo de flujo de datos • Nodos fuente, nodos sumidero ... comunicación vs. Costo. Arquitectura de Software con UML 17 Redes](https://reader034.vdocuments.co/reader034/viewer/2022043008/5f99bb161bb68912820b5a76/html5/thumbnails/23.jpg)
Arquitectura de Software con UML 23
Arquitectura de Software
Arquitectura de Software de un sistema computacional:
Estructura o estructuras del sistema: componentes, propiedades externamente visibles y las relaciones entre ellos
Propiedades externamente visibles: propiedades que un componente puede ver de los demás en cuanto a sus propias necesidades: servicios, características de desempeño, uso de recursos
Vista global del sistema con información importante de análisis, toma de decisiones y reducción de riesgos
![Page 24: MÓDULO 1.4 ARQUITECTURA DE SOFTWARE CON UML · • Modelo de flujo de datos • Nodos fuente, nodos sumidero ... comunicación vs. Costo. Arquitectura de Software con UML 17 Redes](https://reader034.vdocuments.co/reader034/viewer/2022043008/5f99bb161bb68912820b5a76/html5/thumbnails/24.jpg)
Arquitectura de Software con UML 24
Arquitectura de Software
![Page 25: MÓDULO 1.4 ARQUITECTURA DE SOFTWARE CON UML · • Modelo de flujo de datos • Nodos fuente, nodos sumidero ... comunicación vs. Costo. Arquitectura de Software con UML 17 Redes](https://reader034.vdocuments.co/reader034/viewer/2022043008/5f99bb161bb68912820b5a76/html5/thumbnails/25.jpg)
Arquitectura de Software con UML 25
Arquitectura de Software Qué se entiende por arquitectura
de Software
![Page 26: MÓDULO 1.4 ARQUITECTURA DE SOFTWARE CON UML · • Modelo de flujo de datos • Nodos fuente, nodos sumidero ... comunicación vs. Costo. Arquitectura de Software con UML 17 Redes](https://reader034.vdocuments.co/reader034/viewer/2022043008/5f99bb161bb68912820b5a76/html5/thumbnails/26.jpg)
Arquitectura de Software con UML 26
Arquitectura de Software Qué se entiende por arquitectura de Software
![Page 27: MÓDULO 1.4 ARQUITECTURA DE SOFTWARE CON UML · • Modelo de flujo de datos • Nodos fuente, nodos sumidero ... comunicación vs. Costo. Arquitectura de Software con UML 17 Redes](https://reader034.vdocuments.co/reader034/viewer/2022043008/5f99bb161bb68912820b5a76/html5/thumbnails/27.jpg)
Arquitectura de Software con UML 27
Physical (Hardware) Architecture
Arquitectura de Software
![Page 28: MÓDULO 1.4 ARQUITECTURA DE SOFTWARE CON UML · • Modelo de flujo de datos • Nodos fuente, nodos sumidero ... comunicación vs. Costo. Arquitectura de Software con UML 17 Redes](https://reader034.vdocuments.co/reader034/viewer/2022043008/5f99bb161bb68912820b5a76/html5/thumbnails/28.jpg)
Arquitectura de Software con UML 28
Estilos de Arquitectura de Software
Tipos Abstractos de Datos y Objetos
![Page 29: MÓDULO 1.4 ARQUITECTURA DE SOFTWARE CON UML · • Modelo de flujo de datos • Nodos fuente, nodos sumidero ... comunicación vs. Costo. Arquitectura de Software con UML 17 Redes](https://reader034.vdocuments.co/reader034/viewer/2022043008/5f99bb161bb68912820b5a76/html5/thumbnails/29.jpg)
Arquitectura de Software con UML 29
Estilos de Arquitectura de Software
Por Capas (estratificado)
![Page 30: MÓDULO 1.4 ARQUITECTURA DE SOFTWARE CON UML · • Modelo de flujo de datos • Nodos fuente, nodos sumidero ... comunicación vs. Costo. Arquitectura de Software con UML 17 Redes](https://reader034.vdocuments.co/reader034/viewer/2022043008/5f99bb161bb68912820b5a76/html5/thumbnails/30.jpg)
Arquitectura de Software con UML 30
Estilos de Arquitectura de Software
Blackboard o Repositorio Centralizado
![Page 31: MÓDULO 1.4 ARQUITECTURA DE SOFTWARE CON UML · • Modelo de flujo de datos • Nodos fuente, nodos sumidero ... comunicación vs. Costo. Arquitectura de Software con UML 17 Redes](https://reader034.vdocuments.co/reader034/viewer/2022043008/5f99bb161bb68912820b5a76/html5/thumbnails/31.jpg)
Arquitectura de Software con UML 31
Estilos de Arquitectura de Software
Intérprete
![Page 32: MÓDULO 1.4 ARQUITECTURA DE SOFTWARE CON UML · • Modelo de flujo de datos • Nodos fuente, nodos sumidero ... comunicación vs. Costo. Arquitectura de Software con UML 17 Redes](https://reader034.vdocuments.co/reader034/viewer/2022043008/5f99bb161bb68912820b5a76/html5/thumbnails/32.jpg)
Arquitectura de Software con UML 32
Estilos de Arquitectura de Software
Compilador Canónico
![Page 33: MÓDULO 1.4 ARQUITECTURA DE SOFTWARE CON UML · • Modelo de flujo de datos • Nodos fuente, nodos sumidero ... comunicación vs. Costo. Arquitectura de Software con UML 17 Redes](https://reader034.vdocuments.co/reader034/viewer/2022043008/5f99bb161bb68912820b5a76/html5/thumbnails/33.jpg)
Arquitectura de Software con UML 33
Estilos de Arquitectura de Software
Variantes por Capas - Estratificado
![Page 34: MÓDULO 1.4 ARQUITECTURA DE SOFTWARE CON UML · • Modelo de flujo de datos • Nodos fuente, nodos sumidero ... comunicación vs. Costo. Arquitectura de Software con UML 17 Redes](https://reader034.vdocuments.co/reader034/viewer/2022043008/5f99bb161bb68912820b5a76/html5/thumbnails/34.jpg)
Arquitectura de Software con UML 34
Estilos de Arquitectura de Software
Sistemas Basados en Reglas
![Page 35: MÓDULO 1.4 ARQUITECTURA DE SOFTWARE CON UML · • Modelo de flujo de datos • Nodos fuente, nodos sumidero ... comunicación vs. Costo. Arquitectura de Software con UML 17 Redes](https://reader034.vdocuments.co/reader034/viewer/2022043008/5f99bb161bb68912820b5a76/html5/thumbnails/35.jpg)
Arquitectura de Software con UML 35
Estilos de Arquitectura de SoftwareSistemas Basados en Reglas