Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Clase 6
Clase 6
Clase 6
UML
UML
www.dsic.upv.es/~uml
Patricio Letelier Torres UPV (politécnica de
Valencia)
UML Gota a Gota (Fowler)
UML (Booch, Rumbaugh, Jacobson)
Instant UML (Muller)
Webs
www.omg.org/uml
Ejemplos Modelado
Construcción de una Proceso bien
definido
cucha para un perro
Herramientas más
Puede hacerlo sofisticadas
una sola persona Construcción de un
Requiere: rascacielos
Modelado mínimo
Proceso simple Contexto de
Herramientas desarrollo
simples Determinar
Construcción de una configuración del
casa proceso
Recursos
Construida
necesarios
eficientemente y
Herramientas más
en un tiempo
sofisticadas aún.
razonable de un
UNPSJB - 2005
equipoIngeniería de Software - Clase 6 4
www.dsic.upv.es/~uml
Claves en Desarrollo de SI
Notación
Herramientas Proceso
Orden
Item
envío
Proceso de Negocios
Sistema Computacional
Rumbaugh
Booch Jacobson
Odell
Meyer
Pre- and Post-conditions
Shlaer-Mellor UML
Object life cycles
Harel
State Charts
Gamma et. al.
Frameworks, patterns,
notes
Embly Wirfs-Brock
Singleton classes Responsabilities
Fusion
Operation descriptions,
message numbering
UNPSJB - 2005 Ingeniería de Software - Clase 6 11
Aspectos Novedosos www.dsic.upv.es/~uml
Scenario State
Scenario State
Diagramas de
Diagrams Diagramas de
Diagrams
Diagrams Diagrams
Colaboración Modelo Componentes
Scenario Component
Scenario Component
Diagramas
Diagrams de
Diagramas de
Diagrams Diagrams
Diagrams Distribución
Estados Diagramas de
Actividad
UNPSJB - 2005 Ingeniería de Software - Clase 6 18
Organización de Modelos www.dsic.upv.es/~uml
Vista de
Vista Lógica Realización
Vista de los
Casos de Uso
Vista de Vista de
Procesos Distribución
Nombre de
paquete
para captura de
requisitos Tipos de Venta
[Tarjeta Caducada]
<<extend>>
Venta en Rebajas
Vendedor
<<include>>
Reintegro Cuenta Corriente
<<include>>
prestar(video, socio)
verificar situación socio
registrar préstamo
entregar recibo
:Socio
:Video
5: entregar recibo
: Encargado 4: registrar préstamo
:Préstamo
dirige director
Departamento Profesor
0..1 1
empleador trabajadores
Empresa Empleado
* 1..*
Cargo
superior
nombre
sueldo 0..1
subordinado 1..*
Trabajador
{ disjunta, completa }
1..4 1..2 1
1 n
n
1 n 1 n
Avión Vuelo Reserva
n
{ disjunta, completa }
{ disjunta, completa }
alta baja
número_préstamos = 0
sin préstamos
Socio
número : int
nombre : char[50]
número_prestamos : int = 0
prestar devolver[ número_préstamos = 1 ]
alta()
baja()
prestar(código_libro : int, fecha : date)
devolver(código_libro : int, fecha : date)
número_préstamos > 0
con préstamos
prestar
Encender máquina
/ cafetera.On
Café en preparación
indicador de fin
Servir café
Beber
Solicitar pasaje
Verificar
existencia vuelo
Informar alternativas
y precios
Seleccionar vuelo
Confirmar
Pagar pasaje plaza reservada
Emitir billete
Control y Análisis
Interf az de Terminal
Comment
Comment
Acceso a BD Comment
Comment
Rutinas de Coneccion
Comment
T erminal de Consulta
Interfaz de Terminal
Rutinas de Coneccion
Comment Comment
Punto de Venta
Rutinas de Coneccion
Comment
Comment Comment
Paradigma OO
Diagramas
Conceptos comunes
Proximidad de los conceptos de modelado durante
de modelado respecto de las el análisis, diseño e
entidades del mundo real implementación
Mejora captura y validación Facilita la transición
de requisitos
entre distintas fases
Acerca el “espacio del
problema” y el “espacio de la Favorece el desarrollo
solución” iterativo del sistema
Modelado integrado de Disipa la barrera
propiedades estáticas y entre el “qué” y el
dinámicas del ámbito del “cómo”
problema Sin embargo, existen
Facilita construcción, problemas ...
mantenimiento y reutilización
DFDs DEs
Enfoque Entornos de
Estructurado E-R Programación
Modelo Visual
Diagramas de Casos de Uso Relacional
Diagramas de Actividad
Diagramas de Secuencia
Diagramas de Colaboración d Modelo
Relacional !! Bases de Datos
(Objeto-)
Enfoque OO Diagrama de Clases
Relacionales
Diagrama de Estados
Diagramas de Actividad
particionan el conjunto
de necesidades
atendiendo a la Caso de Uso B
categoría de usuarios Actor B
que participan en el
mismo
Están basado en el
lenguaje natural, es
decir, es accesible por
los usuarios
UNPSJB - 2005 Ingeniería de Software - Clase 6 48
… Casos de Uso www.dsic.upv.es/~uml
Actores:
Principales: personas que usan el sistema
Secundarios: personas que mantienen o
administran el sistema
Material externo: dispositivos materiales
imprescindibles que forman parte del ámbito de la
aplicación y deben ser utilizados
Otros sistemas: sistemas con los que el sistema
interactúa
La misma persona física puede interpretar varios
papeles como actores distintos
El nombre del actor describe el papel
desempeñado
<<include>>
<<include>>
reemplazó al
Caso de Uso
Actor
denominado
<<uses>>
UNPSJB - 2005 Ingeniería de Software - Clase 6 51
… Casos de Uso: Relaciones
www.dsic.upv.es/~uml
Ejemplo:
Identificación
<<include>>
Transferencia
Cliente
<<extend>>
Transferencia en Internet
Ejemplo:
Un mensaje Un mensaje se
desencadena una
acción en el objeto envía de manera
destinatario condicionada:
Un mensaje se envía
si han sido enviados
los mensajes de una [x>y] 1: Mensaje
lista (sincronización): B
A
Otros ejemplos:
lista
pila
primero
ultimo apilar
añadir desapilar
quitar cardinalidad
cardinalidad
Ejemplo:
Reglas de visibilidad
+ "Operación pública"
# "Operación protegida"
- "Operación privada"
Universidad Estudiante
Una asociación
Ejemplo:
marido
casado-con 0.. 1
0.. 1 trabaja-para * Compañía
mujer Persona *
nombre emplea-a
jefe nombre
0.. 1 s. s. dirección
Administra * empleado
Especificación de multiplicidad
(mínima...máxima)
1 Uno y sólo uno
0..1 Cero o uno
M..N Desde M hasta N (enteros naturales)
* Cero o muchos
0..* Cero o muchos
1..* Uno o muchos (al menos uno)
La multiplicidad mínima >= 1 establece
una restricción de existencia
* 0..1
Aerolínea nro_billete Viajero
Tablero fila 1 1
columna
Cuadro
Ajedrez
1 contiene
Agregación Polígono 3.. *
Punto
{ordenado}
* * Persona
Cuenta Asociación excluyente
or
*
Empresa
1
* está-autorizado-en *
Usuario Estación
Autorización
prioridad
Clase de asociación privilegios
camb_privil
UNPSJB - 2005 Ingeniería de Software - Clase 6 86
Clases y Objetos www.dsic.upv.es/~uml
La Generalización y
Nombres usados: clase Especialización son
padre - clase hija. Otros equivalentes en
nombres: superclase - cuanto al resultado: la
subclase, clase base - jerarquía y herencia
clase derivada establecidas
Las subclases heredan Generalización y
propiedades de sus clases Especialización no son
padre, es decir, atributos operaciones reflexivas
y operaciones (y ni simétricas pero sí
asociaciones) de la clase transitivas
padre están disponibles
en sus clases hijas
Vehículo
Coche
Restricciones predefinidas
Funcionando Estropeadoen UML:
disjunta - no disjunta
total (completa) - parcial (incompleta)
Particionamiento del
La noción de clase está espacio de objetos =>
próxima a la de conjunto Clasificación Estática
Dada una clase, podemos Particionamiento del
ver el conjunto relativo a espacio de estados de
las instancias que posee o los objetos =>
bien relativo a las Clasificación Dinámica
propiedades de la clase En ambos casos se
Generalización y recomienda considerar
especialización expresan generalizaciones/espe
relaciones de inclusión cializaciones disjuntas
entre conjuntos
Un ejemplo de Clasificación
Estática:
Vehículo Aéreo
{ estática }
Avión Helicóptero
Un ejemplo de Clasificación
Dinámica:
Coche
{ dinámica }
Funcionando Estropeado
int(A) int(B)
ext(B) ext(A)
B
Clasificación Estática
C0
C1 Cn
Clasificación Dinámica
C0
ext(C0) = ext(Ci) completa
extt(Ci) extt(Cj) = disjunta en t
{ dinámica }
extt1(Ci) extt2(Cj) posiblemente
no disjunta en
C1 Cn diferentes
instantes
uso
Vehículo Aéreo
estructura
Avión Helicóptero
UNPSJB - 2005 Ingeniería de Software - Clase 6 98
www.dsic.upv.es/~uml
Clasificación Múltiple (herencia múltiple)
cubertura comida
Animal
Con Plumas cobertura
comida
cobertura Carnívoro
Con Escamas
Conejo
?
León Oso Tigre
Animal Dormir()
{
dormir()
}
Estados y Transiciones
A B
perder empleo
jubilarse
jubilarse
jubilado
estado A
entry: acción por entrar
exit: acción por salir
do: acción mientras en estado
on evento: acción
Ejemplo:
e1
A B
e2
e2
Quedaría como:
e1
Aa b
B
e2
C
UNPSJB - 2005 Ingeniería de Software - Clase 6 116
… Generalización de Estados
www.dsic.upv.es/~uml
e1
Aa Bb
e2
e0
e1
Aa b
B
e2 C
e0
La agregación de estados es la
composición de un estado a partir
de varios estados independientes
La composición es concurrente por
lo que el objeto estará en alguno de
los estados de cada uno de los
subestados concurrentes
Ejemplo:
e1
e1
Ejemplo:
Ejemplo:
A
d2
B
in
D x y
out
d1
C
H*
UNPSJB - 2005 Ingeniería de Software - Clase 6 123
… Historia www.dsic.upv.es/~uml
Ejemplo:
Espera
La destrucción de un objeto es
efectiva cuando el flujo de control
del autómata alcanza un estado
final no anidado
La llegada a un estado final anidado
implica la “subida” al superestado
asociado, no el fin del objeto
Ejemplo:
crash
En vuelo
despegar aterrizar
Crear(matricula)
En tierra
Ejemplo: A
/ Abrir ranura
Depósito efectuado
B
UNPSJB - 2005 Ingeniería de Software - Clase 6 128
Diagrama de Actividad www.dsic.upv.es/~uml
Ejemplo:
Nodo
<<RDSI>>
<<RDSI>>
Podemos distinguir tipos Control
de nodos y connexiones
por estereotipado
Enfoque Ericsson
UNPSJB - 2005 Ingeniería de Software - Clase 6 142
www.dsic.upv.es/~uml
Dos dimensiones
tiempo
Workflows (Disciplinas)
Workflows Primarios
Business Modeling (Modado del Negocio)
Requirements (Requisitos)
Analysis & Design (Análisis y Diseño)
Implementation (Implementación)
Test (Pruebas)
Deployment (Despliegue)
Workflows de Apoyo
Environment (Entorno)
Project Management (Gestión del Proyecto)
Workers Artefactos
UNPSJB - 2005 Ingeniería de Software - Clase 6 Actividades 146
... Elementos en RUP www.dsic.upv.es/~uml
Artefactos Conjuntos de
Resultado parcial o Artefactos
final que es producido Business Modeling
y usado durante el Set
proyecto. Son las Requirements Set
entradas y salidas de Analysis & Design Set
las actividades
Implementation Set
Un artefacto puede Test Set
ser un documento, un Deployment Set
modelo o un elemento
Project Management
de modelo Set
Configuration & Change
Management Set
Environment Set
Capturar, definir y
Requisitos
validar los casos de uso
Verificar que se
Pruebas satisfacen los casos
de uso
«trace» «trace»
«trace»
«trace»
Pruebas
Unitarias
Pruebas Funcionales X
Caso de Prueba
[The Unified Software Development Process. I. Jacobson, G. Booch and J. Rumbaugh. Addison-Wesley, 1999]
UNPSJB - 2005 Ingeniería de Software - Clase 6 153
..Proceso dirigido por los casos de Uso
www.dsic.upv.es/~uml
Análisis
Diseño
Codific.
n veces Pruebas e
Integración
UNPSJB - 2005 Ingeniería de Software - Clase 6 156
www.dsic.upv.es/~uml
... Proceso Iterativo e Incremental
Cada iteración comprende:
Planificar la iteración (estudio de riesgos)
Análisis de los Casos de Uso y escenarios
Diseño de opciones arquitectónicas
Codificación y pruebas. La integración del nuevo
código con el existente de iteraciones anteriores
se hace gradualmente durante la construcción
Evaluación de la entrega ejecutable (evaluación
del prototipo en función de las pruebas y de los
criterios definidos)
Preparación de la entrega (documentación e
instalación del prototipo)
Enfoque
Cascada
Enfoque
Iterativo e
Incremental
Architecture
UNPSJB - 2005 Ingeniería de Software - Clase 6 160
Fases del Ciclo de Vida www.dsic.upv.es/~uml
15%
Requisitos
Una iteración en la
fase de elaboración
Análisis
10%
Diseño 15%
Implementación
30%
Pruebas 15%
P re lim ina ry ite r. ite r. ite r. ite r. ite r. ite r. ite r.
Ite ra tion (s) #1 #2 #n # n+ 1 # n+2 #m #m +1
Requisitos
Una iteración en la
fase de elaboración
Análisis
Diseño
Implementación
Pruebas
Otro
Objeto
Banco de Valencia
Felipe
Cuenta Corriente 114
Azul
979 Kg
70 CV
...
Ejemplo de interacción:
Otro objeto
Un mensaje
Operacion 2
Un objeto
Operacion 1
… Comunicación
Categorías de objetos:
Activos - Pasivos
Cliente – Servidores, Agentes
Objeto Activo: posee un hilo de ejecución
(thread) propio y puede iniciar una
actividad
Objeto Pasivo: no puede iniciar una
actividad pero puede enviar estímulos una
vez que se le solicita un servicio
Cliente es el objeto que solicita un servicio.
Servidor es el objeto que provee el servicio
solicitado
UNPSJB - 2005 Ingeniería de Software - Clase 6 180
… Comunicación www.dsic.upv.es/~uml
Servidor 2
Un cliente
Objeto 1
: Mensaje A
Objeto 2
: Mensaje C : Mensaje E
Objeto 3 Objeto 4
: Mensaje D
UNPSJB - 2005 Ingeniería de Software - Clase 6 184
Mensaje y Estímulo www.dsic.upv.es/~uml