Professional Documents
Culture Documents
SISTEMAS
SESION 07
2
Contenidos
1. Modelado Estructural
Diagramas de Clases
3
Modelado Estructural
4
Modelado estructural
Se describen los tipos de objetos de un
sistema y las relaciones estáticas que
existen entre ellos.
Clases
Interfaces
Relaciones de dependencia, realización,
generalización y asociación (agregación,
composición)
También pueden incluir paquetes y colaboraciones
0..n
Comestible
nombre
cantidadMinima
precio
Cambio 0..n 1..n
formaTransporte
cantidad
Parte
cantidad
7
Del modelo conceptual a las clases
8
Modelo de
IteradorCuenta
diseño
Cuenta Domiciliacion
1 0..n
Ahorro Corriente
Operacion
Periodica
9
Colaboración (parte estática)
Usuario
Pedido
nombre ItemPedido
numero
nif
tipoPago unidades
email
estado total
login 1 0..n 1 1..n
caducidad
clave
0..n
1
1
1
Producto
CarroCompra ItemCarro
nombre
precio unidades
descripcion
items total
1 1..n 0..n 1 precio
10
Colaboración (parte dinámica)
: Usuario
11: recalcularTotal()
1: añadirItem(codigo)
4: añadirItem(codigo)
2: añadirItem(codigo) 3: [primer producto] crear()
: ItemCarro : CatalagoProductos
i : ItemCarro
8: [nuevoItem]p:=buscar(codigo)
: Producto
11
Ingeniería directa e Inversa
Ingeniería directa
Transformar modelos en código en un
lenguaje de programación determinado
Ingeniería inversa
Obtener un modelo a partir de código.
Más difícil ya que hay pérdida de
información al pasar de los modelos al
código.
12
Clases
Cuenta
ultimoCodigo Atributos
codigo
cliente
saldo
ultimasOperaciones
Operaciones
getSaldo()
getUltimasOperaciones()
nuevoCodigo()
No se tienen por qué mostrar todos las propiedades
Se pueden agrupar operaciones: <<constructor>>,
<<query>>
13
Interfaces
Una interfaz es una colección de
operaciones que especifica los servicios
de una clase o componente.
<<Interface>>
Collection
<<Interface>>
Iterator
add()
remove() next()
size() hasNext()
contains()
iterator()
14
Atributos
15
Atributos
Cliente
nombre : String
16
Operaciones
Cuenta Atributos
- codigoCuenta : int
# cliente : int
# saldo : int
# ultimaOperacion : int
+ getSaldo () : int Operaciones
+ getUltimaOperacion () : int
- nuevoCodigo () : int
18
Relaciones
Dependencia
Un cambio en la especificación de un elemento afecta a
otro
PlanDelCurso
Curso
Window
añadir(c : Curso)
position eliminar(c : Curso)
parent
children
size Clock
open()
close() Nodo Lista
move()
resize()
<<friend>>
19
Estereotipos para dependencias
20
Relaciones
Generalización
“Es-un-tipo-de”
Cuenta Window
21
Generalización
Nivel Conceptual
“Todas las instancias de CuentaCorriente son
instancias de Cuenta”
Nivel Especificación
“La interfaz de CuentaCorriente incluye la interfaz de
Cuenta”
Nivel Implementación
Herencia
22
Asociación
Asociación
Relación estructural que especifica que los objetos
de un tipo están conectados con los de otro.
impartido
Curso Profesor
* 1..*
23
Asociaciones
Agregación
Caso especial de asociación
Relación estructural parte-de
Empresa
1..1
*
Departamento
24
Asociaciones
Nivel Conceptual
Muestran la relación conceptual entre dos clases.
“Un cliente tiene varios pedidos”
Nivel de Especificación
Representan responsabilidades
Detectamos los mensajes del protocolo de una
clase con respecto a la otra
Nivel de Implementación
Establecer atributos: navegabilidad
25
Asociaciones
Especificación:
class Pedido {
public Cliente getCliente();
public Set getLineaPedido();
... }
Implementación
class Pedido {
private Cliente _cliente;
private HashSet _lineasPedido;
…}
26
Navegación
Posibilidad de limitar la navegación a una sola dirección
Determina si una clase de la asociación tiene
“conocimiento” de la otra.
Nivel de especificación o implementación
impartido
Curso Profesor
* 1..*
27
Navegabilidad (UML 2.0)
A B Navegabilidad indefinida
A B Navegable de A a B, de B a A indefinida
A B Navegable sólo de A a B
A B Navegable sólo de A a B
A B No se usa
A B No se usa
A B No se usa
29
Visibilidad
Pública: +propietario
Protegida: #propietario
Privada: -propietario
30
Agregación
Dos criterios:
Dependencia:
¿La existencia de una parte va ligada a la
del agregado?
Exclusividad:
¿Una parte puede pertenecer a más de un
agregado?
31
Composición
1..1
composición
*
Marco parte
33
Composición
POLIGONO
Poligono
1 1 1
Relleno:Diseño
1
{ordered} 3..n
Diseño
Punto {ordered} 3..*
color
textura
Punto
34
Clases Asociación
35
Ejemplo de clase asociación
NivelSalario
min
Empleado max
inicio
id
fin
0..n 0..n
name
id
HistoriaSalario
inicio
fin
salario
36
Ejemplo de clase asociación
+empleado +patron
Persona Compañia
1..* *
Trabajo
descripcion
fechaContrato
salario
37
Restricciones para Asociaciones
Empresa
Departamento
Cuenta * *
{or}
Persona
{subconjunto}
38
Paquetes
Elemento organizativo
Puede agrupar elementos de cualquier tipo.
Un elemento es exclusivo a un paquete.
Establece un espacio de nombres
Posibilidad de anidar paquetes.
Modelo
Modelo + Producto
+ CarroCompra
+ Comercio
39
Importación/Exportación en paquetes
40
Cliente
Servidor + FormularioPedido
+ FormularioDeSeguimiento
+ BaseDeDatos - Pedido
+ ServicioDeRegistro
<<import>>
Politicas
+ ReglasPedidos
+ GUI:Ventana
<<import>>
GUI
+ Ventana
+ Formulario
# GestorEventos
41
Generalización de Paquetes
GUI
+ Ventana
+ Formulario
# GestorEventos
WindowsGUI
+ GUI:Ventana
MacGUI
+ Formulario
# GUI:GestorEventos
+ VBForm
42
Paquetes
43
Uso de los paquetes
<<subsystem>> <<layer>>
Pedidos Servicios
Básicos
<<model>> <<framework>>
Diseño Struts
44
Uso de los paquetes
45
Análisis y Diseño de Sistemas
FIN Sesión 7