Beruflich Dokumente
Kultur Dokumente
MSI 511
Arquitecturas de Sistemas con UML
Giovanni Giachetti
giovanni.giachetti@unab.cl
1
End user
Development
view
Logical view
Scenarios
Process View
Physical View
Programmers
& software
managers
Giovanni Giachetti
Giovanni Giachetti
Historia de UML
UML 2.0
2005
2003
UML 1.5
2000
UML 1.4
1999
Revisiones
menores
UML 1.3
1998
UML 1.2
UML aprobado
por el OMG
Nov 97
Giovanni Giachetti
Structure
Diagram
Class Diagram
Com posite
Structure
Diagram
Behavior
Diagram
Com ponent
Diagram
Activity
Diagram
Object
Diagram
Deploym ent
Diagram
Package
Diagram
Profile Diagram
Use Case
Diagram
State M achine
Diagram
Interaction
Diagram
Sequence
Diagram
Interaction
O verview
Diagram
Com m unication
Diagram
Tim ing
Diagram
6
Figure A.5 - The taxonomy of structure and behavior diagram
Structure diagrams show the static structure of the objects in a system. That is, they depict those elements in a
specification that are irrespective of time. The elements in a structure diagram represent the meaningful concepts of an
application, and may include abstract, real-world and implementation concepts. For example, a structure diagram for an
airline reservation system might include classifiers that represent seat assignment algorithms, tickets, and a credit
authorization service. Structure diagrams do not show the details of dynamic behavior, which are illustrated by behavioral
diagrams. However, they may show relationships to the behaviors of the classifiers exhibited in the structure diagrams.
Behavior diagrams show the dynamic behavior of the objects in a system, including their methods, collaborations,
activities, and state histories. The dynamic behavior of a system can be described as a series of changes to the system over
Giovanni Giachetti
Elementos de agrupacin
Los elementos de agrupacin son la parte
organizacional de UML.
descomponer un modelo.
H a y
Giovanni Giachetti
Elementos de agrupacin:
Paquetes
Giovanni Giachetti
Elementos de anotacin
Los elementos de anotacin son la parte de
Giovanni Giachetti
Elementos de anotacin:
Nota
Una nota es simplemente un smbolo para
10
Giovanni Giachetti
Diagramas UML
Un diagrama es la representacin grfica
Giovanni Giachetti
Diagramas UML
12
Giovanni Giachetti
Giovanni Giachetti
Ejemplos
Cliente
Solicitar Prstamo
[Tarjeta Caducada]
<<extend> >
Giovanni Giachetti
15
Giovanni Giachetti
Giovanni Giachetti
Planificacin y Elaboracin
Es
17
Giovanni Giachetti
Planificacin y Elaboracin
Las funciones deben ser clasificadas en categoras para
18
Giovanni Giachetti
Planificacin y Elaboracin
Ejemplo funciones:
19
Giovanni Giachetti
Planificacin y Elaboracin
Los atributos tienen un posible conjunto de detalles de atributos,los cuales
20
Giovanni Giachetti
Planificacin y Elaboracin
Los atributos se relacionan con las funciones que son
21
Giovanni Giachetti
Diagramas UML
Diagrama de Clases
Un diagrama de clases describe la vista esttica del sistema.
Aunque tiene similitudes con un modelo de datos (entidadrelacin), las clases no solo muestran la estructura de la
informacin, sino que describen tambin el comportamiento.
Un propsito de los diagramas de clases es definir una base para
otros diagramas donde otros aspectos del sistema son mostrados
(tales como los estados de los objetos o la colaboracin entre ellos
mostrados en los diagramas de comportamiento).
22
Giovanni Giachetti
Diagramas UML
Diagrama de Componentes
Los
Los
Las
23
Diagramas de Componentes
24
Giovanni Giachetti
Diagramas UML
Diagrama de Despliegue
25
Diagramas de despliegue
26
Giovanni Giachetti
Aplicando UML
27
Giovanni Giachetti
Modelo Conceptual
El modelo conceptual no es una descripcin de
28
Giovanni Giachetti
Modelo Conceptual
Los artefactos de software, como una ventana o una base de
ninguna operacin.
29
Giovanni Giachetti
Diagrama de clases
Ejemplo: Clase automvil.
Automovil
nombre
-color
-marca
-ao
-motor
+automovil()
+~automovil()
+arrancar()
+acelerar()
+frenar()
atributos
operaciones
Diagrama de clases
Tipos particulares de clases:
Clase abstracta:
Animal
dormir() {
}
+dormir()
{obligatorio}
Tigre
+dormir()
dormir() {
en un arbol
}
Oso
+dormir()
dormir() {
de espalda
}
Cocodrilo
+dormir()
dormir() {
sobre el vientre
}
Giovanni Giachetti
Categora de Concepto
Ejemplo
Lugares
Transaccin
Roles de Personas
Cajero, Bodeguero
33
Giovanni Giachetti
34
Categora de Concepto
Ejemplo
Cosas en Contenedores
Conceptos Abstractos
Hambre
Organizaciones
Departamento de Ventas
Eventos
Venta de producto
Giovanni Giachetti
Ejemplo
Catlogos
Catlogo de Productos
Catlogo de Partes
Contratos de Empleo
Lnea de Crdito
Manuales, Libros
Manual de reparaciones
35
Giovanni Giachetti
Giovanni Giachetti
Identificar Clases
Est dentro de los lmites del sistema?
Posee estructura identificable?
Tiene ms de 1 atributo?
Tiene comportamiento?
Tienen todas sus instancias el mismo comportamiento y
atributos?
Giovanni Giachetti
Atributos
Un atributo es un valor lgico de un dato de un
objeto.
Debern ser incluidos en el modelo todos aquellos
Giovanni Giachetti
Atributos
CAJERO
MAL
NOMBRE
ACTUAL CAJA
Atributo no simple
CAJERO
USA
1
NOMBRE
CAJA
1
MEJOR
NUMERO
39
Giovanni Giachetti
Asociaciones
Una asociacin es una relacin entre conceptos que indica alguna conexin
40
Giovanni Giachetti
Asociaciones
LANZA
JUGADOR
DADO
1
NOMBRE
VALOR CARA
Nombre Asociacin
Multiplicidad
41
Giovanni Giachetti
42
Categora
Ejemplo
A es parte fsica de B
Ala-Avin
A es parte lgica de B
Pasajero-Avin
Vuelo-Plan de Vuelo
Giovanni Giachetti
Ejemplo
Venta- Caja
A es un miembro de B
Cajero Tienda
Departamento Tienda
A usa o administra B
Cajero Caja
A se comunica con B
Cliente-Cajero
Pasajero-Pasaje
Reserva- Cancelacin
43
Giovanni Giachetti
44
Diagrama de clases
Relaciones entre clases:
Giovanni Giachetti
Prestamo
46
Giovanni Giachetti
47
Giovanni Giachetti
48
Diagrama de clases
Relaciones entre clases:
Agregacin: Representa a un objeto que est contenido dentro
clientes
*
cuentas
Tipos de asociacin:
persona
cuenta
Asociacin excluyente
*
*
{or}
empresa
*
1
Casado con
1
Persona
Asociacin unaria
-hombre
2..14
Atleta
corre
{subset}
Carrera
gana
1
{or} 1
pierde
13
Asociacin condicionada
-rut
-nombre
-mujer
Giovanni Giachetti
Tipos de asociacin:
Clase de asociacin
Acceso
-fecha_acceso
*
Cliente
Cuenta
Utiliza
Diagrama de clases
Generalizacin/Especializacin: La generalizacin, consiste en factorizar las
Terrestre
Automovil
Aereo
Camion
Avion
Helicoptero
Diagrama de clases
Clasificacin esttica: Cuando en un proceso de Generalizacin, las subclases
Vehiculo aereo
{esttica}
Avion
Helicoptero
Diagrama de clases
Clasificacin dinmica: Cuando en un proceso de Generalizacin, las subclases
Automovil
{dinmica}
BuenEstado
MalEstado
Diagrama de clases
Dependencia: Indica que la instanciacin de una clase depende de otra clase.
Aplicacion
Ventana
Giovanni Giachetti
-rol1
Clase1
*
R
-rol2
*
Clase2
ult_mov
Acceso
-ult_mov
Cliente
cuenta
utiliza
cliente
*
Utiliza
E
ES
disjunta
subclase
subclase
Cuenta
E
ES
subclase
Giovanni Giachetti
subclase
Giovanni Giachetti
Persona
-rut
-nombre
-calle
-depto
-ciudad
Cliente
-calificacion
Giovanni Giachetti
Persona
-rut
-nombre
-calle
-depto
-ciudad
EjecCta
Cajero
-tipo_cajero
Cuenta
-num_cuenta
-saldo
-tipo_ejec_cta
Cliente
-calificacion
*
Prestamo
-monto
*
Giovanni Giachetti
Persona
Sucursal
-direccion
-rut
-nombre
-calle
-depto
-ciudad
EjecCta
Cajero
-tipo_ejec_cta
-tipo_cajero
Cuenta
Cliente
-num_cuenta
-saldo
-calificacion
*
Prestamo
-monto
*
Giovanni Giachetti
Persona
Sucursal
-direccion
-rut
-nombre
-calle
-depto
-ciudad
EjecCta
Cajero
-tipo_cajero
Cuenta
Cliente
-num_cuenta
-saldo
-tipo_ejec_cta
-calificacion
*
Prestamo
CtaCorriente
-monto
CtaVista
-monto_lin_cred
-cargo_mant
CtaAhorro
-tipo_interes
Giovanni Giachetti
Persona
Sucursal
-direccion
-rut
-nombre
-calle
-depto
-ciudad
EjecCta
Cajero
-tipo_ejec_cta
-tipo_cajero
Cuenta
Cliente
-num_cuenta
-saldo
-calificacion
*
Prestamo
CtaCorriente
-monto
CtaVista
-monto_lin_cred
-cargo_mant
CtaAhorro
-tipo_interes
Letras
-enc_letra
-monto_letra
Giovanni Giachetti
Persona
Sucursal
-direccion
-rut
-nombre
-calle
-depto
-ciudad
EjecCta
Cajero
-tipo_ejec_cta
-tipo_cajero
Cuenta
Cliente
-num_cuenta
-saldo
-calificacion
*
Prestamo
CtaCorriente
-cargo_mant
PagoLetra
-monto
CtaVista
-monto_lin_cred
-fechaPago
-montoPago
1
-tipo_interes
CtaAhorro
Letras
-enc_letra
-monto_letra
Giovanni Giachetti
calle
ciudad
ult_mov
num_cuenta
saldo
rut
cuenta
nombre
utiliza
cliente
cta_ahorro
contrae
cta_vista
monto
prestamo
asesora
ES disjunta
cta_corriente
id_prestamo
direccion
pago_pre
R
stamo
ejec_cuenta
cajero
pago
ES
monto_lin_cred
tipo_interes
disjunta
cargo_mant
sucursal
trabaja_en
num_pago
empleado
monto_pago
fec_pago
trabajador
jefe
trabaja_
para
monto
Prestamo
-monto
prestamo
pago_pre
R
stamo
Letras
pago
num_pago
monto_pago
fec_pago
-enc_letra
-monto_letra
Giovanni Giachetti
mismo sexo.
El animador del programa coordina las pruebas.
Giovanni Giachetti
Concursantes
-en_carrera
Personajes
-rol
Giovanni Giachetti
Personas
Personajes
-rut
-nombre
-sexo
coordina
-rol
0..*
-nom_prueba
-desc_prueba
-reg_prueba
-semana
Individuales
a
-cap
taz
-premio
Concursantes
-subordinados
Duelo
-en_carrera
1..*
Giovanni Giachetti
Personas
Personajes
-rut
-nombre
-sexo
coordina
-rol
2.
.*
1..*
-en_carrera
1..*
{or}
Concursantes
Individuales
-premio
pierde
1..*
-subordinados
taz
{subset} gana
1..* 0..*
compite
a
-cap
0..*
-nom_prueba
-desc_prueba
-reg_prueba
-semana
Duelo
Giovanni Giachetti
Personas
Personajes
-rut
-nombre
-sexo
coordina
-rol
0..*
1..* 0..*
compite
2.
.*
-en_carrera
1..*
{or}
Concursantes
Individuales
-premio
pierde
1..*
Duelo
enviados
-subordinados
taz
{subset} gana
a
-cap
-nom_prueba
-desc_prueba
-reg_prueba
-semana
1..*
eliminado
{subset}
pierde
Giovanni Giachetti
Personas
Personajes
-rut
-nombre
-sexo
coordina
-rol
1..* 0..*
2.
.*
1..*
-en_carrera
pierde
Duelo
enviados
1..*
{or}
Concursantes
Individuales
-premio
1..*
-subordinados
{subset} gana
ataz
compite
-cap
0..*
eliminado
{subset}
pierde
Hombre
-nom_prueba
-desc_prueba
-reg_prueba
-semana
Mujer
Fuerza
Giovanni Giachetti
Personas
Personajes
-rut
-nombre
-sexo
coordina
-rol
1..* 0..*
ataz
1..*
{or}
Concursantes
-en_carrera
Individuales
-premio
pierde
1..*
Duelo
enviados
-subordinados
{subset} gana
2.
.*
compite
-cap
0..*
-nom_prueba
-desc_prueba
-reg_prueba
-semana
1..*
eliminado
{subset}
pierde
Fuerza
Mujer
{or}
0..*
Hombre
0..
*