Saltar a contenido

Reto UT 06

Los negocios locales de nuestra zona están buscando modernizar sus sistemas de gestión. Como equipo de desarrolladores junior, tenéis la oportunidad de crear una solución básica que ayude a estos negocios a gestionar mejor sus operaciones diarias utilizando la programación orientada a objetos.

Reto

Desarrollar, en equipos de 2-3 personas o individualmente, un sistema de gestión básico para un negocio local de vuestra elección (restaurante, tienda, peluquería, etc.) utilizando Java y los principios fundamentales de la Programación Orientada a Objetos.

Condicionantes del desarrollo

Los negocios han solicitado que se empleen los siguientes conceptos de programación:

  • Aplicar los conceptos básicos de la programación orientada a objetos.
  • Implementar soluciones utilizando arrays.
  • Desarrollar código siguiendo principios de programación modular.
  • Practicar el trabajo en equipo y la colaboración en proyectos de software.
  • Documentar y presentar soluciones técnicas.

Funcionalidades esenciales

Todo negocio ha de tener al menos las siguiente funcionalidades:

  • Gestión de productos o servicios.
  • Sistema básico de interacción.
  • Generación de informes simples (totales numéricos).

Elementos evaluables

  • Documentación breve explicando:

    • Decisiones de diseño.
    • Decisiones de programación
    • Manual de uso
  • Código fuente en un archivo comprimido. Para acotar el proyecto, como mínimo, ha de contener:

    • El modelo de clases para productos/servicios debe estar comprendido entre 3 y 8 clases.
    • La gestión de productos/servicio se centrará en 2 o 3 clases del modelo del dominio.

Criterios de evaluación

Además de los los criterios de evaluación que se trabajan en las UT 6, se valorará:

  • Funcionalidad: El prototipo debe ser operativo, permitiendo la interacción básica del usuario con el programa.
  • Adherencia a Estándares: El código debe seguir buenas prácticas de programación y estar bien organizado.

Fecha de entrega

La entrega será a través de Aules antes de la sesión de presentación del reto.

Lista de cotejo

1. Alcance y requisitos mínimos del reto

  • El negocio elegido está definido (restaurante/tienda/peluquería/otro) y el alcance es coherente.
  • Se implementan las 3 funcionalidades esenciales:

  • Gestión de productos o servicios.

  • Sistema básico de interacción.
  • Generación de informes simples con totales numéricos.

  • El prototipo es operativo (se ejecuta sin errores y permite interacción básica).

  • Entrega incluye código fuente comprimido y se puede compilar/ejecutar con instrucciones claras.

2. Modelo de clases (POO)

  • El modelo de clases de productos/servicios tiene entre 3 y 8 clases.
  • La gestión principal de productos/servicios se centra en 2 o 3 clases del dominio.
  • Las clases representan entidades del negocio con nombres significativos.
  • Cada clase tiene una responsabilidad clara.
  • Uso adecuado de:

  • Atributos privados (encapsulación).

  • Constructores coherentes.
  • Getters/Setters cuando aportan valor.
  • Métodos con comportamiento.

  • Relaciones entre clases bien definidas (asociación, agregación/composición).

  • Uso justificado de herencia o interfaces (si aplica).

3. Uso de arrays

  • Se utilizan arrays para almacenar y gestionar datos.
  • Operaciones implementadas sobre arrays:

  • Alta.

  • Búsqueda.
  • Listado.
  • Modificación.
  • Baja lógica o física.

  • Control de errores:

  • Array lleno.

  • Elemento no encontrado.
  • Índices fuera de rango.

4. Programación modular

  • Separación clara entre:

  • Modelo/dominio.

  • Lógica de negocio.
  • Interfaz de usuario.

  • Métodos pequeños y específicos.

  • Reutilización de código (sin duplicaciones).
  • main limpio y sin lógica excesiva.

5. Sistema básico de interacción

  • Menú principal claro y funcional.
  • Validación básica de entradas.
  • Flujo completo de CRUD para productos/servicios.
  • Salidas por consola legibles y bien formateadas.

6. Informes simples

  • Apartado de informes o funcionalidad equivalente.
  • Cálculo de totales numéricos (2–3 métricas).
  • Cálculos realizados a partir de los datos almacenados.
  • Manejo correcto de casos sin datos.

7. Calidad de código y estándares

  • Nombres descriptivos y consistentes.
  • Estilo e indentación correctos.
  • Uso de constantes en lugar de números mágicos.
  • Comentarios útiles y no redundantes.
  • Manejo básico de errores.

8. Documentación

  • Documento incluido con:
  • Decisiones de diseño.
  • Decisiones de programación.
  • Manual de uso.
  • Instrucciones claras para compilar y ejecutar.
  • Ejemplos de uso o datos de prueba.

9. Pruebas mínimas

  • Casos de prueba manual definidos.
  • Evidencias de ejecución correcta.

10. Presentación

  • Nombre del proyecto.
  • Tipo de negocio elegido.
  • Integrantes del grupo.
  • Breve descripción del negocio.
  • Problema que se quiere resolver.
  • Objetivo principal del sistema desarrollado.
  • Gestión de productos o servicios.
  • Sistema de interacción (menú principal).
  • Generación de informes simples (totales numéricos).
  • Ejemplo rápido de uso (caso típico).
  • Número total de clases (3–8).
  • Clases principales del dominio (2–3).
  • Responsabilidad de cada clase principal.
  • Relación básica entre clases (explicación verbal o diagrama simple).
  • Uso de arrays y cómo se gestionan.
  • Organización modular del código.
  • Criterio seguido para menús y validaciones.
  • Dificultad técnica destacable y cómo se resolvió.
  • Mostrar el menú principal en ejecución.
  • Alta o consulta de un producto/servicio.
  • Visualización de un informe con totales.
  • Reparto de tareas entre los integrantes.
  • Forma de colaboración (Git, división de clases, etc.).
  • Resultado final y estado del prototipo.
  • Posibles mejoras futuras.
  • Agradecimiento y turno de preguntas.