Professional Documents
Culture Documents
1
www.dsic.upv.es/~uml
Contenido
I. Introduccin
Modelado de Software
UML
II. Breve Tour por UML
III. El Paradigma Orientado a Objeto usando UML
Fundamentos del Modelado OO
Requisitos del software
Interaccin entre objetos
Clases y relaciones entre clases
Comportamiento de objetos
Componentes
Distribucin y despliegue de componentes
Object Constraint Language (OCL)
IV. Proceso de Desarrollo de SW basado en UML
V. Conclusiones
2
www.dsic.upv.es/~uml
I
Introduccin
3
www.dsic.upv.es/~uml
Introduccin: Modelado de SW
4
www.dsic.upv.es/~uml
I. Introduccin: Modelado de SW
5
www.dsic.upv.es/~uml
I. Introduccin: Modelado de SW
Construccin de un rascacielos
7
www.dsic.upv.es/~uml
I. Introduccin: Modelado de SW
Claves en Desarrollo de SI
Notacin
Herramientas Proceso
8
www.dsic.upv.es/~uml
I. Introduccin: Modelado de SW
Orden
Item
envo
Proceso de Negocios
Sistema Computacional
9
www.dsic.upv.es/~uml
I. Introduccin: Modelado de SW
Interface de Usuario
(Visual Basic,
Java, ..)
Lgica del Negocio
(C++, Java, ..)
Mltiples Sistemas
Servidor de BDs
(C++ & SQL, ..)
Modelar el sistema
independientemente Componentes
del lenguaje de Reutilizados
implementacin
Promover la Reutilizacin
10
www.dsic.upv.es/~uml
Introduccin: UML
11
www.dsic.upv.es/~uml
I. Introduccin: UML
Qu es UML?
UML = Unified Modeling Language
Un lenguaje de propsito 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)
12
www.dsic.upv.es/~uml
I. Introduccin: UML
Situacin de Partida
Diversos mtodos y tcnicas OO, con muchos aspectos
en comn pero utilizando distintas notaciones
Inconvenientes para el aprendizaje, aplicacin,
construccin y uso de herramientas, etc.
Pugna entre distintos enfoques (y correspondientes
gurs)
13
www.dsic.upv.es/~uml
I. Introduccin: UML
Historia de UML
Comenz como el Mtodo Unificado, con la
participacin de Grady Booch y Jim Rumbaugh.
Se present en el OOPSLA95
El mismo ao se uni Ivar Jacobson. Los Tres
Amigos son socios en la compaa Rational
Software. Herramienta CASE Rational Rose
14
www.dsic.upv.es/~uml
I. Introduccin: UML
Historia de UML
2005? UML 2.0
2003 UML 1.5
2000 UML 1.4
15
www.dsic.upv.es/~uml
I. Introduccin: UML
16
www.dsic.upv.es/~uml
I. Introduccin: 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
17
www.dsic.upv.es/~uml
I. Introduccin: UML
Aspectos Novedosos
Definicin semi-formal del Metamodelo de UML
Mecanismos de Extensin en UML:
Stereotypes
Constraints
Tagged Values
Permiten adaptar los elementos de modelado,
asignndoles una semntica particular
18
www.dsic.upv.es/~uml
I. Introduccin: UML
Inconvenientes en UML
Definicin del proceso de desarrollo usando UML. UML
no es una metodologa
No cubre todas las necesidades de especificacin de un
proyecto software. Por ejemplo, no define los
documentos textuales
Ejemplos aislados
19
www.dsic.upv.es/~uml
I. Introduccin: UML
Perspectivas de UML
UML es el lenguaje de modelado orientado a objetos
estndar predominante ahora y en los prximos aos
Razones:
Participacin de metodlogos influyentes
Participacin de importantes empresas
Estndar del OMG
Evidencias:
Herramientas que proveen la notacin UML
Edicin de libros (ms de 300 en www.amazon.com)
Congresos, cursos, camisetas, etc.
20
www.dsic.upv.es/~uml
II
Breve Tour por UML
21
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 abstraccin de dicho sistema, considerando
un cierto propsito. As, el modelo describe completa-
mente aquellos aspectos del sistema que son relevantes
al propsito del modelo, y a un apropiado nivel de detalle.
22
www.dsic.upv.es/~uml
II. Breve Tour por UML
Scenario State
Scenario State
Diagramas de
Diagrams Diagramas de
Diagrams
Diagrams Diagrams
Colaboracin Modelos Componentes
Scenario Component
Scenario Component
Diagramas
Diagrams de
Diagramas de
Diagrams Diagrams
Diagrams Distribucin
Estados Diagramas de
Actividad
25
www.dsic.upv.es/~uml
II. Breve Tour por UML
Organizacin de Modelos
4+1 vistas de Kruchten (1995)
Vista de
Vista Lgica Realizacin
Vista de los
Casos de Uso
Vista de Vista de
Procesos Distribucin
27
www.dsic.upv.es/~uml
II. Breve Tour por UML
Paquetes en UML
Los paquetes ofrecen un mecanismo general para
la organizacin de los modelos/subsistemas
agrupando elementos de modelado
Nombre de
paquete
28
www.dsic.upv.es/~uml
II. Breve Tour por UML
Paquetes en UML
Cada paquete corresponde a un submodelo
(subsistema) del modelo (sistema)
29
www.dsic.upv.es/~uml
II. Breve Tour por UML
Paquetes en UML
Todos los elementos no son
necesariamente visibles desde el
exterior del paquete, es decir,
un paquete encapsula a la vez
que agrupa
El operador :: permite
designar una clase definida en
un contexto distinto del actual
30
www.dsic.upv.es/~uml
II. Breve Tour por UML
Otra Clase
Customers
CheckingAccount
<<access>> (f rom Banking)
Banking Banking
CheckingAccount
31
www.dsic.upv.es/~uml
II. Breve Tour por UML
Paquetes en UML
Prctica 1
32
www.dsic.upv.es/~uml
II. Breve Tour por UML
33
www.dsic.upv.es/~uml
II. Breve Tour por UML
Ejemplos
Ejemplo:
Retirar dinero
Consultar Extracto
Cliente
Realizar transferencia
Prctica 2
34
www.dsic.upv.es/~uml
II. Breve Tour por UML
Diagrama de Secuencia
prestar(video, socio)
verificar situacin socio
registrar prstamo
entregar recibo
35
www.dsic.upv.es/~uml
II. Breve Tour por UML
Diagrama de Colaboracin
:Socio
:Video
5: entregar recibo
: Encargado 4: registrar prstamo
:Prstamo
Prctica 3
36
www.dsic.upv.es/~uml
II. Breve Tour por UML
Diagrama de Clases
El Diagrama de Clases es el diagrama principal para el
anlisis y diseo del sistema
Un diagrama de clases presenta las clases del sistema
con sus relaciones estructurales y de herencia
La definicin de clase incluye definiciones para
atributos y operaciones
El modelo de casos de uso debera aportar
informacin para establecer las clases, objetos,
atributos y operaciones
37
www.dsic.upv.es/~uml
II. Breve Tour por UML
38
www.dsic.upv.es/~uml
II. Breve Tour por UML
Ejemplos (Asociacin)
dirige director
Departamento Profesor
0..1 1
39
www.dsic.upv.es/~uml
II. Breve Tour por UML
empleador trabajadores
Empresa Empleado
* 1..*
Cargo
superior
nombre
sueldo 0..1
subordinado 1..*
40
www.dsic.upv.es/~uml
II. Breve Tour por UML
Ejemplos (Generalizacin)
Trabajador
{ disjunta, completa }
41
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
Avin Vuelo Reserva
n
{ disjunta, completa }
{ disjunta, completa }
Prcticas 4
Avin de carga Avin de pasajeros
42
www.dsic.upv.es/~uml
II. Breve Tour por UML
Diagrama de Estados
alta baja
nmero_prstamos = 0
sin prstamos
Socio
nmero : int
nombre : char[50]
nmero_prestamos : int = 0
prestar devolver[ nmero_prstamos = 1 ]
alta()
baja()
prestar(cdigo_libro : int, fecha : date)
devolver(cdigo_libro : int, fecha : date) nmero_prstamos > 0
con prstamos
prestar
43
www.dsic.upv.es/~uml
II. Breve Tour por UML
Diagrama de Actividad
Buscar Bebida [ no hay caf ] [ no zumo ]
[ hay caf ]
[ hay zumo ]
Poner filtro
en mquina
Encender
mquina
/ cafetera.On
Caf en
preparacin
indicador de fin
Prctica 5 44
www.dsic.upv.es/~uml
II. Breve Tour por UML
Diagrama Componentes
Interfaz de Terminal
Control y Anlisis
45
www.dsic.upv.es/~uml
II. Breve Tour por UML
Diagrama de Despliegue
Servidor Central Control y Anlisis
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
46
www.dsic.upv.es/~uml
II. Breve Tour por UML
Acceso a BD
Servidor Central
Component Diagram:
Components / Servidor Rutinas de conexin
Central
Servidor Central
Rutinas de conexin
Punto de Venta
Punto de Venta Terminal de
Consulta Gestin de Cuentas Interfaz de Terminal
Terminal de Consulta
Rutinas de conexin Interfaz de Terminal
Component Diagram: Component Diagram:
Components / Punto de Components / Terminal
Venta de Consulta
Prctica 6
47
www.dsic.upv.es/~uml
II. Breve Tour por UML
Resumen
48
www.dsic.upv.es/~uml
III
El Paradigma
Orientado a Objeto
49
www.dsic.upv.es/~uml
III. El Paradigma OO
50
www.dsic.upv.es/~uml
III. El Paradigma OO
51
www.dsic.upv.es/~uml
III. El Paradigma OO
Problemas en OO
52
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 sera lo mismo que una biblioteca
de funciones)
Un objeto sin operaciones, con slo operaciones del tipo
crear, recuperar, actualizar y borrar (que se correspondera
con las estructuras de datos tradicionales)
Un sistema construido con objetos degenerados no es
un sistema verdaderamente orientado a objetos
54
www.dsic.upv.es/~uml
III. El Paradigma OO: Fundamentos de Modelado OO
Objetos
Objeto = unidad atmica que encapsula estado
y comportamiento
55
www.dsic.upv.es/~uml
III. El Paradigma OO: Fundamentos de Modelado OO
Objetos
En UML, un objeto se representa por un
rectngulo con un nombre subrayado
Otro objeto
Un objeto
Otro objeto ms
56
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
57
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
...
58
www.dsic.upv.es/~uml
III. El Paradigma OO: Fundamentos de Modelado OO
Clases y Objetos
59
www.dsic.upv.es/~uml
III. El Paradigma OO: Fundamentos de Modelado OO
Comportamiento
Ejemplo de interaccin:
Un Objeto Operacin 1
1: Un mensaje Operacin 2
Otro Objeto
60
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
61
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 despus reconstruirlo, es decir,
cogerlo de memoria secundaria para utilizarlo
en la ejecucin (materializacin del objeto)
Comunicacin
Un sistema informtico puede verse como un
conjunto de objetos autnomos y concurrentes
que trabajan de manera coordinada en la
consecucin de un fin especfico
63
www.dsic.upv.es/~uml
III. El Paradigma OO: Fundamentos de Modelado OO
Comunicacin
Categoras de objetos:
Activos - Pasivos
Cliente Servidores, Agentes
Objeto Activo: posee un hilo de ejecucin (thread)
propio y puede iniciar una actividad
Objeto Pasivo: no puede iniciar una actividad pero
puede enviar estmulos 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
64
www.dsic.upv.es/~uml
III. El Paradigma OO: Fundamentos de Modelado OO
Comunicacin
Los agentes renen las caractersticas de
clientes y servidores
65
www.dsic.upv.es/~uml
III. El Paradigma OO: Fundamentos de Modelado OO
Comunicacin
Ejemplo con objeto agente:
Servidor 1
2:
Un agente
1: 3:
Un cliente Servidor 2
66
www.dsic.upv.es/~uml
III. El Paradigma OO: Fundamentos de Modelado OO
El Concepto de Mensaje
La unidad de comunicacin entre objetos se
llama mensaje
2: Mensaje C
4: Mensaje E
Objeto 3 Objeto 4
3: Mensaje D
67
www.dsic.upv.es/~uml
III. El Paradigma OO: Fundamentos de Modelado OO
Mensaje y Estmulo
Un estmulo causar la invocacin de una operacin, la
creacin o destruccin de un objeto o la aparicin de
una seal
Un mensaje es la especificacin de un estmulo
68
www.dsic.upv.es/~uml
III. El Paradigma OO: Requisitos
69
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
Permiten definir los lmites 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
implementacin
Comparacin con respecto a los Diagramas de
Flujo de Datos del Enfoque Estructurado
70
www.dsic.upv.es/~uml
III. El Paradigma OO: Requisitos
Casos de Uso
Los Casos de Uso cubren la carencia existente
en mtodos previos (OMT, Booch) en cuanto a la
determinacin de requisitos
71
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
72
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 aplicacin y deben ser
utilizados
Otros sistemas: sistemas con los que el sistema interacta
73
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
interaccin, los escenarios, desde el punto de vista del
usuario
74
www.dsic.upv.es/~uml
III. El Paradigma OO: Requisitos
Comunicacin
Caso de Uso
Actor
75
www.dsic.upv.es/~uml
III. El Paradigma OO: Requisitos
<<include>>
76
www.dsic.upv.es/~uml
III. El Paradigma OO: Requisitos
<<include>>
Reintegro Cuenta Corriente
<<include>>
77
www.dsic.upv.es/~uml
III. El Paradigma OO: Requisitos
<<extend>>
78
www.dsic.upv.es/~uml
III. El Paradigma OO: Requisitos
Solicitar Prstamo
Cliente
[Tarjeta Caducada]
<<extend>>
79
www.dsic.upv.es/~uml
III. El Paradigma OO: Requisitos
Identificacin
<<include>>
Transferencia
Cliente
<<extend>>
Transferencia en Internet
80
www.dsic.upv.es/~uml
III. El Paradigma OO: Requisitos
<<include>> <<include>>
<<include>>
81
www.dsic.upv.es/~uml
III. El Paradigma OO: Requisitos
82
www.dsic.upv.es/~uml
III. El Paradigma OO: Requisitos
84
www.dsic.upv.es/~uml
III. El Paradigma OO: Requisitos
Identificador CU-<id-requisito>
Nombre <nombre del requisito funcional>
Descripcin El sistema deber comportarse tal como se describe en el siguiente caso de uso {
concreto cuando <evento de activacin> , abstracto durante la realizacin de los
casos de uso <lista de casos de uso>}
Precondicin <precondicin del caso de uso>
Secuencia Paso Accin
Normal
1 {El <actor> , El sistema} <accin realizada por el actor o sistema>, se realiza el
caso de uso
< caso de uso CU-x>
2 Si <condicin>, {el <actor> , el sistema} <accin realizada por el actor o
sistema>>, se realiza el caso de uso < caso de uso CU-x>
1 n segundos
Comentarios
En mtodos OO que carecen de una tcnica de captura de
requisitos se comienza inmediatamente con la
construccin del modelo de anlisis/diseo
87
www.dsic.upv.es/~uml
III. El Paradigma OO: Interaccin entre objetos
Interaccin
Los objetos interactan para realizar
colectivamente los servicios ofrecidos por las
aplicaciones. Los diagramas de interaccin
muestran cmo se comunican los objetos en
una interaccin
88
www.dsic.upv.es/~uml
III. El Paradigma OO: Interaccin entre objetos
Mensajes
89
www.dsic.upv.es/~uml
III. El Paradigma OO: Interaccin entre objetos
Diagramas de interaccin
El Diagrama de Secuencia es ms adecuados
para observar la perspectiva cronolgica de las
interacciones
90
www.dsic.upv.es/~uml
III. El Paradigma OO: Interaccin entre objetos
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 envo y la
atencin se puede indicar usando una lnea
oblicua
91
www.dsic.upv.es/~uml
III. El Paradigma OO: Interaccin entre objetos
Diagrama de Secuencia
92
www.dsic.upv.es/~uml
III. El Paradigma OO: Interaccin entre objetos
Diagrama de Secuencia
Caller Exchange Receiver
a: lift receiver
...
{d.receiveTime
ringing tone phone rings
-d.sendTime < 5 sec.}
answer phone
-----
< 1 sec
At this point the stop tone stop ringing
-----
parties can talk
93
www.dsic.upv.es/~uml
III. El Paradigma OO: Interaccin entre objetos
Diagrama de Secuencia
mostrando foco de control,
condiciones, recursividad
creacin y destruccin
de objetos
94
www.dsic.upv.es/~uml
III. El Paradigma OO: Interaccin entre objetos
ob3 : C3 ob4 : C4
op( ) ob1 : C1
[x<0] bar(x)
doit(z)
doit(w)
more( )
95
www.dsic.upv.es/~uml
III. El Paradigma OO: Interaccin 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
96
www.dsic.upv.es/~uml
III. El Paradigma OO: Interaccin entre objetos
Diagrama de Colaboracin
Son tiles en la fase exploratoria para
identificar objetos
97
www.dsic.upv.es/~uml
III. El Paradigma OO: Interaccin entre objetos
Mensajes
Un mensaje desencadena una accin en el
objeto destinatario
98
www.dsic.upv.es/~uml
III. El Paradigma OO: Interaccin entre objetos
Mensajes
Un mensaje se enva de manera condicionada:
[x>y] 1: Mensaje
B
99
www.dsic.upv.es/~uml
III. El Paradigma OO: Interaccin entre objetos
Mensajes
Un mensaje que devuelve un resultado:
1: distancia:= mover(x,y)
B
Prctica 8
100
www.dsic.upv.es/~uml
Clases y relaciones
entre clases
101
www.dsic.upv.es/~uml
III. El Paradigma OO: Clases y relaciones entre clases
Clasificacin
El mundo real puede ser visto desde abstracciones
diferentes (subjetividad)
Mecanismos de abstraccin:
Clasificacin / Instanciacin
Composicin / Descomposicin
Agrupacin / Individualizacin
Especializacin / Generalizacin
102
www.dsic.upv.es/~uml
III. El Paradigma OO: Clases y relaciones entre clases
Clases
103
www.dsic.upv.es/~uml
III. El Paradigma OO: Clases y relaciones entre clases
Motocicleta
color
cilindrada
velocidad mxima
arrancar()
acelerar()
frenar()
104
www.dsic.upv.es/~uml
III. El Paradigma OO: Clases y relaciones entre clases
lista
pila
primero()
apilar()
ultimo()
desapilar()
aadir()
cardinalidad()
quitar()
cardinalidad()
105
www.dsic.upv.es/~uml
III. El Paradigma OO: Clases y relaciones entre clases
Clases: Encapsulacin
La encapsulacin presenta dos ventajas bsicas:
Se protegen los datos de accesos indebidos
El acoplamiento entre las clases se disminuye
Favorece la modularidad y el mantenimiento
106
www.dsic.upv.es/~uml
III. El Paradigma OO: Clases y relaciones entre clases
Clases: Encapsulacin
Los niveles de encapsulacin estn heredados de los
niveles de C++:
(-) Privado : es el ms fuerte. Esta parte es
totalmente invisible (excepto para clases friends
en terminologa C++)
(#) Los atributos/operaciones protegidos
estn visibles para las clases friends y para las
clases derivadas de la original
(+) Los atributos/operaciones pblicos son
visibles a otras clases (cuando se trata de
atributos se est transgrediendo el principio de
encapsulacin)
107
www.dsic.upv.es/~uml
III. El Paradigma OO: Clases y relaciones entre clases
Clases: Encapsulacin
Ejemplo:
108
www.dsic.upv.es/~uml
III. El Paradigma OO: Clases y relaciones entre clases
109
www.dsic.upv.es/~uml
III. El Paradigma OO: Clases y relaciones entre clases
Asociacin
La asociacin expresa una conexin bidireccional
entre objetos
Una asociacin es una abstraccin de la relacin
existente en los enlaces entre los objetos
Universidad Estudiante
Una asociacin
110
www.dsic.upv.es/~uml
III. El Paradigma OO: Clases y relaciones entre clases
Asociacin
Ejemplo:
marido
casado-con
0..1
mujer
0..1 Persona Compaa
nombre * trabaja-para nombre
s.s. direccin
emplea-a *
jefe 0..1
*
Administra
empleado
111
www.dsic.upv.es/~uml
III. El Paradigma OO: Clases y relaciones entre clases
Asociacin
Especificacin de multiplicidad
(mnima...mxima)
1 Uno y slo 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)
112
www.dsic.upv.es/~uml
III. El Paradigma OO: Clases y relaciones entre clases
Asociacin Cualificada
Aerolnea Viajero
* 0..1
nro_billete
Tablero Cuadro
fila 1 1
Ajedrez
columna
113
www.dsic.upv.es/~uml
III. El Paradigma OO: Clases y relaciones entre clases
Agregacin
La agregacin representa una relacin parte_de
entre objetos
114
www.dsic.upv.es/~uml
III. El Paradigma OO: Clases y relaciones entre clases
Ejemplos
Window
scrollbar[2] : Slider
title : Header
body : Panel
Window
1 1
1
scrollbar
2 title 1 body 1
Slider Header Panel
115
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}
116
www.dsic.upv.es/~uml
III. El Paradigma OO: Clases y relaciones entre clases
Ejemplos
Agregacin
Polgono 1 contiene Punto
3..*
{ordenado}
Persona
*
*
Cuenta
or Asociacin excluyente
* Empresa
1
Autorizacin
Clase de asociacin prioridad
privilegios
camb_privil() 117
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
Un Diagrama de Clases muestra la
abstraccin de una parte del dominio
118
www.dsic.upv.es/~uml
III. El Paradigma OO: Clases y relaciones entre clases
Generalizacin
Permite gestionar la complejidad mediante un
ordenamiento taxonmico de clases
Se obtiene usando los mecanismos de
abstraccin de Generalizacin y/o Especializacin
La Generalizacin consiste en factorizar las
propiedades comunes de un conjunto de clases
en una clase ms general
119
www.dsic.upv.es/~uml
III. El Paradigma OO: Clases y relaciones entre clases
... Generalizacin
Nombres usados: clase padre - clase hija.
Otros nombres: superclase - subclase, clase
base - clase derivada
120
www.dsic.upv.es/~uml
III. El Paradigma OO: Clases y relaciones entre clases
... Generalizacin
Vehculo
121
www.dsic.upv.es/~uml
III. El Paradigma OO: Clases y relaciones entre clases
... Generalizacin
La especializacin es una tcnica muy eficaz para la
extensin y reutilizacin
Coche
Funcionando Estropeado
... Generalizacin
La nocin de clase est prxima a la de
conjunto
123
www.dsic.upv.es/~uml
III. El Paradigma OO: Clases y relaciones entre clases
... Generalizacin
Particionamiento del espacio de objetos =>
Clasificacin Esttica
124
www.dsic.upv.es/~uml
III. El Paradigma OO: Clases y relaciones entre clases
... Generalizacin
Un ejemplo de Clasificacin Esttica:
Vehculo Areo
{ esttica }
Avin Helicptero
125
www.dsic.upv.es/~uml
III. El Paradigma OO: Clases y relaciones entre clases
... Generalizacin
Un ejemplo de Clasificacin Dinmica:
Coche
{ dinmica }
Funcionando Estropeado
126
www.dsic.upv.es/~uml
III. El Paradigma OO: Clases y relaciones entre clases
... Generalizacin
Extensin: Posibles instancias de una clase
int(A) int(B)
ext(B) ext(A)
B
127
www.dsic.upv.es/~uml
III. El Paradigma OO: Clases y relaciones entre clases
... Generalizacin
Clasificacin Esttica
C0
C1 Cn
128
www.dsic.upv.es/~uml
III. El Paradigma OO: Clases y relaciones entre clases
... Generalizacin
Clasificacin Dinmica
C0
ext(C0) = ext(Ci) completa
extt(Ci) extt(Cj) = disjunta en t
{ dinmica }
extt1(Ci) extt2(Cj) posiblemente
no disjunta en
C1 Cn diferentes
instantes
129
www.dsic.upv.es/~uml
III. El Paradigma OO: Clases y relaciones entre clases
... Generalizacin
Ejemplo: varias especializaciones a partir de la
misma clase padre, usando discriminadores:
Comercial Militar
uso
Vehculo Areo
estructura
Avin Helicptero
130
www.dsic.upv.es/~uml
III. El Paradigma OO: Clases y relaciones entre clases
131
www.dsic.upv.es/~uml
III. El Paradigma OO: Clases y relaciones entre clases
Herencia Mltiple
Uso disciplinado de la herencia mltiple:
clasificaciones disjuntas con clases padre en hojas
de jerarquas alternativas
Bpedo Cuadrpedo
cubertura comida
Animal
Con Plumas cobertura
comida
cobertura Carnvoro
Con Escamas
Conejo
132
www.dsic.upv.es/~uml
III. El Paradigma OO: Clases y relaciones entre clases
Principio de Sustitucin
El Principio de Sustitucin de Liskow afirma
que:
133
www.dsic.upv.es/~uml
III. El Paradigma OO: Clases y relaciones entre clases
Principio de Sustitucin
Dado que los programadores pueden introducir
cdigo en las subclases redefiniendo las
operaciones, es posible introducir involuntaria-
mente incoherencias que violen el principio de
sustitucin
134
www.dsic.upv.es/~uml
III. El Paradigma OO: Clases y relaciones entre clases
Polimorfismo
El trmino polimorfismo se refiere a que una
caracterstica 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
135
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
?
Len Oso Tigre
136
www.dsic.upv.es/~uml
III. El Paradigma OO: Clases y relaciones entre clases
Polimorfismo
Animal Dormir()
{
dormir()
}
137
www.dsic.upv.es/~uml
III. El Paradigma OO: Clases y relaciones entre clases
Polimorfismo
La bsqueda automtica del cdigo que en
cada momento se va a ejecutar es fruto del
enlace dinmico
Prctica 9-12
138
www.dsic.upv.es/~uml
Comportamiento de objetos
139
www.dsic.upv.es/~uml
III. El Paradigma OO: Comportamiento de objetos
Diagrama de Estados
Los Diagramas de Estados representan
autmatas de estados finitos, desde el p.d.v.
de los estados y las transiciones
140
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
141
www.dsic.upv.es/~uml
III. El Paradigma OO: Comportamiento de objetos
Diagrama de Estados
Los D. de Estados son autmatas jerrquicos
que permiten expresar concurrencia,
sincronizacin y jerarquas de objetos
Los D. de Estados son grafos dirigidos
Los D. De Estados de UML son deterministas
Los estados inicial y final estn diferenciados del
resto
La transicin entre estados es instantnea y se
debe a la ocurrencia de un evento
142
www.dsic.upv.es/~uml
III. El Paradigma OO: Comportamiento de objetos
Diagrama de Estados
Estados y Transiciones
A B
143
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
144
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 transicin:
145
www.dsic.upv.es/~uml
III. El Paradigma OO: Comportamiento de objetos
Acciones
Se puede especificar el ejecutar una accin
como consecuencia de entrar, salir, estar en
un estado, o por la ocurrencia de un evento:
estado A
entry: accin por entrar
exit: accin por salir
do: accin mientras en estado
on evento: accin
146
www.dsic.upv.es/~uml
III. El Paradigma OO: Comportamiento de objetos
Generalizacin de Estados
Podemos reducir la complejidad de estos
diagramas usando la generalizacin 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
147
www.dsic.upv.es/~uml
III. El Paradigma OO: Comportamiento de objetos
Generalizacin de Estados
Ejemplo:
e1
A B
e2
e2
148
www.dsic.upv.es/~uml
III. El Paradigma OO: Comportamiento de objetos
Generalizacin de Estados
Quedara como:
e1
Aa b
B
e2
149
www.dsic.upv.es/~uml
III. El Paradigma OO: Comportamiento de objetos
Generalizacin de Estados
Las transiciones de entrada deben ir hacia
subestados especficos:
e1
Aa Bb
e2
e0
150
www.dsic.upv.es/~uml
III. El Paradigma OO: Comportamiento de objetos
Generalizacin 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
151
www.dsic.upv.es/~uml
III. El Paradigma OO: Comportamiento de objetos
Generalizacin de Estados
La agregacin de estados es la composicin
de un estado a partir de varios estados
independientes
152
www.dsic.upv.es/~uml
III. El Paradigma OO: Comportamiento de objetos
Generalizacin de Estados
Ejemplo:
e1
e1
153
www.dsic.upv.es/~uml
III. El Paradigma OO: Comportamiento de objetos
Generalizacin 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
154
www.dsic.upv.es/~uml
III. El Paradigma OO: Comportamiento de objetos
Historia
Por defecto, los autmatas no tienen
memoria
Es posible memorizar el ltimo subestado
visitado para recuperarlo en una transicin
entrante en el superestado que lo engloba
155
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*
156
www.dsic.upv.es/~uml
III. El Paradigma OO: Comportamiento de objetos
Historia
Ejemplo:
Espera
157
www.dsic.upv.es/~uml
III. El Paradigma OO: Comportamiento de objetos
158
www.dsic.upv.es/~uml
III. El Paradigma OO: Comportamiento de objetos
Destruccin de Objeto
Ejemplo:
crash
En vuelo
despegar aterrizar
Crear(matricula)
En tierra
159
www.dsic.upv.es/~uml
III. El Paradigma OO: Comportamiento de objetos
Transiciones temporizadas
Las esperas son actividades que tienen
asociada cierta duracin
160
www.dsic.upv.es/~uml
III. El Paradigma OO: Comportamiento de objetos
Transiciones temporizadas
Ejemplo: A
/ Abrir ranura
Depsito efectuado
161
www.dsic.upv.es/~uml
III. El Paradigma OO: Comportamiento de objetos
Diagrama de Actividad
El Diagrama de Actividad es una especializacin
del Diagrama de Estado, organizado respecto
de las acciones y usado para especificar:
Un mtodo
Un caso de uso
Un proceso de negocio (Workflow)
162
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
163
www.dsic.upv.es/~uml
III. El Paradigma OO: Comportamiento de objetos
Play
Fill order
Collect order
164
www.dsic.upv.es/~uml
III. El Paradigma OO: Comportamiento de objetos
... Ejemplos
165
www.dsic.upv.es/~uml
Componentes
166
www.dsic.upv.es/~uml
III. El Paradigma OO: Componentes
Diagrama de Componentes
Los diagramas de componentes describen los
elementos fsicos del sistema y sus relaciones
167
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
fabricacin de aplicaciones informticas.
Pueden ser simples archivos, paquetes de
Ada, bibliotecas cargadas dinmicamente,
etc.
168
www.dsic.upv.es/~uml
III. El Paradigma OO: Componentes
...Diagrama de Componentes
169
www.dsic.upv.es/~uml
Distribucin y despliegue de
Componentes
170
www.dsic.upv.es/~uml
III. El Paradigma OO: Distribucin y despliegue de componentes
Diagrama de Despliegue
Los Diagramas de Despliegue muestran la
disposicin fsica de los distintos nodos que
componen un sistema y el reparto de los
componentes sobre dichos nodos
Nodo
171
www.dsic.upv.es/~uml
III. El Paradigma OO: Distribucin y despliegue de componentes
Diagrama de Despliegue
Los estereotipos permiten precisar la
naturaleza del equipo:
Dispositivos
Procesadores
Memoria
172
www.dsic.upv.es/~uml
III. El Paradigma OO: Distribucin y despliegue de componentes
Diagrama de Despliegue
Ejemplo de conexin 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
173
www.dsic.upv.es/~uml
III. El Paradigma OO: Distribucin y despliegue de componentes
Diagramas de Despliegue
Ejemplo:
174
www.dsic.upv.es/~uml
III. El Paradigma OO: Distribucin 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
175
www.dsic.upv.es/~uml
III. El Paradigma OO
176
www.dsic.upv.es/~uml
III. El Paradigma OO: OCL
Qu es OCL?
OCL es un lenguaje formal usado para
describir expresiones acerca de modelos UML
177
www.dsic.upv.es/~uml
III. El Paradigma OO: OCL
Usos de OCL
Lenguaje de consulta
Especificacin de invariantes en clases y tipos
Especificacin de invariantes de tipo para Estereotipos
Describir pre- y post condiciones en Operaciones y
Mtodos
Describir Guardas
Especificar destinatarios para mensages y acciones
Especificar restricciones en Operaciones
Especificar reglas de derivacin para atributos
178
www.dsic.upv.es/~uml
III. El Paradigma OO: OCL
Ejemplo
179
www.dsic.upv.es/~uml
III. El Paradigma OO: OCL
Invariantes
El nmero de empleados debe ser mayor que 50
context Compaa
inv: self. nmeroDeEmpleados > 50
context c:Compaa
inv: c.nmeroDeEmpleados > 50
context c:Compaa
inv suficientesEmpleados: c.nmeroDeEmpleados > 50
180
www.dsic.upv.es/~uml
III. El Paradigma OO: OCL
Ejemplo
181
www.dsic.upv.es/~uml
III. El Paradigma OO: OCL
Ejemplo
Expresiones Let
Ejemplo
183
www.dsic.upv.es/~uml
III. El Paradigma OO: OCL
Definiciones
Ejemplo
context Persona
def: ingresos : Integer = self.puesto.sueldo->sum()
def: apodo : String = Gallito rojo
def: tieneElTtulo(t : String) : Boolean = self.puesto->exists(ttulo = t)
184
www.dsic.upv.es/~uml
III. El Paradigma OO: OCL
Navegacin
Ejemplos
context Compaa
inv: self.director.estEnparo = false
inv: self.empleado->notEmpty()
context Compaa
inv:self.director.edad > 40
context Persona
inv:self.empleador->size() < 3
context Persona
inv:self.empleador->isEmpty()
context Persona
inv:self.esposa->notEmpty() implies self.esposa.sexo = Sexo::mujer
185
www.dsic.upv.es/~uml
III. El Paradigma OO: OCL
Navegacin
Ejemplo
a) Los casados tienen al menos 18 aos de edad
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
Enfoque Ericsson
189
www.dsic.upv.es/~uml
IV. Proceso de Desarrollo de SW basado en UML
Dos Dimensiones
190
www.dsic.upv.es/~uml
IV. Proceso de Desarrollo de SW basado en UML
tiempo
191
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 (Anlisis y Diseo)
Implementation (Implementacin)
Test (Pruebas)
Deployment (Despliegue)
Workflows de Apoyo
Environment (Entorno)
Project Management (Gestin del Proyecto)
Configuration & Change Management (Gestin de Configuracin y
Cambios)
192
www.dsic.upv.es/~uml
IV. Proceso de Desarrollo de SW basado en UML
Workers Artefactos
Actividades 193
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
Test Set
196
www.dsic.upv.es/~uml
IV. Proceso de Desarrollo de SW basado en UML
197
www.dsic.upv.es/~uml
IV. Proceso de Desarrollo de SW basado en UML
198
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
199
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]
200
www.dsic.upv.es/~uml
IV. Proceso de Desarrollo de SW basado en UML
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
Anlisis
Diseo
Codific.
n veces Pruebas e
Integracin
203
www.dsic.upv.es/~uml
IV. Proceso de Desarrollo de SW basado en UML
Enfoque
Secuencial
Enfoque
Iterativo e
Incremental
205
www.dsic.upv.es/~uml
IV. Proceso de Desarrollo de SW basado en UML
206
www.dsic.upv.es/~uml
IV. Proceso de Desarrollo de SW basado en UML
Architecture
207
www.dsic.upv.es/~uml
IV. Proceso de Desarrollo de SW basado en UML
Esfuerzo 5% 20 % 65 % 10%
Tiempo 10 % 50 % 10%
30 %
Dedicado
209
www.dsic.upv.es/~uml
IV. Proceso de Desarrollo de SW basado en UML
210
www.dsic.upv.es/~uml
V
Conclusiones
211
www.dsic.upv.es/~uml
V. Conclusiones
Claves en el Desarrollo de SI
Notacin
UML
Herramientas Proceso
p.e. Rational Rose p.e. Rational Unified Process
Poseidon Mtrica 3.0 o XP
212
www.dsic.upv.es/~uml
V. Conclusiones
214
www.dsic.upv.es/~uml
V. Conclusiones
Tendencias
UML: actualmente la notacin ms detallada, amplia y
consensuada para modelar software orientado a objetos
Dificultades actuales para derivar de forma directa una
implementacin a partir de los modelos UML
Entornos de programacin visual y el paradigma OO subyacente
Utilizacin de bases de datos relacionales
Arquitectura de 3 capas
Frameworks de persistencia para materializar y desmaterializar
objetos
... Tendencias
Nuevas versiones de UML, uff!
Extensiones de UML (SysML, www.sysml.org)
Generacin automtica de cdigo 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 generacin de cdigo en dominios
especficos (ms 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)
216
www.dsic.upv.es/~uml
Diagramas en UML 2.0
217
www.dsic.upv.es/~uml
V. Conclusiones
Bibliografa 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/
218
www.dsic.upv.es/~uml