Elementos de la Descripciones...

87
1 Arquitectura de software - UML 1 Elementos de la Descripciones Arquitectónica

Transcript of Elementos de la Descripciones...

Page 1: Elementos de la Descripciones Arquitectónicagabrielmatonte.ueuo.com/materiales/02.0-uml_y_arq.pdf · Arquitectura y Diseño - UML • Vista de Casos de Uso – Describe el comportamiento

1

Arquitectura de software - UML1

Elementos de la Descripciones Arquitectónica

Page 2: Elementos de la Descripciones Arquitectónicagabrielmatonte.ueuo.com/materiales/02.0-uml_y_arq.pdf · Arquitectura y Diseño - UML • Vista de Casos de Uso – Describe el comportamiento

2

Arquitectura de software - UML2

Descripción Arquitectónica

• Modelo del Sistema– Es una representación abstracta del sistema creada para

comprender su estructura y operación.

• Descripción Arquitectónica– “Es un documento, producto u otro artefacto - utilizado para

comunicar o registrar la arquitectura del sistema”. (IEEE ArchitectureWorking Group).

– Incluye un conjunto de vistas (views) las cuales describen determinados aspectos de la arquitectura del sistema.

Page 3: Elementos de la Descripciones Arquitectónicagabrielmatonte.ueuo.com/materiales/02.0-uml_y_arq.pdf · Arquitectura y Diseño - UML • Vista de Casos de Uso – Describe el comportamiento

3

Arquitectura de software - UML3

Descripción Arquitectónica

Modelos delnegocio

Modelos de requerimientos

de software

Modelos de Diseño

Modelos de Componentes

Modelo del Sistema

Vista de Requerimientos

Vista Lógica (diseño)

Vista de Procesos

Vista de Componentes

Vista de Despliegue

Modelo 4 + 1 (Kruchten)

Vistas

Page 4: Elementos de la Descripciones Arquitectónicagabrielmatonte.ueuo.com/materiales/02.0-uml_y_arq.pdf · Arquitectura y Diseño - UML • Vista de Casos de Uso – Describe el comportamiento

4

Arquitectura de software - UML4

Descripción Arquitectónica

VistaDiseño

Vista de Componentes

Vista de Procesos

Vista de Despliegue

Vista de Casos de Uso

Modelo 4 + 1 (Kruchten)

Page 5: Elementos de la Descripciones Arquitectónicagabrielmatonte.ueuo.com/materiales/02.0-uml_y_arq.pdf · Arquitectura y Diseño - UML • Vista de Casos de Uso – Describe el comportamiento

5

Arquitectura de software - UML5

Descripción Arquitectónica

• Vistas de una Arquitectura (4+1)– Las 5 vistas de la Arquitectura de un Sistema.

• Vista de Casos de Uso (Escenarios)– Describe el comportamiento del sistema, basado en los

principales casos de uso, visto desde la perspectiva de los usuarios, analistas y testers.

• Vista de Diseño (Lógica)– Describe el modelo desde los elementos de diseño y de las

colaboraciones entre ellos.

• Vista de Procesos– Describe aspectos de sincronización y concurrencia.

Page 6: Elementos de la Descripciones Arquitectónicagabrielmatonte.ueuo.com/materiales/02.0-uml_y_arq.pdf · Arquitectura y Diseño - UML • Vista de Casos de Uso – Describe el comportamiento

6

Arquitectura de software - UML6

Descripción Arquitectónica

• Vistas de una Arquitectura (4+1) (P. Kruchten)

• Vista de Componentes– Describe la organización estática en su ambiente de desarrollo.

• Vista de Despliegue– Describe la relación entre el software y el hardware y aspectos de

su distribución.

Page 7: Elementos de la Descripciones Arquitectónicagabrielmatonte.ueuo.com/materiales/02.0-uml_y_arq.pdf · Arquitectura y Diseño - UML • Vista de Casos de Uso – Describe el comportamiento

7

Arquitectura de software - UML7

Descripción Arquitectónica

• Elementos genéricos de las descripciones arquitectónicas

• Componentes

• Conectores

• Restricciones

• Dependen de la vista a la que pertenezcan

Page 8: Elementos de la Descripciones Arquitectónicagabrielmatonte.ueuo.com/materiales/02.0-uml_y_arq.pdf · Arquitectura y Diseño - UML • Vista de Casos de Uso – Describe el comportamiento

8

Arquitectura de software - UML8

Descripción Arquitectónica• Componentes

– Elementos estructurales (datos, unidades computacionales) • Pueden ser simples o compuestos• Ejemplos

– Ejecutables– Bibliotecas dinámicas– Componentes activex– Servidores de aplicaciones– Bases de datos– Clases, objetos y módulos– Paquetes– Procesadores, impresoras– redes– etc.

Page 9: Elementos de la Descripciones Arquitectónicagabrielmatonte.ueuo.com/materiales/02.0-uml_y_arq.pdf · Arquitectura y Diseño - UML • Vista de Casos de Uso – Describe el comportamiento

9

Arquitectura de software - UML9

Descripción Arquitectónica

• Conectores– Elementos que modelan las interacciones entre

componentes.

– Ejemplos• Llamadas a procedimientos

• Protocolos (TCP/IP)

• Variables globales

• Asociaciones, dependencias, herencia, etc.

• Mecanismos de IPC (interprocess communictation)

• Links de radio

Page 10: Elementos de la Descripciones Arquitectónicagabrielmatonte.ueuo.com/materiales/02.0-uml_y_arq.pdf · Arquitectura y Diseño - UML • Vista de Casos de Uso – Describe el comportamiento

10

Arquitectura de software - UML10

Descripción Arquitectónica

