Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Esther Guerra, Juan de Lara {Esther.Guerra, Juan.deLara}@uam.es Ingeniera Informtica g Universidad Autnoma de Madrid
Introduccin. g j Diagramas de Clases y Objetos. Otros Diagramas. OCL Accin Semntica. Perfiles. Bibliografa Lecturas sugeridas/ejercicios.
1 2
Introduccin
Unified Modeling Language Estndar de la OMG Language. (http://www.uml.org) Notacin estndar para la descripcin de sistemas orientados a objetos, a partir de los lenguajes de modelado ms conocidos:
Booch - OOD. Rumbaugh - OMT. Jacobson - OOSE y Objectory Objectory.
Introduccin
Lenguaje grfico para visualizar, especificar, construir y L j fi i li ifi t i documentar partes de un sistema software desde p distintos puntos de vista. Puede utilizarse:
Con cualquier proceso de desarrollo. A lo largo de todo el ciclo de vida. Con distintas tecnologas de implementacin
Uso tambin en otras reas, como la ingeniera de , g negocio, modelado de procesos, etc.
Adaptacin/Extensin mediante perfiles.
3 4
Introduccin
No es un mtodo, ni un proceso ni una metodologa. mtodo metodologa No establece qu modelos construir en el proceso de desarrollo. Para un ptimo aprovechamiento, d b ser usado en un P ti h i t debe d proceso:
guiado por casos de uso, centrado en la arquitectura arquitectura, iterativo e incremental.
5
Modelos
Familia de notaciones, tiles para describir p distintos aspectos de un sistema:
Esttico. Esttico Describe los elementos del sistema y sus relaciones. Dinmico. Describe el comportamiento del sistema a lo largo del tiempo tiempo.
Casos de Uso Desde el punto de vista del usuario Uso. usuario.
6
Vistas
Vista de Casos d U Vi t d C de Uso
Funcionalidad externa del sistema
Modelos
Tipos de Diagramas
Vista Lgica Vi t L i
Estructura esttica y conducta dinmica del sistema
Vista de Componentes Vi t d C t
Organizacin modular en componentes
Vista de Concurrencia Vi t d C i
Comunicaciones y sincronizacin
UML
Vista de Despliegue Vi t d D li
Arquitectura fsica
7
Modelos
8
Tipos de Diagramas
Tipos de Diagramas
Cmo estamos seguros de que la g q composicin de un conjunto de diagramas es correcta, es decir, que los modelos son consistentes?. consistentes? Cmo podemos comprobar ciertas propiedades de nuestro sistema global? Cul es la semntica precisa de los diagramas y de sus combinaciones? UML vs. Lenguajes Especficos de Dominio.
9 10
Indice
Introduccin. Introduccin
Clases y Objetos
Los diagramas d Cl L di de Clases y d Obj t son l principales de Objetos los i i l modos de representar los aspectos estructurales en UML. Diagramas de clases. Estructura del sistema.
Clases.
Atributos: Tipos, valores iniciales. Operaciones: visibilidad.
12
Clases y Objetos
Elemento
Clases y Objetos
Nombre de la clase
Hidrgeno
Circulo
-radio: double -centrox: double t d bl -centroy: double +Area(): double +Permetro(): double
Diagrama de clases l
Carbono
visibilidad
Atributos At ib t Operaciones
:Hidrgeno
:Hidrgeno
Diagrama de objetos
:Hidrgeno
:Carbono
:Carbono
:Hidrgeno
:Hidrgeno
:Hidrgeno
13
14
Clases
Atributos
Notacin para atributos: p
Clases
Ejemplo atributos
ClaseA
name: String shape: Rectangle + size: Integer [0..1] / area: Integer {readOnly} height: Integer = 5 h i ht I t width: Integer # pos: Point
/ indica que el atributo es derivado. La multiplicidad va entre [ ] y por defecto vale 1. Propiedades vlidas: {readOnly} {union} {subsets <property {readOnly}, {union}, <propertyname>}, {redefines <property-name>}, {ordered}, {bag}, {seq}, {sequence}, y {composite}. Un atributo subrayado es esttico.
15
ClaseB
id: {redefines name} shape: Square
16
Clases
Mtodos
Notacin N t i para mtodos: t d [ [visibilidad] nombre ( [lista-parametros] ) : [{propiedad}] ] [ p ] [{p p }] Visibilidad (opcional). nombre del mtodo lista de parmetros formales, separados por coma:
Asociaciones: Composicin
Un Crculo contiene un Punto Se representa con una Composicin
Crculo
Punto
direccion nombre : tipo [multiplicidad] = valor [{propiedad}] Los mtodos estticos se subrayan.
Ejemplos:
display () -hide () +createWindow (location: Coordinates container: Container [0 1]): Window Coordinates, [0..1]): +toString (): String 17
Asociaciones
Ejemplos de Navegacin y Cardinalidad
Navegacin: N i
Unidireccional Bidireccional No especificado. No navegable (x)
19 20
Asociaciones: Agregacin
Cuando la relacin todo/parte no es tan fuerte, se utiliza Agregacin , g g
Ventana
susFiguras 0.. 0 *
Figura
Figura
La ventana contiene figuras, pero cada una puede existir sin la otra
21
suContexto ContextoDibujo
22
Dependencia
Clases Asociativas
Asociacin con atributos propios.
Empleado
casado con
Ejemplo
Cliente
nombre direccin
Orden 1 0..*
fecha estado calcImpuesto calcTotal calcPesoTotal
1 Matrimonio
fecha
Persona
Pago
monto
testigos 2
1..*
0.. 0 *
lnea 1..* Crdito
fecha nmero tipo autorizado
23
Clase Asociativa
Efectivo
moneda
Cheque
nombre identifBanco autorizado
DetalleOrden
cantidad tipoImpuesto calcSubtotal calcPeso
Item 0.. 0 * 1
peso descripcin precioPorCantidad obtenerPeso
24
Clases y Objetos j
Estilo
Los atributos no deben ser objetos (utilizar relaciones en tal caso). En los diagramas de clases no suelen aparecer:
Constructores Mtodos de acceso (get/set) Mtodos de gestin de elementos de una asociacin o agregacin (por ejemplo, add/remove)
Ya que son detalles de implementacin y no de diseo. q g No olvidar que el diagrama de clases es un modelo, y por tanto una abstraccin.
25
Ejercicio (entrega)
Especificar un diagrama de clases que describa redes de ordenadores. d d Los elementos que se pueden incluir en la red son:
Servidor, PC, Impresora. Hub, Cable de red.
Ms sobre asociaciones
Asociaciones n-arias
Los PCs pueden conectarse con un nico Hub, los servidores con uno o varios. Los S id L Servidores y PC pueden generar mensajes, con una cierta PCs d j i t longitud. Los Hubs tienen un nmero de puertos, algunos de los cuales puede usarse para conectar con otros Hubs Tienen cierta Hubs. probabilidad de perder mensajes. Las impresoras pueden averiarse, con cierta probabilidad, durante cierto tiempo tiempo. Entrega individual el da 2 de Noviembre.
27
Equipo E i
equipo
pichichi
Jugador J d
29
Ms sobre asociaciones
Adornos en asociaciones y fin de asociacin.
Ms sobre asociaciones
Adornos en asociaciones y fin de asociacin: Ejemplos
Asociaciones d i d ( A i i derivadas (con un / d l t d l nombre). delante del b ) Propiedades, cerca del nombre de la asociacin. Los finales de la asociacin pueden adornarse con:
Multiplicidad. Nombre (rol). ( ) Propiedades:
{subsets <nombre-prop>}. {redefined <nombre-fin-asoc>} <nombre-fin-asoc>}. {union}. {ordered} (un conjunto ordenado). {bag} (conjunto con repeticin) repeticin). {sequence} o {seq} (bag ordenado).
a 0..1
b
{ordered}
d 1 0..1
{subsets b}
Ms sobre asociaciones
Asociaciones Cualificadas
Un cualificador declara una particin del conjunto de instancias asociadas con respecto a la instancia cualificada.
Banco
NumCuenta
Tablero Ajedrez
fila: Fila col: Colum
* 0..1
1 1
body-condition
Persona
Casilla
Dado un objeto cualificado, el nmero de objetos al otro lado de la asociacin viene d d por l multiplicidad d l d i dado la lti li id d declarada.
0..1 : el valor del cualificador es nico. 0..* : el conjunto de instancas asociadas se particiona en subconjuntos. Similar a un array asociativo, map o tabla hash asociativo hash.
32
post-condicin
33
Interfaces
Clase <<interface>> MiInterfaz mtodos Clase MiInterfaz Clase MiInterfaz
Plantillas
35
Persona
- nombre - edad + mostrar()
Objetos
Empleado
subordinados - sueldo_bruto + mostrar () + calcular_salario_neto() l l l i t () empleados
Indice
Cliente
- nombre_empresa - telefono_de_contacto +mostrar() clientes
Directivo
- categoria + mostrar ()
Empresa
- nombre
e2 : Empleado
- nombre=Mara - edad=25 edad 25 - sueldo_bruto=36000 empleados subordinados
e1 : Empleado
- nombre=Pedro - edad=23 edad 23 - sueldo_bruto=30000 empleados
d1 : Directivo
nombre=Luis edad=35 d d 35 sueldo_bruto=36000 categoria=C1
empleados
Empresa
- nombre=HGJ
clientes
c1 : Cliente
nombre=Luis edad=35 nombre_empresa=Macroware telefono_de_contacto=91555666
36
37
Diagramas Estructurales
Clases y Objetos (ya vistos) vistos). Componentes.
Mdulos con interfaces.
Componentes
Componente=Unidad M d l C t U id d Modular con i t f interfaces bien definidos que es reemplazable en su entorno entorno. nfasis f i en reutilizacin y encapsulamiento. tili i l i t Servicios que provee y requiere (interfaces). Componentes lgicos (componentes de negocio, de proceso) y fsicos (EJB, CORBA, COM+, .NET, )
39
Estructuras C E t t Compuestas. t
Clases con estructura interna.
Paquetes.
Estructura de la aplicacin.
Despliegue.
Vista fsica.
Componentes
Interfaces que ofrece Interfaces que requiere
Componentes
Vista de j blanca Vi t d caja bl
40
41
Estructuras Compuestas
Composicin d elementos ( l ifi d C i i de l t (clasificadores o colaboraciones) Instancias en tiempo de ejecucin que colaboran a travs de enlaces para alcanzar objetivos comunes. Colaboraciones: a travs de roles. Se aade a las clases estructura internas y puertos.
42
Estructuras Compuestas
Estructura interna de una clase. clase
43
Estructuras Compuestas p
Colaboracin.
Estructura i t E t t interna d una colaboracin. de l b i
Paquetes
Un paquete es un contenedor que agrupa elementos relacionados. Los diagramas de paquetes muestran la estructura de alto nivel de la aplicacin. aplicacin
44
45
Paquetes
Un paquete puede extender a otro uniendo sus contenidos.
El contenido del paquete target se une con el contenido del paquete source por medio de especializacin y redefinicin donde sea aplicable ( (elementos del mismo nombre). )
46
47
Despliegue
Definen l arquitectura d ejecucin d un sistema. D fi la it t de j i de i t Representa la asignacin de artefactos software a nodos nodos.
Nodos = elementos hardware, o entornos de ejecucin software. Artefactos = elementos concretos (p.e.: ficheros) que son el resultado del proceso de desarrollo.
48 49
Despliegue p g
Relaciones entre artefactos.
Casos de Uso
Describen qu h D ib hace el sistema d d el punto l i t desde l t de vista de un observador externo. Ponen nfasis en qu hace el sistema, no en cmo l h lo hace. Un escenario es una instancia particular de un diagrama de casos de uso.
Manifestacin de elementos a travs de artefactos
50
Casos de Uso
Actor Algo A t = Al con comportamiento ( t i t (persona, otro t programa, organizacin...), que interactua con el sistema. sistema Escenario (i t E i (instancia d i de caso d de uso) = ) Secuencia de acciones e interacciones entre los actores y el sistema sistema.
Cajero
Caso d U = C l C de Uso Coleccin d escenarios ( it y i de i (xito fracaso) que describen actores que usan el sistema para conseguir un objetivo objetivo.
52
Interesados y objetivos:
Cajero: Quiere anotaciones precisas y rpidas de precios, sin errores. Cliente: Quiere que el pago sea rpido con el mnimo esfuerzo. Q i Cli t Q i l id l i f Quiere una prueba de compra para justificar devoluciones. Compaa: Quieren almacenar las transacciones y satisfacer los intereses de los clientes. Comercial: Quiere que se le actualicen sus comisiones por venta. Agencias de impuestos gubernamentales: Quieren recolectar impuestos de cada venta. Puede que haya varias agencias (nacionales, regionales, etc.) t ) Servicios de Autorizacin de Pagos (por tarjetas de crdito): Quiere recibir peticiones digitales de autorizaciones en el formato y protocolo correcto.
Escenario principal de Exito: 1. Llega un clienta al TPV con bienes o servicios que comprar. 2. El cajero comienza una nueva compra. 3. El cajero introduce un identificador de producto. 4. 4 El sistema registra el elemento y presenta una d i t i t l l t t descripcin d l mismo, su precio y i i del i i total actual. Se calcula el precio de una lista de reglas. j p p q y El cajero repite los pasos 3-4 hasta que no hay ms elementos. 5. El sistema presenta el total con los impuestos calculados. 6. El cajero le dice el total al cliente, y le pide que pague. 7. 7 El cliente paga y el sistema procesa el pago pago. 8. El sistema registra la venta completada y manda la informacin a los sistemas externos de inventario y contabilidad. 9. El sistema genera el recibo. 10. El cliente se va.
55
Precondiciones:
El cajero se ha identificado y autentificado.
54
Make Appointment
<<include>> <<include>> <<incl de>>
Scheduler S h d l
Patient
Request Medication
<<extend>>
Defer Payment
Doctor
Pay P Bill
Extensions Points More Treatment
58
Clerk
Bill Insurance
59
Diagramas de Interaccin
Diagrama de Comunicacin
Muestra un contexto y una interaccin interaccin.
Diagramas de Interaccin
Estructura d l participantes E t t de los ti i t
Diagramas de Comunicacin
Patrones de comunicacin
Diagramas de Comunicacin Diagramas de Secuencia
Diagrama d S Di de Secuencia i
Representacin explcita de comunicaciones, eje temporal. Es ms apropiado para interacciones complicadas la secuencia de
Temporizacin de la comunicacin. p
Diagramas de Secuencia Diagramas de Tiempo.
aplicaciones
con
62
Diagramas de Comunicacin
Llamadas anidadas:
realizarPago(cantidad)
Diagramas de Comunicacin g
Ejemplo.
redisplay()
:Controller
:Registro
1: realizarPago(cantidad)
:Window
:Venta
1.1: crear(cantidad)
:Pago
wire
wire:Wire
<< self >>
line
Iteraciones:
Ejectuar() :Simulador 1*[i:=1..N]: num:= nextInt()
:Line {new} Li { }
left:Bead
64
right:Bead g
65
Diagramas de Secuencia
Representa conjunto de mensajes entre roles R t j t d j t l (o instancias) en una interaccin Dos dimensiones:
Tiempo (generalmente vertical); puede ser una escala si el sistema es de tiempo real Diferentes instancias (generalmente horizontal); el Dif t i t i ( l t h i t l) l orden relativo no tiene importancia
Diagramas de Secuencia
Traza:secuencia de ocurrencias de eventos <e1 e2 ...en> La semntica de una interaccin es un par de conjuntos de trazas (vlidas e invlidas) [P, I]. Pueden existir t P d i ti trazas no i l id incluidas en l los d dos conjuntos j t anteriores. Equivalencia de interacciones, si sus conjuntos de trazas son iguales. Una interaccin se puede especializar: se aaden ms j trazas al conjunto.
66 67
Diagramas de Secuencia
:caller :exchange a: lift receiver b: dial tone :receiver
Diagramas de Secuencia
c: di l digit dial di it ... d: route ringing tone phone rings answer phone stop tone stop ringing
68
Diagramas de Secuencia g
Operadores sobre interacciones.
Fragmentos combinados operadores (i): combinados,
Alternativa (alt).
Eleccin (mediante una guarda) de una interaccin interaccin.
Diagramas de Secuencia g
Operadores sobre interacciones.
Secuenciacin dbil (seq) (seq).
Define un conjunto de trazas que cumple:
1. Se mantiene el orden de eventos de los operandos 2. Eventos de otras lneas de vida de otros operandos pueden venir en cualquier orden. 3. Eventos de la misma lnea de vida de otros operandos se ordenan de tal manera que cualquier evento del primer operando va antes que el del segundo.
Asercin (assert).
La secuencia especificada por el operador es la nica vlida. a secue c a espec cada po e ope ado a ca da
Opcin (opt).
Equivalente a un operador alt con un solo fragmento.
Ruptura (break).
El operando se ejecuta en lugar del resto de la interaccin englobada en el fragmento padre. padre .
Negativa (neg).
Define trazas invlidas.
Paralelo (par).
Mezcla de las trazas de los operandos (cualquier entrelazado es vlido mientras preserve el orden de los eventos de cada operando) operando).
70
Diagramas de Secuencia g
Operadores sobre interacciones. Alternativa.
Diagramas de Secuencia g
Operadores sobre interacciones. Opcin.
72
73
Diagramas de Secuencia g
Operadores sobre interacciones. Regin Crtica.
Diagramas de Secuencia g
Negative.
74
75
Diagramas de Secuencia g
Loop.
Diagramas de Secuencia g
Tiempo
Restricciones temporales (duracin)
76
Duracin de mensajes y seales (duration) Intervalos de tiempo ({t..t+3}) y restricciones temporales. Observaciones temporales (tiempo actual, now) 77 Asignacin de instantes a variables (t=now), restricciones sobre estas.
79
Tiempo
Muestran M t interacciones i t i donde d d importante razonar sobre el tiempo. es
Tiempo
Diagrama temporal p correspondiente a la interaccin
Representa condiciones que cambian en una o varias lneas de vida, en un eje lineal de tiempo tiempo. Cambios en el estado de un objeto con el tiempo en respuesta a eventos.
80 81
Tiempo
Tiempo
82
83
Mquinas de Estados
Statecharts [Harel] St t h t [H l] Representan el comportamiento de entidades ( p e p.e. instancias de clases).
Mquinas de Estados
Comienzo Estados
digit(n)
Fin
start
Partial Dial
Especifican reaccin ante eventos Describen posibles secuencias de estados y acciones por las que pueden pasar las entidades. De comportamiento vs. de protocolo.
84
digit(n)
Transiciones
85
Mquinas de Estados
Un estado tiene:
Nombre Transiciones internas: lista de acciones ejecutadas en ese estado (entry/exit/do) ( y )
Mquinas de Estados
Start
entry/start dial tone exit/stop dial tone
digit(n)
Partial Dial
entry/number.append(n)
digit(n)
Ejemplo: j p
Typing Password
entry/set echo invisible t / t h i i ibl exit/set echo normal character/handle character help/display help
Start
entry/start dial tone y exit/stop dial tone
digit(n)
Partial Dial
entry/number.append(n) y pp ( )
[number.isValid()]
digit(n)
87
Mquinas de Estados
Componentes Ortogonales: Incomplete
Lab1 Term Project Final Test
fail lab done
Mquinas de Estados
Pseudo - estados: P d t d Fork / Join. Initial. Deep History / Shallow History. H* Junction. Choice. Entry / Exit point. Terminate. Passed A1 A2 Cleanup B1 B2 Setup
Lab2
project done
pass
Failed
88
Fork
Join
89
Mquinas de Estados q
Estado Histrico
B
Mquinas de Estados q
Estado Histrico (ii)
B
H
t4 I B1 t1: ev0 B12 t3: ev1 B11 t2
H H*
t4 B2 B21 t3 t3: ev1 I B1 t1: ev0 B12 B11 t2
B2 B21 t3
t4: ev2
t4: ev2
90
91
Mquinas de Estados q
Estado Histrico. Ejercicio.
Mquinas de Estados
Pseudo - estados: Junction.
Modelar el comportamiento de una cadena de msica. Esta puede estar p encendida (ON) o apagada (Standby). La cadena tiene reproductor de CD Radio y CD, Cinta. Se cambia de uno a otro con el botn mode. Cuando se enciende la mode cadena se recuerda el ltimo estado en el que estuvo.
92
95
Mquinas de Estados
Un transicin puede t U t i i d tener:
Evento.
Eventos temporales: tm(n)
+ stop() t () + pause() + play() 1 j () + eject() + apagar() + finCancion() - buscaDisco(d: InfoDisco): ListaCanciones player 1 driver 1 ControladorCD ... + play(act: Cancion, desde: Tiempo) l ( t C i d d Ti ) + stop() : Tiempo + detectarDisco() : InfoDisco () g + detectarAbierto() : Logico + abrir() + cerrar() + apagar()
pista 0..* 1 actual Cancion - titulo: Cadena p - duracion: Tiempo - Artista: Cadena - Orden: Entero ...
A1
A2
Smbolos especiales para el envo y recepcin de seales (normalmente usados en diagramas de actividad). )
96
97
Ejercicio
Modelar l M d l el comportamiento reactivo d un reloj d pulsera. t i t ti de l j de l El valor del tiempo se debe actualizar cada segundo, incluso cuando no se muestra (p.ej. crono encendido). El botn de la parte superior derecha enciende la luz que se mantiene luz, encendida tanto como el botn est apretado, una vez que se suelta, la luz est encendida durante 2 segundos ms y se apaga. El botn superior izquierdo alterna entre el modo de crono y de reloj. El sistema empieza en el modo reloj en el que se muestra la hora en formato reloj, HH:MM:SS. En el modo crono, el tiempo discurrido se muestra en formato MM:SS:CC ( (CC son centsimas de segundo). Inicialmente el crono empieza en g ) p 00:00:00. El botn inferior derecho se usa para activar el crono. ste se actualiza en incrementos de 1/100 segundos. Presionando el botn inferior derecho pausa o continua el crono (si el reloj est en modo crono). q j Pulsando el botn inferior izquierdo resetea el crono a 00:00:00 si el reloj est en modo crono y el crono ha sido pausado antes. El crono continua corriendo (si est corriendo) o mantiene su valor (si est en pausa) incluso cuando el reloj est en un modo de display distinto (por ejemplo, cuando se muestra la hora). ENTREGA: 9 NOVIEMBRE
99
Cerrado
eject ()/ driver.cerrar () r e eject ()/ d driver.abrir () (
endOfSong()/ NumActual+=1
Stop
Play
Pause() )/ Tpausa = driver.stop p()
C
[NumActual<= disco.numCanciones()]/ actual= t l disco.obtenerCancion (NumActual) driver.play(actual,0)
Abierto
eject ()/ driver.stop(); stop()/ driver.abrir() driver.stop(); NumActual 1 NumActual=1 actual= disco.obtenerCancion(NumActual)
Pause
98
Ejercicio
Interface provisto por el controlador:
getTime() : Devuelve la hora actual. refreshTimeDisplay() : Repinta la hora en el visor con la hora interna actual. El visor no necesita limpiarse antes de llamar a esta funcin. Por ejemplo, si se est visualizando el crono, se borrar antes de pintar la hora. refreshChronoDisplay() : ver refreshTimeDisplay(). resetChrono() : Resetea el crono interno a 00:00:00. increaseTime() : Incrementa la hora en un segundo. Los minutos y horas se modificarn adecuademente, (por ejemplo, si se llama a increaseTime () a las 11:59:59, la nueva hora ser 12:00:00). increaseChrono () : Incrementa el crono en 1/100 segundos. setLight() : Enciende la luz del visor. unsetLight() : Apaga la luz del visor visor.
Mquinas de Estados
Ejemplo. Herramienta de Dibujo (i)
Active
wmQuit
exitButton
100
102
Mquinas de Estados q
Ejemplo. Herramienta de Dibujo (ii)
Shapes Canvas
Mquinas de Estados q
Ejemplo. Herramienta de Dibujo (iii)
Shapes
shapeSelected(Triangle) shapeSelected(Rectangle)
Triangle
shapeSelected(Circle)
shapeSelected(Triangle) p ( g ) Modes
Rectangle
Circle
103
104
Mquinas de Estados q
Ejemplo. Herramienta de Dibujo (iv)
Modes modeSelect(Insert)/ Canvas.Insert modeSelect(Move)/ Canvas.Move
Mquinas de Estados
Canvas
Idle
onDrawingMouse1Press(x,y)
Insert
modeSelect(Delete)/ Canvas.Delete
move insert
C
delete insert
modeSelect(Insert)/ Canvas.Insert
Moving
Deleting
Idle Move
modeSelect(Delete)/ ( )/ Canvas.Delete modeSelect(Move)/ Canvas.Move C M
105
Delete
Idle
Moving
move delete
106
Diagramas de Actividad
Refinamiento de los diagramas de estados estados.
Los estados representan p subactividades la ejecucin j de acciones o
Diagramas de Actividad g
Ejemplo
Put Coffee in Filter Put Filter in Machine Turn on Machine Add Water to Reservoir / coffeePot.turnOn Brew coffee light goes out Pour Coffee [found cola] Get cans of cola Drink [no cola]
Las transiciones son disparadas cuando se completan estas p p acciones o subactividades Semntica basada en tokens.
Get Cups
Flujos dirigidos por procesamiento interno (en los diagramas de estados normales son dirigidos por eventos externos). Semntica basada en Redes de Petri. No obstante no se 107 da una transformacin a Redes de Petri.
108
Diagramas de Actividad
Swimlanes
Diagramas de Actividad
Flujos de Objetos: Objectflows
109
110
Indice
Introduccin. Diagramas de Clases y Objetos. g Otros Diagramas.
OCL.
Accin Semntica Semntica. Perfiles. g Bibliografa Lecturas sugeridas/ejercicios.
111
Ejemplos
Flight
Flightnr: Integer availableSeats(): Integer flights 0 * 0.. passengers 0..* 0.. 0 * flights 1 plane
Ejemplos
Airplane
numberOfSeats: Integer
Casa
valor: Dinero aval 1
Persona
0.. 0 * casas 1 numSegSoc: Identificador S S Id ifi d propietario sueldo: Dinero contratarHipoteca(sum: Dinero, aval: Casa) ) 1 contratante 0..* hipotecas
Person P
name: String
Reglas adicionales:
Cmo se expresa el hecho de que en ningn vuelo puede haber p j q ms pasajeros que asientos tiene el avin? Restriccin OCL:
Context Flight Inv: passengers->size() <= plane.numberOfSeats
113
1. 2. 2 3. 4. 5.
Una persona puede tener una hipoteca sobre una casa slo si es el propietario. La fecha de inicio de cada hipoteca ha de ser menor que la de final final. El nmero de la seguridad social de cada persona ha de ser nico. Slo es posible contratar una nueva hipoteca si el salario de la persona es suficiente. Slo es posible contratar una nueva hipoteca si el valor de la casa aval 114 es suficiente.
Ejemplos
Context Hipoteca C t t Hi t Inv: aval.propietario = contratante Context Hipoteca Inv: fechaInicio < fechaFin
Ejemplos
la
Context Persona Inv: Persona::allInstances()->isUnique(numSegSoc) Context Persona::contratarHipoteca(sum: Dinero, aval: Casa) pre: self.hipotecas.mensual->sum()+sum <= self.sueldo * 0.70 Los PCs pueden conectarse con un nico Hub, los servidores con uno o varios Context Persona::contratarHipoteca(sum: Dinero, aval: Casa) pre: aval.valor >= aval.hipotecas.principal->sum()
115
Ejercicio
Un Hub no puede conectarse consigo mismo a travs de un puerto
Context Cable_Hubs Inv: Puerto_Hub.hub->asSet()->size() = 2
Ejemplos
117
118
Ejemplos
Especificacin d l valor i i i l y d i d d atributos/association ends: E ifi i del l inicial derivado de t ib t / i ti d
context Person::income : Integer init: parents.income->sum() * 1% -- pocket allowance derived:if d i d if self.age < 18 lf then parents.income->sum() * 1% -- pocket allowance else job.salary -- income from regular job endif
Subexpresiones (let):
context Person inv: let income : Integer = self.job.salary->sum() in if isUnemployed then income < 100 else income >= 100 endif
119
120
Indice
Introduccin. Diagramas de Clases y Objetos. g Otros Diagramas. OCL.
source->isUnique(iterators|body) ( | y)
True si body se evalua a un valor diferente para cada elemento de source.
Accin Semntica.
Perfiles. g Bibliografa Lecturas sugeridas/ejercicios.
source->one(expr)
Devuelve true si existe exactamente un elemento de source que cumple la condicin.
source->reject(expr)
Devuelve una coleccin con los elementos de source que no cumplen la condicin.
source->sortedBy(expr)
Ordena source, resulta en un OrderedSet source
123 124
Accin Semntica
Una parte del meta modelo de UML contiene la meta-modelo especificacin de un lenguaje para la manipulacin de modelos (i.e. slo la sintaxis abstracta). Modelos similares a los de flujo de datos. Permite describir el contenido de mtodos, y acciones ejecutables en un lenguaje abstracto, antes de la implementacin. i l i Se persigue un modo estndar independiente de la estndar, plataforma y de la implementacin de especificar comportamientos detallados. Primer paso hacia la ejecutabilidad de modelos UML?
125
Accin Semntica
Acciones y Actividades. A i A ti id d
Accin: Unidad fundamental de comportamiento. p Convierte un conjunto de entradas en un conjunto de salidas. salidas Las entradas pueden ser salidas de otras acciones (dataflow). Las acciones estn contenidas en actividades, que l L i t t id ti id d les proporcionan un contexto, as como restricciones de secuencialidad y control, y mecanismos de estructuracin anidada. id d Lenguaje de accin primitivas+mecanismos de actividades. semntica: estructuracin acciones de 126 las
Accin Semntica
Actividades. Ejemplo.
Accin Semntica
Actividades. Ejemplo.
127
128
(De C. Bock)
Indice
Introduccin. Diagramas de Clases y Objetos. g Otros Diagramas. OCL. Accin Semntica.
Perfiles
Mecanismos d extensin (i M i de t i (i.e. no modificacin) para difi i ) declarar nuevas construcciones dentro de UML, p p adaptadas a un dominio especfico. tiles para: p
Dar una terminologa adaptada a un dominio especfico (p.ej.: EJBs, CORBA, Servicios web, etc). Dar una sintaxis para elementos que no tienen notacin (p ej : (p.ej.: acciones). Dar una notacin distinta para un smbolo existente. Aadir semntica que no se especifica en el meta modelo meta-modelo. Aadir restricciones adicionales. Aadir informacin adicional til para transformaciones.
129 130
Perfiles.
Bibliografa g Lecturas sugeridas/ejercicios.
Perfiles
En UML1.x: estereotipos y etiquetas
<<metaclass>> UML::Class
Ejemplo j p
Un perfil sencillo para EJB
<<stereotype>>
<<stereotype>> MiComponente {<<taggedvalue>> transactional}
Desventajas:
Las etiquetas no tienen tipo, son Strings. No es posible declarar nuevas asociaciones.
Datos/Tiempo ejecucin
Ejemplo j p
Definiendo un perfil
Ejemplo j p
Aplicacin de perfiles
133
134
http://www.ibm.com/developerworks/rational/library/05/419_
Perfiles
Multitud de perfiles no estndar. Perfiles promovidos por la OMG:
CORBA. CORBA Component Model (CCM). Enterprise Application Integration (EAI). (EAI) Enterprise Distributed Object Computing (EDOC) (UML 1.4):
Enterprise Collaboration Architecture (ECA). Metamodel and UML Profile for Java and EJB. Flow Composition M d l (FCM) Fl C iti Model UML Profile for Patterns UML Profile for ECA UML Profile for Meta Object Facility UML Profile for Relationships P fil f R l ti hi
Indice
Introduccin. Diagramas de Clases y Objetos. g Otros Diagramas. OCL. Accin Semntica. Perfiles.
Bibliografa. g
Lecturas sugeridas/ejercicios.
Real-Time Embedded Systems (MARTES). QoS and Fault Tolerance Characteristics and Mechanisms y Schedulability, Performance and Time System on a Chip (SoC). Software Radio. Voice. Systems Engineering (SysML). (SysML) Testing. Otros: SPEM.
137
138
Bibliografa: UML
Web de la OMG sobre UML: http://www.uml.org UML 2.0 in a Nutshellby Dan Pilone; Neil Pitman. O'Reilly. June 2005 Perdita Stevens, Rob Pooley. Utilizacin de UML en Ingeniera del Software con Objetos y Componentes. Addison Wesley 2002 Componentes Wesley, 2002. Grady Booch, James Rumbaugh, Ivar Jacobson. The Unified Modeling Language User Guide. Addison-Wesley, 1999. UML 2 Toolkit. Eriksson, H. E., Penker, M., Lyons, B., Fado, D. OMG Press, Wiley. 2004. Craig Larman Applying UML and Patterns . Prentice Hall 2002 Larman. Applying Patterns Hall. 2002.
Bibliografa
UML:
Infraestructura y Superestructura:
http://www.omg.org/technology/documents/formal/uml.htm
Actividades Acciones: A ti id d y A i
Conrad Bock: UML 2 Activity and Action Models, in Journal of Object Technology, vol. 2, no. 4, July-August 2003, pp. 43-53. http://www.jot.fm/issues/issue_2003_07/column3 Conrad Bock: UML 2 Activity and Action Models Part 2: Actions , Actions, in Journal of Object Technology, vol. 2, no. 5, pp. 41 4156. http://www.jot.fm/issues/issue_2003_09/column4 UML 2 Activity and Action Models Part 3: Control Nodes, in Journal of Object Technology, vol 2 no 6 pp 7-23 Technology vol. 2, no. 6, pp. 7-23. http://www.jot.fm/issues/issue_2003_11/column1 Conrad Bock: UML 2 Activity and Action Models Part 4: Object Nodes, in Journal of Object Technology, vol. 3 no. 1 pp. 27 N d i J l f Obj t T h l l 3, 1, 27140 41. http://www.jot.fm/issues/issue_2004_01/column3
139
Bibliografa: Statecharts
Harel D On Visual Formalisms Communications of the D. Formalisms. ACM. Vol 31, No. 5. Pp.: 514-530. Mayo 1988. Harel D., Naamad A. The STATEMATE Semantics of Statecharts. ACM Transactions on Software Engineering and Methodology Vol 5 No 4 Oct 1996 Methodology, Vol. 5, No. 4, Oct. 1996, pp.: 293-233. David Harel D id H l and E d Eran G Gery. E Executable object bl bj modeling with statecharts. IEEE Computer, pages 31-42, 1997.
Bibliografa
OCL
The Object Constraint Language 2nd Edition. Getting your Models Ready for MDA. Warmer, Kleppe Addison Wesley MDA Warmer Kleppe. Addison-Wesley. 2003. Especificacin de OCL 2.0: http://www.omg.org/docs/ptc/0310-14.pdf
141
142
Bibliografa
Perfiles UML.
Lista de perfiles estndar: p
http://www.omg.org/technology/documents/profile_catalog.htm#UML_for_EDOC
Lecturas Recomendadas
D. Thomas. UML U ifi d or U i D Th Unified Universal l Modeling Language?. Journal of Object Oriented Technology. V l 2 (1) J Oi t d T h l Vol (1), JanuaryFebruary 2003. S. Anonsen. Experiences in Modeling for a Experiences Domain Specific Language. UML04 Satelite Activities, LNCS 3297, pp.: 187187 197, Springer (2005).
143 144