parent
e08e2f5444
commit
dbef4697af
@ -1,41 +1,34 @@ |
|||||||
\section{Progettazione} |
\section{Progettazione} |
||||||
|
|
||||||
Nella fase iniziale di progettazione, invece che iniziare direttamente con la stesura di un diagramma UML delle Classi si è ritenuto più comodo sviluppare prima l'idea su carta disegnando un semplice diagramma ER (Entity Relationship). |
Nella fase iniziale di progettazione, invece che iniziare direttamente con la stesura di un \textit{diagramma UML delle Classi} si è ritenuto più comodo sviluppare prima l'idea su carta disegnando un semplice \textit{diagramma ER} (Entity Relationship), mostrato in figura \ref{fig:er}. |
||||||
|
|
||||||
\begin{figure}[h!] |
\begin{figure}[h!] |
||||||
\centering |
\centering |
||||||
\includegraphics[scale=0.6]{img/logo.png} |
\includegraphics[scale=0.8]{img/er.pdf} |
||||||
\caption{Diagramma ER} |
\caption{Diagramma ER} |
||||||
\label{fig:er} |
\label{fig:er} |
||||||
\end{figure} |
\end{figure} |
||||||
|
|
||||||
Una volta stesa una bozza definitva e chiara sulle entità, relazioni e relativi attributi da definire si è passati a trasporre in una forma più dettagliata e più comoda per noi da tenere come riferimento, ossia un EER (Enhaced Entity Relationship) disegnato con il tool MySQL Workbench. |
Una volta stesa una bozza definitva e chiara sulle entità, relazioni e relativi attributi da definire si è passati a trasporre in una forma più dettagliata e \textit{più comoda} per noi da tenere come riferimento, ossia un \textit{EER} (\textit{Enhaced Entity Relationship}) disegnato con il tool \textit{MySQL Workbench}. |
||||||
|
|
||||||
\begin{figure}[h!] |
\begin{figure}[h!] |
||||||
\centering |
\centering |
||||||
\includegraphics[scale=0.6]{img/logo.png} |
\includegraphics[scale=0.9]{img/eer.pdf} |
||||||
\caption{Diagramma EER} |
\caption{Diagramma EER} |
||||||
\label{fig:eer} |
\label{fig:eer} |
||||||
\end{figure} |
\end{figure} |
||||||
|
|
||||||
\begin{figure}[h!] |
|
||||||
\centering |
|
||||||
\includegraphics[scale=0.6]{img/logo.png} |
|
||||||
\caption{Diagramma delle Classi} |
|
||||||
\label{fig:classi} |
|
||||||
\end{figure} |
|
||||||
|
|
||||||
\section{Struttura} |
\section{Struttura} |
||||||
|
|
||||||
L'applicazione è strutturata in diversi package con ognuno funzionalità specifiche: |
L'applicazione è strutturata in diversi \textit{package} con ognuno funzionalità specifiche: |
||||||
|
|
||||||
\begin{itemize} |
\begin{itemize} |
||||||
\item \textbf{com.mivan.model:} In questo package sono presenti tutte le entità del modello dati dell'applicazione, implementate in classi come mostrate in figura \ref{fig:classi}. Per gestire la persistenza dei dati di un database relazionere, per tali classi sono state utilizzate le annotazioni delle JPA (Java Persistence API). |
\item \textbf{com.mivan.model:} In questo package sono presenti tutte le entità del modello dati dell'applicazione, implementate in classi \textit{Author}, \textit{Book}, \textit{Location}, \textit{Staff}, \textit{User}, \textit{Loan}, \textit{Item} e \textit{Item}. Per gestire la persistenza dei dati di un database relazionere, per tali classi sono state utilizzate le annotazioni delle \textit{JPA} (\textit{Java Persistence API}). |
||||||
\item \textbf{com.mivan.repository:} In questo package sono implementate le query per l'interrogazione al database. |
\item \textbf{com.mivan.repository:} In questo package sono implementate le query per l'interrogazione al database. |
||||||
\item \textbf{com.mivan.exception:} In questo package sono contenute le classi che gestiscono le eccezioni generate dalle interrogazioni al database. |
|
||||||
\end{itemize} |
\end{itemize} |
||||||
|
|
||||||
\section{Test} |
\section{Test} |
||||||
|
|
||||||
Per verificare l'effettivo funzionamento del programma sono stati sviluppati dei test d'integrazione, posizionati all'interno della cartella \code{mivan/src/test/java/}.\newline |
Per verificare l'effettivo funzionamento del programma sono stati sviluppati dei test d'integrazione, posizionati all'interno della cartella \code{mivan/src/test/java/}. |
||||||
Per i JUnit test volti a verificare la corretta esecuzione delle operazioni CRUD (Create, Read, Update, Delete) è stato fatto uso dell'engine H2, il quale consente di eseguire tali operazioni su un database temporaneo caricato in memoria (RAM). Tale approccio consente arginare del tutto il problema di intaccare il database persistente dai dati fittizzi dei test. |
|
||||||
|
Per i \textit{JUnit test} volti a verificare la \textit{corretta esecuzione} delle operazioni \textit{CRUD} (\textit{Create, Read, Update, Delete}) è stato fatto uso dell'engine \textit{H2}, il quale consente di eseguire tali operazioni su un \textit{database temporaneo} caricato in memoria (\textit{RAM}). Tale approccio consente \textit{arginare} del tutto il problema di intaccare il database persistente dai dati fittizzi dei test. |
||||||
|
Loading…
Reference in new issue