View
221
Download
0
Embed Size (px)
Citation preview
8/18/2019 UML Clase 02
1/108
UML Básico
Leandro Yalet
8/18/2019 UML Clase 02
2/108
Módulo III
Modelado Estático
8/18/2019 UML Clase 02
3/108
INTRODUCCIÓN
MODELADO FUNCIONAL
MODELADO ESTÁTICO
Diagrama de Clases
Diagrama de Objetos
Diagrama de Componentes
Diagrama de Despliegue
Diagrama de Estructura Paquete
MODELADO DINÁMICO+
+
+
+
+
+
--
8/18/2019 UML Clase 02
4/108
Diagrama de Componentes
8/18/2019 UML Clase 02
5/108
Diagrama de Componentes
•Definición:
es un diagrama que muestra la organización y lasdependencias entre tipos de componentes.
Es un tipo especial de Diagrama de Clases que se centra en
los componentes de un sistema.
Contiene un nombre y un contenido gráfico que es unaproyección del modelo.
8/18/2019 UML Clase 02
6/108
Diagrama de Componentes: contenido
•Componentes
•Interfaces
•Relaciones (dependencia, generalización, asociación yrealización)
• Pueden contener: notas y restricciones.
8/18/2019 UML Clase 02
7/108
•¿Qué es un componente?Es una parte física reemplazable de un sistema queempaqueta su implementación.
•Es conforme a un conjunto de interfaces a las queproporciona su realización.
•Ejemplos
Bibliotecas de código de objeto Ejecutables Enterprise Java Beans
Tablas Archivos Documentos
Diagrama de Componentes: componente
8/18/2019 UML Clase 02
8/108
Nombre: nombre simple o nombre de camino. Puede
contener extensiones (como java y dll). Adornos: valores etiquetados, compartimientos
adicionales para mostrar los detalles.
• Estereotipos: executable, library, table, file, document
Componente: notación
NombreComponente UML 1.5UML 2.0
NombreComponente
NombreComponente
8/18/2019 UML Clase 02
9/108
Componente: ejemplos
calculadora.java
procesadorTextos.exe
RealizaProcesadorDeTextosVerificadorOrtográfico
ContadorPalabras
Herramientas::calculadora.java{version=2.0}
Nombres simples
Componentes extendidos
cmp Ejemplos
8/18/2019 UML Clase 02
10/108
Componente: relaciones
•Un componente es la implementación física de unconjunto de otros elementos (clases, colaboraciones)
•Ejemplo
procesadorTextos.exe
ProcesadorDeTextos VerificadorOrtografico ContadorPalabras
componente
clases
cmp Relaciones
8/18/2019 UML Clase 02
11/108
Componentes y Clases
•Diferencias:
Las clases representan abstracciones lógicas, los
componentes representan elementos físicos del mundo delos bits.
Los componentes representan el empaquetamiento físico
de clases que, por el contrario, son lógicos y seencuentran a distinto nivel de abstracción.
Las clases pueden tener atributos y operaciones
directamente accesibles. En general, los componentessólo tienen operaciones que sólo son accesibles a travésde sus interfaces.
8/18/2019 UML Clase 02
12/108
Componentes e interfaces
•Los servicios de un componente normalmente sóloestán disponibles a través de sus interfaces.
•Ejemplos
imagen.java componente.java
imagen.java componente.java
IObservadorImagen
abortar: interror: int
actualizarImagen():boolean
IObservadorImagen
dependencia realización
interfaz
cmp Interafaz Icónica
cmp Interfaz Expandida
8/18/2019 UML Clase 02
13/108
Tipos de Componentes
•Componentes de Despliegue:– Son los necesarios y suficientes para formar un sistema ejecutable
(dll, exe)
•Componentes producto del trabajo:– Son los productos que quedan al final del proceso de desarrollo
(código fuente, archivos de datos)
•Componentes de ejecución:– Se crean como consecuencia de un sistema en ejecución (objeto
COM+, el cual se instancia a partir de una DLL)
8/18/2019 UML Clase 02
14/108
Diagrama de Componentes
•Ejemplo
find.exefind.html
index.html
dbacs.dll
nateng.dll
página
ejecutable
biblioteca
cmp Ejemplo
8/18/2019 UML Clase 02
15/108
INTRODUCCIÓN
MODELADO FUNCIONAL
MODELADO ESTÁTICO
Diagrama de Clases
Diagrama de Objetos
Diagrama de Componentes
Diagrama de Despliegue
Diagrama de Estructura Paquete
MODELADO DINÁMICO++
++
++
--
8/18/2019 UML Clase 02
16/108
Diagrama de Despliegue
8/18/2019 UML Clase 02
17/108
Diagrama de Despliegue
•Definición:
Es un diagrama que muestra la configuración de
los nodos que participan en la ejecución y de loscomponentes que residen en ellos.
8/18/2019 UML Clase 02
18/108
Diagrama de Despliegue: contenido
•Nodos
•Conexiones
• Pueden contener:
Notas y restricciones.
Componentes, cada uno de los cuales debe residir en algúnnodo.
Paquetes o subsistemas, los cuales se utilizan para agruparelementos del modelo en bloques más grandes.
8/18/2019 UML Clase 02
19/108
Diagrama de Despliegue: nodo
•¿Qué es un Nodo?
Es un elemento físico que existe en tiempo de ejecución yrepresenta un recurso computacional que, generalmente,
tiene alguna memoria y, a menudo, capacidad deprocesamiento.
8/18/2019 UML Clase 02
20/108
Nodo: notación
Nombre: nombre simple o nombre de camino.
Adornos: valores etiquetados, compartimientosadicionales para mostrar los detalles.
Servidor_egb
servidor::copiaDeSeguridad
{sóloAdministraciónRemota}
Ventas
Despliega
pos.execontactos.exe
nombres simples
Nodos extendidos
8/18/2019 UML Clase 02
21/108
Componentes y Nodos
•Diferencias
Los componentes son los elementos que participan en laejecución de un sistema; los nodos son los elementos dondese ejecutan esos componentes.
Los componentes representan el empaquetamiento físico delos elementos lógicos; los nodos representan el desplieguefísico de componentes.
8/18/2019 UML Clase 02
22/108
Diagrama de Despliegue
•Relación de Dependencia: sirve para mostrarexplícitamente el componente que despliega un nodo.
•Ejemplo
contactos.exe
ventas
pos.exe
nodo
componentes
dd Relacion de Dependencia
8/18/2019 UML Clase 02
23/108
•Relación de Asociación: sirve para representar unaconexión física entre nodos.
•Ejemplo
Diagrama de Despliegue: conexiones
terminal
consola
servidor unidad RAID
conexiones
dd Conexiones entre Componentes
8/18/2019 UML Clase 02
24/108
Diagrama de Despliegue: ejemplo
Modelado de un sistema cliente/servidor
conexiones
clientes servidores
2..*
Servidor de Cache
Despliegahttp.exerting.exe
4..*
Servidor
Despliegadbadmin.exelogexc.exe
consola
terminal
dd Ejemplo General
8/18/2019 UML Clase 02
25/108
Módulo IV
Modelado Dinámico
8/18/2019 UML Clase 02
26/108
INTRODUCCIÓN
MODELADO FUNCIONAL
MODELADO ESTÁTICO
MODELADO DINÁMICO
Diagramas de Interacción
• Diagrama de Secuencia
• Diagrama de Comunicación
Diagrama de Actividades
Diagrama de Máquina de Estados
++
++
++
--
8/18/2019 UML Clase 02
27/108
Diagramas de Interacción
Diagrama de Secuencia
8/18/2019 UML Clase 02
28/108
Diagrama de Secuencia
•Definición:Un Diagrama de Secuencia destaca la ordenación temporalde los mensajes.
•Notación:Se encierra en un rectángulo y se le agrega una etiqueta consd seguido del nombre.
sd nombreDiag
8/18/2019 UML Clase 02
29/108
Diagrama de Secuencia
•Cada objeto cuenta con una línea de vida, que muestrael tiempo de vida del mismo.
•La activación de un objeto representa la ejecución deuna operación que realiza el mismo.
•Notación:
objetoA:ClaseAobjeto
tiempo de vida
activación
M j
8/18/2019 UML Clase 02
30/108
Mensajes
•Tipos de mensajes:
Mensaje síncrono
Mensaje asíncronoMensaje directo
Mensaje respuesta / resultado
•Sintaxis:
[Número de secuencia] [condición] * [expresión iteración] [valor deretorno :=] nombre del mensaje (parámetros)
M j
8/18/2019 UML Clase 02
31/108
Mensajes
objetoA:ClaseA :ClaseB
Invocación Local
Mensaje Síncrono
Mensaje Asíncrono
Mensaje Respuesta
sd tiposDeMensajes
F t lt ti
8/18/2019 UML Clase 02
32/108
Fragmento: alternativa
•Notación: se encierra en un rectángulo ( frame), se leagrega una etiqueta con el operador alt y se colocanlas guardas.
•Ejemplo
[guard 1]
sd NombreDiag
:Objeto1 :Objeto2
Mensaje4
alt
Mensaje3
Mensaje2
Mensaje1
[guard 2]
Fragmento: bucle
8/18/2019 UML Clase 02
33/108
•Notación: se encierra en un rectángulo ( frame), se leagrega una etiqueta con el operador loop y la cantidadde iteraciones (opcional).
•Ejemplo
Fragmento: bucle
:Objeto1 :Objeto2
Mensaje1
Mensaje2
Mensaje3Mensaje4
Loop 1..7
sd NombreDiag
Fragmento: referencia
8/18/2019 UML Clase 02
34/108
Fragmento: referencia
•Notación: se coloca un rectángulo ( frame) con laetiqueta del operador ref , y el nombre de lainteracción se coloca en el centro con loscorrespondientes parámetros (opcional).
•Ejemplo
sd NombreDiag:Objeto1 :Objeto2
Mensaje2
Mensaje1
ref
NombreInteraccion(argumento,…)
Diagrama de Secuencia: construcción
8/18/2019 UML Clase 02
35/108
Diagrama de Secuencia: construcción
•Primer Paso: Se colocan los objetos que participan enla interacción en la parte superior del diagrama.
•Ejemplo
a:AyudaPlanificación
:Cliente
sd planificación
Diagrama de Secuencia: construcción
8/18/2019 UML Clase 02
36/108
Diagrama de Secuencia: construcción
•Segundo Paso: se colocan los mensajes que estosobjetos envían y reciben, en orden de sucesión en eltiempo, desde arriba hasta abajo.
•Ejemplo
a:AyudaPlanificación
:Cliente
:AgenteBilletes
notificar()
objeto
establecerItinerario() calcularRuta()
envío destrucción
retorno
creación
llamada
llamada (invocación local)
sd planificación
Ejemplo
8/18/2019 UML Clase 02
37/108
Acciones del actor | Respuesta del sistema
Curso Normal:
1- Tomar un curso2- Obtener pre-requisitos del curso3- Validar condición del estudiante
4- Validar estado del curso5- Guardar la inscripción
Cursos Alternativos:
3.1- El estudiante no cumple los pre-requisitos Rechazar4.1- El curso esta cerrado Rechazar
Ejemplo
•Caso de Uso: tomar un curso.
Ejemplo
8/18/2019 UML Clase 02
38/108
Ejemplo
Estudiante
:Registrador :AdmDeEstudiantes :AdmDeCursos
tomarUnCurso(e,c)
p:= obtenerPreRequisitos(c)
ok:= validarCondicEstudiante(e,p)
[ok2]efectivizarInscripcion(e,c)
ok2:= validarEstadoCurso (c)
[not ok2]informarRechazo(mensaje)
sd Tomarun Curso
alt
[not ok]
[ok]
informarRechazo(mensaje)
8/18/2019 UML Clase 02
39/108
Diagramas de Interacción
Diagramas de Comunicación
Diagrama de Comunicación
8/18/2019 UML Clase 02
40/108
Diagrama de Comunicación
•Definición:
Un Diagrama de Comunicación destaca la
organización estructural de los objetosparticipantes y el envío de mensajes.
sd nombreDiag
Enlaces
8/18/2019 UML Clase 02
41/108
Enlaces
•Un enlace es una conexión semántica entre objetos.
•Ejemplos
Persona
+calcularCompensación(s:Sueldo)
+asignar(d:Departamento
Empresa1..*
empleado
*
patrón
p:Persona :Empresa
clase
clase asociación
operaciones
enlace objeto connombre
objetoanónimo
Mensajes
8/18/2019 UML Clase 02
42/108
Me sajes
•Los objetos se relacionan mediante enlaces através de los cuales se envían mensajes.
•Sintaxis:
Número de secuencia [condición] *[expresión iteración]: [valor de retorno :=]nombre del mensaje ([parámetros])
•Notación:
:ObjetoClaseA :ObjetoClaseB1: mensaje()
8/18/2019 UML Clase 02
43/108
Mensajes condicionales
8/18/2019 UML Clase 02
44/108
j
•Un mensaje condicional es aquel que se envía si laevaluación de la cláusula es verdadera.
•Notación:
:ObjetoClaseA :ObjetoClaseB1[condición]: mensaje()
Si condición es verdadera,se envía el mensaje.
Condiciones mutuamente excluyentes
8/18/2019 UML Clase 02
45/108
y
•Se debe utilizar una letra diferente para cada posiblecamino.
•Notación:
objetoA:ClaseA :ClaseB
:ClaseC
1a[condición1]: mensaje2()
:ClaseD
:ClaseE
mensajeInicial()
1b.1: mensaje5()
1b[no condicion1]: mensaje4()
1a.1: mensaje3()2: mensaje6()
1a y 1b son caminos condicionalesmutuamente exclusivos.
sd example
Iteración o bucle
8/18/2019 UML Clase 02
46/108
•Sintaxis:* [expresión-iteración ] mensaje
•Ejemplo:
v:Vendedor :LíneaProducto1 *[1..8]: verificarLínea()
Iteración sobre una colección
8/18/2019 UML Clase 02
47/108
•Los multiobjetos se utilizan para denotar un conjuntode instancias -colección-.
•Ejemplo:
v:Venta :LíneaDeVenta1 * : st::= getSubtotal()*
Estos dos símbolos “*” utilizados conjuntamente
implican iteración sobre el multiobjeto y el envíodel mensaje getSubtotal() a cada uno de los miembros.
Diagrama de Comunicación: construcción
8/18/2019 UML Clase 02
48/108
•Primer Paso: se colocan los objetos que participan enla comunicación como nodos del grafo.
•Ejemplo
:Estudiante :Registrador
:AdmDeEstudiantes :AdmDeCursos
sd inscripción
Diagrama de Comunicación: construcción
8/18/2019 UML Clase 02
49/108
•Segundo paso: se representan los enlaces queconectan esos objetos como arcos del grafo.
•Ejemplo
:Estudiante :Registrador
:AdmDeEstudiantes :AdmDeCursos
sd inscripción
Diagrama de Comunicación: construcción
8/18/2019 UML Clase 02
50/108
•Tercer Paso: se adornan los enlaces con los mensajesque envían y reciben los objetos.
•Ejemplo
:Estudiante :Registrador
:AdmDeEstudiantes :AdmDeCursos
1: tomarUnCurso(e,c)
1.1: p:=obtenerPreRequisitos(c)1.2: ok:=validarCondicEstudiante(e,p)
1. 3a: [ok] efectivizarInscripcion(e,c)
1.3b: [not ok] informarRechazo(mensaje)
enlaces
mensajes
objetos
sd inscripción
Secuencia Vs. Comunicación
8/18/2019 UML Clase 02
51/108
•Los Diagramas de Secuencia tienen dos característicasque los distinguen de los Diagramas de Comunicación:
Línea de vida: la mayoría de los objetos existirán mientras dure lainteracción.
Caja de activación: representa el período de tiempo durante elcual un objeto ejecuta una acción.
Comunicación Vs. Secuencia
8/18/2019 UML Clase 02
52/108
•Los Diagramas de Comunicación tienen doscaracterísticas que los distinguen de los Diagramas deSecuencia:
Camino: sirve para indicar cómo se enlaza un objeto a otro.
Número de Secuencia: para indicar la ordenación temporal de unmensaje, se precede de un número, que se incrementasecuencialmente por cada nuevo mensaje en el flujo de control.
8/18/2019 UML Clase 02
53/108
• Momento de ejercitación
Ejercicio Nº 1
8/18/2019 UML Clase 02
54/108
•Marque las respuestas correctas:
En un Diagrama de Secuencia genérico, ¿Cómo serepresentaría el control de flujo implícito en una instrucción
condicional?
Se coloca la condición entre paréntesis
Se coloca la condición entre corchetes
Se coloca la condición como estereotipo
Se coloca la condición entre llaves
Ejercicio Nº 2
8/18/2019 UML Clase 02
55/108
•¿A qué conceptos hacen referencia las siguientesafirmaciones sobre tipos de mensajes?
Cuando un objeto envía un mensaje, el objeto aguarda unarespuesta antes de continuar.
Cuando un objeto envía un mensaje, el objeto no aguarda unarespuesta para continuar.
Mensaje asíncrono Mensaje síncrono
Mensaje asíncrono Mensaje síncrono
Ejercicio Nº 3
8/18/2019 UML Clase 02
56/108
Espectador:Vendedor :Administrador
consultarRep(nombreRep)
buscar(nombreRep)
consultarHorarioRep(Rep)
horarios:=BuscarHorario(Rep)
mostrarHorarios(horarios)
:Representación
sd Ejercicio
•Dado el siguiente Diagrama sobre “Agregar Representación”,marque los errores y complete en caso de ser necesario:
Rep:=buscarRep
(nombreRep)
Ejercicio Nº 4
8/18/2019 UML Clase 02
57/108
•En el siguiente Diagrama, completar en caso de sernecesario y marcar los errores:
Espectador:Vendedor
Representación
consultarRep(nombreRep)Rep:=buscarRep(Rep)
buscarRep(nombreRep)
consultarHorarioRep(Rep)
horarios:= buscarRep(Rep)
mostrarHorarios(horarios):Administrador
sd teatro
Ejercicio Nº 5
8/18/2019 UML Clase 02
58/108
•Indicar si la siguiente definición es verdadera o falsa:
La “equivalencia semántica” entre un Diagrama de Secuencia yun Diagrama de Comunicación significa que muestran la misma
información, pero no podrá convertir uno en otro.
V F
8/18/2019 UML Clase 02
59/108
INTRODUCCIÓN
MODELADO FUNCIONAL
MODELADO ESTÁTICO
MODELADO DINÁMICO
Diagrama de Interacción
Diagrama de Actividades Diagrama de Máquina de Estados
++
++
++
--
8/18/2019 UML Clase 02
60/108
Diagrama de Actividades
8/18/2019 UML Clase 02
61/108
Diagrama de Actividades: ámbito
8/18/2019 UML Clase 02
62/108
•Similitud con los Diagramas de flujos en programación(pasos – puntos de decisión - bifurcaciones).
•Cubren la vista dinámica de un sistema.
•Importantes en el modelado del funcionamiento de unsistema.
Diagrama de Actividades
8/18/2019 UML Clase 02
63/108
•¿Qué es una actividad?Es una ejecución no atómica en curso, dentro de una Máquina deEstados.
•Un Diagrama de Actividad representa el comportamientomediante un modelo de flujo de datos y flujo de control.
Relación con Diagramas de Interacción
8/18/2019 UML Clase 02
64/108
•Un Diagrama de Actividad muestra el flujo de control entredistintas actividades, cumpliendo una finalidad específica.
•Destaca la actividad a lo largo del tiempo.
•Se lo puede pensar como un Diagrama de Interacción, con
algunas diferencias:
Un Diagrama de Interacción muestra objetos que se envíanmensajes.
Un Diagrama de Actividad muestra las operaciones que pasanentre los objetos.
Diagrama de Actividades
8/18/2019 UML Clase 02
65/108
•Las actividades producen finalmente una acción.
•¿Qué es una acción?
Es una especificación de una unidad fundamental decomportamiento que representa una transformación oprocesamiento.
Las acciones están compuestas de cálculos atómicos ejecutablesque producen un cambio de estado o la devolución de un valor.
Diagrama de Actividades
8/18/2019 UML Clase 02
66/108
ACCIONES
Llamadas a otras operaciones.
Creación de objetos.
Envío de señales.
Destrucción de objetos.
Simples cálculos.
Diagrama de Actividades
8/18/2019 UML Clase 02
67/108
estados
transiciones
objetos
de acción
de actividad
• Un Diagrama de Actividades se compone:
nombre
nombreObjeto :NombreClase
Diagrama de Actividades
8/18/2019 UML Clase 02
68/108
•Estado de acción:
Es un estado atómico.
Pueden representar la evaluación de una expresión o invocar
una operación sobre un objeto, incluso crearlo o destruirlo.
Diagrama de Actividades
8/18/2019 UML Clase 02
69/108
•Ejemplos de estados de acción:
Eliminar mensaje
Monto total := costoUnitario x cantidad ;
Expresión
Acción simple
Diagrama de Actividades
8/18/2019 UML Clase 02
70/108
•Estado de actividad:
No es un estado atómico.
Puede ser visto como un elemento compuesto que sedescompone en estados de actividad y de acción.
Puede tener acciones de entrada y salida (entry/exit) yespecificaciones de submáquinas.
Diagrama de Actividades
8/18/2019 UML Clase 02
71/108
• Ejemplos de estados de actividad:
Procesar factura ()
Preparar construcción ()
entry / bloquearPerimetro()
Acción de entrada
Submáquina
Diagrama de Actividades
8/18/2019 UML Clase 02
72/108
•Transición de una actividad:
Actividad 1
Actividad 2
punto inicial
punto final
transición sin disparador
nombre de la actividad
act Transición
Diagrama de Actividades
8/18/2019 UML Clase 02
73/108
Elegir terreno
Contratar arquitecto
Planificar obra
Terminar construcción
estado inicial
estado final
estado de acción
act Ejemplo
Diagrama de Actividades
8/18/2019 UML Clase 02
74/108
•Acción Vs. Actividad
Sonando
do / sonar_alarma()
detección de un intruso / llamar a la policía ()
reiniciar
evento acción
transición
actividad
evento transición
VigilandoVigilandoSonando
do / sonar_alarma()
Diagrama de Actividades
8/18/2019 UML Clase 02
75/108
•Elementos de interconexión:
•Bifurcaciones
•Divisiones
•Uniones•Swimlanes
Diagrama de Actividades
8/18/2019 UML Clase 02
76/108
•Dos formas de mostrar una decisión
Despertar
Desayunar Volver a dormir
[ inapetente ][ hambriento ]
Expresión de guarda
act Decisiones
Diagrama de Actividades
act Bifurcación
8/18/2019 UML Clase 02
77/108
Despertar
Desayunar Volver a dormir
[ inapetente ][ hambriento ]
Expresiónde guarda Bifurcación
Diagrama de Actividadesact Ejemplo
8/18/2019 UML Clase 02
78/108
Llamar al cliente y concertar una cita
Preparar una sala de conferencias Preparar una laptop
Junta con el cliente
Enviar un memorandum
Crear propuesta
Enviar la propuesta al cliente
[ no se plantea un problema ]
[ cita local ] [ cita externa ]
Ver el Diagrama deActividades
para crear un documento[se plantea un problema]
Diagrama de Actividades: fork y join
act Fork y Join
8/18/2019 UML Clase 02
79/108
Fin de la jornada
Controlar recaudación Cerrar caja
Fork (división)
Join (unión)
y
8/18/2019 UML Clase 02
80/108
Diagrama de Actividades: ejemplo general
act Ejemplo General
8/18/2019 UML Clase 02
81/108
Contratar actores
Armar escenografía
Contratar música
Publicar obra
Vender entradas
Realizar ensayos
Hacer vestuario
Confeccionar obra teatral
Programar obra
Representar la obra de teatro
Ensayar obra completa
Diseñar iluminación
act Ejemplo General
Marcos de responsabilidades
8/18/2019 UML Clase 02
82/108
Llamar al cliente yconcertar una cita
Preparar una salade conferencias
Preparar una laptop
Junta con el cliente
Enviar un memorandum
Crear propuesta
Enviar la propuesta al cliente
[no se plantea un problema]
[ cita local ]
[ cita externa ]
Ver el Diagrama deActividades
para crear un documento
Vendedor Consultor Técnico
[se plantea un problema]
Marcos de responsabilidades
•Notación alternativa
8/18/2019 UML Clase 02
83/108
(Consultor)Crear propuesta
(Vendedor)Llamar al cliente yconcertar una cita
(Consultor)Preparar una laptop
(Vendedor)Junta con el cliente
(Vendedor)Enviar un memorandum
(Consultor)Enviar la propuesta al cliente
[ no se plantea un problema ]
[ cita local ][ cita externa ]
Ver el D. de actividadespara crear un documento
(Técnico)Preparar una salade conferencias
act Ejemplo
•Diagramas híbridos:
Diagrama de Actividades
8/18/2019 UML Clase 02
84/108
g
:Calculadora
8/18/2019 UML Clase 02
85/108
INTRODUCCIÓN
MODELADO FUNCIONAL
MODELADO ESTÁTICO
MODELADO DINÁMICO
Diagrama de Interacción
Diagrama de Actividades
Diagrama de Máquina de Estados
++
++
++
--
8/18/2019 UML Clase 02
86/108
Diagrama de Máquina de Estados
Modelado Dinámico
8/18/2019 UML Clase 02
87/108
•Una manera de caracterizar un cambio en un sistema esdecir que los objetos que lo componen modificaron su
estado como respuesta a los sucesos y al tiempo.
•Una Máquina de Estados es un nuevo elemento de
comportamiento que nos mostrará la forma en que laspartes de un modelo UML cambian con el tiempo.
•Una Máquina de Estados consta de estados, transiciones,
eventos y actividades.
Modelado de Máquinas de estado
8/18/2019 UML Clase 02
88/108
•Un estado es una condición en la que puede estar unobjeto en algún momento de su ciclo de vida, duranteun cierto tiempo.
•Los Diagramas de Máquina de Estados:
Son útiles para modelar la vida de un objeto. Describen los estados por los que puede pasar un objeto
durante su ciclo de vida y el comportamiento en esosestados junto con los eventos que causan los cambios de
estado.
¿Cuándo usar Diagramas de Máquinas de estados ?
8/18/2019 UML Clase 02
89/108
•Un Diagrama de Máquina de Estados muestra una Máquinade Estados, destacando el flujo de control entre estados dela misma.
•Los Diagramas de Máquina de Estados pueden asociarse a:
Clases Casos de Uso Sistemas completos
para visualizar, especificar, construir y documentar ladinámica de un objeto individual.
Diagrama de Máquinas de Estados
Má i d E t d d :
8/18/2019 UML Clase 02
90/108
Las Máquinas de Estados pueden estar compuestas por:
Estados
estados simples
estados compuestos
Transiciones
eventos acciones
Nombre_del_estado
NombreSubestado
NombreSubestado
NombreEstado
Estado:
Diagrama de Máquinas de Estados
8/18/2019 UML Clase 02
91/108
Estado:describe un período de tiempo durante la vida de un objeto de
una clase.
• Mientras se está en un determinado estado, el objeto
puede realizar algunas (o todas) de las siguientes
acciones:
Realizar una actividad.
Esperar un evento.
Satisfacer una o más condiciones.
Nombre del estado
Elementos de Máquinas de estado
8/18/2019 UML Clase 02
92/108
Estado inicial
Estado final
H
Estado de historia
Estado secuencial compuesto Estado concurrente compuesto
evento1 / nombre de actividad interna
evento2 / nombre de actividad interna
exit / nombre de actividad al salirenter / nombre de actividad al entrardo / nombre de actividad a realizar
Transiciones internas
Nombre del estado
Variables de estado
8/18/2019 UML Clase 02
93/108
Evento:
Diagrama de Máquinas de Estados
8/18/2019 UML Clase 02
94/108
Evento:es la especificación de un acontecimiento significativo.
Enviando EnviadoconfirmaciónEnvío
stm Transiciones
Acción:
Diagrama de Máquinas de Estados
8/18/2019 UML Clase 02
95/108
Acción:es una computación que produce un cambio de estado en
el modelo o la devolución de un valor.
Enviando Enviado
confirmaciónEnvío / registraNºEmpaque( )
stm Transiciones
Diagrama de Máquinas de Estados
Estado compuesto autotransiciónEstado simple
evento
8/18/2019 UML Clase 02
96/108
reservar comprar
cancelaciónDeReserva
cantidad_dias > 5
cambiar
comprar
Estado final transición
Estado compuesto autotransición
[]/
Estado inicial
evento
8/18/2019 UML Clase 02
97/108
• Momento de ejercitación
Ejercicio Nº 1
• Indique si las siguientes afirmaciones son Verdaderas o Falsas:
8/18/2019 UML Clase 02
98/108
• Indique si las siguientes afirmaciones son Verdaderas o Falsas:
Un Diagrama de Actividad muestra el flujo de actividades y los objetos querealizan dichas actividades.
Un Diagrama de Actividad es una forma especial de Máquina de Estados,prevista para modelar cómputos y flujos de trabajo.
Un marco de responsabilidades, en un Diagrama de Actividad, es un segmentoque muestra las actividades que realiza algún rol en particular.
FV
V F
FV
Ejercicio N° 2
•Marque cuáles son las posibles formas de representarun punto de decisión:
8/18/2019 UML Clase 02
99/108
un punto de decisión:
Mostrando las bifurcaciones mediante una barra de
sincronización.
Mostrando un rombo con bifurcaciones provenientes de él.
Mostrando las bifurcaciones provenientes directamente de unaactividad.
Mostrando una flecha de realización asociada a una nota,indicando la condición que asocia el camino hacia lasiguiente actividad.
•Supongamos que el Gerente del teatro desea consultar
Ejercicio N° 3
8/18/2019 UML Clase 02
100/108
•Supongamos que el Gerente del teatro desea consultarinformación sobre una representación específica, marcarposibles errores en el siguiente diagrama que lo intenta
modelar:
Construir el diagrama de actividades a partir del siguiente dominio:
Ejercicio Nº 4
8/18/2019 UML Clase 02
101/108
Consideremos el flujo de trabajo asociado a la construcción de una casa:
En 1º lugar, se seleccionará un lugar de construcción (terreno).
Se necesitará contratar a un arquitecto para diseñar la casa.
Luego de llegar a acordar un plano específico para construir, el constructor consultarálas ofertas para establecer el precio de casa.
Una vez acordados el precio y el plano, se puede comenzar la construcción.
Luego, se obtienen los permisos, se adecua el terreno, se echan cimientos, se armanlas estructuras, …. hasta que todo queda hecho.
Finalmente se entregan las llaves y un certificado de vivienda.
El propietario toma posesión de la casa.
Ejercicio Nº 4 (cont.)
C t t it t
8/18/2019 UML Clase 02
102/108
Elegir terreno
Contratar arquitecto
Desarrollar plano
Ofertar plano
Realizar trabajo en el terreno
Hacer trabajo comercial ()
Terminar construcción
[ oferta de plano No aceptado ]
[ en otro caso]
: CertificadoDeVivienda
[terminado]
Ejercicio Nº 5
Marque la respuesta correcta a la siguiente pregunta:
8/18/2019 UML Clase 02
103/108
q p g p g
¿De qué forma difiere un Diagrama de Máquina de Estados de
un Diagrama de Clases?
Un Diagrama de Máquina de Estados muestra la interacción entreobjetos de un sistema, mientras que un Diagrama de Clases modela unsistema o parte de él.
Un Diagrama de Máquina de Estados modela los estados de un soloobjeto, mientras que un Diagrama de Clases muestra elcomportamiento secuencial de los objetos del sistema.
Un Diagrama de Máquina de Estados modela los estados de un soloobjeto, mientras que un Diagrama de Clases modela un sistema o parte
de él.
Ejercicio Nº 6
•Indique si las siguientes afirmaciones son verdaderas ofalsas:
8/18/2019 UML Clase 02
104/108
Un estado simple tiene un conjunto de transiciones y posiblementeacciones de entrada y salida.
Una descomposición en subestados disjuntos es un tipo de especializaciónde un estado.
Un estado simple es un estado que se ha descompuesto en subestados
secuenciales o subestados concurrentes.
V F
V F
V F
Ejercicio Nº 7
•¿A qué conceptos hacen referencia las siguientes
8/18/2019 UML Clase 02
105/108
¿ q p gafirmaciones sobre los “subestados”?
Los subestados se dan uno después del otro.
Los subestados suceden al mismo tiempo.
Subestado Concurrente Subestado Secuencial
Subestado Concurrente Subestado Secuencial
8/18/2019 UML Clase 02
106/108
Fin del Curso
Case Tools
8/18/2019 UML Clase 02
107/108
Rational Rose 2001 Enterprise Edition
Together version 5.5
Poseidon
ArgoUML
Visio 2000
SoftModeler Enterprise Edition
Rational Software Modeler
Bibliografía
The Unified Modeling Language User Guide - G. Booch, J. Rumbaugh, and I.Jacobson - Addison-Wesley.
8/18/2019 UML Clase 02
108/108
y
The Unified Modeling Language Reference Manual - G. Booch, J. Rumbaugh, andI. Jacobson - Addison-Wesley
Teach Yourself UML in 24 Hours - Joseph Schmuller
UML Distilled - Martin Fowler
UML for Java Programmers - Robert Cecil Martin
OMG Unified Modeling Language Specification (Version 1.4 September 2001)
Lenguaje UML 2 – Manuel Imaz
Applying UML and Patterns – Craig Larman
UML 2 for Dummies