9. Hojas de Trabajo

9.1 Hoja de Trabajo Nº 1: Venta de Boletas en una Sala de Cine

Descargue esta hoja de trabajo a través de los siguientes enlaces: Descargar PDF | Descargar Word.

Enunciado. Analice el siguiente enunciado e identifique el mundo del problema, lo que se espera de la aplicación y las restricciones para desarrollarla.

Se quiere construir una aplicación que permita administrar una sala de cine. Esta aplicación permite hacer reservas y registrar sus pagos. La sala de cine tiene 220 sillas. De cada silla se conoce:

  • Fila a la que pertenece, representada por un valor entre A y K.
  • Número de la silla, valor entre 1 y 20.
  • Tipo. Puede ser general o preferencial.
  • Estado de la silla. Puede ser disponible, reservada o vendida.

El costo de boleta se determina según el tipo de la silla, y esta a su vez se determina según su número, de la siguiente manera:

  • General: sillas en las filas A – H. Costo por boleta de $8,000.
  • Preferencial: sillas en las filas I – K. Costo por boleta de $11,000.

Para poder adquirir una boleta, el cliente debe primero hacer una reserva. Cada cliente puede reservar hasta 8 sillas. De cada reserva se conoce:

  • Cédula de la persona que hizo la reserva.
  • Sillas que hacen parte de la reserva. Estado de pago de la reserva.

El cliente puede pagar sus reservas en efectivo o utilizando la tarjeta CINEMAS. Esta tarjeta le otorga a su dueño un descuento del 10% en sus boletas. De cada tarjeta se conoce:

  • Cédula del dueño de la tarjeta. No pueden existir dos tarjetas con la misma cédula.
  • Saldo de la tarjeta: Cantidad de dinero disponible para pagar reservas.

Cuando se adquiere una tarjeta, el cliente debe cargar la tarjeta con un valor inicial de $70,000. Cada tarjeta puede ser recargada una cantidad ilimitada de veces, sin embargo, cada recarga se debe hacer por un monto de $50,000.

La aplicación debe permitir:

  1. Crear una nueva tarjeta.
  2. Recargar una tarjeta.
  3. Crear una reserva.
  4. Eliminar la reserva actual.
  5. Pagar una reserva en efectivo.
  6. Pagar la reserva con tarjeta CINEMAS.
  7. Visualizar las sillas del cine.
  8. Visualizar el dinero en caja.

Requerimientos funcionales.Especifique los principales requerimientos funcionales que haya identificado en el enunciado.

Requerimiento Funcional 1

Nombre
Resumen
Entradas
Resultado

Requerimiento Funcional 2

Nombre
Resumen
Entradas
Resultado

Requerimiento Funcional 3

Nombre
Resumen
Entradas
Resultado

Requerimiento Funcional 4

Nombre
Resumen
Entradas
Resultado

Requerimiento Funcional 5

Nombre
Resumen
Entradas
Resultado

Requerimiento Funcional 6

Nombre
Resumen
Entradas
Resultado

Requerimiento Funcional 7

Nombre
Resumen
Entradas
Resultado

Requerimiento Funcional 8

Nombre
Resumen
Entradas
Resultado

Modelo del mundo.Complete el modelo conceptual con los atributos y constantes de cada clase, lo mismo que las asociaciones entre ellas.

Diagrama UML: Cine
Diagrama UML: Tarjeta
Diagrama UML: Silla
Diagrama UML: Reserva

Asignación de responsabilidades. Decida, utilizando la técnica del experto, quién debe encargarse de:

¿Quién es el responsable de crear una tarjeta CINEMAS?
¿Quién es el responsable de indicar si una silla está ocupada?
¿Quién es el responsable de decir las sillas que están en una reserva?
¿Quién es el responsable de saber el saldo de una tarjeta CINEMAS?
¿Quién es el responsable de calcular el valor total de compra de unas boletas?

Descomposición de requerimientos funcionales. Indique los pasos necesarios para resolver los siguientes requerimientos y señale, al finalizar cada paso, quién debería ser el responsable de hacerlo.

Incrementar el saldo de la tarjeta CINEMAS. 1. Buscar la tarjeta CINEMAS por su código (Cine).
2. Aumentar el valor de saldo de la tarjeta (Tarjeta).
Reservar un conjunto de sillas.
Comprar boletas.
Cancelar una reserva.

Identificación de excepciones. Según los siguientes enunciados, indique qué posibles excepciones se deben manejar. Para ello no haga ninguna suposición sobre los datos de entrada.