• Restricciones– Representan las leyes que el sistema debe cumplir.

– Son aplicables a componentes y conectores

Page 11: Elementos de la Descripciones Arquitectónicagabrielmatonte.ueuo.com/materiales/02.0-uml_y_arq.pdf · Arquitectura y Diseño - UML • Vista de Casos de Uso – Describe el comportamiento

11

Arquitectura de software - UML11

Arquitectura

• Lecturas – The 4+1 View Model of Architecture. P. Kruchten

(Pbk4p1.PDF)

– Toward a Recommended Practice for ArchitecturalDescription. Ellis, et. al. (ieee_white_paper.PDF)

– Foundations for the Study of Software Architecture. D. Perry, A. Wolf (PW92.PDF)

– Capitulo 2. Software Architecture in Practice. L.Bass, P. Clements, R. Kazman

Page 12: Elementos de la Descripciones Arquitectónicagabrielmatonte.ueuo.com/materiales/02.0-uml_y_arq.pdf · Arquitectura y Diseño - UML • Vista de Casos de Uso – Describe el comportamiento

12

Arquitectura de software - UML12

Elementos de Descripción de Arquitecturas en UML 2

Page 13: Elementos de la Descripciones Arquitectónicagabrielmatonte.ueuo.com/materiales/02.0-uml_y_arq.pdf · Arquitectura y Diseño - UML • Vista de Casos de Uso – Describe el comportamiento

13

Arquitectura de software - UML13

UML

• Unified Modeling Language (UML)– Lenguaje estándar para el modelado de sistemas de

software– Definido por Rational Corp. y actualmente

propiedad del Object Management Group (OMG)– Es extensible y adaptable.– Útil para:

• Visualizar• Especificar y documentar• Mapeable con las construcciones de los lenguajes de

programación

Page 14: Elementos de la Descripciones Arquitectónicagabrielmatonte.ueuo.com/materiales/02.0-uml_y_arq.pdf · Arquitectura y Diseño - UML • Vista de Casos de Uso – Describe el comportamiento

14

Arquitectura de software - UML14

UML

• UML comprende:– Elementos estáticos

– Elementos comportamentales

– Elementos de agrupación

– Elementos de anotación

– Elementos de Extensión

Page 15: Elementos de la Descripciones Arquitectónicagabrielmatonte.ueuo.com/materiales/02.0-uml_y_arq.pdf · Arquitectura y Diseño - UML • Vista de Casos de Uso – Describe el comportamiento

15

Arquitectura de software - UML15

Arquitectura y Diseño - UML

• Mecanismos de extensión– Stereotype (estereotipo)

• Permite definir nuevos elementos en el metamodelo de UML.

• Es un mecanismo de extensión del lenguaje.

<<nombre_estereotipo>>

Se puede asociar un icono a cada estereotipo.

Page 16: Elementos de la Descripciones Arquitectónicagabrielmatonte.ueuo.com/materiales/02.0-uml_y_arq.pdf · Arquitectura y Diseño - UML • Vista de Casos de Uso – Describe el comportamiento

16

Arquitectura de software - UML16

Arquitectura y Diseño - UML

• Mecanismos de extensión – Tagged Values (valores etiquetados)

• Son metadatos que se pueden asociar a los elementos de la notación. Permiten agregar nueva información a los elementos de la notación (estándares o estereotipados)

• Por ejemplo; a los casos de uso se les podría asociar un tag que describa los requerimientos no-funcionales asociados al caso de uso.

{req_no_funcional = “tiempo de respuesta 3 seg.”}

{RAM_procesador = “512 Mb”}

Page 17: Elementos de la Descripciones Arquitectónicagabrielmatonte.ueuo.com/materiales/02.0-uml_y_arq.pdf · Arquitectura y Diseño - UML • Vista de Casos de Uso – Describe el comportamiento

17

Arquitectura de software - UML17

Descripción Arquitectónica

VistaDiseño

Vista de Componentes

Vista de Procesos

Vista de Despliegue

Vista de Casos de Uso

Modelo 4 + 1 (Kruchten)

Page 18: Elementos de la Descripciones Arquitectónicagabrielmatonte.ueuo.com/materiales/02.0-uml_y_arq.pdf · Arquitectura y Diseño - UML • Vista de Casos de Uso – Describe el comportamiento

18

Arquitectura de software - UML18

Arquitectura y Diseño - UML

• Vista de Casos de Uso– Describe el comportamiento observable del sistema

visto desde la perspectiva de los accionistas.• Normalmente incluye:

– Requerimientos funcionales

– Requerimientos no funcionales asociados a los requerimientos funcionales

– Elementos del dominio

Page 19: Elementos de la Descripciones Arquitectónicagabrielmatonte.ueuo.com/materiales/02.0-uml_y_arq.pdf · Arquitectura y Diseño - UML • Vista de Casos de Uso – Describe el comportamiento

19

Arquitectura de software - UML19

Arquitectura y Diseño - UML

• Vista de Casos de Uso– Elementos

• Actores

• Casos de Uso

• Colaboraciones

– Relaciones• Asociaciones

• Relaciones de:– extensión

– generalización

– inclusión

Page 20: Elementos de la Descripciones Arquitectónicagabrielmatonte.ueuo.com/materiales/02.0-uml_y_arq.pdf · Arquitectura y Diseño - UML • Vista de Casos de Uso – Describe el comportamiento

20

Arquitectura de software - UML21

Arquitectura y Diseño - UML

Page 21: Elementos de la Descripciones Arquitectónicagabrielmatonte.ueuo.com/materiales/02.0-uml_y_arq.pdf · Arquitectura y Diseño - UML • Vista de Casos de Uso – Describe el comportamiento

