Está en la página 1de 80

ANLISIS Y DISEO ORIENTADO A

OBJETOS CON UML


( Parte III )

Ing. Luis Zuloaga Rotta

Los Diagramas de Secuencia

Muestran
interacciones entre
objetos segn un
punto de vista
temporal.
Representa una
interaccin entre
objetos en base a la
cronologa de los
envos de mensajes.
Ing. Luis Zuloaga Rotta

Objeto: Clase

Lnea vida
objeto

Representacin grfica
de un objeto

Mensajes entre objetos

Los objetos se comunican intercambiando mensajes


por medio de flechas horizontales, orientadas del
emisor del mensaje hacia el destinatario.
El orden de envo de los mensajes viene dado por la
posicin sobre el eje vertical.
En modelado de objetos, los diagramas se
secuencia se utilizan de dos maneras diferentes :
Para documentar los Casos de Uso
Para representar en forma mas precisa las
interacciones entre objetos.
Ing. Luis Zuloaga Rotta

Documentando Casos de Uso

Se concentra sobre la
descripcin de la interaccin,
a menudo en trminos
prximos al usuario y sin
entrar en los detalles de la
sincronizacin.
La indicacin que acompaa
a las flechas corresponde
entonces a eventos que
ocurrren en el mbito de la
aplicacin. En este estado
del modelado, las flechas no
corresponden an a envos
de mensajes en el sentido de
lenguajes de programacin.

Lnea
telefnica

Llamante

Llamado

Descuelga
Tono

Marcar
Indicacin
de llamada

Ing. Luis Zuloaga Rotta

Timbre
Descuelga

Contesta : Diga?

Los mensajes en la interaccin entre objetos

El concepto de mensaje unifica todas


las formas de comunicacin entre
objetos, en particular la llamada de una
operacin, un evento discreto, la seal
entre flujos de ejecucin o la
interrupcin de hardware.
Los diagramas de secuencia distinguen
dos categoras de envos de mensaje :

Objeto A

Objeto B

Mensaje sncrono

Mensaje asncrono

Sncronos, en los que el emisor est


bloqueado y espera que el receptor haya
terminado de tratar el mensaje.
Asncronos, en los que el emisor no est
bloqueado y puede continuar su ejecucin.

Ing. Luis Zuloaga Rotta

Representacin de las interacciones


Objeto A

Objeto B

Objeto A

Objeto A
Crear

Mensaje con
demora

Objeto B

Mensaje
reflexivo
Destruir

Representacin de la
creacin y de la
destruccin de objetos.
Ing. Luis Zuloaga Rotta

Periodos de actividad de los objetos

Un periodo de actividad corresponde


al tiempo durante el que un objeto
efecta una accin, bien
directamente, o bien por medio de
otro objeto que le sirve de
subcontratado.
Los periodos de actividad se
representan por bandas rectangulares
colocadas sobre las lneas de vida.
El inicio y el fin de una banda
corresponden, respectivamente, al
inicio y fin de un periodo de actividad.
Ing. Luis Zuloaga Rotta

Objeto: Clase
Activacin

Activacin de un objeto
mediante un mensaje sncrono
Objeto A

Objeto B

Retorno
Implcito
No se hace
necesaria su
representacin.

El diagrama siguiente muestra el caso de


un objeto A que activa otro objeto B, tal que
el perodo de actividad del objeto A recubre
el periodo de actividad del objeto B.
En caso de una llamada de operacin, el
flujo de jecucin es pasada por el objeto A
al objeto B. El objeto A queda bloqueado
hasta que el objeto B le devuelve una
respuesta.
En el caso de una llamada de operacin, y
mas generalmente en el caso de envos
sncronos, el retorno al fin de la ejecucin
de la operacin es implcito, no es
necesario representarlo en los diagramas.
Ing. Luis Zuloaga Rotta

Activacin de un objeto
mediante un mensaje asncrono

En el caso de envo
asncronos, el retorno
debe materializarse
cuando existe.
El diagrama de la derecha
muestra un objeto B
inicialmente activado por
el objeto A, que devuelve
un mensaje al objeto A
antes de cesar su
ejecucin.

Objeto B

Objeto A

Ing. Luis Zuloaga Rotta

Retorno
explcito

Los mensajes recursivos

El caso particular de
envos de mensajes
recursivos se
representa por un
desdoblamiento de la
banda rectangular.

Ing. Luis Zuloaga Rotta

Objeto A

Mensaje
recursivo

10

Estructuras de control
Objeto A

Objeto B Objeto C

Control centralizado

Objeto D

Objeto A

Objeto B Objeto C

Objeto D

Control descentralizado

La forma de los diagramas de secuencia es el reflejo del modo de


control de la interaccin.
Ing. Luis Zuloaga Rotta

11

Restricciones temporales

Los diagramas de secuencia


pueden completarse por
indicaciones textuales,
expresadas en forma de
texto libre o de
pseudocdigo.
El instante de emisin de un
mensaje, llamado transicin,
puede sealarse con un
nombre en el diagrama
cerca del punto de partida
de la flecha que simboliza el
mensaje.

