80
ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS CON UML ( Parte III ) Ing. Luis Zuloaga Rotta

ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS CON UML … · Objeto: Clase Línea vida objeto ... El diagrama siguiente muestra el caso de ... Simbolo UML para una clase limite. ACTOR A

  • Upload
    hatram

  • View
    240

  • Download
    1

Embed Size (px)

Citation preview

Page 1: ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS CON UML … · Objeto: Clase Línea vida objeto ... El diagrama siguiente muestra el caso de ... Simbolo UML para una clase limite. ACTOR A

ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS CON UML

( Parte III )

Ing. Luis Zuloaga Rotta

Page 2: ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS CON UML … · Objeto: Clase Línea vida objeto ... El diagrama siguiente muestra el caso de ... Simbolo UML para una clase limite. ACTOR A

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

Page 3: ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS CON UML … · Objeto: Clase Línea vida objeto ... El diagrama siguiente muestra el caso de ... Simbolo UML para una clase limite. ACTOR A

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.

Page 4: ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS CON UML … · Objeto: Clase Línea vida objeto ... El diagrama siguiente muestra el caso de ... Simbolo UML para una clase limite. ACTOR A

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?

Page 5: ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS CON UML … · Objeto: Clase Línea vida objeto ... El diagrama siguiente muestra el caso de ... Simbolo UML para una clase limite. ACTOR A

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

Page 6: ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS CON UML … · Objeto: Clase Línea vida objeto ... El diagrama siguiente muestra el caso de ... Simbolo UML para una clase limite. ACTOR A

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.

Page 7: ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS CON UML … · Objeto: Clase Línea vida objeto ... El diagrama siguiente muestra el caso de ... Simbolo UML para una clase limite. ACTOR A

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

Page 8: ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS CON UML … · Objeto: Clase Línea vida objeto ... El diagrama siguiente muestra el caso de ... Simbolo UML para una clase limite. ACTOR A

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.

Page 9: ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS CON UML … · Objeto: Clase Línea vida objeto ... El diagrama siguiente muestra el caso de ... Simbolo UML para una clase limite. ACTOR A

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

Page 10: ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS CON UML … · Objeto: Clase Línea vida objeto ... El diagrama siguiente muestra el caso de ... Simbolo UML para una clase limite. ACTOR A

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

Page 11: ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS CON UML … · Objeto: Clase Línea vida objeto ... El diagrama siguiente muestra el caso de ... Simbolo UML para una clase limite. ACTOR A

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.

Page 12: ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS CON UML … · Objeto: Clase Línea vida objeto ... El diagrama siguiente muestra el caso de ... Simbolo UML para una clase limite. ACTOR A

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

Page 13: ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS CON UML … · Objeto: Clase Línea vida objeto ... El diagrama siguiente muestra el caso de ... Simbolo UML para una clase limite. ACTOR A

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

Page 14: ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS CON UML … · Objeto: Clase Línea vida objeto ... El diagrama siguiente muestra el caso de ... Simbolo UML para una clase limite. ACTOR A

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]

Page 15: ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS CON UML … · Objeto: Clase Línea vida objeto ... El diagrama siguiente muestra el caso de ... Simbolo UML para una clase limite. ACTOR A

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

Page 16: ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS CON UML … · Objeto: Clase Línea vida objeto ... El diagrama siguiente muestra el caso de ... Simbolo UML para una clase limite. ACTOR A

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

Page 17: ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS CON UML … · Objeto: Clase Línea vida objeto ... El diagrama siguiente muestra el caso de ... Simbolo UML para una clase limite. ACTOR A

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.

Page 18: ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS CON UML … · Objeto: Clase Línea vida objeto ... El diagrama siguiente muestra el caso de ... Simbolo UML para una clase limite. ACTOR A

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}

Page 19: ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS CON UML … · Objeto: Clase Línea vida objeto ... El diagrama siguiente muestra el caso de ... Simbolo UML para una clase limite. ACTOR A

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

