Universidad de los Andes Ingeniería de Sistemas y Computación Algorítmica y Programación por Objetos 1 Ejercicio de Nivel 3 Karaoke Descripción Global Se desea desarrollar una aplicación para administrar las canciones de un karaoke. La aplicación tiene 4 categorías musicales (Rock, Pop, Fusión latina y Electro-house) y 9 artistas que pertenecen a una de las diferentes categorías. Adicionalmente, la aplicación debe permitir el manejo de listas de reproducción, donde cada lista puede tener canciones de diferentes artistas. Objetivos del ejercicio El presente ejercicio usted trabajará en: Crear una nueva clase completa. Declarar e inicializar atributos. Declarar e inicializar constantes. Crear e implementar métodos. Utilizar estructuras condicionales. Utilizar estructuras repetitivas haciendo uso de los patrones de recorrido. Crear y manipular estructuras contenedoras de tamaño fijo. Crear y manipular estructuras contenedoras de tamaño variable. Preparación Esta sección presenta una lista de chequeo de todas las tareas necesarias para la preparación del ejercicio. Por favor, revise que cada tarea haya sido completada antes de pasar a la siguiente sección de esta guía de trabajo. 1. Para conocer el funcionamiento esperado de la aplicación, descargue y/o ejecute el archivo demo del ejercicio que se encuentra en el siguiente enlace: http://cupi2.uniandes.edu.co/sitio/index.php/cursos/apo1/ejercicios-del-semestre 2. Descargue el esqueleto del ejercicio (http://cupi2.uniandes.edu.co/sitio/index.php/cursos/apo1/ejercicios-del-semestre) e impórtelo a Eclipse. No se preocupe si algunas clases le reportan errores (como marcas rojas) al importar el ejercicio por primera vez. Estos desaparecerán cuando termine correctamente los cambios requeridos en el mundo. 3. Lea el enunciado del problema disponible en: n3_ karaoke/docs/specs/Descripcion.pdf. 4. Estudie el documento de requerimientos funcionales disponible en: n3_karaoke/docs/specs/RequerimientosFuncionales.pdf. 5. Estudie el modelo del mundo diseñado para este ejercicio. Este modelo se encuentra en: n3_ karaoke/docs/specs/ModeloConceptual.jpg. Identifique las clases, relaciones entre clases, constantes, atributos y métodos. 6. Desde Eclipse revise la documentación de las clases del mundo. Esto le permitirá entender para qué sirve cada método y cada uno de los atributos. El siguiente video explica cómo leer la documentación de un método: https://www.youtube.com/watch?v=J0aQN39k7MA 7. Revise el proyecto Java. Identifique los elementos del mundo (clases, atributos y métodos). Desarrollo Dentro del código del esqueleto se encuentran indicados los puntos en donde usted debe realizar alguna modificación (añadir atributos, completar métodos, construir nuevos métodos, etc.), por medio de comentarios de la siguiente forma: // TODO ParteX PuntoY: Breve explicación de la modificación que debe realizar. Donde X hace referencia a una parte de la guía de trabajo, y Y hace referencia a un punto de la parte X. Para visualizar los TODOs vaya al menú Window -> Show View -> Tasks como se muestra en la siguiente figura: El siguiente vínculo muestra cómo consultar los TODOs de un ejercicio: https://www.youtube.com/watch?v=pV54O42D2ow Parte 1: Crear la clase Cancion 1. Cree la clase Cancion. Para crear una nueva clase en Eclipse, siga las siguientes instrucciones: a. Seleccione la vista Package Explorer del menú Window, opción Show View. b. Posiciónese sobre el paquete uniandes.cupi2.karaoke.mundo de la carpeta source. c. Haga clic derecho sobre este paquete y seleccione la opción New > Class. d. En la ventana que aparece, digite el nombre de la nueva clase (Cancion) y presione el botón Finish. e. La nueva clase Cancion aparecerá (vacía) en el paquete del mundo: 2. Adicione los atributos de la clase. En el modelo del mundo (ModeloConceptual.jpg) se encuentran los nombres y tipos de estos atributos. 3. Adicione el método constructor. En el modelo del mundo (ModeloConceptual.jpg) se encuentran los nombres y tipos de los parámetros que debe recibir el constructor. También puede hacer uso de la siguiente documentación: /** * Crea una canción. <br> * <b>post: </b> Se inicializaron los atributos nombre, duración, letra, dificultad y ruta con los valores dado por parámetro. * @param pNombre Nombre de la canción. pNombre != null y pNombre != "". * @param pDuracion Duración en segundos de la canción. pDuracion > 0. * @param pLetra Letra de la canción. pLetra != null y pLetra != "". * @param pDificultad Dificultad de la canción. pDificultad >= 1 y pDificultad <= 10. * @param pRuta Ruta del archivo con la canción. pRuta != null y pRuta != "". */ 4. Adicione los métodos analizadores: darNombre darDuracion darLetra darDificultad darRuta 5. Adicione el método toString que retorna un String con el nombre de la canción siguiente manera: <nombre>. Ejemplo: Hasta el techo Parte 2: Completar la clase Artista Completar los TODOs que comienzan por: //TODO Parte2 PuntoY Parte 3: Completar la clase Karaoke Completar los TODOs que comienzan por: //TODO Parte3 PuntoY de la Validación En esta sección se explica cómo validar el desarrollo del ejercicio. Para comprobar el completo y correcto funcionamiento de su ejercicio usted debe: 1. Ejecutar el programa e interactuar con todas las opciones disponibles en la interfaz. Los resultados obtenidos deben ser iguales a aquellos mostrados en el video demo. Ejecutar las pruebas automáticas disponibles en el ejercicio. En el siguiente video: https://youtu.be/h3r7wSFaIOo) se explica cómo efectuar esas pruebas. Alternativamente (por fuera de Eclipse), ejecute los programas: clean, cleanTest, build y luego buildTest que se encuentran en n3_ karaoke/bin/win/ (para Windows) o en n3_karaoke/bin/mac/ (para MAC) y enseguida ejecute el programa runTest, haciendo doble clic en estos archivos. Estas pruebas deben presentar resultados en verde (0 errores y 0 fallas) cuando el ejercicio ha sido completado correctamente Entrega Este ejercicio debe ser realizado de manera INDIVIDUAL. 1. Indente el código fuente de todas las clases del mundo. En el siguiente enlace: https://youtu.be/BH9H0e-Z56E encuentra un video que explica cómo indentar el código fuente de su ejercicio. 2. Construya el archivo entregable con su ejercicio desarrollado y validado completamente. En el siguiente video: https://youtu.be/a9KOHfX5Gfw se explica detalladamente el proceso para producir el archivo comprimido del ejercicio y enviarlo a SicuaPlus. No olvide revisar que su entrega cumple con lo especificado en las normas del curso (presentes en el siguiente enlace: http://cupi2.uniandes.edu.co/sitio/index.php/cursos/apo1/normas-administrativas). Esto incluye renombrar el archivo a entregar con su login de la siguiente forma: n<nivel del ejercicio>_<login estudiante>.zip Por ejemplo: n3_tsuarez.zip La no indentación del código fuente o el nombramiento incorrecto del ejercicio en su entrega es una acción penalizada en la plantilla de calificación del mismo. 3. Entregue el archivo del ejercicio vía SicuaPlus, de acuerdo con las normas, fecha y hora de entrega.