Objeto A

Objeto B

Objeto C

x
{ y-x < 3s}
y
{ z-y < 1s}

{ t- t < 2s}

Ing. Luis Zuloaga Rotta

z
t
t

12

Mensajes condicinados

La adicin de
pseudocdigo sobre la
parte izquierda del
diagrama permite la
representacin de bucles
y bifurcaciones, de modo
que los diagramas de
secuencia pueden
representar la forma
general de una
interaccin, ms all de
la simple consideracin
de un escenario
particular.

Objeto A

Objeto B

*[X] mensaje

Objeto A

Equivalente
A bucle WHILE

Objeto B Objeto C

[X] mensaje

Equivalente a
IF ... THEN .... ELSE

[no X] mensaje

Ing. Luis Zuloaga Rotta

13

Las alternativas

Las alternativas,
en el lado del
destinatario del
mensaje, se
representan
desdoblando la
lnea de vida del
objeto
destinatario.

Objeto A

Objeto B
[X]

Mensaje

[Y]

Ing. Luis Zuloaga Rotta

14

Ejemplo

Supongamos que deseamos contruir el diagrama de secuencia del


siguiente UC:
CLIENTE RETIRA DINERO DE CAJERO AUTOMATICO

Pre-condiciones:
Usuario es cliente del Banco
Usuario conoce su password
El cajero esta comunicado con el servidor central de
cuentas del Banco
El cliente tiene fondos suficientes en su cuenta como para
efectuar retiro del monto requerido
El dispensador de dinero del cajero puede atender el
retiro solicitado
Actores : Cliente y Servidor de Banco
Trigger : Arribo de un cliente al cajero para retirar dinero
Ing. Luis Zuloaga Rotta

15

Diagrama de Casos de Uso : Cajero Automatico

<< Comunica >>


<< Incluye >>

RETIRO DINERO
DE CAJERO
AUTOMATICO

<< Incluye >>

CLIENTE
VALIDAR
ACCESO

SERVIDOR
BANCO

Actor
secundario

TRANSFERENCIA
DE DINERO

<< Comunica >>

Ing. Luis Zuloaga Rotta

16

Especificacin de Caso de Uso


1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.

Cliente ingresa tarjeta


Cajero valida tarjeta de cliente
Cliente somete password
Cajero valida password
Cajero muestra pantalla de operaciones
Cliente solicita operacin de retiro
Cajero valida operacin
Cajero muestra pantalla de retiro
Cliente requiere monto de retiro
Cajero valida posibilidad de atender retiro
Cajero solicita a servidor de Banco operacin de
retiro
Servidor verifica cuenta cliente
Servidor actualiza cuenta de cliente con monto de
retiro
Cajero ordena a dispensador entregar monto de
dinero de retiro
Cajero ordena impresin de vaucher de retiro
Cajero muestra pantalla de operaciones
Cliente cierra sesin (puede elegir continuar.......)
Ing. Luis Zuloaga Rotta

Las actividades
12 y 13
corresponden al
actor secundario
y no al caso de
uso.

La actividades 17
no corresponde al
caso de uso.

17

Pantalla
operacion

Administrador
operaciones

Dispensador
dinero

Servidor
Banco

: CLIENTE
Ingresa tarjeta
Validar tarjeta
Ingresar password
Somete password

{Operacin

contempla tipo
de moneda}

Validar password

Elegir operacion
Retirar

Validar operacion

Ingresar monto

{Monto no debe
ser superior a
los 2000}

Retirar (X)
Validar Retirar (X)
Validar Retirar (X)
Retirar (X)
Dispensar (X)
Elegir Operacion

Imprimir vaucher Retirar (X)

Cierra Sesion

Ing. Luis Zuloaga Rotta

18

Las Clases

Ejec105 : Maleta

Viaj325: Maleta

Una clase es una


descripcin abstracta
condensada- de un
Cobr2154 : Maleta
conjunto de objetos del
mbito de la aplicacin.
Las clases se
Maleta
representan por
Denominacion
Color
ATRIBUTOS
rectngulos
Precio
Capacidad
compartimentados.
OPERACIONES

Ing. Luis Zuloaga Rotta

Est1235: Maleta

Abrir ( )
Cerrar ( )
Calcular peso ( )

19

Estereotipos de clases

El rectngulo que simboliza la clase


puede contener tambin un
estereotipo y propiedades.
Un estereotipo es un mecanismo que
se utiliza para categorizar las clases.
UMLdefine 3 estereotipos primarios :
<<Borde>> (boundary), <<Control>> y
<<Entidad>> (entity).
Las propiedades designan los
valores vinculados a un elemento de
modelado, como atributos,
asociaciones y etiquetas.
Ing. Luis Zuloaga Rotta

Nombre clase
<<Estereotipo>>

Propiedad

Formulario
Matricula
<<Borde>>
Estado = prueba
Autor = luis

20

Clases Lmite o borde

