1. Esercitazione UML
TESTO ESERCIZIO
Si vuole creare una app di smart-health chiamata MiaFarmacia, pensata per supportare la gestione delle terapie farmacologiche.
Il sistema deve permettere al paziente di consultare i medicinali che dovrà assumere in futuro e di registrare in un diario i medicinali effettivamente presi. Il caregiver può consultare il diario dei medicinali assunti dai pazienti a cui è associato. Il medico può aggiornare la lista dei medicinali che il paziente dovrà assumere.
Il sistema MiaFarmacia permetterebbe quindi di:
- consentire al paziente di accedere con un account personale;
- permettere al paziente di consultare i medicinali che dovrà assumere in futuro;
- permettere al paziente di registrare in un diario i medicinali effettivamente assunti;
- permettere al caregiver di consultare i medicinali assunti dal paziente;
- permettere al medico di aggiornare la lista dei medicinali che il paziente dovrà assumere;
- conservare le informazioni in un database centralizzato.
Nota: il sistema non ha lo scopo di fornire consigli medici, modificare automaticamente prescrizioni o sostituire il medico.
Il sistema da sviluppare è composto da:
1. App Paziente/Caregiver
La stessa app mobile MiaFarmacia viene utilizzata sia dal Paziente sia dal Caregiver.
Il paziente accede tramite username e password, consulta i medicinali che dovrà assumere in futuro e registra in un diario i medicinali che ha effettivamente preso.
Il caregiver accede tramite username e password e può consultare il diario dei medicinali assunti dai pazienti a cui è associato.
Il caregiver non può modificare la terapia del paziente.
2. WebApp Medico
Il medico accede al sistema tramite una webapp separata rispetto all’app mobile.
Il medico accede tramite username e password, consulta i pazienti a lui assegnati e aggiorna la lista dei medicinali che ciascun paziente dovrà assumere.
Il medico può inoltre consultare il diario dei medicinali assunti dal paziente, in modo da verificare l’aderenza alla terapia.
3. Server API
Il server API rappresenta il componente centrale del sistema.
Riceve richieste dall’app mobile MiaFarmacia e dalla webapp medico, gestisce autenticazione e autorizzazione, verifica il ruolo degli utenti e consente l’accesso solo ai dati autorizzati.
Il server comunica con il database per recuperare, salvare e aggiornare le informazioni relative a utenti, pazienti, terapie, medicinali e diario delle assunzioni.
4. Database
Il database conserva le informazioni necessarie al funzionamento del sistema, inclusi account utente, ruoli, associazioni tra pazienti, caregiver e medici, medicinali prescritti, lista dei medicinali da assumere e diario dei medicinali effettivamente assunti.
Materiale da consegnare
Realizzare la modellazione di alto livello del sistema tramite linguaggio UML.
La consegna deve includere:
1. Use Case Diagram
Realizzare un Use Case Diagram del sistema, accompagnato da una tabella descrittiva dei principali attori e casi d’uso.
2. Activity Diagram
Realizzare un Activity Diagram che rappresenti il flusso generale del sistema, considerando l’interazione partendo dal paziente paziente/caregiver, attraverso app mobile, webapp medico, server API e database.
3. Class Diagram
Realizzare un Class Diagram dei principali oggetti software del sistema.
Il diagramma deve rappresentare le entità principali, i loro attributi, i metodi rilevanti, le associazioni, le molteplicità ed eventuali specializzazioni o enumerazioni.
4. Sequence Diagram
Realizzare un Sequence Diagram che descriva solamente il flusso dal momento in cui il medico aggiorna la lista dei medicinali da assumere fino alla consultazione del diario da parte del caregiver.
5. Documento descrittivo
Preparare un breve documento descrittivo delle principali scelte progettuali, per contestualizzare (se serve) le scelte progettuali evidenziate nei diagrammi.