Professional Documents
Culture Documents
Modelado de Interacciones
Diagramas de interaccin: secuencia y colaboracin Diagramas de Estado Diagramas de Actividades El modelado dinmico en el proceso sw.
Interacciones Interaccin: un conjunto de comunicaciones entre instancias, incluyendo la forma en que las comunicaciones afectan a las instancias, ej. invocacin de operaciones, creacin y destruccin de instancias. Los objetos interactan para realizar colectivamente los servicios ofrecidos por las aplicaciones. Los diagramas de interaccin incluyen:
diagramas de instancias (incluyendo enlaces y mensajes). Instancias ya existentes. Creacin y destruccin de instancias.
Usos:
Para la documentacin de un caso de uso. Para la especificacin de una operacin. Para la documentacin de trazas de prueba.
Interacciones: Elementos
Descripcin
Instancia (objeto, instancia
componente, etc.)
Mensaje
Entidad con identidad nica a la que se pueden aplicar un conjunto de operaciones (mensajes), y que tiene un estado que determina los efectos de dichas operaciones
Comunicacin entre dos instancias.
Conexin entre instancias.
Nombre subrayado
tringulo : Polgono
Valores atr.
tringulo : Polgono
centro : Punto = (2,2) vrtices : Punto* = ((0,0), (4, 0), (2,4))
colorLnea : Color = negro
colorRelleno : Color = blanco
tringulo
Enlace
atributos
: Polgono
Diagramas de Interaccin
Diagrama de secuencia
x
a
b
y
z
Diagrama de colaboracin
1.1: a 1.2: c
x
y
1.1.1: b
Diagramas de secuencia
c
z
Diagramas de Secuencia Un diagrama de secuencia muestra las interacciones entre objetos (mensajes) en un escenario concreto organizados en una secuencia temporal. Muy adecuado para la descripcin de escenarios en un caso de uso (cercano al usuario).
Diagrama de Secuencia
objeto1 : Clase
objeto2
Estmulo, Mensaje
nombre ()
Activacin
new () : Clase
destruccin
tiempo
retorno
creacin
Diagrama de secuencia: tipos de mensajes Llamada o Sncrono (flujo anidado) Flujo asncrono
Flujo asncrono
: Artculo apli
Manej. Err.
alarma
getValor precio
desconocido alarma
confirmar
El perodo en el que un objeto est activo se muestra con un rectngulo sobre la lnea de vida.
Mensajes lost: modelan mensajes enviados que nunca llegan a su destino o cuyo destinatario no aparece en el diagrama. Mensajes found: modelan mensajes de un emisor desconocido o que no aparece en el diagrama.
Diagrama de secuencia: retorno El retorno se considera implcito si el envo es sncrono, sino en caso de existir debe explicitarse:
objeto1
objeto3
donde argumentos es una lista <name>:<class> Atributo, argumentos y retorno son opcionales. La especificacin del mensaje puede ser * (cualquier mensaje) Ejemplos:
doSomething( ) doSomething(number1 : Number, number2 : Number) doSomething( ) : ReturnClass myVar = doSomething( ) : ReturnClass
recursin ()
b
{B-A < 5 s}
* [i:= 1 .. 2] nombre()
A B
{C-B < 1 s}
C
Diagramas de comunicacin Representa una interaccin con una distribucin de los objetos espacial (no temporal). La estructura esttica viene dada por los enlaces; la dinmica por el envo de mensajes por los enlaces. Menos cercano al usuario, utilizado en la elaboracin del diagrama de clases en fase de diseo, permite descubrir abstracciones. Renombrado a diagramas de comunicacin (UML 2.0)
Diagramas de Interaccin
Diagrama de secuencia
x
a
b
y
z
Diagrama de colaboracin
1.1: a 1.2: c
x
y
1.1.1: b
mensaje (5, 7) 3.7.4: mensaje (5, 7) 3.1a [ x < 0 ] : res := mensaje (arg)
c
z
condicin Nmero-secuencia Valor-retorno Nombre-mensaje lista-argumentos
3.7 *[1..5]: mensaje (5, 7) Hacen explcito el ordenamiento temporal. Hacen explcito los enlaces entre objetos. (Diagrama de comunicacin 2.0) 3.7 [ z > 0 ]: mensaje (5, 7)
iteracin condicin
sd Add a new advert to a campaign 5: createNewAdvert 4: selectCampaign 3: selectClient :AddAdvertUI :CampaignManager 1 *[For all clients]: getClient 3.1.1: listCampaigns 3.1.1.1 *[For all clients campaigns]: getCampaignDetails :Campaign 4.1.1.1 *[For all campaigns adverts]: getAdvertDetails :Advert 2: startInterface 5.1: addNewAdvert 4.1: showCampaignAdverts 3.1: showClientCampaigns :AddAdvert 5.1.1: addNewAdvert 4.1.1: listAdverts newAd:Advert
: Socio
8: Autorizar prstamo
4: Situacin socio ok
5.1.1.1: Advert
6: Situacin libro ok
:Client
Diagrama de comunicacin
Diagramas de comunicacin Contienen la misma informacin que los diagramas de secuencia. Muestran explcitamente los enlaces entre los objetos que participan en la colaboracin de objetos. No existe orden temporal, la secuencia se captura con nmeros de secuencia.
Smbolo de enlace
window
: Window
Estereotipo Estndar
Restriccin estndar
{new} : Line
local line 1.1.2: create (r0, r1) 1.1.3: display (window) 1.1.1b: r1 := position () right : Bead
Estereotipo estndar
Un interaction frame es una regin del diagrama de secuencia dividida en uno o ms fragmentos:
Cada regin tiene un operador. Cada fragmento (operandos) puede tener una guarda. Permite mostrar ramificacin, bucles, ejecucin concurrente, etc.
Fragmentos de secuencia
op (operador): Aplicado a las interacciones en la regin (uno o varios fragmentos) (algunos operadores requieren argumentos como nombres de diagramas, parmetros, constantes, guardas) [guarda]: Expresin booleana La interaccin se ejecuta de acuerdo al valor de la guarda
Fragmentos de secuencia
op
[guard_1] interaction_1
op [:arguments]
[ [guard] ]
[guard_n] interaction_n
Notacin con ms de una interaccin. Cada interaccin se ejecuta si la guarda evala a true.
break: rompe ejecucin, normalmente un bucle alt: comportamientos alternativos con guardas
Guardas de cada uno de los comportamiento
alt: selecciona una interaccin de un conjunto en funcin de los valores de la guarda. [else] si no se cumple. Guardas mutuamente exclusivas. Equivalente a instruccin switch/case.
Construccin del diagrama de secuencia Poner el origen del primer mensaje a la izquierda. Poner cercanos aquellos individuos con fuerte interaccin En general, intentar que los arcos de mensaje sean lo ms cortos posible y, en su mayora, de izquierda a derecha. Dar nombre a los individuos slo si son utilizados como argumentos de mensajes o en expresiones Omitir mensajes recursivos a no ser que generen mensajes a otros individuos. Omitir el retorno si se utiliza representacin de activaciones. Seleccionar un nivel de abstraccin.
critical
La interaccin es una regin crtica. No se pueden entrelazar con otros mensajes (atmica) Uso tpico: recursos compartidos
neg
La interaccin no puede ocurrir (trazas invlidas).
par
Ocurrencia concurrente de un conjunto de interacciones
ignore:
Designa un conjunto de mensajes sin relevancia.
consider:
Opuesto a ignore. Ignorar todos los mensajes no incluidos.
Secuencia vs colaboracin
Secuencia vs colaboracin
Secuencia vs colaboracin
Resumen
Modelo de requisitos
Modelo de anlisis
Alumno
Profesor
MantenerOferta
PAS
Modelo de diseo
DIAGRAMA DE CLASES
GestionarCobros
Sistema contable
Ejemplo: clases
Ejemplo: atributos Los atributos se pueden identificar examinando las definiciones de las clase, los requisitos del problema, y en general aplicando el conocimiento que se posee del dominio
FormularioMatricula GestorMatricula
AlgoritmoAsig
Curso Alumno
Profesor OfertaCursos
Ejemplo: operaciones Las operaciones se pueden identificar examinando los diagramas de interaccin (casos de uso).
Ejemplo: relaciones Las relaciones se pueden identificar examinando los diagramas de interaccin (casos de uso).
Si dos objetos tienen que hablar debe haber un camino para la comunicacin.
Formulario Matricula
Gestor Matricula
GestorMatricula
AadirAlumno(pepe, I. S. 01)
GestorMatricula
I. S. 101: Curso
GestorMatricula
AadirAlumno(pepe)
AadirAlumno(Alumno,Curso)
Curso
FormularioMatricula GestorMatricula
AadirAlumno(Curso, AlumnoInfo)
AlgoritmoAsig
AlgoritmoAsig
Curso
nombre numeroCreditos
1 0..* Alumno
nombre especialidad
Curso
nombre numeroCreditos
Alumno
nombre especialidad AadirAlumno(AlumnoInfo)
AadirAlumno(AlumnoInfo)
1 3..10 Profesor
nombre departamento
Profesor OfertaCursos
numero lugar fechas AadirAlumno(AlumnoInfo) nombre departamento
4 1 0..4
1..* OfertaCursos
numero lugar fechas AadirAlumno(AlumnoInfo)
Diagramas de estados Los diagramas de estados son mquinas de estados finitas (estados y transiciones). Basados en los Statecharts (Harel). La descripcin del comportamiento de un objeto mediante un diagrama de estados es adecuada para aquellos objetos con dinmica significativa. El resto de objetos se puede considerar que tienen un nico estado. La transicin entre estados es instantnea y se debe a la ocurrencia de eventos (dirigido por eventos).
Diagramas de estados
10
Diagrama de estados
Estado Inicial Calculando Transicin Estado Evento
Hecho stop
Accin
Si la computacin en el estado actual finaliza y existe una transicin de salida sin evento asociado:
Se produce el cambio de estado si no hay guarda o se cumple.
Si la transicin tiene accin asociada, esta ocurre cuando se atraviesa la transicin. Si se alcanza el estado final, la mquina finaliza.
Diagrama de estados
aprobar
aprobado
jubilarse
completar
jubilarse jubilado
pendiente
rechazar
finalizado
completar
rechazado
Diagrama de estados
Destruccin de un objeto:
La destruccin de un objeto es efectiva cuando el flujo de control del autmata alcanza un estado final no anidado. La llegada a un estado final anidado implica la subida al super-estado asociado, no el fin del objeto.
En vuelo
chocar
En tierra
11
Formato de transiciones
Formato de transiciones buttonPress buttonPress( modifiers : Modifer[*] ) buttonPress / closeWindow buttonPress [enabled] buttonPress [enabled] / closeWindow [mode = active] / closeWindow buttonPress[enabled], mouseClick
Bifurcacin condicional
Vendiendo
Contento
oferta [valor >= 200] /vender
Vendiendo
Contento
oferta [valor >= 200] /vender
oferta [(valor >= 100) & (valor < 200)] /vender oferta [(valor >= 100) & (valor < 200)] /vender
Descontento
Descontento
Bifurcacin condicional dinmica Es un pseudoestado de eleccin: las guardas se evalan en el instante en el que alcanza el punto de eleccin. Vendiendo
oferta /ganancia := calcular(valor)
Contento
Contento
[valor >= 200] /vender [valor < 100] /rechazar [ganancia< 100] /rechazar [(valor >= 100) & (valor < 200)] /vender [(ganancia >= 100) & (ganancia< 200)] /vender [ganancia >= 200] /vender
Descontento
Descontento
12
Acciones internas a un estado buttonPress / beep keyPress( SPACE ) / count++ timeout [mode = alert] / displayAlertMsg entry / count := 0; sum := 0 exit / ring bell do / display flashing light include / OrderProcessing
Significado Se produce en la entrada al estado Se produce en la salida del estado Se produce tras la entrada al estado y contina hasta su salida o hasta la finalizacin de la accin asociada. Permite especificar un diagrama de estados anidado en el estado (diagramas de estados jerrquicos).
include
Acciones internas a un estado: Do Accin mientras estamos en un estado, se ejecuta hasta que:
La accin (normalmente un diagrama de estados) finaliza. El estado se abandona debido a una transicin de salida.
Acciones internas a un estado: Entry y Exit Acciones exit prefijo acciones en transiciones. Acciones entry sufijo acciones en transiciones. On
entry/dispositivo.on(); exit/printf(saliendo);
off/printf(a off);
Off
entry/dispositivo.off(); exit/printf(saliendo);
Accin do Error
entry/printf(error!) do/while (true) alarma.on();
Transiciones internas a un estado Transiciones internas al propio estado: no incluyen entry, ni exit. Transicin interna disparada por el evento off
Diagramas jerrquicos
Permiten refinar y visualizar comportamientos complejos. Los estados se descomponen en mquinas de estados.
off/!
OffLine
transicin de grupo
Off
entry/dispositivo.off(); exit/printf(saliendo); off/null;
on/!
Preparado
peticin/atender()
hecho/
Ocupado
Estado compuesto
13
Diagramas jerrquicos
transiciones de entrada a un estado especfico o sino de defecto al pseudo-estado inicial
Off
entry/luz.off()
interm/
Intermitente
IntOn
entry/luz.on()
Computando
Fase1
Transicin de terminacin
off/ on/
On
entry/luz.on()
1sec/ on/
Transicin de grupo IntOff
1sec/
Fase2
Hecho
entry/luz.off()
AA
S1 exit/exS1
S2 entry/enS2 /initS2
y / yAction BBB entry / enterBBB exit / exitBBB BB entry / enterBB exit / exitBB
x / xAction
S11 exit/exS11
E/actE
S21 entry/enS21
Estados compuestos En los diagramas jerrquicos podemos encontrar dos tipos de estados compuestos:
Secuenciales y ortogonales.
MaintainSpeed do / maintain(speed)
setBtnRelease
14
La estancia en el estado finaliza en cuanto se recibe un evento de salida del estado compuesto. Si no es as, la estancia finaliza cuando todas las regiones hayan alcanzado su estado final.
...
S2
...
S3
...
S4
...
...
S1
...
S2
...
transitionString
Target State
...
S3
...
...
S4
15
Pseudo-estados de historia Un estado de historia (history state) es un pseudoestado que indica que se debera reentrar en el ltimo subestado activo del estado compuesto
Aquel subestado que caus la salida en la anterior visita el estado compuesto.
Pseudo-estados de historia
On setToA Preset A
El objetivo es permitir el modelado de estados persistentes, lo que es habitual en muchos dispositivos y sistemas.
Preset B
Preset C
Off
turnOn
Diagrama de estados: resumen UML utiliza una variante orientada a objetos de statecharts (Harel). Se utiliza para el modelado de comportamiento (reactivo) dirigido por eventos (apropiado para la visin objetos servidores inherente a OO). Caractersticas avanzadas:
Acciones entry, exit, do. Bifurcacin condicional esttica y dinmica.
En general modelan la vida de instancias. Los diagramas estado transicin se crean para aquellos objetos con un comportamiento dinmico significativo (ya sean instancias de clases, casos de usos o el sistema global).
Diagrama de actividades
Destinado a modelos de flujo de control y flujo de datos (objetos), , en vez de modelos dirigidos por eventos (diagramas de estados). Mientras los diagramas de interaccin destacan flujo de control entre objetos, los de actividades destacan flujo de control entre actividades. Inicialmente los diagramas de actividades eran un tipo de diagramas de estados. Son independientes de las mquinas de estados en UML 2.0.
16
[condicin]
[else]
[condicin]
Fin de temporizacin
Nodos objeto: denotan una instancia de un objeto que est disponible en algn punto de la actividad (ej, Pins).
Acciones Unidad fundamental de funcionalidad ejecutable en una actividad. La ejecucin de una accin representa cierto tipo de transformacin o proceso en el sistema modelado (creacin de objetos, invocacin de comportamiento, asignar valores a atributos, etc.).
Pins Especificacin de entradas y salidas de las acciones. El nombre del pin generalmente resalta el tipo de objetos o datos que fluye a travs del pin.
Pins de salida
Pins de entrada
Notacin integrada: el pin de entrada y de salida tienen el mismo nombre y el mismo tipo
17
Actividades Una actividad es la especificacin de un comportamiento parametrizado como una secuencia coordinada de elementos que son acciones. Se utilizan parmetros para recibir y proveen datos.
Tipos de arcos Conexiones dirigidas con un origen y un destino, pueden conllevar el paso de testigos.
Parmetro de entrada
Parameter name
Parmetro de salida
Cualquier nmero de testigos puede circular por el arco conjuntamente o en momentos diferentes. Weight: El peso determina el mnimo nmero de testigos que debe atravesar el arco al mismo tiempo.
Una accin puede invocar una actividad para describir la accin de forma ms detallada.
Arco de flujo de objeto: modela el flujo de valores hacia o desde un nodo mediante el paso de objetos o datos
Nodos de decisin y combinacin Los nodos de decisin dirigen el flujo a uno de sus arcos de salida (los testigos no se duplican). Las guardas se especifican sobre los arcos de salida o con el estereotipo decisionInput. Existe la guarda predefinida [else], se selecciona si el testigo no es aceptado en ninguno de los otros arcos. Si todas las guardas fallan, el testigo contina en el nodo fuente hasta que una de las guardas lo acepte.
Nodos de decisin y combinacin Los nodos de combinacin aglutinan un conjunto de flujos alternativos. Todos los controles y datos que lleguen al punto de combinacin se pasan de forma inmediata al arco de salida. No existe sincronizacin de flujos ni unin de testigos.
18
Unin y divisin concurrente Los nodos fork dividen flujos en mltiples flujos concurrentes (se duplican los testigos).
En UML 2.0 el paralelismo no est restringido, las ramas en paralelo son totalmente independientes.
Buscar Bebida
Accin
Generalmente, el control o los datos deben estar disponibles en todos los arcos de entrada, pero tambin se pueden especificar condiciones para la aceptacin del join mediante el uso de joinSpec
Divisin concurrente
Unin concurrente
Coger zumo
Beber
19
Diagramas de actividades: send Crea una seal a partir de la entrada y la transmite al objeto destino (local o remoto). Se trata de un estmulo asncrono que dispara una reaccin en el receptor de forma asncrona y sin respuesta. Cualquier mensaje de respuesta es ignorado.
Diagramas de actividades: receive Espera la ocurrencia de un evento que cumpla las condiciones especificadas. Dos tipos:
Aceptacin de una seal send. Espera de tiempo (acepta eventos de tiempo)
Los objetos en el almacn de datos slo se recuperan cuando el join tiene xito (una vez al ao).
Puede ser usada para inicio de actividad La especificacin del tiempo puede ser absoluta o relativa
Inicio y fin de actividad En una actividad el flujo se inicia en sus nodos iniciales, que pasan el control inmediatamente al nodo siguiente.
Si hay ms de un nodo inicial, se sita un testigo de control en cada nodo inicial cuando se inicia la actividad, se inicia mltiples flujos. Si un nodo inicial tiene ms de un arco de salida, slo uno de ellos recibir el control.
AoB?
20
Nodo final:
La actividad termina cuando llega el primer testigo.
Competencia intencionada entre flujos
Uso avanzado diagrama de actividades Conectores Regiones de expansin Flujo de objetos Calles Pre y pos condiciones
Flujo de objetos
Visualizado Muestreador
Flujo de objetos Los estados del flujo de objetos pueden ser estados de sincronizacin:
A11 A12 Obj [S2] A21 A22 A23 A13
Iniciar
Actualizar display
ValorMedido
Medir
21
Particiones (swimlanes)
Las particiones dividen los nodos y arcos con el objetivo de identificar acciones que comparten ciertas caractersticas.
A menudo se refieren a organizaciones en el modelo de negocio.
Particiones (swimlanes)
Particiones (swimlanes)
Objetos, actores, casos de uso
Pasajero Vendedor Airline
Solicitar pasaje
Seleccionar vuelo
Solicitar pago Reservar plazas Pagar pasaje Emitir billete Confirmar plaza reservada
Particiones (swimlanes)
Particiones (swimlanes)
22
Particiones (swimlanes)
Particiones (swimlanes)
Viaje a Gnova
local precondition Have a license Car crash Turn on the car [else] Fill up with fuel
Go to Heaven/ Hell ;)
[on car]
To motorway tollgate
Ejemplos
[the tank is full] Get luggage ready [on train] Go to the station with a friend Go home with the car Pay the ticket Exit to Genova tollgate
Go to Heaven/ Hell ;)
The friend goes home When the train arrives to Genova Go home with bus Get off the train [else] Study for 5 minutes [Genova is a long way]
182
Procesar pedido
Process Order Requested Order: Order
[order rejected]
Procesar pedido
<pre> Order complete <post> Order closed Process Order Requested Order: Order
[order rejected]
Requested Order
Receive Order
Fill
[order Order accepted]
Ship Order
Requested Order
Receive Order
Fill
[order Order accepted]
Ship Order
Make Payment
Accept Payment
Close Order
Make Payment
Accept Payment
Close Order
23
Procesar pedido
Process Order Requested Order: Order
[order rejected]
Procesar pedido
<pre> Order complete <post> Order closed Process Order Requested Order: Order
[order rejected]
Requested Order
Receive Order
Fill
[order Order accepted]
Ship Order
Requested Order
Receive Order
Fill
[order Order accepted]
Ship Order
Make Payment
Accept Payment
Close Order
Make Payment
Accept Payment
Close Order
Procesar pedido
Process Order Requested Order: Order
[order rejected]
Procesar pedido
<pre> Order complete <post> Order closed Process Order Requested Order: Order
[order rejected]
Requested Order
Receive Order
Fill
[order Order accepted]
Ship Order
Requested Order
Receive Order
Fill
[order Order accepted]
Ship Order
Make Payment
Accept Payment
Close Order
Make Payment
Accept Payment
Close Order
Procesar pedido
Process Order Requested Order: Order
[order rejected]
Procesar pedido
<pre> Order complete <post> Order closed Process Order Requested Order: Order
[order rejected]
Requested Order
Receive Order
Fill
[order Order accepted]
Ship Order
Requested Order
Receive Order
Fill
[order Order accepted]
Ship Order
Make Payment
Accept Payment
Close Order
Make Payment
Accept Payment
Close Order
24
Procesar pedido
Process Order Requested Order: Order
[order rejected]
Procesar pedido
<pre> Order complete <post> Order closed Process Order Requested Order: Order
[order rejected]
Requested Order
Receive Order
Fill
[order Order accepted]
Ship Order
Requested Order
Receive Order
Fill
[order Order accepted]
Ship Order
Make Payment
Accept Payment
Close Order
Make Payment
Accept Payment
Close Order
Procesar pedido
Process Order Requested Order: Order
[order rejected]
Procesar pedido
<pre> Order complete <post> Order closed Process Order Requested Order: Order
[order rejected]
Requested Order
Receive Order
Fill
[order Order accepted]
Ship Order
Requested Order
Receive Order
Fill
[order Order accepted]
Ship Order
Make Payment
Accept Payment
Close Order
Make Payment
Accept Payment
Close Order
Procesar pedido
Process Order Requested Order: Order
[order rejected]
Procesar pedido
<pre> Order complete <post> Order closed Process Order Requested Order: Order
[order rejected]
Requested Order
Receive Order
Fill
[order Order accepted]
Ship Order
Requested Order
Receive Order
Fill
[order Order accepted]
Ship Order
Make Payment
Accept Payment
Close Order
Make Payment
Accept Payment
Close Order
25
El diagrama puede estar asociado a una clase, la implementacin de una operacin, un caso de uso.
Implementacin de operaciones complejas (diagramas de flujo) Modelado de organizaciones Modelado de actividades de dominio Relacin temporal entre casos de uso
Diagrama de clases (anlisis) Objetivo: proporcionar un modelo lgico del sistema. Entradas: modelo de casos de uso, lista de objetos de dominio.
Elaborar diagrama de clases inicial (basado en objetos de dominio), clases, generalizacin y asociaciones estticas. Utilizar clases y casos de uso:
Escribir descripcin de clases, roles y responsabilidades. Distribuir el comportamiento en los casos de uso. Asegurarse de que hay una clase responsable de cada comportamiento.
Modelo de requisitos
Modelo de anlisis
Modelo de diseo
DIAGRAMA DE CLASES
Refinar clases en el diagrama (operaciones, multiplicidad, ...). Chequear: descripcin textual de casos de uso en trminos de clases. Agrupar clases en paquetes.
Diagrama de clases (diseo) Objetivo: proporcionar un modelo reflejando la forma en que el sistema final ser construido. Entradas: especificacin de requisitos, modelo de anlisis (diagrama de clases), descripcin de los casos de uso:
Identificar el entorno de implementacin. Modelar diagrama de clases de diseo inicial (casos de uso + diagramas de interaccin). Disear flujo de control y flujo de objetos (diagrama de actividades). Definir interfaces. Modelar comportamiento significativo de los objetos (diagramas de estados).
26