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.
Llamante Lnea telefnica Llamado
Descuelga Tono

Marcar Indicacin de llamada Timbre Descuelga Contesta : Diga?

Ing. Luis Zuloaga Rotta

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 :
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.
Objeto A Objeto B

Mensaje sncrono

Mensaje asncrono

Ing. Luis Zuloaga Rotta

Representacin de las interacciones


Objeto A Objeto B Objeto A Objeto A
Crear Mensaje con demora Mensaje reflexivo Destruir

Objeto B

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 A Objeto B

Retorno explcito

Ing. Luis Zuloaga Rotta

Los mensajes recursivos


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

Mensaje recursivo

Ing. Luis Zuloaga Rotta

10

Estructuras de control
Objeto A Objeto B Objeto C Objeto D Objeto A Objeto B Objeto C Objeto D

Control centralizado

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} z t t

{ t- t < 2s}

Ing. Luis Zuloaga Rotta

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

Equivalente A bucle WHILE

Objeto A

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

SERVIDOR BANCO

CLIENTE
VALIDAR ACCESO << Comunica >>

<< Incluye >>

Actor secundario

TRANSFERENCIA DE DINERO

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
: CLIENTE Ingresa tarjeta

Administrador operaciones

Dispensador dinero

Servidor Banco

Validar tarjeta Ingresar password Somete password Validar password

{Operacin

contempla tipo de moneda}

Elegir operacion Retirar Ingresar monto Validar operacion

{Monto no debe
ser superior a los 2000}

Retirar (X) Validar Retirar (X) Validar Retirar (X) Retirar (X) Dispensar (X) Elegir Operacion Cierra Sesion Imprimir vaucher Retirar (X)

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
Abrir ( ) Cerrar ( ) Calcular peso ( )

Est1235: Maleta

Ing. Luis Zuloaga Rotta

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
Aqu existe una clase lmite

Ing. Luis Zuloaga Rotta

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

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 ) matricular (curso: asignatura, ao: int) listar_expediente ( )

Tipo atributo

Valor inicial de atributo

Operacin

Argumentos de operacin

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

Son modelos de clases. Una

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

Item

28

. . . Clase parametrizada
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.

Lista
Atributo

Item

Adicionar ( ) Remover ( )

Lista<Ordenes>
Lista<Empleados>
Atributo Adicionar ( ) Remover ( ) Adicionar ( ) Remover ( ) Atributo

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.
Clase Parametrizada
Atributo 01 Atributo 02 Operacion 1 ( ) Operacion 2 ( )

Item

Item Clase Utilidad

Operacion 01 ( ) Operacion 02 ( )

Ing. Luis Zuloaga Rotta

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

<< Asociacion Ternaria >>

DOCENTE

CURSO
Fecha Inicio Capacidad

Ing. Luis Zuloaga Rotta

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

ES EMPLEADO POR >

EMPRESA

Ing. Luis Zuloaga Rotta

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

Pi to lo

PERSONA
Pasa ro je

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 :
1 0. .*

ALUMNO Nombre
1 0. .*

Realiza >
0. .*

TRABAJO Tema

DIPLOMA Mencion
1

Nota

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

Realiza >
0. .* 0. .*

Nombre
1

TRABAJO Tema

DIPLOMA Mencion
1

Nota

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

Realiza >
0. .* 0. .*

Nombre
1

TRABAJO Tema

DIPLOMA Mencion
1

Nota

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
1

Posee >
0. .*

CUENTA numero

{Ordenada}

Ing. Luis Zuloaga Rotta

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 } 1. . 20

PERSONA nombre
directivo

Ing. Luis Zuloaga Rotta

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
{o-exclusivo} alumno

*
docente

PERSONA

nombre

Ing. Luis Zuloaga Rotta

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 nombre
hijo 1. .*

padre 2

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
0. .*

Realiza >
0. .*

TRABAJO Tema

Nota

