Taller#
Tema Principal#
Diagramas de Clases y Objetos para una tienda simple.
Objetivo:#
El propósito de este taller es que los estudiantes identifiquen y traduzcan los componentes del código Java en diagramas UML de clases y objetos, con un enfoque en la representación de relaciones de herencia y asociación. Este ejercicio les permitirá visualizar cómo se estructuran y relacionan las clases en un sistema con más detalle.
Instrucciones:#
Se proporciona un código en Java que simula la gestión de una librería, ahora con relaciones de herencia y asociación.
El estudiante deberá:
Crear el diagrama de clases UML, identificando las relaciones de herencia y asociación.
Crear el diagrama de objetos UML, representando instancias de las clases y su interacción.
Código a Analizar:#
// Clase Producto
public class Producto {
private String nombre;
private double precio;
public Producto(String nombre, double precio) {
this.nombre = nombre;
this.precio = precio;
}
public String getNombre() {
return nombre;
}
public double getPrecio() {
return precio;
}
}
// Clase Libro (Hereda de Producto)
public class Libro extends Producto {
private String autor;
public Libro(String nombre, String autor, double precio) {
super(nombre, precio);
this.autor = autor;
}
public String getAutor() {
return autor;
}
}
// Clase Revista (Hereda de Producto)
public class Revista extends Producto {
private int numeroEdicion;
public Revista(String nombre, int numeroEdicion, double precio) {
super(nombre, precio);
this.numeroEdicion = numeroEdicion;
}
public int getNumeroEdicion() {
return numeroEdicion;
}
}
// Clase Cliente
public class Cliente {
private String nombre;
private String email;
public Cliente(String nombre, String email) {
this.nombre = nombre;
this.email = email;
}
public String getNombre() {
return nombre;
}
public String getEmail() {
return email;
}
}
// Clase Pedido (Asociación con Producto y Cliente)
public class Pedido {
private Producto producto; // Asociación con Producto (Libro o Revista)
private Cliente cliente;
public Pedido(Producto producto, Cliente cliente) {
this.producto = producto;
this.cliente = cliente;
}
public Producto getProducto() {
return producto;
}
public Cliente getCliente() {
return cliente;
}
public void detallesPedido() {
System.out.println("Cliente: " + cliente.getNombre() + " ha pedido el producto '"
+ producto.getNombre() + "' con un precio de " + producto.getPrecio());
}
}
// Clase Principal
public class Main {
public static void main(String[] args) {
Libro libro = new Libro("El Quijote", "Miguel de Cervantes", 29.99);
Revista revista = new Revista("National Geographic", 203, 5.99);
Cliente cliente = new Cliente("Juan Pérez", "juan.perez@example.com");
Pedido pedido1 = new Pedido(libro, cliente);
Pedido pedido2 = new Pedido(revista, cliente);
pedido1.detallesPedido();
pedido2.detallesPedido();
}
}
Ejercicio#
Taller 5
Tareas
Diagrama de Clases UML:
Identifique las clases Producto, Libro, Revista, Cliente, y Pedido.
Modele la herencia entre la clase base
Productoy sus subclasesLibroyRevista.Establezca las relaciones de asociación entre
PedidoyProducto, y entrePedidoyCliente.Defina correctamente los atributos y métodos de cada clase, con las visibilidades adecuadas (
private,public).
Diagrama de Objetos UML:
Cree un diagrama de objetos que muestre las instancias de
Libro,Revista,Cliente, yPedidocreadas en el métodomain. Por lo menos tres objetos por clase, excepto del main.Modele la asociación entre los objetos en esta ejecución (por ejemplo, el
pedido1está asociado a una instancia deLibroy a una instancia deCliente).
Entrega
Los estudiantes deberán entregar:
Un diagrama de clases UML que represente la estructura del código con herencia y asociaciones.
Un diagrama de objetos UML que modele las instancias de los objetos en el método
main.Adjuntar una explicación breve justificando las relaciones y decisiones de modelado.
Pantallazos con el código funcionando. Realizar algunas pruebas
Criterios de Evaluación
Claridad y precisión del diagrama de clases (40%):
Identificación correcta de las relaciones de herencia y asociación.
Uso adecuado de visibilidad para los atributos y métodos.
Exactitud del diagrama de objetos (40%):
Representación adecuada de las instancias y relaciones entre objetos en tiempo de ejecución.
Presentación y justificación del trabajo (20%):
Entrega clara, con diagramas bien estructurados y una explicación coherente.
Conclusión:#
Este taller permite que los estudiantes practiquen la traducción de un código Java con relaciones de herencia y asociación a diagramas UML de clases y objetos, desarrollando habilidades clave para el diseño y comprensión de sistemas orientados a objetos.