Son aquellas clases que


establecen el lmite entre su
sistema y el resto del
mundo.
Estas incluyen todos los
formularios, reportes,
interfaces a hardware
(printers o escaners) e
interfaces a otros sistemas.
Como mnimo debe existir
una clase lmite por cada
interaccin actor-caso uso.

Simbolo UML para


una clase limite

CASO USO

ACTOR A

Ing. Luis Zuloaga Rotta

Aqu existe
una clase
lmite

21

Clases Entidad

Son las que almacenan informacin


que es necesario grabar en
almacenamiento persistente.
Son las clases que tienen mayor
significado para el usuario y son
tipicamente nombradas usando
terminologa del dominio del negocio.
Frecuentemente se crea una Tabla en
la BD por cada clase entidad. En
lugar de definir primero la estructura
de la BD, tenemos la opcin de
desarrollar la estructura de la BD
desde informacin reunida en el
modelo de objetos.
Ing. Luis Zuloaga Rotta

Simbolo UML para


una clase entidad

22

Clase control

Son las responsables de coordinar los


esfuerzos de otras clases.
Hay tipicamente una clase control por
caso de uso, la cual controla la
secuenciacin de eventos a travs del
caso de uso.
La clase control no ejecuta alguna
funcionalidad por si misma y otras clases
no envan muchos mensajes a ella. En
lugar de ello enva un lote de mensajes a
otras.
La clase control simplemente delega
responsabilidad a las otras clases, por
esta razn son llamadas clases
administrador.
Ing. Luis Zuloaga Rotta

Simbolo UML para


una clase control

23

Atributos y Operaciones

Pueden ser mostrados de manera exahustiva o


no en los compartimientos de clases.
Lo recomendable es completarlos
progresivamente en la transicin del anlisis
hacia el diseo.
Sintaxis :

Nombre_atributo: tipo_atributo= valor_aributo


Nombre_operacin(argumento :tipo_argumento=valor_predeterminado, ....): tipo_devuelto

Ing. Luis Zuloaga Rotta

24

Especificacin detallada de una Clase


Atributo

Operacin

ALUMNO
DNI : char[10]
Nombre : char[50]
Fecha_nacimiento : date
Numero_expediente : int
Credito_educativo : money = 0
alta ( )
poner_nota (asignatura: char[5], ao: int, nota: float )

Tipo
atributo

Valor inicial
de atributo

Argumentos
de operacin

matricular (curso: asignatura, ao: int)


listar_expediente ( )

Ing. Luis Zuloaga Rotta

25

Atributos derivados

Los atributos derivados


ofrecen una solucin
para asignar a las
clases propiedades
que son derivadas de
otras propiedades.
En diseo el atributo
derivado ser
transformado en una
operacin que
encapsular la
propiedad.
Ing. Luis Zuloaga Rotta

Rectngulo
Longitud
Ancho

/Superficie
/Diagonal

Rectngulo
Longitud
Ancho
Superficie ( )
Diagonal ( )

26

Visibilidad de los atributos y las


operaciones

Pblico : que hace el


elemento visible a todos
los clientes de la clase
Protegido : que hace el
elemento visible a las
subclases de la clase.
Privado : que hace el
elemento visible slo
para la clase.
Ing. Luis Zuloaga Rotta

27

Clase parametrizada

Son modelos de clases. Una

clase parametrizable es una


clase que es usada para crear
una familia de otras clases.

Una clase parametrizable no


puede ser utilizada tal cual.
Conviene primero instanciarla, a
fin de obtener una clase
concreta que podr a su vez ser
instanciada en objetos.
Ing. Luis Zuloaga Rotta

Item

Clase
Parametrizada
Atributo 01
Atributo 02
Operacion 1 ( )
Operacion 2 ( )

28

. . . Clase parametrizada

Lista

Una clase parametrizable es


alguna suerte de contenedor, y
tambin es conocida como un
template(plantilla), como los
templates de C++.
Este tipo de clases no aparece
generalmente en el anlisis.
Las clases parametrizables se
utilizan sobre todo en diseo
detallado para incorporar, por
ejemplo, componentes
reutilizables.

Item

Atributo

Adicionar ( )
Remover ( )

Lista<Ordenes>
Lista<Empleados>

Atributo

Atributo
Adicionar ( )
Remover ( )
Adicionar ( )
Remover ( )

Ing. Luis Zuloaga Rotta

29

Clase Utilidad

Es una coleccin de slo operaciones.


Aquellas operaciones de uso general
que no pueden acomodarse dentro de
una clase particular, se encapsulan
dentro de una clase utilidad para uso
por las otras clase del sistema.
Son clases que no pueden ser
instanciadas, y que son tiles para
agrupar elementos dentro de un
mdulo, como por ejemplo las
funciones de una biblioteca
matemtica.
Ing. Luis Zuloaga Rotta

Clase Utilidad

Operacion 01 ( )
Operacion 02 ( )

30

Clase parametrizada utilidad