21

Arquitectura de software - UML22

Arquitectura y Diseño - UML

Ejemplo: Realización de un Caso de Uso

Page 22: Elementos de la Descripciones Arquitectónicagabrielmatonte.ueuo.com/materiales/02.0-uml_y_arq.pdf · Arquitectura y Diseño - UML • Vista de Casos de Uso – Describe el comportamiento

22

Arquitectura de software - UML23

Arquitectura y Diseño - UMLEjemplo: Realización de un Caso de Uso. Colaboración Búsqueda

Page 23: Elementos de la Descripciones Arquitectónicagabrielmatonte.ueuo.com/materiales/02.0-uml_y_arq.pdf · Arquitectura y Diseño - UML • Vista de Casos de Uso – Describe el comportamiento

23

Arquitectura de software - UML24

Arquitectura y Diseño - UMLEjemplo: Realización de un Caso de Uso. Colaboración Búsqueda

Page 24: Elementos de la Descripciones Arquitectónicagabrielmatonte.ueuo.com/materiales/02.0-uml_y_arq.pdf · Arquitectura y Diseño - UML • Vista de Casos de Uso – Describe el comportamiento

24

Arquitectura de software - UML25

Descripción Arquitectónica

VistaDiseño

Vista de Componentes

Vista de Procesos

Vista de Despliegue

Vista de Casos de Uso

Modelo 4 + 1 (Kruchten)

Page 25: Elementos de la Descripciones Arquitectónicagabrielmatonte.ueuo.com/materiales/02.0-uml_y_arq.pdf · Arquitectura y Diseño - UML • Vista de Casos de Uso – Describe el comportamiento

25

Arquitectura de software - UML26

Arquitectura y Diseño - UML

• Vista de Diseño (Lógica)– Describe cómo se soportan los requerimientos

funcionales del sistema.

Page 26: Elementos de la Descripciones Arquitectónicagabrielmatonte.ueuo.com/materiales/02.0-uml_y_arq.pdf · Arquitectura y Diseño - UML • Vista de Casos de Uso – Describe el comportamiento

26

Arquitectura de software - UML27

Arquitectura y Diseño - UML

• Vista de Diseño (Lógica)– Elementos

• Clases

• Interfaces

• Paquetes

• Objetos

• Colaboraciones

– Relaciones• Asociaciones

• Dependencia

• Generalización

• Realiza

• links

Page 27: Elementos de la Descripciones Arquitectónicagabrielmatonte.ueuo.com/materiales/02.0-uml_y_arq.pdf · Arquitectura y Diseño - UML • Vista de Casos de Uso – Describe el comportamiento

27

Arquitectura de software - UML28

Arquitectura y Diseño - UML

• Representación de clases en UML

Cliente

_nombre : string_cedula : string_direccion : string_fechaDeIngreso : Date_numero : Integer

obtenerNombre( )guardarNombre( )obtenerCedula( )guardarCedula( )obtenerFacturas( )guardarFacturas( )añosComoCliente( )saldo( )

+ public- private# protected

Métodos:de clase en subrayadoabstractos en itálica

Page 28: Elementos de la Descripciones Arquitectónicagabrielmatonte.ueuo.com/materiales/02.0-uml_y_arq.pdf · Arquitectura y Diseño - UML • Vista de Casos de Uso – Describe el comportamiento

28

Arquitectura de software - UML29

Arquitectura y Diseño - UML

• Clases con EstereotiposX

Y< < utility> >

Z< < m oduloV B > >

c lientes< < Tabla > >

P roduc to< < E ntidad> >

Page 29: Elementos de la Descripciones Arquitectónicagabrielmatonte.ueuo.com/materiales/02.0-uml_y_arq.pdf · Arquitectura y Diseño - UML • Vista de Casos de Uso – Describe el comportamiento

29

Arquitectura de software - UML30

Arquitectura y Diseño - UML

• Interfaz– Es una colección de operaciones que se utilizan para

especificar un servicio de una clase o componente.

– La interfaz y su implementación se asocian mediante la relación Realize (realiza).

– Cuando un componente utiliza una interfaz se indica mediante una dependencia.

F<<Interfaz>>

Page 30: Elementos de la Descripciones Arquitectónicagabrielmatonte.ueuo.com/materiales/02.0-uml_y_arq.pdf · Arquitectura y Diseño - UML • Vista de Casos de Uso – Describe el comportamiento

30

Arquitectura de software - UML31

Arquitectura y Diseño - UML

Persona

GetNombre()SetNombre()GetCedula()SetCedula()

<<Interface>>

Cliente

GetNombre()SetNombre()GetCedula()SetCedula()CalcularSaldo()

Empleado

GetNombre()SetNombre()GetCedula()SetCedula()CalcularSueldo()

• Notación Interfaz

Page 31: Elementos de la Descripciones Arquitectónicagabrielmatonte.ueuo.com/materiales/02.0-uml_y_arq.pdf · Arquitectura y Diseño - UML • Vista de Casos de Uso – Describe el comportamiento

31

Arquitectura de software - UML32

Notación Interfaz

Page 32: Elementos de la Descripciones Arquitectónicagabrielmatonte.ueuo.com/materiales/02.0-uml_y_arq.pdf · Arquitectura y Diseño - UML • Vista de Casos de Uso – Describe el comportamiento

32

Arquitectura de software - UML33

Notación Interfaz

Interfaces provistas y requeridas

Page 33: Elementos de la Descripciones Arquitectónicagabrielmatonte.ueuo.com/materiales/02.0-uml_y_arq.pdf · Arquitectura y Diseño - UML • Vista de Casos de Uso – Describe el comportamiento

33

Arquitectura de software - UML34

