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

Post on 07-Aug-2020

5 views 0 download

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

INGENIERÍA DE SOFTWARE II

MÓDULO 1.4

ARQUITECTURA DE SOFTWARE CON UML

Gabriel Tamuragtamura@icesi.edu.co

Cali, 2008

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

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

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?

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

Arquitectura de Software con UML 6

La Taxonomía de Flynn

MISD (tuberías)

Arquitectura de Software con UML 7

La Taxonomía de Flynn

MISD (tuberías)

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:

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”

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

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”

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

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

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

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)

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

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

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

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

Arquitectura de Software con UML 20

Redes de Interconexión de Procesadores

Topología Mariposa:

• Igual que el hipercubo, su estructura es recursiva

Arquitectura de Software con UML 21

Arquitectura de Software

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

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

Arquitectura de Software con UML 24

Arquitectura de Software

Arquitectura de Software con UML 25

Arquitectura de Software Qué se entiende por arquitectura

de Software

Arquitectura de Software con UML 26

Arquitectura de Software Qué se entiende por arquitectura de Software

Arquitectura de Software con UML 27

Physical (Hardware) Architecture

Arquitectura de Software

Arquitectura de Software con UML 28

Estilos de Arquitectura de Software

Tipos Abstractos de Datos y Objetos

Arquitectura de Software con UML 29

Estilos de Arquitectura de Software

Por Capas (estratificado)

Arquitectura de Software con UML 30

Estilos de Arquitectura de Software

Blackboard o Repositorio Centralizado

Arquitectura de Software con UML 31

Estilos de Arquitectura de Software

Intérprete

Arquitectura de Software con UML 32

Estilos de Arquitectura de Software

Compilador Canónico

Arquitectura de Software con UML 33

Estilos de Arquitectura de Software

Variantes por Capas - Estratificado

Arquitectura de Software con UML 34

Estilos de Arquitectura de Software

Sistemas Basados en Reglas

Arquitectura de Software con UML 35

Estilos de Arquitectura de SoftwareSistemas Basados en Reglas