Page 20: ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS CON UML … · Objeto: Clase Línea vida objeto ... El diagrama siguiente muestra el caso de ... Simbolo UML para una clase limite. ACTOR A

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

Page 21: ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS CON UML … · Objeto: Clase Línea vida objeto ... El diagrama siguiente muestra el caso de ... Simbolo UML para una clase limite. ACTOR A

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

Page 22: ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS CON UML … · Objeto: Clase Línea vida objeto ... El diagrama siguiente muestra el caso de ... Simbolo UML para una clase limite. ACTOR A

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

Page 23: ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS CON UML … · Objeto: Clase Línea vida objeto ... El diagrama siguiente muestra el caso de ... Simbolo UML para una clase limite. ACTOR A

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

Page 24: ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS CON UML … · Objeto: Clase Línea vida objeto ... El diagrama siguiente muestra el caso de ... Simbolo UML para una clase limite. ACTOR A

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

Page 25: ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS CON UML … · Objeto: Clase Línea vida objeto ... El diagrama siguiente muestra el caso de ... Simbolo UML para una clase limite. ACTOR A

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

Page 26: ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS CON UML … · Objeto: Clase Línea vida objeto ... El diagrama siguiente muestra el caso de ... Simbolo UML para una clase limite. ACTOR A

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

Page 27: ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS CON UML … · Objeto: Clase Línea vida objeto ... El diagrama siguiente muestra el caso de ... Simbolo UML para una clase limite. ACTOR A

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.

Page 28: ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS CON UML … · Objeto: Clase Línea vida objeto ... El diagrama siguiente muestra el caso de ... Simbolo UML para una clase limite. ACTOR A

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

Page 29: ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS CON UML … · Objeto: Clase Línea vida objeto ... El diagrama siguiente muestra el caso de ... Simbolo UML para una clase limite. ACTOR A

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

Page 30: ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS CON UML … · Objeto: Clase Línea vida objeto ... El diagrama siguiente muestra el caso de ... Simbolo UML para una clase limite. ACTOR A

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

Page 31: ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS CON UML … · Objeto: Clase Línea vida objeto ... El diagrama siguiente muestra el caso de ... Simbolo UML para una clase limite. ACTOR A

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

Page 32: ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS CON UML … · Objeto: Clase Línea vida objeto ... El diagrama siguiente muestra el caso de ... Simbolo UML para una clase limite. ACTOR A

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

Page 33: ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS CON UML … · Objeto: Clase Línea vida objeto ... El diagrama siguiente muestra el caso de ... Simbolo UML para una clase limite. ACTOR A

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

Page 34: ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS CON UML … · Objeto: Clase Línea vida objeto ... El diagrama siguiente muestra el caso de ... Simbolo UML para una clase limite. ACTOR A

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

Page 35: ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS CON UML … · Objeto: Clase Línea vida objeto ... El diagrama siguiente muestra el caso de ... Simbolo UML para una clase limite. ACTOR A

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 >

Page 36: ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS CON UML … · Objeto: Clase Línea vida objeto ... El diagrama siguiente muestra el caso de ... Simbolo UML para una clase limite. ACTOR A

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

Page 37: ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS CON UML … · Objeto: Clase Línea vida objeto ... El diagrama siguiente muestra el caso de ... Simbolo UML para una clase limite. ACTOR A

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.

Page 38: ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS CON UML … · Objeto: Clase Línea vida objeto ... El diagrama siguiente muestra el caso de ... Simbolo UML para una clase limite. ACTOR A

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.

Page 39: ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS CON UML … · Objeto: Clase Línea vida objeto ... El diagrama siguiente muestra el caso de ... Simbolo UML para una clase limite. ACTOR A

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.

Page 40: ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS CON UML … · Objeto: Clase Línea vida objeto ... El diagrama siguiente muestra el caso de ... Simbolo UML para una clase limite. ACTOR A

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.