Arquitectura y Diseño - UML• Package (Paquete)

– Son elementos de la notación que permiten particionar lógicamente el sistema.

– Dentro de un paquete se pueden agrupar, clases, paquetes, colaboraciones, y/o casos de uso.

– Los elementos dentro del

paquete pertenecen al paquete.

NombrePaquete::NombreElemento

Page 34: Elementos de la Descripciones Arquitectónicagabrielmatonte.ueuo.com/materiales/02.0-uml_y_arq.pdf · Arquitectura y Diseño - UML • Vista de Casos de Uso – Describe el comportamiento

34

Arquitectura de software - UML35

Arquitectura y Diseño - UML

Cliente(from Cl iente)

Fact ura(from Cl iente)

Recibo(from Cl iente)

Cliente

+ Recibo+ Factura+ Cliente

Page 35: Elementos de la Descripciones Arquitectónicagabrielmatonte.ueuo.com/materiales/02.0-uml_y_arq.pdf · Arquitectura y Diseño - UML • Vista de Casos de Uso – Describe el comportamiento

35

Arquitectura de software - UML36

Arquitectura y Diseño - UML

Page 36: Elementos de la Descripciones Arquitectónicagabrielmatonte.ueuo.com/materiales/02.0-uml_y_arq.pdf · Arquitectura y Diseño - UML • Vista de Casos de Uso – Describe el comportamiento

36

Arquitectura de software - UML37

Arquitectura y Diseño - UML

Page 37: Elementos de la Descripciones Arquitectónicagabrielmatonte.ueuo.com/materiales/02.0-uml_y_arq.pdf · Arquitectura y Diseño - UML • Vista de Casos de Uso – Describe el comportamiento

37

Arquitectura de software - UML38

Arquitectura y Diseño - UML

Page 38: Elementos de la Descripciones Arquitectónicagabrielmatonte.ueuo.com/materiales/02.0-uml_y_arq.pdf · Arquitectura y Diseño - UML • Vista de Casos de Uso – Describe el comportamiento

38

Arquitectura de software - UML39

Arquitectura y Diseño - UML

• Paquete– Un paquete puede EXPORTAR los elementos

públicos que contiene a otros paquetes que los IMPORTAN. Lo que implica que existen asociaciones de algún tipo entre los elementos de cada paquete.

– Esta relación se representa mediante dependencias con el estereotipo <<importa>>

C l ie n te

+ R e c ib o+ F a c tu ra+ C li e n te

In te r fa zU s u a r io <<importa>>

Page 39: Elementos de la Descripciones Arquitectónicagabrielmatonte.ueuo.com/materiales/02.0-uml_y_arq.pdf · Arquitectura y Diseño - UML • Vista de Casos de Uso – Describe el comportamiento

39

Arquitectura de software - UML40

Arquitectura y Diseño - UML

• Paquete y Estereotipos– Facade (Fachada)- el paquete es una vista de algún

otro paquete

– Subsystem (subsistema)- el paquete es una parte independiente del sistema que modelamos.

– System (sistema)- el paquete representa al todo el sistema que estamos modelando.

– Framework - el paquete representa un framework

Page 40: Elementos de la Descripciones Arquitectónicagabrielmatonte.ueuo.com/materiales/02.0-uml_y_arq.pdf · Arquitectura y Diseño - UML • Vista de Casos de Uso – Describe el comportamiento

40

Arquitectura de software - UML41

Arquitectura y Diseño - UML

• Colaboraciones– Definición

• Una colaboración describe una estructura de elementos que colaboran - cada uno realizando un función especializada – y que colectivamente implementan una funcionalidad deseada (UML 2)

• Su principal propósito es explicar cómo funciona un sistema (o mecanismo) y por lo tanto solamente muestra aquellos aspectos de la realidad que son relevantes.

Page 41: Elementos de la Descripciones Arquitectónicagabrielmatonte.ueuo.com/materiales/02.0-uml_y_arq.pdf · Arquitectura y Diseño - UML • Vista de Casos de Uso – Describe el comportamiento

41

Arquitectura de software - UML42

Arquitectura y Diseño - UML

• Colaboraciones– Comprenden aspectos estructurales y de

comportamiento.

– Se utilizan para especificar como se llevan a cabo:• Mecanismos y patrones de diseño

• Casos de uso

• Métodos

• Clases nombre

Page 42: Elementos de la Descripciones Arquitectónicagabrielmatonte.ueuo.com/materiales/02.0-uml_y_arq.pdf · Arquitectura y Diseño - UML • Vista de Casos de Uso – Describe el comportamiento

42

Arquitectura de software - UML43

Arquitectura y Diseño - UML

• Colaboraciones– Estructura

• Especifica las clases, interfaces, asociaciones, etc. que colaboran para llevar a cabo la colaboración.

• Los elementos que participan en una colaboración no pertenecen a la misma, sino que referencian elementos de los distintos modelos.

• La estructura se representa mediante diagramas de clases o diagramas de objetos asociados a la colaboración.

Page 43: Elementos de la Descripciones Arquitectónicagabrielmatonte.ueuo.com/materiales/02.0-uml_y_arq.pdf · Arquitectura y Diseño - UML • Vista de Casos de Uso – Describe el comportamiento

43

Arquitectura de software - UML44

Arquitectura y Diseño - UML

• Colaboraciones– Comportamiento

• Especifica las interacciones entre las instancias de los elementos que participan en la colaboración.

• Se representa mediante diagramas de interacción o colaboración asociados a la colaboración.

Page 44: Elementos de la Descripciones Arquitectónicagabrielmatonte.ueuo.com/materiales/02.0-uml_y_arq.pdf · Arquitectura y Diseño - UML • Vista de Casos de Uso – Describe el comportamiento