Es una clase
parametrizada que
contiene slo un
conjunto de
operaciones.
Representa la plantilla
(template) que
esutilizado para crear
clases utilidad.
Ing. Luis Zuloaga Rotta

Item
Clase Utilidad

Operacion 01 ( )
Operacion 02 ( )

31

Metaclase

Es una clase cuyas


instancias son clases en
lugar de objetos.
Las clases
parametrizadas y las
clases parametrizadas
utilidad son ejemplos de
metaclases.

Item

Clase
Parametrizada
Atributo 01
Atributo 02
Operacion 1 ( )
Operacion 2 ( )

Ing. Luis Zuloaga Rotta

Item
Clase Utilidad

Operacion 01 ( )
Operacion 02 ( )

32

Asociaciones

Representan relaciones
estructurales entre clases de
objetos.
La mayor parte de las
asociaciones son binarias, es
decir, que conectan dos
clases.

Asociacin

Ing. Luis Zuloaga Rotta

33

AULA

Pluralidad de las asociaciones

Sin embargo existen relaciones


superiores, y se representan por
medio de un rombo al que llegan
los diferentes componentes de
la asociacin.
Las asociaciones n-arias
pueden representarse
generalmente promoviendo la
asociacin al rango de clase y
aadiendo una restriccin que
expresa que las mltiples ramas
de la asociacin se instancian
simultneamente.

ALUMNO

DOCENTE

CURSO
Fecha Inicio
Capacidad

AULA

ALUMNO

Ing. Luis Zuloaga Rotta

<< Asociacion
Ternaria >>

DOCENTE

CURSO
Fecha Inicio
Capacidad

34

Nombrado de las asociaciones

Los nombres de las asociaciones deben ser


escritos en cursiva y ubicarse al centro y por
encima de la lnea de asociacin.
Se recomienda dar nombre a las asociaciones
por una forma verbal,ya sea del tipo :
activa (trabaja para), o bien
pasiva (es empleado por).

EMPRESA

E MPLEADOR DE >

PERSONA

PERSONA

Ing. Luis Zuloaga Rotta

ES EMPLEADO POR >

EMPRESA

35

Nombrado de roles o funciones

Al extremo de una asociacin se


llama rol o funcin. Cada
asociacin binaria posee dos roles,
uno en cada extremo.
El rol describe como una clase ve a
otra clase a travs de la asociacin.
Cuando dos clases se relacionan
por una sola asociacin, elnombre
de las clases basta normalmente
para caracterizar el rol o funcin; el
nombrado de los roles tiene mayor
inters cuando existe mas de una
asociacin entre dos clases.
Ing. Luis Zuloaga Rotta

EMPRESA

Empleador

PERSONA
Empleado

AVION

Piloto

PERSONA
Pasajero

36

Colocacin de atributos segn la


multiplicidad

La materializacin de las asociaciones toma todo su


inters para las asociaciones n a n (muchos a
muchos).
Para las asociaciones 1 a 1, los atributos de la
asociacin pueden ser desplazados a una de las
clases que participan en la asociacin.
En las asociaciones 1 a n, el desplazamiento es
posible generalmente hacia la clase del lado n; sin
embargo es fecuente promover la asociacin al
rango de clase para aumentar la legibilidad.
Ing. Luis Zuloaga Rotta

37

Ejemplo :

ALUMNO
1
0..*

Nombre

Realiza >
0..*

0..*

TRABAJO
Tema

DIPLOMA
Mencion

Nota
1

HABITACION
Numero

La asociacin entre la clase Alumno y la clase Trabajo es del tipo


n a n. La clase Trabajo describe el tema, la solucin aportada por
el Alumno no se conserva.
En el caso de los controles de conocimientos, cada Alumno
escribe individualmente sobre un Trabajo dado y la nota obtenida
no puede almacenarse en un Alumno en particular (porque ste
realiza numeros trabajos) ni en un Trabajo (porque hay tantas
notas como alumnos). La nota es un atributo de la relacin entre
la clase Alumno y la clase Trabajo.
Ing. Luis Zuloaga Rotta

38

ALUMNO
1
0..*

Nombre

Realiza >
0..*

0..*

TRABAJO
Tema

DIPLOMA
Mencion

Nota
1

HABITACION
Numero

A fin de curso, cada Alumno recibe un Diploma con una mencin


que depende del rendimiento individual del Alumno.
La relacin entre el Diploma y el Alumno es personalizada porque
un Diploma slo afecta a un Alumno dado.La mencin es un
atributo del Diploma. La mencin no se almacena en el Alumno por
dos razones : no cualifica a un Alumno y un Alumno puede obtener
varios Diplomas.
Ing. Luis Zuloaga Rotta

39

ALUMNO
1
0..*

Nombre

Realiza >
0..*

0..*

TRABAJO
Tema

DIPLOMA
Mencion

Nota
1

HABITACION
Numero

Cada Alumno posee una Habitacin la cual es