Ing. Luis Zuloaga Rotta

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

Contiene >
1 0. .*

FILE

DIRECTORIO

FILE

path

nombre

path

ID_file 1 1

nombre

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

Ejecutivo * *

PERSONA

RUC

nombre

EMPRESA

PERSONA

RUC

dpto * *

nombre

EMPRESA

PERSONA

RUC

ID_empl * 1

nombre

Ing. Luis Zuloaga Rotta

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
Agregacin por referencia

1 .* .

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

<=>

CILINDRO

CARBURADOR

.. .

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

PASSWORD

Id usuario
Direccin de navegavilidad

derecho

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 nombre
hijo 1. .*

padre 2

PERSONA nombre
hijo 1

padre id persona 2

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

medio

TERRESTRE

{inclusivo} {exclusivo}
ADARICUS BOLETUS

motorizacin
A VELA A MOTOR

MARINO

PIE AZUL

LICOPODIO

Herencia Mltiple

VELOMOTOR

Ing. Luis Zuloaga Rotta

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

OFICIO

alcance
INFORME MEMORIA

MEMO

Ing. Luis Zuloaga Rotta

59

GestionEjemplar crearEjemplar( ) eliminarEjemplar( ) ejemplarAEstante( ) ejemplarATaller( ) GestionReserva consultarEjemplar( ) reservarEjemplar( ) borrarReserva( ) GestionPrestamo prestarEjemplar( ) devolverEjemplar( ) Ejemplar
Codigo : integer Cantidad : integer Estado : integer exponer ( ) reservar ( ) borrarReserva ( ) prestar ( ) devolver ( ) retirar ( ) reponer ( )

INTERFACES

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

Ing. Luis Zuloaga Rotta

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 Matemticas I :CURSO SECCION

seccion numAlumnos Adicionar( )

numAlumnos=7

El mximo nro de alumnos por seccin es 10


numAlumnos <10 numAlumnos =10

ABIERTO

CERRADO

Ing. Luis Zuloaga Rotta

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

estado final

Ing. Luis Zuloaga Rotta

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.
A Ev1 B
Adicionar alumno

ABIERTO

Cancelar Curso

Cerrar 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.
Ev2

Ev1

Ev2 C

SUPER ESTADO

Ev1 Ev2 C

Ing. Luis Zuloaga Rotta

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

MINIMIZADA Ev2

Ing. Luis Zuloaga Rotta

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 C Ev2 B Ev1 Y
[en C]

Ev4

Ing. Luis Zuloaga Rotta

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.
A
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.
Adicionar alumno

Accin

Abrir Registro / Inicializar numAlumnos to 0 CREADO

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

Abrir registro

ASIGNADO
do: Asignar profesor curso Adicionar alumno

ABIERTO
entry: Registrar un alumno

Cerrar registro

CERRADO
do: reportar curso lleno

Ing. Luis Zuloaga Rotta

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 Abrir registro /nroAlumnos=0

CREADO
do: Inicializar objeto curso

ASIGNADO
do: Asignar profesor curso

ABIERTO
Cancelar curso Cancelar curso [nroAlumnos <3] entry: Registrar un alumno

CANCELADO
do: Enviar notas de cancelacion Cancelar curso

Cerrar Registro [nroAlumnos=10]

Cancelar curso

CERRADO
do: reportar curso lleno

Ing. Luis Zuloaga Rotta

79

Diagrama de Estados
Ejemplar
Codigo : integer Cantidad : integer Estado : integer exponer ( ) reservar ( ) borrarReserva ( ) prestar ( ) devolver ( ) retirar ( ) reponer ( )

constructor( )

En Proceso

destructor( )

exponer( )

retirar( )

En Circulacin

Disponible
prestar( ) reservar( ) devolver( )

Reservado

borrarReserva( ) prestar( )

Prestado

Ing. Luis Zuloaga Rotta

80

También podría gustarte