Master League    ML


Presentado por: Mario Castro, Cristobal Rodriguez.




Descripción del problema:

Cada año en nuestra universidad se realizan numerosos campeonatos de fútbol que son organizados por los mismos alumnos. Estos son organizados por personas que no son profesionales en este tema y que no disponen de todo el tiempo que este tipo de organización necesita. Estos hechos provocan conflictos entre la organización y los competidores ya que la información no se entrega oportunamente, por consiguiente, ocurren problemas en la programación de partidos, en los resultados de estos, en las estadísticas, etc.


Analisis del problema:

Casos de Uso:

Caso#1:
Nombre: Crear nueva liga.
Propósito: En este caso el usuario crea un nuevo campeonato en formato de liga
Actores: usuario
Pre-Condiciones: El usuario se ha logeado satisfactoriamente en el sistema
Evento:El usuario selecciona "Crear Nueva Liga"
Post-Condiciones: La liga se crea satisfactoriamente, con sus equipos, jugadores y fixture
Tipo: Manual
Secuencia Normal:
1) Usuario Selecciona "crear nueva liga".
2) El sistema solicita el nombre de la liga, cantidad de equipos en la liga, y cantidad de jugadores por equipo.
3) El usuario ingresa el nombre de la liga, la cantidad de equipos y jugadores por equipo.
4) El sistema solicita el nombre de cada uno de los equipos participantes.
5) El usuario indica el nombre de cada equipo participante.
6)El sistema solicta el nombre de cada jugador de cada equipo participante.
7) El usuario señala el nombre de cada jugador participante.
8) El sistema crea la Liga

Diagrama:

Diagrama de secuencia para caso # 1


Caso#2:
Nombre: Agregar resultados a liga existente.
Propósito: El usuario edita resultados de alguno de los partidos programados.
Actores: Usuario
Pre-Condiciones: Existe una liga con dos o más equipos y el usuario se ha logeado exitosamente
Evento: El usuario selecciona "Actualizar".
Post-Condiciones: Son editados los resultados de los partidos seleccionados satisfactoriamente
Tipo: Manual
Secuencia Normal:
1) Usuario Selecciona "Actualizar".
2) El sistema muestra el fixture de partidos programados.
3) El usuario completa los campos para el resultado, y selecciona el checkbox correspondiente
4) El Usuario selecciona "Guardar Cambios".
5) El sistema Guarda los resultados en un archivo y vuelve al panel principal.

Secuencia Alternativa:


Caso#3:
Nombre: Ver tabla de posiciones
Propósito: Muestra la tabla de posiciones de la liga.
Actores: Usuario
Pre-Condiciones: Se ha creado una  liga, con sus jugadores y equipos.
Evento: El usuario selecciona la opcion "Ver tabla".
Post-Condiciones: Se muestra la tabla de posciones, con partidos jugados, puntaje y goles de cada equipo participante.
Tipo: Manual
Secuencia Normal:
1) El usuario selecciona "Ver Tabla"
2) El sistema lee los archivos de la liga y genera la tabla de posiciones.


Diagrama UML de la solución:

UML

En este diagrama faltan algunas clases, como por ejemplo los paneles de equipo y jugadores. Tambien la clase Fixture y Tabla

Pruebas del Software:

Caso#2: Agregar Resultados a Liga existente
Este caso tiene como pre-condición la existencia de una liga.
Secuencia Normal:

1) Usuario Selecciona Actualizar:
Seleccion en Actualizar

2) El sistema muestra el fixture de los partidos programados:

fixture

3) El usuario llena los campos de resultado, y marca el checkbox correspondiente:

checkbox

4) El usuario selecciona "Guardar Cambios":

GCambios

5) El sistema guarda los datos en un archivo y vuelve al panel principal:

archivo

principal


Dificultades en el desarrollo:


1) Se encontro una dificultad en querer implementar un algoritmo de ordenamiento, para crear una tabla de posiciones.
2) Problemas con la imagen de fondo del software. En ocaciones permanecian campos de texto y botones de paneles anteriores sobre la imagen.


Bugs y restricciones:

1)     Al crear una nueva liga, existiendo  una previamente, algunos equipos de la nueva liga se agregan al fixture de la primera. El sistema permite administrar una liga.
2)    Funciona con cantidad par de equipos, menor o igual a 20 equipos.
3)    20 jugadores máximo por equipo.
4)   Si no se indican nombre de los equipos, el sistema no funciona. No asì para los jugadores.

Posibles Upgrades:

1)     Permitir administrar varias ligas a la vez.
2)     Gestionar sanciones en jugadores.
3)      Calendarizar partidos de acuerdo a disponibilidad de canchas. Se requiere una nueva clase "cancha" con su disponibilidad de tiempo como atributo.
4)      Realizar ranking de goleadores.


 Descargar Codigo

Proyecto