Reto02_Diagramas‐UML - Jul1anT/Retos-OOP_2025 GitHub Wiki
Diagrama 1: Relaciones entre Persona, Empleado y Proveedor
- Persona: Es una clase general que contiene atributos básicos como id, nombre y dirección.
- Empleado: Hereda de Persona y representa a los trabajadores de la tienda, quienes pueden realizar ventas y gestionar devoluciones.
- Proveedor: También hereda de Persona, y sus métodos están orientados a modificar el stock de los productos.
classDiagram
direction TB
class Persona {
+id: int
+nombre: String
+direccion: String
}
class Empleado {
+id_empleado: int
+cargo: String
+vender(Venta): void
+realizar_devolucion(Devolucion): void
}
class Proveedor {
+id_proveedor: int
+telefono: String
+modificar_stock(Producto, int): void
}
Persona <|-- Empleado
Persona <|-- Proveedor
Diagrama 2: Relaciones entre Producto, Caja, Venta y Devolción.
- Producto: Contiene información como id_producto, nombre, precio, descripción y stock. Además, permite actualizar su cantidad mediante el método actualizar_stock.
- Caja: Representa el registro de transacciones realizadas en el sistema, tanto por ventas como por devoluciones, con atributos como id_caja, monto y fecha.
- Venta: Incluye productos y afecta directamente la caja, con atributos como id_venta, fecha, cantidad y total. Puede calcular su total usando el método calcular_total.
- Devolución: Relacionada con una venta, puede revertirla y ajustar el stock de los productos mediante revertir_venta.
classDiagram
direction TB
class Producto {
+id_producto: int
+nombre: String
+precio: float
+descripcion: String
+stock: int
+actualizar_stock(cantidad: int): void
}
class Caja {
+id_caja: int
+monto: float
+fecha: Date
+registrar_transaccion(tipo: String, monto: float): void
}
class Venta {
+id_venta: int
+fecha: Date
+productos: List~Producto~
+cantidad: int
+total: float
+calcular_total(): float
}
class Devolucion {
+id_devolucion: int
+motivo: String
+fecha_devolucion: Date
+revertir_venta(Venta): void
}
Venta "*" --> "*" Producto : incluye
Venta "1" --> "1" Caja : genera
Devolucion "1" --> "1" Caja : afecta
Devolucion "1" --> "*" Producto : ajusta_stock
Venta <|-- Devolucion