UML – Lenguaje de Modelado Unificado - Facultad de Ciencias-UCV

Download Report

Transcript UML – Lenguaje de Modelado Unificado - Facultad de Ciencias-UCV

UML – Lenguaje de
Modelado Unificado
Centro ISYS
Escuela de Computación
Facultad de Ciencias. UCV
Profa. Zulma González
UML
• UML (Unified Modeling Language) es un lenguaje
que permite modelar, construir y documentar los
elementos que forman un sistema software
orientado a objetos.
• Uno de los objetivos principales de la creación de
UML era posibilitar el intercambio de modelos
entre las distintas herramientas CASE orientadas
a objetos del mercado. Para ello era necesario
definir una notación y semántica común.
• Proyecta las diferentes vistas de un sistema.
Escuela de Computación - Facultad de Ciencias UCV - Profa. Zulma González - 2008
2
Vistas
Use Case
Diagrama
Diagrams de
Casos de Uso
Use Case
Use Case
Diagrams
Diagrama
Diagrams de
Estados
State
State
Diagrams
Diagrama
Diagrams de
Clases
State
State
Diagrams
Diagrama
Diagrams de
Objeto
Estática
Scenario
Scenario
Diagrams
Diagrama
Diagrams de
Actividad
Actividad
Component
Component
Diagrams
Diagrama
Diagrams
Diagramas
Interacción
Scenario
Scenario
Diagrams
Diagrama
Diagrams de
Secuencia
Implementación
Diagrama de
Colaboración
de
Componentes
Component
Component
Diagrams
Diagrama
Diagrams
Escuela de Computación - Facultad de Ciencias UCV - Profa. Zulma González - 2008
de
Despliegue
3
Estructura
• Diagrama de Clases:
• Describe la estructura estática del sistema.
• Presenta el conjunto de clases, interfaces y
colaboraciones, así como sus relaciones, cubriendo la
vista de diseño estática del sistema.
Persona
Nombre: String
Estudiante
Promedio: double
Universidad
Estudia en
0..*
Escuela de Computación - Facultad de Ciencias UCV - Profa. Zulma González - 2008
Nombre:String
4
Estructura
• Diagrama de Objetos:
• Análogo al diagrama de clases, muestra un conjunto de
objetos y sus relaciones, en un instante dado.
Diana: Estudiante
Nombre: Diana Martínez
UCV: Universidad
Estudia en
Nombre: Univ. Central de Vzla
Promedio: 16,5
Escuela de Computación - Facultad de Ciencias UCV - Profa. Zulma González - 2008
5
Estructura
• Diagrama de Componentes:
• Muestra la organización y dependencias de un
conjunto de componentes.
• Cubren la vista de implementación de un sistema, y
describen la interacción entre componentes de Software.
Escuela de Computación - Facultad de Ciencias UCV - Profa. Zulma González - 2008
6
Estructura
• Diagrama de Despliegue:
• Describe la disposición del hardware.
• Muestra la configuración del hardware del sistema, los
nodos de proceso y los componentes empleados por éstos.
Servidor
App
Servidor
BD
Escuela de Computación - Facultad de Ciencias UCV - Profa. Zulma González - 2008
7
Comportamiento
• Diagrama de Casos de Uso:
• Describe las funcionalidades del sistema a partir de las
interacciones del usuario.
Escuela de Computación - Facultad de Ciencias UCV - Profa. Zulma González - 2008
8
Comportamiento
• Diagrama de Secuencia
y de Colaboración:
• Son diagramas de
interacción, muestran
un conjunto de objetos y
sus relaciones, así como
los mensajes que se
intercambian entre ellos.
• El diagrama de
secuencia resalta la
ordenación temporal de los
mensajes, mientras que el
de colaboración resalta
la organización estructural
de los objetos, ambos
siendo equivalentes o
isomorfos.
Diag. Secuencia
Diag. Colaboración
Escuela de Computación - Facultad de Ciencias UCV - Profa. Zulma González - 2008
9
Comportamiento
• Diagrama de Estados:
• Muestra una máquina de estados de un objeto, con sus
estados, transiciones, eventos y actividades.
• Modelan comportamientos reactivos en base a eventos.
Escuela de Computación - Facultad de Ciencias UCV - Profa. Zulma González - 2008
10
Comportamiento
• Diagrama de Actividades:
• Describe el flujo de trabajo, muestra las actividades, su
secuenciamiento y coordinación
Escuela de Computación - Facultad de Ciencias UCV - Profa. Zulma González - 2008
11
Diagramas de Clases
• Un diagrama de clase describe la estructura
estática del sistema, mostrando sus clases y las
relaciones entre estas.
• Una clase es la definición de un conjunto de
objetos con características y comportamiento
similares.
Nombre Clase
Nombre Atributo: Tipo Atributo
Atributos
Métodos
Nombre Método (parámetros) : Tipo Retorno
Escuela de Computación - Facultad de Ciencias UCV - Profa. Zulma González - 2008
12
Diagramas de Clases
• Clases Abstractas:
• Una clase abstracta es aquella que no tiene instancias
directas pero cuyas clases descendientes tienen instancias
directas
• Clases Concretas:
• Son todas aquellas clases que pueden ser instanciables.
Trabajador
Licenciado
Ingeniero
Obrero
Escuela de Computación - Facultad de Ciencias UCV - Profa. Zulma González - 2008
13
Diagramas de Clases
• Restricciones (constraints):
• Restricciones de Atributos: Permiten adicionar reglas en
atributos.
Nombre Clase
Lista de Atributos
{restricción}
Rectángulo
Ancho
Largo
Area
{Area = Ancho * Largo}
{Ancho = Largo}
• Restricciones en relaciones: Reglas a las relaciones.
Escuela de Computación - Facultad de Ciencias UCV - Profa. Zulma González - 2008
14
Diagramas de Clases
• Estereotipos: <<estereotipo>>
• Es un metatipo, cuya utilidad es definir a otros tipos.
• Define el propósito del conjunto de elementos a modelar
con el mismo estereotipo.
• Es opcional.
<<estereotipo>>
Nombre Clase
<<interfaz>>
Ventana_Principal
<<modelo>>
Persona
<<control>>
Main
Escuela de Computación - Facultad de Ciencias UCV - Profa. Zulma González - 2008
15
Diagramas de Clases
• Relaciones entre clases
• Conexión semántica entre elementos del modelo.
• Tipos de Relaciones entre clases:
•
•
•
•
•
Asociación.
Agregación.
Composición.
Generalización / Especialización.
Dependencia.
Escuela de Computación - Facultad de Ciencias UCV - Profa. Zulma González - 2008
16
Diagramas de Clases
• Asociación:
• Relación o invocación significativa entre dos o más clases.
Clase A
<rol A>
<mult A>
<Descripción> <rol B>
<mult B>
Clase B
• Según notación UML, la asociación comprende:
• Descripción, o nombre de la relación.
• Rol: Responsabilidad de la clase en la relación.
• Multiplicidad: Indica cuantos objetos pueden participar en la
relación.
•
•
•
•
0 ó más: *
1 o más: 1..*
De 2 a 4: 2..4
Sólo 7: 7
Escuela de Computación - Facultad de Ciencias UCV - Profa. Zulma González - 2008
17
Diagramas de Clases
• Asociación:
• Grado de la Asociación: Se determina por el número de
clases conectadas por la misma asociación. Las
asociaciones puedes ser binarias ternarias o de mayor
grado.
• Ejemplo de una asociación ternaria:
Estudiante
*
*
Profesor
*
Universidad
Escuela de Computación - Facultad de Ciencias UCV - Profa. Zulma González - 2008
18
Diagrama de Clases
• Asociación:
• Las asociaciones pueden ser reflexivas, es decir pueden
relacionar distintos objetos de una misma clase.
Persona
pariente de
Escuela de Computación - Facultad de Ciencias UCV - Profa. Zulma González - 2008
19
Diagramas de Clases
• Agregación: (“es parte de”, “contiene”)
• Asociación que especifica relación Parte de entre el
agregado (Todo) y el componente (Parte).
Universidad
Estudiante
*
Escuela de Computación - Facultad de Ciencias UCV - Profa. Zulma González - 2008
20
Diagramas de Clases
• Composición: (“compuesto por”)
• Relación de agregación especial donde las partes no
pueden existir sin que exista el objeto todo.
Cuerpo
Brazo
2
Escuela de Computación - Facultad de Ciencias UCV - Profa. Zulma González - 2008
21
Diagramas de Clases
• Generalización / Especialización: (“es un”)
• Generalización: Se crea una clase (superclase), que
generaliza las propiedades comunes de varias clases.
• Especialización: Dada una clase, se crea(n) otra(s)
clase(s) (subclase) que especializa(n) la clase dada,
agregando las diferencias.
Persona
Estudiante
Profesor
Empleado
Escuela de Computación - Facultad de Ciencias UCV - Profa. Zulma González - 2008
22
Diagramas de Clases
• Dependencia:
• Es una conexión entre clases que indica que un cambio en
una clase B puede afectar a otra clase A que la usa.
Clase_A
Clase_B
Atributo1:int
Metodo (b: Clase_B)
Escuela de Computación - Facultad de Ciencias UCV - Profa. Zulma González - 2008
23
Diagramas de Clases
• Clase Asociativa:
• Asociación entre clases, donde la relación posee atributos
propios.
• Cada enlace es una instancia de clase.
Clase_A
Clase_B
Asociación
Atributos
Operaciones
Escuela de Computación - Facultad de Ciencias UCV - Profa. Zulma González - 2008
24
Diagramas de Objetos
• Un diagrama de objetos muestra un conjunto de
objetos y sus relaciones en un momento
determinado.
Nombre del Objeto: Nombre de la Clase
Atributo: Valor
Escuela de Computación - Facultad de Ciencias UCV - Profa. Zulma González - 2008
25
Diagramas de Objetos
• Ejemplo:
Diana: Estudiante
Nombre: Diana Martínez
UCV: Universidad
Estudia en
Nombre: Univ. Central de Vzla
Promedio: 16,5
Escuela de Computación - Facultad de Ciencias UCV - Profa. Zulma González - 2008
26
Diagramas de Casos de Uso
• Los diagramas de Casos de Uso describen lo que
hace un sistema, enfatizando el qué en vez del
cómo.
• Describen las funcionalidades del sistema a partir
de las interacciones del usuario.
Es decir, describen un uso del sistema y cómo este
interactúa con el usuario.
• Se emplean para visualizar el comportamiento del
sistema.
Escuela de Computación - Facultad de Ciencias UCV - Profa. Zulma González - 2008
27
Diagramas de Casos de Uso
Actores
• Entidad externa que
interactúa con el sistema.
Personas
Sistema
• Entidades distintas a los
usuarios de sistema.
• En algunos casos,
representan cierta función
que un usuario va a
realizar en el sistema.
Nombre del Actor
Componente de Software
Organización
Escuela de Computación - Facultad de Ciencias UCV - Profa. Zulma González - 2008
28
Diagramas de Casos de Uso
Actores
• Relaciones entre actores:
Secretaria
• Generalización:
Cuando diferentes actores realizan
roles similares, pueden heredar de un
actor común.
Técnico
Administrador
Escuela de Computación - Facultad de Ciencias UCV - Profa. Zulma González - 2008
29
Diagramas de Casos de Uso
Actores
• Ejemplos:
Base de Datos Reservaciones
Sistema de
Reservaciones de
Vuelos
Usuario
Sistema de
Computación
Base de Datos de Registros
Usuario
Administrador
Programador
Operador
Escuela de Computación - Facultad de Ciencias UCV - Profa. Zulma González - 2008
30
Diagramas de Casos de Uso
Casos de Uso
• Un caso de uso define una
funcionalidad del sistema.
• Cada caso de uso constituye un
flujo de eventos, que
especifican la interacción que
toma lugar entre el actor y el
sistema.
Nombre del Caso de
Uso
Verbos
• Cada caso de uso produce un
resultado observable y válido
para el actor involucrado en la
secuencia de acciones.
Escuela de Computación - Facultad de Ciencias UCV - Profa. Zulma González - 2008
Son Acciones
31
Diagramas de Casos de Uso
Relaciones entre Casos de Uso:
1. Generalización.
2. Extensión.
3. Inclusión.
Escuela de Computación - Facultad de Ciencias UCV - Profa. Zulma González - 2008
32
Diagramas de Casos de Uso
1. Generalización:
•
Relación que define la
especialización de un caso de uso.
•
Los casos de uso abstractos
describirán las partes similares y
no podrán ser instanciados
independientemente.
•
Caso Abstracto
Caso Concreto
Los casos de uso concretos
describirán el comportamiento
específico.
Pagar Reservación
Pagar con Tarjeta
Escuela de Computación - Facultad de Ciencias UCV - Profa. Zulma González - 2008
Pagar con
Transferencia
33
Diagrama de Casos de Uso
2. Extensión: (<<extend>>)
Caso Base
• Especifica como un caso de uso puede
insertarse en otro para extender la
funcionalidad de un caso de uso base.
<<extend>>
Caso Opcional
• El Caso Opcional es una extensión del
Caso Base:
Una instancia del caso de uso Base
puede incluir el comportamiento
especificado por el Caso Opcional.
Hacer Reservación
<<extend>>
Pagar Reservación
Escuela de Computación - Facultad de Ciencias UCV - Profa. Zulma González - 2008
34
Diagramas de Casos de Uso
3. Inclusión: (<<include>>)
Caso Base
• La inclusión define como un caso de
uso es parte obligatoria de un caso
de uso base.
<<include>>
Caso Obligatorio
• Un Caso Base incluye un Caso
Obligatorio:
Una instancia de un caso base
siempre incluye el comportamiento
especificado por un caso de uso
obligatorio.
Consultar
Información
<<include>>
Validar Usuario
Escuela de Computación - Facultad de Ciencias UCV - Profa. Zulma González - 2008
35
Diagramas de Casos de Uso
• Notación
Nombre del Sistema
Nombre del Caso de
Uso
Número del CU
Nombre del Actor
generalización
<<include>>
<<extend>>
Nombre del Caso de
Uso
Número del CU
Escuela de Computación - Facultad de Ciencias UCV - Profa. Zulma González - 2008
36
Diagramas de Casos de Uso
Caso de Uso
• Ejemplo:
Escuela de Computación - Facultad de Ciencias UCV - Profa. Zulma González - 2008
37
Diagramas de Casos de Uso
Especificación de un Caso de Uso: (Documentación)
• Nombre del Caso de Uso.
• Actores.
• Propósito.
• Precondiciones.
• Flujo de Eventos Principal.
• Sub Flujos.
• Excepciones.
• Postcondiciones.
Escuela de Computación - Facultad de Ciencias UCV - Profa. Zulma González - 2008
38
Diagramas de Actividades
• El diagrama de actividades define la lógica de
los procedimientos, los procesos del negocio y flujos
de trabajo del sistema.
• Un diagrama de actividades demuestra la serie de
actividades que deben ser realizadas en un caso de
uso, así como las distintas rutas que pueden irse
desencadenando en el caso de uso.
Escuela de Computación - Facultad de Ciencias UCV - Profa. Zulma González - 2008
39
Diagramas de Actividades
• Actividad:
Representa una acción que
será realizada por el
sistema.
Nombre de la Actividad
• Actividad Inicial
• Actividad Final
Verificar Password del Usuario
Escuela de Computación - Facultad de Ciencias UCV - Profa. Zulma González - 2008
40
Diagrama de Actividades
• Sub Actividad:
Una acción puede ser
descompuesta en varias
actividades.
Actividad Compuesta
Actividad 1
Escuela de Computación - Facultad de Ciencias UCV - Profa. Zulma González - 2008
Actividad 2
41
Diagramas de Actividades
• Ramificación (Branch):
Validar Usuario
• Una ramificación surge
cuando existe la
posibilidad que ocurra más
de una transición
(resultado) al terminar
determinada actividad.
• Este elemento es
representado a través de
un rombo.
[Usuario Válido]
Ver Información
[Usuario Inválido]
Mostrar Mensaje de Usuario Inválido
Escuela de Computación - Facultad de Ciencias UCV - Profa. Zulma González - 2008
42
Diagramas de Actividades
• Especificaciones Join
• División
• Unión
Escuela de Computación - Facultad de Ciencias UCV - Profa. Zulma González - 2008
43
Diagramas de Actividades
• Señales
Algunas acciones responden a señales
• Señales de tiempo
• Envío de señal
• Recepción de señal
Escuela de Computación - Facultad de Ciencias UCV - Profa. Zulma González - 2008
44
Diagramas de Actividades
Reservar Solicitud
• Señales
• Ejemplo:
Enviar Solicitud
Esperar 30 seg
Cancelar Registro
Solicitud
Aceptada
Guardar Solicitud
Escuela de Computación - Facultad de Ciencias UCV - Profa. Zulma González - 2008
45
Diagramas de Secuencia
• Los diagramas de secuencia describen como
colaboran y se comunican (interacción) los
objetos del sistema.
• Muestra los objetos que participan en una
interacción, el intercambio de mensajes y su
ordenamiento en el tiempo.
• Un diagrama de secuencia es una representación
que muestra, para un escenario de un caso de uso,
los eventos que generan los actores, su orden y
posibles eventos internos en el sistema
Escuela de Computación - Facultad de Ciencias UCV - Profa. Zulma González - 2008
46
Diagramas de Secuencia
ob3:C3
op( )
ob4:C4
Línea de vida
ob1:C1
[x>0] op1(x )
condicional
creación
ob2:C2
Mensaje
[x<0] op2(x )
op3(w )
op3(z )
Activación
op4( )
destrucción
recursión
Escuela de Computación - Facultad de Ciencias UCV - Profa. Zulma González - 2008
47
Diagramas de Secuencia
: Clase_A
: Clase_B
mensaje 1 ( )
Valor (es)
retornado (s)
asociado(s) con el
mensaje previo
retorno
Mensajes
mensaje 2 (p1,p2)
Escuela de Computación - Facultad de Ciencias UCV - Profa. Zulma González - 2008
48
Diagramas de Secuencia
• Crear Objetos: <<create>>
: Clase_A
mensaje 0 ( )
<<create>>
:Clase_B
mensaje 1( )
Escuela de Computación - Facultad de Ciencias UCV - Profa. Zulma González - 2008
49
Diagramas de Secuencia
• Destruir Objetos: <<destroy>>
: Clase_A
mensaje 0 ( )
<<create>>
:Clase_B
<<destroy>>
Escuela de Computación - Facultad de Ciencias UCV - Profa. Zulma González - 2008
50
Diagramas de Secuencia
• Mensajes Condicionales
: Clase_A
mensaje 0 ( )
: Clase_B
[condición] mensaje 1 ( )
Escuela de Computación - Facultad de Ciencias UCV - Profa. Zulma González - 2008
51
Diagramas de Secuencia
• Mensajes Condicionales Excluyentes
: Clase_A
mensaje 0 ( )
: Clase_B
: Clase_C
[condición 1] mensaje 1 ( )
[condición 2] mensaje 2 ( )
Mensajes condicionales
mútuamente excluyentes
Escuela de Computación - Facultad de Ciencias UCV - Profa. Zulma González - 2008
52
Diagramas de Secuencia
• Caja de Iteración:
: Clase_A
: Clase_B
: Clase_C
mensaje 0 ( )
mensaje 1 ( )
Caja que puede
encerrar un área
de iteración
*[...] es un
marcador de
iteración
mensaje 2 ( )
*[...]
Escuela de Computación - Facultad de Ciencias UCV - Profa. Zulma González - 2008
53
Diagramas de Secuencia
Escuela de Computación - Facultad de Ciencias UCV - Profa. Zulma González - 2008
54
Diagramas de Colaboración
• Un Diagrama de Colaboración describe la
interacción entre los objetos, numerando la
secuencia de mensajes.
Escuela de Computación - Facultad de Ciencias UCV - Profa. Zulma González - 2008
55
Diagramas de Colaboración
mensaje 0(p)
Primer mensaje y
parámetros
: C1
Mensajes, Orden y Dirección
Objetos
1: mensaje1 (p )
2: mensaje 2 ( )
Línea de Asociación
1.1: mensaje3(p )
: C2
:C3
1.2: mensaje 4
Reacción en cadena y numeración
Escuela de Computación - Facultad de Ciencias UCV - Profa. Zulma González - 2008
56
Diagramas de Colaboración
: C1
: C2
mensaje 0 (p)
: C1
mensaje 0 (p)
mensaje 1 (p)
1: mensaje 1 (p )
2: mensaje 2 ( )
mensaje 2 ()
: C2
Diagrama de Secuencia
Diagrama de Colaboración
Escuela de Computación - Facultad de Ciencias UCV - Profa. Zulma González - 2008
57
Diagramas de Colaboración
• Mensajes Excluyentes
mensaje 0 (p)
1a [condición 2]: mensaje 2 ()
: C1
: C3
1b [condición 1]: mensaje1 ()
Mensajes condicionales
: C2
mutuamente excluyentes
Escuela de Computación - Facultad de Ciencias UCV - Profa. Zulma González - 2008
58
Diagramas de Colaboración
• Iteración
mensaje0 (p)
: C1
1* [i:=1..N]: vi:=mensaje ( )
: C2
La iteración se indica con *
seguido de una cláusula de
iteración opcional
Escuela de Computación - Facultad de Ciencias UCV - Profa. Zulma González - 2008
59
Diagramas de Colaboración
Escuela de Computación - Facultad de Ciencias UCV - Profa. Zulma González - 2008
60
Diagramas de Despliegue
• Un diagrama de despliegue muestra las relaciones
físicas entre los componentes hardware y software
en el sistema final, es decir, la configuración de los
elementos de procesamiento en tiempo de
ejecución y los componentes software (procesos y
objetos que se ejecutan en ellos).
• En el diagrama de despliegue se indica la
situación física de los componentes lógicos
desarrollados. Es decir se sitúa el software en el
hardware que lo contiene.
Escuela de Computación - Facultad de Ciencias UCV - Profa. Zulma González - 2008
61
Diagramas de Despliegue
• Nodo: Elemento donde se ejecutan los componentes,
representan el despliegue físico de estos componentes.
Nodo
• Asociación: Representa el tipo relación que
soporta la comunicación entre nodos
Nodo
<<Nombre>>
*
1
Nodo
Escuela de Computación - Facultad de Ciencias UCV - Profa. Zulma González - 2008
62
Diagramas de Despliegue
Escuela de Computación - Facultad de Ciencias UCV - Profa. Zulma González - 2008
63
Diagramas de Componentes
• El diagrama de componentes muestra la relación
entre componentes de software, sus dependencias,
su comunicación, su ubicación y otras condiciones.
• Un diagrama de componentes muestra las
organizaciones y dependencias lógicas entre
componentes software, sean éstos componentes de
código fuente, binarios o ejecutables.
• Define los módulos físicos del software y sus
relaciones.
Escuela de Computación - Facultad de Ciencias UCV - Profa. Zulma González - 2008
64
Diagramas de Componentes
• Componente
• Es un tipo de contenedor.
• Provee una vista encapsulada de las funcionalidades
definidas en las clases.
• Por ejemplo, un paquete en un diagrama de
componentes representa un división física del sistema.
Escuela de Computación - Facultad de Ciencias UCV - Profa. Zulma González - 2008
65
Diagramas de Componentes
• Interfaces
• Las interfaces son los puntos visibles de entrada o los
servicios que un componente está ofreciendo y dejando
disponibles a otros componentes de software y clases.
• Exponen funcionalidades para otros componentes y las
requeridas de otros.
Escuela de Computación - Facultad de Ciencias UCV - Profa. Zulma González - 2008
66
Diagramas de Componentes
• Dependencia de módulos
• Abstrae la implementación de la interfaz e indica la
dependencia entre módulo
Escuela de Computación - Facultad de Ciencias UCV - Profa. Zulma González - 2008
67
Diagramas de Estado
• Los diagramas de estado muestran los diferentes
estados de un objeto durante su vida, y los
estímulos que provocan los cambios de estado en
un objeto.
• Los diagramas de estado ven a los objetos como
máquinas de estado o autómatas finitos que
pueden estar en un conjunto de estados finitos y
que pueden cambiar su estado a través de un
estímulo perteneciente a un conjunto finito.
Escuela de Computación - Facultad de Ciencias UCV - Profa. Zulma González - 2008
68
Diagramas de Estados
• Estado:
Nombre Estado
entry: Acción de entrada.
do: Actividad.
exit: Acción de Salida.
• Estado Inicial
• Estado Final
Escuela de Computación - Facultad de Ciencias UCV - Profa. Zulma González - 2008
69
Diagramas de Estados
• Transición:
Estado 1
Transición
Evento(P)[condición] / [Actividad]
Estado 2
Escuela de Computación - Facultad de Ciencias UCV - Profa. Zulma González - 2008
70
Diagramas de Estados
• Diagrama de Estados de un Libro:
Escuela de Computación - Facultad de Ciencias UCV - Profa. Zulma González - 2008
71