Está en la página 1de 13

IF6100 ANÁLISIS & DISEÑO DE SISTEMAS 29 DE NOVIEMBRE DEL 2023

EXAMEN PARCIAL II TOTAL DE PUNTOS: 78


CARNÉ-NOMBRE DEL EQUIPO: TIEMPO: 9 HORAS Y 30 MINUTOS
GRUPO #1 VALOR: 20 %
C13527-C11642-C17731-B52431
INDICACIONES
- Lea, con detenimiento, el contenido del examen que se le hizo llegar al correo
electrónico institucional.
- Puede efectuar consultas sólo en los primeros 30 minutos de iniciada la prueba.
- El examen está dividido en dos secciones. La sección A debe resolverla en su
computador y subirla al repositorio de Github según se le indicará. En el caso de las
secciones B y C debe incluir sus respuestas en el presente enunciado y subirlas en
formato PDF a la tarea que se publicó en el entorno virtual del curso en Mediación
Virtual.
- Para la sección B, puede utilizar las herramientas de software que hemos venido
utilizando en el curso, en el proceso de análisis y diseño, pero los artefactos resultantes
debe integrarlos en este documento. Dado que debe anexar imágenes, verifique que
las mismas sean legibles de lo contrario no serán objeto de calificación.
- El examen es a cuaderno abierto y, por ende, puede recurrir al material didáctico,
grabaciones y código que haya desarrollado en el proyecto del curso.
- Es importante que las respuestas que entregue cada equipo se deriven de su
creatividad, de la organización y del trabajo que acuerden como grupo.
- Cuenta con 9 horas y 30 minutos para finalizar la prueba. Se darán 15 minutos
adicionales para subirlo a la plataforma (es decir, a las 11:45 pm se cierra la posibilidad
de entregarlo). Durante estas 9 horas y 45 minutos puede subir sus respuestas en
cualquier momento.

SECCIÓN A - Implementación con base en un diseño

1. En la Figura 1 se le presenta un diagrama de clases, un diagrama entidad-relación y de


seguido una descripción del caso Hamburguesas Chirripó. Estúdielo y efectúe lo que
se le solicita.

1
Figura 1. Modelo de dominio del sistema de control de inventario y ventas de Hamburguesas
Chirripó

2
Figura 2. Modelo de entidad-relación del sistema de control de inventario y ventas de
Hamburguesas Chirripó

Caso Hamburguesas Chirripó:

La empresa Hamburguesas Chirripó desea desarrollar un sistema que le permita monitorear


y registrar cambios en los niveles de inventario de la materia prima que se derivan de las
ventas de sus productos y de la compra a sus proveedores. Para ello, se elaboró el modelo
de dominio y el entidad-relación que se muestran en las figuras 1 y 2, respectivamente.

En este contexto, como puede observarse en la figura 1, la entidad de negocio central es


ItemInventario, la cual contiene el atributo cantidadEnExistencia que se incrementa cuando
se produce una compra (observe el atributo cantidadComprada en la clase ItemCompra).
Por otro lado, para cada producto se mantiene la clase DetallePreparaciónProducto que
contiene la cantidad requerida del ItemInventario para poder elaborarse (recuérdese que
se están vendiendo hamburguesas y se requiere materia prima para la preparación). Así,
cada vez que se efectúa una venta, el atributo cantidadEnExistencia de un ItemInventario
se decrementará, automáticamente, según la cantidad de ingrediente utilizado para cada
producto presente en la venta (observe el atributo cantidadUsadaIngrediente en la clase
DetallePreparacionProducto).

3
1a) Creación del repositorio del examen
➢ Asegúrese de haber iniciado sesión en Github
➢ Diríjase al enlace https://classroom.github.com/a/_YUixE27
➢ Observará que se le solicita aceptar una asignación. Ver Figura 3
➢ Al aceptar la invitación se le mostrará una pantalla en la que se le indica “You’re
ready to go!”. Copie la URL que se le despliega de la asignación. Ver Figura 4.

Figura 3. Pantalla de aceptación de la asignación examen parcial 2

4
Figura 4. Pantalla de la URL personal del examen

➢ Desde la consola de comandos, ubíquese en el directorio de trabajo de su


