Integrazione doc

develop
Meliurwen 5 years ago
parent 3e8775e93f
commit 1455880a00
  1. 1
      .gitignore
  2. 26
      doc/bibliography.bib
  3. 21
      doc/chapters/02_progetto.tex
  4. 10
      doc/chapters/03_esecuzione.tex

1
.gitignore vendored

@ -9,6 +9,7 @@
*.toc *.toc
*.out *.out
*.bbl *.bbl
*.bbl~
*.blg *.blg
*.bib~ *.bib~

@ -1 +1,27 @@
@article{docker,
title = {Docker Documentation},
author = {Docker Inc},
year={2019},
journal = {docs.docker.com}
}
@article{pip,
title = {The Python Package Installer Documentation},
author = {PyPA},
year={2019},
journal = {pip.pypa.io/en/stable/}
}
@article{jpa,
title = {Using JPA},
author = {Spring},
year={2019},
journal = {https://docs.spring.io/spring-boot/docs/2.2.2.RELEASE/reference/htmlsingle/\#boot-features-jpa-and-spring-data}
}
@article{maven,
title = {Apache Maven Documentation},
author = {Apache Software Foundation},
year={2019},
journal = {https://maven.apache.org/guides/index.html}
}

@ -23,12 +23,27 @@ Una volta stesa una bozza definitva e chiara sulle entità, relazioni e relativi
L'applicazione è strutturata in diversi \textit{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 \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.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} \cite{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.
\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/}. Per verificare l'effettivo funzionamento del programma sono stati sviluppati dei test d'integrazione, posizionati all'interno della cartella del'applicazione \code{mivan/src/test/java/mivan/}.
\newline
Le classi presenti nella cartella sono in seguito elencate:
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. \begin{itemize}
\item \textbf{AuthorTest:} Consente di testare l'\textit{inserimento}, la \textit{modifica} e l'\textit{eliminazione} (implicitamente anche \textit{lettura} nei primi due test) degli \textit{autori}.
\item \textbf{BookTest:} Consente di testare l'\textit{inserimento}, la \textit{modifica} e l'\textit{eliminazione} (implicitamente anche \textit{lettura} nei primi due test) dei libri.
\item \textbf{AuthorBookTest:} Consente di testare l'\textit{aggiunta}, la \textit{modifica} e l'\textit{eliminazione} (ed anche \textit{lettura} nei primi due test) degli \textit{autori} ai \textit{libri} e viceversa.
\item \textbf{LocationTest:} Consente di testare l'\textit{inserimento}, la \textit{modifica} e l'\textit{eliminazione} (implicitamente anche \textit{lettura} nei primi due test) delle \textit{sedi} del sistema bibliotecario.
\item \textbf{StaffTest:} Consente di testare l'\textit{inserimento}, la \textit{modifica} e l'\textit{eliminazione} (implicitamente anche \textit{lettura} nei primi due test) dello \textit{staff}.
\item \textbf{UserTest:} Consente di testare l'\textit{inserimento}, la \textit{modifica} e l'\textit{eliminazione} (implicitamente anche \textit{lettura} nei primi due test) degli \textit{utenti}.
\item \textbf{ItemTest:} Consente di testare l'\textit{aggiunta}, la \textit{modifica} e l'\textit{eliminazione} (implicitamente anche \textit{lettura} nei primi due test) delle singole \textit{unità di libro} (\textit{Item}).
\item \textbf{LoanTest:} Consente di testare l'\textit{aggiunta}, la \textit{modifica} e l'\textit{eliminazione} (implicitamente anche \textit{lettura} nei primi due test) dei \textit{prestiti}.
\end{itemize}
Come è possibile osservare nell'elenco sovrastante 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.

@ -1,14 +1,16 @@
\section{Requisiti} \section{Requisiti}
L'applicazione è stata sviluppata, eseguita e testata su sistemi \textit{UNIX Like}, in particolare sulla distribuzione \textit{GNU/Linux Debian}.\newline L'applicazione è stata sviluppata, eseguita e testata su sistemi \textit{UNIX Like}, in particolare sulla distribuzione \textit{GNU/Linux Debian}.
Per questo questo motivo le istruzioni che seguono saranno incentrate su questo ambiente, ma dovrebbero valere per tutti gli altri sistemi.\newline
Per rendere la propria macchina pronta ad eseguire l'applicazione è necessario installare i pacchetti \code{openjdk} (la versione 8 è sufficiente) e \code{mvn} corrispondenti rispettivamente a \textit{Open Java Development Kit} ed al tool \textit{Apache Maven}; in caso di Debian o derivate si usa il seguente comando: Per questo questo motivo le istruzioni che seguono saranno incentrate su questo ambiente, ma dovrebbero valere per tutti gli altri sistemi.
Per rendere la propria macchina pronta ad eseguire l'applicazione è necessario installare i pacchetti \code{openjdk} (la versione 8 è sufficiente) e \code{mvn} corrispondenti rispettivamente a \textit{Open Java Development Kit} ed al tool \textit{Apache Maven} \cite{maven}; in caso di Debian o derivate si usa il seguente comando:
\newline \newline
\begin{lstlisting}[style=BashInputStyle] \begin{lstlisting}[style=BashInputStyle]
$ sudo apt-get install openjdk-8-jdk mvn $ sudo apt-get install openjdk-8-jdk mvn
\end{lstlisting} \end{lstlisting}
In caso si volesse usare \textit{Docker} allora le dipendenze sono \textit{docker-compose}, ed ovviamente \textit{docker} stesso. \textit{Compose} è presente nella maggior parte delle repo delle distro, il problema è che non è sempre aggiornato, per cui si ovvierà a questo possibile problema per mezzo di \code{pip}. In caso si volesse usare \textit{Docker} allora le dipendenze sono \textit{docker-compose}\cite{docker}, ed ovviamente \textit{docker} stesso. \textit{Compose} è presente nella maggior parte delle repo delle distro, il problema è che non è sempre aggiornato, per cui si ovvierà a questo possibile problema per mezzo di \code{pip}. \cite{pip}
La serie di comandi è la seguente, in caso di distro diversa da Debian usare il relativo gestore di pacchetti in sostituzione ad apt: La serie di comandi è la seguente, in caso di distro diversa da Debian usare il relativo gestore di pacchetti in sostituzione ad apt:
\newline \newline

Loading…
Cancel
Save