Dado un valor numérico, incrementar el saldo de una tarjeta. a. La tarjeta es nula
b. El valor numérico es negativo.
c. El valor numérico no es igual a $50.000.
Cambiar el estado de una silla a ocupada.
Agregar una silla a una reserva.

Elaboración de contratos. Para los siguientes métodos, establezca su contrato. Tenga en cuenta la clase en la que se encuentra el método.

Clase: Cine Método: Buscar una tarjeta dado su código.
Signatura Tarjeta buscarTarjeta( String pCodigo )
Precondición sobre el objeto: El vector de tarjetas ha sido inicializado.
Precondición sobre los parámetros: pCodigo debe ser diferente de null, pCodigo debe ser diferente de la cadena vacía.
Postcondición sobre el objeto: Ninguna.
Postcondición sobre el retorno: Retorna la tarjeta que tiene el código pedido o null si dicho código no existe.
Excepciones: Ninguna
Clase: Cine Método: Crear una tarjeta.
Signatura
Precondición sobre el objeto:
Precondición sobre los parámetros:
Postcondición sobre el objeto:
Postcondición sobre el retorno:
Excepciones:
Clase: Cine Método: Calcular el porcentaje de boletas vendidas.
Signatura
Precondición sobre el objeto:
Precondición sobre los parámetros:
Postcondición sobre el objeto:
Postcondición sobre el retorno:
Excepciones:
Clase: Tarjeta Método: Incrementar el valor del saldo de la tarjeta.
Signatura
Precondición sobre el objeto:
Precondición sobre los parámetros:
Postcondición sobre el objeto:
Postcondición sobre el retorno:
Excepciones:
Clase: Tarjeta Método: Disminuir el valor del saldo de la tarjeta.
Signatura
Precondición sobre el objeto:
Precondición sobre los parámetros:
Postcondición sobre el objeto:
Postcondición sobre el retorno:
Excepciones:
Clase: Reserva Método: Agregar una silla dada a la reserva.
Signatura
Precondición sobre el objeto:
Precondición sobre los parámetros:
Postcondición sobre el objeto:
Postcondición sobre el retorno:
Excepciones:
Clase: Reserva Método: Contar el número de sillas en la reserva.
Signatura
Precondición sobre el objeto:
Precondición sobre los parámetros:
Postcondición sobre el objeto:
Postcondición sobre el retorno:
Excepciones:
Clase: Silla Método: Cambiar el estado de la silla a ocupada.
Signatura
Precondición sobre el objeto:
Precondición sobre los parámetros:
Postcondición sobre el objeto:
Postcondición sobre el retorno:
Excepciones:

9.2 Hoja de Trabajo Nº 2: Un Sistema de Préstamos

Descargue esta hoja de trabajo a través de los siguientes enlaces: Descargar PDF | Descargar Word.

Enunciado. Analice el siguiente enunciado e identifique el mundo del problema, lo que se espera de la aplicación y las restricciones para desarrollarla.

Se quiere construir una aplicación para la Central de Préstamos de la Universidad, la cual se encarga de manejar el préstamo de todos los recursos que la universidad ofrece a sus estudiantes.

Los recursos pueden ser de cualquier naturaleza, se identifican con un código y tienen además un nombre. Los códigos son únicos, pero los nombres pueden repetirse. Cada recurso que se quiera prestar a los estudiantes debe ser registrado en la aplicación. Un recurso se puede prestar sólo si está disponible, es decir que no se ha prestado a otro estudiante.

Un estudiante se identifica por su código, que también es único, y tiene un nombre que eventualmente otro estudiante también podría tener. Para que un estudiante pueda prestar algún recurso debe registrarse. Si el estudiante no está registrado no se le prestará ningún recurso.

Un estudiante se identifica por su código, que también es único, y tiene un nombre que eventualmente otro estudiante también podría tener. Para que un estudiante pueda prestar algún recurso, debe registrarse. Si el estudiante no está registrado, no se le prestará ningún recurso.

La aplicación debe permitir:

  1. Agregar un recurso
  2. Agregar un estudiante
  3. Prestar un recurso disponible
  4. Consultar los préstamos de un estudiante
  5. Consultar la información de un préstamo
  6. Devolver un recurso prestado

Requerimientos funcionales. Especifique los principales requerimientos funcionales que haya identificado en el enunciado

Requerimiento Funcional 1

Nombre
Resumen
Entradas
Resultado

Requerimiento Funcional 2