preferencia. Proceda a clonar el repositorio de acuerdo con su URL. Asegúrese
de pegar a URL en el comando siguiente
git clone [URL]
➢ Proceda a abrir el proyecto y a codificar lo que se le solicita

1b) (3 ptos) En su repositorio local cree una rama nueva. Nómbrela examen2-carné1-
carné2-branch. Proceda a ubicarse en esta rama y a efectuar lo que se le solicita a
continuación

1c) Utilizando Laravel(PHP), implemente las siguientes clases de la Figura 1. Defina cada
clase(Modelo), sus migraciones y relaciones entre si.

Clase

5
Cliente (2 ptos)
Venta (3 ptos)
ItemVenta (2 ptos)
Producto (3 ptos)
DetallePreparacionProducto (2 ptos)
Proveedor (2 ptos)
Compra (4 ptos)
ItemCompra (2 ptos)
ItemInventario (2 ptos)

1d) (5 puntos) Proceda a crear la base de datos a través de la migraciones de laravel.

Puede utilizar SQlite o Mysql como motor de base de datos:

1e) (15 ptos) Desarrolle un controlador que ejecute el método insertar(store), así como
su respectiva ruta en el archivo de web.php de la carpeta routes. Se le evalúa que el
método haga un manejo de transacciones por cuanto se debe insertar 1 registro en
la tabla venta, ‘n’ registros en la tabla item_venta y actualizar el valor del campo
cantidad_en_existencia de la tabla item_inventario al decrementarlo en la cantidad
de ingredientes usados por cada producto incluido en la venta recibida (respecto a
esto último de considerar que para elaborar un producto se requieren múltiples
ingredientes).

1f) (5 ptos) Efectúe una clase de prueba unidad en el que demuestre que el método
insertar del controlador creado inserta una venta en su base de datos y actualiza el
inventario de la empresa en el momento de la venta. Se le evalúa que la prueba
contenga un ‘assert’ al menos y que se efectúe la inserción y actualización en las
tablas correspondientes en la base de datos.
1g) (3 puntos) Debe subir los cambios a la rama examen2-carné1-carné2-branch, del
repositorio de su equipo en Github.

SECCIÓN B - Análisis y Diseño

2. Con base en el planteamiento y las descripciones de casos uso que se le presentan a


continuación, efectúe lo que se le solicita.

Caso de Biblioteca Pública:

6
Suponga que una biblioteca pública le contrata como analista de sistemas para que le
desarrolle un nuevo sistema de información para préstamo y reservación. Los principales
requerimientos se describen a continuación:
■ Las personas usuarias, que estén registradas en el sistema, pueden efectuar
préstamos de libros y revistas (conocidos como títulos).
■ El sistema deberá, de forma periódica, chequear (al menos una vez por semana) si
la copia de un libro o una revista prestados a una persona usuaria se encuentra en
estado retrasado. Si fuese así, se enviará, vía correo electrónico, una notificación a
la persona usuaria.
■ Una persona usuaria puede reservar un libro o revista (conocido como títulos) que
haya sido prestado a otra persona. La reservación debe cancelarse en el momento
que la persona usuaria hace el préstamo del libro o si decide hacer una cancelación
formal de la reservación.
■ Para cada libro se deberá guardar el título, autores, año de publicación, el isbn y el
número de título. Es importante aclarar que cada vez que la biblioteca compra un
libro o una revista, adquiere dos o más ejemplares (copias). En el caso de las
revistas, se desea almacenar el título de la revista, el volumen, el número, el año de
publicación y la fecha en que se publicó.
■ Para cada copia de los títulos (libros o revistas) interesa conservar el número de
copia y la cantidad de días de préstamo máximo.
■ Para las personas usuarias interesa conocer el número de usuario, nombre,
apellidos, dirección, teléfono, fecha de inscripción, fecha de expiración, correo
electrónico.
■ En el caso de los préstamos, además, de los datos del usuario y de la copia prestada,
debe almacenarse la fecha de préstamo, fecha de devolución y la fecha de retorno.
■ Para las reservaciones debe poderse identificar la persona usuaria que hizo el
préstamo, el título de interés (libros o revistas) y la fecha en que se hizo la
reservación.

A continuación se le proveen dos casos de uso asociados a este sistema:

UC-001 Realizar un préstamo de un libro o una revista

Actor(es) Principal: Persona Usuaria

