Académique Documents
Professionnel Documents
Culture Documents
SISTEMAS DE INFORMACIN
2005
Introduccin a UML
Visualizar
Especificar
Construir
Documentar
de
informacin computacional.
U1
DC
1
DS
DS 3
DC 7
2
DC
vista de
usuarios
DC U
vista de
diseo
diagramas
Modelo
DC
U8
vista ..
........
DC
5
Clase Persona
DC
U9
Entidades Estructurales
Clases
Interfaces
Colaboraciones
Casos de uso
Componentes (representa una parte fsica del
sistema)
Nodos (representan elementos fsicos qu existen en
tiempo de ejecucin, y generalmente poseen
memoria o capacida de procesamiento)
CLASES
son la descripcin de un conjunto de objetos que comparten los
mismos atributos, operaciones, relaciones y semntica
<Nombre de Clase>
atributo1:
atributo2:
..........
operacin1:
operacin2:
operacin3:
.....
.....
INTERFAZ
es un conjutno de operaciones que especifican los servicios que
puede brindar una clase o componente.
<Nombre Interfaz>
COLABORACIN
define una interaccin y una sociedad de roles y otros elementos que
trabajan en conjunto proveyendo un comportamiento cooperativo.
<Nombre Colaboracin>
Diagrama de
Secuencias
Diagrama de
Clases
RELACIONES
Una relacin es la abstraccin de una asociacin entre
instancias de objetos.
La identificacin de relaciones permite reconocer la
manera en que colaboran los distintos objetos en el dominio.
Las relaciones expresan:
un vnculo
clases.
semntico
entre
las
Organizacin
Cliente
1...*
Departamento
confecciona
1...*
compuesto-por
atiende
Cliente
Asociacin
Dependencia
Generalizacin
Realizacin
ASOCIACIN
Empleado
Las
relaciones
no
necesariamente deben estar
etiquetadas con un nombre
Empresa
Cliente
trabaja-en
direccin
Gerente
compra
Proveedor
ASOCIACIN
Las asociaciones son inherntemente bidireccionales: el sentido de
lectura lo da el nombre, pero la relacin es vlida en ambos sentidos.
Empresa
Persona
empleado
Empresa
Persona
trabaja-en
ASOCIACIN
El sentido de lectura elegido durante esta etapa no implica
decisiones de diseo.
materia prima
Proceso
Compuesto
produce
Empresa
cliente
ASOCIACIN
Empresa
empleado
entrevista
Avin
Aeropuerto
arriba
despega
Persona
Club
miembro
presidente
ASOCIACIN
La cardinalidad de una asociacin indica el nmero de
instancias de una clase que pueden relacionarse con una nica
instancia de la clase asociada
Cardinalidad
Descripcin
Exactamente uno
Cantidad ilimitada
0 .. *
Cero o ms
1 .. *
Uno o ms
0 .. 1
Cero o uno
2 .. 6
Rango especfico
2 .. 6, 10
ASOCIACIN
Cardinalidad
Aeropuerto
Avin
0..*
arriba
0..*
1
despega
ASOCIACIN
Cardinalidad
1..*
Libro
1
Editorial
1..*
1..*
Autor
1
1..*
1
Captulo
Indice
10
ASOCIACIN
La cardinalidad pone de manifiesto suposiciones acerca del
dominio de aplicacin.
Contrato
Empresa
Empleado
*
No interesa que la misma represente una Verdad Universal para los Objetos
Relacionados. Slo debe representar lo que se verifica en el dominio modelado
Estudiante
Matricula
0..*
Curso
1..*
Matricula
1..*
Curso
1..*
Roles de un objeto
El rol de un objeto indica el papel que juega un objeto en su relacin
con otros objetos.
Un rol representa un comportamiento de una entidad participando en
un contexto dado.
Empresa
Contrato
+contratado Empleado
+contratante
1..*
11
AGREGACIN
Una Asociacin entre dos clases representa una relacin estructural
entre pares.
En ciertos casos es necesario modelar relacin del tipo "todo/parte",
en la cual una clase representa el todo y la otra clase la parte.
Empresa
1
*
Departamento
AGREGACIN
(una variacin de Agregacin)
Las Partes con multiplicidad variable pueden ser creadas luego que el
todo, sin embargo, una vez creadas no podrn persistir si el todo
desaparece.
En una Composicin el todo es responsable de la vida de sus partes, lo
cual quiere decir que deber administrar su creacin y destruccin.
12
Facultad
1..*
Estudiante
0..*
1
1..*
Departamento
1..*
Persona
Puesto
Inicio
Salario
Descripcin
13
GENERALIZACIN
superclase
generalizacin
subclase
Circulo
Elipse
Linea
GENERALIZACIN
{disjoint,incomplete}
Circulo
Elipse
Linea
14
DEPENDENCIA
Dependencia es una relacin utilizada para representar que un
cambio en la especificacin de una de las clases participantes,
puede afectar a la otra clase que hace uso de ella.
Pla n de C u rs o s
C u rs o
a d icio na r(c : C u rs o )
e lim in ar(c : C u rs o )
REALIZACIN
Relacin entre una especificacin y su implementacin; una
indicacin de la herencia de comportamiento sin la herencia de
estructura.
Especificacin: describe el comportamiento de algo sin determinar
como ser implementado el comportamiento.
Implementacin: provee los detalles acerca de como implementar el
comportamiento (pueden existir mltiples implementaciones para
una especificacin).
Especificacin
<<Interface>>
BloqueElecciones
setDefault()
getChoice()
realizaci
setDefault()
getChoice()
ArregloBotones
setDefault()
getChoice()
Implementaciones
MenuPopUp
15
DIAGRAMA DE CLASES
Representa una vista esttica del sistema
Muestra la existencia de clases y sus relaciones
Especifica los atributos y responsabilidades de las
entidades que proveen el comportamiento de un sistema
Est compuesto por (como mnimo):
Clases.
Interfaces
Colaboraciones
Relaciones entre clases.
Nombre
Clase
Composicin
Expediente
Atributos
Oficina
Perso na
Ubicacin
Titular
Tema
Nmero
Estado
FechaInicio
Nombre
Direccin
Ciudad
FechaNac
DocumentoT ipo
DocumentoNum
Integrante
Generalizacin
Inicio()
Transferir()
Finalizar()
Archivar()
Empleado
Nomnbre
Apellido1 : String
Apellido2 : String
Nombre1 : String
Nombre2 : String
Nombre3 : String
Incorporar()
ActualizarFam()
CalcularHaber()
Trmite
es-un
es-un
es-un
Reclamo
Operaciones
Interno
Otorgamiento
Beneficio
Cliente
Solicitud
Familiar
Asociacin
Diagrama de Clases
16
PAQUETE (Package)
Un paquete encapsula un conjunto de elementos
empleados en el modelo (clases, relaciones, paquetes, etc).
Un paquete es un mecanismo de propsito general empleado
para administrar la complejidad de un modelo, mediante su
descomposicin en grupos de elementos.
17
PAQUETE
Cliente
+ FormOrden
# Orden
- FormSeguimiento
VISIBILIDAD
Cliente
+ FormOrden
# Orden
- FormSeguimiento
pblico
protegido
privado
18
Elementos exportables
Cliente
+ BasedeDatos
+ ServiciosdeLogging
+ FormOrden
+ FormSeguimiento
Orden
Polticas
+ ReglasOrden
<<import>>
GUI
+ Window
+ Form
EventHandler
<<import>>
19
UI
Procesamiento
de Ordenes
Almacenamiento
Externo
Calculo de
Precios
GENERALIZACION
La generalizacin entre paquetes es semejante a la
generalizacin entre clases.
El paquete especializado:
hereda los elementos pblicos y protegidos del
paquete ms general
puede reemplazar y agregar nuevos elementos
Almacenamiento
Externo
DiscosFijos
Paquete general
Removibles
Paquete
especializado
20
EMPLEO DE PAQUETES
El empleo ms usual del concepto de paquete, es para agrupar un
cierto nmero de elementos del modelo, de forma tal que puedan
ser manipulados y referenciados como un conjunto.
Por que usar un paquete y no una clase?
La razn es que las Clases son abstracciones de cosas
que existen en el problema o la solucin; mientras que
un paquete es un mecanismo para organizar los
elementos en el modelo.
Los paquetes no tendrn existencia en el sistema; las
clases existirn en el sistema (las clases poseen
instancias que son elementos del sistema ejecutable).
Servicios al
Usuario
Servicios de
Negocios
Servicios de
Datos
21
AWT
UI Captura
Ordenes
UI Mailing
Aplicacion de
Mailing
Aplicacion de Captura
de Ordenes
Ordenes
Clientes
AWT
UI Captura
Ordenes
UI Mailing
Aplicacion de
Mailing
Aplicacion de Captura
de Ordenes
Dominio
Ordenes
Clientes
22
AWT
UI Captura
Ordenes
UI Mailing
Aplicacion de
Mailing
Aplicacion de Captura
de Ordenes
Dominio
Ordenes
Implementan la
interfase de del
paquete general
Clientes
Interfase
Oracle
Interfase a
Base de Datos
Interfase
Sybase
Paquete abstracto
23
paquete
responsable
B
<<import>>
A
<<import>>
<<import>>
paquete
irresponsable
<<import>>
D
C
paquete
irresponsable
<<import>>
A
<<import>>
<<import>>
<<import>>
paquete
irresponsable
24
Estable
Dependientes
Irresponsable
Responsable
Es
pa
cio
fre
cu
e
nt
pa
ra
pa
qu
et
es
Inestable
Dependencias
Independiente
Dependiente
Generalidad , Abstraccin
Se
cu
en
ci
a
Pr
in
ci
p
al
Detalles de
implementacin
Inestabilidad
independiente
responsable
dependiente
irresponsable
25
CASOS DE USO
Los casos de uso describen bajo la forma de accciones
y reacciones el comportamiento de un sistema desde
el punto de vista de un usuario; permiten definir los
lmites del sistema y las relaciones entre el sistema y el
entorno.
El modelo de Casos de Uso emplea dos conceptos
bsicos
Actor y Caso de Uso
Estos conceptos permiten definir:
que elementos externos al sistema interactuan
con l (Actor) y
qu funciones deben ser realizadas por el sistema
(Caso de Uso)
26
CASOS DE USO
cliente
caso de uso
otro sistema
empleado
actor
CASOS DE USO
La definicin de un caso de uso incluye la descripcin
de todos los comportamientos que representa:
la secuencia principal
diferentes variaciones del comportamiento
normal
todas las condiciones de excepcin que pueden
ocurrir
La dinmica de un caso de uso puede ser especificada
en forma textual o mediante diversos diagramas UML
(secuencia, mquina de estados o colaboracin)
27
Validar Cliente
Cliente
28
ACTOR
Los actores no forman parte del sistema.
Un actor puede:
IDENTIFICACIN DE ACTORES
Las siguientes preguntas usualmente colaboran en la deteccin de actores:
29
Recepcin de mercadera
Dar de baja un item
Consulta sobre existencia
Sistema de Planificaci
n de Compras
Recepcionista
Recepcin de mercadera
Dar de Baja un Item
Sistema de
Facturacin
Consulta de Existencia
Vendedor
Mantener Informacin de
Mercadera
Administrador de
Sistema
Mantiene Informacin de
Proveedores
30
<<utiliza>>
<<extiende>>
Cliente Remoto
Giro por Internet
<<Extiende>>
<<Utiliza>>
Giro
Cliente Local
<<Utiliza>>
Seguir orden
Validacin cliente
Validacin cliente
<<Utiliza>>
<<extiende>>
Despachar orden
31
DIAGRAMA DE SECUENCIA
DIAGRAMA DE SECUENCIA
Un Diagrama de Interaccin (DI) o Secuencia se
compone de:
Un conjunto de objetos (clase o instancia).
Un conjunto de mensajes que comunican pares
de objetos.
Secuencias de comportamiento de los objetos.
Informacin de control (Condicional, Repeticin,
etc.)
32
DIAGRAMA DE SECUENCIA
Actividad: Controlar Temperatura
Objeto
SensorT ValvulaVapor
Controlar Temperatura
entre 60 y 70 C
Obtener la Temperatura Actual.
obtenerT
Si T < 60 Luego
Abrir Vlvula de Vapor
Actividad
abrir
cerrar
Si T> 70 Luego
Cerrar Vlvula de Vapor
Descripcin de las
interacciones entre los
objetos, estructuras
condicionales, etc.
DIAGRAMA DE SECUENCIA
Actividad: Actualizar Ventana
Objeto
rea de
mensaje
Men
actualizarVentana
rea
de
trabajo
Circulo
actualizar
Retngulo
Tiempo que
est activo un
mtodo
redibujar
limpiar
Descripcin de
las interacciones
entre los objetos
dibujar
dibujar
actualizar
actualizar
33
DIAGRAMA DE SECUENCIA
a
while X loop
Empleo
de
pseudocdigo
para representar
estructuras
de
control
Creacin de
instancias
mensaje 1
end loop
2: crear
If X
else
end if
mensaje 2
mensaje 3
destruir
Destruccin
de instancias
34
DIAGRAMA DE SECUENCIA
El eje temporal se mueve en forma descendente. No
es lineal sino controlado por eventos.
35
Cliente
Vendedor
Inventario
Responsable
Planificacin
Plan de
Produccin
Responsable
Manufactura
Producto
1: pedido
2: HayStock?
Si no hay
stock
suficiente
3: Requerimientos
4: Crear
5: Plan
6: Elaborar
7:
8: NuevoProducto
CASOS DE USO
DIAGRAMA DE SECUENCIA
36
CASOS DE USO
DIAGRAMA DE SECUENCIA
CASOS DE USO
DIAGRAMA DE SECUENCIA
usualmente involucran la colaboracin de varias clases
y objetos, por lo cual contribuyen a descubrir y
proponer
los
mensajes
que
los
comunican.
orientadas
objetos,
que
ponen
37
DIAGRAMA DE SECUENCIA
Se origina de manera forward.
CASOS DE USO
DIAGRAMA DE SECUENCIA
Precauciones:
Los Casos de Uso son de naturaleza Funcional,
por lo tanto, se debe ser cuidadoso en su empleo
en un proyecto que emplea el Modelo de Objetos.
El concepto clave a remarcar es que
38
CASOS DE USO
Qu puede ocurrir con el empleo de Casos de Uso en un
proyecto ?
Si en el proyecto se asigna cada Caso de Uso a un
equipo de desarrolladores distinto, lo usual es que los
distintos equipos produzcan
varias veces la misma clase,
en forma redundante y
con variaciones parciales
Esto obviamente producir la consiguiente prdida de
productividad,
pues
el
proceso
de
integracin
de
39
VISTA DE INTERACCIONES
Los objetos interactuan para implementar un comportamiento.
Esta interaccin se puede describir en dos formas
complementarias, focalizandose:
1. en una coleccin de objetos cooperantes - Colaboracin
2. en objetos individuales Mquinas de Estados
Una colaboracin tiene aspectos:
esttico (define el contexto del comportamiento)
de comportamiento (el conjunto de mensajes que se
intercambian los objetos - Interaccin)
Una Interaccin puede representarse con dos tipos de
diagramas:
de secuencia
de colaboracin
DIAGRAMA DE COLABORACIN
El Diagrama de Colaboracin modela los objetos y los enlaces
(links) que son significativos para una interaccin
determinada.
El Diagrama de Colaboracin muestra las interacciones entre
los objetos, representando adems las relaciones estructurales que
permiten la colaboracin del grupos de objetos.
: Ascensor
1: Subir
mensajes
: Cabina
links
2: Encender
: Luz
3: Cerrar
: Puerta
40
componente
Cabina
es-instancia-de
iluminacin
parte
Luz
Puerta
1 : S u b ir
: A s c en s or
r1 : c om p o n e nte
3: C e rra r
: C a bina
: P ue rt a
t ra n si e n t
es-instancia-de
: L uz
DIAGRAMA DE COLABORACIN
Los objetos que participan pueden ser especificados a
travs de:
I Slo el nombre de la instancia
:C Slo el nombre de la clase
I:C Los nombres de la instancia y clase
Los enlaces se representan por lneas entre los objetos:
Los mensajes se representan a travs de flechas sobre el enlace.
Un mensaje se compone de:
Un nmero de secuencia
Un smbolo de sincronizacin
Una etiqueta que identifica al mensaje
41
volumen
Ejemplar
crearEjemplar()
catalogo
Biblioteca
Libro
reserva
prestamo
prestamo
Usuario
inventario
: Libro
3: crear(Bibloteca)
:
Biblioteca
empleado :
actor
4: incorporarInventario(Ejemplar)
:
Ejemplar
42
2: crearEjemplar( )
: Libro
F
1: Ingresar( )
3: crear( )
: catalogo
:
Biblioteca
4: iniciar(datos, Biblioteca)
: actor
L
5: incorporarInventario(Ejemplar)
:
Ejemplar
:B
:A
P
cliente
6:
servidor
NOTACIN
SIGNIFICADO
<<parametro>> El servidor est asociado a un
parmetro del mtodo que se
P
est ejecutando en el cliente
<<local>>
El servidor est asociado a una
variable local del mtodo que se
L
est ejecutando en el cliente
El servidor est vinculado por
una asociacin al cliente
F
43
: Libro
F
1: Ingresar( )
3: crear( )
: catalogo
:
Biblioteca
4: iniciar(datos, Biblioteca)
: actor
L
5: incorporarInventario(Ejemplar)
:
Ejemplar
{new}
: Libro
libro :
3: crear( )
:
Biblioteca P
4: incorporarInventario(Ejemplar)
1: Ingresar( )
{new}
: actor
: actor
:
Ejemplar
: Biblioteca
: Ejemplar
: Libro
1: Ingresar( )
2: crearEjemplar( )
3: crear( )
4: incorporarInventario(Ejemplar)
44