Programación Orientada a Objetos Proyecto 2012-I ESCUELA SUPERIOR POLITÉCNICA DEL LITORAL FACULTAD DE INGENIERIA EN ELECTRICIDAD Y COMPUTACION PROYECTO PARCIAL SEMESTRE 2012-I ING. JORGE RODRIGUEZ E. / ING. ANGEL LOPEZ Objetivos Poner en práctica los conceptos de la programación orientada a objetos aprendidos a lo largo del curso (herencia, polimorfismo, encapsulamiento, uso de interfaces, manejadores de excepciones, eventos, gráficos, etc.). Dominar el uso básico de la herramienta de desarrollo Evaluación del Proyecto El proyecto será evaluado considerando los siguientes aspectos: Documentación UML: Casos de uso, escenarios y diagramas de clases y de interacción de objetos. Documentación del código: No se evaluará la cantidad de los comentarios sino la calidad y el formato de los mismos. Cualquier consideración adicional a lo establecido como parte del proyecto deberá estar adecuadamente documentado en el código. Estructuración del código: Adecuado uso de: o Modificadores de acceso. o Nombres de clases, atributos, métodos, variables y validaciones apropiadas. o Uso de tipos de datos adecuados (valores y referencias) o Indentación del código para facilitar la lectura. Aplicación del paradigma de orientación a objetos: Esto evalúa el uso adecuado de clases, interfaces, clases abstractas, herencia, polimorfismo. Completitud. El programa deberá estar terminado al menos en un 75% para ser evaluado. Entrega a tiempo. La carpeta de su proyecto (NetBeans) deberá ser entregado en un archivo .zip a través del SIDWEB hasta la fecha y hora máxima de entrega. Recordar que no se permiten entregas atrasadas. Nota: - La evaluación del proyecto se realizará a través de la entrega de tareas durante todo el semestre. - Al final del primer parcial se entregará el proyecto acorde a las especificaciones establecidas en modo consola y para el proyecto final deberá utilizar componentes GUI. - Cabe recordar que se evalúan también los fundamentos de programación que deben de haber adquirido en materias anteriores. 1 Programación Orientada a Objetos Proyecto 2012-I Sistema de Sala de Cines v.1.0 A lo largo de este semestre usted desarrollara una versión orientada a objetos de un sistema que se utilizará para administrar una cadena de cines. Durante este parcial lo implementara en modo consola. A continuación, se establece la descripción del sistema así como los requerimientos funcionales con los que debe cumplir. La cadena de cines cuenta con diferentes cines en cualquier parte del país. Cada cine proyecta películas en sus diferentes salas en diferentes horarios. Cada sala de cine tiene sus butacas numeradas (numero de fila y numero de asiento por fila). En esta primera versión del sistema, el sistema cuenta solo con un perfil de usuario que pueden ingresar al sistema: administrador. El tendrá asignada todas las opciones del sistema. El sistema debe permitir el ingreso del usuario con su nombre de usuario (admin) y una contraseña que por esta primera versión será por defecto “admin123”. 2 Programación Orientada a Objetos Proyecto 2012-I Una vez que el usuario este dentro del sistema tendrá opciones para: 1. Creación de sala de cine Cuando el usuario cree una nueva sala de cine deberá estar en posibilidad de asignar capacidad de la sala, la cantidad de filas de butacas que tiene la sala, así como el número de butacas que tiene por fila la sala. 2. Registro de filme Cuando el cine desee proyectar un nuevo filme, en esta opción el usuario registrara la creación de uno nuevo de tal forma que se encuentre disponible luego para asignarlo a las salas de cines en las cuales va a ser proyectado. Debe registrar el nombre del filme, la duración, la categoría (A, B, etc.), el nombre de los protagonistas y una breve reseña. Adicionalmente, puede registrarse la página web oficial del filme. 3. Registro de tarifas El administrador registra las tarifas asignadas para la venta de entradas en esta opción. Las tarifas vigentes son: a. Adultos mayores $ 2,50 b. Adultos $ 4,00 c. Estudiantes $ 2,50 d. Personas con capacidades disminuidas $ 1,00 Nota: En su proyecto estas tarifas vendrán cargadas por defecto. Sin embargo, deben presentar la opción para que se pueda dar mantenimiento a los valores de las mismas o agregar nuevas. 3 Programación Orientada a Objetos Proyecto 2012-I 4. Proyección de filme En esta opción el usuario podrá asignar a una sala cine que filme va a proyectar, las fechas y horario de proyección del mismo (registro de hora inicio), así como el estado de la proyección (Pendiente, Proyectado, Proyectando, Cancelado). El sistema valida los cruces entre horarios. Adicionalmente, el sistema validara que entre la proyección de filmes exista por lo menos una hora de diferencia para que se lleve a cabo la limpieza de la sala. 5. Registro de cliente En esta opción el usuario registrará la información del espectador que compra los tickets para asistir a la proyección de un filme. La información que se registra es el nombre, el apellido, la fecha de nacimiento, cedula de identidad. 6. Compra de tickets En esta opción el usuario registrará la compra de tickets realizada por un cliente para un filme que se proyectará. Para proceder con la venta el usuario debe seleccionar en el sistema el filme, la función a la cual asistirá el cliente (fecha y hora), la cantidad de tickets que desea comprar y la ubicación de cada una de las butacas que ocupara. Adicionalmente, el sistema calculará el valor que el cliente deberá pagar por el total de tickets en base a las tarifas vigentes. El sistema validará que no puedan ser vendidos tickets para proyecciones que ya han pasado o que han sido canceladas, así como que no exista sobreventa de tickets. 7. Consultas El sistema le brindara al usuario una serie de reportes los mismos que se indican a continuación: a. Filmes por sala Presenta un listado del nombre de filme, fecha y horario de proyección, estado de la proyección. El sistema le permitirá al usuario elegir si desea que este reporte se muestre ordenado por fecha u ordenado por nombre de filme. 4 Programación Orientada a Objetos Proyecto 2012-I b. Resumen por sala por fecha Presenta un listado de todas las proyecciones realizadas en la fecha seleccionada con el número de sala, cantidad de butacas vendida, cantidad de butacas vacías y el valor total recaudado por venta de tickets. El sistema le permitirá al usuario elegir si desea que este reporte se muestre ordenado por hora de proyección u ordenado por nombre de filme. c. Resumen por filme por fecha Presenta un listado de todas las proyecciones realizadas en la fecha seleccionada con el número de asistentes y el valor total recaudado por venta de tickets. El sistema le permitirá al usuario elegir si desea que este reporte se muestre ordenado por filme u ordenado por valores ascendente o descendentemente. 8. Acerca de El sistema le brindara al usuario información acerca de los creadores del sistema. 5 Programación Orientada a Objetos Proyecto 2012-I Tarea: AVANCE Parcial - Entregar la documentación UML Fecha de entrega: 13 de Junio de 2012 En esta tarea deberán presentar la documentación UML: Actores Diagrama de Casos de USO Escenarios Diagramas de clase Diagrama de Interacción de Objeto Tarea: AVANCE Parcial- Avance de código Fecha de entrega: 18 de Junio de 2012 Implementación en java de las clases de su diagrama de clases. Tarea: AVANCE Parcial- Avance de código y corrección de documentación Fecha de entrega: 20 de Junio de 2012 Actualización del diagrama de clases aplicando el concepto de herencia y actualización de la implementación de las clases según el diagrama de clases. Sustentación de proyecto Fecha de entrega: 4 de Julio de 2012 La nota de sustentación individual del proyecto será tomada a partir de un literal del examen parcial. Presentación de Proyecto Parcial Fecha de entrega: 9 de Julio de 2012 1. Presentación de Proyecto en Netbeans. • El código fuente debe incluirse documentación en clases, métodos y atributos usando javadoc (investigar) 2. Presentación actualizada de documentación de análisis y diseño orientado a objetos. 3. Documento en Word con: - Secciones de código fuente indicando los conceptos de orientación a objetos que ha utilizado - Pantallas que muestren operaciones de depuración (debug) de algún problema que hayan tenido y realizar una explicación del problema y la solución. - Bibliografía utilizada Nota: El documento de Word es parte de la nota del proyecto por lo tanto deben de cuidar la presentación del mismo (digital). El no presentar la documentación solicitada es causa de penalización en la nota. 6