Documentos de Académico
Documentos de Profesional
Documentos de Cultura
UML03
UML03
( Parte III )
Objeto: Clase
Mensaje sncrono
Mensaje asncrono
Objeto B
Objeto: Clase
Activacin
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
Retorno explcito
Mensaje recursivo
10
Estructuras de control
Objeto A Objeto B Objeto C Objeto D Objeto A Objeto B Objeto C Objeto D
Control centralizado
Control descentralizado
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
{ t- t < 2s}
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
Objeto B Objeto C
[X] mensaje
[no X] mensaje
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]
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
SERVIDOR BANCO
CLIENTE
VALIDAR ACCESO << Comunica >>
Actor secundario
TRANSFERENCIA DE DINERO
16
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
17
Pantalla operacion
: CLIENTE Ingresa tarjeta
Administrador operaciones
Dispensador dinero
Servidor Banco
{Operacin
{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)
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
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
CASO USO
ACTOR A
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
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
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
24
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
Operacin
Argumentos de operacin
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
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
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
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
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
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
33
AULA
AULA
ALUMNO
DOCENTE
CURSO
Fecha Inicio Capacidad
34
PERSONA
PERSONA
EMPRESA
35
EMPRESA
Empleador
PERSONA
Empleado
AVION
Pi to lo
PERSONA
Pasa ro je
36
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}
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
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
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
MEDICO area
0 . CONSULTA .*
fecha
ALUMNO Nombre
0. .*
Realiza >
0. .*
TRABAJO Tema
Nota
46
Contiene >
1 0. .*
FILE
DIRECTORIO
FILE
path
nombre
path
ID_file 1 1
nombre
Calificador
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
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 .
*
COMPONENTE
50
<=>
CILINDRO
CARBURADOR
.. .
51
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
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.
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
58
DOCUMENTO
destino
OFICIO
alcance
INFORME MEMORIA
MEMO
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
60
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
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
numAlumnos=7
ABIERTO
CERRADO
66
estado inicial
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.
A Ev1 B
Adicionar alumno
ABIERTO
Cancelar Curso
Cerrar Curso
CANCELADO
CERRADO
69
Ev1
Ev2 C
SUPER ESTADO
Ev1 Ev2 C
70
CUSTOMIZADA
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 C Ev2 B Ev1 Y
[en C]
Ev4
72
Especificacin de un Evento
Nombre del evento Lista de parmetros Objeto emisor Objeto destinatario La descripcin del significado del evento
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
CerrarRegistro[numAlumnos =10]
CERRADO
74
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
ABIERTO
Cancelar curso
CANCELADO
CerrarCurso[numAlumnos =10] ^ReporteCurso.CreateReporte
CERRADO
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
77
Un estado
entry: Op2 Do: Op3 exit : Op4 On UnEvento : Op5
/ Op6
78
Asignar profesor
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
Cancelar curso
CERRADO
do: reportar curso lleno
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
80