44

Arquitectura de software - UML45

Arquitectura y Diseño - UML

• Colaboraciones– Para especificar la relación entre el elemento que la

colaboración “realiza” y la colaboración, se utiliza la relación Realiza.

Caso de Uso

colaboración

Page 45: Elementos de la Descripciones Arquitectónicagabrielmatonte.ueuo.com/materiales/02.0-uml_y_arq.pdf · Arquitectura y Diseño - UML • Vista de Casos de Uso – Describe el comportamiento

45

Arquitectura de software - UML46

Arquitectura y Diseño - UML

Reserva

Registro Cliente

Check-out

Conserje

Ejemplo: Realización de un Caso de Uso

Page 46: Elementos de la Descripciones Arquitectónicagabrielmatonte.ueuo.com/materiales/02.0-uml_y_arq.pdf · Arquitectura y Diseño - UML • Vista de Casos de Uso – Describe el comportamiento

46

Arquitectura de software - UML47

Arquitectura y Diseño - UML

Registrar

Registro

Ejemplo: Realización de un Caso de Uso

Page 47: Elementos de la Descripciones Arquitectónicagabrielmatonte.ueuo.com/materiales/02.0-uml_y_arq.pdf · Arquitectura y Diseño - UML • Vista de Casos de Uso – Describe el comportamiento

47

Arquitectura de software - UML48

Arquitectura y Diseño - UML

Ejemplo: Realización de un Caso de Uso. Colaboración Registrar

F o r m R e g i s t r o

( f r o m U I )

R e s e r v a

o b t e n e r D a t o s R e s e r v a ( )

( f ro m D o m )

F a c tu r a

c e r r a r ( )S e t R e s e r v a ( )o b t e n e r D a to s G e n e r a l e s ( )c a l c u l a r s e rv i c i o s ( )p a g o ( )

( f ro m D o m )

1

1

1

1

C l ie n t e

o b t e n e r R e s e r v a ( )

( f r o m D o m )

1 . . *1

1 . . *1

Page 48: Elementos de la Descripciones Arquitectónicagabrielmatonte.ueuo.com/materiales/02.0-uml_y_arq.pdf · Arquitectura y Diseño - UML • Vista de Casos de Uso – Describe el comportamiento

48

Arquitectura de software - UML49

Arquitectura y Diseño - UMLEjemplo: Realización de un Caso de Uso. Colaboración Registrar

: C ons er je : F orm Regis t ro re : R eserv a f a : F ac t urac l : C li ent e : Sis hot el

1: I D c lient e( )

2: re= bus c arR eserv a(I D , f ec ha )

3: re= obt enerRes erv a( )

5: A Cepta( )6: Regis t rar( )

7: Regis t rar( )

4: obt enerDat os Res erv a( )

8: f a= c reat e

9: S et R eserv a(re )

Page 49: Elementos de la Descripciones Arquitectónicagabrielmatonte.ueuo.com/materiales/02.0-uml_y_arq.pdf · Arquitectura y Diseño - UML • Vista de Casos de Uso – Describe el comportamiento

49

Arquitectura de software - UML50

Arquitectura y Diseño - UML

• Colaboraciones genéricas

Observer

SubjectObserver

CMiView

CDocument

<<bind>>

<<bind>>

subject

observer

Page 50: Elementos de la Descripciones Arquitectónicagabrielmatonte.ueuo.com/materiales/02.0-uml_y_arq.pdf · Arquitectura y Diseño - UML • Vista de Casos de Uso – Describe el comportamiento

50

Arquitectura de software - UML51

Arquitectura y Diseño - UML

ConcreteSubject

obtenerDatos( )

ConcreteObserver

update( )

observers

*

Observer

update( )1

Subject

metodo( )attach( )detach( )notify( )

*1

notify para todos los observadores o.update(this);

update s->obtenerDatos()

Colaboración Observer

Page 51: Elementos de la Descripciones Arquitectónicagabrielmatonte.ueuo.com/materiales/02.0-uml_y_arq.pdf · Arquitectura y Diseño - UML • Vista de Casos de Uso – Describe el comportamiento

51

Arquitectura de software - UML52

Arquitectura y Diseño - UML

sujeto : ConcreteSubject

observador : ConcreteObserver

otroObservador : ConcreteObserver

1: guardarDatos ( )

2: notify ( )

3: update (Subject s)

4: obtenerDatos ( )

5: update (Subject s)

Colaboración Observer

Page 52: Elementos de la Descripciones Arquitectónicagabrielmatonte.ueuo.com/materiales/02.0-uml_y_arq.pdf · Arquitectura y Diseño - UML • Vista de Casos de Uso – Describe el comportamiento

52

Arquitectura de software - UML53

Descripción Arquitectónica

VistaDiseño

Vista de Componentes

Vista de Procesos

Vista de Despliegue

Vista de Casos de Uso

Modelo 4 + 1 (Kruchten)

Page 53: Elementos de la Descripciones Arquitectónicagabrielmatonte.ueuo.com/materiales/02.0-uml_y_arq.pdf · Arquitectura y Diseño - UML • Vista de Casos de Uso – Describe el comportamiento

53

Arquitectura de software - UML54

Arquitectura y Diseño - UML

• Vista de Componentes– Describe la organización de los componentes que

comprenden el sistema (bibliotecas, dlls, etc).

Page 54: Elementos de la Descripciones Arquitectónicagabrielmatonte.ueuo.com/materiales/02.0-uml_y_arq.pdf · Arquitectura y Diseño - UML • Vista de Casos de Uso – Describe el comportamiento

54

Arquitectura de software - UML55

Arquitectura y Diseño - UML

