7. Caso de Estudio Nº 3: Tienda de Libros

Se quiere construir una aplicación que permita administrar una tienda de libros. La tienda tiene un catálogo de libros, que son los libros que desea poner a la venta. La aplicación permite abastecer la tienda con ejemplares de los libros del catálogo y venderlos. Adicionalmente permite saber cuánto dinero se tiene en caja, empezando con una inversión inicial de $1.000.000.

De cada libro se conoce:

  • ISBN. Identificador del libro. No pueden existir dos libros en la tienda con el mismo ISBN.
  • Título. El nombre del libro.
  • Imagen. La imagen del libro.
  • Precio de compra: Valor pagado por la compra de cada ejemplar en la tienda.
  • Precio de venta: Valor por el cual se vende cada ejemplar del libro.
  • Cantidad actual. Cantidad actual de ejemplares que tiene la tienda. Solo puede ser modificada mediante la venta o el abastecimiento.

Adicionalmente, de cada libro se conocen todas las transacciones que se han realizado sobre él. De cada transacción se conoce:

  • El tipo de transacción. Puede ser venta o abastecimiento.
  • La fecha de realización.
  • La cantidad de ejemplares incluidos en la transacción.

El abastecimiento de libros permite aumentar la cantidad actual de ejemplares del libro y registrar una transacción de tipo abastecimiento.

La venta de libros permite disminuir la cantidad actual de ejemplares del libro y registrar una transacción de venta. Esta transacción solo se podrá realizar si la cantidad actual de ejemplares es mayor a la cantidad que se quiere vender.

En la figura 3.9 aparece la interfaz de usuario que se tiene prevista para el programa que se va a construir.

Fig. 3.9 Interfaz de usuario de la tienda de libros
  • La interfaz está dividida en cuatro zonas: una para mostrar el dinero que hay en la caja, una para que el usuario pueda ver el listado de libros disponibles en el catálogo (donde también puede registrar nuevos libros), una para mostrar la información de un libro del catálogo, y una para las búsquedas y consultas realizadas sobre el catálogo de libros.
  • En la imagen del ejemplo, aparecen tres libros en el catálogo. Para agregar libros a la tienda, se usa el botón Registrar.
  • Al abastecimiento de libro se hace a través del botón Abastecer, la venta de libros a través del botón Vender y la eliminación de un libro a través del botón Eliminar.
  • En la zona de consultas y búsquedas se puede buscar un libro por ISBN o título, y consultar el libro más económico, el más costoso y el más vendido.

7.1. Comprensión de los Requerimientos

Los requerimientos funcionales de este caso de estudio son 10:

  1. Registrar un libro en el catálogo.
  2. Eliminar un libro del catálogo.
  3. Buscar un libro por título.
  4. Buscar un libro por ISBN.
  5. Abastecer ejemplares de un libro.
  6. Vender ejemplares de un libro.
  7. Calcular la cantidad de transacciones de abastecimiento de un libro particular.
  8. Buscar el libro más costoso.
  9. Buscar el libro menos costoso.
  10. Buscar el libro más vendido.

Tarea 10

Objetivo: Entender el problema del caso de estudio.

Lea detenidamente el enunciado del caso de estudio y complete la documentación de los primeros tres requerimientos funcionales.

Requerimiento funcional 1

Nombre R1 - Registrar un libro en el catálogo.
Resumen Registra un libro en el catálogo con su título, código ISBN, precio de compra y precio de venta. La cantidad actual de ejemplares en el momento de registro es cero y el libro se crea sin transacciones registradas. El resultado es el nuevo libro creado en caso de que si se haya podido registrar, en caso contrario, el resultado debe ser es nulo.
Entradas (1) título del libro, (2) ISBN del libro, (3) precio de compra del libro, (4) precio de venta del libro,(5) imagen del libro.
Resultado El catálogo ha sido actualizado y contiene el nuevo libro.

Requerimiento funcional 2

Nombre
Resumen
Entradas
Resultado

Requerimiento funcional 3

Nombre
Resumen
Entradas
Resultado

7.2. Comprensión del Mundo del Problema

En el mundo del problema podemos identificar tres entidades (ver figura 3.10):

  • La tienda de libros (clase TiendaDeLibros)
  • Un libro (clase Libro)
  • Una transacción (clase Transaccion)

Todas las características de las entidades identificadas en el modelo conceptual se pueden modelar con los elementos que hemos visto hasta ahora en el libro, con excepción del grupo de libros del catálogo y el listado de transacciones de un libro. La dificultad que tenemos es que no podemos predecir la cardinalidad de dicho grupo de elementos y, por esta razón, el modelado con arreglos puede no ser el más adecuado.

¿En qué se diferencia del caso del avión? La diferencia radica en que el avión tiene unas dimensiones predefinidas (42 sillas en clase económica y 8 en clase ejecutiva) que no van a cambiar durante la ejecución del programa (no existe un requerimiento de agregar una silla al avión). En el caso de la tienda de libros, se plantea que el catálogo puede tener cualquier cantidad de libros y que un libro puede tener cualquier cantidad de transacciones. Si usáramos arreglos para representar dicha información, ¿de qué dimensión deberíamos crearlos? ¿Qué hacemos si se llena el arreglo de libros del catálogo?

Fig. 3.10 Modelo conceptual para el caso de estudio de la tienda de libros

La solución a ese problema será el tema de esta parte final del nivel, en la cual presentamos las contenedoras de tamaño variable, la manera en que se usan a nivel de modelado del mundo y la forma en que se incorporan en los programas escritos en Java.

Por ahora démosle una mirada al diagrama de clases de la figura 3.10 y recorramos cada una de las entidades identificadas:

  • Una tienda de libros tiene un catálogo (así se llama la asociación), que corresponde a un grupo de longitud indefinida de libros (representado por el *).
  • Un libro tiene cinco atributos: un título, un ISBN, un precio de compra, un precio de venta y una imagen.
  • Un libro tiene un grupo de transacciones (así se llama la asociación) de longitud indefinida. Cada transacción es de tipo abastecimiento o venta.
  • Cada transacción tiene el tipo (abastecimiento o venta), la cantidad de ejemplares y la fecha.

results matching ""

    No results matching ""