Requirements Analysis Document
PHARMAGC
Requirements Analysis Document
Team OGC
Buffa Alexandro
Cascio Alessandra
Giambrone Simone
Miccichè Vincenzo
INDICE
Definizioni, acronimi e abbreviazioni del Sistema
Casi d'Uso: Comportamenti Speciali
Casi d’Uso: Gestione Produzione
Gestione Produzione e Gestione Ordini (Azienda)
Gestione Account - Registrazione
Gestione Account - Autenticazione
Gestione Account - Modifica Password
Gestione Account - Recupero Credenziali
Gestione Farmaci - Carico Merci
Gestione Farmaci - Cerca Farmaco
Gestione Farmaci - Controllo Caricamento Merci
Gestione Farmaci - Modifica Ordine Periodico
Gestione Farmaci - Ordine Periodico
Gestione Farmaci - Scarico Merci
Gestione Farmaci - Ordina Farmaco
Gestione Farmaci - Visualizza Ordini Farmacia
Gestione Farmaci - Modifica Ordine
Gestione Consegna - Firma Consegna
Gestione Consegna - Visualizza Consegne
Gestione Produzione - Aggiornamento Scorte Farmaci
Gestione Produzione - Modifica Produzione Scorte
Gestione Ordini - Correzione Ordini
Gestione Ordini - Visualizza Ricevuta
Gestione Ordini - Visualizza Ordini Azienda
Interfaccia Principale [tipo=Farmacista]
Pannello Avviso Mancato Caricamento Merci
Interfaccia Modifica Ordini Periodici
Interfaccia Principale [tipo=Corriere]
Interfaccia Principale [tipo=Impiegato]
Interfaccia Modifica Produzione
L'obiettivo del Sistema è quello di gestire le informazioni, la produzione, lo stoccaggio e la distribuzione di farmaci dell’azienda farmaceutica a una catena di farmacie affiliate. Il fine è pertanto quello di agevolare la comunicazione e l’interazione tra l’azienda e le farmacie.
Gli utenti che possono utilizzare le funzioni del sistema sono di tre tipi: Impiegato, Farmacista e Corriere. In particolare, un Impiegato si occupa di correggere, visualizzare gli ordini e le rispettive ricevute di consegna e può, inoltre, modificare la produzione di farmaci. Un Farmacista può ordinare farmaci da banco e non ed effettuare il carico e lo scarico di farmaci. Un Corriere, invece, si occupa di consegnare i colli alle farmacie e far firmare le distinte di spedizione.
Termine |
Significato |
Persona |
Generico individuo che utilizza il Sistema, autenticato e non. Secondo tale definizione Persona e Utente sono utilizzati come sinonimi. |
Impiegato |
Utilizzatore autenticato del Sistema che lavora in Azienda. |
Farmacista |
Utilizzatore autenticato del Sistema che lavora in Farmacia. |
Corriere |
Utilizzatore autenticato del Sistema che lavora per l’azienda e che ha il compito di far arrivare i colli a destinazione e far firmare la distinta di spedizione. |
Account |
Insieme di dati che identificano una Persona autenticata all’interno del sistema durante una sessione di utilizzo. |
Credenziali |
Insieme di dati necessari alla Persona per autenticarsi. In particolare formate da due elementi:
|
DBMS Azienda |
Sistema di Gestione Dati dell'Azienda. Tiene traccia degli ordini, della produzione e di dati e credenziali di Impiegati e Corrieri. |
DBMS Farmacie |
Sistema di Gestione Dati della catena di farmacie. Tiene traccia degli ordini, delle scorte e di dati e credenziali dei Farmacisti. |
Farmaco da Banco
|
Farmaco che viene ordinato sia con cadenza settimanale, che opzionalmente su richiesta. |
Farmaco non da Banco |
Farmaco che può essere ordinato soltanto su richiesta del Farmacista. |
Collo |
Pacco contenente un insieme di ordini con la medesima data di consegna e la medesima farmacia di destinazione.
|
Ordine |
Richiesta di un farmaco da parte di una farmacia all'azienda. Ogni ordine è identificato dal farmaco, dalla farmacia da cui è stato creato, dalla quantità e dalla data di consegna. |
Stato di un ordine |
Dà informazioni sull'ordine al momento dell'osservazione. Di seguito i possibili stati di un ordine:
|
Di seguito sono illustrate le interfacce che presentano le funzionalità principali del software:
Supponiamo che non esista alcun sistema informatizzato preesistente in uso dall’azienda.
Il sistema prevede tre diverse tipologie di utenti che possono interfacciarsi con esso mediante una serie di funzionalità che descriviamo di seguito:
Le funzionalità relative a Farmacista sono:
Le funzionalità relative a Impiegato sono:
Le funzionalità relative a Corriere sono:
Le funzionalità comuni ai tre tipi di utente sono:
I tre dispositivi non comunicano direttamente tra loro, ma solo con due database: il primo relativo alla Farmacia, il secondo all’Azienda.
Il sistema deve garantire il servizio in ogni momento. Inoltre per garantire sicurezza agli utenti, le password vengono memorizzate in maniera cifrata.
Si premette che nei casi d’uso elencati di seguito è presente, in ogni interfaccia, il tasto "chiudi finestra", mediante il quale un utente può tornare alla finestra precedente.
Inoltre si suppone che per ogni interrogazione ad uno dei DBMS corrisponda sempre una risposta dallo stesso. L’eventuale assenza di risposta, o la ricezione di una risposta non prevista o di un errore generico porterà all'invocazione del caso d’uso speciale "Errore comunicazione DBMS".
Persona |
Generico individuo che utilizza il Sistema, autenticato e non. Secondo tale definizione Persona e Utente sono utilizzati come sinonimi. |
Impiegato |
Utilizzatore autenticato del Sistema che lavora in Azienda. |
Farmacista |
Utilizzatore autenticato del Sistema che lavora in Farmacia. |
Corriere |
Utilizzatore autenticato del Sistema che lavora per l’Azienda. |
DBMS Azienda |
Sistema di Gestione Dati dell'Azienda. Tiene traccia degli ordini, della produzione e di dati e credenziali di Impiegati e Corrieri. |
DBMS Farmacie |
Sistema di Gestione Dati della catena di farmacie. Tiene traccia degli ordini, delle scorte e di dati e credenziali dei Farmacisti. |
Tempo |
Attore che rappresenta il passare del tempo e che agisce all’interno dei casi d’uso in cui sono presenti delle condizioni temporali. |
Nella seguente immagine viene mostrata la vista d'insieme del sistema proposto:
Gestione Account
All'interno del macro caso d'uso Gestione Account troviamo tutte le funzionalità che riguardano la gestione di un account. Una Persona non autenticata può accedere al proprio account, registrarsi o recuperare la password, mentre un Utente già autenticato può modificare la propria password.
Gestione Farmaci
All'interno del macro caso d'uso Gestione Farmaci troviamo tutte le funzionalità riservate ad un Farmacista, tra le quali ritroviamo le funzioni che servono per visualizzare gli ordini, cercare e ordinare un farmaco da banco e non, caricare e/o scaricare la merce e modificare gli ordini periodici e non. È previsto inoltre un avviso di mancato caricamento merci alle 20:00 del giorno di consegna.
Gestione Consegna
All’interno del macro caso d’uso Gestione Consegna troviamo le funzionalità che riguardano la consegna dei colli da parte del Corriere alle varie Farmacie, in particolare un Corriere può visualizzare le consegne da effettuare e può far firmare la distinta di spedizione al Farmacista a cui sta consegnando un collo.
Gestione Ordine
All’interno del macro caso d’uso Gestione Ordine troviamo le funzionalità che riguardano la gestione degli ordini da parte di un Impiegato, in particolare un impiegato può visualizzare gli ordini, può correggerli nel caso in cui siano stati segnalati problemi da parte di un Farmacista e può visualizzare la ricevuta di consegna collo relativa a un ordine.
Gestione Produzione
All’interno del macro caso d’uso Gestione
Produzione troviamo le funzionalità che riguardano la gestione della
produzione di farmaci da parte dell’azienda farmaceutica. È prevista la possibilità di
modificare manualmente, da parte di un impiegato, la quantità di farmaci prodotti.
Inoltre
è previsto che il Sistema aggiorni le scorte dell’Azienda quando vengono prodotti nuovi
lotti.
Di seguito vengono elencati i casi d’uso riguardanti il comportamento del Sistema, sia in situazioni particolari, come un errore di comunicazione con uno dei DBMS, sia durante il suo corretto funzionamento.
Errore comunicazione DBMS
Il seguente Caso d'Uso descrive situazioni di errore che possono verificarsi durante il normale flusso degli eventi di quei casi d'uso che richiedono una comunicazione con uno qualunque dei DBMS.
Nome caso d’uso |
Errore Comunicazione DBMS |
ID |
DBMSERROR |
Attori |
Persona, DBMS Azienda, DBMS Farmacie |
Precondizioni |
Il Sistema non è riuscito a connettersi con il DBMS o ha ricevuto un errore generico |
Flusso di eventi |
|
Postcondizioni |
Il Sistema ha mostrato a video la schermata precedente. |
Autenticazione
Il seguente caso d’uso permette a una Persona di accedere al suo Account da Farmacista con le sue credenziali interrogando il DBMS Farmacie.
Il flusso degli eventi corrisponde al caso d'uso che permette a una Persona di accedere al suo Account da Impiegato o Corriere con le sue credenziali interrogando il DBMS Azienda.
Nome caso d’uso |
Autenticazione |
ID |
LOGIN |
Attori |
Persona, DBMS Farmacie (DBMS Azienda) |
Precondizioni |
Il Sistema ha mostrato a video il ModuloLogin. |
Flusso di eventi |
|
Registrazione
Il seguente caso d’uso permette a una Persona di registrare un nuovo account da Farmacista all’interno del Sistema interrogando il DBMS Farmacie.
Il Flusso degli eventi coincide con il caso d'uso che permette ad una Persona di registrare un nuovo account da Impiegato/Corriere all'interno del Sistema interrogando il DBMS Azienda
Nome caso d’uso |
Registrazione |
ID |
SIGNUP |
Attori |
Persona, DBMS Farmacie (DBMS Azienda) |
Precondizioni |
Il Sistema ha mostrato a video il ModuloLogin. |
Flusso di eventi |
|
Postcondizioni |
Il Sistema ha aggiornato il DBMS Farmacie (DBMS Azienda) con il nuovo account registrato e ha mostrato il ModuloLogin. |
Recupera Credenziali
Il seguente caso d'uso permette di recuperare la propria password dal DBMS Farmacie qualora la Persona non riesca ad accedere al suo account.
Il Flusso degli eventi coincide con il caso d'uso che permette di recuperare la propria password dal DBMS Azienda qualora la Persona non riesca ad accedere al suo account
Nome caso d’uso |
Recupera Credenziali |
ID |
RECOVERCRED |
Attori |
Persona, DBMS Farmacie (DBMS Azienda) |
Precondizioni |
Il Sistema ha mostrato a video il ModuloLogin. |
Flusso di eventi |
|
Postcondizioni |
Il Sistema ha mostrato a video il ModuloLogin. |
Modifica Password
Il seguente caso d’uso permette a una Persona di modificare la password del proprio account da Farmacista interrogando il DBMS Farmacie.
Il Flusso degli eventi coincide con il caso d'uso che permette a una Persona di modificare la password del proprio account da Impiegato/Corriere interrogando il DBMS Azienda.
Nome caso d’uso |
Modifica Password |
ID |
EDITPWD |
Attori |
Persona, DBMS Farmacie, DBMS Azienda |
Precondizioni |
Il Sistema ha mostrato a video l’InterfacciaPrincipale. |
Flusso di eventi |
|
Postcondizioni |
La Password è stata modificata e salvata nel DBMS Farmacie (DBMS Azienda) e il Sistema ha mostrato a video l’InterfacciaPrincipale. |
Cerca Farmaco
Il seguente caso d'uso permette di cercare un farmaco per nome e/o principio attivo.
Nome caso d’uso |
Cerca Farmaco |
ID |
SUPPLYSEARCH |
Attori |
Farmacista, DBMS Farmacie, DBMS Azienda |
Precondizioni |
Il Sistema mostra a video l’InterfacciaPrincipale del Farmacista. |
Flusso di eventi |
|
Visualizza Ordini Farmacia
Il seguente caso d'uso permette di visualizzare a schermo la lista di tutti gli ordini effettuati dal Farmacista.
Nome caso d’uso |
Visualizza Ordini Farmacia |
ID |
VIEWORDERSF |
Attori |
Farmacista, DBMS Azienda |
Precondizioni |
Il Sistema mostra a video l’InterfacciaPrincipale relativa al Farmacista. |
Flusso di eventi |
|
Postcondizioni |
Il Sistema ha mostrato a video l’interfaccia di visualizzazione ordini. |
Ordina Farmaco
Il seguente caso d'uso permette di ordinare uno specifico farmaco selezionando la quantità e la data di consegna scelta.
Nome caso d’uso |
Ordina Farmaci |
ID |
SUPPLYORDER |
Attori |
Farmacista, DBMS Azienda |
Precondizioni |
Il Sistema mostra a video la schermata di ricerca farmaco. |
Flusso di eventi |
|
Postcondizioni |
Il Sistema ha aggiornato il DBMS Azienda e ha mostrato a video la schermata di ricerca farmaci. |
Modifica Ordine
Il seguente caso d'uso permette di modificare la quantità del farmaco ordinato, modificare la data di consegna o annullare un ordine, se e solo se intercorrono almeno due giorni tra la data odierna e la data di consegna prevista.
Nome caso d’uso |
Modifica Ordine |
ID |
EDITORDER |
Attori |
Farmacista, DBMS Azienda |
Precondizioni |
Il Sistema mostra a video la schermata di Visualizzazione Ordini e l'apposito tasto di modifica, relativo all’ordine che si vuole modificare. |
Flusso di eventi |
|
Postcondizioni |
Il Sistema ha comunicato gli aggiornamenti al DBMS Azienda e ha mostrato a video l'interfaccia di visualizzazione ordini. |
Ordine Periodico
Il seguente caso d'uso consente di ordinare periodicamente i farmaci da banco previo accordo dell'azienda con la specifica farmacia.
Nome caso d’uso |
Ordine Periodico |
ID |
PERIODICORDER |
Attori |
Tempo, DBMS Azienda |
Flusso di eventi |
|
Postcondizioni |
Gli ordini periodici sono stati aggiunti al DBMS Azienda. |
Modifica Ordine Periodico
Il seguente caso d’uso consente al Farmacista di poter modificare la quantità di farmaci da banco ordinati periodicamente dalla sua Farmacia.
Nome caso d’uso |
Modifica Ordine Periodico |
ID |
EDITPERIODICORDER |
Attori |
Farmacista, DBMS Azienda |
Precondizioni |
Il Sistema ha mostrato a video l’InterfacciaPrincipale relativa al Farmacista. |
Flusso di eventi |
|
Postcondizioni |
Il Sistema ha aggiornato il DBMS Azienda con la nuova quantità per tutti gli ordini periodici relativi a quel farmaco da parte della Farmacia che ha effettuato la richiesta e ha mostrato a video l’InterfacciaPrincipale. |
Carico Merci
Il seguente caso d’uso permette al Farmacista di caricare i farmaci che sono stati consegnati in una determinata data.
Nome caso d’uso |
Carico Merci |
ID |
SUPPLYLOAD |
Attori |
Farmacista, DBMS Farmacie, DBMS Azienda |
Precondizioni |
Il Sistema ha mostrato a video l’interfaccia di visualizzazione ordini. |
Flusso di eventi |
|
Postcondizioni |
Il Sistema ha aggiornato le scorte nel DBMS Farmacie e ha mostrato a video l’interfaccia di Visualizzazione Ordini. |
Requisiti speciali |
La data di consegna dell’ordine coincide con la data odierna. |
Scarico Merci
Il seguente caso d’uso permette al farmacista di scaricare i Farmaci che vende durante la giornata.
Nome caso d’uso |
Scarico Merci |
ID |
SUPPLYUNLOAD |
Attori |
Farmacista, DBMS Farmacie |
Precondizioni |
Il Sistema mostra a video l’InterfacciaPrincipale del Farmacista. |
Flusso di eventi |
|
Postcondizioni |
Il Sistema ha mostrato a video l’InterfacciaPrincipale del Farmacista. |
Controllo Caricamento Merci
Il seguente caso d’uso controlla se gli ordini consegnati in data odierna sono stati caricati correttamente e mostra un avviso in caso contrario, permettendo al Farmacista di caricarli. È prevista inoltre la possibilità di segnalare un problema qualora la quantità di farmaci ricevuti non dovesse coincidere con quelli ordinati.
Nome caso d’uso |
Controllo Caricamento Merci |
ID |
DAILYLOADCHECK |
Attori |
Tempo, Farmacista, DBMS Azienda, DBMS Farmacie |
Flusso di eventi |
|
Visualizza Consegne
Il seguente caso d’uso consente al Corriere di visualizzare i colli da evadere in data odierna.
Nome caso d’uso |
Visualizza Consegne |
ID |
SHIPMENTVIEW |
Attori |
Corriere, DBMS Azienda |
Precondizione |
Il Sistema ha mostrato a video l’InterfacciaPrincipale relativa al Corriere. |
Flusso di eventi |
|
Postcondizioni |
Il Sistema ha mostrato a video la lista dei colli da consegnare in data odierna. |
Firma Consegna
Il seguente caso d’uso consente al Corriere di far firmare al Farmacista la distinta di spedizione specifica per un collo.
Nome caso d’uso |
Firma Consegna |
ID |
SHIPMENTSIGN |
Attori |
Corriere, Farmacista, DBMS Azienda |
Precondizioni |
Il Sistema ha mostrato a video la lista dei colli. |
Flusso di eventi |
|
Postcondizioni |
Lo stato degli ordini appartenenti al collo è stato modificato in “Consegnato”. |
Visualizza Ricevuta
Il seguente caso d’uso consente all’Impiegato di generare una ricevuta per certificare l’avvenuta consegna di un Collo.
Nome caso d’uso |
Visualizza Ricevuta |
ID |
CREATEPDF |
Attori |
Impiegato, DBMS Azienda |
Precondizioni |
Il Sistema ha mostrato a video la schermata di Visualizzazione Ordini |
Flusso di eventi |
|
Postcondizioni |
Il Sistema ha mostrato a video la schermata di Visualizzazione Ordini. |
Visualizza Ordini Azienda
Il seguente caso d’uso consente all’Impiegato di visualizzare gli ordini.
Nome caso d’uso |
Visualizza Ordini Azienda |
ID |
VIEWORDERSA |
Attori |
Impiegato, DBMS Azienda |
Precondizioni |
Il Sistema mostra a video l'InterfacciaPrincipale dell’Impiegato. |
Flusso di eventi |
|
Postcondizioni |
Il Sistema ha mostrato a video la lista degli ordini. |
Correzione Ordine
Il seguente caso d’uso consente all’Impiegato di correggere gli ordini per i quali sono stati segnalati dei problemi da parte di un Farmacista.
Nome caso d’uso |
Correzione Ordine |
ID |
ORDERFIX |
Attori |
Impiegato, DBMS Azienda |
Precondizioni |
Il Sistema ha mostrato a video l'interfaccia di visualizzazione ordini in cui è presente almeno un ordine con stato "da verificare". |
Flusso di eventi |
|
Postcondizioni |
Il DBMS Azienda non presenta più incongruenze e lo stato dell’ordine è stato modificato in “corretto”. |
Aggiornamento Scorte Farmaci
Il seguente caso d'uso permette al sistema di incrementare le scorte dell'azienda in base ai farmaci prodotti.
Nome caso d’uso |
Aggiornamento Scorte Farmaci |
ID |
UPDATESUPPLY |
Attori |
Tempo, DBMS Azienda |
Flusso di eventi |
|
Postcondizioni |
Il Sistema ha aggiornato la quantità di farmaci disponibili. |
Modifica Produzione
Il seguente caso d’uso permette all’impiegato di modificare manualmente la produzione di farmaci prodotti.
Nome caso d’uso |
Modifica Produzione |
ID |
EDITPROD |
Attori |
Impiegato, DBMS Azienda |
Precondizioni |
Il Sistema ha mostrato a video l’InterfacciaPrincipale dell’Impiegato. |
Flusso di eventi |
|
Postcondizioni |
Il Sistema ha aggiornato la quantità di farmaci che verranno prodotti. |
Si riporta di seguito un elenco degli oggetti presenti all’interno del sistema, suddivisi per tipologia:
All'interno di tutti i macro casi d'uso sono presenti i seguenti oggetti boundary:
All'interno del macro caso d'uso Gestione Account sono presenti i seguenti oggetti boundary:
All'interno del macro caso d'uso Gestione Farmaci sono presenti i seguenti oggetti boundary:
All'interno del macro caso d'uso Gestione Consegna sono presenti i seguenti oggetti boundary:
All'interno del macro caso d'uso Gestione Produzione sono presenti i seguenti oggetti boundary:
All'interno del macro caso d'uso Gestione Ordini sono presenti i seguenti oggetti boundary:
Gestione Farmaco:
Gestione Consegna:
Gestione Produzione:
Gestione Ordini:
Per una maggiore leggibilità si è deciso di dividere il diagramma delle classi in più sottodiagrammi, riportati di seguito:
Si premette che tutte le interfacce mock-up del Sistema sono state realizzate in fase di progettazione usando JavaFX Scene Builder, quindi potrebbero esserci delle variazioni rispetto al prodotto finale.
Pannello Avviso Disponibilità