Programación Orientada a Objetos. Curso 2010/2011

Práctica 2. Clases y herencia

Calendario
Lunes
Martes
Miércoles
Jueves
Viernes
Observaciones
Inicio
07/03
08/03
09/03
03/03
04/03

Evaluación
28/03
29/03
30/03
31/03
01/04
Entrega el día anterior. El grupo del lunes 2 horas antes del comienzo de la clase.


Objetivos

En esta práctica el alumno se formará en los siguientes conceptos y habilidades:

Descripción del proyecto

La práctica a desarrollar consistirá en diseñar e implementar completamente el sistema de gestión de una tienda virtual que sirvió como base en la práctica 1. El alumno podrá partir del diagrama de clases suministrado en la práctica anterior, pero deberá realizar su propio diagrama de clases adaptado a la funcionalidad requerida en esta práctica, con la restricción de que las clases desarrolladas deberán implementar el conjunto de interfaces facilitadas por los profesores. Se valorará un diseño que aplique adecuadamente los principios de orientación a objetos (jerarquías de clase, modularidad, etc.) y haga un uso adecuado de las clases de la librería estándar de Java. El diagrama de clases diseñado deberá entregarse como parte de la documentación de la práctica.

Además de los anteriores, otro de los objetivos de esta práctica es familiarizar al alumno con uno de los aspectos fundamentales relacionados con la orientación a objetos en general y el mundo Java en particular, la reutilización de librerías. En este sentido, el almacenamiento de todos los datos de la tienda se realizará en formato XML, utilizando para ello la librería JDOM.

El sistema a implementar consistirá en una aplicación que simulará el comportamiento de una tienda online que venderá distintos tipos de artículos (en el ejemplo a implementar libros, discos y películas). Se ejecutará como un proceso local que trabajará con el fichero XML que se le pase como parámetro en la llamada. En este fichero se almacenarán los datos de los artículos gestionados por la tienda, así como la información de los clientes registrados. Los ficheros XML con los que trabajará la aplicación tendrán la misma estructura del fichero XML de prueba proporcionado, aunque en caso de ser necesario esta estructura se podrá ampliar (siempre que no se modifique la estructura dada). Los cambios que se realicen en los datos de la tienda durante la ejecución deberán ser persistentes entre ejecuciones, es decir, que los cambios realizados deberán verse reflejados en el fichero XML.

Existirán dos posibles perfiles de usuario:

NOTA: No será necesario implementar un sistema de gestión de acceso para identificar el rol de cada usuario. Será suficiente con implementar mains distintos para cada uno de los perfiles.

Las posibles acciones para el administrador serán, al menos, las siguientes:

NOTA: No será necesario implementar un mecanismo de creación de nuevos artículos, esto se podrá hacer manualmente en el fichero XML.

Por su parte, las acciones para los clientes serán, al menos:

En la tienda de prueba que se implementará se gestionarán al menos tres posibles tipos de artículos: libros, discos y películas. Cada uno de ellos tendrá los siguientes atributos:

NOTA: El id interno no podrá estar duplicado.

Al final del enunciado se facilitan un conjunto de mains de prueba, junto con sus salidas esperadas, para chequear algunas de las funcionalidades de la tienda. Es responsabilidad de los alumnos el diseñar y entregar tests adicionales para chequear la funcionalidad completa (búsquedas, historiales de ventas, escritura del fichero XML, etc.).

Material de referencia

  • Enlace al sitio de descarga de ArgoUML, herramienta para generar el diagrama de clases de la práctica.

  • Proyecto Netbeans con el conjunto de interfaces suministradas por los profesores.

  • Se deja intencionadamente al alumno la labor de buscar y entender el manejo de la librería JDOM, así como la documentación de esta librería, naturalmente con la asistencia de los profesores en las clases de laboratorio. Como ayuda al uso de esta librería se proporciona un ejemplo muy simple de uso de esta librería para leer un fichero XML.

    Apéndice. Mains de prueba

    Entrega

    Las prácticas se deben entregar antes de la fecha de evaluación indicada al comienzo del enunciado, teniendo en cuenta las horas límite de entrega mencionadas en las normas de la asignatura.

    El fichero .zip a entregar debe incluir:

    NOTA: Las entregas que no cumplan los requisitos enumerados en las normas recibirán una penalización de 0.5 puntos.

    (C) 2010-2011 Escuela Politécnica Superior, UAM