Documente Academic
Documente Profesional
Documente Cultură
1
www.dsic.upv.es/~uml
I. Introducción: Modelado de SW
2
www.dsic.upv.es/~uml
I. Introducción: Modelado de SW
Construcción de un rascacielos
4
www.dsic.upv.es/~uml
I. Introducción: Modelado de SW
Claves en Desarrollo de SI
Notación
Herramientas Proceso
5
www.dsic.upv.es/~uml
I. Introducción: Modelado de SW
Orden
Item
envío
Proceso de Negocios
Sistema Computacional
6
www.dsic.upv.es/~uml
I. Introducción: Modelado de SW
Interface de Usuario
(Visual Basic,
Java, ..)
Lógica del Negocio
(C++, Java, ..)
Múltiples Sistemas
Servidor de BDs
(C++ & SQL, ..)
“Modelar el sistema
independientemente Componentes
del lenguaje de Reutilizados
implementación”
Promover la Reutilización
7
www.dsic.upv.es/~uml
Introducción: UML
8
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. Impulsado por el Object Management Group
(OMG, www.omg.org)
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)
9
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
10
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
11
www.dsic.upv.es/~uml
I. Introducción: UML
Historia de UML
2005? UML 2.0
2003 UML 1.5
2000 UML 1.4
12
www.dsic.upv.es/~uml
I. Introducción: UML
13
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
14
www.dsic.upv.es/~uml
I. Introducción: UML
Aspectos Novedosos
Definición semi-formal del Metamodelo de UML
15
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
No cubre todas las necesidades de especificación de un
proyecto software. Por ejemplo, no define los
documentos textuales
Ejemplos aislados
16
www.dsic.upv.es/~uml
I. Introducción: UML
Perspectivas de UML
UML es el lenguaje de modelado orientado a objetos
estándar predominante ahora y en los próximos años
Razones:
• Participación de metodólogos influyentes
• Participación de importantes empresas
• Estándar del OMG
Evidencias:
• Herramientas que proveen la notación UML
• “Edición” de libros (más de 300 en www.amazon.com)
• Congresos, cursos, “camisetas”, etc.
17
www.dsic.upv.es/~uml
II
Breve Tour por UML
18
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 completa-
mente aquellos aspectos del sistema que son relevantes
al propósito del modelo, y a un apropiado nivel de detalle.
19
www.dsic.upv.es/~uml
II. Breve Tour por UML
20
www.dsic.upv.es/~uml
II. Breve Tour por UML
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
21
www.dsic.upv.es/~uml
II. Breve Tour por UML
Scenario State
Scenario State
Diagramas de
Diagrams Diagramas de
Diagrams
Diagrams Diagrams
Colaboración Modelos Componentes
Scenario Component
Scenario Component
Diagramas
Diagrams de
Diagramas de
Diagrams Diagrams
Diagrams Distribución
Estados Diagramas de
Actividad
22
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
25
www.dsic.upv.es/~uml
II. Breve Tour por UML
… Ejemplos
Ejemplo:
Retirar dinero
Consultar Extracto
Cliente
Realizar transferencia
Práctica 2
26
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
27
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
28
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 del sistema
Alumno
DNI : char[10]
número_exp : int
nombre : char[50]
alta()
poner_nota(asignatura : char *, año : int, nota : float)
matricular(cursos : asignatura, año : int)
listar_expediente()
30
www.dsic.upv.es/~uml
II. Breve Tour por UML
… Ejemplos (Asociación)
dirige director
Departamento Profesor
0..1 1
31
www.dsic.upv.es/~uml
II. Breve Tour por UML
empleador trabajadores
Empresa Empleado
* 1..*
Cargo
superior
nombre
sueldo 0..1
subordinado 1..*
32
www.dsic.upv.es/~uml
II. Breve Tour por UML
… Ejemplos (Generalización)
Trabajador
{ disjunta, completa }
33
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
Avión de carga Avión de pasajeros
34
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
35
www.dsic.upv.es/~uml
II. Breve Tour por UML
Diagrama de Actividad
Buscar Bebida [ no hay café ] [ no zumo ]
[ hay café ]
[ hay zumo ]
Encender
máquina
/ cafetera.On
Café en
preparación
indicador de fin
Práctica 5 36
www.dsic.upv.es/~uml
II. Breve Tour por UML
Diagrama Componentes
Interfaz de Terminal
Control y Análisis
37
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
Terminal de Consulta
Interfaz de Terminal
Rutinas de Coneccion
Comment Comment
Punto de Venta
Rutinas de Coneccion
Comment
Comment Comment
38
www.dsic.upv.es/~uml
II. Breve Tour por UML
Acceso a BD
Servidor Central
Component Diagram:
Components / Servidor Rutinas de conexión
Central
Servidor Central
Rutinas de conexión
Punto de Venta
Punto de Venta Terminal de
Consulta Gestión de Cuentas Interfaz de Terminal
Terminal de Consulta
Rutinas de conexión Interfaz de Terminal
Component Diagram: Component Diagram:
Components / Punto de Components / Terminal
Venta de Consulta
Práctica 6
39
www.dsic.upv.es/~uml
II. Breve Tour por UML
Resumen
40
www.dsic.upv.es/~uml
III
El Paradigma
Orientado a Objeto
41
www.dsic.upv.es/~uml
III. El Paradigma OO
42
www.dsic.upv.es/~uml
III. El Paradigma OO
43
www.dsic.upv.es/~uml
III. El Paradigma OO
Problemas en OO
44
www.dsic.upv.es/~uml
III. El Paradigma OO
… 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
“Las aplicaciones de gestión están constituidas
mayoritariamente por objetos degenerados”
45
www.dsic.upv.es/~uml
Fundamentos de Modelado OO
46
www.dsic.upv.es/~uml
III. El Paradigma OO: Fundamentos de Modelado OO
Objetos
Objeto = unidad atómica que encapsula estado
y comportamiento
47
www.dsic.upv.es/~uml
III. El Paradigma OO: Fundamentos de Modelado OO
… Objetos
En UML, un objeto se representa por un
rectángulo con un nombre subrayado
Otro objeto
Un objeto
48
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
49
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
...
50
www.dsic.upv.es/~uml
III. El Paradigma OO: Fundamentos de Modelado OO
Clases y Objetos
51
www.dsic.upv.es/~uml
III. El Paradigma OO: Fundamentos de Modelado OO
Comportamiento
Ejemplo de interacción:
Un Objeto Operación 1
1: Un mensaje Operación 2
Otro Objeto
52
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
53
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
54
www.dsic.upv.es/~uml
III. El Paradigma OO: Fundamentos de Modelado OO
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
55
www.dsic.upv.es/~uml
III. El Paradigma OO: Fundamentos de Modelado OO
… Comunicación
Categorías de objetos:
• Activos - Pasivos
• Cliente – Servidores, Agentes
56
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
57
www.dsic.upv.es/~uml
III. El Paradigma OO: Fundamentos de Modelado OO
… Comunicación
Ejemplo con objeto agente:
Servidor 1
2:
Un agente
1: 3:
Un cliente Servidor 2
58
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
2: Mensaje C
4: Mensaje E
Objeto 3 Objeto 4
3: Mensaje D
59
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
60
www.dsic.upv.es/~uml
III. El Paradigma OO: Requisitos
61
www.dsic.upv.es/~uml
III. El Paradigma OO: Requisitos
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
62
www.dsic.upv.es/~uml
III. El Paradigma OO: Requisitos
… 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
63
www.dsic.upv.es/~uml
III. El Paradigma OO: Requisitos
… Casos de Uso
Ejemplo:
Caso de Uso A
Actor A
Caso de Uso B
Actor B
64
www.dsic.upv.es/~uml
III. El Paradigma OO: Requisitos
… 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
65
www.dsic.upv.es/~uml
III. El Paradigma OO: Requisitos
… 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
66
www.dsic.upv.es/~uml
III. El Paradigma OO: Requisitos
• Comunicación
Caso de Uso
Actor
67
www.dsic.upv.es/~uml
III. El Paradigma OO: Requisitos
<<include>>
68
www.dsic.upv.es/~uml
III. El Paradigma OO: Requisitos
<<include>>
Reintegro Cuenta Corriente
<<include>>
69
www.dsic.upv.es/~uml
III. El Paradigma OO: Requisitos
<<extend>>
70
www.dsic.upv.es/~uml
III. El Paradigma OO: Requisitos
Solicitar Préstamo
Cliente
[Tarjeta Caducada]
<<extend>>
71
www.dsic.upv.es/~uml
III. El Paradigma OO: Requisitos
Identificación
<<include> >
Transferencia
Cliente
<<extend>>
Transferencia en Internet
72
www.dsic.upv.es/~uml
III. El Paradigma OO: Requisitos
<<include>> <<include>>
<<include>>
73
www.dsic.upv.es/~uml
III. El Paradigma OO: Requisitos
74
www.dsic.upv.es/~uml
III. El Paradigma OO: Requisitos
75
www.dsic.upv.es/~uml
III. El Paradigma OO: Requisitos
Práctica 7
76
www.dsic.upv.es/~uml
III. El Paradigma OO: Requisitos
Identificador CU-<id-requisito>
Nombre <nombre del requisito funcional>
Descripción El sistema deberá comportarse tal como se describe en el siguiente caso de uso
{ concreto cuando <evento de activación> , abstracto durante la realización de los
casos de uso <lista de casos de uso>}
Precondición <precondición del caso de uso>
Secuencia Paso Acción
Normal
1 {El <actor> , El sistema} <acción realizada por el actor o sistema>, se realiza el
caso de uso
< caso de uso CU-x>
… …
… …
1 n segundos
… …
Comentarios
En métodos OO que carecen de una técnica de captura de
requisitos se comienza inmediatamente con la construcción del
modelo de análisis/diseño
Los Casos de Uso son una idea maravillosa que ha sido
generalmente complicada. El verdadero truco para los Casos de
Uso es mantenerlos simples. Recordad, mañana van a cambiar.
Rober C. Martin
Los requisitos NO funcionales también son importantes.
Desempeño, cumplimiento de estándares o leyes, atributos de
calidad (confiabilidad, disponibilidad, seguridad, mantenibilidad,
portabilidad), etc.
78
www.dsic.upv.es/~uml
Interacción entre objetos
79
www.dsic.upv.es/~uml
III. El Paradigma OO: Interacción entre objetos
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
80
www.dsic.upv.es/~uml
III. El Paradigma OO: Interacción entre objetos
Mensajes
81
www.dsic.upv.es/~uml
III. El Paradigma OO: Interacción entre objetos
Diagramas de interacción
El Diagrama de Secuencia es más adecuados
para observar la perspectiva cronológica de las
interacciones
Diagrama de Secuencia
Muestra la secuencia de mensajes entre objetos
durante un escenario concreto
83
www.dsic.upv.es/~uml
III. El Paradigma OO: Interacción entre objetos
… Diagrama de Secuencia
84
www.dsic.upv.es/~uml
III. El Paradigma OO: Interacción entre objetos
… Diagrama de Secuencia
Caller Exchange Receiver
a: lift receiver
...
The call is routed d: route
through the network
85
www.dsic.upv.es/~uml
III. El Paradigma OO: Interacción entre objetos
Diagrama de Secuencia
mostrando foco de control,
condiciones, recursividad
creación y destrucción
de objetos
86
www.dsic.upv.es/~uml
III. El Paradigma OO: Interacción entre objetos
ob3 : C3 ob4 : C4
op( ) ob1 : C1
more( )
87
www.dsic.upv.es/~uml
III. El Paradigma OO: Interacción entre objetos
… Diagrama de Secuencia
Diagram 1 Diagram 2
ob1 : C1 ob3 : C3 ob4 : C4
[x<0] bar(x)
bar(x)
doit(w)
Sequence Diagram:
Diagrams / Diagram 2
Sequence Diagram:
Diagrams / Diagram 1
88
www.dsic.upv.es/~uml
III. El Paradigma OO: Interacción entre objetos
Diagrama de Colaboración
Son útiles en la fase exploratoria para
identificar objetos
89
www.dsic.upv.es/~uml
III. El Paradigma OO: Interacción entre objetos
Mensajes
Un mensaje desencadena una acción en el
objeto destinatario
90
www.dsic.upv.es/~uml
III. El Paradigma OO: Interacción entre objetos
… Mensajes
Un mensaje se envía de manera condicionada:
[x>y] 1: Mensaje
B
91
www.dsic.upv.es/~uml
III. El Paradigma OO: Interacción entre objetos
… Mensajes
Un mensaje que devuelve un resultado:
1: distancia:= mover(x,y)
B
Práctica 8
92
www.dsic.upv.es/~uml
Clases y relaciones
entre clases
93
www.dsic.upv.es/~uml
III. El Paradigma OO: Clases y relaciones entre 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
94
www.dsic.upv.es/~uml
III. El Paradigma OO: Clases y relaciones entre clases
Clases
95
www.dsic.upv.es/~uml
III. El Paradigma OO: Clases y relaciones entre clases
• nombre de la clase
• atributos de la clase
• operaciones de la clase
Motocicleta
color
cilindrada
velocidad máxima
arrancar()
acelerar()
frenar()
96
www.dsic.upv.es/~uml
III. El Paradigma OO: Clases y relaciones entre clases
lista
pila
primero()
apilar()
ultimo()
desapilar()
añadir()
cardinalidad()
quitar()
cardinalidad()
97
www.dsic.upv.es/~uml
III. El Paradigma OO: Clases y relaciones entre 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
Los atributos de una clase no deberían ser
manipulables directamente por el resto de objetos
98
www.dsic.upv.es/~uml
III. El Paradigma OO: Clases y relaciones entre clases
… Clases: Encapsulación
Los niveles de encapsulación están heredados de los
niveles de C++:
• (-) Privado : es el más fuerte. Esta parte es
totalmente invisible (excepto para clases friends
en terminología C++)
• (#) Los atributos/operaciones protegidos están
visibles para las clases friends y para las clases
derivadas de la original
• (+) Los atributos/operaciones públicos son
visibles a otras clases (cuando se trata de
atributos se está transgrediendo el principio de
encapsulación)
99
www.dsic.upv.es/~uml
III. El Paradigma OO: Clases y relaciones entre clases
… Clases: Encapsulación
Ejemplo:
Reglas de visibilidad
Atributo público : Integer
Atributo protegido : Integer
Atributo privado : Integer
"Operación pública"()
"Operación protegida"()
"Operación privada"()
100
www.dsic.upv.es/~uml
III. El Paradigma OO: Clases y relaciones entre clases
101
www.dsic.upv.es/~uml
III. El Paradigma OO: Clases y relaciones entre 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
102
www.dsic.upv.es/~uml
III. El Paradigma OO: Clases y relaciones entre clases
… Asociación
Ejemplo:
marido
casado-con
0..1
mujer
0..1 Persona Compañía
nombre * trabaja-para nombre
s.s. dirección
emplea-a *
jefe 0..1
*
Administra
empleado
103
www.dsic.upv.es/~uml
III. El Paradigma OO: Clases y relaciones entre clases
… Asociación
Especificación de multiplicidad
(mínima...máxima)
1 Uno y sólo uno
0..1Cero o uno
M..N Desde M hasta N (enteros naturales)
* Cero o muchos
0..*Cero o muchos
1..*Uno o muchos (al menos uno)
104
www.dsic.upv.es/~uml
III. El Paradigma OO: Clases y relaciones entre clases
Asociación Cualificada
Aerolínea Viajero
* 0..1
nro_billete
Tablero Cuadro
fila 1 1
Ajedrez
columna
105
www.dsic.upv.es/~uml
III. El Paradigma OO: Clases y relaciones entre clases
Agregación
La agregación representa una relación parte_de
entre objetos
Ejemplos
Window
scrollbar[2] : Slider
title : Header
body : Panel
Window
1 1
1
scrollbar
2 title 1 body 1
Slider Header Panel
107
www.dsic.upv.es/~uml
III. El Paradigma OO: Clases y relaciones entre clases
... Ejemplos
Member-of * Committee
Person *
{ subset }
1 Chair-of *
Represents an
incorporated entity.
boss
{Person.employer =
Person.boss.employer}
108
www.dsic.upv.es/~uml
III. El Paradigma OO: Clases y relaciones entre clases
… Ejemplos
Polígono Punto
Agregación 1 contiene
3..*
{ordenado}
Persona
*
*
Cuenta
or Asociación excluyente
* Empresa
1
Autorización
Clase de asociación prioridad
privilegios
camb_privil() 109
www.dsic.upv.es/~uml
III. El Paradigma OO: Clases y relaciones entre clases
Clases y Objetos
Diagrama de Clases y Diagramas de Objetos
pertenecen a dos vistas complementarias del
modelo
Generalización
Permite gestionar la complejidad mediante un
ordenamiento taxonómico de clases
111
www.dsic.upv.es/~uml
III. El Paradigma OO: Clases y relaciones entre clases
... Generalización
Nombres usados: clase padre - clase hija.
Otros nombres: superclase - subclase, clase
base - clase derivada
112
www.dsic.upv.es/~uml
III. El Paradigma OO: Clases y relaciones entre clases
... Generalización
Vehículo
113
www.dsic.upv.es/~uml
III. El Paradigma OO: Clases y relaciones entre clases
... Generalización
La especialización es una técnica muy eficaz para la extensión
y reutilización
Coche
Funcionando Estropeado
114
www.dsic.upv.es/~uml
III. El Paradigma OO: Clases y relaciones entre clases
... Generalización
La noción de clase está próxima a la de
conjunto
115
www.dsic.upv.es/~uml
III. El Paradigma OO: Clases y relaciones entre clases
... Generalización
Particionamiento del espacio de objetos =>
Clasificación Estática
116
www.dsic.upv.es/~uml
III. El Paradigma OO: Clases y relaciones entre clases
... Generalización
Un ejemplo de Clasificación Estática:
Vehículo Aéreo
{ estática }
Avión Helicóptero
117
www.dsic.upv.es/~uml
III. El Paradigma OO: Clases y relaciones entre clases
... Generalización
Un ejemplo de Clasificación Dinámica:
Coche
{ dinámica }
Funcionando Estropeado
118
www.dsic.upv.es/~uml
III. El Paradigma OO: Clases y relaciones entre clases
... Generalización
Extensión: Posibles instancias de una clase
int(A) int(B)
ext(B) ext(A)
B
119
www.dsic.upv.es/~uml
III. El Paradigma OO: Clases y relaciones entre clases
... Generalización
Clasificación Estática
C0
ext(C0) = ext(Ci) completa
C1 Cn
120
www.dsic.upv.es/~uml
III. El Paradigma OO: Clases y relaciones entre 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
121
www.dsic.upv.es/~uml
III. El Paradigma OO: Clases y relaciones entre 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
122
www.dsic.upv.es/~uml
III. El Paradigma OO: Clases y relaciones entre clases
123
www.dsic.upv.es/~uml
III. El Paradigma OO: Clases y relaciones entre 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
124
www.dsic.upv.es/~uml
III. El Paradigma OO: Clases y relaciones entre clases
Principio de Sustitución
El Principio de Sustitución de Liskow afirma
que:
125
www.dsic.upv.es/~uml
III. El Paradigma OO: Clases y relaciones entre 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
126
www.dsic.upv.es/~uml
III. El Paradigma OO: Clases y relaciones entre clases
Polimorfismo
El término polimorfismo se refiere a que una
característica de una clase puede tomar varias
formas
127
www.dsic.upv.es/~uml
III. El Paradigma OO: Clases y relaciones entre clases
… Polimorfismo
Ejemplo: todo animal duerme, pero cada
clase lo hace de forma distinta
Animal
dormir()
?
dormir
?
León Oso Tigre
128
www.dsic.upv.es/~uml
III. El Paradigma OO: Clases y relaciones entre clases
… Polimorfismo
Animal Dormir()
{
dormir()
}
129
www.dsic.upv.es/~uml
III. El Paradigma OO: Clases y relaciones entre clases
… Polimorfismo
La búsqueda automática del código que en
cada momento se va a ejecutar es fruto del
enlace dinámico
Práctica 9-12
130
www.dsic.upv.es/~uml
Comportamiento de objetos
131
www.dsic.upv.es/~uml
III. El Paradigma OO: Comportamiento de objetos
Diagrama de Estados
Los Diagramas de Estados representan
autómatas de estados finitos, desde el p.d.v.
de los estados y las transiciones
132
www.dsic.upv.es/~uml
III. El Paradigma OO: Comportamiento de objetos
… 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
133
www.dsic.upv.es/~uml
III. El Paradigma OO: Comportamiento de objetos
… 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
134
www.dsic.upv.es/~uml
III. El Paradigma OO: Comportamiento de objetos
… Diagrama de Estados
Estados y Transiciones
A B
135
www.dsic.upv.es/~uml
III. El Paradigma OO: Comportamiento de objetos
… Diagrama de Estados
Ejemplo de un Diagrama de Estados para la
clase persona:
contratar
en el paro en activo
perder empleo
jubilarse
jubilarse
jubilado
136
www.dsic.upv.es/~uml
III. El Paradigma OO: Comportamiento de objetos
Acciones
Podemos especificar la solicitud de un
servicio a otro objeto como consecuencia de
la transición:
137
www.dsic.upv.es/~uml
III. El Paradigma OO: Comportamiento de objetos
… 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
138
www.dsic.upv.es/~uml
III. El Paradigma OO: Comportamiento de objetos
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
139
www.dsic.upv.es/~uml
III. El Paradigma OO: Comportamiento de objetos
Generalización de Estados
Ejemplo:
e1
A B
e2
e2
140
www.dsic.upv.es/~uml
III. El Paradigma OO: Comportamiento de objetos
Generalización de Estados
Quedaría como:
e1
Aa b
B
e2
C
141
www.dsic.upv.es/~uml
III. El Paradigma OO: Comportamiento de objetos
… Generalización de Estados
Las transiciones de entrada deben ir hacia
subestados específicos:
e1
Aa Bb
e2
e0
142
www.dsic.upv.es/~uml
III. El Paradigma OO: Comportamiento de objetos
… 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
143
www.dsic.upv.es/~uml
III. El Paradigma OO: Comportamiento de objetos
… Generalización de Estados
La agregación de estados es la composición
de un estado a partir de varios estados
independientes
144
www.dsic.upv.es/~uml
III. El Paradigma OO: Comportamiento de objetos
… Generalización de Estados
Ejemplo:
e1
e1
145
www.dsic.upv.es/~uml
III. El Paradigma OO: Comportamiento de objetos
… Generalización de Estados
lift receiver
/ get dial
tone
Active
Timeout
callee Connecting
callee
hang hangs
s up up
busy
Busy connected
do/ play busy tone
Talking Ringing
callee answers do/ play ringing tone
/ enable
speech
146
www.dsic.upv.es/~uml
III. El Paradigma OO: Comportamiento de objetos
Historia
Por defecto, los autómatas no tienen
memoria
147
www.dsic.upv.es/~uml
III. El Paradigma OO: Comportamiento de objetos
… Historia
Ejemplo:
A
d2
B
in
D x y
out
d1
C
H*
148
www.dsic.upv.es/~uml
III. El Paradigma OO: Comportamiento de objetos
… Historia
Ejemplo:
Espera
149
www.dsic.upv.es/~uml
III. El Paradigma OO: Comportamiento de objetos
150
www.dsic.upv.es/~uml
III. El Paradigma OO: Comportamiento de objetos
… Destrucción de Objeto
Ejemplo:
crash
En vuelo
despegar aterrizar
Crear(matricula)
En tierra
151
www.dsic.upv.es/~uml
III. El Paradigma OO: Comportamiento de objetos
Transiciones temporizadas
Las esperas son actividades que tienen asociada
cierta duración
152
www.dsic.upv.es/~uml
III. El Paradigma OO: Comportamiento de objetos
… Transiciones temporizadas
Ejemplo: A
/ Abrir ranura
Depósito efectuado
153
www.dsic.upv.es/~uml
III. El Paradigma OO: Comportamiento de objetos
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)
154
www.dsic.upv.es/~uml
III. El Paradigma OO: Comportamiento de objetos
Solicitar
pasaje
Verificar
existencia vuelo
Dar detalles
vuelo
Informar alternativas y
precios
Seleccionar
vuelo
Solicitar Reservar
pago plazas
Confirmar plaza
Pagar reservada
pasaje
Emitir
billete
155
www.dsic.upv.es/~uml
III. El Paradigma OO: Comportamiento de objetos
Play
Fill order
Collect order
156
www.dsic.upv.es/~uml
III. El Paradigma OO: Comportamiento de objetos
... Ejemplos
157
www.dsic.upv.es/~uml
Componentes
158
www.dsic.upv.es/~uml
III. El Paradigma OO: Componentes
Diagrama de Componentes
Los diagramas de componentes describen los
elementos físicos del sistema y sus relaciones
159
www.dsic.upv.es/~uml
III. El Paradigma OO: 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.
...Diagrama de Componentes
161
www.dsic.upv.es/~uml
Distribución y despliegue de
Componentes
162
www.dsic.upv.es/~uml
III. El Paradigma OO: Distribución y despliegue de componentes
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
163
www.dsic.upv.es/~uml
III. El Paradigma OO: Distribución y despliegue de componentes
… Diagrama de Despliegue
Los estereotipos permiten precisar la
naturaleza del equipo:
• Dispositivos
• Procesadores
• Memoria
164
www.dsic.upv.es/~uml
III. El Paradigma OO: Distribución y despliegue de componentes
… 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
165
www.dsic.upv.es/~uml
III. El Paradigma OO: Distribución y despliegue de componentes
… Diagramas de Despliegue
Ejemplo:
166
www.dsic.upv.es/~uml
III. El Paradigma OO: Distribución y despliegue de componentes
… Diagramas de Despliegue
Ejemplo: Component Diagram: videoStoreServer
Component Diagram:
Component Diagram: <<Container>>
videoStoreApplication /
Client / Client VideoStoreApplication
VideoStoreApplication
Diagram
Component Diagram:
videoStoreServer /
<<brow ser>>
Client videoStoreServer OpenSourceBrowser Client
<<AppServer>>
videoStoreServer
<<Session>> <<Entity>>
ShoppingSession Catalog
DBServer
<<Entity>>
ShoppingCart
videoStoreApplication
Component Diagram:
DBServer / DBServer
DBServer
VideoStoreDB
167
www.dsic.upv.es/~uml
IV
Proceso de Desarrollo
de SW basado en UML
168
www.dsic.upv.es/~uml
IV. Proceso de Desarrollo de SW basado en UML
Enfoque Ericsson
170
www.dsic.upv.es/~uml
IV. Proceso de Desarrollo de SW basado en UML
Dos Dimensiones
171
www.dsic.upv.es/~uml
IV. Proceso de Desarrollo de SW basado en UML
tiempo
172
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)
173
www.dsic.upv.es/~uml
IV. Proceso de Desarrollo de SW basado en UML
Workers Artefactos
Actividades 174
www.dsic.upv.es/~uml
IV. Proceso de Desarrollo de SW basado en UML
176
www.dsic.upv.es/~uml
IV. Proceso de Desarrollo de SW basado en UML
Conjuntos de Artefactos
Business Modeling Set Deployment Set
Requirements Set Project Management Set
Analysis & Design Set Configuration & Change Management Set
Test Set
177
www.dsic.upv.es/~uml
IV. Proceso de Desarrollo de SW basado en UML
178
www.dsic.upv.es/~uml
IV. Proceso de Desarrollo de SW basado en UML
Proceso Dirigido por los Casos de Uso
Proceso Iterativo e Incremental
Proceso Centrado en la Arquitectura
179
www.dsic.upv.es/~uml
IV. Proceso de Desarrollo de SW basado en UML
Verificar que se
Pruebas satisfacen los casos
de uso
180
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]
181
www.dsic.upv.es/~uml
IV. Proceso de Desarrollo de SW basado en UML
182
www.dsic.upv.es/~uml
IV. Proceso de Desarrollo de SW basado en UML
183
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
184
www.dsic.upv.es/~uml
IV. Proceso de Desarrollo de SW basado en UML
185
www.dsic.upv.es/~uml
IV. Proceso de Desarrollo de SW basado en UML
Enfoque
Secuencial
Enfoque
Iterativo e
Incremental
186
www.dsic.upv.es/~uml
IV. Proceso de Desarrollo de SW basado en UML
187
www.dsic.upv.es/~uml
IV. Proceso de Desarrollo de SW basado en UML
RUP establece refinamientos sucesivos de una
arquitectura ejecutable, construida como un prototipo
evolutivo
Inception Elaboration Construction Transition
Architecture
188
www.dsic.upv.es/~uml
IV. Proceso de Desarrollo de SW basado en UML
Esfuerzo 5% 20 % 65 % 10%
Tiempo
10 % 30 % 50 % 10%
Dedicado
190
www.dsic.upv.es/~uml
IV. Proceso de Desarrollo de SW basado en UML
191
www.dsic.upv.es/~uml
V
Conclusiones
192
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
Poseidon Métrica 3.0 o XP
193
www.dsic.upv.es/~uml
V. Conclusiones
195
www.dsic.upv.es/~uml
V. Conclusiones
Tendencias
UML: actualmente la notación más detallada, amplia y
consensuada para modelar software orientado a objetos
196
www.dsic.upv.es/~uml
V. Conclusiones
... Tendencias
Nuevas versiones de UML, uff!
Extensiones de UML (SysML, www.sysml.org )
Generación automática de código a partir de modelos
Model-Driven Development (MDD), Model-Driven Architecture (MDA), Compiladores
de Modelos
Round-trip engineering. Convergencia entre herramientas CASE e IDEs
Extendiendo UML mediante Profiles (
www.objecteering.com/products_uml_profile_builder.php )
Modelado y generación de código en dominios específicos (más allá
de UML)
Eclipse Modeling Framework (EMF,
download.eclipse.org/tools/emf/scripts/home.php )
Microsoft Tools for Domain Specific Languagues
Domain-Specific Modeling (DSM, www.dsmforum.org)
Meta CASE Tools (www.metacase.com)
197
www.dsic.upv.es/~uml
Diagramas en UML 2.0
198
www.dsic.upv.es/~uml
V. Conclusiones
Bibliografía Adicional
UML
• www.omg.org/uml/
• Meta-links www.cetus-links.org/oo_uml.html
• Martin Fowler, autor de “UML Destilled” (“UML Gota a Gota”)
http://www.martinfowler.com/
Herramientas CASE
• Herramientas basadas en UML www.objectsbydesign.com/tools/umltools_byPrice.html
• International Council in SE (INCOSE) www.incose.org/tools/
Otras
• Revista IEEE Software, Conferencias: OOPSLA, ECOOP
• Patrones http://www.cmcrossroads.com/bradapp/docs/patterns-intro.html,
• Foro UML en yahoo: http://groups.yahoo.com/group/uml-forum/
199
www.dsic.upv.es/~uml