Documente Academic
Documente Profesional
Documente Cultură
Contenido
I.
II.
III.
IV.
V.
Introduccin
Modelado de Software
UML
Breve Tour por UML
El Paradigma Orientado a Objeto usando UML
Diagramas de Interacciones
Diagrama de Clases
Diagrama de Componentes
Diagrama de Despliegue
Proceso de Desarrollo de SW basado en UML
Conclusiones
Introduccin
Modelado de SW
I. Introduccin: Modelado de SW
I. Introduccin: Modelado de SW
I. Introduccin: Modelado de SI
Construccin de un
rascacielos
I. Introduccin: Modelado de SW
Claves en Desarrollo de SI
Notacin
Herramientas
Proceso
I. Introduccin: Modelado de SW
envo
Proceso de Negocios
Sistema Computacional
8
I. Introduccin: Modelado de SW
MV para manejar la
complejidad
I. Introduccin: Modelado de SW
Servidor de BDs
(C++ & SQL, ..)
10
I. Introduccin: Modelado de SW
MV promueve la
reutilizacin
Mltiples Sistemas
Componentes
Reutilizados
11
Introduccin: UML
12
I. Introduccin: UML
Qu es UML?
Modelado
Modelado
Modelado
Modelado
Orientado a Objetos
de Datos
de Componentes
de Flujos de Trabajo (Workflows)
13
I. Introduccin: UML
Situacin de Partida
14
I. Introduccin: UML
Historia de UML
15
I. Introduccin: UML
Historia de UML
UML 2.0
2001
UML 1.4
2000
1999
1998
Nov 97
UML 1.3
UML aprobado por el OMG
UML 1.2
Revisiones
menores
16
I. Introduccin: UML
Rational Software
Digital Equipment
Hewlett-Packard
i-Logix (David Harel)
IBM
ICON Computing
(Desmond DSouza)
MCI Systemhouse
Microsoft
ObjecTime
Oracle Corp.
Platinium Technology
Sterling Software
Taskon
Texas Instruments
Unisys
17
I. Introduccin: UML
Jacobson
Odell
Meyer
Pre- and Post-conditions
Shlaer-Mellor
Object life cycles
UML
Harel
State Charts
Embly
Singleton classes
Wirfs-Brock
Fusion
Responsabilities
Operation descriptions,
message numbering
18
I. Introduccin: UML
Aspectos Novedosos
Constraints
Tagged Values
19
I. Introduccin: UML
Inconvenientes en UML
Ejemplos aislados
I. Introduccin: UML
Perspectivas de UML
Evidencias:
Herramientas que proveen la notacin UML
Edicin de libros
Congresos, cursos, camisetas, etc.
21
22
Modelos y Diagramas
23
24
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 Interaccin
Diagrama de Secuencia
Diagrama de Colaboracin
Diagramas de implementacin
Diagrama de Componentes
Diagrama de Despliegue
25
Use Case
Use Case
Diagramas de
Diagrams
Diagrams
Secuencia
Use Case
Use Case
Diagramas de
Diagrams
Diagrams
Casos de Uso
Scenario
Scenario
Diagramas de
Diagrams
Diagrams
Colaboracin
Scenario
Scenario
Diagramas de
Diagrams
Diagrams
Estados
State
State
Diagramas de
Diagrams
Diagrams
Clases
Modelo
Diagramas de
Actividad
State
State
Diagramas de
Diagrams
Diagrams
Objetos
State
State
Diagramas de
Diagrams
Diagrams
Componentes
Component
Component
Diagrams
Diagramas
Diagrams de
Distribucin
26
Organizacin de Modelos
4+1 vistas de Kruchten (1995)
Vista Lgica
Vista de
Realizacin
Vista de los
Casos de Uso
Vista de
Procesos
Vista de
Distribucin
28
Paquetes en UML
29
Paquetes en UML
Paquetes en UML
El operador :: permite
designar una clase definida
en un contexto distinto del
actual
Prctica 1
31
Paquetes en UML
Prctica 1
32
33
Ejemplos
Supervisor
Administrativo
Preparar Catlogo
Sistema
Inventario
Tipos de Venta
34
Ejemplos
En el paquete tipos de venta:
Venta Normal
Vendedor
Venta en Rebajas
Venta en Ofertas
35
Ejemplos
Cliente
Solicitar Prstamo
[Tarjeta Caducada]
<<extend>>
36
Ejemplos
<<include>>
Verificar Operacin
Cliente
<<include>>
37
Diagrama de Secuencia
: Encargado
:WInPrstamos
:Socio
:Video
:Prstamo
prestar(video, socio)
verificar situacin socio
verificar situacin video
registrar prstamo
entregar recibo
38
Diagrama de Colaboracin
:Socio
:Video
2: verificar situacin socio
1: prestar(video, socio)
5: entregar recibo
: Encargado
4: registrar prstamo
:Prstamo
Prctica 3
39
Diagrama de Clases
El Diagrama de Clases es el diagrama principal
para el anlisis y diseo
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 aporta informacin
para establecer las clases, objetos, atributos y
operaciones
40
Alumno
DNI : char[10]
nmero_exp : int
nombre : char[50]
alta()
poner_nota(asignatura : char *, ao : int, nota : float)
matricular(cursos : asignatura, ao : int)
listar_expediente()
41
Ejemplos (Asociacin)
Departamento
dirige
0..1
director
Profesor
1
42
Empresa
empleador
trabajadores
Empleado
1..*
Cargo
nombre
sueldo
superior
0..1
subordinado 1..*
43
Ejemplos (Generalizacin)
Trabajador
{ disjunta, completa }
Directivo
Administrativo
Obrero
44
Ejemplos
Motor
1..4
1
Avin
Vendedor de billetes
Piloto
1..2
Vuelo
Reserva
{ disjunta, completa }
1
Avin militar
Avin comercial
Lnea area
{ disjunta, completa }
Avin de carga
Avin de pasajeros
Prcticas 4-8
45
Diagrama de Estados
alta
baja
sin prstamos
nmero_prstamos = 0
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
46
Diagrama de Actividad
Buscar Bebida
[hay caf
Poner caf en filtro
[no zumo]
[hay zumo]
Encender mquina
/ cafetera.On
Caf en preparacin
indicador de fin
Servir caf
Beber
47
Solicitar pasaje
Vendedor
Airline
Verificar
existencia vuelo
Dar detalles vuelo
Informar alternativas
y precios
Seleccionar vuelo
Pagar pasaje
Emitir billete
Prctica 9
48
Diagrama Componentes
Control y Anlisis
Interfaz de Terminal
Comment
Comment
Gestin de Cuentas
Comment
Rutinas de Coneccion
Comment
Acceso a BD
Comment
49
Diagrama de Despliegue
Servidor Central
Control y Anlisis
Comment
Acceso a BD
Comment
Rutinas de Coneccion
Comment
Terminal de Consulta
Rutinas de Coneccion
Comment
Punto de Venta
Interfaz de Terminal
Comment
Rutinas de Coneccion
Comment
Gestin de Cuentas
Interfaz de Terminal
Comment
Comment
Prctica 10
50
Resumen
UML define una notacin que se expresa
como diagramas sirven para representar
modelos/subsistemas o partes de ellos
El 80 por ciento de la mayora de los
problemas pueden modelarse usando
alrededor del 20 por ciento de UML-- Grady
Booch
51
El Paradigma
Orientado a Objeto
usando UML
52
53
54
Problemas en OO
...Los conceptos bsicos de la OO se conocen
desde hace dos dcadas, pero su aceptacin
todava no est tan extendida como los beneficios
que esta tecnologa puede sugerir
...La mayora de los usuarios de la OO no utilizan
los conceptos de la OO de forma purista, como
inicialmente se pretenda. Esta prctica ha sido
promovida por muchas herramientas y lenguajes
que intentan utilizar los conceptos en diversos
grados
--Wolfgang Strigel
55
Problemas en OO
DFDs
E-R
Enfoque OO
Diseo
DEs
Modelo
Relacional
Modelo
Relacional !!
Diagrama de Clases
Diagrama de Estados
Diagramas de Actividad
Implementacin
Entornos de
Programacin
Visual
Bases de Datos
(Objeto-)
Relacionales
57
Fundamentos de Modelado
OO
58
Objetos
59
Objetos
Un Objeto
Otro
Objeto
60
Objetos
Felipe
Cuenta Corriente 114
61
Objetos
Clases y Objetos
63
Identidad
Identidad
Es independiente de las propiedades del objeto, lo
cual implica independencia de valor y de estructura
No cambia durante toda la vida del objeto. Adems,
un oid no se reutiliza aunque el objeto deje de existir
No se tiene ningn control sobre los oids y su
manipulacin resulta transparente
Estado
Comportamiento
Ejemplo de interaccin:
67
Comportamiento
Persistencia
Comunicacin
70
Comunicacin
Categoras de objetos:
Activos - Pasivos
Cliente Servidores, Agentes
71
Comunicacin
72
Comunicacin
Sevidor 1
Servidor 2
Un cliente
73
El Concepto de Mensaje
El Concepto de Mensaje
Objeto 1
: Mensaje A
Objeto 2
: Mensaje C
: Mensaje E
Objeto 3
Objeto 4
: Mensaje D
75
Mensaje y Estmulo
76
77
Casos de Uso
78
Casos de Uso
79
Casos de Uso
Ejemplo:
Actor A
Caso de Uso A
Caso de Uso B
Actor B
80
Casos de Uso
Actores:
81
Casos de Uso
82
Actor
Caso de Uso
83
84
85
86
Ejemplo:
<<include>>
Cliente
Identificacin
Transferencia
<<extend>>
Transferencia en Internet
87
Ejemplo:
88
89
90
Precondicin
Secuencia
Normal
Postcondicin
Excepciones
Rendimiento
Frecuencia esperada
Importancia
Urgencia
Comentarios
91
92
Diagramas de Interaccin
93
Interaccin
94
Mensajes
Sintaxis para mensajes:
predecesor / guarda secuencia: retorno := msg(args)
95
Diagramas de interaccin
El Diagrama de Secuencia es ms
adecuados para observar la perspectiva
cronolgica de las interacciones
Diagrama de Secuencia
Diagrama de Secuencia
98
Diagrama de Secuencia
mostrando foco de
control,
condiciones, recursin
creacin y destruccin
de objetos
99
Diagrama de Secuencia
100
Diagrama de Colaboracin
Mensajes
A
102
Mensajes
B
A
103
Mensajes
1: distancia:= mover(x,y)
B
A
Prctica 12
104
Diagrama de Clases
105
Clasificacin
Mecanismos de abstraccin:
Clasificacin / Instanciacin
Composicin / Descomposicin
Agrupacin / Individualizacin
Especializacin / Generalizacin
106
Clases
107
motocicleta
color
cilindrada
velocidad maxima
arrancar
acelerar
frenar
108
Otros ejemplos:
lista
pila
primero
ultimo
aadir
quitar
cardinalidad
apilar
desapilar
cardinalidad
109
Clases: Encapsulacin
110
Clases: Encapsulacin
Clases: Encapsulacin
Ejemplo:
Reglas de visibilidad
+ Atributo pblico : int
# Atributo protegido : int
- Atributo privado : int
+ "Operacin pblica"
# "Operacin protegida"
- "Operacin privada"
112
Asociacin
Un enlace
Universidad
Antonio:Estudiante
Estudiante
Una asociacin
114
Asociacin
Ejemplo:
marido
casado-con
Administra
0.. 1
mujer
jefe
0.. 1
0.. 1
Persona *
nombre
s. s.
trabaja-para
emplea-a
* Compaa
nombre
direccin
empleado
115
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)
Asociacin Cualificada
Aerolnea
Tablero
Ajedrez
nro_billete
0..1
1
fila
columna
Viajero
Cuadro
117
Agregacin
Agregacin: Caracterizacin
Multiplicidad Mnima
0
flexible
> 0 estricta
Multiplicidad
Objeto
Agregado
(mna, mxa)
Multiplicidad Mnima
(mnc,
0
nulos permitidos
> 0 nulos no
Objeto
permitidos
mxc)
Componente
Mxima
1
disjunto
> 1 no disjunto
Multiplicidad Mxima
1
univaluado
> 1 multivaluado
119
...
Agregacin: Caracterizacin
120
Ejemplos
121
... Ejemplos
122
Ejemplos
Agregacin
Cuenta
1 contiene
Polgono
3.. *
{ordenado}
Persona
or
1
Punto
Asociacin excluyente
Empresa
Usuario
est-autorizado-en
Estacin
Autorizacin
prioridad
Clase de asociacin privilegios
camb_privil
123
Clases y Objetos
Generalizacin
... Generalizacin
126
... Generalizacin
127
... Generalizacin
Vehculo
Veihculo Terrestre
Coche
Camin
Vehculo Areo
Avin
Helicptero
128
... Generalizacin
Funcionando
Estropeado
disjunta - no disjunta
total (completa) - parcial (incompleta)
129
... Generalizacin
130
... Generalizacin
131
... Generalizacin
Avin
Helicptero
132
... Generalizacin
Funcionando
Estropeado
133
... Generalizacin
int(A) int(B)
ext(B) ext(A)
B
134
... Generalizacin
Clasificacin Esttica
C0
ext(C0) = ext(Ci)
{ static }
completa
ext(Ci) ext(Cj) =
C1
Cn
disjunta
135
... Generalizacin
Clasificacin Dinmica
C0
ext(C0) = ext(Ci)
{ dinmica }
completa
C1
Cn
posiblemente
no disjunta en
diferentes
instantes
136
... Generalizacin
Militar
uso
Vehculo Areo
estructura
Avin
Helicptero
137
138
Herencia Mltiple
Cuadrpedo
nro patas
nro patas
Herbvoro
Con Pelos
comida
cubertura
Con Plumas
cobertura
Animal
comida
cobertura
Carnvoro
Con Escamas
Conejo
139
Principio de Sustitucin
140
Principio de Sustitucin
141
Polimorfismo
142
Polimorfismo
?
dormir
?
Len
Oso
Tigre
143
Polimorfismo
Animal
dormir()
Dormir()
{
}
Len
dormir()
Dormir()
{
sobre el vientre
}
Oso
dormir()
Dormir()
{
sobrela espalda
}
Tigre
dormir()
Dormir()
{
en un rbol
}
144
Polimorfismo
145
Diagrama de Estados
146
Diagrama de Estados
147
Diagrama de Estados
148
Diagrama de Estados
149
Diagrama de Estados
Estados y Transiciones
Evento [condicin] / Accin
B
Tanto el evento como la accin se
consideran instantneos
150
Diagrama de Estados
en activo
perder empleo
jubilarse
jubilarse
jubilado
151
Acciones
B
152
Acciones
153
Generalizacin de Estados
154
Generalizacin de Estados
Ejemplo:
e1
e2
e2
C
155
Generalizacin de Estados
Quedara como:
Aa
e1
b
B
e2
C
156
Generalizacin de Estados
Las transiciones de entrada deben ir
hacia subestados especficos:
e1
Aa
Bb
e2
e0
C
157
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
158
Generalizacin de Estados
La agregacin de estados es la
composicin de un estado a partir de
varios estados independientes
159
Generalizacin de Estados
Ejemplo:
e1
e1
160
Generalizacin de Estados
Ejemplo:
161
Historia
Historia
Ejemplo:
A
d2
B
in
D
out
d1
C
H*
163
Historia
Ejemplo:
Enjuague
Lavado
Secado
cerrar puerta
abir puerta
Espera
164
165
Destruccin de Objeto
Ejemplo:
En vuelo
despegar
Crear(matricula)
crash
aterrizar
En tierra
166
Transiciones temporizadas
Transiciones temporizadas
Ejemplo:
A
/ Abrir ranura
esperar dinero
entry: Mostrar mensaje
exit: cerrar ranura
despus de
30 segundos
anular
transaccin
Depsito efectuado
B
168
Diagrama de Actividad
169
Ejemplos
170
... Ejemplos
171
... Ejemplos
172
Diagrama de
Componentes
173
Diagrama de Componentes
174
...Diagrama de Componentes
Diagramas de Componentes
Ejemplo:
176
Diagrama de Despliegue
177
Diagrama de Despliegue
178
Diagrama de Despliegue
Los estereotipos permiten precisar la
naturaleza del equipo:
Dispositivos
Procesadores
Memoria
179
Diagrama de Despliegue
<<Servidor>>
<<TCP/IP>>
Base de
Datos
<<RDSI>>
Podemos distinguir
tipos de nodos y
connexiones por
estereotipado
Control
<<RDSI>>
180
Proceso de Desarrollo
de SW basado en UML
181
Requisitos nuevos
o modificados
Proceso de Desarrollo
de Software
Sistema nuevo
o modificado
Historia de RUP
Rational Unified Process
1998
RationalObjectory Process
1996-1997
Objectory Process
Pruebas funcionales
Pruebas de desempe
Gestin de requisitos
Gestin de cambios y
configuracin
Ingeniera de Negocio
Ingeniera de datos
Diseo de interfaces
UML
1987-1995
Enfoque Ericsson
183
Dos Dimensiones
184
Inception Elaboration
Objetivos
(Vision)
Construction
Arquitectura
Transition
Capacidad
Operacional
Inicial
Release
del Producto
tiempo
185
Elementos en RUP
Workflows (Disciplinas)
Workflows Primarios
Workflows de Apoyo
Environment (Entorno)
Project Management (Gestin del Proyecto)
Configuration & Change Management (Gestin de
Configuracin y Cambios)
186
Workers
Artefactos
Actividades
187
Business-Process Analyst
Business Designer
Business-Model Reviewer
Requirements Reviewer
System Analyst
Use-Case Specifier
User-Interface Designer
Developer workers
Architect
Architecture Reviewer
Capsule Designer
Code Reviewer
Database Designer
Design Reviewer
Designer
Implementer
Integrator
Manager workers
Other workers
Any Worker
Course Developer
Graphic Artist
Stakeholder
System Administrator
Technical Writer
Tool Specialist
188
189
Conjuntos de Artefactos
Business Modeling
Set
Deployment Set
Project Management Set
Requirements Set
190
191
Caractersticas Esenciales de
RUP
192
Requisitos
Anlisis & Diseo
Implementacin
Pruebas
Casos de Uso
integran el
trabajo
Realizar los
casos de uso
Verificar que se
satisfacen los
casos de uso
193
trace
trace
trace
Pruebas
Unitarias
Pruebas Funcionales
Caso de Prueba
[The Unified Software Development Process. I. Jacobson, G. Booch and J. Rumbaugh. Addison-Wesley, 1999]
194
195
...
n veces
Codific.
Pruebas e
Integracin
197
...
198
Enfoque
Iterativo e
Incremental
199
200
Inception Elaboration
Construction
Transition
Architecture
201
202
Elaboracin
Tanto la funcionalidad como el dominio del
problema se estudian en profundidad
Se define una arquitectura bsica
Se planifica el proyecto considerando
recursos disponibles
203
Construccin
Transicin
Se libera el producto y se entrega al usuario
para un uso real
Se incluyen tareas de marketing, empaquetado
atractivo, instalacin, configuracin,
entrenamiento, soporte, mantenimiento, etc.
Los manuales de usuario se completan y
refinan con la informacin anterior
Estas tareas se realizan tambin en iteraciones
205
Elaboration
Construction
Transition
15%
Requisitos
Una iteracin en la
fase de elaboracin
Anlisis
10%
Diseo
15%
30%
Implementacin
15%
Pruebas
P re lim ina ry
Ite ra tion (s)
ite r.
#1
ite r.
#2
ite r.
#n
ite r.
# n+ 1
ite r.
#n+2
ite r.
#m
ite r.
#m +1
Elaboration
Construction
Transition
Requisitos
Una iteracin en la
fase de elaboracin
Anlisis
Diseo
Implementacin
Pruebas
P re lim ina ry
Ite ra tion (s)
Esfuerzo:
Duracin:
5%
10%
ite r.
#1
ite r.
#2
20%
30%
ite r.
#n
ite r.
# n+ 1
65%
50%
ite r.
#n+2
ite r.
#m
ite r.
#m +1
10%
10%
207
Conclusiones
208
V. Conclusiones
Claves en el Desarrollo de SI
Notacin
UML
Herramientas
p.e. Rational Rose
Proceso
p.e. Rational Unified Process
209
V. Conclusiones
Contexto de Desarrollo:
Grado de Complejidad
210
V. Conclusiones
Sencillez y Elegancia
Sincronizacin de modelos
V. Conclusiones
... Finalmente
212
V. Conclusiones
Bibliografa 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 ingls www.celigent.com/omg/umlrtf/tutorials.htm
213