MÓDULO 1.4 ARQUITECTURA DE SOFTWARE CON UML · • Modelo de flujo de datos • Nodos fuente,...

35
INGENIERÍA DE SOFTWARE II MÓDULO 1.4 ARQUITECTURA DE SOFTWARE CON UML Gabriel Tamura [email protected] Cali, 2008

Transcript of MÓDULO 1.4 ARQUITECTURA DE SOFTWARE CON UML · • Modelo de flujo de datos • Nodos fuente,...

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Arquitectura de Software con UML 35

Estilos de Arquitectura de SoftwareSistemas Basados en Reglas