Está en la página 1de 2

Construcción de Software 2023-1

Tarea Patrones de Diseño


1. Contexto Operacional del Problema
En el escenario que vivió Chile con la contingencia social y posteriormente la pandemia hizo
muy complejo para la población conseguir bienes de consumo, principalmente de primera
necesidad como lo son los medicamentos. Muchas farmacias están desabastecidas o
cerradas, y los permisos para salir son de sólo 4 horas; por ello, salir en busca de medicinas
durante la cuarentena no es trivial.

El Ministerio de Salud, cansado de los condoros de sus autoridades, ha decidido construir


un sistema unificado. Uno de sus componentes es el de Inventario de Medicinas, el cual
consolidará las existencias de medicamentos de todas las farmacias (Cruz Verde,
Salcobrand, Dr. Simi, etc.) en un solo repositorio. De esta forma, los usuarios puedan
ingresar a la aplicación y buscar qué farmacias tienen la medicina que buscan, los precios, y
el stock, entre otros.

Su equipo ha sido seleccionado para el análisis del componente, el cual debe permitir
realizar búsquedas en las bases de datos de todas las marcas de farmacias registradas en el
sistema (al menos 3), cada una de las cuales está poblada con los datos de las sucursales
(dirección, teléfono) y sus existencias de medicamentos. La aplicación debe recuperar y
mostrar al cliente un interfaz configurable que muestre, entre otros, los costos, franquicia,
dirección y teléfono de las sucursales en las que hay existencias de medicinas que coincidan
con el criterio de búsqueda.

Deben permitir filtrar y ordenar los resultados por distintos criterios, como precio, región
y comuna, presentación de la medicina. El usuario “vitrinea” los medicamentos,
agregándolos a su “lista de compras”, la cual puede ser exportada a PDF para fácil
visualización, y contiene al menos el nombre del medicamento en la presentación elegida,
el stock, la farmacia, y la dirección de esta. Asimismo, el sistema debe armar una “ruta
recomendada” para que el usuario realice el viaje lo más rápido posible; de esta forma el
usuario puede salir a conseguir la mayor cantidad de suministros y medicinas en un solo
viaje.

Del lado del sistema, la aplicación debe verificar la cantidad de permisos entregados por
persona; cada usuario no puede sacar más de 7 permisos por día, incluyendo aquellos
permisos no relacionados con medicinas; de ser el caso, la aplicación no debe permitir al
usuario armar la lista de medicinas, sino que debe mostrarle un mensaje de error.

- Considere que el sistema será desarrollado en lenguaje Java por un equipo de 4


personas de productividad promedio 50 (full time); sin embargo, por limitantes de
la empresa de desarrollo, las jornadas de trabajo serán de 6 horas, de lunes a jueves.
La inversión inicial del cliente es de 4,000,000, y se estima que el sistema tendrá un
costo operacional anual de 275,000, un beneficio de 950,000 anuales, y un tiempo
de vida estimado de 5 años.

2. Entregables:
Un único archivo ZIP o RAR, que incluya el PDF o las imágenes de sus diagramas, el cual debe ser
entregado a través de Educandus en una tarea creada específicamente para dicho propósito.

- Su archivo debe tener el prefijo CS201, y todos los archivos .


- Diseño claro de los componentes (diagrama de clases).
- Al menos 5 patrones de diseño si trabajan en parejas, o 3 si trabajan en solitario. Puede
utilizar cualquier patrón, incluso aquellos que no fueron vistos en clase. Por supuesto, estos
patrones deben estar implementados en su programa.
Construcción de Software 2023-1

o Los patrones Singleton, Decorator, Facade, y Command pueden usarse, pero


cuentan como ½ patrón para el conteo final.
o Cada patrón debe ser indicado claramente, mostrando las clases relacionadas en un
diagrama independiente. Además, se debe incluir una justificación de la decisión de
incluir dicho patrón.
o Se valora la creatividad, pero deben sopesar la necesidad de los patrones que usen.

3. Observaciones y recomendaciones
- El trabajo es individual.
- Mantenga el esfuerzo al mínimo necesario; el desarrollo de la tarea no debería superar las
2 horas de trabajo (esto asumiendo usted conoce los conceptos revisados y los aprendizajes
de los ramos prerrequisito).
- Recuerde los pilares de la ingeniería de software!

También podría gustarte