elementos de la descripciones...

Post on 30-Sep-2018

213 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

1

Arquitectura de software - UML1

Elementos de la Descripciones Arquitectónica

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.

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

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)

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.

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.

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

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.

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

10

Arquitectura de software - UML10

Descripción Arquitectónica

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

– Son aplicables a componentes y conectores

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

12

Arquitectura de software - UML12

Elementos de Descripción de Arquitecturas en UML 2

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

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

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.

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”}

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)

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

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

20

Arquitectura de software - UML21

Arquitectura y Diseño - UML

21

Arquitectura de software - UML22

Arquitectura y Diseño - UML

Ejemplo: Realización de un Caso de Uso

22

Arquitectura de software - UML23

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

23

Arquitectura de software - UML24

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

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)

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.

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

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

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> >

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>>

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

31

Arquitectura de software - UML32

Notación Interfaz

32

Arquitectura de software - UML33

Notación Interfaz

Interfaces provistas y requeridas

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

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

35

Arquitectura de software - UML36

Arquitectura y Diseño - UML

36

Arquitectura de software - UML37

Arquitectura y Diseño - UML

37

Arquitectura de software - UML38

Arquitectura y Diseño - UML

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>>

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

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.

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

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.

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.

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

45

Arquitectura de software - UML46

Arquitectura y Diseño - UML

Reserva

Registro Cliente

Check-out

Conserje

Ejemplo: Realización de un Caso de Uso

46

Arquitectura de software - UML47

Arquitectura y Diseño - UML

Registrar

Registro

Ejemplo: Realización de un Caso de Uso

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

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 )

49

Arquitectura de software - UML50

Arquitectura y Diseño - UML

• Colaboraciones genéricas

Observer

SubjectObserver

CMiView

CDocument

<<bind>>

<<bind>>

subject

observer

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

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

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)

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).

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)

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

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

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> >

58

Arquitectura de software - UML59

Arquitectura y Diseño - UML

59

Arquitectura de software - UML60

Arquitectura y Diseño - UML

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.

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

62

Arquitectura de software - UML63

Arquitectura y Diseño - UML

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)

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

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

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

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

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

69

Arquitectura de software - UML70

Arquitectura y Diseño - UML

PC-Biblioteca

ServidorIsis

<<Ethernet>>

Impresora<<Impresora Tarjetas>>

70

Arquitectura de software - UML71

Arquitectura y Diseño - UML

PC-Sylvana PC-Daniel

<<Red>> Red Académica

Vax 1 <<Red>> Red Laboratorios

Modem56kbps

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

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)

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

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

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.

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.

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.

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.

79

Arquitectura de software - UML80

Arquitectura y Diseño - UML

Manejador De Comunicaciones<<Process>>

StreamAudioPlayer<<Thread>>

• Vista de Procesos– Clases Activas y Estereotipos

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.

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

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

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 ( )

84

Arquitectura de software - UML87

Relación entre modelos

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

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

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

top related