• Vista de Componentes– Elementos

• Paquetes

• Componentes y variaciones

• Interfaces

• puertos

– Relaciones• Dependencia

• Generalización

• Realiza

• Conector (delegate)

Page 55: Elementos de la Descripciones Arquitectónicagabrielmatonte.ueuo.com/materiales/02.0-uml_y_arq.pdf · Arquitectura y Diseño - UML • Vista de Casos de Uso – Describe el comportamiento

55

Arquitectura de software - UML56

Arquitectura y Diseño - UML

• Componentes (UML 2)– Es una unidad modular de un sistema con interfaces

bien definidas. Es reemplazable dentro de su ambiente

Page 56: Elementos de la Descripciones Arquitectónicagabrielmatonte.ueuo.com/materiales/02.0-uml_y_arq.pdf · Arquitectura y Diseño - UML • Vista de Casos de Uso – Describe el comportamiento

56

Arquitectura de software - UML57

Arquitectura y Diseño - UML

• Vistas de un componente– Vista externa

• Se representa mediante símbolos de interfaz o mediante compartimientos que muestran las operaciones y atributos

– Vista interna• Se representa mediante instancias dentro del componente

o mediante diagramas asociados

Page 57: Elementos de la Descripciones Arquitectónicagabrielmatonte.ueuo.com/materiales/02.0-uml_y_arq.pdf · Arquitectura y Diseño - UML • Vista de Casos de Uso – Describe el comportamiento

57

Arquitectura de software - UML58

Arquitectura y Diseño - UML

Com ponenteA

Cliente

Clientes UI< < A ppl et> >

E m pleado

E m plad osU I< < A pplic ation> >

Page 58: Elementos de la Descripciones Arquitectónicagabrielmatonte.ueuo.com/materiales/02.0-uml_y_arq.pdf · Arquitectura y Diseño - UML • Vista de Casos de Uso – Describe el comportamiento

58

Arquitectura de software - UML59

Arquitectura y Diseño - UML

Page 59: Elementos de la Descripciones Arquitectónicagabrielmatonte.ueuo.com/materiales/02.0-uml_y_arq.pdf · Arquitectura y Diseño - UML • Vista de Casos de Uso – Describe el comportamiento

59

Arquitectura de software - UML60

Arquitectura y Diseño - UML

Page 60: Elementos de la Descripciones Arquitectónicagabrielmatonte.ueuo.com/materiales/02.0-uml_y_arq.pdf · Arquitectura y Diseño - UML • Vista de Casos de Uso – Describe el comportamiento

60

Arquitectura de software - UML61

Arquitectura y Diseño - UML

• Puertos (UML 2)– Un puerto especifica un punto de interacción entre un

componente (o clase) y sus partes internas o entre el componente y su entorno.

– Los puertos se conectan mediante conectores a las propiedades del componente y es la forma de indicar la invocación de los elementos comportamentales del componente.

– Los puertos pueden especificar los servicios que el componente ofrece o requiere.

Page 61: Elementos de la Descripciones Arquitectónicagabrielmatonte.ueuo.com/materiales/02.0-uml_y_arq.pdf · Arquitectura y Diseño - UML • Vista de Casos de Uso – Describe el comportamiento

61

Arquitectura de software - UML62

Arquitectura y Diseño - UML

• Conector de delegación– Especifica que el comportamiento disponible en una

instancia de un componente la implementa una instancia de otro componente (o clase).

– Se utiliza para modelar la descomposición jerárquica del comportamiento, donde los servicios provistos por un componente se implementan por componentes embebidos dentro de él

Page 62: Elementos de la Descripciones Arquitectónicagabrielmatonte.ueuo.com/materiales/02.0-uml_y_arq.pdf · Arquitectura y Diseño - UML • Vista de Casos de Uso – Describe el comportamiento

62

Arquitectura de software - UML63

Arquitectura y Diseño - UML

Page 63: Elementos de la Descripciones Arquitectónicagabrielmatonte.ueuo.com/materiales/02.0-uml_y_arq.pdf · Arquitectura y Diseño - UML • Vista de Casos de Uso – Describe el comportamiento

63

Arquitectura de software - UML64

Descripción Arquitectónica

VistaDiseño

Vista de Componentes

Vista de Procesos

Vista de Despliegue

Vista de Casos de Uso

Modelo 4 + 1 (Kruchten)

Page 64: Elementos de la Descripciones Arquitectónicagabrielmatonte.ueuo.com/materiales/02.0-uml_y_arq.pdf · Arquitectura y Diseño - UML • Vista de Casos de Uso – Describe el comportamiento

64

Arquitectura de software - UML65

Arquitectura y Diseño - UML

• Vista de Despliegue– Describe los nodos que conforman la topología de

hardware donde se ejecuta el sistema.

– Diagramas:• Diagramas de Despliegue

Page 65: Elementos de la Descripciones Arquitectónicagabrielmatonte.ueuo.com/materiales/02.0-uml_y_arq.pdf · Arquitectura y Diseño - UML • Vista de Casos de Uso – Describe el comportamiento

65

Arquitectura de software - UML66

Arquitectura y Diseño - UML

• Vista de Despliegue– Elementos

– Nodo• Es un elemento físico que existe en tiempo de ejecución

y representa un recurso computacional que tiene por lo menos algo de memoria, y algunas veces, capacidad de procesamiento (UMLUG).

• Se pueden especificar atributos– Velocidad– Memoria– etc.

Procesador 1

Page 66: Elementos de la Descripciones Arquitectónicagabrielmatonte.ueuo.com/materiales/02.0-uml_y_arq.pdf · Arquitectura y Diseño - UML • Vista de Casos de Uso – Describe el comportamiento

