Uml 2
Uml 2
UML
1 /78
MODELADO DE SOFTWARE
2 /78
Claves en Desarrollo de SI
Notacin
Herramientas
Proceso
3 /78
Abstraccin
envo
Proceso de Negocios
Sistema Computacional
4 /78
Notacin (Visual)
Manejar la complejidad
Interface de Usuario
(Visual Basic,
Java, ..)
Mltiples Sistemas
Servidor de BDs
(C++ & SQL, ..)
Modelar el sistema
independientemente
del lenguaje de
implementacin
Componentes
Reutilizados
Promover la Reutilizacin
5 /78
UML
6 /78
Qu es UML?
Es un lenguaje estndar para crear planos de software
No es un lenguaje de programacin. Sin embargo permite
hacer una rpida transicin del modelo al cdigo.
Es una herramienta de la ingeniera de software.
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:
8 /78
9 /78
Punto 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)
10 /78
UML en un proyecto
Dispone de herramientas que pueden ser utilizadas en la
mayora de fases de un proyecto de ingeniera de software.
Permite tener informacin consistente en cada fase. CADA
MODELO HACE REFERENCIA A OTROS MODELOS.
A partir de un diagrama de casos de uso es posible obtener
un diagrama de secuencias o un diagrama de clases.
A partir de un Diagrama de clases es posible obtener un
Diagrama de Secuencias, o viceversa.
A partir de la reunin de todos los modelos del sistema se
hace la implementacin. NO SOLO DEL DIAGRAMA DE
CLASES.
El cdigo es otro modelo de un sistema.
11 /78
UML Modelamiento
UML no hace ms fcil modelar. Permite hacer modelos
ms descriptivos.
El paradigma orientado a objetos permite crear modelos de
una forma ms lgica, ms sencilla.
UML se basa en el paradigma orientado a objetos.
Es difcil determinar cundo un modelo est bien hecho.
Modelar es casi un arte que exige mucha experiencia.
Un modelo podra considerarse aceptable en la medida en
que describa el sistema que se est representando.
Las mtricas permiten determinar la calidad de un
producto. Desgraciadamente son difciles de aplicar
especialmente en los sistemas Orientados a Objetos.
12 /78
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
13 /78
Historia de UML
UML 2.0
2005?
2003
2000
1999
1998
Nov 97
UML 1.5
UML 1.4
UML 1.3
Revisiones
menores
UML 1.2
UML aprobado
por el OMG
14 /78
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
15 /78
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
16 /78
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
17 /78
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
Monopolio de conceptos, tcnicas y mtodos en torno a
UML y el OMG
18 /78
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.
19 /78
INTRODUCCION AL UML
20 /78
Modelos y Diagramas
Un modelo captura una vista de un sistema del mundo real.
Use Case
Use Case
Diagramas de
Diagrams
Diagrams
Secuencia
Scenario
Scenario
Diagramas de
Diagrams
Diagrams
Colaboracin
Scenario
Scenario
Diagramas de
Diagrams
Diagrams
Estados
Use Case
Use Case
Diagramas de
Diagrams
Diagrams
Casos de Uso
State
State
Diagramas de
Diagrams
Diagrams
Clases
Modelos
Diagramas de
Actividad
State
State
Diagramas de
Diagrams
Diagrams
Objetos
State
State
Diagramas de
Diagrams
Diagrams
Componentes
Component
Component
Diagrams
Diagramas
Diagrams de
Distribucin
24 /78
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
25 /78
AdministradorNod
o
Actualizar_Institucin
<<include>>
(from Actores)
<<include>>
Buscar_Institucin
27 /78
Diagrama de Secuencias
28 /78
Diagrama de Clases
29 /78
BLOQUES DE CONSTRUCCION
DEL UML
30 /78
31 /78
ELEMENTOS
32 /78
Elementos
Estructurales
De Comportamiento
De Agrupacin
De Anotacin
33 /78
Persona
nombre
apellido
fechaNacimiento
hablar()
dormir()
comer()
34 /78
Interfaz
35 /78
36 /78
37 /78
Caso de Uso
38 /78
Elementos
Estructurales
De Comportamiento
De Agrupacin
De Anotacin
39 /78
Elementos de Comportamiento
Partes dinmicas de los modelos.
Interacciones. Comportamiento que comprende un conjunto de
mensajes intercambiados entre un conjunto de objetos, dentro de
un contexto particular, para alcanzar un propsito especfico.
Dibujar
40 /78
Conjunto de interacciones
OBJETO
41 /78
Elementos de Comportamiento
Mquina de Estados. Especifica la secuencia de estados
por las que pasa un objeto.
Esperando
Representacin
de un estado
42 /78
Elementos
Estructurales
De Comportamiento
De Agrupacin
De Anotacin
43 /78
Elementos de Agrupacin
Partes organizativas de UML.
Paquetes. Permite organizar elementos en grupos. Todos los
elementos vistos hasta el momento pueden agruparse en paquetes.
ingenieriaSoftwareInstrumentacion
44 /78
Ingresar_Institucion
<<include>>
Instituciones
AdministradorNod
o
Actualizar_Institucin
<<include>>
(from Actores)
<<include>>
Buscar_Institucin
45 /78
Paquetes en UML
Los paquetes ofrecen un mecanismo general para la
organizacin de los modelos/subsistemas agrupando
elementos de modelado
Se representan grficamente como:
Nombre de
paquete
46 /78
Paquetes en UML
Cada paquete corresponde a un submodelo (subsistema)
del modelo (sistema)
Un paquete puede contener otros paquetes, sin lmite de
anidamiento pero cada elemento pertenece a (est definido
en) slo un paquete
Una clase de un paquete puede aparecer en otro paquete
por la importacin a travs de una relacin de dependencia
entre paquetes
47 /78
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
48 /78
Otra Clase
Customers
CheckingAccount
<<access>>
Banking
(f rom Banking)
Banking
CheckingAccount
49 /78
Paquetes en UML
50 /78
Elementos
Estructurales
De Comportamiento
De Agrupacin
De Anotacin
51 /78
Elementos de Anotacin
Notas. Permiten explicar el modelo.
NOTA
52 /78
Elementos de Anotacin
<<screen>>
FormularioUsuarios
(from GUI)
addInstitution()
$display_VistaInformacionU()
<<screen>>
FormularioInstituciones
(from GUI)
<<create>> FormularioInstituciones()
$display_VistaInformacionI()
$addNameInst_FormUsers()
$display_InsertAdmNodo_msg()
53 /78
RELACIONES
54 /78
55 /78
Relaciones
Dependencia
Asociacin
Generalizacin
Realizacin
56 /78
Relaciones
Dependencia: Un cambio en B puede afectar a A.
ClaseA
ClaseB
ClaseB
57 /78
Relaciones
Generalizacin: A es hijo de B.
ClaseA
ClaseB
Interfaz
58 /78
DIAGRAMAS
59 /78
60 /78
Diagramas
Renen lo visto hasta el momento.
Diagrama de clases.
Diagrama de objetos.
Diagrama de casos de uso.
Diagramas de Secuencia.
Diagramas de Colaboracin.
Diagrama de Estados.
Diagrama de Actividades.
Diagrama de Componentes.
Diagrama de Despliegue.
61 /78
62 /78
Ejemplos
Ejemplo:
Retirar dinero
Cliente
Consultar Extracto
Realizar transferencia
63 /78
Diagrama de Secuencia
: Encargado
:WInPrstamos
:Socio
:Video
:Prstamo
prestar(video, socio)
verificar situacin socio
verificar situacin video
registrar prstamo
entregar recibo
64 /78
Diagrama de Colaboracin
:Socio
:Video
2: verificar situacin socio
1: prestar(video, socio)
5: entregar recibo
: Encargado
4: registrar prstamo
:Prstamo
65 /78
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
66 /78
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()
67 /78
Ejemplos (Asociacin)
Departamento
dirige
0..1
director
Profesor
1
68 /78
Empresa
empleador
trabajadores
Empleado
1..*
Cargo
nombre
sueldo
superior
0..1
subordinado 1..*
69 /78
Ejemplos (Generalizacin)
Trabajador
{ disjunta, completa }
Directivo
Administrativo
Obrero
70 /78
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
71 /78
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
72 /78
Diagrama de Actividad
Buscar Bebida
[ no hay caf ]
[ no zumo ]
[ hay caf ]
[ hay zumo ]
Poner caf
en filtro
Aadir agua
al depsito
Coger taza
Coger
zumo
Poner filtro
en mquina
Encender
mquina
/ cafetera.On
Caf en
preparacin
indicador de fin
Servir caf
Beber
73 /78
Diagrama Componentes
Interfaz de Terminal
Gestin de Cuentas
Rutinas de conexin
Control y Anlisis
Acceso a BD
74 /78
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
75 /78
Servidor Central
Component Diagram:
Components / Servidor
Central
Rutinas de conexin
Servidor Central
Punto de Venta
Punto de Venta
Terminal de
Consulta
Gestin de Cuentas
Terminal de Consulta
Component Diagram:
Components / Punto de
Venta
Component Diagram:
Components / Terminal
de Consulta
Rutinas de conexin
Rutinas de conexin
Interfaz de Terminal
Interfaz de Terminal
76 /78
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
77 /78
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/patternsintro.html,
Foro UML en yahoo: http://groups.yahoo.com/group/uml-forum/
78 /78