identificada por un nmero y una Habitacin no es
compartida por varios Alumnos.
La asociacin entre los Alumnos y las Habitaciones es
del tipo 1 a 1. El nmero es un atributo de la clase
Habitacin porque un nmero caracteriza al objeto
Habitacin.
Ing. Luis Zuloaga Rotta

40

Restricciones de asociacin

Las restricciones pueden definirse sobre una relacin


o sobre un grupo de relaciones.
La multiplicidad presentada anteriormente es una
restriccin sobre el nmero de enlaces que pueden
existir entre dos objetos.
Las restricciones se representan en los diagramas por
expresiones encerradas entre llaves.
Las restricciones pueden ser del tipo :
Ordenada
Subconjunto
O-exclusivo
Ing. Luis Zuloaga Rotta

41

La restriccin { ordenada }

Puede colocarse sobre el rol


para especificar que una
relacin de orden describe
los objetos colocados en la
coleccin; en este caso, el
modelo no especifica cmo
se ordenan los elementos,
sino solo que el orden debe
mantenerse durante la
edicin, eliminacin u otra
operacin de objetos.

PERSONA
nombre

Ing. Luis Zuloaga Rotta

Posee >
1

0..*

CUENTA
numero

{Ordenada}

42

La restriccin { Subconjunto }

Esta restriccin
indica que una
coleccin est
includa en otra
coleccin.
EMPRESA
RUC
Establece que los
objetos que
participan en la
asociacin
restringida debe
tambin participar en
la otra.

empleado

*
{ Subconjunto }

Ing. Luis Zuloaga Rotta

1..20

PERSONA
nombre
directivo

43

La restriccin { o-exclusivo }

Precisa que para un


objeto dado, es vlida
una sola asociacin
entre un grupo de
asociaciones.
Esta restriccin evita
la introduccin de
subclases artificiales
para materializar la
exclusividad.

UNIVERSIDAD

tipo

Ing. Luis Zuloaga Rotta

{o-exclusivo}

*
docente

alumno

PERSONA

nombre

44

Asociacin recursiva

Se representa por la
asociacin de una clase
con si misma.
El nombre del rol de la
asociacin toma de
nuevo toda su
importancia para
distinguir las instancias
que participan en la
relacin.
Ing. Luis Zuloaga Rotta

PERSONA

padre

nombre

hijo

1..*

45

La Clase Asociacin

Una asociacin puede


representarse por una
clase, para aadir, por
ejemplo, atributos y
operaciones a la asociacin.
Es una clase como otras y
puede participar en otras
relaciones en el modelo.
Una asociacin que
contiene atributos sin
participar en relaciones con
otras clases se llama
asociacin atribuida.

PACIENTE
Nombre

Tratado por >


0..*

1..*

MEDICO
area

0..* CONSULTA

fecha

TRATAMIENTO
numero
aadir ( )

ALUMNO
Nombre

Ing. Luis Zuloaga Rotta

Realiza >
0..*

0..*

TRABAJO
Tema

Nota

46

Restriccin de una asociacin


Consiste

en seleccionar un subconjunto de objetos entre el conjunto


de objetos que participan en una asociacin.
Se realiza por medio de una tupla de atributos particulares (llamada
clave) y se utiliza conjuntamente con un objeto de la clase de partida.
La clave se representa sobre el rol de la clase de partida bajo el
nombre de cualificador o calificador. La clave pertenece a la
asociacin y no a las clases asociadas.
El cualificador es un atributo especial que reduce la multiplicidad
efectiva de una asociacin. Las asociaciones uno a muchos y muchos
a muchos pueden ser cualificadas.
Contiene >

DIRECTORIO

path

0..*

FILE

nombre

FILE

DIRECTORIO

nombre

ID_file

path

Calificador

Ing. Luis Zuloaga Rotta

47

Cualificador

Cada instancia de la clase A


acompaada del valor de la
clave, identifica un subconjunto
de instancias de B que
participan en la asociacin. La
restriccin reduce la
multiplicidad de la asociacin.
El par (instancia de clase de
partida, valor de clave)
identifica un subconjunto de
instancias de la otra clase. A
menudo la multiplicidad se
reduce a 1, aunque no siempre.

EMPRESA

RUC

EMPRESA

RUC

EMPRESA

RUC

Ing. Luis Zuloaga Rotta

Ejecutivo
*

PERSONA

nombre

PERSONA

dpto

nombre
*

PERSONA

ID_empl

nombre
*

48

La Agregacin de Clases

Expresa un fuerte acoplamiento


entre los objetos agregados.
Los siguientes criterios implican
una agregacin:

Una clase forma parte de otra clase.


Los valores de atributos de una clase
se propagan en los valores de
atributos de otra clase.
Una accin sobre una clase implica
una accin sobre otra clase.
Los objetos de una clase son
subordinados a los objetos de otra
clase.
Ing. Luis Zuloaga Rotta

PERSONA
DNI

1..*

Agregacin por
referencia

0..*
INMUEBLE
nro registro

49

La Composicin

La contensin fsica es un caso