Page 41: ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS CON UML … · Objeto: Clase Línea vida objeto ... El diagrama siguiente muestra el caso de ... Simbolo UML para una clase limite. ACTOR A

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

Page 42: ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS CON UML … · Objeto: Clase Línea vida objeto ... El diagrama siguiente muestra el caso de ... Simbolo UML para una clase limite. ACTOR A

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}

Page 43: ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS CON UML … · Objeto: Clase Línea vida objeto ... El diagrama siguiente muestra el caso de ... Simbolo UML para una clase limite. ACTOR A

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

Page 44: ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS CON UML … · Objeto: Clase Línea vida objeto ... El diagrama siguiente muestra el caso de ... Simbolo UML para una clase limite. ACTOR A

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}

Page 45: ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS CON UML … · Objeto: Clase Línea vida objeto ... El diagrama siguiente muestra el caso de ... Simbolo UML para una clase limite. ACTOR A

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

Page 46: ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS CON UML … · Objeto: Clase Línea vida objeto ... El diagrama siguiente muestra el caso de ... Simbolo UML para una clase limite. ACTOR A

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 >

Page 47: ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS CON UML … · Objeto: Clase Línea vida objeto ... El diagrama siguiente muestra el caso de ... Simbolo UML para una clase limite. ACTOR A

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 >

Page 48: ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS CON UML … · Objeto: Clase Línea vida objeto ... El diagrama siguiente muestra el caso de ... Simbolo UML para una clase limite. ACTOR A

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

Page 49: ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS CON UML … · Objeto: Clase Línea vida objeto ... El diagrama siguiente muestra el caso de ... Simbolo UML para una clase limite. ACTOR A

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

Page 50: ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS CON UML … · Objeto: Clase Línea vida objeto ... El diagrama siguiente muestra el caso de ... Simbolo UML para una clase limite. ACTOR A

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

Page 51: ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS CON UML … · Objeto: Clase Línea vida objeto ... El diagrama siguiente muestra el caso de ... Simbolo UML para una clase limite. ACTOR A

Ing. Luis Zuloaga Rotta 51

Equivalencia entre notación de contención por valor de atributo y composición

CARBURADORCARBURADOR

MOTORMOTOR

CILINDROCILINDRO

<=>

...

AUTOAUTOAUTOAUTO

motormotor

Page 52: ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS CON UML … · Objeto: Clase Línea vida objeto ... El diagrama siguiente muestra el caso de ... Simbolo UML para una clase limite. ACTOR A

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.

Page 53: ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS CON UML … · Objeto: Clase Línea vida objeto ... El diagrama siguiente muestra el caso de ... Simbolo UML para una clase limite. ACTOR A

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

*

Page 54: ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS CON UML … · Objeto: Clase Línea vida objeto ... El diagrama siguiente muestra el caso de ... Simbolo UML para una clase limite. ACTOR A

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.

Page 55: ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS CON UML … · Objeto: Clase Línea vida objeto ... El diagrama siguiente muestra el caso de ... Simbolo UML para una clase limite. ACTOR A

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.

Page 56: ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS CON UML … · Objeto: Clase Línea vida objeto ... El diagrama siguiente muestra el caso de ... Simbolo UML para una clase limite. ACTOR A

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

Page 57: ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS CON UML … · Objeto: Clase Línea vida objeto ... El diagrama siguiente muestra el caso de ... Simbolo UML para una clase limite. ACTOR A

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.

Page 58: ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS CON UML … · Objeto: Clase Línea vida objeto ... El diagrama siguiente muestra el caso de ... Simbolo UML para una clase limite. ACTOR A

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}

Page 59: ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS CON UML … · Objeto: Clase Línea vida objeto ... El diagrama siguiente muestra el caso de ... Simbolo UML para una clase limite. ACTOR A

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

Page 60: ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS CON UML … · Objeto: Clase Línea vida objeto ... El diagrama siguiente muestra el caso de ... Simbolo UML para una clase limite. ACTOR A

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

