Modelo estructural
• Modelado Estructural – Diagramas de clases – Paquetes
1
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
• Un diagrama de clase esuna representación gráfica de un modelo estructural.
2
Modelado estructural
• Diferentes perspectivas. • Modelado Conceptual
– Conceptos del dominio del problema: atributos, restricciones y relaciones entre ellos.
• Modelo del Análisis
– Clases que corresponden a conceptos del dominio – Atributos y métodos
• Modelo del Diseño
– Incluye clases que corresponden a decisiones deldiseño
• Modelo de Implementación
– Clases que corresponden a un lenguaje de programación
3
Del Modelo Conceptual a las clases
• Los modelos de análisis se obtienen a partir del modelo conceptual:
– Conceptos se convierten en clases – Atributos de un concepto a atributos de la clase – Añadir comportamiento (métodos)
4
Del Análisis al Diseño
• Aparecen las clases del diseño
– – – – –Interfaces Patrones de diseño Estructuras de datos Persistencia Distribución
5
Pedido Desayuno dirección fecha hora descuento calcularPrecio() +pedido 1
Modelo del Análisis
+pedidos 1.. n +cliente 1
Cliente numeroCuent a direccion crearPedido()
+des ayuno
1.. n Desayuno numero 0..n
Desayuno Estandar nombre precio estilo 0.. n Comestible nombre cantidadMinima precio 1..nformaTransporte Parte cantidad
Cambio canti dad
0..n
6
Modelo del Diseño
IteradorCuenta
Cuenta 1 0..n
Domiciliacion
Ahorro
Corriente Operacion Periodica
7
Modelado estructural y del comportamiento
• Colaboraciones y Patrones de diseño tienen una parte estructural y otra de comportamiento.
Realizar Compra
Realizar Compra
8
Colaboración (parte estática)Usuario nombre nif email login 1 clave 1 Pedido numero tipoPago estado 1 caducidad ItemPedido unidades total 0..n
0..n
1..n
1 CarroCompra precio items 1 1.. n ItemCarro unidades total 0..n 1
1 Producto nombre desc ripcion precio
9
Colaboración (parte dinámica)
: Usuario 11: recalcularTotal() 1: añadirItem(codigo) 4: añadirItem(codigo) 2: añadirItem(codigo) 3: [primer producto]crear()
: MostrarProductos
: Añadir
: CarroCompras
6: [!nuevoItem]incrementarUnidades()
10: [nuevoItem]put(codigo,i)
5: i:=getItemCarro(codigo)
7: [nuevoItem]p:=get(codigo)
9: [nuevoItem]i:=creaItem(p)
: ItemCarro
: CatalagoProductos i : ItemCarro 8: [nuevoItem]p:=buscar(codigo)
: Producto
10
Patrón de diseño (parte estática)
Subject subjectState Attach()Detach() Notify() +observers 1..1 1..* Observer Update()
for all o in observers {o.update()}
ConcreteSubject subjectState getState() setState() +subject
ConcreteObserver observerState update() observerState= subject.getState()
11
Patrón de diseño (parte dinámica)
: Subject 1. setState() 1.1. notify() 1.1.1. update() 1.1.2. update() o1 : Observer o2 : Observer
12
IngenieríaDirecta 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.
13
Clases
Cuenta ultimoCodigo codigo cliente saldo ultimasOperaciones getSaldo() getUltimasOperaciones() nuevoCodigo()Atributos
Operaciones
• No se tienen por qué mostrar todos los atributos y métodos • Agrupar los métodos usando estereotipos: , ,...
14
Interfaces
• Una interfaz es una colección de operaciones que especifica los servicios de una clase o componente.
Coll ection add() remove() size() contains() iterator()
Iterator next() hasNext()
15
Atributos
[visibilidad] nombre [: tipo]...
Regístrate para leer el documento completo.