SOLID GoF desing-pattern intercepting-filter java UML
Septiembre 2019
En Palma ha comenzado a operar una nueva start-up que promueve el uso compartido de coches eléctricos.
Un vez que un usuario/a se da de alta en el sistema, la empresa proporciona una aplicación para el móvil llamada mollapp que permite acceder a los coches que la empresa y los usuarios/as estacionan en diversos lugares de Palma.
Cuando una persona quiere utilizar uno de los vehículos, la aplicación del móvil envía una petición al sistema, que solicita su autenticación con el nombre del usuario/a, y el sistema autoriza el acceso al coche. Después, el sistema envía al vehículo la señal inalámbrica de abrir la puerta del vehículo.
Construye la arquitectura del sistema de tal manera que la app móvil solicite las dos comprobaciones especificadas al sistema, que estas sean ejecutadas por el sistema y que este envíe la señal de abrir la puerta del vehículo, teniendo en cuenta que:
Dado que se trata de una start-up, el producto se encuentra en desarrollo, motivo por el cual, en cuestión de semanas, nuevas tareas serán implementadas en el sistema y serán exigidas a la app móvil. Además, la intención es conectar el sistema a otras aplicaciones cliente. También se quiere extender el negocio a bicicletas y patinetes. Diseña su solución de tal manera que añadir nuevas tareas, nuevas apps clientes y/o nuevos vehículos, resulte posible sin modificar la estructura del sistema y el código.
El script principal ha de producir la siguiente salida por consola:
Autenticación OK para Francesc
Autorización OK para Francesc
Puerta abierta Francesc!
Construye la aplicación según la arquitectura que se representa en el diagrama de clases UML de la figura que se proporciona. Al final del examen tendrás que añadir nuevos componentes al diagrama. Pon tu nombre y devuélvemela al finalizar el examen.
Respeta los nombres de todos los componentes, métodos y propiedades que se indican.
.gitignore
.App.java
. Utilízala como guía en el proceso TDD. No puedes modificar su código, pero sí puedes comentar aquellas partes que aun no hayas implementado.Realiza un push al repo remoto en GitHub SÓLO cuando hayas terminado el proyecto si el proyecto es público.
Si se trata de un repo privado, compártelo con el usuario dfleta.
Intenta que la salida del programa sea lo más parecida posible a las imágenes que se proporcionan.
Las historias de usuario están enunciadas en el script principal App.java
Utiliza este script para guiar el desarrollo del diagrama de clases UML.
La salida de este script es la siguiente:
Autenticación OK para Francesc
Autorización OK para Francesc
Puerta abierta Francesc!
Garantiza que tu solución satisfaga los 5 principios SOLID: