Marcador Básquet

Un club deportivo de basketball utiliza marcadores y plantillas para la ejecución formal de partidos en los campeonatos que organiza. Las inmediaciones deportivas que arriendan no siempre cumplen con la implementaciones adecuadas para aquello. Hace falta un medio sencillo y portátil para solucionar las falencias del marcador físico, por esto se decidió construir un sistema integral para facilitar la recolección de datos y su pertinente display en vivo.

Descripción del problema:

“Marcador básquet” es una aplicación que busca proveer una herramienta que facilite la gestión y control de los partidos de baloncesto. Las problemáticas a resolver principalmente incluyen el registro preciso del tiempo de juego, el control de faltas, cambios de jugadores y finalmente la actualización del marcador. Nuestra aplicación agilizará estas tareas y ofrece una solución simple y eficiente para mejorar la gestión de los partidos de baloncesto.

Análisis del problema:

A continuación, desarrollaremos y explicaremos los elementos que componen el problema a solucionar, definiendo el sistema y sus interacciones con el medio externo a este.

El sistema interactúa con el medio externo al permitir a los usuarios, como entrenadores, oficiales de mesa, controlar y registrar eventos relevantes durante el partido. La interfaz de usuario proporciona una forma intuitiva de interactuar con el sistema y realizar acciones como iniciar el temporizador, registrar puntajes, realizar cambios de jugadores y registrar faltas. El archivo de resumen generado al final del partido permite tener un registro documentado de lo ocurrido para su posterior revisión o análisis.


Requerimientos:


Caso de Uso #1
Nombre
: Iniciar partido

Propósito: Oficial de mesa quiere iniciar un nuevo partido de baloncesto.

Actor: Oficial de mesa

Pre-condiciones:
        No debe haber un partido en curso.
        Los equipos participantes y los jugadores deben estar configurados previamente.]
Evento: El usuario selecciona la opción “Iniciar Partido”
Curso Normal de eventos:

1 El usuario selecciona la opción de "Iniciar partido" en la interfaz.

2 El sistema muestra una confirmación para iniciar un nuevo partido y reiniciar todos los valores.

3 El usuario confirma la solicitud de inicio de partido

.4 El sistema restablece el contador principal a 10 minutos y muestra los puntajes en cero para ambos equipos.

5 El sistema inicia el contador principal y comienza a contar el tiempo del partido.

6 Los usuarios pueden realizar otras acciones, como registrar faltas, realizar intercambios de jugadores o sumar puntajes durante el partido.



Caso de Uso #2

Nombre: Registrar una falta

Propósito: Oficial de mesa requiere registrar una falta
Actores:

Oficial de mesa

        Jugador

Pre-condiciones:

El partido ha sido iniciado.

Hay al menos un jugador en el campo de juego.

Evento: Un jugador comete una falta

Curso Normal de eventos:

1 El jugador realiza una falta

2 Oficial de Mesa registra número de jugador y su equipo

3 El sistema registra la falta

4 El sistema actualiza el contador de faltas del equipo correspondiente

Requisito no funcional:

        El número de faltas máximo por equipo es 5.


Caso de Uso #3

Nombre: Generar resumen del registro del partido en un archivo de texto

Propósito: Oficial de mesa debe generar un resumen del partido en formato de archivo de texto (.txt) que contiene información sobre los eventos ocurridos durante el juego, marcando el cuarto en el que ocurrieron y su respectivo tiempo.

Actor: Oficial de mesa

Pre-condiciones:

El partido ha finalizado.

Evento: Oficial de mesa selecciona la opción “Generar Reporte”.

Curso Normal de eventos:

1 Oficial de mesa selecciona la opción “Generar Reporte

2 El Sistema procesa los datos del partido y genera un resumen en en un archivo de texto

3 El sistema guarda el archivo de texto en la ubicación especificada


Diagrama UML de nuestra aplicación

En este diagrama, "QMainWindow" es la clase principal que representa la ventana principal de tu aplicación. Tiene una relación de composición con la clase "Tablero", que es responsable de mantener el estado del puntaje de los equipos y comunicarse con la interfaz para actualizar los puntajes.

La clase "Tiempo" representa el temporizador principal y se comunica con la interfaz a través de la clase "QMainWindow" para iniciar, pausar y reiniciar el conteo del tiempo.

La clase "Tiempo" es responsable de mantener los tiempos de cada cuarto del partido y se comunica con la clase "Tablero" para establecer los tiempos correspondientes.


Diagrama de secuencia:

En este diagrama de secuencia, el actor "Oficial de mesa" inicia la aplicación "Marcador básquet" y se comunica con la "Interfaz de Usuario". A continuación, la "Interfaz de Usuario" solicita el inicio del partido al "Controlador de Partido". El "Controlador de Partido" a su vez inicia el "Temporizador y Marcador" para inicializar los contadores y puntajes en cero. Luego, la "Interfaz de Usuario" actualiza la interfaz mostrando el temporizador y el marcador inicializados.

En esta ventana se muestra un ejemplo del uso de nuestra aplicación “Marcador básquet” , con el contexto de un partido que va en el segundo cuarto, con 34 segundos de transcurso. El equipo local lleva 33 puntos mientras que el equipo visitante lleva 51. Las faltas son 5 y 2 respectivamente y la última sustitución de jugadores que se realizó fue el intercambio entre el jugador 4 y 7.