Documentos de Académico
Documentos de Profesional
Documentos de Cultura
SISTEMAS
SESION 07
1. Modelado Estructural
Objetos y clase
Diagramas de Clases
Diagrama de paquetes
Bibliografia
El Lenguaje Unificado de Modelado.
Grady Booch
James Rumbaugh
Ivar Jacobson
Segunda edición 2006; Capitulo 4, 8, 9 12, y
14
Addison-Wesley
http://www.uml.org/
Objetos y clases
¿Qué es un objeto?
a + b = 10
Nombre : Joyce Clark
Nº Empleado : 567138
Fecha de Ingreso : 21 de marzo 1987
Estado : Adjunto
Profesor Clark
Un objeto tiene comportamiento
El comportamiento de un objeto determina
cómo éste actúa y reacciona frente a las
peticiones de otros objetos
a + b = 10
Otro objeto
Un mensaje
Operacion 2
Un objeto
Operacion 1
… Comportamiento
Estado y comportamiento están relacionados
Ejemplo: no es posible aterrizar un avión si
no está volando. Está volando como
consecuencia de haber despegado del suelo
Herencia
Animal
dormir()
?
dormir
?
León Oso Tigre
....Polimorfismo
¿Qué son las Clases?
Hay muchos objetos identificados para cada dominio
Una clase es una descripción de un grupo de objetos con
propiedades en común (atributos), comportamiento
similar (operaciones), la misma manera de relacionarse
entre objetos (asociaciones y agregados) y una
semántica en común
Un objeto es una instancia de una clase
Objetos
Profesor
Clase
Profesor Jones
Modelado Estructural:
Diagrama de clases
Modelado estructural
Cuenta Domiciliacion
1 0..n
Ahorro Corriente
Operacion
Periodica
Colaboración (parte estática)
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
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.
Clases
Atributos
Operaciones
<<Interface>>
Collection <<Interface>>
Iterator
add()
remove() next()
size() hasNext()
contains()
iterator()
Atributos
Cuenta Atributos
- codigoCuenta : int
# cliente : int
# saldo : int
# ultimaOperacion : int
+ getSaldo () : int Operaciones
+ getUltimaOperacion () : int
- nuevoCodigo () : int
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>>
Estereotipos para dependencias
Cuenta Window
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
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..*
Asociaciones
Agregación
Caso especial de asociación
Relación estructural parte-de
Empresa
1..1
*
Departamento
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
Asociaciones
Especificación:
class Pedido {
public Cliente getCliente();
public Set getLineaPedido();
... }
Implementación
class Pedido {
private Cliente _cliente;
private HashSet _lineasPedido;
…}
Navegación
impartido
Curso Profesor
* 1..*
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
Visibilidad
Pública: +propietario
Protegida: #propietario
Privada: -propietario
1..1
composición
*
Marco parte
Composición
POLIGONO
1
Relleno:Diseño
1
{ordered}
{ordered} 3..*
Punto
Clases Asociación
Cuenta * *
{or}
Persona
{subconjunto}
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
Importación/Exportación en paquetes
Servidor + FormularioPedido
+ FormularioDeSeguimiento
+ BaseDeDatos - Pedido
+ ServicioDeRegistro
<<import>>
Politicas
+ ReglasPedidos
+ GUI:Ventana
<<import>>
GUI
+ Ventana
+ Formulario
# GestorEventos
Generalización de Paquetes
GUI
+ Ventana
+ Formulario
# GestorEventos
WindowsGUI
+ GUI:Ventana MacGUI
+ Formulario
# GUI:GestorEventos
+ VBForm
Paquetes
<<subsystem>> <<layer>>
Pedidos Servicios
Básicos
<<model>> <<framework>>
Diseño Struts
Uso de los paquetes
FIN Sesión 7