Professional Documents
Culture Documents
Leandro Yalet
lyalet@lifia.info.unlp.edu.ar
Mdulo III
Modelado Esttico
INTRODUCCIN
MODELADO FUNCIONAL
MODELADO ESTTICO
Diagrama de Clases
Diagrama de Objetos
Diagrama de Componentes
Diagrama de Despliegue
Diagrama de Estructura Paquete
MODELADO DINMICO
Diagrama de Componentes
Diagrama de Componentes
Definicin:
es un diagrama que muestra la organizacin y las
dependencias 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 grfico que es una
proyeccin del modelo.
Componentes
Interfaces
Relaciones (dependencia, generalizacin, asociacin y
realizacin)
Pueden contener:
notas y restricciones.
Componente: notacin
NombreComponente
UML 2.0
NombreComponente
UML 1.5
<<component>>
NombreComponente
Componente: ejemplos
cmp Ejemplos
Nombres simples
procesadorTextos.exe
calculadora.java
Realiza
ProcesadorDeTextos
VerificadorOrtogrfico
ContadorPalabras
Componentes extendidos
Herramientas::calculadora.java
{version=2.0}
Componente: relaciones
Un componente es la implementacin fsica de un
conjunto de otros elementos (clases, colaboraciones)
Ejemplo
cmp Relaciones
componente
procesadorTextos.exe
ProcesadorDeTextos
VerificadorOrtografico
clases
ContadorPalabras
Componentes y Clases
Diferencias:
Las clases representan abstracciones lgicas, los
componentes representan elementos fsicos del mundo de
los bits.
Los componentes representan el empaquetamiento fsico
de clases que, por el contrario, son lgicos y se
encuentran a distinto nivel de abstraccin.
Las clases pueden tener atributos y operaciones
directamente accesibles. En general, los componentes
slo tienen operaciones que slo son accesibles a travs
de sus interfaces.
Componentes e interfaces
Los servicios de un componente normalmente slo
estn disponibles a travs de sus interfaces.
Ejemplos
cmp Interafaz Icnica
imagen.java
componente.java
IObservadorImagen
interfaz
dependencia
realizacin
<<interface>>
IObservadorImagen
imagen.java
abortar: int
error: int
actualizarImagen():boolean
componente.java
Tipos de Componentes
Componentes de Despliegue:
Son los necesarios y suficientes para formar un sistema ejecutable
(dll, exe)
Componentes de ejecucin:
Se crean como consecuencia de un sistema en ejecucin (objeto
COM+, el cual se instancia a partir de una DLL)
Diagrama de Componentes
Ejemplo
cmp Ejemplo
pgina
ejecutable
find.exe
find.html
index.html
nateng.dll
dbacs.dll
biblioteca
INTRODUCCIN
MODELADO FUNCIONAL
MODELADO ESTTICO
Diagrama de Clases
Diagrama de Objetos
Diagrama de Componentes
Diagrama de Despliegue
Diagrama de Estructura Paquete
MODELADO DINMICO
Diagrama de Despliegue
Diagrama de Despliegue
Definicin:
Es un diagrama que muestra la configuracin de
los nodos que participan en la ejecucin y de los
componentes que residen en ellos.
Nodos
Conexiones
Pueden contener:
Notas y restricciones.
Componentes, cada uno de los cuales debe residir en algn
nodo.
Paquetes o subsistemas, los cuales se utilizan para agrupar
elementos del modelo en bloques ms grandes.
Qu es un Nodo?
Es un elemento fsico que existe en tiempo de ejecucin y
representa un recurso computacional que, generalmente,
tiene alguna memoria y, a menudo, capacidad de
procesamiento.
Nodo: notacin
nombres simples
Ventas
Despliega
pos.exe
contactos.exe
Servidor_egb
servidor::copiaDeSeguridad
{sloAdministracinRemota}
Nodos extendidos
Componentes y Nodos
Diferencias
Los componentes son los elementos que participan en la
ejecucin de un sistema; los nodos son los elementos donde
se ejecutan esos componentes.
Los componentes representan el empaquetamiento fsico de
los elementos lgicos; los nodos representan el despliegue
fsico de componentes.
Diagrama de Despliegue
Relacin de Dependencia: sirve para mostrar
explcitamente el componente que despliega un nodo.
Ejemplo
dd Relacion de Dependencia
ventas
pos.exe
nodo
contactos.exe
componentes
conexiones
<<10-T Ethernet>>
terminal
servidor
<<RS-232>>
consola
unidad RAID
dd Ejemplo General
servidores
clientes
2..*
<<procesador>>
Servidor de Cache
consola
terminal
conexiones
Despliega
http.exe
rting.exe
4..*
<<procesador>>
Servidor
Despliega
dbadmin.exe
logexc.exe
Mdulo IV
Modelado Dinmico
INTRODUCCIN
MODELADO FUNCIONAL
MODELADO ESTTICO
MODELADO DINMICO
Diagramas de Interaccin
Diagrama de Secuencia
Diagrama de Comunicacin
Diagrama de Actividades
Diagrama de Mquina de Estados
Diagramas de Interaccin
Diagrama de Secuencia
Diagrama de Secuencia
Definicin:
Un Diagrama de Secuencia destaca la ordenacin temporal
de los mensajes.
Notacin:
Se encierra en un rectngulo y se le agrega una etiqueta con
sd seguido del nombre.
sd nombreDiag
Diagrama de Secuencia
Cada objeto cuenta con una lnea de vida, que muestra
el tiempo de vida del mismo.
La activacin de un objeto representa la ejecucin de
una operacin que realiza el mismo.
Notacin:
objeto
objetoA:ClaseA
tiempo de vida
activacin
Mensajes
Tipos de mensajes:
Mensaje
Mensaje
Mensaje
Mensaje
sncrono
asncrono
directo
respuesta / resultado
Sintaxis:
[Nmero de secuencia] [condicin] * [expresin iteracin] [valor de
retorno :=] nombre del mensaje (parmetros)
Mensajes
sd tiposDeMensajes
objetoA:ClaseA
:ClaseB
Mensaje Sncrono
Mensaje Respuesta
Mensaje Asncrono
Invocacin Local
Fragmento: alternativa
Notacin: se encierra en un rectngulo (frame), se le
agrega una etiqueta con el operador alt y se colocan
las guardas.
Ejemplo
sd NombreDiag
:Objeto1
alt
[guard 1]
Mensaje1
Mensaje2
Mensaje3
[guard 2]
Mensaje4
:Objeto2
Fragmento: bucle
Notacin: se encierra en un rectngulo (frame), se le
agrega una etiqueta con el operador loop y la cantidad
de iteraciones (opcional).
Ejemplo
sd NombreDiag
:Objeto1
Loop 1..7
Mensaje1
Mensaje2
Mensaje3
Mensaje4
:Objeto2
Fragmento: referencia
Notacin: se coloca un rectngulo (frame) con la
etiqueta del operador ref, y el nombre de la
interaccin se coloca en el centro con los
correspondientes parmetros (opcional).
Ejemplo
sd NombreDiag
:Objeto1
:Objeto2
Mensaje1
ref
NombreInteraccion(argumento,)
Mensaje2
sd planificacin
a:AyudaPlanificacin
:Cliente
a:AyudaPlanificacin
creacin
:Cliente
<<create>>
:AgenteBilletes
establecerItinerario()
llamada
calcularRuta()
retorno
llamada
(invocacin local)
destruccin
envo
<<destroy>>
notificar()
Ejemplo
Caso de Uso: tomar un curso.
Acciones del actor | Respuesta del sistema
Curso Normal:
1- Tomar un curso
2- Obtener pre-requisitos del curso
3- Validar condicin del estudiante
4- Validar estado del curso
5- Guardar la inscripcin
Cursos Alternativos:
3.1- El estudiante no cumple los pre-requisitos Rechazar
4.1- El curso esta cerrado Rechazar
Ejemplo
sd Tomar
un Curso
:Registrador
:AdmDeEstudiantes
Estudiante
tomarUnCurso(e,c)
p:= obtenerPreRequisitos(c)
ok:= validarCondicEstudiante(e,p)
alt
informarRechazo(mensaje)
[not ok]
ok2:= validarEstadoCurso (c)
[ok]
[not ok2]
informarRechazo(mensaje)
[ok2]efectivizarInscripcion(e,c)
:AdmDeCursos
Diagramas de Interaccin
Diagramas de Comunicacin
Diagrama de Comunicacin
Definicin:
Un Diagrama de Comunicacin destaca la
organizacin
estructural
de
los
objetos
participantes y el envo de mensajes.
sd nombreDiag
Enlaces
Un enlace es una conexin semntica entre objetos.
Ejemplos
clase
Persona
1..*
+calcularCompensacin(s:Sueldo)
+asignar(d:Departamento
clase
asociacin
*
empleado
patrn
Empresa
operaciones
p:Persona
objeto con
nombre
:Empresa
enlace
objeto
annimo
Mensajes
Los objetos se relacionan mediante enlaces a
travs de los cuales se envan mensajes.
Sintaxis:
Nmero de secuencia [condicin] *[expresin iteracin]: [valor de retorno :=]
nombre del mensaje ([parmetros])
Notacin:
1: mensaje()
:ObjetoClaseA
:ObjetoClaseB
Secuencia de Mensajes
sd example
mensajeInicial()
objetoA:ClaseA
2: mensaje4()
1: mensaje2()
3: mensaje7()
1.1: mensaje3()
:ClaseC
:ClaseF
2.1.1: mensaje6()
2.1: mensaje5()
:ClaseE
:ClaseB
:ClaseD
Mensajes condicionales
1[condicin]: mensaje()
:ObjetoClaseA
:ObjetoClaseB
Si condicin es verdadera,
se enva el mensaje.
mensajeInicial()
objetoA:ClaseA
1a[condicin1]: mensaje2()
2: mensaje6()
:ClaseB
1a.1: mensaje3()
:ClaseE
:ClaseD
1b.1: mensaje5()
:ClaseC
Iteracin o bucle
Sintaxis:
* [expresin-iteracin ] mensaje
Ejemplo:
v:Vendedor
1 *[1..8]: verificarLnea()
:LneaProducto
v:Venta
1 * : st::= getSubtotal()
*
:LneaDeVenta
:Estudiante
:AdmDeEstudiantes
:Registrador
:AdmDeCursos
que
Ejemplo
sd inscripcin
:Estudiante
:AdmDeEstudiantes
:Registrador
:AdmDeCursos
mensajes
enlaces
1: tomarUnCurso(e,c)
:Estudiante
objetos
1.2: ok:=validarCondicEstudiante(e,p)
:AdmDeEstudiantes
:Registrador
1.1: p:=obtenerPreRequisitos(c)
:AdmDeCursos
Momento de ejercitacin
Ejercicio N 1
Marque las respuestas correctas:
En un Diagrama de Secuencia genrico, Cmo se
representara el control de flujo implcito en una instruccin
condicional?
Se coloca la condicin entre parntesis
Se coloca la condicin entre corchetes
Se coloca la condicin como estereotipo
Se coloca la condicin entre llaves
Ejercicio N 2
A qu conceptos hacen referencia las siguientes
afirmaciones sobre tipos de mensajes?
Cuando un objeto enva un mensaje, el objeto aguarda una
respuesta antes de continuar.
Mensaje asncrono
Mensaje sncrono
Mensaje sncrono
Ejercicio N 3
Dado el siguiente Diagrama sobre Agregar Representacin,
marque los errores y complete en caso de ser necesario:
sd Ejercicio
:Vendedor
:Representacin
:Administrador
Espectador
consultarRep(nombreRep)
Rep:=buscarRep
(nombreRep)
buscar(nombreRep)
consultarHorarioRep(Rep)
mostrarHorarios(horarios)
horarios:=
BuscarHorario(Rep)
Ejercicio N 4
En el siguiente Diagrama, completar en caso de ser
necesario y marcar los errores:
sd teatro
consultarRep(nombreRep)
Rep:=buscarRep(Rep)
:Vendedor
buscarRep(nombreRep)
Espectador
Representacin
consultarHorarioRep(Rep)
:Administrador
mostrarHorarios(horarios)
horarios:= buscarRep(Rep)
Ejercicio N 5
Indicar si la siguiente definicin es verdadera o falsa:
La equivalencia semntica entre un Diagrama de Secuencia y
un Diagrama de Comunicacin significa que muestran la misma
informacin, pero no podr convertir uno en otro.
INTRODUCCIN
MODELADO FUNCIONAL
MODELADO ESTTICO
MODELADO DINMICO
Diagrama de Interaccin
Diagrama de Actividades
Diagrama de Mquina de Estados
Diagrama de Actividades
mostrar
los
procesos
de
negocios/
Diagrama de Actividades
Qu es una actividad?
Es una ejecucin no atmica en curso, dentro de una Mquina de
Estados.
Diagrama de Actividades
Las actividades producen finalmente una accin.
Qu es una accin?
Es una especificacin de una unidad fundamental de
comportamiento que representa una transformacin o
procesamiento.
Las acciones estn compuestas de clculos atmicos ejecutables
que producen un cambio de estado o la devolucin de un valor.
Diagrama de Actividades
Envo de seales.
ACCIONES
Creacin de objetos.
Destruccin de objetos.
Simples clculos.
Diagrama de Actividades
estados
de accin
transiciones
objetos
nombreObjeto :NombreClase
Diagrama de Actividades
Estado de accin:
Es un estado atmico.
Pueden representar la evaluacin de una expresin o invocar
una operacin sobre un objeto, incluso crearlo o destruirlo.
Diagrama de Actividades
Accin simple
Eliminar mensaje
Expresin
Diagrama de Actividades
Estado de actividad:
No es un estado atmico.
Puede ser visto como un elemento compuesto que se
descompone en estados de actividad y de accin.
Puede tener acciones de entrada y salida (entry/exit) y
especificaciones de submquinas.
Diagrama de Actividades
Ejemplos de estados de actividad:
Procesar factura ()
Submquina
Preparar construccin ()
entry / bloquearPerimetro()
Accin de entrada
Diagrama de Actividades
Transicin de una actividad:
act Transicin
punto inicial
nombre de la actividad
Actividad 1
transicin sin disparador
Actividad 2
punto final
Diagrama de Actividades
act Ejemplo
estado inicial
Elegir terreno
Planificar obra
estado de accin
Contratar arquitecto
Terminar construccin
estado final
Diagrama de Actividades
Accin Vs. Actividad
transicin
evento
reiniciar
Vigilando
Sonando
do / sonar_alarma()
evento
accin
actividad
transicin
Diagrama de Actividades
Elementos de interconexin:
Bifurcaciones
Divisiones
Uniones
Swimlanes
Diagrama de Actividades
Dos formas de mostrar una decisin
act Decisiones
Expresin de guarda
Despertar
[ hambriento ]
Desayunar
[ inapetente ]
Volver a dormir
Diagrama de Actividades
act Bifurcacin
Despertar
Expresin
de guarda
Bifurcacin
[ hambriento ]
Desayunar
[ inapetente ]
Volver a dormir
Diagrama de Actividades
act Ejemplo
[ cita externa ]
Enviar un memorandum
Ver el Diagrama de
Actividades
para crear un documento
Crear propuesta
[ no se plantea un problema ]
Fin de la jornada
Controlar recaudacin
Fork (divisin)
Cerrar caja
Join (unin)
En v ia r Me n s a je
U s u a rio
S e le c c io n a r c o n ta c to s O n - L in e
En v ia r me n s a je c r e a d o
Cr e a r Me n s a je
Armar escenografa
Publicar obra
Hacer vestuario
Vender entradas
Realizar ensayos
Disear iluminacin
Marcos de responsabilidades
Vendedor
Consultor
Tcnico
Llamar al cliente y
concertar una cita
[ cita local ]
[ cita externa ]
Crear propuesta
Enviar la propuesta al cliente
[no se plantea un problema]
Ver el Diagrama de
Actividades
para crear un documento
Marcos de responsabilidades
Notacin alternativa
act Ejemplo
(Vendedor)
Llamar al cliente y
concertar una cita
[ cita externa ]
(Consultor)
Preparar una laptop
[ cita local ]
(Tcnico)
Preparar una sala
de conferencias
(Vendedor)
Junta con el cliente
(Vendedor)
Enviar un memorandum
(Consultor)
Crear propuesta
(Consultor)
Enviar la propuesta al cliente
[ no se plantea un problema ]
Ver el D. de actividades
para crear un documento
Diagrama de Actividades
Diagramas hbridos:
:Calculadora
INTRODUCCIN
MODELADO FUNCIONAL
MODELADO ESTTICO
MODELADO DINMICO
Diagrama de Interaccin
Diagrama de Actividades
Diagrama de Mquina de Estados
Modelado Dinmico
Estados
estados simples
Nombre_del_estado
NombreEstado
estados compuestos
NombreSubestado
NombreSubestado
Transiciones
eventos
acciones
Estado final
H
Estado de historia
Transiciones internas
Empaquetando
Enviando
Recibiendo Pedidos
stm Transiciones
confirmacinEnvo
Enviando
Enviado
stm Transiciones
confirmacinEnvo / registraNEmpaque( )
Enviando
Enviado
evento
Estado compuesto
autotransicin
cambiar
cancelacinDeReserva
reservar
comprar
cantidad_dias > 5
comprar
[<condicin>]/<accin>
Estado inicial
transicin
Estado final
Momento de ejercitacin
Ejercicio N 1
Ejercicio N 2
Marque cules son las posibles formas de representar
un punto de decisin:
Mostrando las bifurcaciones
sincronizacin.
mediante
una
barra
de
Ejercicio N 3
Ejercicio N 4
Construir el diagrama de actividades a partir del siguiente dominio:
Consideremos el flujo de trabajo asociado a la construccin de una casa:
En 1 lugar, se seleccionar un lugar de construccin (terreno).
Se necesitar contratar a un arquitecto para disear la casa.
Luego de llegar a acordar un plano especfico 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 construccin.
Luego, se obtienen los permisos, se adecua el terreno, se echan cimientos, se arman
las estructuras, . hasta que todo queda hecho.
Finalmente se entregan las llaves y un certificado de vivienda.
El propietario toma posesin de la casa.
Ejercicio N 4 (cont.)
Contratar arquitecto
Realizar trabajo en el terreno
Terminar construccin
[ en otro caso]
Elegir terreno
Hacer trabajo comercial ()
: CertificadoDeVivienda
[terminado]
Ejercicio N 5
Marque la respuesta correcta a la siguiente pregunta:
De qu forma difiere un Diagrama de Mquina de Estados de
un Diagrama de Clases?
Un Diagrama de Mquina de Estados muestra la interaccin entre
objetos de un sistema, mientras que un Diagrama de Clases modela un
sistema o parte de l.
Un Diagrama de Mquina de Estados modela los estados de un solo
objeto, mientras que un Diagrama de Clases muestra el
comportamiento secuencial de los objetos del sistema.
Un Diagrama de Mquina de Estados modela los estados de un solo
objeto, mientras que un Diagrama de Clases modela un sistema o parte
de l.
Ejercicio N 6
Indique si las siguientes afirmaciones son verdaderas o
falsas:
Un estado simple tiene un conjunto de transiciones y posiblemente
acciones de entrada y salida.
V
Ejercicio N 7
Subestado Secuencial
Subestado Secuencial
Case Tools
Bibliografa
The Unified Modeling Language User Guide - G. Booch, J. Rumbaugh, and I.
Jacobson - Addison-Wesley.
The Unified Modeling Language Reference Manual - G. Booch, J. Rumbaugh, and
I. 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