Sistema de Gestión de Logística¶
El objetivo es desarrollar un Gestor de Logística que permita administrar múltiples centros de distribución, sus envíos asociados y el historial de estados de cada paquete. El sistema debe seguir un enfoque de Programación Orientada a Objetos estricto y garantizar la persistencia de los datos en disco.
Requerimientos Funcionales¶
Cada Gestor puede administrar múltiples Centros de Distribución. Un centro contiene un conjunto de Envíos, y cada envío tiene asociado un Historial de Estados (eventos de seguimiento, como el ingreso, el viaje a otro centro de distribución y la entrega).
Gestión de Envíos y Seguimiento¶
Crear Centro de Distribución: Cada centro debe tener un nombre único y una ubicación geográfica.
Registrar Envío: Añadir un nuevo paquete a un centro específico. Un envío posee un código de seguimiento único (tracking ID), peso, destinatario y una prioridad (URGENTE, ESTÁNDAR, ECONÓMICO).
Actualizar Estado: Registrar un nuevo evento de estado para un envío (e.g., “En depósito”, “En viaje”, “Entregado”). Cada evento debe almacenar la descripción y la fecha/hora del suceso.
Eliminar Envío: Remover un paquete del sistema utilizando su código de seguimiento.
Buscar Envío por Tracking ID: Recuperar la información completa de un envío y su historial de estados.
Buscar Envíos por Destinatario: Listar todos los paquetes asociados a un mismo nombre de destinatario.
Listar Envíos por Peso: Devolver una lista de envíos ordenados de mayor a menor peso.
Listar Envíos por Prioridad: Devolver una lista de envíos ordenados por jerarquía de prioridad (URGENTE > ESTÁNDAR > ECONÓMICO).
Estadísticas del Centro:
Peso total transportado en el centro.
Porcentaje de envíos con estado “Entregado”.
Vaciar Centro: Eliminar todos los envíos y sus historiales de un centro de distribución.
Requerimientos Técnicos¶
Persistencia: El sistema debe guardar la información a disco.
Estructuras de Datos: Utilizar colecciones del framework de Java (
List,Set,Map) de forma justificada.Patrones de Diseño: Se valorará la utilización de patrones de diseño como parte de la estructura del proyecto.
Orientación a Objetos Estricta:
Uso riguroso de encapsulamiento y modificadores de acceso.
Definición de comportamientos mediante interfaces.
Relaciones de composición claras entre Centro, Envío y Estado.