66

Arquitectura de software - UML67

Arquitectura y Diseño - UML

• Artefactos– Especifican un elemento físico de información

utilizado o producido por un proceso de desarrollo, o por el despliegue o operación de un sistema.

– Ejemplos: Archivos, scripts, ejecutables, documentos, etc.

– Se representan con el símbolo de clase con estereotipos

Page 67: Elementos de la Descripciones Arquitectónicagabrielmatonte.ueuo.com/materiales/02.0-uml_y_arq.pdf · Arquitectura y Diseño - UML • Vista de Casos de Uso – Describe el comportamiento

67

Arquitectura de software - UML68

Arquitectura y Diseño - UML

• Vista de Despliegue– Relaciones

• Dependencia

• Asociación– Representa una conexión física entre nodos

• Generalización

Page 68: Elementos de la Descripciones Arquitectónicagabrielmatonte.ueuo.com/materiales/02.0-uml_y_arq.pdf · Arquitectura y Diseño - UML • Vista de Casos de Uso – Describe el comportamiento

68

Arquitectura de software - UML69

Arquitectura y Diseño - UML

C atá logo

<<D LL>> RegistroVehiculos

P C - M o s t r ad o r

Procesadores, dispositivos y Componentes

Page 69: Elementos de la Descripciones Arquitectónicagabrielmatonte.ueuo.com/materiales/02.0-uml_y_arq.pdf · Arquitectura y Diseño - UML • Vista de Casos de Uso – Describe el comportamiento

69

Arquitectura de software - UML70

Arquitectura y Diseño - UML

PC-Biblioteca

ServidorIsis

<<Ethernet>>

Impresora<<Impresora Tarjetas>>

Page 70: Elementos de la Descripciones Arquitectónicagabrielmatonte.ueuo.com/materiales/02.0-uml_y_arq.pdf · Arquitectura y Diseño - UML • Vista de Casos de Uso – Describe el comportamiento

70

Arquitectura de software - UML71

Arquitectura y Diseño - UML

PC-Sylvana PC-Daniel

<<Red>> Red Académica

Vax 1 <<Red>> Red Laboratorios

Modem56kbps

Page 71: Elementos de la Descripciones Arquitectónicagabrielmatonte.ueuo.com/materiales/02.0-uml_y_arq.pdf · Arquitectura y Diseño - UML • Vista de Casos de Uso – Describe el comportamiento

71

Arquitectura de software - UML72

My Sql

BaseDatos

Pc Operario (k6 II)

UIAplicOperario(.class)

UIAplicTaxologo

Servidor Web

Aplic Web

Pc Supervisor

UIAplicSupervis(.class)

Pc Gerencia (k6 II)

UIAplicGerencia(.class)

Servidor Aplicaciones

AplicGerente(library)

AplicOperador(library)

AplicSupervis(library)

AplicTaxologo(library)

Coneccion

ADMINFuncionarios

Comunicacion Login

ProveedoresContabiliad

ADMINInfoBD

Consultas

Chat

Ethernet

Created with Visio

Page 72: Elementos de la Descripciones Arquitectónicagabrielmatonte.ueuo.com/materiales/02.0-uml_y_arq.pdf · Arquitectura y Diseño - UML • Vista de Casos de Uso – Describe el comportamiento

72

Arquitectura de software - UML73

Descripción Arquitectónica

VistaDiseño

Vista de Componentes

Vista de Procesos

Vista de Despliegue

Vista de Casos de Uso

Modelo 4 + 1 (Kruchten)

Page 73: Elementos de la Descripciones Arquitectónicagabrielmatonte.ueuo.com/materiales/02.0-uml_y_arq.pdf · Arquitectura y Diseño - UML • Vista de Casos de Uso – Describe el comportamiento

73

Arquitectura de software - UML74

Arquitectura y Diseño - UML

• Vista de Procesos– Describe requerimientos no-funcionales

relacionados con concurrencia, sincronización, threads de control, etc.

– Muestra • Procesos y hilos de control (objetos activos)

• Comunicación entre procesos

Page 74: Elementos de la Descripciones Arquitectónicagabrielmatonte.ueuo.com/materiales/02.0-uml_y_arq.pdf · Arquitectura y Diseño - UML • Vista de Casos de Uso – Describe el comportamiento

74

Arquitectura de software - UML75

Arquitectura y Diseño - UML

• Vista de Procesos– Elementos

• Paquetes

• Clases activas

• Objetos

• Interfaces

• Colaboraciones

– Relaciones• Asociaciones

• Dependencia

• Generalización

• Realiza

• Links

Page 75: Elementos de la Descripciones Arquitectónicagabrielmatonte.ueuo.com/materiales/02.0-uml_y_arq.pdf · Arquitectura y Diseño - UML • Vista de Casos de Uso – Describe el comportamiento

75

Arquitectura de software - UML76

Arquitectura y Diseño - UML

• Vista de Procesos– Diagramas:

• Diagramas de Clases

• Diagramas de Objetos

• Diagramas de Interacción

• Diagramas de Estados

• Diagramas de Actividad.

Page 76: Elementos de la Descripciones Arquitectónicagabrielmatonte.ueuo.com/materiales/02.0-uml_y_arq.pdf · Arquitectura y Diseño - UML • Vista de Casos de Uso – Describe el comportamiento

76

Arquitectura de software - UML77

Arquitectura y Diseño - UML

• Vista de Procesos– Tipos de Flujos de Control

• Secuencial– Hay un solo flujo de control.

– Las operaciones se despachan una tras la otra.

• Concurrente– Hay varios flujos de control simultáneos.

