Proyecto Java Musica

Job ID: 37918553

Budget: €30 – €250 EUR

Los reproductores de música nos permiten administrar nuestra colección de canciones ofreciéndonos algunas funcionalidades como la creación de listas de reproducción (que son agrupaciones de canciones bajo cierto criterio común, por ejemplo “canciones para conducir”, “canciones para hacer ejercicio”, etc.), buscar todas las canciones que tengamos de cierto artista (o de una época determinada, o de un estilo común...) y organizar la reproducción de las canciones.
Toda esta administración requiere la organización de la información de las canciones para poder realizar, entre otras, las siguientes acciones:
 -Organizar y acceder a las canciones que tenemos en nuestra colección.
 -Crear y gestionar varias listas de reproducción.
- Seleccionar las canciones que van a ser reproducidas.
- Consultar cuáles han sido las últimas canciones reproducidas.
En esta práctica nos ocuparemos de diseñar y programar una serie de componentes que nos van a permitir gestionar toda esta información. De las canciones nos interesarán sus metadatos (autor, título, álbum al que pertenece, año de publicación, etc.), pero no contemplaremos la reproducción en sí. Es decir, solo vamos a manejar la información asociada a la canción, sin ocuparnos de que la canción llegue a sonar.
Los objetivos principales de esta práctica son:
-Razonar e implementar los TAD descritos en este documento, la cual utilizará los tipos de
datos programados por el Equipo Docente.
-Crear un programa con todos los TAD implementados.
-Ejecutar el programa anterior sobre juegos de pruebas.
Tendremos 4 componentes principales: Repository, PlaylistManager,PlaybackQueue, RecentlyPlayed.
Para la implementación de las estructuras de datos se deberán utilizar las interfaces proporcionadas, se proporcionará la implementación de una clase principal, los mecanismos de Entrada/Salida, la ejecución de las diferentes operaciones y una clase TuneCollection (que implementará el interfaz TuneCollectionIF).
Para cada una de las siete clases restantes, el trabajo de implementación que deberá realizar cada usuario consistirá en:
 Elegir una estructura de datos adecuada para los objetos de la clase y plasmarla en los atributos de la clase.
 Implementar todas las operaciones públicas de la clase cumpliendo lo indicado en la interfaz

Dispongo de dos cuestiones mas a contestar. Lo demás se hablara por privado, preferiblemente gran dominio del Castellano