particular de agregacin, llamado
COMPOSICIN.
Los atributos constituyen un caso
particular de agregacin realizada por
valor: estn fsicamente contenidas
por el agregado.
La composicin implica una restriccin
sobre el valor de multiplicidad en el
lado del agregado: slo puede tomar
los valores 0 o 1. El valor 0 en el lado
del componente corresponde a un
atributo no explicitado.
Ing. Luis Zuloaga Rotta

AGREGADO

0..1

Agregacin por
Composicin

*
COMPONENTE

50

Equivalencia entre notacin de contencin por


valor de atributo y composicin
AUTO
motor

AUTO

MOTOR

<=>

CARBURADOR

CILINDRO

...

Ing. Luis Zuloaga Rotta

51

Atributos de una agregacin

En una gregacin la clase todo tendr atributos


adicionales por cada una de las clases parte. Si
estos atributos estn contenidos por valor o por
referencia qu es donde se definen.
Un atributo de contensin por valor sugiere que el
todo y la parte son creadas y destruidas al mismo
tiempo.
Una agregacin por referencia sugiere que el todo
y la parte son creadas y destrudas en diferentes
tiempos.
Ing. Luis Zuloaga Rotta

52

Navegavilidad

Las asociaciones describen la red de relaciones estructurales


que existen entre las clases y que dan lugar a los enlaces entre
los objetos.
Los enlaces pueden ser vistos como canales de navegacin
entre los objetos.
En principio, las asociaciones son navegables en ambas
direcciones. En ciertos casos slo es til una direccin de
navegacin.
La navegabilidad se representa por una flecha orientada hacia
la clase sobre la que es psible la navegacin.
USUARIO

Id usuario

PASSWORD

derecho

Direccin de
navegavilidad

Ing. Luis Zuloaga Rotta

53

Expresiones de Navegacin

La sintaxis de las expresiones de navegacin viene


dada por las cuatro reglas siguientes :

destino::=conjunto . selector
destino::=conjunto . ~ selector
destino::=conjunto [ expresion_booleana ]
destino::=conjunto . selector [ valor_de_clave ]

El selector corresponde bien a un nombre de atributo de los


objetos del conjunto, bien a un nombre de asociacin de la
clase de objetos, o bien a un nombre de rol opuesto sobre
un enlace que concierne a los objetos del conjunto. El
destino es un conjunto de valores o de objetos cuyo nmero
depende de la multiplicidad del conjunto y de la asociacin.
Ing. Luis Zuloaga Rotta

54

PERSONA

padre

PERSONA

nombre

nombre

padre
id persona
2

hijo

1..*

hijo

UnaPersona.Hijos designa todos los hijos de una persona


dada.
UnaPersona. ~Hijos designa los padres de una persona dada.
UnaPersona.Hijos[edad>=18aos] designa todos los hijos
mayores de edad de una persona dada.
UnaPersona.Hijo[UnNombre] identifica un hijo dado de
manera no ambigua.

Ing. Luis Zuloaga Rotta

55

La Generalizacin

UML emplea este trmino para designar la relacin de


clasificacin entre un elemento ms general y un
elemento ms especfico.
La generalizacin se aplica principalmente a las
clases, paquetes y casos de uso.
Los atributos, las operaciones, las relaciones y las
restricciones definidas en las superclases se heredan
integramente en las subclases.
Las clases pueden tener varias superclases; en este
caso, la generalizacin se denomina mltiple.
Una clase puede ser especializada segn varios
criterios diferentes (discriminates).
Ing. Luis Zuloaga Rotta

56

Restricciones de la Generalizacin

En principio, la generalizacin simboliza una


descomposicin exclusiva, es decir, que un objeto es
como mximo instancia de una de las subclases.
La restriccin {Disyuntivo} o {Exclusivo} indica que
cualquier clase descendiente de una clase A slo
puede ser descendiente de una subclase de A.
La restriccin {Encabalgamiento} o {Inclusivo} indica
que una clase descendiente de una clase A
pertenece al producto cartesiano de las subclases de
A. Un objeto concreto se construye a partir de una
clase obtenida por mezcla de varias superclases.
Ing. Luis Zuloaga Rotta

57

Restricciones de la Generalizacin
VEHICULO

CHAMPION

medio

TERRESTRE

{inclusivo}
motorizacin

{exclusivo}
ADARICUS

PIE AZUL

BOLETUS

LICOPODIO

A VELA

Herencia
Mltiple

Ing. Luis Zuloaga Rotta

MARINO

A MOTOR

VELOMOTOR

58

Las Clases Abstractas

No son instanciables
directamente; no dan
lugar a objetos, sino
que sirven de
especificacin ms
general de tipo- para
lograr manipular los
objetos instancias de
una (o varias) de sus
subclases.

Clase Abstracta

DOCUMENTO

destino

alcance
INFORME

Ing. Luis Zuloaga Rotta

OFICIO

MEMO

MEMORIA

59

