Documentos de Académico
Documentos de Profesional
Documentos de Cultura
1
www.dsic.upv.es/~uml
Contenido
I. Introducción
– Modelado de Software
– UML
II. Breve Tour por UML
III. El Paradigma Orientado a Objeto usando UML
– Fundamentos del Modelado OO
– Diagrama de Casos de Uso
– Diagramas de Interacciones
– Diagrama de Clases
– Diagrama de Estados / Diagramas de Actividad
– Diagrama de Componentes
– Diagrama de Despliegue
IV. Proceso de Desarrollo de SW basado en UML
V. Conclusiones
2
www.dsic.upv.es/~uml
Introducción
Modelado de SW
3
www.dsic.upv.es/~uml
I. Introducción: Modelado de SW
4
www.dsic.upv.es/~uml
I. Introducción: Modelado de SWI
Construcción de un rascacielos
6
www.dsic.upv.es/~uml
I. Introducción: Modelado de SWI
Claves en Desarrollo de SI
Notación
Herramientas Proceso
7
www.dsic.upv.es/~uml
I. Introducción: Modelado de SW
Orden
Item
envío
Proceso de Negocios
Sistema Computacional
8
www.dsic.upv.es/~uml
I. Introducción: Modelado de SW
9
www.dsic.upv.es/~uml
I. Introducción: Modelado de SW
Servidor de BDs
(C++ & SQL, ..)
MV promueve la reutilización
Múltiples Sistemas
Componentes
Reutilizados
11
www.dsic.upv.es/~uml
Introducción: UML
12
www.dsic.upv.es/~uml
I. Introducción: UML
¿Qué es UML?
UML = Unified Modeling Language
Un lenguaje de propósito general para el
modelado orientado a objetos
Documento “OMG Unified Modeling Language
Specification”
UML combina notaciones provenientes desde:
• Modelado Orientado a Objetos
• Modelado de Datos
• Modelado de Componentes
• Modelado de Flujos de Trabajo (Workflows)
13
www.dsic.upv.es/~uml
I. Introducción: UML
Situación de Partida
Diversos métodos y técnicas OO, con muchos aspectos
en común pero utilizando distintas notaciones
Inconvenientes para el aprendizaje, aplicación,
construcción y uso de herramientas, etc.
Pugna entre distintos enfoques (y correspondientes
gurús)
14
www.dsic.upv.es/~uml
I. Introducción: UML
Historia de UML
Comenzó como el “Método Unificado”, con la
participación de Grady Booch y Jim Rumbaugh.
Se presentó en el OOPSLA’95
El mismo año se unió Ivar Jacobson. Los “Tres
Amigos” son socios en la compañía Rational
Software. Herramienta CASE Rational Rose
15
www.dsic.upv.es/~uml
I. Introducción: UML
Historia de UML
2001 UML 2.0
16
www.dsic.upv.es/~uml
I. Introducción: UML
17
www.dsic.upv.es/~uml
I. Introducción: UML
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
18
www.dsic.upv.es/~uml
I. Introducción: UML
Aspectos Novedosos
Definición semi-formal del Metamodelo de UML
Mecanismos de Extensión en UML:
Stereotypes
Constraints
Tagged Values
Permiten adaptar los elementos de modelado,
asignándoles una semántica particular
19
www.dsic.upv.es/~uml
I. Introducción: UML
Inconvenientes en UML
Definición del proceso de desarrollo usando
UML. UML no es una metodología
Falta integración con respecto de otras técnicas
tales como patrones de diseño, interfaces de
usuario, documentación, etc.
Ejemplos aislados
“Monopolio de conceptos, técnicas y métodos
en torno a UML”
20
www.dsic.upv.es/~uml
I. Introducción: UML
Perspectivas de UML
UML será el lenguaje de modelado orientado a
objetos estándar predominante los próximos años
Razones:
• Participación de metodólogos influyentes
• Participación de importantes empresas
• Aceptación del OMG como notación estándar
Evidencias:
• Herramientas que proveen la notación UML
• “Edición” de libros
• Congresos, cursos, “camisetas”, etc.
21
www.dsic.upv.es/~uml
Breve Tour por UML
22
www.dsic.upv.es/~uml
II. Breve Tour por UML
Modelos y Diagramas
Un modelo captura una vista de un sistema del mundo
real. Es una abstracción de dicho sistema, considerando
un cierto propósito. Así, el modelo describe
completamente aquellos aspectos del sistema que son
relevantes al propósito del modelo, y a un apropiado nivel
de detalle.
Diagramas de UML
Diagrama de Casos de Uso
Diagrama de Clases
Diagrama de Objetos
Diagramas de Comportamiento
Diagrama de Estados
Diagrama de Actividad
Diagramas de Interacción
Diagrama de Secuencia
Diagrama de Colaboración
Diagramas de implementación
Diagrama de Componentes
Diagrama de Despliegue
25
www.dsic.upv.es/~uml
II. Breve Tour por 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
26
www.dsic.upv.es/~uml
II. Breve Tour por UML
Organización de Modelos
4+1 vistas de Kruchten (1995)
Vista de
Vista Lógica Realización
Vista de los
Casos de Uso
Vista de Vista de
Procesos Distribución
28
www.dsic.upv.es/~uml
II. Breve Tour por UML
Paquetes en UML
Los paquetes ofrecen un mecanismo general para
la organización de los modelos/subsistemas
agrupando elementos de modelado
Nombre de
paquete
29
www.dsic.upv.es/~uml
II. Breve Tour por UML
… Paquetes en UML
Cada paquete corresponde a un submodelo
(subsistema) del modelo (sistema)
30
www.dsic.upv.es/~uml
II. Breve Tour por UML
… Paquetes en UML
Todas las clases no son
necesariamente visibles desde el
exterior del paquete, es decir,
un paquete encapsula a la vez
que agrupa
Práctica 1
31
www.dsic.upv.es/~uml
II. Breve Tour por UML
… Paquetes en UML
Práctica 1
32
www.dsic.upv.es/~uml
II. Breve Tour por UML
33
www.dsic.upv.es/~uml
II. Breve Tour por UML
Ejemplos
Preparar Catálogo
Administrativo Sistema
Inventario
Tipos de Venta
34
www.dsic.upv.es/~uml
II. Breve Tour por UML
… Ejemplos
En el paquete tipos de venta:
Venta Normal
Venta en Rebajas
Vendedor
Venta en Ofertas
35
www.dsic.upv.es/~uml
II. Breve Tour por UML
… Ejemplos
Solicitar Préstamo
Cliente
[Tarjeta Caducada]
<<extend>>
36
www.dsic.upv.es/~uml
II. Breve Tour por UML
… Ejemplos
<<include>>
Reintegro Cuenta Corriente
<<include>>
Práctica 2
37
www.dsic.upv.es/~uml
II. Breve Tour por UML
Diagrama de Secuencia
prestar(video, socio)
verificar situación socio
registrar préstamo
entregar recibo
38
www.dsic.upv.es/~uml
II. Breve Tour por UML
Diagrama de Colaboración
:Socio
:Video
5: entregar recibo
: Encargado 4: registrar préstamo
:Préstamo
Práctica 3
39
www.dsic.upv.es/~uml
II. Breve Tour por UML
Diagrama de Clases
El Diagrama de Clases es el diagrama principal para el
análisis y diseño
Un diagrama de clases presenta las clases del sistema
con sus relaciones estructurales y de herencia
La definición de clase incluye definiciones para
atributos y operaciones
El modelo de casos de uso aporta información para
establecer las clases, objetos, atributos y operaciones
40
www.dsic.upv.es/~uml
II. Breve Tour por UML
41
www.dsic.upv.es/~uml
II. Breve Tour por UML
… Ejemplos (Asociación)
dirige director
Departamento Profesor
0..1 1
42
www.dsic.upv.es/~uml
II. Breve Tour por UML
empleador trabajadores
Empresa Empleado
* 1..*
Cargo
superior
nombre
sueldo 0..1
subordinado 1..*
43
www.dsic.upv.es/~uml
II. Breve Tour por UML
… Ejemplos (Generalización)
Trabajador
{ disjunta, completa }
44
www.dsic.upv.es/~uml
II. Breve Tour por UML
… Ejemplos
Motor Piloto Vendedor de billetes
1..4 1..2 1
1 n
n
1 n 1 n
Avión Vuelo Reserva
n
{ disjunta, completa }
{ disjunta, completa }
Prácticas 4-8
Avión de carga Avión de pasajeros
45
www.dsic.upv.es/~uml
II. Breve Tour por UML
Diagrama de Estados
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
46
www.dsic.upv.es/~uml
II. Breve Tour por UML
Diagrama de Actividad
[no hay café] [no zumo]
Buscar Bebida
[hay café [hay zumo]
Encender máquina
/ cafetera.On
Café en preparación
indicador de fin
Servir café
Beber
47
www.dsic.upv.es/~uml
II. Breve Tour por UML
Solicitar pasaje
Verificar
existencia vuelo
Informar alternativas
y precios
Seleccionar vuelo
Confirmar
Pagar pasaje plaza reservada
Emitir billete
Práctica 9
48
www.dsic.upv.es/~uml
II. Breve Tour por UML
Diagrama Componentes
Control y Análisis
Interf az de Terminal
Comment
Comment
49
www.dsic.upv.es/~uml
II. Breve Tour por UML
Diagrama de Despliegue
Servidor Central Control y Análisis
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
Práctica 10
50
www.dsic.upv.es/~uml
II. Breve Tour por UML
Resumen
51
www.dsic.upv.es/~uml
El Paradigma
Orientado a Objeto
usando UML
52
www.dsic.upv.es/~uml
III. El Paradigma Orientado a Objeto
53
www.dsic.upv.es/~uml
III. El Paradigma Orientado a Objeto
54
www.dsic.upv.es/~uml
III. El Paradigma Orientado a Objeto
Problemas en OO
55
www.dsic.upv.es/~uml
III. El Paradigma Orientado a Objeto
… Problemas en OO
Un objeto contiene datos y operaciones que operan
sobre los datos, pero ...
Podemos distinguir dos tipos de objetos degenerados:
• Un objeto sin datos (que sería lo mismo que una biblioteca
de funciones)
• Un objeto sin “operaciones”, con sólo operaciones del tipo
crear, recuperar, actualizar y borrar (que se correspondería
con las estructuras de datos tradicionales)
Un sistema construido con objetos degenerados no es
un sistema verdaderamente orientado a objetos
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
57
www.dsic.upv.es/~uml
Fundamentos de Modelado OO
58
www.dsic.upv.es/~uml
III. El Paradigma OO: Fundamentos de Modelado OO
Objetos
Objeto = unidad atómica que encapsula estado
y comportamiento
59
www.dsic.upv.es/~uml
III. El Paradigma OO: Fundamentos de Modelado OO
… Objetos
El Modelado de Objetos permite representar el
ciclo de vida de los objetos a través de sus
interacciones
En UML, un objeto se representa por un
rectángulo con un nombre subrayado
Otro
Objeto
Un Objeto
más
Otro
Objeto
60
www.dsic.upv.es/~uml
III. El Paradigma OO: Fundamentos de Modelado OO
… Objetos
Ejemplo de varios objetos relacionados:
Banco de Valencia
Felipe
Cuenta Corriente 114
61
www.dsic.upv.es/~uml
III. El Paradigma OO: Fundamentos de Modelado OO
… Objetos
Objeto = Identidad + Estado + Comportamiento
El estado está representado por los valores de los
atributos
Un atributo toma un valor en un dominio concreto
Un coche
Azul
979 Kg
70 CV
...
62
www.dsic.upv.es/~uml
III. El Paradigma OO: Fundamentos de Modelado OO
Clases y Objetos
63
www.dsic.upv.es/~uml
III. El Paradigma OO: Fundamentos de Modelado OO
Identidad
Oid (Object Identifier)
Cada objeto posee un oid. El oid establece la identidad
del objeto y tiene las siguientes características:
64
www.dsic.upv.es/~uml
III. El Paradigma OO: Fundamentos de Modelado OO
… Identidad
Es independiente de las propiedades del objeto, lo cual
implica independencia de valor y de estructura
Estado
El estado evoluciona con el tiempo
Algunos atributos pueden ser constantes
El comportamiento agrupa las competencias de
un objeto y describe las acciones y reacciones
de ese objeto
66
www.dsic.upv.es/~uml
III. El Paradigma OO: Fundamentos de Modelado OO
Comportamiento
Ejemplo de interacción:
Otro objeto
Un mensaje
Operacion 2
Un objeto
Operacion 1
67
www.dsic.upv.es/~uml
III. El Paradigma OO: Fundamentos de Modelado OO
… Comportamiento
Los mensajes navegan por los enlaces, a
priori en ambas direcciones
68
www.dsic.upv.es/~uml
III. El Paradigma OO: Fundamentos de Modelado OO
Persistencia
La persistencia de los objetos designa la
capacidad de un objeto trascender en el
espacio/tiempo
Podremos después reconstruirlo, es decir,
cogerlo de memoria secundaria para utilizarlo
en la ejecución (materialización del objeto)
Comunicación
Un sistema informático puede verse como un
conjunto de objetos autónomos y concurrentes
que trabajan de manera coordinada en la
consecución de un fin específico
70
www.dsic.upv.es/~uml
III. El Paradigma OO: Fundamentos de Modelado OO
… 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
71
www.dsic.upv.es/~uml
III. El Paradigma OO: Fundamentos de Modelado OO
… Comunicación
Los agentes reúnen las características de
clientes y servidores
72
www.dsic.upv.es/~uml
III. El Paradigma OO: Fundamentos de Modelado OO
… Comunicación
Ejemplo en el que un agente hace de aislante:
Sevidor 1
Un agente
Servidor 2
Un cliente
73
www.dsic.upv.es/~uml
III. El Paradigma OO: Fundamentos de Modelado OO
El Concepto de Mensaje
La unidad de comunicación entre objetos se
llama mensaje
El mensaje es el soporte de una comunicación
que vincula dinámicamente los objetos que
fueron separados previamente en el proceso
de descomposición
Adquiere toda su fuerza cuando se asocia al
polimorfismo y al enlace dinámico
74
www.dsic.upv.es/~uml
III. El Paradigma OO: Fundamentos de Modelado OO
… El Concepto de Mensaje
Objeto 1
: Mensaje A
Objeto 2
: Mensaje C : Mensaje E
Objeto 3 Objeto 4
: Mensaje D
75
www.dsic.upv.es/~uml
III. El Paradigma OO: Fundamentos de Modelado OO
Mensaje y Estímulo
Un estímulo causará la invocación de una operación, la
creación o destrucción de un objeto o la aparición de
una señal
Un mensaje es la especificación de un estímulo
76
www.dsic.upv.es/~uml
III. El Paradigma OO: Diagrama de Casos de Uso
77
www.dsic.upv.es/~uml
III. El Paradigma OO: Diagrama de Casos de Uso
Casos de Uso
Los Casos de Uso (Ivar Jacobson) describen
bajo la forma de acciones y reacciones el
comportamiento de un sistema desde el p.d.v.
del usuario
Permiten definir los límites del sistema y las
relaciones entre el sistema y el entorno
Los Casos de Uso son descripciones de la
funcionalidad del sistema independientes de la
implementación
Comparación con respecto a los Diagramas de
Flujo de Datos del Enfoque Estructurado
78
www.dsic.upv.es/~uml
III. El Paradigma OO: Diagrama de Casos de Uso
… Casos de Uso
Los Casos de Uso cubren la carencia existente
en métodos previos (OMT, Booch) en cuanto a la
determinación de requisitos
79
www.dsic.upv.es/~uml
III. El Paradigma OO: Diagrama de Casos de Uso
… Casos de Uso
Ejemplo:
Caso de Uso A
Actor A
Caso de Uso B
Actor B
80
www.dsic.upv.es/~uml
III. El Paradigma OO: Diagrama de Casos de Uso
… Casos de Uso
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
81
www.dsic.upv.es/~uml
III. El Paradigma OO: Diagrama de Casos de Uso
… Casos de Uso
Los Casos de Uso se determinan observando y
precisando, actor por actor, las secuencias de
interacción, los escenarios, desde el punto de vista del
usuario
82
www.dsic.upv.es/~uml
III. El Paradigma OO: Diagrama de Casos de Uso
• Comunicación
Caso de Uso
Actor
83
www.dsic.upv.es/~uml
III. El Paradigma OO: Diagrama de Casos de Uso
<<include>>
84
www.dsic.upv.es/~uml
III. El Paradigma OO: Diagrama de Casos de Uso
<<extend>>
85
www.dsic.upv.es/~uml
III. El Paradigma OO: Diagrama de Casos de Uso
86
www.dsic.upv.es/~uml
III. El Paradigma OO: Diagrama de Casos de Uso
Transferencia
Cliente
<<extend>>
Transferencia en Internet
87
www.dsic.upv.es/~uml
III. El Paradigma OO: Diagrama de Casos de Uso
88
www.dsic.upv.es/~uml
III. El Paradigma OO: Diagrama de Casos de Uso
Práctica 11
92
www.dsic.upv.es/~uml
Diagramas de Interacción
93
www.dsic.upv.es/~uml
III. El Paradigma OO: Diagramas de Interacción
Interacción
Los objetos interactúan para realizar
colectivamente los servicios ofrecidos por las
aplicaciones. Los diagramas de interacción
muestran cómo se comunican los objetos en
una interacción
94
www.dsic.upv.es/~uml
III. El Paradigma OO: Diagramas de Interacción
Mensajes
95
www.dsic.upv.es/~uml
III. El Paradigma OO: Diagramas de Interacción
Diagramas de interacción
El Diagrama de Secuencia es más adecuados
para observar la perspectiva cronológica de las
interacciones
96
www.dsic.upv.es/~uml
III. El Paradigma OO: Diagramas de Interacción
Diagrama de Secuencia
Muestra la secuencia de mensajes entre
objetos durante un escenario concreto
Cada objeto viene dado por una barra
vertical
El tiempo transcurre de arriba abajo
Cuando existe demora entre el envío y la
atención se puede indicar usando una línea
oblicua
97
www.dsic.upv.es/~uml
III. El Paradigma OO: Diagramas de Interacción
… Diagrama de Secuencia
98
www.dsic.upv.es/~uml
III. El Paradigma OO: Diagramas de Interacción
Diagrama de Secuencia
mostrando foco de control,
condiciones, recursión
creación y destrucción
de objetos
99
www.dsic.upv.es/~uml
III. El Paradigma OO: Diagramas de Interacción
… Diagrama de Secuencia
100
www.dsic.upv.es/~uml
III. El Paradigma OO: Diagramas de Interacción
Diagrama de Colaboración
Son útiles en la fase exploratoria para
identificar objetos
101
www.dsic.upv.es/~uml
III. El Paradigma OO: Diagramas de Interacción
Mensajes
Un mensaje desencadena una acción en el
objeto destinatario
102
www.dsic.upv.es/~uml
III. El Paradigma OO: Diagramas de Interacción
… Mensajes
Un mensaje se envía de manera condicionada:
[x>y] 1: Mensaje
B
103
www.dsic.upv.es/~uml
III. El Paradigma OO: Diagramas de Interacción
… Mensajes
Un mensaje que devuelve un resultado:
1: distancia:= mover(x,y)
B
Práctica 12
104
www.dsic.upv.es/~uml
Diagrama de Clases
105
www.dsic.upv.es/~uml
III. El Paradigma OO: Diagrama de Clases
Clasificación
El mundo real puede ser visto desde abstracciones
diferentes (subjetividad)
Mecanismos de abstracción:
• Clasificación / Instanciación
• Composición / Descomposición
• Agrupación / Individualización
• Especialización / Generalización
106
www.dsic.upv.es/~uml
III. El Paradigma OO: Diagrama de Clases
Clases
107
www.dsic.upv.es/~uml
III. El Paradigma OO: Diagrama de Clases
arrancar
acelerar
frenar
108
www.dsic.upv.es/~uml
III. El Paradigma OO: Diagrama de Clases
lista
pila
primero
ultimo apilar
añadir desapilar
quitar cardinalidad
cardinalidad
109
www.dsic.upv.es/~uml
III. El Paradigma OO: Diagrama de Clases
Clases: Encapsulación
La encapsulación presenta dos ventajas básicas:
• Se protegen los datos de accesos indebidos
• El acoplamiento entre las clases se disminuye
• Favorece la modularidad y el mantenimiento
110
www.dsic.upv.es/~uml
III. El Paradigma OO: Diagrama de Clases
… Clases: Encapsulación
Los niveles de encapsulación están heredados de los
niveles de C++:
111
www.dsic.upv.es/~uml
III. El Paradigma OO: Diagrama de Clases
… Clases: Encapsulación
Ejemplo:
Reglas de visibilidad
+ "Operación pública"
# "Operación protegida"
- "Operación privada"
112
www.dsic.upv.es/~uml
III. El Paradigma OO: Diagrama de Clases
113
www.dsic.upv.es/~uml
III. El Paradigma OO: Diagrama de Clases
Asociación
La asociación expresa una conexión bidireccional
entre objetos
Una asociación es una abstracción de la relación
existente en los enlaces entre los objetos
Universidad Estudiante
Una asociación
114
www.dsic.upv.es/~uml
III. El Paradigma OO: Diagrama de Clases
… 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
115
www.dsic.upv.es/~uml
III. El Paradigma OO: Diagrama de Clases
… Asociación
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)
116
www.dsic.upv.es/~uml
III. El Paradigma OO: Diagrama de Clases
Asociación Cualificada
* 0..1
Aerolínea nro_billete Viajero
Tablero fila 1 1
columna
Cuadro
Ajedrez
117
www.dsic.upv.es/~uml
III. El Paradigma OO: Diagrama de Clases
Agregación
La agregación representa una relación parte_de
entre objetos
118
www.dsic.upv.es/~uml
III. El Paradigma OO: Diagrama de Clases
Agregación: Caracterización
Caracterizaciones relacionadas con la multiplicidad
120
www.dsic.upv.es/~uml
III. El Paradigma OO: Diagrama de Clases
Ejemplos
121
www.dsic.upv.es/~uml
III. El Paradigma OO: Diagrama de Clases
... Ejemplos
122
www.dsic.upv.es/~uml
III. El Paradigma OO: Diagrama de Clases
… Ejemplos
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
123
www.dsic.upv.es/~uml
III. El Paradigma OO: Diagrama de Clases
Clases y Objetos
Diagrama de Clases y Diagramas de Objetos
pertenecen a dos vistas complementarias del
modelo
Un Diagrama de Clases muestra la
abstracción de una parte del dominio
124
www.dsic.upv.es/~uml
III. El Paradigma OO: Diagrama de Clases
Generalización
Permite gestionar la complejidad mediante un
ordenamiento taxonómico de clases
Se obtiene usando los mecanismos de
abstracción de Generalización y/o Especialización
La Generalización consiste en factorizar las
propiedades comunes de un conjunto de clases
en una clase más general
125
www.dsic.upv.es/~uml
III. El Paradigma OO: Diagrama de Clases
... Generalización
Nombres usados: clase padre - clase hija.
Otros nombres: superclase - subclase, clase
base - clase derivada
126
www.dsic.upv.es/~uml
III. El Paradigma OO: Diagrama de Clases
... Generalización
127
www.dsic.upv.es/~uml
III. El Paradigma OO: Diagrama de Clases
... Generalización
Vehículo
128
www.dsic.upv.es/~uml
III. El Paradigma OO: Diagrama de Clases
... Generalización
La especialización es una técnica muy eficaz para la
extensión y reutilización
Coche
Funcionando Estropeado
... Generalización
La noción de clase está próxima a la de
conjunto
130
www.dsic.upv.es/~uml
III. El Paradigma OO: Diagrama de Clases
... Generalización
Particionamiento del espacio de objetos =>
Clasificación Estática
131
www.dsic.upv.es/~uml
III. El Paradigma OO: Diagrama de Clases
... Generalización
Un ejemplo de Clasificación Estática:
Vehículo Aéreo
{ estática }
Avión Helicóptero
132
www.dsic.upv.es/~uml
III. El Paradigma OO: Diagrama de Clases
... Generalización
Un ejemplo de Clasificación Dinámica:
Coche
{ dinámica }
Funcionando Estropeado
133
www.dsic.upv.es/~uml
III. El Paradigma OO: Diagrama de Clases
... Generalización
Extensión: Posibles instancias de una clase
int(A) int(B)
ext(B) ext(A)
B
134
www.dsic.upv.es/~uml
III. El Paradigma OO: Diagrama de Clases
... Generalización
Clasificación Estática
C0
C1 Cn
135
www.dsic.upv.es/~uml
III. El Paradigma OO: Diagrama de Clases
... Generalización
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
136
www.dsic.upv.es/~uml
III. El Paradigma OO: Diagrama de Clases
... Generalización
Ejemplo: varias especializaciones a partir de la
misma clase padre, usando discriminadores:
Comercial Militar
uso
Vehículo Aéreo
estructura
Avión Helicóptero
137
www.dsic.upv.es/~uml
III. El Paradigma OO: Diagrama de Clases
138
www.dsic.upv.es/~uml
III. El Paradigma OO: Diagrama de Clases
… Herencia Múltiple
Uso disciplinado de la herencia múltiple:
clasificaciones disjuntas con clases padre en hojas
de jerarquías alternativas
Bípedo Cuadrúpedo
cubertura comida
Animal
Con Plumas cobertura
comida
cobertura Carnívoro
Con Escamas
Conejo
139
www.dsic.upv.es/~uml
III. El Paradigma OO: Diagrama de Clases
Principio de Sustitución
El Principio de Sustitución de Liskow (1987)
afirma que:
140
www.dsic.upv.es/~uml
III. El Paradigma OO: Diagrama de Clases
… Principio de Sustitución
Dado que los programadores pueden introducir
código en las subclases redefiniendo las
operaciones, es posible introducir involuntaria-
mente incoherencias que violen el principio de
sustitución
141
www.dsic.upv.es/~uml
III. El Paradigma OO: Diagrama de Clases
Polimorfismo
El término polimorfismo se refiere a que una
característica de una clase puede tomar
varias formas
El polimorfismo representa en nuestro caso
la posibilidad de desencadenar operaciones
distintas en respuesta a un mismo mensaje
Cada subclase hereda las operaciones pero
tiene la posibilidad de modificar localmente
el comportamiento de estas operaciones
142
www.dsic.upv.es/~uml
III. El Paradigma OO: Diagrama de Clases
… Polimorfismo
Ejemplo: todo animal duerme, pero cada
clase lo hace de forma distinta
Animal
dormir()
?
dormir
?
León Oso Tigre
143
www.dsic.upv.es/~uml
III. El Paradigma OO: Diagrama de Clases
… Polimorfismo
Animal Dormir()
{
dormir()
}
144
www.dsic.upv.es/~uml
III. El Paradigma OO: Diagrama de Clases
… Polimorfismo
La búsqueda automática del código que en
cada momento se va a ejecutar es fruto del
enlace dinámico
145
www.dsic.upv.es/~uml
Diagrama de Estados
146
www.dsic.upv.es/~uml
III. El Paradigma OO: Diagrama de Estados
Diagrama de Estados
Los Diagramas de Estados representan
autómatas de estados finitos, desde el p.d.v.
de los estados y las transiciones
147
www.dsic.upv.es/~uml
III. El Paradigma OO: Diagrama de Estados
… Diagrama de Estados
Cada objeto está en un estado en cierto instante
El estado está caracterizado parcialmente por los
valores algunos de los atributos del objeto
El estado en el que se encuentra un objeto
determina su comportamiento
Cada objeto sigue el comportamiento descrito en
el D. de Estados asociado a su clase
Los D. De Estados y escenarios son complementarios
148
www.dsic.upv.es/~uml
III. El Paradigma OO: Diagrama de Estados
… Diagrama de Estados
Los D. de Estados son autómatas jerárquicos
que permiten expresar concurrencia,
sincronización y jerarquías de objetos
Los D. de Estados son grafos dirigidos
Los D. De Estados de UML son deterministas
Los estados inicial y final están diferenciados del
resto
La transición entre estados es instantánea y se
debe a la ocurrencia de un evento
149
www.dsic.upv.es/~uml
III. El Paradigma OO: Diagrama de Estados
… Diagrama de Estados
Estados y Transiciones
A B
150
www.dsic.upv.es/~uml
III. El Paradigma OO: Diagrama de Estados
… Diagrama de Estados
Ejemplo de un Diagrama de Estados para la
clase persona:
contratar
en el paro en activo
perder empleo
jubilarse
jubilarse
jubilado
151
www.dsic.upv.es/~uml
III. El Paradigma OO: Diagrama de Estados
Acciones
Podemos especificar la solicitud de un
servicio a otro objeto como consecuencia de
la transición:
152
www.dsic.upv.es/~uml
III. El Paradigma OO: Diagrama de Estados
… Acciones
Se puede especificar el ejecutar una acción
como consecuencia de entrar, salir, estar en
un estado, o por la ocurrencia de un evento:
estado A
entry: acción por entrar
exit: acción por salir
do: acción mientras en estado
on evento: acción
153
www.dsic.upv.es/~uml
III. El Paradigma OO: Diagrama de Estados
Generalización de Estados
Podemos reducir la complejidad de estos
diagramas usando la generalización de
estados
Distinguimos así entre superestado y
subestados
Un estado puede contener varios subestados
disjuntos
Los subestados heredan las variables de
estado y las transiciones externas
154
www.dsic.upv.es/~uml
III. El Paradigma OO: Diagrama de Estados
Generalización de Estados
Ejemplo:
e1
A B
e2
e2
155
www.dsic.upv.es/~uml
III. El Paradigma OO: Diagrama de Estados
Generalización de Estados
Quedaría como:
e1
Aa b
B
e2
156
www.dsic.upv.es/~uml
III. El Paradigma OO: Diagrama de Estados
… Generalización de Estados
Las transiciones de entrada deben ir hacia
subestados específicos:
e1
Aa Bb
e2
e0
157
www.dsic.upv.es/~uml
III. El Paradigma OO: Diagrama de Estados
… Generalización de Estados
Es preferible tener estados iniciales de
entrada a un nivel de manera que desde los
niveles superiores no se sepa a qué
subestado se entra:
e1
Aa b
B
e2 C
e0
158
www.dsic.upv.es/~uml
III. El Paradigma OO: Diagrama de Estados
… Generalización de Estados
La agregación de estados es la composición
de un estado a partir de varios estados
independientes
159
www.dsic.upv.es/~uml
III. El Paradigma OO: Diagrama de Estados
… Generalización de Estados
Ejemplo:
e1
e1
160
www.dsic.upv.es/~uml
III. El Paradigma OO: Diagrama de Estados
… Generalización de Estados
Ejemplo:
161
www.dsic.upv.es/~uml
III. El Paradigma OO: Diagrama de Estados
Historia
Por defecto, los autómatas no tienen
memoria
Es posible memorizar el último subestado
visitado para recuperarlo en una transición
entrante en el superestado que lo engloba
162
www.dsic.upv.es/~uml
III. El Paradigma OO: Diagrama de Estados
… Historia
Ejemplo:
A
d2
B
in
D x y
out
d1
C
H*
163
www.dsic.upv.es/~uml
III. El Paradigma OO: Diagrama de Estados
… Historia
Ejemplo:
Espera
164
www.dsic.upv.es/~uml
III. El Paradigma OO: Diagrama de Estados
165
www.dsic.upv.es/~uml
III. El Paradigma OO: Diagrama de Estados
… Destrucción de Objeto
Ejemplo:
crash
En vuelo
despegar aterrizar
Crear(matricula)
En tierra
166
www.dsic.upv.es/~uml
III. El Paradigma OO: Diagrama de Estados
Transiciones temporizadas
Las esperas son actividades que tienen
asociada cierta duración
167
www.dsic.upv.es/~uml
III. El Paradigma OO: Diagrama de Estados
… Transiciones temporizadas
Ejemplo: A
/ Abrir ranura
Depósito efectuado
168
www.dsic.upv.es/~uml
III. El Paradigma OO: Diagrama de Estados
Diagrama de Actividad
El Diagrama de Actividad es una especialización
del Diagrama de Estado, organizado respecto
de las acciones y usado para especificar:
• Un método
• Un caso de uso
• Un proceso de negocio (Workflow)
169
www.dsic.upv.es/~uml
III. El Paradigma OO: Diagrama de Estados
Ejemplos
170
www.dsic.upv.es/~uml
III. El Paradigma OO: Diagrama de Estados
... Ejemplos
171
www.dsic.upv.es/~uml
III. El Paradigma OO: Diagrama de Estados
... Ejemplos
172
www.dsic.upv.es/~uml
Diagrama de Componentes
173
www.dsic.upv.es/~uml
III. El Paradigma OO: Diagrama de Componentes
Diagrama de Componentes
Los diagramas de componentes describen los
elementos físicos del sistema y sus relaciones
174
www.dsic.upv.es/~uml
III. El Paradigma OO: Diagrama de Componentes
...Diagrama de Componentes
Los componentes representan todos los tipos
de elementos software que entran en la
fabricación de aplicaciones informáticas.
Pueden ser simples archivos, paquetes de
Ada, bibliotecas cargadas dinámicamente,
etc.
175
www.dsic.upv.es/~uml
III. El Paradigma OO: Diagrama de Despliegue
… Diagramas de Componentes
Ejemplo:
176
www.dsic.upv.es/~uml
Diagrama de Despliegue
177
www.dsic.upv.es/~uml
III. El Paradigma OO: Diagrama de Despliegue
Diagrama de Despliegue
Los Diagramas de Despliegue muestran la
disposición física de los distintos nodos que
componen un sistema y el reparto de los
componentes sobre dichos nodos
Nodo
178
www.dsic.upv.es/~uml
III. El Paradigma OO: Diagrama de Despliegue
… Diagrama de Despliegue
Los estereotipos permiten precisar la
naturaleza del equipo:
• Dispositivos
• Procesadores
• Memoria
179
www.dsic.upv.es/~uml
III. El Paradigma OO: Diagrama de Despliegue
… Diagrama de Despliegue
Ejemplo de conexión entre nodos:
<<Cliente>> <<Servidor>>
Terminal Punto <<TCP/IP>>
Base de
de Venta Datos
<<RDSI>>
<<RDSI>>
Podemos distinguir tipos Control
de nodos y connexiones
por estereotipado
180
www.dsic.upv.es/~uml
Proceso de Desarrollo
de SW basado en UML
181
www.dsic.upv.es/~uml
IV. Proceso de Desarrollo de SW basado en UML
Historia de RUP
Enfoque Ericsson
183
www.dsic.upv.es/~uml
IV. Proceso de Desarrollo de SW basado en UML
Dos Dimensiones
184
www.dsic.upv.es/~uml
IV. Proceso de Desarrollo de SW basado en UML
tiempo
185
www.dsic.upv.es/~uml
IV. Proceso de Desarrollo de SW basado en UML
Elementos en RUP
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)
• Configuration & Change Management (Gestión de Configuración y
Cambios)
186
www.dsic.upv.es/~uml
IV. Proceso de Desarrollo de SW basado en UML
Workers Artefactos
Actividades 187
www.dsic.upv.es/~uml
IV. Proceso de Desarrollo de SW basado en UML
189
www.dsic.upv.es/~uml
IV. Proceso de Desarrollo de SW basado en UML
Test Set
190
www.dsic.upv.es/~uml
IV. Proceso de Desarrollo de SW basado en UML
191
www.dsic.upv.es/~uml
IV. Proceso de Desarrollo de SW basado en UML
192
www.dsic.upv.es/~uml
IV. Proceso de Desarrollo de SW basado en UML
Capturar, definir y
Requisitos
validar los casos de uso
Verificar que se
Pruebas satisfacen los casos
de uso
193
www.dsic.upv.es/~uml
IV. Proceso de Desarrollo de SW basado en UML
«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]
194
www.dsic.upv.es/~uml
IV. Proceso de Desarrollo de SW basado en UML
195
www.dsic.upv.es/~uml
IV. Proceso de Desarrollo de SW basado en UML
196
www.dsic.upv.es/~uml
IV. Proceso de Desarrollo de SW basado en UML
Análisis
Diseño
Codific.
n veces Pruebas e
Integración
197
www.dsic.upv.es/~uml
IV. Proceso de Desarrollo de SW basado en UML
Enfoque
Cascada
Enfoque
Iterativo e
Incremental
199
www.dsic.upv.es/~uml
IV. Proceso de Desarrollo de SW basado en UML
200
www.dsic.upv.es/~uml
IV. Proceso de Desarrollo de SW basado en UML
Architecture
201
www.dsic.upv.es/~uml
IV. Proceso de Desarrollo de SW basado en UML
202
www.dsic.upv.es/~uml
IV. Proceso de Desarrollo de SW basado en UML
Elaboración
• Tanto la funcionalidad como el dominio del
problema se estudian en profundidad
• Se define una arquitectura básica
• Se planifica el proyecto considerando recursos
disponibles
203
www.dsic.upv.es/~uml
IV. Proceso de Desarrollo de SW basado en UML
204
www.dsic.upv.es/~uml
IV. Proceso de Desarrollo de SW basado en UML
205
www.dsic.upv.es/~uml
Esfuerzo respecto de las Workflows
Inception Elaboration Construction Transition
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
208
www.dsic.upv.es/~uml
V. Conclusiones
Claves en el Desarrollo de SI
Notación
UML
Herramientas Proceso
p.e. Rational Rose p.e. Rational Unified Process
209
www.dsic.upv.es/~uml
V. Conclusiones
Contexto de Desarrollo:
Grado de Complejidad
210
www.dsic.upv.es/~uml
V. Conclusiones
... Finalmente
Apostar por enfoque Orientado a Objetos
usando notación UML
Problemas actuales en implementación, al usar
entornos de programación visual y/o bases de
datos relacionales
Posibles mejoras a mediano plazo
• Evolución: Uso de BDOO y/o mejoras en los LPOO
• Revolución: Generación Automática de Código a
partir de Modelos OO (Compilación de Modelos)
212
www.dsic.upv.es/~uml
V. Conclusiones
Bibliografía Recomendada
UML
• www.omg.org/uml/
• Meta-links www.celigent.com/uml/ y www.cetus-links.org/oo_uml.html
• Pierre-Alain Muller “Instant UML”
• Martin Fowler, “UML Destilled” (“UML Gota a Gota”)
• Terry Quatrani, “Visual Modeling ...”, un caso de estudio
Herramientas CASE
• Herramientas basadas en UML
www.objectsbydesign.com/tools/umltools_byPrice.html
• International Council in SE (INCOSE) www.incose.org/tools/
• Herramientas basadas en UML
www.objectsbydesign.com/tools/umltools_byPrice.html
Otras
• Revista IEEE Software, Conferencias: OOPSLA, ECOOP
• Patrones www.enteract.com/bradapp/docs/patterns-intro.html,
• Tutoriales en inglés www.celigent.com/omg/umlrtf/tutorials.htm
213
www.dsic.upv.es/~uml