Flujo de No. Descripción del paso


eventos
básicos
FP1 El inicio del caso de uso se produce cuando la persona usuaria digita
su número de usuario y contraseña para ingresar al sistema, para lo
cual el sistema valida dichas credenciales

7
FP2 La persona usuaria busca el libro o la revista que desea solicitar en
préstamo. El sistema le presenta los resultados de búsqueda.

FP3 La persona usuaria revisa los resultados que le presenta el sistema


para ver los datos del título que busca. La persona usuaria localiza la
copia del libro o revista en los anaqueles con base en el número que
le facilitó el sistema en los resultados de búsqueda

FP4 La persona procede a escanear su carné de la biblioteca y el código


de barras que aparece en el libro. El sistema verifica que los criterios
de préstamo estén correctos.

FP5 El sistema procede a crear un préstamo con la información de la


copia y de la persona usuaria. El tiempo de préstamo lo calcula con
los datos de la copia.

FP6 El sistema verifica si la copia había sido reservada previamente por la


persona usuaria y procede a cancelar la reservación.

FP7 El sistema envía una notificación de correo con los datos del
préstamo. El caso de uso finaliza

Flujos No. Descripción del paso


alternos
FA1 En el paso FP1, el sistema detecta que el número de usuario o clave
es inválido. El caso de uso continúa en el paso FP1.

FA2 En el FP2, el sistema no encuentra un título con el criterio de


búsqueda. El caso de uso continúa en el FP2.

FA3 En el FP5, el sistema detecta que la persona está retrasada en la


devolución y le sugiere a la persona usuaria que efectúe la
devolución antes de proceder con el préstamo. El caso de uso
finaliza.

UC-002 Agregar un nuevo título a la colección

Actor(es) Principal: Funcionario(a) de la biblioteca

No. Descripción del paso

8
Flujo de FP1 El caso de uso inicia cuando el funcionario(a) ingresa su número de
eventos usuario y contraseña para iniciar la sesión en el sistema, para lo cual
básicos el sistema valida dichas credenciales

FP2 El actor procede a seleccionar la opción “registrar nuevo título”.

FP3 El sistema le presenta un formulario en el que le solicita la


información del título (libro o revista por ingresar). El actor
selecciona ingresar un libro y procede a digitar el título, autores, año
de publicación, el isbn y el número de título

FP4 El sistema le permite ingresar los números de copia asociados al


título (libro o revista) así como la cantidad de días de préstamo
máximo. El actor procede a salvar el título.

FP5 El sistema procede a guardar los datos del título y de las copias
registradas. El caso de uso finaliza.

Flujos No. Descripción del paso


alternos
FA1 En el paso FP1, el sistema detecta que el número de usuario o clave
es inválido. El caso de uso continúa en el paso FP1.

FA2 En el paso FP5, el sistema detecta que el nombre del título ya existe.
El caso de uso continúa en el FP3.

FA3 En el FP3, el actor indicó que desea ingresar una revista. El sistema
le presenta un formulario para que ingrese el título de la revista, el
volumen, el número, el año de publicación y la fecha en que se
publicó. El caso de uso continúa en FP4.

9
2a) (15 puntos) Desarrolle un diagrama de clases, en el que muestre las clases
relevantes, atributos y asociaciones expuestas tanto en el Caso Biblioteca Pública
como en los casos de uso asociados. Se le califica que el modelo propuesto refleje
las entidades de negocio que estén involucradas así como los atributos, las
asociaciones, roles y multiplicidades. Considere, que se debe representar un
modelo que refleje entidades como reservaciones, préstamos, notificaciones y
demás requerimientos indicados en el caso.

10
SECCIÓN C - diagrama de secuencia

3. (10 ptos) Suponga que se desea modelar un diagrama de secuencia para el caso de uso
UC-001 “Realizar un préstamo de un libro o una revista”, en un ambiente basado en
ventanas. Elabore un diagrama de secuencia atendiendo el flujo de eventos. Se le
evalúa el uso correcto de la notación UML y las buenas prácticas vistas en el curso con
respecto a este tipo diagramas; además, deben aparecer en su diagrama clases tipo
control, entidad y frontera y creación de objetos cuando sea necesario.

Diagrama de Secuencia.

11
12
Diagrama de Clases

13

También podría gustarte