GestionEjemplar
crearEjemplar( )
eliminarEjemplar( )
ejemplarAEstante( )
ejemplarATaller( )
GestionReserva
consultarEjemplar( )
reservarEjemplar( )
borrarReserva( )
GestionPrestamo
prestarEjemplar( )
devolverEjemplar( )

Ejemplar

INTERFACES

Codigo : integer
Cantidad : integer
Estado : integer
exponer ( )
reservar ( )
borrarReserva ( )
prestar ( )
devolver ( )
retirar ( )
reponer ( )

GESTIN

BASE DATOS

Ing. Luis Zuloaga Rotta

60

Comportamiento de los Objetos

Qu es un Diagrama de Transicin de Estado ?

Es usado para mostrar la historia de vida de


los objetos de una clase dada, los eventos
que causan una transicin desde un estado
a otro, y las acciones que resultan desde un
cambio de estado.
El espacio de estados de una clase dada es
la enumeracin de todos los posibles
estados de un objeto.

Ing. Luis Zuloaga Rotta

62

Los Diagramas de Estados-Transiciones

Visualizan
autmatas de
Activo Ms de 60 aos
estados finitos
desde el punto de
Prdida
Jubilado
Contrato
vista de los
empleo
estados y las
Desocupado
transiciones.
Ms de 60 aos

Ing. Luis Zuloaga Rotta

63

Los Autmatas

El comportamiento de los objetos de una clase


puede describirse de manera formal en trminos de
estados y eventos, por medio de un autmata
vinculado a la clase considerada.
Los objetos que no presentan un comportamiento
reactivo muy marcado pueden considerarse como
objetos que estn siempre en el mismo estado: en
este caso, sus clases no poseen ningn autmata.
Un autmata es una abstraccin de los
comportamientos posibles, a imagen de los
diagramas de clases que son abstracciones de la
estructura esttica.
Ing. Luis Zuloaga Rotta

64

Autmatas y escenarios

Los autmatas y los escenarios


son complementarios. Los
escenarios se representan por
una colaboracin entre objetos.
La forma de la interaccin entre
los objetos que colaboran
dentro de un escenario se
determina por los estados
respectivos de los diferentes
objetos.
Ing. Luis Zuloaga Rotta

CLASE

1
0..1
AUTMATA

Abstraccion de los
comportamientos
posibles.

65

Los Estados

Cada objeto est en un


momento determinado en
un estado particular.
Los estados se
caracterizan por la nocin
de duracin y de
estabilidad. Un objeto est
siempre en un estado dado
por un cierto tiempo y un
objeto no puede estar en
un estado desconocido o
no definido.

CURSO SECCION

seccion
numAlumnos

Matemticas I
:CURSO SECCION

numAlumnos=7

Adicionar( )

El mximo nro de alumnos por


seccin es 10
numAlumnos <10

ABIERTO

Ing. Luis Zuloaga Rotta

numAlumnos =10

CERRADO

66

Estado inicial y final

Los autmatas usados por UML


son deterministas.
Ello significa que siempre hay
que describir el estado inicial del
objeto, el cual es nico y
aparece cuando el objeto es
creado.
El estado final indica el fin de la
vida de un objeto.Es posible
tener varios estados finales que
corresponden cada uno a una
condicin de fin distinta.

estado inicial

Ing. Luis Zuloaga Rotta

estado final

67

Las Transiciones

Cuando las condiciones dinmicas


evolucionan, los objetos cambian de
estado siguiendo las reglas descritas
en el autmata asociado a sus clases.
Los estados estn vinculados por
conexiones unidireccionales llamadas
transiciones.
El paso de un estado a otro se efecta
cuando se desencadena una transicin
por un evento que aparece en el
mbito del problema.
Las transiciones no vinculan
necesariamente estados distintos.
Ing. Luis Zuloaga Rotta

numAlumnos <10

ABIERTO
Transicin

CERRADO
numAlumnos =10

68

Los Eventos

Un evento sirve de
desencadenante para
pasar de un estado a otro.
Los eventos determinan
que caminos deben
seguirse. Los eventos, las
transiciones y los estados
son indisociables en la
descripcin del
comportamiento dinmico.

Ev1

Adicionar alumno

ABIERTO

Cerrar
Curso

Cancelar Curso

CANCELADO

CERRADO

Ing. Luis Zuloaga Rotta

69

Super y sub estados

Super estados son los estados


mas generales, los estados
mas especifcos se llaman sub
estados.
Un estado puede
descomponerse en varios sub
estados disyuntivos (estados
anidados).
Los sub estados heredan
caractersticas de su super
estado, en particular las
variables de estado y las
transiciones externas.

Ev1

Ev2

Ev2

Ing. Luis Zuloaga Rotta

SUPER ESTADO

Ev1
Ev2
C

70

Estados anidados con Historia

El uso de la caracterstica de
historia H seala que al
retornar un objeto a un super
estado, este ingresar al
ltimo estado en el que
estuvo dentro del super
estado.
Si la caracterstica de historia
no es utilizada siempre el sub
estado inicial del super
estado ser asignado al
objeto retornante.