Page 61: ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS CON UML … · Objeto: Clase Línea vida objeto ... El diagrama siguiente muestra el caso de ... Simbolo UML para una clase limite. ACTOR A

Comportamiento de los Objetos

Page 62: ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS CON UML … · Objeto: Clase Línea vida objeto ... El diagrama siguiente muestra el caso de ... Simbolo UML para una clase limite. ACTOR A

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.

Page 63: ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS CON UML … · Objeto: Clase Línea vida objeto ... El diagrama siguiente muestra el caso de ... Simbolo UML para una clase limite. ACTOR A

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

Page 64: ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS CON UML … · Objeto: Clase Línea vida objeto ... El diagrama siguiente muestra el caso de ... Simbolo UML para una clase limite. ACTOR A

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.

Page 65: ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS CON UML … · Objeto: Clase Línea vida objeto ... El diagrama siguiente muestra el caso de ... Simbolo UML para una clase limite. ACTOR A

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.

Page 66: ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS CON UML … · Objeto: Clase Línea vida objeto ... El diagrama siguiente muestra el caso de ... Simbolo UML para una clase limite. ACTOR A

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

Page 67: ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS CON UML … · Objeto: Clase Línea vida objeto ... El diagrama siguiente muestra el caso de ... Simbolo UML para una clase limite. ACTOR A

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

Page 68: ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS CON UML … · Objeto: Clase Línea vida objeto ... El diagrama siguiente muestra el caso de ... Simbolo UML para una clase limite. ACTOR A

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

Page 69: ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS CON UML … · Objeto: Clase Línea vida objeto ... El diagrama siguiente muestra el caso de ... Simbolo UML para una clase limite. ACTOR A

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

Page 70: ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS CON UML … · Objeto: Clase Línea vida objeto ... El diagrama siguiente muestra el caso de ... Simbolo UML para una clase limite. ACTOR A

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

Page 71: ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS CON UML … · Objeto: Clase Línea vida objeto ... El diagrama siguiente muestra el caso de ... Simbolo UML para una clase limite. ACTOR A

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

Page 72: ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS CON UML … · Objeto: Clase Línea vida objeto ... El diagrama siguiente muestra el caso de ... Simbolo UML para una clase limite. ACTOR A

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

Page 73: ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS CON UML … · Objeto: Clase Línea vida objeto ... El diagrama siguiente muestra el caso de ... Simbolo UML para una clase limite. ACTOR A

Ing. Luis Zuloaga Rotta 73

Especificación de un Evento

Nombre del eventoLista de parámetrosObjeto emisorObjeto destinatarioLa descripción del significado del evento

Page 74: ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS CON UML … · Objeto: Clase Línea vida objeto ... El diagrama siguiente muestra el caso de ... Simbolo UML para una clase limite. ACTOR A

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 :

Page 75: ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS CON UML … · Objeto: Clase Línea vida objeto ... El diagrama siguiente muestra el caso de ... Simbolo UML para una clase limite. ACTOR A

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.

Page 76: ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS CON UML … · Objeto: Clase Línea vida objeto ... El diagrama siguiente muestra el caso de ... Simbolo UML para una clase limite. ACTOR A

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

Page 77: ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS CON UML … · Objeto: Clase Línea vida objeto ... El diagrama siguiente muestra el caso de ... Simbolo UML para una clase limite. ACTOR A

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.

Page 78: ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS CON UML … · Objeto: Clase Línea vida objeto ... El diagrama siguiente muestra el caso de ... Simbolo UML para una clase limite. ACTOR A

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

Page 79: ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS CON UML … · Objeto: Clase Línea vida objeto ... El diagrama siguiente muestra el caso de ... Simbolo UML para una clase limite. ACTOR A

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

Page 80: ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS CON UML … · Objeto: Clase Línea vida objeto ... El diagrama siguiente muestra el caso de ... Simbolo UML para una clase limite. ACTOR A

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