Upload
frc9
View
87
Download
1
Embed Size (px)
Citation preview
Análisis y Diseño de Sistemas de Información
UML
Lenguaje de Modelado Unificado
Parte Dinámica
UML - Lenguaje de Modelado Unificado
Parte Dinámica
The Unified Modeling Language User Guide, second edition
Grady Booch, James Rumbaugh, Ivar Jacobson
Addison Wesley Professional
ISBN: 0-321-26797-4
2005 http://www.uml.org/UML Resource PageUML 2.1.2 (Nov. 2007)UML 2.1.2 (Nov. 2007)
UML infrastructure UML Superstructure
The Unified Modeling Language Reference Manual,
Second edition
James Rumbaugh, Ivar Jacobson, Grady Booch
Addison Wesley Professional
ISBN: 0321245628
2004
Diagrama de EstadosDiagrama de EstadosDiagrama de Diagrama de SecuenciaSecuencia
Diagrama de Diagrama de ClasesClases
Diagrama deDiagrama deComponentesComponentes
Diagrama de Diagrama de Casos de UsoCasos de Uso
Diagrama de Diagrama de ComunicaciónComunicación
Tipos de Diagramas en UML
Diagrama de DespliegueDiagrama de Despliegue
ClasesClases ComponentesComponentesComunicaciónComunicación
Diagrama de ActividadDiagrama de Actividad
Vista de Interacciones
� Los objetos interactúan para implementar un comportamiento.
� Esta interacción se puede describir en dos formas complementarias, focalizándose:
� en una colección de objetos cooperantes - Colaboración
� en objetos individuales – Máquinas de Estados
� Una colaboración tiene aspectos:Una colaboración tiene aspectos:
� estático (define el contexto del comportamiento)
� de comportamiento (el conjunto de mensajes que se intercambian los
objetos - Interacción)
� Una Interacción puede representarse con dos tipos de diagramas:
� de secuencia
� de comunicación
Diagrama de EstadosDiagrama de EstadosDiagrama de Diagrama de SecuenciaSecuencia
Diagrama de Diagrama de ClasesClases
Diagrama deDiagrama deComponentesComponentes
Diagrama de Diagrama de Casos de UsoCasos de Uso
Diagrama de Diagrama de ComunicaciónComunicación
Tipos de Diagramas en UML
Diagrama de DespliegueDiagrama de Despliegue
ClasesClases ComponentesComponentesComunicaciónComunicación
Diagrama de ActividadDiagrama de Actividad
Los Diagramas de Secuencia representan
explícitamente
la secuencia ordenada de interacciones (mediante el
envío de mensajes) descriptas en un Caso de Uso.
Identificación de las Características de las Clases
Diagrama de Secuencia
Identificación de las Características de las Clases
Los Diagramas de Secuencia pueden ser empleados para
conocer las responsabilidades de las clases y objetos.
Los Diagramas de Secuencia permiten identificar los objetos
e interacciones necesarias para brindar algún servicio.
Diagrama de Secuencia
� Un Diagrama de Secuencia se compone de:
� Un conjunto de objetos (clase o instancia).
� Un conjunto de mensajes que comunican pares de
objetos.
� Secuencias de comportamiento de los objetos.
� Información de control (Condicional, Repetición, etc.)
Actividad: Controlar Temperatura
Diagrama de Secuencia
ControlarTemperaturasd
Controlador SensorT ValvulaVapor
1 : obtenerTemperatura()
objetos
mensajes
lifeline, indica la
controlTemperaturaalt
[temp > 70]
[temp < 60] 2 : abrir()
3 : cerrar()
tiempo
tiempo que está activo un método del objeto
indica la existencia del objeto
(1,3)loop
Xalt
ObjectoA ObjectoB ObjectoC
1 : mensaje1()Creación de
instancias
Diagrama de SecuenciaEstructura
de control
iterativa
Xalt
[else]
[expBooleana]ObjectoD
2 : crear()
<<create>>
3 : destruir()
<<destroy>>
Destrucción
de instancias
Ejecución
condicional
Diagrama de Secuencia.
Alternativa
Diagrama de Secuencia. Iteración (loop o bucle)
Diagrama de Secuencia. Anidamiento
Estructura
opcional
Anidamiento de
diagramas
Preguntas que se deben realizar continuamente al revisar
un Escenario
� ¿Qué objeto debe ser responsable de una acción
determinada?
� ¿Posee el objeto suficiente conocimiento para realizar la
acción?, o debe delegar ese comportamiento a otro acción?, o debe delegar ese comportamiento a otro
objeto.
� ¿No se le están asignando demasiadas acciones al
objeto?
� ¿Qué podría fallar?
¿Cómo se Interpreta un Diagrama de Secuencia?
: UnCliente
Jose : Vendedor : Inventario : ResponsablePlanificacion : ResponsableManufactura : Producto
1 : pedido()2 : hayStock?()
Las interacciones comienzan con la
ocurrencia de algún requerimiento externo
al sistema.
: PlanDeProduccion3 : requerimientos()
4 : crear()
<<create>>
5 : planear()6 : elaborar()
¿Cómo se Interpreta un Diagrama de Secuencia?
: UnCliente
Jose : Vendedor : Inventario : ResponsablePlanificacion : ResponsableManufactura : Producto
1 : pedido()2 : hayStock?()
Las interacciones se llevan a cabo a
medida que los objetos se envíanmensajes.
: PlanDeProduccion3 : requerimientos()
4 : crear()
<<create>>
5 : planear()6 : elaborar()
¿Cómo se Interpreta un Diagrama de Secuencia?
: UnCliente
Jose : Vendedor : Inventario : ResponsablePlanificacion : ResponsableManufactura : Producto
1 : pedido()2 : hayStock?()
El orden de las barras que representan a
los objetos es indistinto.
: PlanDeProduccion3 : requerimientos()
4 : crear()
<<create>>
5 : planear()6 : elaborar()
¿Cómo se Interpreta un Diagrama de Secuencia?
: UnCliente
Jose : Vendedor : Inventario : ResponsablePlanificacion : ResponsableManufactura : Producto
1 : pedido()2 : hayStock?()
Gonnet-Leone, 2009
Si es necesario representar más de una
instancia de una clase dada, puedendibujarse una o más barras, según resulte
más claro.
: PlanDeProduccion3 : requerimientos()
4 : crear()
<<create>>
5 : planear()6 : elaborar()
¿Cómo se Interpreta un Diagrama de Secuencia?
: UnCliente
Jose : Vendedor : Inventario : ResponsablePlanificacion : ResponsableManufactura : Producto
1 : pedido()2 : hayStock?()
El eje temporal se mueve en forma
descendente. No es lineal sino controlado
por eventos.
: PlanDeProduccion3 : requerimientos()
4 : crear()
<<create>>
5 : planear()6 : elaborar()
¿Cómo se Interpreta un Diagrama de Secuencia?
: UnCliente
Jose : Vendedor : Inventario : ResponsablePlanificacion
: PlanDeProduccion
: ResponsableManufactura : Producto
1 : pedido()2 : hayStock?()
3 : requerimientos()4 : crear()
<<create>>
5 : planear()
La barra (sobre la línea de un objeto), que representa
a una secuencia de comportamientos, permite
identificar el conjunto de actividades que se llevan a
cabo como consecuencia de un evento dado.
5 : planear()6 : elaborar()
¿Cómo se Interpreta un Diagrama de Secuencia?
: UnCliente
Jose : Vendedor : Inventario : ResponsablePlanificacion : ResponsableManufactura : Producto
1 : pedido()2 : hayStock?()
A la izquierda de la Barra de Borde del Sistema,
se pueden documentar las actividades (en
aquello casos que sea necesario).
: PlanDeProduccion3 : requerimientos()
4 : crear()
<<create>>
5 : planear()6 : elaborar()
� Se originan de manera “forward”.
� Puede ser empleado para verificar los requerimientos
de un sistema.
Diagramas de Secuencia
� Tiene una naturaleza funcional.
� No siempre se dispone de información acerca de la
manera en que deben interactuar un conjunto de
objetos para cumplir un objetivo.
Diagrama de EstadosDiagrama de EstadosDiagrama de Diagrama de SecuenciaSecuencia
Diagrama de Diagrama de ClasesClases
Diagrama deDiagrama deComponentesComponentes
Diagrama de Diagrama de Casos de UsoCasos de Uso
Diagrama de Diagrama de ComunicaciComunicacióónn
Tipos de Diagramas en UML
Diagrama de DespliegueDiagrama de Despliegue
ClasesClases ComponentesComponentesComunicaciComunicacióónn
Diagrama de ActividadDiagrama de Actividad
El Diagrama de Comunicación modela los objetos y los enlaces (“links”)
que son significativos para una interacción determinada.
El Diagrama de Comunicación muestra las interacciones entre los
objetos, representando además las relaciones estructurales que permiten
la colaboración del grupos de objetos.
Diagrama de Comunicación (Diagrama de Colaboración previamente a UML 2.0)
links
mensajes
En el diagrama de comunicación se muestran los enlaces que representaninstancias de las asociaciones, así como los vínculos temporarios (representandoargumentos de métodos, variables locales y referencias a sí mismo).
Ascensor
Puerta
Cabina
Luz
componente
iluminación parte
es-instancia-de
Diagrama de comunicación
: Ascensor
r1 : componente
1: Subir
es-instancia-de
: Cabina
: Puerta
3: Cerrar
r1 : componente
: Luz
i1 : iluminación 2: Encender
Diagrama de Comunicación
: AgenteAlumnado : Universidad
1 : crear()
<<create>>
2 : agregarEstudiante()
3 : registrar()
e : Estudiante c : Curso
4 : cursos := obtenerPlanificación()
5 *[c in cursos] : inscribir()
retorno claúsula de iteración
Los objetos que participan pueden ser especificados a
través de:
I Sólo el nombre de la instancia
:C Sólo el nombre de la clase
I:C Los nombres de la instancia y clase
Los enlaces se representan por líneas entre los objetos.
Diagrama de comunicación
Los enlaces se representan por líneas entre los objetos.
Los mensajes se representan a través de flechas sobre
el enlace.
Un mensaje se compone de:
� Un número de secuencia
� Un símbolo de sincronización
� Una etiqueta que identifica al mensaje
Se trabaja sobre el SI de una biblioteca, en la cual se manejara
por separado el concepto de título y los distintos ejemplares que
de un determinado título existen en el inventario
Diagrama de comunicación: Ejemplo
Titulo
crearEjemplar()catalogo
Ejemplarvolumen
Usuario
reserva
prestamo
LibroBiblioteca
prestamo
inventario
Se desea representar la incorporación de un nuevo ejemplar al
inventario de la biblioteca. Se utiliza un diagrama decomunicación para representar el caso de uso.
� El empleado interactúa con el SI, ingresando el nuevo
ejemplar.� Por razones de eficiencia se requiere que se pueda acceder
directamente a cada ejemplar, sin recurrir a título.
Diagrama de comunicación: Ejemplo
empleado :actor
:Biblioteca
:Ejemplar
: Libro
1: Ingresar( )
2: crearEjemplar( )
4: incorporarInventario(Ejemplar)
3: crear(Bibloteca)
Diagramas de Secuencia y comunicación
Ambos diagramas muestran interaccionesinteracciones, aunqueenfatizan aspectos diferentes.
: AgenteAlumnado : Universidad
e : Estudiante c : Curso
1 : crear()<<create>>
2 : agregarEstudiante()
3 : registrar()
4 : cursos := obtenerPlanificación()
5 *[c in cursos] : inscribir()
: AgenteAlumnado : Universidad c : Curso
for each c in cursosloop
: AgenteAlumnado : Universidad
e : Estudiante
c : Curso
1 : crear()<<create>>
2 : agregarEstudiante(e)
3 : registrar()4 : cursos := obtenerPlanificación()
5 : inscribir(e)
Diagramas de Secuencia y comunicación
Ambos diagramas muestran interaccionesinteracciones, aunqueenfatizan aspectos diferentes.
: AgenteAlumnado : Universidad
e : Estudiante c : Curso
1 : crear()<<create>>
2 : agregarEstudiante()
3 : registrar()
4 : cursos := obtenerPlanificación()
5 *[c in cursos] : inscribir()
Los Diagramas de comunicación muestran
explícitamente las relacionesrelaciones entreentre loslos objetosobjetos,
y la secuencia temporal debe ser inducida a partir
de la numeración de los mensajes.
Los Diagramas de Secuencia muestran claramente la secuencia temporalsecuencia temporal, pero no las relaciones entre los objetos.
Diagramas de Secuencia y comunicación
Ambos diagramas muestran interaccionesinteracciones, aunqueenfatizan aspectos diferentes.
: AgenteAlumnado : Universidad c : Curso
for each c in cursosloop
: AgenteAlumnado : Universidad
e : Estudiante
c : Curso
1 : crear()<<create>>
2 : agregarEstudiante(e)
3 : registrar()4 : cursos := obtenerPlanificación()
5 : inscribir(e)
Los Diagramas de Secuen-cia muestran claramente la secuencia temporalsecuencia temporal, pero no las relaciones entre los objetos.
Diagramas de Secuencia y comunicación
Ambos diagramas muestran interaccionesinteracciones, aunqueenfatizan aspectos diferentes.
: AgenteAlumnado : Universidad
e : Estudiante c : Curso
1 : crear()<<create>>
2 : agregarEstudiante()
3 : registrar()
4 : cursos := obtenerPlanificación()
5 *[c in cursos] : inscribir()
: AgenteAlumnado : Universidad c : Curso
Los Diagramas decomunicación muestran
explícitamente las relacionesrelacionesentreentre loslos objetosobjetos, y la
secuencia temporal debe ser
inducida a partir de la
numeración de los mensajes.
for each c in cursosloop
: AgenteAlumnado : Universidad
e : Estudiante
c : Curso
1 : crear()<<create>>
2 : agregarEstudiante(e)
3 : registrar()4 : cursos := obtenerPlanificación()
5 : inscribir(e)
Guía de Ejercicios
Marque las afirmaciones que considere correctas
En la definición de un Caso de Uso, un actor es parte del sistema
Un actor no puede vincularse a más de un Caso de Uso
Dos actores pueden vincularse mediante una relación de especialización
Un caso de uso no puede vincularse a más de un actorUn caso de uso no puede vincularse a más de un actor
Ninguna de las afirmaciones anteriores es correcta
Guía de Ejercicios
Marque las afirmaciones que considere correctas
Los actores deben aparecer como clases con atributos y métodos dentro del diagrama de clases.
Los actores pueden aparecer como clases con atributos y métodos dentro del diagrama de clases.
Los actores pueden aparecer como clases sin atributos ni Los actores pueden aparecer como clases sin atributos ni métodos dentro del diagrama de clases.
Los actores no aparecen en el diagrama de clases.
Ninguna de las afirmaciones anteriores es correcta
Guía de Ejercicios
En un diagrama de secuencia
deben aparecer clases y métodos
puede describir varios casos de uso simultáneamente
puede describir un mensaje
puede incluir interfaces
Ninguna de las afirmaciones anteriores es correcta
en un diagrama de secuencia aparecen asociaciones
si existe un mensaje en un diagrama de secuencia, debe existir una asociación entre las clases de los objetos vinculados al mensaje
en un diagrama de secuencias un objeto puede enviarle un
Guía de Ejercicios
Marque las afirmaciones que considere correctas
en un diagrama de secuencias un objeto puede enviarle un mensaje a una interfaz
el mismo objeto no puede aparecer en diferentes diagramas de secuencia
Ninguna de las afirmaciones anteriores es correcta