VENTANA ABIERTA
MAXIMIZADA

CUSTOMIZADA

Ing. Luis Zuloaga Rotta

MINIMIZADA
Ev2

71

Agregacin de Estados

La agregacin de estados
es la composicin de un
estado a partir de otros
varios estados
independientes.
La composicin es de tipo
conjuntiva lo que implica
que el objeto debe estar
simultneamente en todos
los estados que
componen la agregacin
de estados

ESTADO AGREGADO
A

Ev1
X

Ev3

Ing. Luis Zuloaga Rotta

Ev4

Ev1
Ev2

[en C]

72

Especificacin de un Evento

Nombre del evento


Lista de parmetros
Objeto emisor
Objeto destinatario
La descripcin del
significado del evento

Ing. Luis Zuloaga Rotta

73

Los Guardas

Un guarda es una condicin


booleana que valida o no el
desencadenamiento de una
transicin en la ocurrencia de
un evento.
Los guardas permiten permiten
mantener el aspecto
determinista de un autmata
de estados finitos, incluso
cuando varias transiciones
pueden ser desencadenadas
por el mismo evento.

Ev1[condicion]

Guarda

ABIERTO

Un objeto MAT I de la
clase CURSO pasar
del estado ABIERTO a
CERRADO si :

CerrarRegistro[numAlumnos =10]

CERRADO

Ing. Luis Zuloaga Rotta

74

Las Operaciones, las acciones y las


actividades

El enlace entre las operaciones definidas en la


especificacin de clase y los eventos que aparecen en los
diagramas de estados-transiciones se efecta por medio de
acciones y actividades.
Cada transicin puede ir acompaada del nombre de una
accin a ejecutar cuando la transicin sea desencadenada
por un evento.
La accin corresponde a una de las operaciones declaradas
en la clase del objeto destinatario del evento.
Los estados pueden contener tambin acciones que se
ejecutan al entrar o salir del estado o al ocurrir un evento
mientras el objeto est en ese estado.
Ing. Luis Zuloaga Rotta

75

Acciones de la Transicin

Estas acciones son


operaciones asociadas a la
transicin de un estado a
otro:

Toma una cantidad


insignificante de tiempo
completarla.
Considerada ininterrumplible
El evento que produce la
transicin puede generar el
envo de otro evento.

Accin

Abrir Registro / Inicializar


numAlumnos to 0
CREADO
Adicionar
alumno

ABIERTO

Cancelar
curso

CANCELADO
CerrarCurso[numAlumnos =10]
^ReporteCurso.CreateReporte

CERRADO

Ing. Luis Zuloaga Rotta

76

Acciones de Estado

La accin de entrada (entry:)


se ejecuta de manera
instantnea y atmica al
entrar en el estado.
La accin de salida (exit:) se
ejecuta al salir del estado.
La accin sobre el evento
interno (on:) se ejecuta al
ocurrir un evento que no
conduce a otro estado. Un
evento interno no entraa la
ejecucin de las acciones de
entrada/salida.

CREADO
do: Inicializar objeto curso

Abrir
registro

Asignar
profesor

ASIGNADO
do: Asignar profesor curso
Adicionar
alumno

ABIERTO
entry: Registrar un alumno

Ing. Luis Zuloaga Rotta

Cerrar
registro

CERRADO
do: reportar curso lleno

77

Puntos de ejecucin de las Operaciones

Existen seis puntos, cuyo orden es :


La

accin asociada a la transicin de


entrada (Op1)
La accin de entrada de estado (Op2)
La actividad en el estado (Op3)
La accin de salida del estado (Op4)
La accin asociada a los eventos
internos (Op5)
La accin asociada a la transicin de
salida del estado (Op6)

/ Op1

Un estado
entry: Op2
Do: Op3
exit : Op4
On UnEvento : Op5

/ Op6

Ing. Luis Zuloaga Rotta

78

Asignar
profesor

Adicionar Alumno
/nroAlumnos=nroAlumnos+1

CREADO

ASIGNADO

do: Inicializar objeto curso

do: Asignar profesor curso

Abrir registro
/nroAlumnos=0

ABIERTO
entry: Registrar un alumno

Cancelar
curso
Cancelar curso
[nroAlumnos <3]

CANCELADO
do: Enviar notas de cancelacion

Cancelar
curso

Cancelar curso

Cerrar
Registro
[nroAlumnos=10]

CERRADO
do: reportar curso lleno

Ing. Luis Zuloaga Rotta

79

Diagrama de
Estados

En Proceso

constructor( )

destructor( )

exponer( )

retirar( )

En Circulacin
Ejemplar
Codigo : integer
Cantidad : integer
Estado : integer
exponer ( )
reservar ( )
borrarReserva ( )
prestar ( )
devolver ( )
retirar ( )
reponer ( )

Disponible
prestar( )

reservar( )

Reservado

devolver( )

borrarReserva( )
prestar( )

Ing. Luis Zuloaga Rotta

Prestado

80

También podría gustarte