Title: Mtodos orientados a objetos
1Métodos orientados a objetos
- Modelos de especificación
2Distintas visiones del software
- MODELOS ESTATICOS
- Reflejan la estructura estática de las clases de
objetos y sus relaciones - MODELOS DE COMPORTAMIENTO
- Reflejan el comportamiento del sistema y de sus
componentes (clases y objetos) - Externo interacción entre clases
- Interno dinámica interna de una clase
- Existen relaciones importantes entre los
elementos de cada uno de los modelos.
3Distintas visiones del software
- Modelos estáticos
- DIAGRAMA DE CLASES
- nodos clases
- arcos relaciones entre clases
- Modelos de comportamiento externo
- CONTRATOS especificación de operaciones
- DIAGRAMA DE COLABORACION
- nodos clases y objetos
- arcos mensajes entre clases y entre objetos
- Modelos de comportamiento interno
- DIAGRAMA DE TRANSICION DE ESTADOS
- nodos estados de los objetos de una clase
- arcostransiciones entre estados
4Diagrama de clases definición
- Modelo de clases y de relaciones entre clases
- Similar al modelo E-R, pero más rico en notación
- Contiene las clases del DOMINIO DEL PROBLEMA más
importantes para la aplicación
5Diagrama de clases elementos
- 1 - Objetos y clases
- 2 - Enlaces y asociaciones relaciones entre
clases - 3 - Generalización y herencia
6Clases y objetos
- Clases de objetos
- Objetos (instancias) ejemplos, documentar casos
de prueba,... - Atributos básicos
- Valores de datos básicos (no objetos del DOMINIO
DEL PROBLEMA) - Operaciones la misma operación puede aparecer en
distintas clases - Atributos derivados deducibles a partir de un
atributo básico
7Ejemplo en Rational Rose
8(No Transcript)
9(No Transcript)
10Enlaces y asociaciones definición
- ENLACE conexión fÃsica o conceptual entre
instancias de objetos - ASOCIACION grupo de enlaces con estructura y
semántica común - Un enlace es una 'instancia' (?) de una
asociación - Aparecen como VERBOS en la descripción del
problema - Pueden ser n-arias. Generalmente binarias.
- Se indican las restricciones de cardinalidad
- Violan la encapsulación?
- Una contradicción de la orientación a objetos?
11Ejemplos de asociación en Rational Rose
12(No Transcript)
13Atributos de enlace
- Propiedad de un enlace en una asociación
- Cada atributo tiene un valor para cada enlace
- En asociaciones 1-N el atributo del enlace puede
situarse en la clase N?
14Asociación como clase
- Los enlaces participan en asociaciones con otros
objetos o están sujetos a operaciones
15Asociaciones nombres de roles
- Papel desempeñado por una clase en una asociación
- Necesarios para asociaciones entre la misma clase
- Utiles para diferenciar dos asociaciones entre
las mismas clases
16Asociación enlaces ordenados
- Los enlaces (no los objetos de la clase) están
ordenados
17Enlaces cualificados
- Cualificación atributo especial
- Disminuye la multiplicidad de una asociación
- Aumenta la precisión semántica de la asociación
1..
0..n
Archivo
18Agregación concepto
- Expresa la relación PARTE-DE (componentes de)
19Agregación vs. Asociación
- Es una forma de asociación con un alto
acoplamiento y ciertas propiedades - TRANSITIVA y ANTISIMETRICA
- Algunas propiedades del AGREGADO se propagan a
los componentes operaciones - Se debe usar cuando hay propiedades de los
componentes que se pueden ligar al agregado - Puede ser monocomponente, múlticomponente o
recursiva
20(No Transcript)
21(No Transcript)
22Generalización
- Relación de subclasificación entre clases
- Como todo proceso de clasificación obedece a
criterios de clasificación, que deben
especificarse - El mecanismo de implementación es la herencia
23Ejemplos de generalización en Rational Rose 1 y
2
24Herencia vs Agregación
- Distinta de la asociación (relacionado con) y la
agregación (parte de)
25Herencia múltiple
26HM-gtHS agregación/delegación
27HM-gtHS agregaciónherencia
28HM-gtHS subclasificación
29Clases abstractas
30(No Transcript)
31MODELADO DEL COMPORTAMIENTO EXTERNO DE LAS CLASES
Clase
Clase
CONTRATOS
Clase
Clase
DIAGRAMAS DE COLABORACIÓN
32- CONTRATOS
- Definen el comportamiento de un sistema
describiendo cómo cambia su ESTADO cuando se
invoca una operación suya. - Es un documento que describe lo que una
operación se propone lograr. - Suele redactarse con un estilo declarativo,
centrándose en lo que sucederá y no en cómo se
conseguirá.
33CASO DE USO COMPRAR PRODUCTOS ...................
.. CURSO NORMAL DE LOS EVENTOS 1. Este caso de
uso comienza.....
CASOS DE USO
DIAGRAMAS DE SECUENCIA
OPERACIÓN introducirProducto ............... Post
condiciones 1. Si se trata de una nueva venta
...........
OPERACIONES DEL SISTEMA
CONTRATOS
34UML DEFINE LOS CONTRATOS
OPERACIÓN
35UML DEFINE LOS CONTRATOS
PRECONDICIONES
OPERACIÓN
POSTCONDICIONES
36FORMATO DE LOS CONTRATOS (I) Nombre Nombre de
la operación y parámetros. Responsabilidades Des
cripción informal de las responsabilidades
que debe cumplir la operación. Tipo Nombre
del tipo (concepto, clase de software,
interfaz) Referencias cruzadasCasos de uso,
etc. Notas Notas de diseño, algoritmos e
información afÃn.
37FORMATO DE LOS CONTRATOS (II) Excepciones Caso
s excepcionales. Salida No salidas de la
Interfaz del Usuario, sino mensajes o
registros que se envÃan fuera del
sistema. Precondiciones Suposiciones acerca
del estado del sistema antes de ejecutar la
operación. Postcondiciones El estado del
sistema después de la operación.
38- PRECONDICIONES
- Definen las suposiciones sobre el estado del
sistema al iniciarse la operación. - Precondiciones que pueden declararse
- Cosas que son importantes probar en el software
en algún momento de la ejecución de la operación. - Cosas que no serán sometidas a prueba pero de
las cuales depende el éxito de la operación.
39- POSTCONDICIONES
- Estipulan cómo cambia el sistema tras una
operación. - Son declaraciones sobre el estado del sistema
una vez concluida la operación. - Deben expresarse en tiempo pasado.
- Postcondiciones que pueden declararse
- Creación y eliminación de las instancias.
- Modificación de los atributos.
- Asociaciones formadas y canceladas.
40EJEMPLO
Contrato para introducirProducto Nombre introduc
irProducto(cupnúmero, cantidadentero) Respon
sabilidades Introducir (registrar) la venta de
un producto y agregarlo a la venta.
Desplegar la descripción del producto y su
precio. Tipo Sistema. Referencias
cruzadasCaso de uso Comprar productos. Notas
Excepciones Si el CUP no es válido, indique
que se cometió un error.
41EJEMPLO (Cont.)
- Contrato para introducirProducto
- Salida
- Precondiciones El sistema conoce el CUP.
- Postcondiciones
- Si se trata de una nueva venta, una Venta fue
creada (creación de instancia). - Si se trata de una nueva venta, la nueva Venta
fue asociada a la TPDV (asociación formada o
formación de asociaciones). - Se creó una instancia LÃneadeProductoVendido
(creación de instancia).
42EJEMPLO (Cont.)
- Contrato para introducirProducto
- Postcondiciones (cont.)
- Se asoció LÃneadeProductoVendido a la Venta
(asociación formada). - Se estableció LÃneadeProductoVendido.cantidad
con el valor de cantidad (modificación de
atributo). - La instancia LÃneadeProductoVendido fue asociada
a una EspecificacióndeProducto, teniendo en
cuenta la correspondencia del código universal de
producto (asociación formada).
43DIAGRAMAS DE COLABORACIÓN
- Estos diagramas resaltan la ORGANIZACIÓN
ESTRUCTURAL de los objetos que envÃan y reciben
mensajes. - Muestran un conjunto de objetos, enlaces entre
esos objetos y mensajes enviados y recibidos por
esos objetos. - Los diagramas de colaboración describen las
interacciones entre los objetos en un formato de
grafo o red.
44DIAGRAMAS DE SECUENCIA
OPERACIONES DEL SISTEMA
OPERACIÓN introducirProducto ............... Post
condiciones 1. Si se trata de una nueva venta
...........
CONTRATOS
DIAGRAMAS DE COLABORACIÓN
45NOTACIÓN DE LOS DIAGRAMAS DE COLABORACIÓN
Representación gráfica de las clases e instancias
CLASE
INSTANCIA
NOMBREINSTANCIA
46NOTACIÓN DE LOS DIAGRAMAS DE COLABORACIÓN
- Representación gráfica de los enlaces
- ENLACE
- Es una trayectoria de conexión entre dos
instancias. - Especifica un camino a lo largo del cual un
objeto puede enviar un mensaje a otro objeto.
47NOTACIÓN DE LOS DIAGRAMAS DE COLABORACIÓN
- Representación gráfica de los mensajes
- Un MENSAJE es la especificación de una
comunicación entre objetos que transmite
información. - Un mensaje desencadena una acción en el objeto
destinatario.
48NOTACIÓN DE LOS DIAGRAMAS DE COLABORACIÓN
- Sintaxis para los mensajes
- sincronización condiciónGuarda
secuencia - mensaje resultado ' ' mensaje ' '
tipoDeResultado - donde
- mensaje
- mensaje nombre ' ( ' listaDeArgumentos
' ) ' - nombre Nombre del mensaje
49NOTACIÓN DE LOS DIAGRAMAS DE COLABORACIÓN
- Sintaxis para los mensajes
- listaDeArgumentos Lista de argumentos del
mensaje, separada por comas y encerrada entre
paréntesis. - listaDeArgumentos argumento ' , ' argumento
... - argumento nombreDeParámetro ' '
tipoDeParámetro
50NOTACIÓN DE LOS DIAGRAMAS DE COLABORACIÓN
- Sintaxis para los mensajes
- resultado Lista de valores devueltos por el
mensaje. Estos valores se pueden utilizar como
parámetros de los otros mensajes de la
interacción. - resultado nombreDeValorDevuelto
51NOTACIÓN DE LOS DIAGRAMAS DE COLABORACIÓN
- Sintaxis para los mensajes
- secuencia Indica el nivel de anidamiento del
envÃo del mensaje dentro de la interacción. - secuencia rango recurrencia ' '
- rango Los mensajes se enumeran para indicar el
orden de envÃos. - rango entero nombreDeFlujoDeEjecución
- ' . ' entero nombreDeFlujoDeEjecución
... - nombreDeFlujoDeEjecución enteroletraMinúscula
52NOTACIÓN DE LOS DIAGRAMAS DE COLABORACIÓN
Sintaxis para los mensajes Ejemplo de rango
53NOTACIÓN DE LOS DIAGRAMAS DE COLABORACIÓN
- Sintaxis para los mensajes
- recurrencia Representa la iteración y las
bifurcaciones condicionales. - recurrencia claúsulaIteración
claúsulaCondicional - claúsulaIteración
- claúsulaIteración ' ' ' '
condiciónDeIteración ' ' - ' ' ' ' condiciónDeIteración '
' - Significa que el mensaje va a ser enviado
repetidamente al receptor. - condiciónDeIteración Indica los valores de
recurrencia. -
54NOTACIÓN DE LOS DIAGRAMAS DE COLABORACIÓN
Sintaxis para los mensajes Ejemplo de
claúsulaIteración
55NOTACIÓN DE LOS DIAGRAMAS DE COLABORACIÓN
- Sintaxis para los mensajes
- claúsulaCondicional
- claúsulaCondicional ' ' condiciónDeRamificaci
ón ' ' - condiciónDeRamificación Si es verdadera se envÃa
el mensaje.
56NOTACIÓN DE LOS DIAGRAMAS DE COLABORACIÓN
- Sintaxis para los mensajes
- condiciónGuarda Condición que debe ser cierta
antes de enviarse el mensaje. - condiciónGuarda ' ' precondición ' '
57NOTACIÓN DE LOS DIAGRAMAS DE COLABORACIÓN
- Sintaxis para los mensajes
- sincronización Lista de mensajes que deben
haber sido enviados para validar el envÃo del
mensaje actual. - sincronización rango ' , ' rango ... ' / '
58NOTACIÓN DE LOS DIAGRAMAS DE COLABORACIÓN
Representación gráfica de varios mensajes en un
mismo enlace
59NOTACIÓN DE LOS DIAGRAMAS DE COLABORACIÓN
Representación gráfica de los mensajes al emisor
60NOTACIÓN DE LOS DIAGRAMAS DE COLABORACIÓN
- Representación gráfica de la creación de
instancias y enlaces - La creación y destrucción de instancias y enlaces
se representa por las siguientes restricciones - Nuevo Especifica que la instancia o el enlace
se crea durante la ejecución de la interacción
que la contiene. - Destruido Especifica que la instancia o el
enlace se destruye antes de completarse la
ejecución de la interacción que la contiene. - Transitorio Especifica que la instancia o el
enlace se crea durante la ejecución de la
interacción que la contiene, pero se destruye
antes de completarse su ejecución.
61NOTACIÓN DE LOS DIAGRAMAS DE COLABORACIÓN
Representación gráfica de la creación de
instancias y enlaces
62NOTACIÓN DE LOS DIAGRAMAS DE COLABORACIÓN
Representación gráfica de los mensajes dirigidos
a multiobjetos MULTIOBJETO Representa un
conjunto de instancias.
63NOTACIÓN DE LOS DIAGRAMAS DE COLABORACIÓN
- Representación gráfica de los mensajes dirigidos
a multiobjetos - Ejemplos
- Mensajes dirigidos a un elemento de un
multiobjeto y a un multiobjeto.
64NOTACIÓN DE LOS DIAGRAMAS DE COLABORACIÓN
- Representación gráfica de los mensajes dirigidos
a multiobjetos - Ejemplos
- Mensaje dirigido a todos los elementos de un
multiobjeto.
65NOTACIÓN DE LOS DIAGRAMAS DE COLABORACIÓN
- Representación gráfica de los actores
- Los ACTORES en los diagramas de colaboración
representan el desencadenamiento de las
interacciones por un elemento externo. - El primer mensaje (no enumerado) de la
interacción es enviado por el actor.
66Modelo dinámico conceptos
- ESTADO valores de los atributos y enlaces de un
objeto - EVENTO estÃmulo individual de un objeto sobre
otro. - Puede producir un cambio de estado y/o más
eventos. - DIAGRAMA DE TRANSICION DE ESTADOS
- Representación abstracta del patrón de eventos,
estados y transiciones de estados de una clase
(modelo del comportamiento interno de las
clases). - Se elaboran a partir de los diagramas de
secuencia y de clases.
67(No Transcript)
68EVENTO
- Sucede en un punto del tiempo y carece de
duración respecto a la granularidad temporal del
sistema. - Dos eventos no relacionados se dicen
concurrentes. - Transmisión de información en un sólo sentido
- Algunos eventos son simples señales, pero la
mayorÃa tienen atributos.
69ESTADO
- Abstracción de los valores de los atributos y
enlaces de un objeto - Son artificiales conjuntos de valores de
atributos según las propiedades que afectan al
comportamiento global del objeto - A menudo se asocia con el valor de un objeto que
satisface una condición - Se ignoran los atributos que no afectan al
comportamiento del objeto - CONDICIONA la respuesta de un objeto a los
eventos. - El estado de un objeto puede incluir los valores
de sus enlaces.
70darDeBaja
Baja
Inicio
Fin
baja true
alquilar
Libre
Alquilado
devolver
Existe un Alquiler con fecha
Para todo Alquiler
devolucion ''
fecha devolucion ltgt ''
71Diagrama de estados
- Representa TRANSICIONES cambio de estado
producido por un evento. - Describe el comportamiento de una clase de
objetos, aunque cada objeto podrá estar en un
estado diferente. - Todas las transiciones que abandonan un estado
deben corresponder a diferentes eventos.
72Diagrama de estados elementos
- Estados, transiciones y eventos
- Estado inicial y estados finales
- Condición función booleana sobre valores de
objetos - Puede determinar un estado
- Puede ser una guarda de una transición
- Relación entre operaciones y DTE
- ACCION se asocia a un evento o a la
entrada/salida de un estado - ACTIVIDAD se realiza durante un estado
73ESTADO input/acción entrada do actividad on
evento /acción output/acción salida
Inicio
Fin
74ESTADO1 input/acción entrada do actividad on
evento /acción output/acción salida
evento1 (atributos) guarda / acción1
Clase de objetos
ESTADO2 .....
75Abriéndose
Puerta-gtabierta / Motor-gtapagar
Botón-gtpulsar / Motor-gtabrir
Botón-gtpulsar / Motor-gtcerrar
Abierta
Cerrada
Botón-gtpulsar / Motor-gtabrir
Botón-gtpulsar / Motor-gtcerrar
Cerrándose
Puerta-gtcerrada / Motor-gtapagar
76(No Transcript)
77Anidamiento de DTE
- GENERALIZACION anidamiento jerárquico de
subestados - AGREGACION disgregación de un estado en
componentes concurrentes
78Evento1
Generalización
Evento3
Evento2
Evento1
Agregación
Evento2
79Coche
Encendido
Frenos
Transmisión
Acelerador
80Transmisión en punto muerto
pisar freno
soltar freno