Nombre
Resumen
Entradas
Resultado

Requerimiento Funcional 3

Nombre
Resumen
Entradas
Resultado

Requerimiento Funcional 4

Nombre
Resumen
Entradas
Resultado

Requerimiento Funcional 5

Nombre
Resumen
Entradas
Resultado

Requerimiento Funcional 6

Nombre
Resumen
Entradas
Resultado

Modelo del mundo. Complete el modelo conceptual con los atributos y constantes de cada clase, lo mismo que las asociaciones entre ellas.

Diagrama UML:CentralPrestamos
Diagrama UML: Estudiante
Diagrama UML: Recurso

Asignación de responsabilidades. Decida, utilizando la técnica del experto, quién debe encargarse de:

¿Quién es el responsable de registrar un nuevo recurso para prestar?
¿Quién es el responsable de registrar a un nuevo estudiante para que pueda pedir recursos?
¿Quién es el responsable de registrar el préstamo de un recurso a un estudiante?
¿Quién es el responsable de registrar la devolución de un recurso prestado?
¿Quién es el responsable de decir si un recurso está disponible o no?

Descomposición de requerimientos funcionales. Indique los pasos necesarios para resolver los siguientes requerimientos y señale, luego de cada paso, quién debería ser el responsable de hacerlo.

Prestar un recurso a un estudiante. 1. Buscar el recurso que se va a prestar. (CentralPrestamos)
2. Validar si el recurso está disponible. (Recurso)
3. Buscar al estudiante a quién se le prestará el recurso. (CentralPrestamos)
4. Asignar el recurso al estudiante. (Recurso)
5. Agregar el recurso a los recursos prestados al estudiante. (Estudiante)
Registrar un nuevo estudiante en la central de préstamos.
Buscar un recurso en la central de préstamos.
Registrar la devolución de un recurso prestado.

Identificación de excepciones. Según los siguientes enunciados, indique qué posibles excepciones se deben manejar. Para ello no haga ninguna suposición sobre los datos de entrada.

Registrar un nuevo recurso en la central de préstamos. a. El código del recurso es inválido.
b. El nombre del recurso es nulo o es una cadena vacía
c. El código del recurso ya ha sido registrado
Retirar un recurso de la lista de re- cursos prestados a un estudiante.

Elaboración de contratos. Para los siguientes métodos, establezca su contrato. Tenga en cuenta la clase en la que se encuentra el método.

Clase: CentralPrestamos Método: Registrar un estudiante en la central de préstamos a partir de su nombre y código.
Signatura void agregarEstudiante(String pNombre, int pCodigo) throws Exception
Precondición sobre el objeto: El vector de estudiantes ha sido inicializado.
Precondición sobre los parámetros: pNombre debe ser diferente de null, pNombre debe ser diferente de la cadena vacía. pCodigo debe ser un código válido.
Postcondición sobre el objeto: Un nuevo estudiante se agrega a la lista de estudiantes de la central con el nombre y el código dados.
Postcondición sobre el retorno: Ninguna.
Excepciones: Si el código ya está registrado en el vector de estudiantes.
Clase: Estudiante Método: Dado el código del recurso, retirar el recurso de la lista de préstamos del estudiante.
Signatura
Precondición sobre el objeto:
Precondición sobre los parámetros:
Postcondición sobre el objeto:
Postcondición sobre el retorno:
Excepciones:
Clase: Recurso Método: Prestarse a un estudiante dado.
Signatura
Precondición sobre el objeto:
Precondición sobre los parámetros:
Postcondición sobre el objeto:
Postcondición sobre el retorno:
Excepciones:
Clase: CentralPrestamos Método: Registrar un nuevo recurso en la central de préstamos a partir de su nombre y código.
Signatura
Precondición sobre el objeto:
Precondición sobre los parámetros:
Postcondición sobre el objeto:
Postcondición sobre el retorno:
Excepciones:
Clase: CentralPrestamos Método: Buscar y retornar un recurso de la central de préstamos a partir de su código.
Signatura
Precondición sobre el objeto:
Precondición sobre los parámetros:
Postcondición sobre el objeto:
Postcondición sobre el retorno:
Excepciones:
Clase: CentralPrestamos Método: Prestar un recurso a un estudiante, a partir de los códigos del estudiante y del recurso.
Signatura
Precondición sobre el objeto:
Precondición sobre los parámetros:
Postcondición sobre el objeto:
Postcondición sobre el retorno:
Excepciones:

results matching ""

    No results matching ""