Object Design Document


 

PHARMAGC 

Object Design Document

Team OGC

Buffa Alexandro

Cascio Alessandra

Giambrone Simone

Miccichè Vincenzo


Indice

Introduzione

Object design trade-offs

Linee guida per la documentazione delle interfacce

Linee guida per la documentazione dei DBMS

Linee guida per la documentazione dell’invio Mail

Linee guida per la documentazione della creazione della ricevuta di consegna

Packages

com.ogc.pharmagcode

org.mariadb.jdbc

javafx

java

com.itextpdf

Object Design UML:

Entity

Utils:

Common:

GestioneFarmaci.Interface:

GestioneFarmaci.Control:

GestioneAzienda.Interface:

GestioneAzienda.Control:

GestioneCorriere.Interface:

GestioneCorriere.Control:

Autenticazione.Interface:

Autenticazione.Control:


Introduzione

Object design trade-offs

Per la realizzazione del Sistema si è scelto di usare un approccio modulare per favorire la scalabilità, la facilità di implementazione e la gestione di eventuali problemi.

In particolare è stata utilizzata un’architettura di tipo Repository, che garantisce il disaccoppiamento dei sottosistemi, i quali possono comunicare solo con il sottosistema di Storage, ma non tra loro. A loro volta i sottosistemi sono composti da un’interfaccia utente che comunica solo con il controllore sottostante, che contiene la logica del programma e che gestisce le richieste da rivolgere al sottosistema DBMSDaemon, che gestisce le comunicazioni al nodo di Storage. L’interfaccia utente, il controllore e il DBMSDaemon di ogni sottosistema risiedono sullo stesso nodo, mentre il sottosistema di Storage risiede su un nodo diverso.

Linee guida per la documentazione delle interfacce

Per quanto riguarda le interfacce grafiche si è scelto di usare il pacchetto di librerie JavaFX, che ci ha permesso di realizzare le interfacce grafiche attraverso documenti di marcatura FXML.

JavaFX è un pacchetto di librerie component-based, ciò permette quindi di avere una grande riusabilità del codice, oltre a una maggiore leggibilità in fase di scrittura.

Più in particolare, per la realizzazione delle interfacce grafiche del Sistema è stato usato JavaFX Scene Builder, un tool per la creazione di documenti di marcatura FXML che sfrutta un sistema drag-and-drop.


Linee guida per la documentazione dei DBMS

Per quanto riguarda i DBMS, si è scelto di usare un modello relazionale gestito tramite MariaDB.

MariaDB è un sistema di gestione di Database relazionali, derivato da MySQL.

Per la comunicazione tra il Sistema e il DBMS si è scelto di usare JDBC (Java DataBase Connectivity).

JDBC è un connettore e un driver per database che consente l'accesso e la gestione della persistenza dei dati sulle basi di dati da qualsiasi programma scritto con il linguaggio di programmazione Java, indipendentemente dal tipo di DBMS utilizzato.

Linee guida per la documentazione dell’invio Mail

Per quanto riguarda le Mail, si è scelto di usare un indirizzo di posta elettronica fornito da Google ed un servizio offerto dallo stesso per l'invio, chiamato Apps Script.

Apps Script permette l'interfacciamento con la casella di posta attraverso una richiesta HTTPS GET.
In questa richiesta GET vanno inclusi alcuni parametri necessari per l'invio della mail, in particolare è necessario l’indirizzo di destinazione ed il corpo del messaggio.

Linee guida per la documentazione della creazione della ricevuta di consegna

Per quanto riguarda la ricevuta di consegna, si è scelto di usare la libreria iText per la generazione del file PDF. Alla generazione del PDF di consegna, esso viene aperto automaticamente col software di visualizzazione PDF predefinito dell’utilizzatore e viene salvato nella directory PharmaGCode/PharmaGCode/pdf/ e viene salvato come

“Ricevuta di consegna n.xx”.pdf, con “xx” numero del collo relativo alla ricevuta.

Packages

com.ogc.pharmagcode

Il package principale dell’applicazione

org.mariadb.jdbc

Contiene i driver per le comunicazioni con il DBMS MariaDB utilizzato per la realizzazione del sistema

javafx

Il package è utilizzato per la realizzazione e la gestione delle interfacce grafiche utente.

Permette di caricare i file FXML, e gestisce il binding tra le variabili della classe associata e le rispettive componenti grafiche (tramite id ed EventHandler)

java

Contiene i package e le librerie standard di Java

Contiene le strutture dati utilizzate per la realizzazione del sistema

com.itextpdf

Libreria per la creazione e la manipolazione di pdf, utilizzata per la generazione dei pdf di ricevuta dei colli da parte dell’impiegato


Object Design UML

        Entity


Utils

Common

GestioneFarmaci.Interface


GestioneFarmaci.Control


GestioneAzienda.Interface


GestioneAzienda.Control


GestioneCorriere.Interface

GestioneCorriere.Control


Autenticazione.Interface


Autenticazione.Control