Upload
hatram
View
249
Download
1
Embed Size (px)
Citation preview
ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS CON UML
( Parte III )
Ing. Luis Zuloaga Rotta
Ing. Luis Zuloaga Rotta 2
Los Diagramas de SecuenciaMuestran interacciones entre objetos según un punto de vista temporal.Representa una interacción entre objetos en base a la cronología de los envíos de mensajes.
Objeto: Clase
Línea vidaobjeto
Representación gráficade un objeto
Ing. Luis Zuloaga Rotta 3
Mensajes entre objetosLos objetos se comunican intercambiando mensajes por medio de flechas horizontales, orientadas del emisor del mensaje hacia el destinatario.El orden de envío de los mensajes viene dado por la posición sobre el eje vertical.En modelado de objetos, los diagramas se secuencia se utilizan de dos maneras diferentes :
Para documentar los Casos de UsoPara representar en forma mas precisa las interacciones entre objetos.
Ing. Luis Zuloaga Rotta 4
Documentando Casos de UsoSe concentra sobre la descripción de la interacción, a menudo en términos próximos al usuario y sin entrar en los detalles de la sincronización.La indicación que acompaña a las flechas corresponde entonces a eventos que ocurrren en el ámbito de la aplicación. En este estadío del modelado, las flechas no corresponden aún a envíos de mensajes en el sentido de lenguajes de programación.
Llamante Líneatelefónica Llamado
Descuelga
Tono
Marcar
Indicación de llamada Timbre
Descuelga
Contesta : ¿Diga?
Ing. Luis Zuloaga Rotta 5
Los mensajes en la interacción entre objetosEl concepto de mensaje unifica todas las formas de comunicación entre objetos, en particular la llamada de una operación, un evento discreto, la señal entre flujos de ejecución o la interrupción de hardware.Los diagramas de secuencia distinguen dos categorías de envíos de mensaje :
Síncronos, en los que el emisor está bloqueado y espera que el receptor haya terminado de tratar el mensaje.Asíncronos, en los que el emisor no está bloqueado y puede continuar su ejecución.
Objeto A Objeto B
Mensaje síncrono
Mensaje asíncrono
Ing. Luis Zuloaga Rotta 6
Representación de las interaccionesObjeto A Objeto B
Mensaje condemora
Objeto A
Mensaje reflexivo
Objeto A
CrearObjeto B
Destruir
Representación de la creación y de la destrucción de objetos.
Ing. Luis Zuloaga Rotta 7
Periodos de actividad de los objetosUn periodo de actividad corresponde al tiempo durante el que un objeto efectúa una acción, 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 líneas de vida. El inicio y el fin de una banda corresponden, respectivamente, al inicio y fin de un periodo de actividad.
Objeto: Clase
Activación
Ing. Luis Zuloaga Rotta 8
Activación de un objeto mediante un mensaje síncrono
El diagrama siguiente muestra el caso de un objeto A que activa otro objeto B, tal que el período de actividad del objeto A recubre el periodo de actividad del objeto B. En caso de una llamada de operación, el flujo de jecución 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 operación, y mas generalmente en el caso de envíos síncronos, el retorno al fin de la ejecución de la operación es implícito, no es necesario representarlo en los diagramas.
Objeto A Objeto B
RetornoImplícitoNo se hace necesaria su representación.
Ing. Luis Zuloaga Rotta 9
Activación de un objeto mediante un mensaje asíncrono
En el caso de envío asíncronos, 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 ejecución.
Objeto A Objeto B
Retornoexplícito
Ing. Luis Zuloaga Rotta 10
Los mensajes recursivosEl caso particular de envíos de mensajes recursivos se representa por un desdoblamiento de la banda rectangular.
Objeto A
Mensajerecursivo
Ing. Luis Zuloaga Rotta 11
Estructuras de controlObjeto 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 decontrol de la interacción.
Ing. Luis Zuloaga Rotta 12
Restricciones temporalesLos diagramas de secuencia pueden completarse por indicaciones textuales, expresadas en forma de texto libre o de pseudocódigo.El instante de emisión de un mensaje, llamado transición, puede señalarse 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
z
t
t ’
{ { yy--x < 3sx < 3s}}
{{ zz--y < 1sy < 1s}}
{{ tt-- t ‘ < 2st ‘ < 2s}}
Ing. Luis Zuloaga Rotta 13
Mensajes condicinadosLa adición de pseudocódigo sobre la parte izquierda del diagrama permite la representación de bucles y bifurcaciones, de modo que los diagramas de secuencia pueden representar la forma general de una interacción, más allá de la simple consideración de un escenario particular.
Objeto A Objeto B
*[X] mensaje
Objeto A Objeto B Objeto C
[X] mensaje
[no X] mensaje
Equivalente A bucle WHILE
Equivalente aIF ... THEN .... ELSE
Ing. Luis Zuloaga Rotta 14
Las alternativasLas alternativas, en el lado del destinatario del mensaje, se representan desdoblando la línea de vida del objeto destinatario.
Objeto A Objeto B
Mensaje
[X]
[Y]
Ing. Luis Zuloaga Rotta 15
EjemploSupongamos que deseamos contruir el diagrama de secuencia del siguiente UC:CLIENTE RETIRA DINERO DE CAJERO AUTOMATICO
Pre-condiciones:Usuario es cliente del BancoUsuario conoce su passwordEl cajero esta comunicado con el servidor central de cuentas del BancoEl cliente tiene fondos suficientes en su cuenta como para efectuar retiro del monto requeridoEl dispensador de dinero del cajero puede atender el retiro solicitado
Actores : Cliente y Servidor de BancoTrigger : Arribo de un cliente al cajero para retirar dinero
Ing. Luis Zuloaga Rotta 16
Diagrama de Casos de Uso : Cajero Automatico
CLIENTE
RETIRO DINERO RETIRO DINERO DE CAJERO DE CAJERO
AUTOMATICO AUTOMATICO
Actorsecundario
VALIDAR VALIDAR ACCESOACCESO
SERVIDORSERVIDORBANCOBANCO
<< Incluye >>
<< Comunica >>
TRANSFERENCIATRANSFERENCIADE DINERO DE DINERO
<< Comunica >>
<< Incluye >>
Ing. Luis Zuloaga Rotta 17
Especificación de Caso de Uso1. Cliente ingresa tarjeta2. Cajero valida tarjeta de cliente3. Cliente somete password4. Cajero valida password5. Cajero muestra pantalla de operaciones6. Cliente solicita operación de retiro7. Cajero valida operación8. Cajero muestra pantalla de retiro9. Cliente requiere monto de retiro10. Cajero valida posibilidad de atender retiro11. Cajero solicita a servidor de Banco operación de
retiro12. Servidor verifica cuenta cliente13. Servidor actualiza cuenta de cliente con monto de
retiro14. Cajero ordena a dispensador entregar monto de
dinero de retiro15. Cajero ordena impresión de vaucher de retiro16. Cajero muestra pantalla de operaciones17. Cliente cierra sesión (puede elegir continuar.......)
Las actividades 12 y 13
corresponden al actor secundario y no al caso de
uso.
La actividades 17no corresponde al
caso de uso.
Ing. Luis Zuloaga Rotta 18
{Monto no debe ser superior a los 2000}
Pantallaoperacion
Administradoroperaciones
Ingresa tarjeta
ServidorBanco
Dispensadordinero
: CLIENTE
Validar tarjeta
Ingresar password
Somete passwordValidar password
Elegir operacion
Retirar Validar operacion
Ingresar monto
Retirar (X)Validar Retirar (X)
Validar Retirar (X)
Retirar (X)Dispensar (X)
Imprimir vaucher Retirar (X)Elegir Operacion
Cierra Sesion
{Operación contempla tipo de moneda}
Ing. Luis Zuloaga Rotta 19
Las ClasesUna clase es una descripción abstracta –condensada- de un conjunto de objetos del ámbito de la aplicación.Las clases se representan por rectángulos compartimentados.
Ejec105 : MaletaViaj325: Maleta
Est1235: Maleta
MaletaMaletaDenominacionDenominacionColorColorPrecioPrecioCapacidadCapacidad
Abrir ( ) Cerrar ( )Calcular peso ( )
Cobr2154 : Maleta
ATRIBUTOS
OPERACIONES
Ing. Luis Zuloaga Rotta 20
Estereotipos de clasesEl rectángulo que simboliza la clase puede contener también 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.
Nombre claseNombre clase<<Estereotipo>>
Propiedad
FormularioFormularioMatriculaMatricula
<<Borde>>Estado = prueba
Autor = luis
Ing. Luis Zuloaga Rotta 21
Clases Límite o bordeSon aquellas clases que establecen el límite 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 mínimo debe existir una clase límite por cada interacción actor-caso uso.
Simbolo UML parauna clase limite
ACTOR A
CASO USO CASO USO
Aquí existeuna claselímite
Ing. Luis Zuloaga Rotta 22
Clases EntidadSon las que almacenan información que es necesario grabar en almacenamiento persistente.Son las clases que tienen mayor significado para el usuario y son tipicamente nombradas usando terminología 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 opción de desarrollar la estructura de la BD desde información reunida en el modelo de objetos.
Simbolo UML parauna clase entidad
Ing. Luis Zuloaga Rotta 23
Clase controlSon las responsables de coordinar los esfuerzos de otras clases.Hay tipicamente una clase control por caso de uso, la cual controla la secuenciación de eventos a través del caso de uso.La clase control no ejecuta alguna funcionalidad por si misma y otras clases no envían muchos mensajes a ella. En lugar de ello envía un lote de mensajes a otras.La clase control simplemente delega responsabilidad a las otras clases, por esta razón son llamadas clases administrador.
Simbolo UML parauna clase control
Ing. Luis Zuloaga Rotta 24
Atributos y OperacionesPueden ser mostrados de manera exahustiva o no en los compartimientos de clases.Lo recomendable es completarlos progresivamente en la transición del análisis hacia el diseño.Sintaxis :
Nombre_atributo: tipo_atributo= valor_aributoNombre_operación(argumento :tipo_argumento=valor_predeterminado, ....): tipo_devuelto
Ing. Luis Zuloaga Rotta 25
Especificación detallada de una Clase
ALUMNOALUMNODNI : char[10]DNI : char[10]Nombre : char[50]Nombre : char[50]Fecha_nacimiento : dateFecha_nacimiento : dateNumero_expediente : intNumero_expediente : intCredito_educativo : money = 0Credito_educativo : money = 0
alta ( )alta ( )poner_nota (poner_nota (asignatura: char[5], año: int, nota: floatasignatura: char[5], año: int, nota: float ))matricular (matricular (curso: asignatura, año: intcurso: asignatura, año: int))listar_expediente ( )listar_expediente ( )
Atributo
Tipoatributo
Valor inicial de atributo
Operación Argumentosde operación
Ing. Luis Zuloaga Rotta 26
Atributos derivadosLos atributos derivados ofrecen una solución para asignar a las clases propiedades que son derivadas de otras propiedades.En diseño el atributo derivado será transformado en una operación que encapsulará la propiedad.
RectánguloRectánguloLongitudLongitudAnchoAncho//SuperficieSuperficie//DiagonalDiagonal
RectánguloRectánguloLongitudLongitudAnchoAncho
Superficie ( )Superficie ( )Diagonal ( )Diagonal ( )
Ing. Luis Zuloaga Rotta 27
Visibilidad de los atributos y las operaciones
Público : que hace el elemento visible a todos los clientes de la claseProtegido : que hace el elemento visible a las subclases de la clase.Privado : que hace el elemento visible sólo para la clase.
Ing. Luis Zuloaga Rotta 28
Clase parametrizadaSon 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.
Clase Clase ParametrizadaParametrizada
Atributo 01Atributo 01Atributo 02Atributo 02
Operacion 1 ( )Operacion 1 ( )Operacion 2 ( )Operacion 2 ( )
ItemItem
Ing. Luis Zuloaga Rotta 29
. . . Clase parametrizadaUna clase parametrizable es alguna suerte de contenedor, y también es conocida como un template(plantilla), como los templates de C++.Este tipo de clases no aparece generalmente en el análisis.Las clases parametrizables se utilizan sobre todo en diseño detallado para incorporar, por ejemplo, componentes reutilizables.
ListaLista
AtributoAtributo
Adicionar ( )Adicionar ( )Remover ( )Remover ( )
ItemItem
ListaLista<<EmpleadosEmpleados>>
AtributoAtributo
Adicionar ( )Adicionar ( )Remover ( )Remover ( )
ListaLista<<OrdenesOrdenes>>
AtributoAtributo
Adicionar ( )Adicionar ( )Remover ( )Remover ( )
Ing. Luis Zuloaga Rotta 30
Clase UtilidadEs una colección de sólo 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 módulo, como por ejemplo las funciones de una biblioteca matemática.
Clase Utilidad
Operacion 01 ( )Operacion 02 ( )
Ing. Luis Zuloaga Rotta 31
Clase parametrizada utilidadEs una clase parametrizada que contiene sólo un conjunto de operaciones.Representa la plantilla (template) que esutilizado para crear clases utilidad.
Clase Utilidad
Operacion 01 ( )Operacion 02 ( )
Item
Ing. Luis Zuloaga Rotta 32
MetaclaseEs una clase cuyas instancias son clases en lugar de objetos.Las clases parametrizadas y las clases parametrizadas utilidad son ejemplos de metaclases.
Clase Clase ParametrizadaParametrizada
Atributo 01Atributo 01Atributo 02Atributo 02
Operacion 1 ( )Operacion 1 ( )Operacion 2 ( )Operacion 2 ( )
ItemItem
Clase UtilidadClase Utilidad
Operacion 01 ( )Operacion 02 ( )
Item
Ing. Luis Zuloaga Rotta 33
AsociacionesRepresentan relaciones estructurales entre clases de objetos.La mayor parte de las asociaciones son binarias, es decir, que conectan dos clases.
AA BB
Asociación
Ing. Luis Zuloaga Rotta 34
Pluralidad de las asociacionesSin embargo existen relaciones superiores, y se representan por medio de un rombo al que llegan los diferentes componentes de la asociación.Las asociaciones n-arias pueden representarse generalmente promoviendo la asociación al rango de clase y añadiendo una restricción que expresa que las múltiples ramas de la asociación se instancian simultáneamente.
AULAAULA
ALUMNOALUMNO
CURSOCURSO
DOCENTEDOCENTE
Fecha InicioFecha InicioCapacidadCapacidad
AULAAULA
ALUMNOALUMNO DOCENTEDOCENTE<< << Asociacion Asociacion Ternaria Ternaria >>>>CURSOCURSO
Fecha InicioFecha InicioCapacidadCapacidad
Ing. Luis Zuloaga Rotta 35
Nombrado de las asociacionesLos nombres de las asociaciones deben ser escritos en cursiva y ubicarse al centro y por encima de la línea de asociación.Se recomienda dar nombre a las asociaciones por una forma verbal,ya sea del tipo :
activa (trabaja para), o bienpasiva (es empleado por).
EMPRESAEMPRESA PERSONAPERSONAEMPLEADOR DE > PERSONAPERSONA EMPRESAEMPRESAES EMPLEADO POR >
Ing. Luis Zuloaga Rotta 36
Nombrado de roles o funcionesAl extremo de una asociación se llama rol o función. Cada asociación binaria posee dos roles, uno en cada extremo.El rol describe como una clase ve a otra clase a través de la asociación.Cuando dos clases se relacionan por una sola asociación, elnombre de las clases basta normalmente para caracterizar el rol o función; el nombrado de los roles tiene mayor interés cuando existe mas de una asociación entre dos clases.
EMPRESAEMPRESA
PERSONAPERSONA
Empleador
Empleado
AVIONAVION
PERSONAPERSONAPiloto
Pasajero
Ing. Luis Zuloaga Rotta 37
Colocación de atributos según la multiplicidad
La materialización de las asociaciones toma todo su interés para las asociaciones n a n (muchos a muchos).Para las asociaciones 1 a 1, los atributos de la asociación pueden ser desplazados a una de las clases que participan en la asociación.En las asociaciones 1 a n, el desplazamiento es posible generalmente hacia la clase del lado n; sin embargo es fecuente promover la asociación al rango de clase para aumentar la legibilidad.
Ing. Luis Zuloaga Rotta 38
DIPLOMADIPLOMA
HABITACIONHABITACION
0..*
ALUMNOALUMNO TRABAJOTRABAJO
NotaNota
0..*0..*1
1
1
MencionMencion
NumeroNumero
TemaTemaNombreNombreRealiza >Realiza >Ejemplo :
La asociación entre la clase Alumno y la clase Trabajo es del tipo n a n. La clase Trabajo describe el tema, la solución aportada por el Alumno no se conserva.En el caso de los controles de conocimientos, cada Alumnoescribe 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 relación entre la clase Alumno y la clase Trabajo.
Ing. Luis Zuloaga Rotta 39
DIPLOMADIPLOMA
HABITACIONHABITACION
0..*
ALUMNOALUMNO TRABAJOTRABAJO
NotaNota
0..*0..*1
1
1
MencionMencion
NumeroNumero
TemaTemaNombreNombreRealiza >Realiza >
A fin de curso, cada Alumno recibe un Diploma con una menciónque depende del rendimiento individual del Alumno. La relación entre el Diploma y el Alumno es personalizada porque un Diploma sólo afecta a un Alumno dado.La mención es un atributo del Diploma. La mención 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 40
DIPLOMADIPLOMA
HABITACIONHABITACION
0..*
ALUMNOALUMNO TRABAJOTRABAJO
NotaNota
0..*0..*1
1
1
MencionMencion
NumeroNumero
TemaTemaNombreNombreRealiza >Realiza >
Cada Alumno posee una Habitación la cual es identificada por un número y una Habitación no es compartida por varios Alumnos. La asociación entre los Alumnos y las Habitaciones es del tipo 1 a 1. El número es un atributo de la clase Habitación porque un número caracteriza al objeto Habitación.
Ing. Luis Zuloaga Rotta 41
Restricciones de asociaciónLas restricciones pueden definirse sobre una relación o sobre un grupo de relaciones.La multiplicidad presentada anteriormente es una restricción sobre el número 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 :
OrdenadaSubconjuntoO-exclusivo
Ing. Luis Zuloaga Rotta 42
La restricción { ordenada }Puede colocarse sobre el rol para especificar que una relación de orden describe los objetos colocados en la colección; en este caso, el modelo no especifica cómo se ordenan los elementos, sino solo que el orden debe mantenerse durante la edición, eliminación u otra operación de objetos.
PERSONAPERSONA CUENTACUENTA
0..*1numeronumeronombrenombre
Posee >Posee >
{Ordenada}
Ing. Luis Zuloaga Rotta 43
La restricción { Subconjunto }Esta restricción indica que una colección está incluída en otra colección.Establece que los objetos que participan en la asociación restringida debe también participar en la otra.
EMPRESA EMPRESA RUCRUC
PERSONAPERSONA*
nombrenombre
1..20
{ Subconjunto }
empleado
directivo
Ing. Luis Zuloaga Rotta 44
La restricción { o-exclusivo }Precisa que para un objeto dado, es válida una sola asociación entre un grupo de asociaciones.Esta restricción evita la introducción de subclases artificiales para materializar la exclusividad.
**
tipotipoUNIVERSIDAD
nombrenombrePERSONA
alumno
docente
{o-exclusivo}
Ing. Luis Zuloaga Rotta 45
Asociación recursivaSe representa por la asociación de una clase con si misma.El nombre del rol de la asociación toma de nuevo toda su importancia para distinguir las instancias que participan en la relación.
PERSONAPERSONAnombrenombre
padre
hijo 1..*
2
Ing. Luis Zuloaga Rotta 46
La Clase Asociación PACIENTEPACIENTE MEDICOMEDICO
1..*0..*areaareaNombreNombre
Tratado por >Tratado por >
fechafechaCONSULTACONSULTA
TRATAMIENTOTRATAMIENTOnumeronumero
1
0..*
añadir ( )añadir ( )
Una asociación puede representarse por una clase, para añadir, por ejemplo, atributos y operaciones a la asociación.Es una clase como otras y puede participar en otras relaciones en el modelo. Una asociación que contiene atributos sin participar en relaciones con otras clases se llama asociación atribuida.
ALUMNOALUMNO TRABAJOTRABAJO
NotaNota
0..*0..*TemaTemaNombreNombre
Realiza >Realiza >
Ing. Luis Zuloaga Rotta 47
Restricción de una asociaciónConsiste en seleccionar un subconjunto de objetos entre el conjunto de objetos que participan en una asociación.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 asociación y no a las clases asociadas.El cualificador es un atributo especial que reduce la multiplicidad efectiva de una asociación. Las asociaciones uno a muchos y muchos a muchos pueden ser cualificadas.
pathpath ID_fileID_fileDIRECTORIODIRECTORIO FILEFILE
1nombrenombre
Calificador
1
DIRECTORIODIRECTORIO FILEFILE
0..*1nombrenombrepathpath
Contiene >Contiene >
Ing. Luis Zuloaga Rotta 48
CualificadorCada instancia de la clase A acompañada del valor de la clave, identifica un subconjunto de instancias de B que participan en la asociación. La restricción reduce la multiplicidad de la asociación.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.
EMPRESAEMPRESA PERSONAPERSONA
**nombrenombreRUCRUC
EjecutivoEjecutivo
EMPRESAEMPRESA PERSONAPERSONA
**nombrenombreRUCRUC dpto
EMPRESAEMPRESA PERSONAPERSONA
1*nombrenombreRUCRUC ID_empl
Ing. Luis Zuloaga Rotta 49
La Agregación de ClasesExpresa un fuerte acoplamiento entre los objetos agregados.Los siguientes criterios implican una agregación:
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 acción sobre una clase implica una acción sobre otra clase.Los objetos de una clase son subordinados a los objetos de otra clase.
INMUEBLEINMUEBLE0..*
1..*
nro registronro registro
PERSONAPERSONADNIDNI
Agregación por referencia
Ing. Luis Zuloaga Rotta 50
La ComposiciónLa contensión física es un caso particular de agregación, llamado COMPOSICIÓN.Los atributos constituyen un caso particular de agregación realizada por valor: están físicamente contenidas por el agregado.La composición implica una restricción sobre el valor de multiplicidad en el lado del agregado: sólo puede tomar los valores 0 o 1. El valor 0 en el lado del componente corresponde a un atributo no explicitado.
COMPONENTECOMPONENTE*
0..1
AGREGADOAGREGADO
Agregación por Composición
Ing. Luis Zuloaga Rotta 51
Equivalencia entre notación de contención por valor de atributo y composición
CARBURADORCARBURADOR
MOTORMOTOR
CILINDROCILINDRO
<=>
...
AUTOAUTOAUTOAUTO
motormotor
Ing. Luis Zuloaga Rotta 52
Atributos de una agregaciónEn una gregación la clase todo tendrá atributos adicionales por cada una de las clases parte. Si estos atributos están contenidos por valor o por referencia áquí es donde se definen.Un atributo de contensión por valor sugiere que el todo y la parte son creadas y destruidas al mismo tiempo.Una agregación por referencia sugiere que el todo y la parte son creadas y destruídas en diferentes tiempos.
Ing. Luis Zuloaga Rotta 53
NavegavilidadLas asociaciones describen la red de relaciones estructurales que existen entre las clases y que dan lugar a los enlaces entrelos objetos.Los enlaces pueden ser vistos como canales de navegación entre los objetos.En principio, las asociaciones son navegables en ambas direcciones. En ciertos casos sólo es útil una dirección de navegación.La navegabilidad se representa por una flecha orientada hacia la clase sobre la que es pósible la navegación.
USUARIOUSUARIO 1
Id usuarioId usuario
Dirección de navegavilidad
PASSWORDPASSWORDderechoderecho
*
Ing. Luis Zuloaga Rotta 54
Expresiones de NavegaciónLa sintaxis de las expresiones de navegación viene dada por las cuatro reglas siguientes :
destino::=conjunto ‘.’ selectordestino::=conjunto ‘.’ ‘~’ selectordestino::=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 asociación 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 número depende de la multiplicidad del conjunto y de la asociación.
Ing. Luis Zuloaga Rotta 55
PERSONAPERSONAnombrenombre
padre
hijo 1..*
2PERSONAPERSONAnombrenombre
padre
hijo 1
2id persona
UnaPersona.Hijos designa todos los hijos de una persona dada.UnaPersona. ~Hijos designa los padres de una persona dada.UnaPersona.Hijos[edad>=18años] 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 56
La GeneralizaciónUML emplea este término para designar la relación de clasificación entre un elemento más general y un elemento más específico.La generalización 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 generalización se denomina múltiple.Una clase puede ser especializada según varios criterios diferentes (discriminates).
Ing. Luis Zuloaga Rotta 57
Restricciones de la GeneralizaciónEn principio, la generalización simboliza una descomposición exclusiva, es decir, que un objeto es como máximo instancia de una de las subclases.La restricción {Disyuntivo} o {Exclusivo} indica que cualquier clase descendiente de una clase A sólo puede ser descendiente de una subclase de A.La restricción {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 58
Restricciones de la Generalización
PIE AZULPIE AZUL
ADARICUSADARICUS
LICOPODIOLICOPODIO
BOLETUSBOLETUS
CHAMPIÑONCHAMPIÑON
{exclusivo}
Herencia Múltiple
A VELAA VELA A MOTORA MOTOR
MARINOMARINO
TERRESTRETERRESTREVEHICULOVEHICULO
VELOMOTORVELOMOTOR
motorización
medio
{inclusivo}
Ing. Luis Zuloaga Rotta 59
Las Clases AbstractasNo son instanciables directamente; no dan lugar a objetos, sino que sirven de especificación más general –de tipo- para lograr manipular los objetos instancias de una (o varias) de sus subclases.
Clase Abstracta
INFORMEINFORME MEMORIAMEMORIA
MEMOMEMO
OFICIOOFICIODOCUMENTODOCUMENTO
alcance
destino
Ing. Luis Zuloaga Rotta 60
EjemplarEjemplar
Codigo : integerCodigo : integerCantidad : integerCantidad : integerEstado : integerEstado : integer
exponer ( )exponer ( )reservar ( )reservar ( )borrarReserva ( )borrarReserva ( )prestar ( )prestar ( )devolver ( )devolver ( )retirar ( )retirar ( )reponer ( )reponer ( )
prestarEjemplar( )prestarEjemplar( )devolverEjemplar( )devolverEjemplar( )
GestionPrestamoGestionPrestamo
GestionReservaGestionReserva
consultarEjemplar( )consultarEjemplar( )reservarEjemplar( )reservarEjemplar( )borrarReserva( )borrarReserva( )
GestionEjemplarGestionEjemplar
crearEjemplar( )crearEjemplar( )eliminarEjemplar( )eliminarEjemplar( )
ejemplarAEstante( )ejemplarAEstante( )
ejemplarATaller( )ejemplarATaller( )
INTERFACES
GESTIÓN
BASE DATOS
Comportamiento de los Objetos
Ing. Luis Zuloaga Rotta 62
Qué es un Diagrama de Transición de Estado ?Es usado para mostrar la historia de vida de los objetos de una clase dada, los eventos que causan una transición 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 enumeración de todos los posibles estados de un objeto.
Ing. Luis Zuloaga Rotta 63
Los Diagramas de Estados-TransicionesVisualizan autómatas de estados finitos desde el punto de vista de los estados y las transiciones.
Activo
Desocupado
Más de 60 años
Jubilado
Más de 60 años
Pérdidaempleo
Contrato
Ing. Luis Zuloaga Rotta 64
Los AutómatasEl comportamiento de los objetos de una clase puede describirse de manera formal en términos de estados y eventos, por medio de un autómata vinculado a la clase considerada.Los objetos que no presentan un comportamiento reactivo muy marcado pueden considerarse como objetos que están siempre en el mismo estado: en este caso, sus clases no poseen ningún autómata.Un autómata es una abstracción de los comportamientos posibles, a imagen de los diagramas de clases que son abstracciones de la estructura estática.
Ing. Luis Zuloaga Rotta 65
Autómatas y escenarios
AUTÓMATAAUTÓMATA
CLASECLASE
1
0..1
Los autómatas y los escenarios son complementarios. Los escenarios se representan por una colaboración entre objetos. La forma de la interacción entre los objetos que colaboran dentro de un escenario se determina por los estados respectivos de los diferentes objetos.
Abstraccion de los comportamientosposibles.
Ing. Luis Zuloaga Rotta 66
Los EstadosCada objeto está en un momento determinado en un estado particular. Los estados se caracterizan por la noción de duración 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.
ABIERTO CERRADO
Matemáticas I Matemáticas I :CURSO SECCION:CURSO SECCION
numAlumnos=7
El máximo nro de alumnos porsección es 10
numAlumnos <10 numAlumnos =10
CURSO SECCIONCURSO SECCION
seccionnumAlumnos
Adicionar( )
Ing. Luis Zuloaga Rotta 67
Estado inicial y finalLos autómatas 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 condición de fin distinta.
A
estado inicial
B
estado final
Ing. Luis Zuloaga Rotta 68
Las TransicionesCuando las condiciones dinámicas evolucionan, los objetos cambian de estado siguiendo las reglas descritas en el autómata asociado a sus clases.Los estados están vinculados por conexiones unidireccionales llamadas transiciones.El paso de un estado a otro se efectúa cuando se desencadena una transición por un evento que aparece en el ámbito del problema.Las transiciones no vinculan necesariamente estados distintos.
ABIERTO
CERRADO
numAlumnos <10
numAlumnos =10
Transición
Ing. Luis Zuloaga Rotta 69
Los EventosA BEv1Un 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 descripción del comportamiento dinámico.
ABIERTO
CERRADO
CANCELADO
Cancelar Curso
Adicionar alumno
CerrarCurso
Ing. Luis Zuloaga Rotta 70
Super y sub estados A B
C
Ev1
Ev2 Ev2
Super estados son los estados mas generales, los estados mas especifícos se llaman sub estados.Un estado puede descomponerse en varios sub estados disyuntivos (estados anidados).Los sub estados heredan características de su super estado, en particular las variables de estado y las transiciones externas.
A BEv1
CEv2
SUPER ESTADO
Ing. Luis Zuloaga Rotta 71
Estados anidados con HistoriaEl uso de la característica de historia H señala que al retornar un objeto a un super estado, este ingresará al último estado en el que estuvo dentro del super estado.Si la característica de historia no es utilizada siempre el sub estado inicial del super estado será asignado al objeto retornante.
Ev2MINIMIZADA
VENTANA ABIERTA
MAXIMIZADA
CUSTOMIZADA
H
Ing. Luis Zuloaga Rotta 72
Agregación de EstadosLa agregación de estados es la composición de un estado a partir de otros varios estados independientes.La composición es de tipo conjuntiva lo que implica que el objeto debe estar simultáneamente en todos los estados que componen la agregación de estados
A
C
Ev1
Ev2
BEv3
X
Y
Ev1 Ev4[en C]
ESTADO AGREGADOESTADO AGREGADO
Ing. Luis Zuloaga Rotta 73
Especificación de un Evento
Nombre del eventoLista de parámetrosObjeto emisorObjeto destinatarioLa descripción del significado del evento
Ing. Luis Zuloaga Rotta 74
Los GuardasUn guarda es una condición booleana que valida o no el desencadenamiento de una transición en la ocurrencia de un evento.Los guardas permiten permiten mantener el aspecto determinista de un autómata de estados finitos, incluso cuando varias transiciones pueden ser desencadenadas por el mismo evento.
A Ev1[condicion]
Guarda
B
CerrarRegistro[numAlumnos =10]
ABIERTO
CERRADO
Un objeto MAT I de la clase CURSO pasará del estado ABIERTO a CERRADO si :
Ing. Luis Zuloaga Rotta 75
Las Operaciones, las acciones y las actividadesEl enlace entre las operaciones definidas en la especificación de clase y los eventos que aparecen en los diagramas de estados-transiciones se efectúa por medio de acciones y actividades.Cada transición puede ir acompañada del nombre de una acción a ejecutar cuando la transición sea desencadenada por un evento.La acción corresponde a una de las operaciones declaradas en la clase del objeto destinatario del evento.Los estados pueden contener también 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 76
Acciones de la TransiciónEstas acciones son operaciones asociadas a la transición de un estado a otro:
Toma una cantidad insignificante de tiempo completarla.Considerada ininterrumplibleEl evento que produce la transición puede generar el envío de otro evento.
ABIERTO
CERRADO
CANCELADO
Cancelarcurso
Adicionaralumno
CerrarCurso[numAlumnos =10]
CREADOAbrir Registro / Inicializar numAlumnos to 0
^ReporteCurso.CreateReporte
Acción
Ing. Luis Zuloaga Rotta 77
Acciones de EstadoCREADO
ASIGNADO
ABIERTO
CERRADO
do: Inicializar objeto curso
do: Asignar profesor curso
entry: Registrar un alumno
do: reportar curso lleno
Abrirregistro
Adicionaralumno
Cerrarregistro
Asignarprofesor
La acción de entrada (entry:)se ejecuta de manera instantánea y atómica al entrar en el estado.La acción de salida (exit:) se ejecuta al salir del estado.La acción sobre el evento interno (on:) se ejecuta al ocurrir un evento que no conduce a otro estado. Un evento interno no entraña la ejecución de las acciones de entrada/salida.
Ing. Luis Zuloaga Rotta 78
Puntos de ejecución de las OperacionesExisten seis puntos, cuyo orden es :
La acción asociada a la transición de entrada (Op1)La acción de entrada de estado (Op2)La actividad en el estado (Op3)La acción de salida del estado (Op4)La acción asociada a los eventos internos (Op5)La acción asociada a la transición de salida del estado (Op6)
entry: Op2Do: Op3
exit : Op4On UnEvento: Op5
Un estado
/ Op1
/ Op6
Ing. Luis Zuloaga Rotta 79
CREADOdo: Inicializar objeto curso
ASIGNADOdo: Asignar profesor curso
ABIERTOentry: Registrar un alumno
CERRADOdo: reportar curso lleno
Asignarprofesor
CANCELADOdo: Enviar notas de cancelacion
Cancelar curso[nroAlumnos <3]
Cancelarcurso
Abrir registro/nroAlumnos=0
Adicionar Alumno/nroAlumnos=nroAlumnos+1
Cancelarcurso
CerrarRegistro[nroAlumnos=10]Cancelar curso
Ing. Luis Zuloaga Rotta 80
Diagrama de Estados
EjemplarEjemplar
Codigo : integerCodigo : integerCantidad : integerCantidad : integerEstado : integerEstado : integer
exponer ( )exponer ( )reservar ( )reservar ( )borrarReserva ( )borrarReserva ( )prestar ( )prestar ( )devolver ( )devolver ( )retirar ( )retirar ( )reponer ( )reponer ( )
En Proceso
En Circulación
Disponible
Reservado
Prestadoprestar( )
reservar( )
borrarReserva( )
devolver( )
prestar( )
retirar( )exponer( )
constructor( ) destructor( )