Uml Ejercicios Practicos
Ejercicio 1. Gestión de un Terminal de Punto de Venta (TPV)
Dados los siguientes diagramas de interacción, correspondientes a la gestión de un TPV, obtener el modelo del dominio mediante un diagrama de clases con toda la información posible (atributos y métodos en las clases, así como las relaciones entre dichasclases). 1. CrearVenta
1. crearVenta : TPV
: Cajero 1.1. crear 1.1.1. crear : Venta : LineaVenta
Dpto. LSI, Escuela Universitaria de Ingeniería de Vitoria-Gasteiz.
1
Ejercicios DI y UML a código Java
2. IntroducirItem
1. introducirItem(cant, id) : TPV 1.2. crearLV( ) : Venta 1.2.1. lv:=crear( ) lv : LineaVenta
: Cajero 1.1. p:= getProducto(id ) 1.2.2. add(lv)
:CatalogoProducto : LineaVenta
1.1.1. p:=get(id)
: Producto
3. FinalizarVenta
: Cajero
: TPV
: Venta
1. finalizarVenta( ) 1.1. completar( )
4. CalcularTotal
:Cliente
public getTotal() { int total = 0; for each lv:LineaVenta total = total + lv.getSubtotal; return total;} 1. getTotal( ) 1.1.1. pr:= getPrecio( ) : LineaVenta : Producto
1.1. * st:= getSubtotal( ) : Venta
{st =lv.cantidad + lv.producto.precio }
2
Dpto. LSI, Escuela Universitaria de Ingeniería de Vitoria-Gasteiz.
Ejercicios DI y UML a código Java
5. RealizarPago
1. realizarPago(cant ) : TPV 1.1. crearPago(cant ) v : Venta
: Cajero 1.1.1. crear( cant) 1.2. añadirVenta(v )
: Pago : Tienda
1.2.1. add(v)
: Venta
6. CalcularDevolución
1.2. getTotal( )
1. getDevolucion( ):Cliente v : Venta
1.1. getCantidad( ) p : Pago
dev = p.cantidad - v.getTotal
Ejercicio 2. Gestión de un TPV
Dado el código Java de las clases, correspondientes a la gestión de un TPV, obtener el diagrama de clases con toda la información posible (atributos y métodos en las clases, así como las relaciones entre dichas clases). Además, se debe comprobar que coincide con el diagrama de clasesanterior. Si no es así, entonces se tiene que corregir el código Java de estas clases de acuerdo con el diagrama de clases anterior.
public class Pago { private Dinero cantEntregada; public Pago (Dinero cantidad) { cantEntregada = cantidad; }
Dpto. LSI, Escuela Universitaria de Ingeniería de Vitoria-Gasteiz.
3
Ejercicios DI y UML a código Java
public Dinero getCantEntregada () {return cantEntregada; } } public class CatalogoProducto { private Map productos = new HashMap (); public CatalogoProductos () { ItemId id1 = new ItemID(100); ItemId id2 = new ItemID(200); Dinero precio1 = new Dinero (3); Dinero precio2 = new Dinero (5); Producto p; p:= new Producto (id1, precio1, “producto 1”); productos.put(id1, p);) } p = new Producto (id2, precio2, “producto 2”);productos.put(id2, p);) } public Producto getProducto (ItemId id) { return (Producto) productos.get(id); } } public class TPV { private CatalogoProducto catalogo; private Venta venta; public TPV(CatalogoProducto cp) { catalogo = cp; } public void crearNuevaVenta () {venta = new Venta();} public void finalizarVenta () { venta.completar(); } public void introducirItem (ItemId id, int cant) { Producto p =catalogo.getProducto (id); Venta.crearLineaVenta(p, cant); } public void realizarPago() { venta.crearPago(cant)} } public class Producto { private itemID id; private Dinero precio; private String descripcion; public Producto(ItemID id, Dinero precio, String desc) { this.id = id; this.precio = precio; this.descripcion = desc;} public ItemId getId() { return id; } public Dinero getPrecio() { returnprecio; } public String getDescripcion() { return descripcion; } } public class Venta { private List lineaVentas = new ArrayList(); private Date fecha = new Date(); private boolean esCompleta; private Pago pago; public Dinero getDevolucion() { return pago.getCantEntregada(). minus(getTotal() ); } public void completar() { esCompleta = true; } public void crearLineaVenta(Producto p, int cant) {...
Regístrate para leer el documento completo.