Page 77: Elementos de la Descripciones Arquitectónicagabrielmatonte.ueuo.com/materiales/02.0-uml_y_arq.pdf · Arquitectura y Diseño - UML • Vista de Casos de Uso – Describe el comportamiento

77

Arquitectura de software - UML78

Arquitectura y Diseño - UML

• Vista de Procesos– Objeto Activo

• Es un objeto que es dueño de un proceso o hilo(thread). Tienen flujo de control independiente.

– Clase Activa• Los objetos activos pertenecen a clases activas.

Page 78: Elementos de la Descripciones Arquitectónicagabrielmatonte.ueuo.com/materiales/02.0-uml_y_arq.pdf · Arquitectura y Diseño - UML • Vista de Casos de Uso – Describe el comportamiento

78

Arquitectura de software - UML79

Arquitectura y Diseño - UML• Vista de Procesos

– Proceso (heavywieght process)• Es un flujo de control que puede ejecutar

concurrentemente con otro proceso.

• Ejecuta en un espacio de dirección independiente.

– Thread (ligthweight process)• Es un flujo de control que puede ejecutar

concurrentemente con otro thread dentro de un proceso.

• Ejecutan en el espacio de dirección del proceso al que pertenecen.

Page 79: Elementos de la Descripciones Arquitectónicagabrielmatonte.ueuo.com/materiales/02.0-uml_y_arq.pdf · Arquitectura y Diseño - UML • Vista de Casos de Uso – Describe el comportamiento

79

Arquitectura de software - UML80

Arquitectura y Diseño - UML

Manejador De Comunicaciones<<Process>>

StreamAudioPlayer<<Thread>>

• Vista de Procesos– Clases Activas y Estereotipos

Page 80: Elementos de la Descripciones Arquitectónicagabrielmatonte.ueuo.com/materiales/02.0-uml_y_arq.pdf · Arquitectura y Diseño - UML • Vista de Casos de Uso – Describe el comportamiento

80

Arquitectura de software - UML81

Arquitectura y Diseño - UML

• Vista de ProcesosFormas de comunicación entre objetos

– activos - pasivos• Invocación de métodos.

– activos - activos• Comunicación entre procesos (IPC).

– Sincrónica» El que llama invoca el método y espera al llamado.

– Asincrónica» El que llama invoca el método y No espera el al llamado.

Page 81: Elementos de la Descripciones Arquitectónicagabrielmatonte.ueuo.com/materiales/02.0-uml_y_arq.pdf · Arquitectura y Diseño - UML • Vista de Casos de Uso – Describe el comportamiento

81

Arquitectura de software - UML82

Arquitectura y Diseño - UML

• Mecanismos de IPC– FIFO (named pipes)

– Colas de Mensajes

– Memoria compartida

– Sockets

– Remote Procedure Calls

– Software Middleware

Page 82: Elementos de la Descripciones Arquitectónicagabrielmatonte.ueuo.com/materiales/02.0-uml_y_arq.pdf · Arquitectura y Diseño - UML • Vista de Casos de Uso – Describe el comportamiento

82

Arquitectura de software - UML83

Arquitectura y Diseño - UML

• Vista de Procesos– Sincronización

• Cuando más de un thread accede a un objeto se pueden producir interferencias de dos tipos:

– Varios flujos de control sobre un método de un objeto

– Varios flujos de control sobre distintos métodos de un objeto

Page 83: Elementos de la Descripciones Arquitectónicagabrielmatonte.ueuo.com/materiales/02.0-uml_y_arq.pdf · Arquitectura y Diseño - UML • Vista de Casos de Uso – Describe el comportamiento

83

Arquitectura de software - UML86

Arquitectura y Diseño - UML

• Comunicación

Un sol o Thread

As incronic o

Time-outunb : B

unb : B

unb : Buna : A

una : A

una : A

m etodo (int)

m etodo1 ( )

m etodo2 ( )

Page 84: Elementos de la Descripciones Arquitectónicagabrielmatonte.ueuo.com/materiales/02.0-uml_y_arq.pdf · Arquitectura y Diseño - UML • Vista de Casos de Uso – Describe el comportamiento

84

Arquitectura de software - UML87

Relación entre modelos

Page 85: Elementos de la Descripciones Arquitectónicagabrielmatonte.ueuo.com/materiales/02.0-uml_y_arq.pdf · Arquitectura y Diseño - UML • Vista de Casos de Uso – Describe el comportamiento

85

Arquitectura de software - UML88

Descripción Arquitectónica

Modelos delnegocio

Modelos de requerimientos

de software

Modelos de Diseño

Modelos de Componentes

Modelo del Sistema

Vista de Requerimientos

Vista Lógica (diseño)

Vista de Procesos

Vista de Componentes

Vista de Despliegue

Modelo 4 + 1 (Kruchten)

Vistas

Page 86: Elementos de la Descripciones Arquitectónicagabrielmatonte.ueuo.com/materiales/02.0-uml_y_arq.pdf · Arquitectura y Diseño - UML • Vista de Casos de Uso – Describe el comportamiento

86

Arquitectura de software - UML89

Arquitectura y Diseño - UMLModelo

Casos de Uso

Modelo Análisis

Modelo Diseño

Modelo Componentes

Modelo Despliegue

Trazabilidad entre modelos

Page 87: Elementos de la Descripciones Arquitectónicagabrielmatonte.ueuo.com/materiales/02.0-uml_y_arq.pdf · Arquitectura y Diseño - UML • Vista de Casos de Uso – Describe el comportamiento

87

Arquitectura de software - UML90

Arquitectura y Diseño - UML

• Lecturas– Sección 6 UMLUG

• Referencias– Sección 3, Capítulo 22 UMLUG

– UML 2.0 Superstructure Specification, OMG