mÓdulo 1.4 arquitectura de software con uml€¦ · arquitectura de software de un sistema...

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

Upload: others

Post on 11-Jun-2020

8 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: MÓDULO 1.4 ARQUITECTURA DE SOFTWARE CON UML€¦ · Arquitectura de Software de un sistema computacional: Estructura o estructuras del sistema: componentes, propiedades externamente

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€¦ · Arquitectura de Software de un sistema computacional: Estructura o estructuras del sistema: componentes, propiedades externamente

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€¦ · Arquitectura de Software de un sistema computacional: Estructura o estructuras del sistema: componentes, propiedades externamente

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€¦ · Arquitectura de Software de un sistema computacional: Estructura o estructuras del sistema: componentes, propiedades externamente

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€¦ · Arquitectura de Software de un sistema computacional: Estructura o estructuras del sistema: componentes, propiedades externamente

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€¦ · Arquitectura de Software de un sistema computacional: Estructura o estructuras del sistema: componentes, propiedades externamente

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€¦ · Arquitectura de Software de un sistema computacional: Estructura o estructuras del sistema: componentes, propiedades externamente

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€¦ · Arquitectura de Software de un sistema computacional: Estructura o estructuras del sistema: componentes, propiedades externamente

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€¦ · Arquitectura de Software de un sistema computacional: Estructura o estructuras del sistema: componentes, propiedades externamente

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€¦ · Arquitectura de Software de un sistema computacional: Estructura o estructuras del sistema: componentes, propiedades externamente

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€¦ · Arquitectura de Software de un sistema computacional: Estructura o estructuras del sistema: componentes, propiedades externamente

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€¦ · Arquitectura de Software de un sistema computacional: Estructura o estructuras del sistema: componentes, propiedades externamente

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€¦ · Arquitectura de Software de un sistema computacional: Estructura o estructuras del sistema: componentes, propiedades externamente

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€¦ · Arquitectura de Software de un sistema computacional: Estructura o estructuras del sistema: componentes, propiedades externamente

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€¦ · Arquitectura de Software de un sistema computacional: Estructura o estructuras del sistema: componentes, propiedades externamente

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€¦ · Arquitectura de Software de un sistema computacional: Estructura o estructuras del sistema: componentes, propiedades externamente

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€¦ · Arquitectura de Software de un sistema computacional: Estructura o estructuras del sistema: componentes, propiedades externamente

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€¦ · Arquitectura de Software de un sistema computacional: Estructura o estructuras del sistema: componentes, propiedades externamente

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€¦ · Arquitectura de Software de un sistema computacional: Estructura o estructuras del sistema: componentes, propiedades externamente

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€¦ · Arquitectura de Software de un sistema computacional: Estructura o estructuras del sistema: componentes, propiedades externamente

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€¦ · Arquitectura de Software de un sistema computacional: Estructura o estructuras del sistema: componentes, propiedades externamente

Arquitectura de Software con UML 21

Arquitectura de Software

Page 22: MÓDULO 1.4 ARQUITECTURA DE SOFTWARE CON UML€¦ · Arquitectura de Software de un sistema computacional: Estructura o estructuras del sistema: componentes, propiedades externamente

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€¦ · Arquitectura de Software de un sistema computacional: Estructura o estructuras del sistema: componentes, propiedades externamente

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€¦ · Arquitectura de Software de un sistema computacional: Estructura o estructuras del sistema: componentes, propiedades externamente

Arquitectura de Software con UML 24

Arquitectura de Software

Page 25: MÓDULO 1.4 ARQUITECTURA DE SOFTWARE CON UML€¦ · Arquitectura de Software de un sistema computacional: Estructura o estructuras del sistema: componentes, propiedades externamente

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€¦ · Arquitectura de Software de un sistema computacional: Estructura o estructuras del sistema: componentes, propiedades externamente

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€¦ · Arquitectura de Software de un sistema computacional: Estructura o estructuras del sistema: componentes, propiedades externamente

Arquitectura de Software con UML 27

Physical (Hardware) Architecture

Arquitectura de Software

Page 28: MÓDULO 1.4 ARQUITECTURA DE SOFTWARE CON UML€¦ · Arquitectura de Software de un sistema computacional: Estructura o estructuras del sistema: componentes, propiedades externamente

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€¦ · Arquitectura de Software de un sistema computacional: Estructura o estructuras del sistema: componentes, propiedades externamente

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€¦ · Arquitectura de Software de un sistema computacional: Estructura o estructuras del sistema: componentes, propiedades externamente

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€¦ · Arquitectura de Software de un sistema computacional: Estructura o estructuras del sistema: componentes, propiedades externamente

Arquitectura de Software con UML 31

Estilos de Arquitectura de Software

Intérprete

Page 32: MÓDULO 1.4 ARQUITECTURA DE SOFTWARE CON UML€¦ · Arquitectura de Software de un sistema computacional: Estructura o estructuras del sistema: componentes, propiedades externamente

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€¦ · Arquitectura de Software de un sistema computacional: Estructura o estructuras del sistema: componentes, propiedades externamente

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€¦ · Arquitectura de Software de un sistema computacional: Estructura o estructuras del sistema: componentes, propiedades externamente

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€¦ · Arquitectura de Software de un sistema computacional: Estructura o estructuras del sistema: componentes, propiedades externamente

Arquitectura de Software con UML 35

Estilos de Arquitectura de SoftwareSistemas Basados en Reglas