diff --git a/.github/filesToCompile b/.github/filesToCompile index ac24e22..17fbf02 100644 --- a/.github/filesToCompile +++ b/.github/filesToCompile @@ -26,4 +26,5 @@ esterni/verbali/VE_2020-01-30_11 esterni/verbali/VE_2020-02-11_13 esterni/verbali/VE_2020-03-05_16 esterni/verbali/VE_2020-03-25_20 -esterni/verbali/VE_2020-03-31_21 \ No newline at end of file +esterni/verbali/VE_2020-03-31_21 +esterni/verbali/VE_2020-04-10_23 \ No newline at end of file diff --git a/esterni/Manuale del manutentore/Immagini/API-PackageControllers.png b/esterni/Manuale del manutentore/Immagini/API-PackageControllers.png new file mode 100644 index 0000000..09e7285 Binary files /dev/null and b/esterni/Manuale del manutentore/Immagini/API-PackageControllers.png differ diff --git a/esterni/Manuale del manutentore/Immagini/API-PackageService.png b/esterni/Manuale del manutentore/Immagini/API-PackageService.png new file mode 100644 index 0000000..d22088f Binary files /dev/null and b/esterni/Manuale del manutentore/Immagini/API-PackageService.png differ diff --git a/esterni/Manuale del manutentore/Immagini/WebApp-Classi.png b/esterni/Manuale del manutentore/Immagini/WebApp-Classi.png new file mode 100644 index 0000000..77b98a8 Binary files /dev/null and b/esterni/Manuale del manutentore/Immagini/WebApp-Classi.png differ diff --git a/esterni/analisi_requisiti/main.tex b/esterni/analisi_requisiti/main.tex index 99f417e..dff551a 100644 --- a/esterni/analisi_requisiti/main.tex +++ b/esterni/analisi_requisiti/main.tex @@ -12,8 +12,8 @@ % -------------- \newcommand{\docNome}{ ANALISI DEI REQUISITI } -\newcommand{\docBaseline}{+b0.10} -\newcommand{\docVersione}{2.0.0\docBaseline} +\newcommand{\docBaseline}{+b0.15} +\newcommand{\docVersione}{1.4.0\docBaseline} \newcommand{\docNomeProgetto}{ ThiReMa Project } \newcommand{\docStatus}{Approvato} \newcommand{\docUso}{Esterno} @@ -32,18 +32,16 @@ } \newcommand{\docRedattori}{ Alessandro Tommasin \\& - Mariano Sciacco \\& - Lorenzo Dei Negri + Nicolò Frison \\& + Fouad Mouad } \newcommand{\docVerificatori}{ - Giovanni Vidotto \\& - Fouad Mouad \\& - Nicolò Frison + Mariano Sciacco \\& + Lorenzo Dei Negri } \newcommand{\docApprovazione}{ - Fouad Mouad \\& - Giuseppe Vito Bitetti + Alessandro Tommasin } % ----- NON MODIFICARE SOTTO QUESTA RIGA ----- diff --git a/esterni/analisi_requisiti/res/images/uc11.png b/esterni/analisi_requisiti/res/images/uc11.png index d2c5abe..6831191 100644 Binary files a/esterni/analisi_requisiti/res/images/uc11.png and b/esterni/analisi_requisiti/res/images/uc11.png differ diff --git a/esterni/analisi_requisiti/res/images/uc24.png b/esterni/analisi_requisiti/res/images/uc24.png index e61aea3..e773146 100644 Binary files a/esterni/analisi_requisiti/res/images/uc24.png and b/esterni/analisi_requisiti/res/images/uc24.png differ diff --git a/esterni/analisi_requisiti/res/images/uc5.png b/esterni/analisi_requisiti/res/images/uc5.png index d596c27..fc374a6 100644 Binary files a/esterni/analisi_requisiti/res/images/uc5.png and b/esterni/analisi_requisiti/res/images/uc5.png differ diff --git a/esterni/analisi_requisiti/res/images/uc7.png b/esterni/analisi_requisiti/res/images/uc7.png index 794de7d..9ccefce 100644 Binary files a/esterni/analisi_requisiti/res/images/uc7.png and b/esterni/analisi_requisiti/res/images/uc7.png differ diff --git a/esterni/analisi_requisiti/res/registro.tex b/esterni/analisi_requisiti/res/registro.tex index 99e6053..27d87d2 100644 --- a/esterni/analisi_requisiti/res/registro.tex +++ b/esterni/analisi_requisiti/res/registro.tex @@ -10,8 +10,18 @@ \section*{Registro delle modifiche} \endfirsthead % ----- Modificare da qui ----- - - 2.0.0+b0.10 & Approvazione per il rilascio esterno & 2020-03-09 & Fouad Mouad & Responsabile \\ + + 1.4.0+b0.15 & Approvazione documento & 2020-04-13 & Alessandro Tommasin & Responsabile \\ + \hline + 1.3.1+b0.14 & Modifica e verifica sezioni \S4 e \S5 & 2020-04-11 & Fouad Mouad e Lorenzo Dei Negri & Analista e verificatore \\ + \hline + 1.3.0+b0.14 & Approvazione documento & 2020-04-06 & Giovanni Vidotto & Responsabile \\ + \hline + 1.2.1+b0.13 & Modifica e verifica sezioni \S4 e \S5 & 2020-04-01 & Nicolò Frison e Mariano Sciacco & Analista e verificatore \\ + \hline + 1.2.0+b0.13 & Approvazione documento & 2020-03-30 & Lorenzo Dei Negri & Responsabile \\ + \hline + 1.1.1+b0.12 & Modifica e verifica sezione \S3 & 2020-03-23 & Alessandro Tommasin e Mariano Sciacco & Analista e verificatore \\ \hline 1.1.0+b0.5 & Approvazione documento & 2020-02-05 & Giuseppe Vito Bitetti & Responsabile \\ \hline @@ -19,9 +29,7 @@ \section*{Registro delle modifiche} \hline 1.0.1+b0.4 & Modifica e verifica sezione \S3 & 2020-01-30 & Lorenzo Dei Negri, Nicolò Frison e Fouad Mouad & Analista e verificatore \\ \hline - 1.0.0+b0.4 & Approvazione per il rilascio esterno & 2020-01-15 & Alessandro Tommasin & Responsabile \\ - \hline - 0.2.0+b0.4 & Approvazione documento & 2020-01-15 & Alessandro Tommasin & Responsabile \\ + 1.0.0+b0.4 & Approvazione documento & 2020-01-15 & Alessandro Tommasin & Responsabile \\ \hline 0.1.3+b0.3 & Scrittura e verifica sezione \S5 & 2020-01-08 & Mariano Sciacco, Lorenzo Dei Negri e Nicolò Frison & Analista e verificatore \\ \hline diff --git a/esterni/analisi_requisiti/res/sections/Sez1-Introduzione/Introduzione.tex b/esterni/analisi_requisiti/res/sections/Sez1-Introduzione/Introduzione.tex index 54edf32..cab663b 100644 --- a/esterni/analisi_requisiti/res/sections/Sez1-Introduzione/Introduzione.tex +++ b/esterni/analisi_requisiti/res/sections/Sez1-Introduzione/Introduzione.tex @@ -6,12 +6,12 @@ \section{Introduzione} Per evitare possibili ambiguità relative alle terminologie (che andranno indicate in \textsc{maiuscoletto}) utilizzate nei vari documenti, verranno utilizzate due simboli: \begin{itemize} \item una \textit{D} al pedice per indicare il nome di un particolare documento; - \item una \textit{G} al pedice per indicare un termine che sarà presente nel \dext{Glossario v2.0.0}. + \item una \textit{G} al pedice per indicare un termine che sarà presente nel \dext{Glossario v1.4.0}. \end{itemize} \subsection{Riferimenti} \subsubsection{Normativi} \begin{itemize} - \item \textbf{norme di progetto: }\dext{Norme di Progetto v2.0.0} + \item \textbf{norme di progetto: }\dext{Norme di Progetto v2.3.0} \item \textbf{capitolato C6 - ThiReMa: }\url{https://www.math.unipd.it/~tullio/IS-1/2019/Progetto/C6.pdf} \end{itemize} \subsubsection{Informativi} diff --git a/esterni/analisi_requisiti/res/sections/Sez3-CasiDUso/CasiDUso.tex b/esterni/analisi_requisiti/res/sections/Sez3-CasiDUso/CasiDUso.tex index 8cdde10..b7d3cf8 100644 --- a/esterni/analisi_requisiti/res/sections/Sez3-CasiDUso/CasiDUso.tex +++ b/esterni/analisi_requisiti/res/sections/Sez3-CasiDUso/CasiDUso.tex @@ -34,11 +34,11 @@ \section{Casi d'uso} \item \textbf{attori primari:} utente autenticato; \item \textbf{descrizione:} l'utente ha eseguito l'autenticazione e vuole visualizzare una dashboard con all'interno le proprie informazioni account: \begin{itemize} - \item avatar; \item nome; \item cognome; \item mail; \item ente di appartenenza; + \item rango; \item indirizzo IP; \end{itemize} alcune statistiche del sito: @@ -173,7 +173,7 @@ \section{Casi d'uso} \subsubsection{UC 13.1 - Amministrazione - Visualizzazione informazioni log utente} \begin{itemize} \item \textbf{attori primari:} amministratore; - \item \textbf{descrizione:} l'utente visualizza una entry composta da nome, cognome, azione, data-ora, indirizzo IP, ente e rank degli utenti presenti all'interno del sistema. Le azioni sotto audit sono le seguenti: + \item \textbf{descrizione:} l'utente visualizza una entry composta da nome, cognome, ruolo, ente, azione, data-ora, indirizzo IP. Le azioni sotto audit sono le seguenti: \begin{itemize} \item login; @@ -196,6 +196,10 @@ \section{Casi d'uso} \item rimozione dispositivo, con ID dispositivo reale e ID gateway; \item modifica sensori ente e ID ente; \item invio input Telegram, con ID dispositivo e input inviato; + \item invio nuova configurazione gateway, con ID del gateway; + \item aggiunta nuovo gateway e ID gateway; + \item rimozione gateway e ID gateway; + \item modifica gateway e ID gateway; \end{itemize} \item \textbf{precondizione:} l'utente è autenticato in qualità di amministratore; @@ -468,6 +472,18 @@ \section{Casi d'uso} \item viene visualizzato un errore che spiega che il nome inserito per il gateway è già stato inserito per un altro gateway. \end{enumerate} \end{itemize} + + \subsubsection{UC 24.7 - Invio configurazione gateway} + \begin{itemize} + \item \textbf{attori primari:} amministratore; + \item \textbf{descrizione:} l'amministratore può decidere di inviare una nuova configurazione al gateway in base alle modifiche effettuate; + \item \textbf{precondizione:} l'amministratore naviga nella sezione di gestione dei gateway del sistema; + \item \textbf{postcondizione:} l'amministratore ha inviato una nuova configurazione al gateway; + \begin{enumerate} + \item l'amministratore seleziona un gateway; + \item l'amministratore invia la nuova configurazione al gateway. + \end{enumerate} + \end{itemize} \subsection{UC 25 - Inserimento credenziali per autenticazione base} diff --git a/esterni/analisi_requisiti/res/sections/Sez3-CasiDUso/uc11.tex b/esterni/analisi_requisiti/res/sections/Sez3-CasiDUso/uc11.tex index 9c0aa2f..4209781 100644 --- a/esterni/analisi_requisiti/res/sections/Sez3-CasiDUso/uc11.tex +++ b/esterni/analisi_requisiti/res/sections/Sez3-CasiDUso/uc11.tex @@ -277,5 +277,19 @@ \subsection{UC 11 - Amministrazione - Gestione utenti} \end{enumerate} \end{itemize} + \subsubsection{UC 11.7 - Riattivazione utente} + \begin{itemize} + \item \textbf{attori primari:} amministratore; + \item \textbf{descrizione:} l'utente vuole riattivare l'account di un utente attualmente disattivato; + \item \textbf{precondizione:} l'utente naviga all'interno della gestione utenti per l'amministrazione; + \item \textbf{postcondizione:} l'utente ha riattivato l'account dell'utente selezionato; + \item \textbf{scenario principale:} + \begin{enumerate} + \item{l'utente seleziona un utente tra quelli disponibili da disattivare;} + \item{l'utente ha riattivato l'utente selezionato nel sistema.} + \end{enumerate} + \end{itemize} + + diff --git a/esterni/analisi_requisiti/res/sections/Sez3-CasiDUso/uc5.tex b/esterni/analisi_requisiti/res/sections/Sez3-CasiDUso/uc5.tex index 1533d55..a3353c5 100644 --- a/esterni/analisi_requisiti/res/sections/Sez3-CasiDUso/uc5.tex +++ b/esterni/analisi_requisiti/res/sections/Sez3-CasiDUso/uc5.tex @@ -22,7 +22,7 @@ \subsubsection{UC 5.1 - Visualizzazione lista dispositivi ente} \begin{itemize} \item \textbf{attori primari:} membro, moderatore ente; - \item \textbf{descrizione:} l'utente può visualizzare una lista con ID, nome, numero sensori e nome ente per ogni dispositivo abilitato per il proprio ente; + \item \textbf{descrizione:} l'utente può visualizzare una lista con id reale, nome, numero sensori, frequenza di aggiornamento dati e nome gateway per ogni dispositivo abilitato per il proprio ente; \item \textbf{precondizione:} l'utente naviga nella gestione dispositivi del sistema; \item \textbf{postcondizione:} l'utente ha visualizzato i dispositivi; \item \textbf{scenario principale:} @@ -34,7 +34,7 @@ \subsubsection{UC 5.2 - Visualizza info dispositivo} \begin{itemize} \item \textbf{attori primari:} membro, moderatore ente, amministratore; - \item \textbf{descrizione:} l'utente può visualizzare ID, nome, frequenza di aggiornamento dei dati e dati dei sensori in forma tabellare o grafica riguardanti il dispositivo selezionato; + \item \textbf{descrizione:} l'utente può visualizzare id reale, id logico, nome, frequenza di aggiornamento dei dati, numero di sensori e dati dei sensori (id reale e tipo) riguardanti il dispositivo selezionato; \item \textbf{precondizione:} l'utente naviga nella gestione dispositivi del sistema; \item \textbf{postcondizione:} l'utente ha visualizzato le informazioni del dispositivo selezionato; \item \textbf{scenario principale:} @@ -235,7 +235,7 @@ \subsubsection{UC 5.8 - Visualizzazione lista dispositivi completa} \begin{itemize} \item \textbf{attori primari:} amministratore; - \item \textbf{descrizione:} l'utente può visualizzare una lista con ID, nome, numero di sensori e nome dell'ente per ogni dispositivo presente nel sistema; + \item \textbf{descrizione:} l'utente può visualizzare una lista con id logico, nome, numero di sensori e frequenza di aggiornamento per ogni dispositivo presente nel sistema; \item \textbf{precondizione:} l'utente naviga nella gestione dispositivi del sistema; \item \textbf{postcondizione:} l'utente ha visualizzato la lista di tutti i dispositivi; \item \textbf{scenario principale:} @@ -244,4 +244,28 @@ \end{enumerate} \end{itemize} - s + \subsubsection{UC 5.9 - Errore formato identificativo dispositivo} + \begin{itemize} + \item \textbf{attori primari:} moderatore ente, amministratore; + \item \textbf{descrizione:} l'utente riceve un errore quando tenta di inserire l'identificativo del dispositivo; + \item \textbf{precondizione:} l'utente sta aggiungendo un nuovo dispositivo; + \item \textbf{postcondizione:} l'utente visualizza un errore che gli impedisce di procedere; + \item \textbf{scenario principale:} + \begin{enumerate} + \item{l'utente ha compilato il campo \textit{identificativo dispositivo};} + \item{l'utente riceve un errore sul formato non valido dell'identificativo del dispositivo.} + \end{enumerate} + \end{itemize} + + \subsubsection{UC 5.10 - Visualizzazione sensore} + \begin{itemize} + \item \textbf{attori primari:} membro, moderatore ente, amministratore; + \item \textbf{descrizione:} l'utente può vedere i dati in tempo reale di un sensore attraverso un grafico o una tabella con le relative registrazioni; + \item \textbf{precondizione:} l'utente sta visualizzando i dispositivi a lui disponibili; + \item \textbf{postcondizione:} l'utente visualizza un grafico o una tabella con il dato in tempo reale; + \item \textbf{scenario principale:} + \begin{enumerate} + \item{l'utente seleziona un dispositivo;} + \item{l'utente visualizza un grafico di un sensore del dispositivo a lui abilitato.} + \end{enumerate} + \end{itemize} diff --git a/esterni/analisi_requisiti/res/sections/Sez3-CasiDUso/uc7.tex b/esterni/analisi_requisiti/res/sections/Sez3-CasiDUso/uc7.tex index c3414a3..32cb284 100644 --- a/esterni/analisi_requisiti/res/sections/Sez3-CasiDUso/uc7.tex +++ b/esterni/analisi_requisiti/res/sections/Sez3-CasiDUso/uc7.tex @@ -170,3 +170,17 @@ \item{l'utente ha rimosso l'utente selezionato appartenente al proprio ente dal sistema.} \end{enumerate} \end{itemize} + + + \subsubsection{UC 7.6 - Ripristino utente nell'ente} + \begin{itemize} + \item \textbf{attori primari:} moderatore ente; + \item \textbf{descrizione:} l'utente ripristina l'utente che era stato disattivato dalla lista degli utenti appartenenti al suo ente; + \item \textbf{precondizione:} l'utente naviga nella gestione utenti per l'ente associato e seleziona un utente; + \item \textbf{postcondizione:} l'utente ha ripristinato l'utente selezionato appartenente al proprio ente; + \item \textbf{scenario principale:} + \begin{enumerate} + \item{l'utente seleziona un utente appartenente al proprio ente da rimuovere;} + \item{l'utente ha ripristinato l'utente selezionato appartenente al proprio ente dal sistema.} + \end{enumerate} + \end{itemize} diff --git a/esterni/analisi_requisiti/res/sections/Sez4-ClassificazioneRequisiti/ClassificazioneRequisiti.tex b/esterni/analisi_requisiti/res/sections/Sez4-ClassificazioneRequisiti/ClassificazioneRequisiti.tex index e2e511c..a901989 100644 --- a/esterni/analisi_requisiti/res/sections/Sez4-ClassificazioneRequisiti/ClassificazioneRequisiti.tex +++ b/esterni/analisi_requisiti/res/sections/Sez4-ClassificazioneRequisiti/ClassificazioneRequisiti.tex @@ -10,7 +10,7 @@ \section{Requisiti} \newcommand{\autism}{ \\ \hline} -In questa parte, vengono riportati i requisiti del progetto, classificati per tipologia. Ciascun requisito possiede un codice identificativo, il cui formalismo viene riportato all'interno del documento \dext{Norme di Progetto v2.0.0}. +In questa parte, vengono riportati i requisiti del progetto, classificati per tipologia. Ciascun requisito possiede un codice identificativo, il cui formalismo viene riportato all'interno del documento \dext{Norme di Progetto v2.3.0}. % Salvataggio dati nei database OK @@ -23,7 +23,7 @@ \section{Requisiti} \subsection{Requisiti funzionali} \begin{center} - \rowcolors{2}{lightest-grayest}{white} + \rowcolors{2}{white}{lightest-grayest} \begin{longtable}{|p{3cm}|p{9.85cm}|p{2cm}|} \hline \rowcolor{red_requisiti} @@ -59,11 +59,11 @@ \section{Requisiti} \sreq{B}{F}{8.5} & L'utente autenticato deve poter disattivare l'autenticazione a due fattori tramite \glock{Telegram} & UC 4.2.3 \autism \sreq{B}{F}{8.6} & L'utente autenticato deve poter modificare la preferenza di notifica di uno specifico alert, in base a quelli disponibili & UC 4.3, VE\_2020-01-10\_9.2 \autism % info dispositivi - \req{A}{F}{9} & Il membro e il moderatore ente devono poter visualizzare la lista dei sensori di un dispositivo abilitati al loro ente & UC 5.2 \autism + \req{A}{F}{9} & Il membro e il moderatore ente devono poter visualizzare la lista dei sensori di un dispositivo abilitati al loro ente & UC 5.2, UC 5.10 \autism \req{A}{F}{10} & L'amministratore deve poter visualizzare la lista completa dei sensori di un qualunque dispositivo censito nel sistema & UC 5.8 \autism - \req{A}{F}{11} & Il membro e il moderatore ente devono poter visualizzare i dati in tempo reale di un sensore abilitato al loro ente & UC 5.2 \autism + \req{A}{F}{11} & Il membro e il moderatore ente devono poter visualizzare i dati in tempo reale di un sensore abilitato al loro ente & UC 5.2, UC 5.10 \autism \sreq{B}{F}{11.1} & Il membro e il moderatore ente possono visualizzare i dati di un sensore tramite un grafico & UC 6.2 \autism - \req{A}{F}{12} & L'amministratore deve poter visualizzare i dati in tempo reale di tutti i sensori appartenenti a un dispositivo censito nel sistema & UC 5.2, VE\_2020-01-10\_9.1 \autism + \req{A}{F}{12} & L'amministratore deve poter visualizzare i dati in tempo reale di tutti i sensori appartenenti a un dispositivo censito nel sistema & UC 5.2, UC 5.10 VE\_2020-01-10\_9.1 \autism \sreq{B}{F}{12.1} & L'amministratore deve poter visualizzare i dati di un sensore tramite un grafico & UC 6.2, VE\_2020-01-10\_9.1 \autism \req{A}{F}{13} & L'amministratore deve poter visualizzare a quali enti è stata autorizzata la lettura di un sensore & UC 5.2 \autism \req{A}{F}{14} & L'amministratore deve poter assegnare a un ente la lettura di un sensore di un qualunque dispositivo censito nel sistema & UC 5.6 \autism @@ -85,7 +85,7 @@ \section{Requisiti} \sreq{B}{F}{24.1} & Un amministratore deve poter modificare la email di un utente qualunque & UC 11.4.1 \autism \sreq{B}{F}{24.2} & Un amministratore deve poter modificare il nome di un utente qualunque & UC 11.4.2 \autism \sreq{B}{F}{24.3} & Un amministratore deve poter modificare il cognome di un utente qualunque & UC 11.4.3 \autism - \sreq{B}{F}{24.4} & Un amministratore deve poter modificare il lo username \glock{Telegram} di un utente qualunque & UC 11.4.4 \autism + \sreq{B}{F}{24.4} & Un amministratore deve poter modificare lo username \glock{Telegram} di un utente qualunque & UC 11.4.4 \autism \sreq{B}{F}{24.5} & Un amministratore deve poter attivare l'autenticazione a due fattori tramite \glock{Telegram} di un utente qualunque & UC 11.4.7 \autism \sreq{B}{F}{24.6} & Un amministratore deve poter disattivare l'autenticazione a due fattori tramite \glock{Telegram} di un utente qualunque & UC 11.4.7 \autism \req{A}{F}{25} & Un amministratore deve poter riassegnare un membro o un moderatore ente a ente differente & UC 11.4.5 \autism @@ -157,11 +157,14 @@ \section{Requisiti} \sreq{A}{F}{71.1} & La web app deve permettere di vedere grafici e dati da browser in modalità mobile & Capitolato \autism \sreq{B}{F}{71.2} & La web app deve permettere di compilare moduli interni da browser in modalità mobile & Capitolato \autism \req{A}{F}{72} & \glock{Kafka} deve poter comunicare con i database, con i \glock{gateway} e con le \glock{API} & Capitolato \autism - \req{A}{F}{73} & Un amministratore deve poter visualizzare i gateway disponibili & Capitolato \autism - \req{A}{F}{74} & Un amministratore deve poter visualizzare le informazioni dei gateway disponibili & Capitolato \autism - \req{A}{F}{75} & Un amministratore deve poter creare un nuovo gateway & Capitolato \autism - \req{A}{F}{76} & Un amministratore deve poter modificare i dati di un gateway & Capitolato \autism - \req{A}{F}{77} & Un amministratore deve poter rimuovere un gateway & Capitolato \autism + \req{A}{F}{73} & Un amministratore deve poter visualizzare i gateway disponibili & UC 24.1 \autism + \req{A}{F}{74} & Un amministratore deve poter visualizzare le informazioni dei gateway disponibili & UC 24.2 \autism + \req{A}{F}{75} & Un amministratore deve poter creare un nuovo gateway & UC 24.3 \autism + \req{A}{F}{76} & Un amministratore deve poter modificare i dati di un gateway & UC 24.5 \autism + \req{A}{F}{77} & Un amministratore deve poter rimuovere un gateway & UC 24.4 \autism + \req{A}{F}{78} & Un amministratore deve poter inviare una nuova configurazione a un gateway & UC 24.7 \autism + \req{C}{F}{79} & Un moderatore deve poter ripristinare un utente del suo ente che era stato precedentemente disattivato & UC 7.6 \autism + \req{C}{F}{80} & Un amministratore deve poter ripristinare un utente che era stato precedentemente disattivato & UC 11.7 \autism \caption{Requisiti funzionali con le relative descrizioni e le relative fonti} \end{longtable} @@ -176,7 +179,7 @@ \section{Requisiti} \begin{itemize} \item \textbf{sistema operativo:} Ubuntu 18.04.3 LTS a 64bit; \item \textbf{processore:} CPU Quad-Core da 2.8GHz; - \item \textbf{RAM:} 16GB DDR4; + \item \textbf{RAM:} 8GB DDR4; \item \textbf{disco rigido:} SSD da 64GB; \item \textbf{connessione Internet:} 100Mb/s simmetrica. \end{itemize} @@ -230,7 +233,7 @@ \section{Requisiti} \req{A}{Q}{6} & Deve essere realizzato e consegnato un \glock{Docker} file contenente la componente applicativa & Capitolato \autism \req{A}{Q}{7} & Il codice sorgente deve essere realizzato con un sistema di versionamento & Capitolato \autism \req{A}{Q}{8} & Devono essere realizzati test di unità e di integrazione per verificare le singole componenti del prodotto & Interna \autism - \req{A}{Q}{9} & La parte di progettazione e di codifica deve essere conforme con quanto riportato nel \dext{Piano di Qualifica v2.0.0} & Interna \autism + \req{A}{Q}{9} & La parte di progettazione e di codifica deve essere conforme con quanto riportato nel \dext{Piano di Qualifica v1.6.0} & Interna \autism \req{B}{Q}{10} & La web app dovrà rispettare la validazione \glock{W3C} & Interna \autism \caption{Requisiti di qualità con le relative descrizioni e le relative fonti} @@ -262,7 +265,7 @@ \section{Requisiti} \req{A}{V}{5} & Il sistema deve fare uso di un protocollo per comunicare con il \glock{Gatweay} & Capitolato \autism \req{A}{V}{6} & Il sistema deve fare uso di \glock{API} per la comunicazione con le applicazioni & Capitolato \autism % SPOSTAMENTO DA REQUISITI PRESTAZIONALI - \req{A}{V}{7} & La web app deve essere compatibile il browser \glock{Firefox} dalla versione 69.0 & Capitolato \autism + \req{A}{V}{7} & La web app deve essere compatibile con il browser \glock{Firefox} dalla versione 69.0 & Capitolato \autism \req{A}{V}{8} & La web app deve essere compatibile con il browser \glock{Chrome} dalla versione 75.0 & Capitolato \autism \req{A}{V}{9} & La web app deve essere compatibile con il browser \glock{Safari} dalla versione 13.0 & Capitolato \autism \req{B}{V}{10} & La web app deve essere compatibile con il browser \glock{Edge} dalla versione 42.0 & Capitolato \autism diff --git a/esterni/analisi_requisiti/res/sections/Sez5-Tracciamento/Tracciamento.tex b/esterni/analisi_requisiti/res/sections/Sez5-Tracciamento/Tracciamento.tex index 06387ed..42c534e 100644 --- a/esterni/analisi_requisiti/res/sections/Sez5-Tracciamento/Tracciamento.tex +++ b/esterni/analisi_requisiti/res/sections/Sez5-Tracciamento/Tracciamento.tex @@ -1,7 +1,7 @@ \section{Tracciamento dei requisiti} \subsection{Requisito - Fonte} \begin{center} - \rowcolors{2}{white}{lightest-grayest} + \rowcolors{2}{lightest-grayest}{white} \begin{longtable}{|c|c|} \hline \rowcolor{lighter-grayer}{ \textbf{ID Requisito} } & {\textbf{Fonte} } \\ \hline @@ -35,9 +35,9 @@ \section{Tracciamento dei requisiti} \sreq{B}{F}{8.5} & UC 4.2.3\\ \hline \sreq{B}{F}{8.6} & UC 4.3, VE\_2020-01-10\_9.2\\ \hline % info dispositivi - \req{A}{F}{9} & UC 5.2\\ \hline + \req{A}{F}{9} & UC 5.2, UC 5.10\\ \hline \req{A}{F}{10} & UC 5.8\\ \hline - \req{A}{F}{11} & UC 5.2 \\ \hline + \req{A}{F}{11} & UC 5.2, UC 5.10 \\ \hline \sreq{B}{F}{11.1} & UC 6.2\\ \hline \req{A}{F}{12} & UC 5.2, VE\_2020-01-10\_9.1\\ \hline \sreq{B}{F}{12.1} & UC 6.2, VE\_2020-01-10\_9.1\\ \hline @@ -132,11 +132,14 @@ \section{Tracciamento dei requisiti} \sreq{B}{F}{71.2} & Capitolato \\ \hline \req{A}{F}{72} & Capitolato \\ \hline - \req{A}{F}{73} & Capitolato \\ \hline - \req{A}{F}{74} & Capitolato \\ \hline - \req{A}{F}{75} & Capitolato \\ \hline - \req{A}{F}{76} & Capitolato \\ \hline - \req{A}{F}{77} & Capitolato \\ \hline + \req{A}{F}{73} & UC 24.1 \\ \hline + \req{A}{F}{74} & UC 24.2 \\ \hline + \req{A}{F}{75} & UC 24.3 \\ \hline + \req{A}{F}{76} & UC 24.5 \\ \hline + \req{A}{F}{77} & UC 24.4 \\ \hline + \req{A}{F}{78} & UC 24.7 \\ \hline + \req{C}{F}{79} & UC 7.6 \\ \hline + \req{C}{F}{80} & UC 11.7 \\ \hline %prestazionali \req{A}{P}{1} & Interna, VE\_2020-01-10\_9.6, VE\_2020-01-10\_9.7\\ \hline @@ -201,7 +204,6 @@ \section{Tracciamento dei requisiti} UC 4.2.3 & \sreq{B}{F}{8.5} \\ \hline \multirow{2}{*}{UC 4.3} & \req{A}{F}{63} \\ & \sreq{B}{F}{8.6} \\ \hline - \pagebreak \multirow{3}{*}{UC 5.1} & \req{A}{F}{4} \\ & \req{A}{F}{5} \\ & \req{A}{F}{6} \\ \hline @@ -218,6 +220,8 @@ \section{Tracciamento dei requisiti} UC 5.6 & \req{A}{F}{14} \\ \hline UC 5.7 & \req{A}{F}{15} \\ \hline UC 5.8 & \req{A}{F}{10} \\ \hline + \multirow{2}{*}{UC 5.10} & \req{A}{F}{9} \\ + & \req{A}{F}{11} \\ \hline UC 6.1 & \req{A}{F}{35} \\ \hline \multirow{2}{*}{UC 6.2} & \sreq{B}{F}{11.1} \\ & \sreq{B}{F}{12.1} \\ \hline @@ -236,6 +240,7 @@ \section{Tracciamento dei requisiti} UC 7.4.2 & \sreq{B}{F}{18.2} \\ \hline UC 7.4.3 & \sreq{B}{F}{18.3} \\ \hline UC 7.5 & \req{A}{F}{19} \\ \hline + UC 7.6 & \req{C}{F}{79} \\ \hline UC 8.1 & \req{A}{F}{28} \\ \hline UC 8.2 & \req{A}{F}{29} \\ \hline UC 8.3 & \req{A}{F}{30} \\ \hline @@ -256,11 +261,13 @@ \section{Tracciamento dei requisiti} UC 11.4.7 & \sreq{B}{F}{24.6} \\ \hline UC 11.4.5 & \req{A}{F}{25} \\ \hline UC 11.5 & \req{A}{F}{26} \\ \hline + UC 11.7 & \req{A}{F}{80} \\ \hline UC 11.2 & \req{A}{F}{27} \\ \hline UC 12.1 & \req{A}{F}{31} \\ \hline UC 12.2 & \req{A}{F}{32} \\ \hline UC 13 & \req{C}{F}{42} \\ \hline UC 14 & \sreq{A}{F}{1.1} \\ \hline + \pagebreak \multirow{2}{*}{UC 15.1} & \req{A}{F}{33} \\ & \req{A}{F}{63} \\ \hline UC 16.4 & \req{A}{F}{43} \\ \hline @@ -269,6 +276,12 @@ \section{Tracciamento dei requisiti} \multirow{2}{*}{UC 18} & \req{A}{F}{60} \\ & \req{A}{F}{61} \\ \hline + UC 24.1 & \sreq{A}{F}{73} \\ \hline + UC 24.2 & \sreq{A}{F}{74} \\ \hline + UC 24.3 & \sreq{A}{F}{75} \\ \hline + UC 24.4 & \sreq{A}{F}{77} \\ \hline + UC 24.5 & \sreq{A}{F}{76} \\ \hline + UC 24.7 & \sreq{A}{F}{78} \\ \hline \pagebreak \multirow{39}{*}{Capitolato} & \req{A}{F}{64} \\ & \sreq{A}{F}{64.1} \\ diff --git a/esterni/glossario/main.tex b/esterni/glossario/main.tex index ad47133..bb39be5 100644 --- a/esterni/glossario/main.tex +++ b/esterni/glossario/main.tex @@ -13,8 +13,8 @@ \newcommand{\docNome}{ GLOSSARIO } \newcommand{\docNomeProgetto}{ ThiReMa Project } -\newcommand{\docBaseline}{+b0.10} -\newcommand{\docVersione}{2.0.0\docBaseline} +\newcommand{\docBaseline}{+b0.15} +\newcommand{\docVersione}{1.4.0\docBaseline} \newcommand{\docStatus}{Approvato} \newcommand{\docUso}{Esterno} \newcommand{\docDescrizione}{ @@ -30,14 +30,13 @@ Red Round Robin } \newcommand{\docRedattori}{ - Mariano Sciacco + Lorenzo Dei Negri } \newcommand{\docVerificatori}{ - Nicolò Frison + Mariano Sciacco } \newcommand{\docApprovazione}{ - Fouad Mouad \\& - Giovanni Vidotto + Alessandro Tommasin } % ----- NON MODIFICARE SOTTO QUESTA RIGA ----- diff --git a/esterni/glossario/res/registro.tex b/esterni/glossario/res/registro.tex index c0d7d25..63e1e1c 100644 --- a/esterni/glossario/res/registro.tex +++ b/esterni/glossario/res/registro.tex @@ -10,31 +10,31 @@ \section*{Registro delle modifiche} \endfirsthead % ----- Modificare da qui ----- - 2.0.0+b0.10 & Approvazione per il rilascio esterno & 2020-03-09 & Fouad Mouad & Responsabile \\ + 1.4.0+b0.15 & Approvazione documento & 2020-02-05 & Alessandro Tommasin & Responsabile \\ \hline - 1.1.0+b0.5 & Approvazione documento & 2020-02-05 & Giovanni Vidotto & Responsabile \\ + 1.3.1+b0.14 & Aggiunta e verifica di nuovi termini & 2020-04-08 & Lorenzo Dei Negri e Mariano Sciacco & Responsabile e verificatore \\ \hline - 1.0.1+b0.4 & Aggiunta e verifica di nuovi termini & 2020-02-04 & Mariano Sciacco e Nicolò Frison & Responsabile e verificatore \\ + 1.3.0+b0.5 & Approvazione documento & 2020-02-05 & Giovanni Vidotto & Responsabile \\ \hline - 1.0.0+b0.4 & Approvazione per il rilascio esterno & 2020-01-15 & Alessandro Tommasin & Responsabile \\ + 1.2.1+b0.4 & Aggiunta e verifica di nuovi termini & 2020-02-04 & Mariano Sciacco e Nicolò Frison & Responsabile e verificatore \\ \hline - 0.3.0+b0.4 & Approvazione documento & 2020-01-15 & Alessandro Tommasin & Responsabile \\ + 1.2.0+b0.4 & Approvazione documento & 2020-01-15 & Alessandro Tommasin & Responsabile \\ \hline - 0.2.2+b0.3 & Aggiunta e verifica termini individuati nella redazione finale dei documenti & 2020-01-06 & Mariano Sciacco e Lorenzo Dei Negri & Analista e verificatore \\ + 1.1.2+b0.3 & Aggiunta e verifica termini individuati nella redazione finale dei documenti & 2020-01-06 & Mariano Sciacco e Lorenzo Dei Negri & Analista e verificatore \\ \hline - 0.2.1+b0.3 & Aggiunta e verifica termini individuati nell'\dext{Analisi dei Requisiti} & 2020-01-02 & Giovanni Vidotto e Mariano Sciacco & Analista e verificatore \\ + 1.1.1+b0.3 & Aggiunta e verifica termini individuati nell'\dext{Analisi dei Requisiti v2.5.0} & 2020-01-02 & Giovanni Vidotto e Mariano Sciacco & Analista e verificatore \\ \hline - 0.2.0+b0.3 & Approvazione documento & 2020-01-01 & Lorenzo Dei Negri & Responsabile \\ + 1.1.0+b0.3 & Approvazione documento & 2020-01-01 & Lorenzo Dei Negri & Responsabile \\ \hline - 0.1.3+b0.2 & Aggiunta e verifica termini individuati nel \dext{Piano di Qualifica} & 2019-11-29 & Giuseppe Vito Bitetti e Nicolò Frison & Analista e verificatore \\ + 1.0.3+b0.2 & Aggiunta e verifica termini individuati nel \dext{Piano di Qualifica v1.6.0} & 2019-11-29 & Giuseppe Vito Bitetti e Nicolò Frison & Analista e verificatore \\ \hline - 0.1.2+b0.2 & Aggiunta e verifica termini individuati nel \dext{Piano di Progetto} & 2019-11-27 & Fouad Mouad e Giuseppe Vito Bitetti & Analista e verificatore \\ + 1.0.2+b0.2 & Aggiunta e verifica termini individuati nel \dext{Piano di Progetto v2.5.0} & 2019-11-27 & Fouad Mouad e Giuseppe Vito Bitetti & Analista e verificatore \\ \hline - 0.1.1+b0.2 & Aggiunta termini individuati nelle \dext{Norme di Progetto} & 2019-12-23 & Mariano Sciacco e Fouad Mouad & Analista e verificatore \\ + 1.0.1+b0.2 & Aggiunta termini individuati nelle \dext{Norme di Progetto v2.3.0} & 2019-12-23 & Mariano Sciacco e Fouad Mouad & Analista e verificatore \\ \hline - 0.1.0+b0.1 & Approvazione documento & 2019-12-07 & Mariano Sciacco & Responsabile \\ + 1.0.0+b0.1 & Approvazione documento & 2019-12-07 & Mariano Sciacco & Responsabile \\ \hline - 0.0.2+b0.0 & Inserimento e verifica termini individuati nello \dext{Studio di fattibilità} & 2020-12-01 & Alessandro Tommasin e Giovanni Vidotto & Analista e verificatore \\ + 0.0.2+b0.0 & Inserimento e verifica termini individuati nello \dext{Studio di fattibilità v1.0.0} & 2020-12-01 & Alessandro Tommasin e Giovanni Vidotto & Analista e verificatore \\ \hline 0.0.1+b0.0 & Creazione documento & 2019-11-29 & Mariano Sciacco & Redattore \\ \hline diff --git a/esterni/glossario/res/sections/contenuto.tex b/esterni/glossario/res/sections/contenuto.tex index 647a008..0f59652 100644 --- a/esterni/glossario/res/sections/contenuto.tex +++ b/esterni/glossario/res/sections/contenuto.tex @@ -4,7 +4,7 @@ \subsection{Account} Un account, indica quell'insieme di funzionalità, strumen \subsection{AJAX} AJAX, acronimo di Asynchronous JavaScript and XML, è una tecnica di sviluppo software per la realizzazione di applicazioni web interattive. Lo sviluppo di applicazioni HTML con AJAX si basa su uno scambio di dati in background fra web browser e server, che consente l'aggiornamento dinamico di una pagina web senza esplicito ricaricamento da parte dell'utente. \subsection{Alert} Segnale generato per comunicare un messaggio. \subsection{Amazon Web Services (AWS)} Amazon Web Services, Inc. (nota con la sigla AWS) è un'azienda statunitense di proprietà del gruppo Amazon, che fornisce servizi di cloud computing -\subsection{Amministratore} Vedere sezione 4.1.4 del documento \dext{Norme di Progetto v1.0.0}. +\subsection{Amministratore} Vedere sezione 4.1.4 del documento \dext{Norme di Progetto v2.3.0}. \subsection{API} Le API (acronimo di Application Programming Interface, ovvero Interfaccia di programmazione delle applicazioni) sono set di definizioni e protocolli con i quali vengono realizzati e integrati software applicativi. \subsection{API Connect} L'API Kafka Connect è un'interfaccia che semplifica ed automatizza l'integrazione di nuove fonti di dati. \subsection{API Consumer} L'API Kafka Consumer consente alle applicazioni di leggere flussi di dati dal cluster Kafka. @@ -39,6 +39,7 @@ \subsection{Chrome} Browser web sviluppato da Google. \subsection{Client-side} Con client-side si intende che l'azione viene compiuta nel lato utente (ovvero nel suo computer) ed è contrapposta ad un'azione server-side. \subsection{Cloud} Con il termine inglese cloud (computing) si indica un paradigma di erogazione di servizi offerti on demand da un fornitore ad un cliente finale attraverso la rete Internet. \subsection{Cloud formation} CloudFormation è un prodotto di AWS che consente di usare linguaggi di programmazione o un semplice file di testo per modellare ed effettuare il provisioning, in modo automatizzato e sicuro, di tutte le risorse di un'infrastruttura nell'ambiente cloud AWS e non solo. +\subsection{Code smell} Un code smell è una o più istruzioni che risultano essere confusionarie e quindi difficili da comprendere e manutenere. \subsection{Computation-as-a-Service (Caas)} Computation-as-a-Service è uno dei modelli di cloud computing in cui viene permesso di eseguire del codice su di una piattaforma cloud come servizio. \subsection{Container, Docker} Un container \textit{Docker} è una istanza di una immagine \textit{Docker} in cui viene eseguito un sistema operativo e, in genere, un solo applicativo, con le proprie dipendenze e configurazioni. Un container è completamente indipendente dagli altri container e può comunicare con essi tramite una interfaccia di rete apposita. \subsection{Containerizzazione} Il processo di containerizzazione consiste nell'isolare processi in modo da poterli eseguire in maniera indipendente. @@ -158,7 +159,7 @@ \subsection{Plug-in} Un plug-in è un modulo aggiuntivo di un programma, utiliz \subsection{PostgreSQL} PostgreSQL è un completo DBMS ad oggetti rilasciato con licenza libera. \subsection{Processi} Insieme di attività che interagiscono per produrre un risultato. \subsection{Producer-Consumer, modello} Modello di comunicazione utilizzato da Kafka per inviare e ricevere dei topic. -\subsection{Programmatore} Vedere sezione 4.1.4 del documento \dext{Norme di Progetto v1.0.0}. +\subsection{Programmatore} Vedere sezione 4.1.4 del documento \dext{Norme di Progetto v2.3.0}. \subsection{Proof-of-concept } Con il termine proof-of-concept si intende una realizzazione incompleta o abbozzata di un determinato progetto o metodo, allo scopo di provarne la fattibilità o dimostrare la fondatezza di alcuni principi o concetti costituenti. \subsection{Proximity Sensing} Proximity Sensing è una tecnica per ricavare la posizione di un punto mobile è ricavandola dalle coordinate di determinate stazioni che tracciano il segnale che viene trasmesso da esse (cell ID). Ogni stazione ha un suo pattern di segnale. \subsection{Publisher} Con il termine Publisher si intende il mittente di un messaggio. @@ -170,27 +171,28 @@ \subsection{Rancher} Rancher è una piattaforma di orchestrazione open-source c \subsection{Regressione} Azione per cui sono state effettuate delle modifiche che causano il mal funzionamento di altre unità del software. \subsection{Regressione Lineare (RL)} La regressione lineare rappresenta un metodo di stima del valore atteso condizionato di una variabile dipendente Y dati i valori di altre variabili indipendenti, X. \subsection{Repository} Un repository è un archivio web nel quale vengono raggruppati contenuti di varie tipologie, generalmente pacchetti software. -\subsection{Responsabile} Vedere sezione 4.1.4 del documento \dext{Norme di Progetto v2.0.0}. +\subsection{Responsabile} Vedere sezione 4.1.4 del documento \dext{Norme di Progetto v2.3.0}. \subsection{Rest, web } Vedi API REST. \subsection{Runtime} Con il termine runtime si intende il periodo di vita di un programma che intercorre durante la sua esecuzione. \newpage \section{S} -\subsection{Safari} Browser web sviluppato dalla Apple Inc. inizialmente per i sistemi operativi iOS e macOS, e successivamente sviluppato anche per Windows. -\subsection{Sage Maker} Amazon Sage Maker è un servizio completamente gestito che consente a data scientist e sviluppatori di creare, formare e distribuire in modo rapido modelli di machine learning (ML). +\subsection{Safari} Browser web sviluppato dalla Apple Inc. inizialmente per i sistemi operativi iOS e macOS, e successivamente sviluppato anche per Windows. +\subsection{Sage Maker} Amazon Sage Maker è un servizio completamente gestito che consente a data scientist e sviluppatori di creare, formare e distribuire in modo rapido modelli di machine learning (ML). \subsection{Scripting, linguaggio di} Con il termine scripting si intende un linguaggio destinato in genere a compiti di automazione del sistema operativo e delle applicazioni. -\subsection{Server farm} Il termine Server farm è utilizzato per indicare una serie di server collocati in un unico ambiente in modo da poterne centralizzare la gestione, la manutenzione e la sicurezza. -\subsection{Server side} Con il termine server side si intende un'azione compiuta lato server e contrapposta ad un'azione client side. -\subsection{Serverless} Con il termine serverless si intende un network la cui gestione non viene incentrata su dei server, ma viene dislocata fra i vari utenti che utilizzano il network stesso, quindi il lavoro necessario di gestione del network viene eseguito dagli stessi utilizzatori. -\subsection{Slack} Slack è un software che rientra nella categoria degli strumenti di collaborazione aziendale utilizzato per inviare messaggi in modo istantaneo ai membri del team. -\subsection{Solidity} Solidity è un linguaggio orientato ad oggetti per la scrittura di contratti smart, soprattutto sulla piattaforma Ethereum. -\subsection{SPICE} Acronimo di Software Process Improvement and Capability dEtermination è un set di standard tecnici per il processo di sviluppo del software. -\subsection{Spring, framework} Spring è un framework Java open-source che viene utilizzato per lo sviluppo di applicativi web e di servizi API. +\subsection{Server farm} Il termine Server farm è utilizzato per indicare una serie di server collocati in un unico ambiente in modo da poterne centralizzare la gestione, la manutenzione e la sicurezza. +\subsection{Server side} Con il termine server side si intende un'azione compiuta lato server e contrapposta ad un'azione client side. +\subsection{Serverless} Con il termine serverless si intende un network la cui gestione non viene incentrata su dei server, ma viene dislocata fra i vari utenti che utilizzano il network stesso, quindi il lavoro necessario di gestione del network viene eseguito dagli stessi utilizzatori. +\subsection{Slack} Slack è un software che rientra nella categoria degli strumenti di collaborazione aziendale utilizzato per inviare messaggi in modo istantaneo ai membri del team. +\subsection{Solidity} Solidity è un linguaggio orientato ad oggetti per la scrittura di contratti smart, soprattutto sulla piattaforma Ethereum. +\subsection{SonarCloud} SonarCloud è un servizio web che, integrato con GitHub, permette di eseguire e gestire controlli di qualità del codice presente all'interno di un repository e di riportare tutti i risultati delle analisi effettuate in un cruscotto accessibile tramite web. +\subsection{SPICE} Acronimo di Software Process Improvement and Capability dEtermination è un set di standard tecnici per il processo di sviluppo del software. +\subsection{Spring, framework} Spring è un framework Java open-source che viene utilizzato per lo sviluppo di applicativi web e di servizi API. \subsection{Stakeholder} Con il termine stakeholder si intendono le parti interessate nella realizzazione di un progetto o più in generale di un endeavor (o impresa). -\subsection{Subscriber} Con il termine subscriber si intende il destinatario di un messaggio. -\subsection{Suite} Insieme di applicazioni software appartenenti allo stesso produttore. -\subsection{Support Vector Machine (SVM)} Le macchine a vettori di supporto (SVM, Support-Vector Machines) sono dei modelli di apprendimento supervisionato associati ad algoritmi di apprendimento per la regressione e la classificazione. -\subsection{Sviluppo, processo di} Processo che fa parte del ciclo di vita del software in cui viene sviluppata la parte software del progetto. -\subsection{System testing} Test che verifica il funzionamento del prodotto completamente integrato con tutte le sue componenti. +\subsection{Subscriber} Con il termine subscriber si intende il destinatario di un messaggio. +\subsection{Suite} Insieme di applicazioni software appartenenti allo stesso produttore. +\subsection{Support Vector Machine (SVM)} Le macchine a vettori di supporto (SVM, Support-Vector Machines) sono dei modelli di apprendimento supervisionato associati ad algoritmi di apprendimento per la regressione e la classificazione. +\subsection{Sviluppo, processo di} Processo che fa parte del ciclo di vita del software in cui viene sviluppata la parte software del progetto. +\subsection{System testing} Test che verifica il funzionamento del prodotto completamente integrato con tutte le sue componenti. \newpage \section{T} \subsection{Telegram} Telegram è un servizio di messaggistica istantanea e broadcasting basato su cloud. @@ -216,11 +218,14 @@ \subsection{Vue.js} Vue.js è un framework open-source di Javascript che permet \newpage \section{W} \subsection{W3C} Acronimo di World Wide Web Consortium, è un'organizzazione non governativa internazionale il cui scopo è sviluppare tutte le potenzialità del World Wide Web. \subsection{Walkthrough} Tecnica di analisi statica che consiste nell'analizzare il prodotto per intero in ogni sua parte. -\subsection{Web-Application} Con Web-Application o Web-App si intendono tutte le applicazioni distribuite web-based ovvero applicazioni accessibili/fruibili via web per mezzo di un network. +\subsection{Web application} Con Web-Application o Web-App si intendono tutte le applicazioni distribuite web-based ovvero applicazioni accessibili/fruibili via web per mezzo di un network. \subsection{Wiki} Wiki è un'applicazione web che permette la creazione, la modifica e l'illustrazione collaborativa di pagine all'interno di un sito web. \subsection{Wireframe} Un wireframe o wire frame model indica un tipo di rappresentazione in computer grafica di oggetti tridimensionali. \subsection{Workflow} Workflow è l’automazione totale o parziale di un processo aziendale, in cui documenti, informazioni o compiti passano da un partecipante a un altro per svolge attività, secondo un insieme di regole definite. \subsection{Workspace} Con il termine workspace si indica l'ambiente di lavoro, comprendendo anche la strumentazione utilizzata. +\newpage \section{X} +\subsection{XML} XML è un metalinguaggio per la definizione di linguaggi di markup che consente di definire e controllare il significato degli elementi contenuti in un documento o in un testo. + \newpage \section{Y} \subsection{YAML} YAML è un formato per la serializzazione di dati utilizzabile da esseri umani. Il linguaggio sfrutta concetti di altri linguaggi come il C, il Perl e il Python e idee dal formato XML. \ No newline at end of file diff --git a/esterni/lettera/images/alessandro.png b/esterni/lettera/images/alessandro.png new file mode 100644 index 0000000..4bed299 Binary files /dev/null and b/esterni/lettera/images/alessandro.png differ diff --git a/esterni/lettera/lettera_rq.tex b/esterni/lettera/lettera_rq.tex new file mode 100644 index 0000000..f9d730f --- /dev/null +++ b/esterni/lettera/lettera_rq.tex @@ -0,0 +1,74 @@ +%!TEX output_directory = .cache + +\documentclass[12pt]{letter} +\usepackage[utf8]{inputenc} +\usepackage{graphicx} +\usepackage{eurosym} +\usepackage{charter} +\usepackage{hyperref} +\usepackage{xcolor} + +\hypersetup{ + colorlinks, + linkcolor=[HTML]{404040}, + urlcolor={red!50!black} +} + +\signature{\includegraphics[scale=0.6]{images/alessandro} + Alessandro Tommasin \\ + \textit{Responsabile di progetto} + \href{mailto:redroundrobin.site@gmail.com}{redroundrobin.site@gmail.com}} +\address{ Via Trieste 63 \\ Padova \\ PD 35121, Italia} + +\date{13 aprile 2020} + +\begin{document} + +\begin{letter}{ } + +\includegraphics[scale=0.17]{images/logo.png} + +\opening{Gentile prof. Vardanega,\\ Gentile prof. Cardin, } + +con la presente il gruppo 6, \textit{Red Round Robin}, vorrebbe richiedere la partecipazione alla \textit{Revisione di Qualifica} in qualità di fornitori per il progetto \textbf{ThiReMa (Capitolato 6)}, proposto dall'azienda \textit{SanMarco Informatica}. +\newline +Inoltre, comunichiamo che le regole di versionamento dei documenti hanno subito alcune variazioni, come riportato nelle \textit{Norme di Progetto v2.3.0+b0.15}; questo ha comportato un cambio di versione di tutti i documenti. + +Le forniamo il link di una repository pubblica da cui è possibile scaricare e visualizzare online i documenti richiesti dal progetto. + +In particolare: + +\begin{itemize} + \item \textit{Analisi dei Requisiti v1.4.0+b0.15}; + \item \textit{Piano di Qualifica v1.6.0+b0.15}; + \item \textit{Piano di Progetto v2.5.0+b0.15}; + \item \textit{Norme di Progetto v2.3.0+b0.15}; + \item \textit{Glossario v1.4.0+b0.15}; + \item \textit{Manuale del manutentore v1.0.0+b0.15}; + \item \textit{Manuale dell'utente v1.0.0+b0.15}; + \item \textit{verbali interni} dal 2020-03-09 a oggi; + \item \textit{verbali esterni} dal 2020-03-09 a oggi. +\end{itemize} + +Il link per scaricare e visualizzare i documenti è il seguente: + +\begin{center} +\href{https://drive.google.com/drive/folders/1iKZ3SAwq-iA_hfYzytVylcceP-fwv8xA?usp=sharing}{http://rq.redroundrobin.site} +\end{center} + +%\newpage + +Per qualunque altro chiarimento o problema, rimaniamo a completa disposizione. + +\closing{Cordiali saluti,} + + +\vspace{3em} +\ps + +\textbf{P.S.} Se il link fornito non dovesse funzionare, potete fare riferimento al seguente link: +\href{https://www.redroundrobin.site}{www.redroundrobin.site} + +\end{letter} + +\end{document} diff --git a/esterni/manuale_manutentore/main.tex b/esterni/manuale_manutentore/main.tex new file mode 100644 index 0000000..d02ebea --- /dev/null +++ b/esterni/manuale_manutentore/main.tex @@ -0,0 +1,101 @@ +%!TEX output_directory = .cache +% --------------------------- +% [ Manuale Manutentore ] +% ---------------------- +% Red Round Robin +% Progetto di SWE (2019-20) +% Template by Maxelweb +% --------------------------- + +% Configurazione primaria del documento + +% -------------- + +\newcommand{\docNome}{ MANUALE DEL MANUTENTORE } +\newcommand{\docBaseline}{+b0.15} +\newcommand{\docVersione}{1.0.0\docBaseline} +\newcommand{\docNomeProgetto}{ ThiReMa Project } +\newcommand{\docStatus}{Approvato} +\newcommand{\docUso}{Esterno} +\newcommand{\docDescrizione}{ + Il documento contiene una guida per i manutentori del progetto ThiReMa. +} + +% -------------- + +\newcommand{\docDestinatari}{ + SanMarco Informatica \\& + Prof. Tullio Vardanega \\& + Prof. Riccardo Cardin \\& + Red Round Robin + +} +\newcommand{\docRedattori}{ + Lorenzo Dei Negri \\& + Nicolò Frison \\& + Alessandro Tommasin +} +\newcommand{\docVerificatori}{ + Mariano Sciacco \\& + Lorenzo Dei Negri \\& + Fouad Mouad +} +\newcommand{\docApprovazione}{ + Alessandro Tommasin +} + +% ----- NON MODIFICARE SOTTO QUESTA RIGA ----- + +% --------------------------- +% Configurazioni +% --------------------------- + +\documentclass[11pt,a4paper,table]{article} + +\input{res/configurazione} +\usepackage{sectsty} + +% --------------------------- +% Dati frontespizio +% --------------------------- + +\title{\hr \huge \textsc{\docNome} \\ + \vspace{11pt} \large \textsc{\docNomeProgetto} \hr} + +\author{} % Non toccare +\date{} % Non toccare + +% --------------------------- +% Composizione del documento +% --------------------------- + +\begin{document} + +% Frontespizio + +\pagenumbering{gobble} +\DeactivateBG +\input{res/frontespizio} + +% Registro delle modifiche + +\newpage +\ActivateBG +\pagenumbering{arabic} +\input{res/registro} + +% Tabella dei contenuti + +\newpage +\tableofcontents +\listoffigures + +% Sezioni + +\newpage +\input{res/sezioni} + +\end{document} + + +% EOF diff --git a/esterni/manuale_manutentore/res/configurazione.tex b/esterni/manuale_manutentore/res/configurazione.tex new file mode 100644 index 0000000..3a7dbdc --- /dev/null +++ b/esterni/manuale_manutentore/res/configurazione.tex @@ -0,0 +1,172 @@ +% Ultimo aggiornamento: 13 gennaio 2020 +% Configurazione delle dipendenze e dei package +\usepackage{pdflscape} +\usepackage{geometry} +\usepackage{graphicx} +\usepackage{multirow} +\usepackage[T1]{fontenc} +\usepackage[utf8]{inputenc} +\usepackage{charter} +\usepackage{eurosym} +\usepackage[italian]{babel} +\usepackage{float} +\usepackage{subcaption} +\usepackage{wrapfig} +\usepackage{fancyhdr} +\usepackage{lastpage} +\usepackage{amsfonts} +\usepackage{fancyvrb} +\usepackage{background} +\usepackage{xcolor} +\usepackage{hyperref} +\usepackage{listings} +\usepackage{longtable} +\usepackage{colortbl} +\usepackage{tikz} +\usepackage{titlesec} +\usepackage{amsmath} +\usepackage{grffile} + + + +% Impostazione sottotitolo di quarto livello e quinto livello + +\setcounter{secnumdepth}{4} +\setcounter{tocdepth}{4} + +\titleformat{\paragraph} +{\normalfont\normalsize\bfseries}{\theparagraph}{1em}{} +\titlespacing*{\paragraph}{0pt}{2.25ex plus 1ex minus .2ex}{1.5ex plus .2ex} + +\titleformat{\subparagraph} +{\normalfont\normalsize\bfseries}{\thesubparagraph}{1em}{} +\titlespacing*{\subparagraph}{0pt}{1.75ex plus 1ex minus .2ex}{.75ex plus .1ex} + + +% Impostazioni pagina e margini + +\geometry{ + margin=1.0in, + top=19.2mm, % NON TOCCARE + bottom=30mm, + left=20mm, + right=20mm +} + +% Definizione colori + +\definecolor{footer-gray}{HTML}{808080} +\definecolor{light-gray}{gray}{0.6} +\definecolor{light-grayer}{gray}{0.75} +\definecolor{lighter-grayer}{gray}{0.85} +\definecolor{lightest-grayest}{gray}{0.94} +\definecolor{codegreen}{rgb}{0,0.4,0.2} +\definecolor{codegray}{rgb}{0.5,0.5,0.5} +\definecolor{codepurple}{rgb}{0.58,0,0.82} +\definecolor{backcolour}{rgb}{0.95,0.95,0.96} + + +% Impostazione header e footer + +\pagestyle{fancy} +\setlength\headheight{33pt} +\renewcommand{\headrulewidth}{0pt} +\fancyhead{} +\lhead{\includegraphics[height=10mm]{res/images/logo.png}} +\rhead{\raisebox{1.4\height}{\leftmark}} + + +\renewcommand{\footrulewidth}{0.1pt} +\fancyfoot{} +\lfoot{ \textcolor{footer-gray}{\docNome - v\docVersione} } + +\renewcommand{\footrule}{\hbox to\headwidth{\color{light-grayer}\leaders\hrule height \footrulewidth\hfill}} +\rfoot{ \textcolor{footer-gray}{Pagina \thepage \hspace{1pt} di \pageref*{LastPage}} } + +% Grandezza paragrafi e spaziatura frasi + +\setlength{\parindent}{1.55em} +\setlength{\parskip}{1.0em} +\renewcommand{\baselinestretch}{1.025} + +% Colori link + +\hypersetup{ + colorlinks, + linkcolor=[HTML]{404040}, + citecolor={blue!50!black}, + urlcolor={red!50!black} +} +\PassOptionsToPackage{hyphens}{url}\usepackage{hyperref} + +% Equivalente a
+ +\newcommand{\hr}{\par\vspace{-.1\ht\strutbox}\noindent\hrulefill\par} + +% Tabelle e tabulazione + +\setlength{\tabcolsep}{10pt} +\renewcommand{\arraystretch}{1.4} + +% Unicode per simbolo euro + +\DeclareUnicodeCharacter{20AC}{\euro} + +% Configurazione sfondo + +\newcommand\DeactivateBG{\backgroundsetup{contents={}}} +\newcommand\ActivateBG{ \backgroundsetup{ + scale=1.0, + color=black, + opacity=1.0, + angle=0, + contents={% + \includegraphics[height=297mm]{res/images/background.png} + }% +}} + +% Codice e snippet + +\renewcommand{\lstlistingname}{Snippet} +\renewcommand{\lstlistlistingname}{Lista di \lstlistingname s} + + +\lstdefinestyle{chungusHighlight}{ + frame=tb, + backgroundcolor=\color{backcolour}, + commentstyle=\color{codegreen}, + keywordstyle=\color{magenta}\textbf, + numberstyle=\color{codegray}, + stringstyle=\color{codepurple}, + basicstyle={\ttfamily}, + breakatwhitespace=false, + breaklines=true, + captionpos=b, + keepspaces=true, + numbers=left, + numbersep=5pt, + showspaces=false, + showstringspaces=false, + showtabs=false, + numbers=none, + tabsize=2 +} + +\lstset{style=chungusHighlight} + + +% Comando per aggiungere le pagine di ogni sezione + +\newcommand{\yetAnotherSectionNamed}[1]{% + \newpage + \input{res/sections/#1} +}% + + +% Comando per i documenti esterni e il glossario + +\newcommand{\dext}[1]{\textsc{#1\docBaseline\textsubscript{\textit{D}}}} + +\newcommand{\glock}[1]{\textsc{#1\textsubscript{\textit{G}}}} + + diff --git a/esterni/manuale_manutentore/res/frontespizio.tex b/esterni/manuale_manutentore/res/frontespizio.tex new file mode 100644 index 0000000..b913f6e --- /dev/null +++ b/esterni/manuale_manutentore/res/frontespizio.tex @@ -0,0 +1,57 @@ + +% FRONTESPIZIO + +% Logo aziendale + +\begin{figure}[t!] + \centering + \includegraphics[height=8.5em]{res/images/logo.png} +\end{figure} + +\vspace{-7.5em} + +% Titolo principale + +\maketitle +\thispagestyle{empty} + + +% Riferimenti email e sito web + +\vspace{-7em} + +\begin{center} + \href{https://www.redroundrobin.site}{www.redroundrobin.site} --- \href{mailto:redroundrobin.site@gmail.com}{redroundrobin.site@gmail.com} +\end{center} + +\vspace{1em} + +% Informazioni documento + +\begin{table}[ht] + \begin{center} + \label{tab:Informazioni_Documento} + \begin{tabular}{r|l} + \multicolumn{2}{c}{ \textsc{Informazioni sul documento} } \\ + \hline + \textbf{Versione} & \docVersione \\ + \textbf{Uso} & \docUso \\ + \textbf{Stato} & \docStatus \\ + \textbf{Destinatari} & \docDestinatari \\ + \textbf{Redattori} & \docRedattori \\ + \textbf{Verificatori} & \docVerificatori \\ + \textbf{Approvazione} & \docApprovazione \\ + \end{tabular} + \end{center} +\end{table} + + +% Descrizione del documento + +%\vspace{0em} + +%\begin{center} +% \textbf{Descrizione}\\ +% \docDescrizione +%\end{center} + diff --git a/esterni/manuale_manutentore/res/images/API/ConfigPackage.png b/esterni/manuale_manutentore/res/images/API/ConfigPackage.png new file mode 100644 index 0000000..1d061a5 Binary files /dev/null and b/esterni/manuale_manutentore/res/images/API/ConfigPackage.png differ diff --git a/esterni/manuale_manutentore/res/images/API/Controllers.png b/esterni/manuale_manutentore/res/images/API/Controllers.png new file mode 100644 index 0000000..24bfcf8 Binary files /dev/null and b/esterni/manuale_manutentore/res/images/API/Controllers.png differ diff --git a/esterni/manuale_manutentore/res/images/API/ModelsPackage.png b/esterni/manuale_manutentore/res/images/API/ModelsPackage.png new file mode 100644 index 0000000..0a42ed4 Binary files /dev/null and b/esterni/manuale_manutentore/res/images/API/ModelsPackage.png differ diff --git a/esterni/manuale_manutentore/res/images/API/RepositoryPackage.png b/esterni/manuale_manutentore/res/images/API/RepositoryPackage.png new file mode 100644 index 0000000..9ad4eee Binary files /dev/null and b/esterni/manuale_manutentore/res/images/API/RepositoryPackage.png differ diff --git a/esterni/manuale_manutentore/res/images/API/ServicePackage.png b/esterni/manuale_manutentore/res/images/API/ServicePackage.png new file mode 100644 index 0000000..7522620 Binary files /dev/null and b/esterni/manuale_manutentore/res/images/API/ServicePackage.png differ diff --git a/esterni/manuale_manutentore/res/images/API/UtilsPackage.png b/esterni/manuale_manutentore/res/images/API/UtilsPackage.png new file mode 100644 index 0000000..538fe92 Binary files /dev/null and b/esterni/manuale_manutentore/res/images/API/UtilsPackage.png differ diff --git a/esterni/manuale_manutentore/res/images/API/inserimento_utente.png b/esterni/manuale_manutentore/res/images/API/inserimento_utente.png new file mode 100644 index 0000000..7853bf1 Binary files /dev/null and b/esterni/manuale_manutentore/res/images/API/inserimento_utente.png differ diff --git a/esterni/manuale_manutentore/res/images/API/inserimento_view.png b/esterni/manuale_manutentore/res/images/API/inserimento_view.png new file mode 100644 index 0000000..65ab488 Binary files /dev/null and b/esterni/manuale_manutentore/res/images/API/inserimento_view.png differ diff --git a/esterni/manuale_manutentore/res/images/API/packageAPI.png b/esterni/manuale_manutentore/res/images/API/packageAPI.png new file mode 100644 index 0000000..0596848 Binary files /dev/null and b/esterni/manuale_manutentore/res/images/API/packageAPI.png differ diff --git a/esterni/manuale_manutentore/res/images/BOTTELEGRAM/ClassiTelegram.png b/esterni/manuale_manutentore/res/images/BOTTELEGRAM/ClassiTelegram.png new file mode 100644 index 0000000..ac71c4f Binary files /dev/null and b/esterni/manuale_manutentore/res/images/BOTTELEGRAM/ClassiTelegram.png differ diff --git a/esterni/manuale_manutentore/res/images/BOTTELEGRAM/TelegramRichiestaPOST.png b/esterni/manuale_manutentore/res/images/BOTTELEGRAM/TelegramRichiestaPOST.png new file mode 100644 index 0000000..fd1da98 Binary files /dev/null and b/esterni/manuale_manutentore/res/images/BOTTELEGRAM/TelegramRichiestaPOST.png differ diff --git a/esterni/manuale_manutentore/res/images/DATABASE/ER_Modificato.png b/esterni/manuale_manutentore/res/images/DATABASE/ER_Modificato.png new file mode 100644 index 0000000..4e6deef Binary files /dev/null and b/esterni/manuale_manutentore/res/images/DATABASE/ER_Modificato.png differ diff --git a/esterni/manuale_manutentore/res/images/DATACOLLECTOR/ClassikafkaDataCollector.png b/esterni/manuale_manutentore/res/images/DATACOLLECTOR/ClassikafkaDataCollector.png new file mode 100644 index 0000000..40cb227 Binary files /dev/null and b/esterni/manuale_manutentore/res/images/DATACOLLECTOR/ClassikafkaDataCollector.png differ diff --git a/esterni/manuale_manutentore/res/images/DATACOLLECTOR/DataFilter.ThreadsKafkaDataCollector.png b/esterni/manuale_manutentore/res/images/DATACOLLECTOR/DataFilter.ThreadsKafkaDataCollector.png new file mode 100644 index 0000000..6b8d6c9 Binary files /dev/null and b/esterni/manuale_manutentore/res/images/DATACOLLECTOR/DataFilter.ThreadsKafkaDataCollector.png differ diff --git a/esterni/manuale_manutentore/res/images/DATACOLLECTOR/DataInserter.ThreadsKafkaDataCollector.png b/esterni/manuale_manutentore/res/images/DATACOLLECTOR/DataInserter.ThreadsKafkaDataCollector.png new file mode 100644 index 0000000..a330b52 Binary files /dev/null and b/esterni/manuale_manutentore/res/images/DATACOLLECTOR/DataInserter.ThreadsKafkaDataCollector.png differ diff --git a/esterni/manuale_manutentore/res/images/DATACOLLECTOR/Packagekafkadatacollector.png b/esterni/manuale_manutentore/res/images/DATACOLLECTOR/Packagekafkadatacollector.png new file mode 100644 index 0000000..a27bbbe Binary files /dev/null and b/esterni/manuale_manutentore/res/images/DATACOLLECTOR/Packagekafkadatacollector.png differ diff --git a/esterni/manuale_manutentore/res/images/GATEWAY/ClassiGateway.png b/esterni/manuale_manutentore/res/images/GATEWAY/ClassiGateway.png new file mode 100644 index 0000000..ad1a56b Binary files /dev/null and b/esterni/manuale_manutentore/res/images/GATEWAY/ClassiGateway.png differ diff --git a/esterni/manuale_manutentore/res/images/GATEWAY/Gateway.start().png b/esterni/manuale_manutentore/res/images/GATEWAY/Gateway.start().png new file mode 100644 index 0000000..5c7bcc2 Binary files /dev/null and b/esterni/manuale_manutentore/res/images/GATEWAY/Gateway.start().png differ diff --git a/esterni/manuale_manutentore/res/images/GATEWAY/GatewayPackage.png b/esterni/manuale_manutentore/res/images/GATEWAY/GatewayPackage.png new file mode 100644 index 0000000..f99502a Binary files /dev/null and b/esterni/manuale_manutentore/res/images/GATEWAY/GatewayPackage.png differ diff --git a/esterni/manuale_manutentore/res/images/GATEWAY/RichiestaInvioGateway.png b/esterni/manuale_manutentore/res/images/GATEWAY/RichiestaInvioGateway.png new file mode 100644 index 0000000..29fba62 Binary files /dev/null and b/esterni/manuale_manutentore/res/images/GATEWAY/RichiestaInvioGateway.png differ diff --git a/esterni/manuale_manutentore/res/images/WEBAPP/AutenticazioneTfa.png b/esterni/manuale_manutentore/res/images/WEBAPP/AutenticazioneTfa.png new file mode 100644 index 0000000..2530c75 Binary files /dev/null and b/esterni/manuale_manutentore/res/images/WEBAPP/AutenticazioneTfa.png differ diff --git a/esterni/manuale_manutentore/res/images/WEBAPP/ClassiWebApp.png b/esterni/manuale_manutentore/res/images/WEBAPP/ClassiWebApp.png new file mode 100644 index 0000000..23ce505 Binary files /dev/null and b/esterni/manuale_manutentore/res/images/WEBAPP/ClassiWebApp.png differ diff --git a/esterni/manuale_manutentore/res/images/WEBAPP/Dashboard.index.png b/esterni/manuale_manutentore/res/images/WEBAPP/Dashboard.index.png new file mode 100644 index 0000000..86efbd8 Binary files /dev/null and b/esterni/manuale_manutentore/res/images/WEBAPP/Dashboard.index.png differ diff --git a/esterni/manuale_manutentore/res/images/WEBAPP/WebAppPackage.png b/esterni/manuale_manutentore/res/images/WEBAPP/WebAppPackage.png new file mode 100644 index 0000000..ab8a97f Binary files /dev/null and b/esterni/manuale_manutentore/res/images/WEBAPP/WebAppPackage.png differ diff --git a/esterni/manuale_manutentore/res/images/architetturaGenerale.jpeg b/esterni/manuale_manutentore/res/images/architetturaGenerale.jpeg new file mode 100644 index 0000000..5efc817 Binary files /dev/null and b/esterni/manuale_manutentore/res/images/architetturaGenerale.jpeg differ diff --git a/esterni/manuale_manutentore/res/images/background.png b/esterni/manuale_manutentore/res/images/background.png new file mode 100644 index 0000000..9dcca68 Binary files /dev/null and b/esterni/manuale_manutentore/res/images/background.png differ diff --git a/esterni/manuale_manutentore/res/images/estrattoKafka_dockerCompose.png b/esterni/manuale_manutentore/res/images/estrattoKafka_dockerCompose.png new file mode 100644 index 0000000..96564e1 Binary files /dev/null and b/esterni/manuale_manutentore/res/images/estrattoKafka_dockerCompose.png differ diff --git a/esterni/manuale_manutentore/res/images/logo.png b/esterni/manuale_manutentore/res/images/logo.png new file mode 100644 index 0000000..32071fe Binary files /dev/null and b/esterni/manuale_manutentore/res/images/logo.png differ diff --git a/esterni/manuale_manutentore/res/registro.tex b/esterni/manuale_manutentore/res/registro.tex new file mode 100644 index 0000000..14d4157 --- /dev/null +++ b/esterni/manuale_manutentore/res/registro.tex @@ -0,0 +1,34 @@ +\section*{Registro delle modifiche} + +\begin{center} + \rowcolors{2}{lightest-grayest}{white} + \begin{longtable}{|c|p{3.5cm}|c|p{3cm}|p{3cm}|} + \hline + \rowcolor{lighter-grayer} + \textbf{Versione} & \textbf{Descrizione} & \textbf{Data} & \textbf{Autore} & \textbf{Ruolo} \\ + \hline + \endfirsthead + % Modificare da QUI % + + 1.0.0+b0.15 & Approvazione del documento & 2020-04-13 & Alessandro Tommasin & Responsabile \\ + \hline + 0.2.2+b0.14 & Stesura e verifica dell'appendice \S A & 2020-04-11 & Lorenzo Dei Negri e Mariano Sciacco & Amministratore e verificatore \\ + \hline + 0.2.1+b0.14 & Stesura e verifica della sezione \S4 & 2020-04-10 & Lorenzo Dei Negri e Mariano Sciacco & Amministratore e verificatore \\ + \hline + 0.2.0+b0.14 & Approvazione del documento & 2020-04-06 & Giovanni Vidotto & Responsabile \\ + \hline + 0.1.2+b0.13 & Stesura e verifica della sezione \S3 & 2020-04-03 & Nicolò Frison e Lorenzo Dei Negri & Amministratore e verificatore \\ + \hline + 0.1.1+b0.13 & Stesura e verifica della sezione \S2 & 2020-04-02 & Nicolò Frison e Lorenzo Dei Negri & Amministratore e verificatore \\ + \hline + 0.1.0+b0.12 & Approvazione del documento & 2020-03-23 & Lorenzo Dei Negri & Responsabile \\ + \hline + 0.0.2+b0.11 & Stesura e verifica della sezione \S1 & 2020-03-22 & Alessandro Tommasin e Fouad Mouad & Amministratore e verificatore \\ + \hline + 0.0.1+b0.11 & Creazione documento & 2020-03-21 & Alessandro Tommasin & Amministratore \\ + \hline + %%%%%%%%%%%%%%%%%%%%%% + \hline + \end{longtable} +\end{center} \ No newline at end of file diff --git a/esterni/manuale_manutentore/res/sections/api.tex b/esterni/manuale_manutentore/res/sections/api.tex new file mode 100644 index 0000000..dd879fe --- /dev/null +++ b/esterni/manuale_manutentore/res/sections/api.tex @@ -0,0 +1,113 @@ +\subsection{API} + La componente \textit{API} è il core dell'intera architettura; permette all'applicazione web di interfacciarsi con i due database menzionati precedentemente, oltre che con un \glock{bot Telegram}. + \newline + La componente è stata sviluppata in Java 11, utilizzando dei \glock{framework Spring}: Spring boot, Spring security, Spring Kafka e Spring jpa; per l'autenticazione web è stato usato Json Web Token. + + \subsubsection{Diagramma dei package}%%%%%%%%%%%%%%OK + \begin{figure}[H] + \centering + \includegraphics[scale=0.500]{res/images/API/packageAPI.png} + \caption{Diagramma dei packages per la componente API} + \label{Diagramma 10} + \end{figure} + + \subsubsection{Dipendenze esterne} + La componente \textit{API} he le seguenti dipendenze esterne: + \begin{itemize} + \item \textbf{Spring Boot:} che viene utilizzato per rendere le \glock{API} un microservizio; + \item \textbf{Spring Boot Jpa:} contenuta nel framework precedente, viene utilizzata per permettere al package Repository e Config di interfacciarsi direttamente con il database; + \item \textbf{Spring Boot Starter Security:} contenuta nel framework Spring Boot, viene utilizzata per gestire la sicurezza nell'accesso alle \glock{API}; + \item \textbf{SpringBoot Starter Test:} contenuta nel framework Spring Boot, viene utilizzata per eseguire i test; + \item \textbf{org.Moquito:} libreria usata per fare simulare il comportamento di alcune funzioni, in fase di test; + \item \textbf{io.jsonwebtoken:} libreria usata per la creazione di token necessari all'accesso ad aree riservate delle \glock{API}; + \item \textbf{Spring Kafka:} libreria utilizzata per la comunicazione con \glock{Kafka}; + \item \textbf{Spring Doc:} libreria utilizzata per la visualizzazione delle richieste \glock{API} tramite interfaccia web; + \item \textbf{org.postgreSql.Driver:} che viene utilizzato per la connessione con DBMS di tipo Postgre. + \end{itemize} + + \subsubsection{Diagrammi delle classi} + Al fine di semplificare la comprensione delle dipendenze della componente \glock{API}, si è deciso di suddividere i diagrammi per package, mostrando in dettaglio quelli più significativi. + + \paragraph*{Package Utils} + \begin{figure}[H] + \centering + \includegraphics[scale=0.550]{res/images/API/UtilsPackage.png} + \caption{Diagramma del package utils della componente API} + \label{Diagramma 11} + \end{figure} + Come si evince dal diagramma, la classe JwtRequestFilter dipende dalle classi UserService e JwtUtils ed estende la classe OncePerRequestFilter, permettendo di filtrare le richieste alle \glock{API}. + \newline + JwtUtil invece implementa l'interfaccia Component del \glock{framework spring}. + \newline + Infine la classe CustomAuthenticationManager dipende da UserService ed implementa l'interfaccia AuthenticationManager del framework Spring, permettendo quindi di gestire l'autenticazione in maniera sicura. + \paragraph*{Package Config} + \begin{figure}[H] + \centering + \includegraphics[scale=0.550]{res/images/API/ConfigPackage.png} + \caption{Diagramma del package config della componente API} + \label{Diagramma 12} + \end{figure} + Il diagramma del package Config mostra le dipendenze delle classi di configurazione della componente \glock{API}. + \newline + PostgresConfig e TimescaleConfig vengono utilizzate per configurare l'accesso ai nostri database ed implementano le interfacce PropertySource, JpaRepository e Configuration del framework Spring. + \newline + La classe KafkaConsumerConfig invece implementa le interfacce EnableKafka e Configuration del framework Spring per poter collgarsi con il nostro broker \glock{Kafka}. + \newline + Infine SecurityConfig dipende dalle classi ed interfacce restanti per permettere la configurazione della sicurezza per permettere o meno ad alcune richieste HTTP di accedere alla \glock{API}. + \newpage + \paragraph{Package Controllers} + Il package Controllers visualizzabile all'interno del file \textit{Immagini/API-PackageController.png} contiene i controller per mappare le richieste GET e POST che è possibile ricevere da parte della \glock{web app} o di \glock{Telegram}. + \newline + Ogni classe per poter funzionare implementa l'interfaccia RequestMapping e RestController del framework Spring. + \newline + La classe AuthContoller a differenza delle altre possiede anche delle dipendenze verso CustomAuthenticationManager TelegramService per permettere l'autenticazione a due fattori tramite \glock{Telegram}. + \paragraph*{Package Models} + \begin{figure}[H] + \centering + \includegraphics[scale=0.550]{res/images/API/ModelsPackage.png} + \caption{Diagramma del package models della componente API} + \label{Diagramma 14} + \end{figure} + Nel diagramma in alto vengono descritte le dipendenze del package Models, che rappresentano le relazioni che ci sono fra le varie entità del database relazionale. + \begin{landscape} + \paragraph*{Package Repository} + \begin{figure}[H] + \centering + \includegraphics[scale=0.500]{res/images/API/RepositoryPackage.png} + \caption{Diagramma del package repository della componente API} + \label{Diagramma 15} + \end{figure} + Nel diagramma che rappresenta le dipendenze del package Repository della componente \glock{API}, sono presenti le interfacce che rappresentano le query che vengono effettuate a database nelle varie tabelle. Tutte le interfacce estendono l'interfaccia CrudRepository. + \paragraph*{Package Service} + Nel diagramma delle classi all'interno del file \textit{Immagini/API-PackageService.png} che rappresenta il package Service sono rappresentate classi che effettuano le query a database ad un livello di astrazione più alto rispetto al package Repository. Quest'ultimo viene infatti utilizzato dai service per effettuare le quesry a database. + + \subsubsection{Diagrammi di sequenza}%%%%%%%%%OK + \begin{figure}[H] + \centering + \includegraphics[scale=0.600]{res/images/API/inserimento_utente.png} + \caption{Diagramma di sequenza che mostra l'inserimento di un utente all'interno della componente API} + \label{Diagramma 17} + \end{figure} + Nel diagramma di sequenza in alto, alla ricezione di una richiesta POST dalla \glock{web app}, lo UserController chiede allo UserService di inserire un nuovo utente, dopo aver verificato che la richiesta provenisse da un utente con l'autorizzazione necessaria a crearne uno nuovo. + \newline + Viene creata poi un'istanza di User che, dopo averne impostato i campi, viene inviata a UserRepository, chiedendone il salvataggio nel database. Viene infine restituita l'entità inserita ed inviata in risposta alla \glock{web app} in formato \glock{JSON}. + \begin{figure}[H] + \centering + \includegraphics[scale=0.600]{res/images/API/inserimento_view.png} + \caption{Diagramma di sequenza che mostra l'inserimento di una view all'interno della componente API} + \label{Diagramma 18} + \end{figure} + Il diagramma descrive l'inserimento di una view all'interno del database. Il procedimento inserito è molto simile a quello descritto per l'inserimento di un utente. + \end{landscape} + + + \subsubsection{Estensione} + \paragraph{Aggiungere una richiesta API} + Per inserire una nuova richiesta, se non si usano le classi già esistenti, è necessario che la nuova classe creata implementi l'interfaccia RestController, tramite la notazione \textit{@RestController}, da inserire precedentemente alla definizione della classe. + \newline + All'interno della classe è necessario definire una funzione usando una notazione di tipo mapping, ad esempio "@GetMapping", inserendo all'interno delle parentesi tonde la stringa associata all'URI della richiesta che si vuole implementare. + Ad esempio: + \begin{verbatim} + @GetMapping(value = \{"/{deviceId:.+}/sensors"\}) + \end{verbatim} + Per esporre una risorsa senza necessità di autenticazione è necessario aggiungere all'array publicRequests l'URL della richiesta. L'array publicRequests è un attributo della classe SecurityConfig. \ No newline at end of file diff --git a/esterni/manuale_manutentore/res/sections/architettura.tex b/esterni/manuale_manutentore/res/sections/architettura.tex new file mode 100644 index 0000000..55d5a8a --- /dev/null +++ b/esterni/manuale_manutentore/res/sections/architettura.tex @@ -0,0 +1,39 @@ +\section{Architettura} + +L'architettura del prodotto è suddivisa in: + \begin{itemize} + \item \textbf{gateway}; + \item \textbf{piattaforma Apache Kafka}; + \item \textbf{data collector}; + \item \textbf{database PostgreSQL e Timeseries}; + \item \textbf{API REST}; + \item \textbf{bot Telegram}; + \item \textbf{web application}. + \end{itemize} + + \begin{figure}[H] + \centering + \includegraphics[scale=0.600]{res/images/architetturaGenerale.jpeg} + \caption{Schema riassuntivo dell'architettura generale del prodotto} + \end{figure} + + \subsection{Interazione tra i componenti} + Il gateway interagisce con Kafka scrivendo, su un apposito topic di quest'ultimo, i dati che riceve dai sensori ad esso connessi, tramite un producer, in formato \glock{JSON}. + \newline + Esso è connesso anche a un secondo topic, tramite un consumer, in modo da permettere agli utenti della web app, che ne abbiano i permessi, di impostarne una diversa configurazione. + \newline + La componente data collector si interpone tra i client (web app e bot Telegram), Kafka e i database, con lo scopo di tradurre i dati \glock{JSON} salvati nel topic, a cui è connesso tramite un producer, in record per le tabelle del Timeseries db. + \newline + Le \glock{API}, che contengono la business logic, si interpongono tra i client, ovvero bot Telegram e web app, Kafka e ai database. + \newline + La connessione API-client si attua tramite richieste e risposte HTTP e il passaggio dei dati tra queste componenti avviene tramite oggetti in formato JSON; la comunicazione API-Kafka, invece, avviene tramite un producer collegato ad un topic, per permettere agli utenti che ne abbiano i permessi, di inviare nuove configurazioni ai gateway. + \newline + Infine la connessione tra API e Database avviene tramite il framework JPA, fornito da Spring. + +\yetAnotherSectionNamed{gateway} +\yetAnotherSectionNamed{kafka} +\yetAnotherSectionNamed{dataCollector} +\yetAnotherSectionNamed{database} +\yetAnotherSectionNamed{api} +\yetAnotherSectionNamed{telegram} +\yetAnotherSectionNamed{webApp} \ No newline at end of file diff --git a/esterni/manuale_manutentore/res/sections/dataCollector.tex b/esterni/manuale_manutentore/res/sections/dataCollector.tex new file mode 100644 index 0000000..02cddb0 --- /dev/null +++ b/esterni/manuale_manutentore/res/sections/dataCollector.tex @@ -0,0 +1,64 @@ +\subsection{Data collector} + La componente \textit{data collector} permette di trasferire i dati prodotti dai singoli gateway ed inviati nei vari topic di Kafka, all'interno di un database di tipo \glock{timeseries}. + \newline + Allo stesso tempo, permette di filtrare i dati collezionati ed inviare dei messaggi di avviso, all'interno di un apposito topic, nel caso in cui vengano rilevati dei valori anomali. + \newline + Il filtraggio dei dati viene fatto a partire dagli alert impostati all'interno della \glock{web app} e salvati in un database relazionale (\glock{PostgreSQL}). + \begin{itemize} + \item La componente è stata sviluppata in Java 11. + \end{itemize} + + \subsubsection{Diagramma dei package}%%%%%%%%%OK + \begin{figure}[H] + \centering + \includegraphics[scale=0.600]{res/images/DATACOLLECTOR/Packagekafkadatacollector.png} + \caption{Diagramma dei package della componente data collector} + \label{Diagramma 5} + \end{figure} + \subsubsection{Dipendenze esterne} + La componente ha due dipendenze esterne: + \begin{itemize} + \item \textbf{KafkaProducer}, classe concreta che implementa l'interfaccia Producer. Svolge il compito di client per il cluster \glock{kafka}, pubblicando dati all'interno di un topic. La classe DataFilter ne possiede un riferimento. + \item \textbf{KafkaConsumer}, classe concreta che implementa l'interfaccia Consumer. Svolge il compito di client per il cluster Kafka, consumando i messaggi resenti all'interno di uno o più topic. La classi DataInserter e DataFilter ne possiedono un riferimento. + \end{itemize} + \begin{landscape} + \subsubsection{Diagramma delle classi}%%%%%%%%%%%%%%%%%%%%%%%OK + \begin{figure}[H] + \centering + \includegraphics[scale=0.550]{res/images/DATACOLLECTOR/ClassikafkaDataCollector.png} + \caption{Diagramma delle classi della componente data collector} + \label{Diagramma 6} + \end{figure} + Come si vede nel diagramma la classe DataInserter ha un riferimento alla classe Database (che rappresenta \glock{Timescale} in questo caso) ed alla classe Consumer. + \newline + La classe DataFilter invece ha, oltre che un riferimento a Database (che rappresenta Postgre) e a Consumer, anche un riferimento a Producer e AlertTimeTable; questo perché DataFilter dopo aver filtrato i dati, grazie ai suoi metodi (e grazie alla classe AlertTimeTable), inserisce i messaggi derivati dai dati consumati direttamente in un topic Kafka tramite un producer. + \end{landscape} + \begin{landscape} + \subsubsection{Diagrammi di sequenza}%%%%%%%%%OK + \begin{figure}[H] + \centering + \includegraphics[scale=0.550]{res/images/DATACOLLECTOR/DataFilter.ThreadsKafkaDataCollector.png} + \caption{Diagramma di sequenza in cui viene mostrato il funzionamento del filtraggio dati nella componente data collector} + \label{Diagramma 7} + \end{figure} + Come si evince dal diagramma in alto, funzionamento di DataFilter è il seguente: + \begin{itemize} + \item DataFilter apre la connessione con il database relazionale Postgre; + \item vengono quindi estratti i dati dai topic \glock{Kafka} collegati ai gateway; + \item i valori vengono filtrati, garantendo che dispositivo e sensore siano presenti nel database e che i valori rilevati superino effettivamente la soglia; + \item i valori vengono filtrati nuovamente per verificare che gli utenti a cui dovrebbero arrivare abbiano configurato il \glock{bot Telegram} correttamente; + \item infine vengono prodotti un insieme di messaggi di alert che, tramite un produttore vengono inseriti nel topic \glock{kafka} "alerts". + \end{itemize} + \begin{figure}[H] + \centering + \includegraphics[scale=0.550]{res/images/DATACOLLECTOR/DataInserter.ThreadsKafkaDataCollector.png} + \caption{Diagramma di sequenza in cui viene mostrato il funzionamento dell'inserimento dati nella componente data collector} + \label{Diagramma 8} + \end{figure} + Il comportamento di DataInserter è il seguente: + \begin{itemize} + \item DataInserter apre una connessione con il database \glock{Timescale}; + \item ogni qualvolta il suo Consumer trova dei nuovi dati nei topic collegati ai gateway, vengono inviati i messaggi al DataInserter; + \item DataInserter infine inserisce i dati all'interno del database. + \end{itemize} + \end{landscape} \ No newline at end of file diff --git a/esterni/manuale_manutentore/res/sections/database.tex b/esterni/manuale_manutentore/res/sections/database.tex new file mode 100644 index 0000000..adfcc76 --- /dev/null +++ b/esterni/manuale_manutentore/res/sections/database.tex @@ -0,0 +1,49 @@ +\subsection{Database} + All'interno dell'architettura sono utilizzati: + \begin{itemize} + \item un database relazionale, \glock{PostgreSQL}, che viene usato per il salvataggio delle configurazioni dei gateway, delle informazioni di utenti ed enti, oltre alle impostazioni dei grafici creati dagli utenti stessi; + \item un database non relazionale, \glock{Timescale}, che viene usato per salvare i dati inviati dai dispositivi, le logs degli eventi e gli alert con i valori anomali rilevati. + \end{itemize} + Entrambi i database sono rilasciati tramite dockerfile, tramite il quale ne viene effettuata una prima configurazione. + \subsubsection{Timescale} + La struttura del database non relazionale è la seguente: + \begin{itemize} + \item Sensors + \begin{itemize} + \item time: timestamptz + \item real\_sensor\_id: integer + \item real\_device\_id: integer + \item gateway\_name: text + \item value: double + \end{itemize} + \item Logs + \begin{itemize} + \item time: timestamptz + \item user\_id: integer + \item ip\_address: varchar + \item operation: text + \item data: text + \end{itemize} + \end{itemize} + \subsubsection{PostgreSql} + La struttura del database SQL è rappresentata nello schema logico sottostante: + + \begin{landscape} + \begin{figure}[H] + \centering + \includegraphics[scale=0.600]{res/images/DATABASE/ER_Modificato.png} + \caption{Diagramma logico del database relazionale} + \label{Diagramma 9} + \end{figure} + \end{landscape} + \subsubsection{Estensioni} + \paragraph{Duplicazione dei dati nel database Timescale} + Per aggiungere un fattore di duplicazione ai dati è necessario modificare il file docker-compose.yml inserendo un nuovo servizio: il servizio che si andrà a duplicare sarà quello di \glock{Timescale}, che sarà copiato e modificato. + \newline + Risulterà infatti necessario modificare il nome del servizio e del container, la mappatura delle porte (prestando attenzione a mantenere la porta interna specificata) ed infine i volumi. + \newline + Per effettuare la persistenza dei dati sarà infine necessario inserire il nuovo volume mappato all'interno di "volumes". + Conclusa questa procedura sarà possibile inserire il nuovo database all'interno della componente DataCollector, specificando il corretto indirizzo. + + \paragraph{Modifica impostazioni d'accesso ai database} + Per modificare le impostazioni di accesso ai database è necessario modificare le variabili d'ambiente all'interno dei rispettivi Dockerfile. \ No newline at end of file diff --git a/esterni/manuale_manutentore/res/sections/gateway.tex b/esterni/manuale_manutentore/res/sections/gateway.tex new file mode 100644 index 0000000..b7d4c0d --- /dev/null +++ b/esterni/manuale_manutentore/res/sections/gateway.tex @@ -0,0 +1,62 @@ +\subsection{Gateway} + Un \textit{gateway} è una componente localizzata all'interno di un'azienda che permette di rendere uniforme l'interfaccia di accesso ai dati dei singoli dispositivi configurati all'interno del gateway stesso. + \newline + Dai gateway è possibile inoltre configurare funzioni di accumulo dei pacchetti contenenti i dati dei sensori o di impostare alcuni timer, al termine dei quali deve essere effettuato l'invio dei dati all'interno dei rispettivi topic di \glock{Kafka}. + \newline + Tutte le configurazioni vengono ricevute tramite appositi topic adibiti esclusivamente a questa funzione. + \begin{itemize} + \item La componente è stata sviluppata in Java 11. + \end{itemize} + + \subsubsection{Diagramma dei package}%%%%%%%%%%%%OK + \begin{figure}[H] + \centering + \includegraphics[scale=0.550]{res/images/GATEWAY/GatewayPackage.png} + \caption{Diagramma dei package per la componente gateway} + \label{Diagramma 1} + \end{figure} + \subsubsection{Dipendenze esterne} + La componente gateway ha due dipendenze esterne: + \begin{itemize} + \item \textbf{KafkaProducer}, classe concreta che implementa l'interfaccia Producer. Svolge il compito di client per il cluster \glock{Kafka}, pubblicando dati all'interno di un topic. La classe Producer ne possiede un riferimento. + \item \textbf{KafkaConsumer}, classe concreta che implementa l'interfaccia Consumer. Svolge il compito di client per il cluster \glock{Kafka}, consumando i messaggi resenti all'interno di uno o più topic. La classe Consumer ne possiede un riferimento. + \end{itemize} + \newpage + + \begin{landscape} + \subsubsection{Diagramma delle classi}%%%%%%%%%%%%%%%%%%%%%%%OK + \begin{figure}[H] + \centering + \includegraphics[scale=0.499]{res/images/GATEWAY/ClassiGateway.png} + \caption{Diagramma delle classi per la componente gateway} + \label{Diagramma 2} + \end{figure} + Come si evince dal diagramma la classe ThreadedConsumer contiene un Consumer per poter reperire da un topic \glock{Kafka} le configurazioni per il gateway. + \newline + Il ThreadedProducer invece contiene un riferimento a Gateway, in cui si trova la business logic per la richiesta al simulatore e l'invio dei dati a Kafka. Per poter far ciò necessita della classe translator per convertire i dati in JSON e delle classi Device e Sensor per costruire la lista di dispositivi a cui dovrà richiedere i dati. + \end{landscape} + + \begin{landscape} + \subsubsection{Diagramma di sequenza}%%%%%%%%%%%%%%%%%%%%%%%OK + \begin{figure}[H] + \centering + \includegraphics[scale=0.400]{res/images/GATEWAY/RichiestaInvioGateway.png} + \caption{Diagramma di sequenza che rappresenta la richiesta di una prima configurazione ed un primo settaggio del gateway} + \label{Diagramma 3} + \end{figure} + Nel diagramma di sequenza è rappresentata la richiesta e la ricezione di una prima configurazione da parte del ThreadedConsumer. + \newline + La configurazione viene quindi passata al ThreadedProducer, che tramite un metodo crea il Gateway (sulla base della configurazione ottenuta) e questo, tramite il metodo init() verifica che tutti i dispositivi nella configurazione siano effettivamente presenti. + \end{landscape} + + \subsubsection{Diagramma di attività}%%%%%%%%%%%%%%OK + \begin{figure}[H] + \centering + \includegraphics[scale=0.500]{res/images/GATEWAY/gateway.start().png} + \caption{Diagramma di attività che rappresenta un'iterazione all'interno del metodo start() della classe gateway} + \label{Diagramma 4} + \end{figure} + Nel diagramma è rappresentato il metodo start() della classe Gateway, in cui vengono creati dei pacchetti di richiesta e vengono inviati al simulatore dei dispositivi. + \newline + Quest'ultimo, dopo aver generato i dati, invia un pacchetto di risposta che, se è integro, viene aggiunto ad un buffer che, una volta pieno, viene inviato ad un topic \glock{Kafka}. + \ No newline at end of file diff --git a/esterni/manuale_manutentore/res/sections/glossario.tex b/esterni/manuale_manutentore/res/sections/glossario.tex new file mode 100644 index 0000000..8e5dd16 --- /dev/null +++ b/esterni/manuale_manutentore/res/sections/glossario.tex @@ -0,0 +1,68 @@ + +% --------------------------- +% + CONFIGURAZIONE AGGIUNTIVA +% --------------------------- + +\appendix +\addcontentsline{toc}{section}{Appendice} + +\setcounter{secnumdepth}{1} % No section number +\setcounter{tocdepth}{3} % No section number + + +\section{Glossario} +\subsection{A} +\subsubsection{Alert} Segnale generato per comunicare un messaggio, in cui la soglia di una rilevazione è stata superata. +\subsubsection{API} Le API (acronimo di Application Programming Interface, ovvero Interfaccia di programmazione delle applicazioni) sono set di definizioni e protocolli con i quali vengono realizzati e integrati software applicativi. +\subsection{B} +\subsubsection{Bootstrap} Bootstrap è una raccolta di strumenti liberi per la creazione di siti e applicazioni per il Web. Essa contiene modelli di progettazione basati su HTML e CSS, sia per la tipografia, che per le varie componenti dell'interfaccia, come moduli, pulsanti e navigazione, così come alcune estensioni opzionali di JavaScript. +\subsubsection{Bot, telegram} I bot sono applicazioni di terze parti sviluppati da programmatori esterni per interagire con gli utenti tramite messaggi, comandi e richieste in linea tramite il servizio di messaggistica Telegram. +\subsection{C} +\subsubsection{Chrome, Google} +Browser web sviluppato da Google. +\subsubsection{Container, Docker} +Un container è una singola unità di software che contiene sia il codice che tutte le sue dipendenze in modo tale da poter essere eseguito velocemente in qualsiasi ambiente. +\subsection{D} +\subsubsection{Docker} Il software Docker è una tecnologia di containerizzazione che consente la creazione e l'utilizzo dei container Linux. +\subsubsection{Dockerfile} Un \textit{Dockerfile} è un file di configurazione che illustra i passaggi che devono essere realizzati per compilare un'immagine di un sistema operativo come base per eseguire un certo applicativo. +\subsubsection{Docker-compose} Il docker-compose è un comando che può essere utilizzato per comporre, letteralmente, tutta l'infrastruttura in base ai servizi che si è scelto di integrare. Fa uso dei \textit{Dockerfile} per avviare l'eventuale build delle \textit{immagini Docker} e permette con un solo comando di attivare (\verb!docker-compose up -d!) o disattivare (\verb!docker-compose down!) tutti i servizi. L'intera configurazione è salvata su un file denominato per convenzione \verb!docker-compose.yml!. +\subsection{E} +\subsubsection{Edge, Microsoft} +Browser web sviluppato da Microsoft. +\subsubsection{Ente} +Con ente si intende una azienda o associazione a cui viene assegnato il monitoraggio di alcuni dispositivi. +\subsection{F} +\subsubsection{Firefox, Mozilla} +Browser web libero e multipiattaforma mantenuto da Mozilla Foundation. +\subsubsection{Framework} Un framework, è un'architettura logica di supporto (spesso un'implementazione logica di un particolare design pattern) su cui un software può essere progettato e realizzato. +\subsection{I} +\subsubsection{Immagine, Docker} Un'immagine Docker è un eseguibile che può essere istanziato in un container. L'immagine Docker viene prodotta a seguito della compilazione tramite il comando \verb!docker build! di un \textit{Dockerfile} o di un \textit{docker-compose}. +\subsection{J} +\subsubsection{Java} Java è un linguaggio di programmazione ad alto livello, orientato agli oggetti e a tipizzazione statica, che si appoggia sull'omonima piattaforma software di esecuzione, specificamente progettato per essere il più possibile indipendente dalla piattaforma hardware di esecuzione tramite l'utilizzo di macchina virtuale. +\subsubsection{JavaScript} JavaScript è un linguaggio di scripting orientato agli oggetti e agli eventi, comunemente utilizzato nella programmazione web lato client per la creazione, in siti web e applicazioni web, di effetti dinamici interattivi tramite funzioni di script invocate da eventi innescati a loro volta in vari modi dall'utente sulla pagina web in uso. +\subsubsection{JSON} +Formato utilizzato per lo scambio di dati all'interno della componenti dell'applicazione. +\subsubsection{JUnit} +Framework di unit testing per il linguaggio di programmazione Java. +\subsection{K} +\subsubsection{Kafka, Apache} Apache Kafka è una piattaforma open source di stream processing scritta in Java e Scala e sviluppata dall'Apache Software Foundation. Questo progetto viene usato principalmente per tutte le applicazioni di elaborazioni di stream di dati in tempo reale. +\subsection{L} +\subsubsection{Laravel, framework} Laravel è un framework open-source molto potente e usato per sviluppare applicazioni in PHP, facendo uso nativamente di \glock{Bootstrap} e Vue.js. Permette di realizzare la parte back-end di un sito web seguendo il modello model-view-controller. +\subsection{N} +\subsubsection{Node Package Manager (NPM)} NPM (abbreviazione di Node Package Manager) è un gestore di pacchetti per il linguaggio di programmazione JavaScript. È il gestore di pacchetti predefinito per l'ambiente di runtime JavaScript Node.js. +\subsubsection{Node.js} Node.js è una runtime di JavaScript Open source multipiattaforma orientato agli eventi per l'esecuzione di codice JavaScript. +\subsection{P} +\subsubsection{PostgreSQL} PostgreSQL è un completo DBMS ad oggetti rilasciato con licenza libera. +\subsection{S} +\subsubsection{Safari} +Browser web sviluppato da Apple Inc. +\subsubsection{Spring, framework} Spring è un framework Java open-source che viene utilizzato per lo sviluppo di applicativi web e di servizi API. +\subsection{T} +\subsubsection{Telegram} Telegram è un servizio di messaggistica istantanea e broadcasting basato su cloud. +\subsubsection{TimeScale, DB} TimeScaleDB è un database open-source costruito per analizzare dati di serie storiche. +\subsubsection{Timeseries, DB} Con il termine timeseries DB si intende un database il cui scopo è la memorizzazione di serie storiche di dati. +\subsection{V} +\subsubsection{Vue.js} Vue.js è un framework open-source di Javascript che permette di realizzare la parte front-end dinamica in unione con Laravel. Il framework è molto flessibile e altamente scalabile, nonché compatibile anche con \glock{Bootstrap}. +\subsection{W} +\subsubsection{Web, app, application} +Con web app o applicazione web, si intende una applicazione fruibile via web per mezzo di un browser. \ No newline at end of file diff --git a/esterni/manuale_manutentore/res/sections/installazione.tex b/esterni/manuale_manutentore/res/sections/installazione.tex new file mode 100644 index 0000000..5077f38 --- /dev/null +++ b/esterni/manuale_manutentore/res/sections/installazione.tex @@ -0,0 +1,98 @@ +\section{Installazione} + In questa sezione viene spiegato come effettuare l'installazione delle componenti del progetto ThiReMa. + + \subsection{Installazione e avvio completo tramite Docker} + + Per effettuare l'installazione completa di tutto il prodotto sulla propria macchina tramite Docker Container, è sufficiente eseguire il file \textit{docker-compose.yml} nel proprio terminale tramite il comando: + \begin{verbatim} + $ docker-compose up -d + \end{verbatim} + + \subsection{Gateway} + + \subsubsection{Avvio tramite Docker} + Il gateway è stato predisposto con un \textit{Dockerfile} con cui avviare direttamente tramite un Docker container l'applicazione. Per fare ciò è sufficiente eseguire i seguenti comandi: + \begin{verbatim} + $ docker build --tag thirema_gateway:1.0 . + $ docker run --publish 29092:29092 --detach --name thirema_gateway thirema_gateway:1.0 + \end{verbatim} + Verrà creata una immagine contenente il software avviato. + + \subsubsection{Avvio manuale} + Per installare localmente la componente gateway, è necessario eseguire nel terminale il maven build lifecycle all'interno della cartella della componente tramite il comando: + \begin{verbatim} + $ mvn install + \end{verbatim} + ed in seguito avviare il client. + + \subsection{Data collector} + + \subsubsection{Avvio tramite Docker} + Il data collector è stato predisposto con un \textit{Dockerfile} con cui avviare direttamente tramite un Docker container l'applicazione. Per fare ciò è sufficiente eseguire i seguenti comandi: + \begin{verbatim} + $ docker build --tag thirema_dc:1.0 . + $ docker run --publish 29092:29092 --detach --name thirema_data_collector thirema_dc:1.0 + \end{verbatim} + Verrà creata una immagine contenente il software avviato. + + \subsubsection{Avvio manuale} + Per installare localmente la componente data collector è necessario eseguire nel terminale il maven build lifecycle all'interno della cartella della componente tramite il comando: + \begin{verbatim} + $ mvn install + \end{verbatim} + ed in seguito avviare il client. + + \subsection{API} + + \subsubsection{Avvio tramite Docker} + Le API sono state predisposte con un \textit{Dockerfile} con cui avviare direttamente tramite un Docker container l'applicazione. Per fare ciò è sufficiente eseguire i seguenti comandi: + \begin{verbatim} + $ docker build --tag thirema_api:1.0 . + $ docker run -p 29092:29092 -p 9999:9999 -p 3000:3000 --detach --name thirema_api thirema_api:1.0 + \end{verbatim} + Verrà creata una immagine contenente il software avviato. + + \subsubsection{Avvio manuale} + Per installare localmente la componente API è necessario eseguire nel terminale il maven build lifecycle all'interno della cartella della componente tramite il comando: + \begin{verbatim} + mvn install + \end{verbatim} + ed in seguito avviare l'eseguibile ApirestApplication.java. + + \subsection{Web application} + + \subsubsection{Avvio tramite Docker} + La \glock{web app} è stata predisposta con un \textit{Dockerfile} con cui avviare direttamente tramite un Docker container l'applicazione. Per fare ciò è sufficiente eseguire i seguenti comandi: + \begin{verbatim} + $ docker build --tag thirema_webapp:1.0 . + $ docker run -p 80:8000 --detach --name thirema_webapp thirema_webapp:1.0 + \end{verbatim} + Verrà creata una immagine contenente il software avviato. + + \subsubsection{Avvio manuale} + Per installare localmente la componente \glock{web application} è necessario eseguire nel terminale i seguenti comandi, a partire dalla cartella della componente: + \begin{verbatim} + $ composer install + $ npm install + $ npm run dev + $ php artisan serve + \end{verbatim} + ed in seguito collegarsi all'indirizzo specificato nel terminale. + + \subsection{Bot Telegram} + + \subsubsection{Avvio tramite Docker} + Il \glock{bot telegram} è stata predisposta con un \textit{Dockerfile} con cui avviare direttamente tramite un Docker container l'applicazione. Per fare ciò è sufficiente eseguire i seguenti comandi: + \begin{verbatim} + $ docker build --tag thirema_telegram_bot:1.0 . + $ docker run -p 3000:3000 --detach --name thirema_telegram_bot thirema_telegram_bot:1.0 + \end{verbatim} + Verrà creata una immagine contenente il software avviato. + + \subsubsection{Avvio manuale} + Per installare ed eseguire localmente il bot Telegram è sufficiente eseguire i seguenti comandi mentre ci si trova all'interno della cartella della componente: + \begin{verbatim} + $ npm install + $ node main + \end{verbatim} + diff --git a/esterni/manuale_manutentore/res/sections/introduzione.tex b/esterni/manuale_manutentore/res/sections/introduzione.tex new file mode 100644 index 0000000..126ac79 --- /dev/null +++ b/esterni/manuale_manutentore/res/sections/introduzione.tex @@ -0,0 +1,31 @@ +\section{Introduzione} + \subsection{Premessa} + \textbf{Il documento non è da intendersi come concluso e definitivo.} Alcune funzionalità devono essere ancora implementate e pertanto la struttura e i contenuti del documento potrebbe cambiare. + \subsection{Scopo del documento} + Questo documento si propone come guida per gli sviluppatori che andranno ad estendere e/o manutenere il prodotto ThiReMa. + \newline + Nelle sezioni successive del documento sarà possibile trovare una descrizione dei linguaggi, delle tecnologie e degli strumenti utilizzati durante lo sviluppo del progetto, oltre che un'analisi dell'architettura e delle scelte progettuali fatte per il prodotto. + \subsection{Scopo del prodotto} + Per grandi e medie aziende, ma non solo, la gestione e l'analisi di grosse moli di dati sta diventando sempre di più una realtà concreta. + \newline + Il progetto ThiReMa si prefigge come obiettivo la creazione di una \glock{web application}, la quale permetta di analizzare ingenti moli di dati, ricevuti da più sensori eterogenei tra loro. Tale applicazione metterà a disposizione un'interfaccia intuitiva che permetterà di visualizzare più dati di interesse od eventuali correlazioni tra gli stessi. Infine, per ogni tipologia di dato sarà possibile assegnarne il monitoraggio ad un particolare \glock{ente}. + \subsection{Glossario} + Per evitare possibili ambiguità relative ad alcuni termini usati nel documento, questi verranno indicati in \textsc{maiuscoletto} con una G al pedice e saranno riportati nel glossario presente nell'appendice \S A. + \subsection{Riferimenti} + Di seguito sono riportati i riferimenti alle alle tecnologie e strumenti utilizzati per lo sviluppo del prodotto: + \begin{itemize} + \item \textbf{Docker:} \url{https://www.docker.com}; + \item \textbf{PostgeSQL:} \url{https://www.postgresql.org}; + \item \textbf{Timescale:} \url{https://www.timescale.com}; + \item \textbf{Maven:} \url{http://maven.apache.org}; + \item \textbf{Node Package manager:} \url{https://www.npmjs.com}; + \item \textbf{Composer:} \url{https://getcomposer.org}; + \item \textbf{Spring:} \url{https://spring.io/projects/spring-framework}; + \item \textbf{JSON Web Token:} \url{https://jwt.io}; + \item \textbf{Laravel:} \url{https://laravel.com}; + \item \glock{Vue.js}: \url{https://vuejs.org}; + \item \textbf{Node.js:} \url{https://nodejs.org}; + \item \textbf{Axios:} \url{https://axios.nuxtjs.org}; + \item \textbf{API Telegram:} \url{https://core.telegram.org/bots/api}; + \item \textbf{Telegraf:} \url{https://telegraf.js.org}. + \end{itemize} diff --git a/esterni/manuale_manutentore/res/sections/kafka.tex b/esterni/manuale_manutentore/res/sections/kafka.tex new file mode 100644 index 0000000..fb95b06 --- /dev/null +++ b/esterni/manuale_manutentore/res/sections/kafka.tex @@ -0,0 +1,42 @@ +\subsection{Kafka} + All'interno del progetto ThiReMa viene fatto uso della piattaforma \glock{Apache Kafka} per trasportare e trasformare i dati provenienti dai dispositivi, verso le altre componenti del sistema. + \newline + Per questo progetto è stato utilizzato un broker singolo, ma nulla vieta, in un futuro, di estendere l'architettura creando un cluster composto da più broker. + \newline + \newline + I principali topic che sono stati creati e che vengono utilizzati dalle vari componenti sono: + \begin{itemize} + % Un topic per domarli... + \item un topic per ogni gateway, all'interno del quale vengono riversati i dati raccolti dai dispositivi associati; + % ...un topic per trovarli... + \item un topic per ogni gateway, nel quale vengono inviate le configurazioni per i gateway stessi; + % ...un topic per ghermirli... + \item un topic in cui vengono inseriti i messaggi di \glock{alert} quando uno o più sensori superano delle + soglie stabilite. + % ...e nel buio incatenarli. + \end{itemize} + Per effettuare il rilascio di questa componente è stato realizzato un apposito file \glock{docker-compose} (al cui interno sono presenti anche le altre componenti) che imposta automaticamente gli indirizzi e le porte in cui ascoltare e ricevere i messaggi. Quindi per modificare le configurazioni del broker \glock{Kafka} o per aggiungerne altri è sufficiente modificare il file docker-compose.yml fornito. + \newline + Di seguito viene riportato un piccolo estratto del file di configurazione. + + \begin{figure}[H] + \centering + \includegraphics[scale=0.470]{res/images/estrattoKafka_dockerCompose.png} + \caption{Estratto del file docker-compose.yml in cui viene impostato Kafka} + \label{Immagine 1} + \end{figure} + \pagebreak + \subsubsection{Estensione} + \paragraph{Aggiungere un broker Kafka} + Per aggiungere un ulteriore broker è necessario modificare il file docker-compose.yml. + \newline + All'interno del file è necessario creare un nuovo service in cui è necessario copiare il broker preesistente. modificandone: il nome del servizio, il nome del \glock{container} e la mappatura della porte; prestando, inoltre, attenzione a mantenere le stesse porte interne. + \newline + Per poterlo utilizzare è necessario solamente specificare le nuove porte assegnate all'interno delle componenti. + \newline + Per modificare le configurazioni si consiglia di seguire il link seguente: + \begin{center} + \url{https://github.com/bitnami/bitnami-docker-kafka} + \end{center} + + \ No newline at end of file diff --git a/esterni/manuale_manutentore/res/sections/requisiti.tex b/esterni/manuale_manutentore/res/sections/requisiti.tex new file mode 100644 index 0000000..a497fe0 --- /dev/null +++ b/esterni/manuale_manutentore/res/sections/requisiti.tex @@ -0,0 +1,39 @@ +\subsection{Requisiti} + \subsubsection{Requisiti hardware minimi} + \begin{itemize} + \item \textbf{sistema operativo:} + \begin{itemize} + \item Ubuntu server 18.04.3 LTS a 64bit; + \item Windows 10 PRO (Hyper-V enabled, Linux containers enabled) Build 1903 a 64bit; + \item Windows Server 2019 (Hyper-V enabled, Linux containers enabled); + \item macOS 10.15 Catalina; + \end{itemize} + \item \textbf{processore:} CPU Quad-Core da 2.8GHz o superiore; + \item \textbf{RAM:} 8GB DDR4 o superiore; + \item \textbf{disco rigido:} 64GB di spazio o superiore; + \item \textbf{connessione internet:} attiva; + \end{itemize} + \subsubsection{Requisiti di sistema} + \begin{itemize} + \item \textbf{Docker} nella versione 19.x.x; + \item \textbf{docker-compose} nella versione 1.25.x; + \end{itemize} + \subsubsection{Requisiti client web} + \begin{itemize} + \item \glock{Firefox} a partire dalla versione 69.0; + \item \glock{Chrome} a partire dalla versione 75.0; + \item \glock{Safari} a partire dalla versione 13.0; + \item \glock{Edge} a partire dalla versione 42.0. + \end{itemize} + \subsubsection{Linguaggi di programmazione} + \begin{itemize} + \item \textbf{Java} nella versione 11; + \item \textbf{PHP} nella versione 7.3+; + \item \textbf{Javascript}; + \end{itemize} + \subsubsection{Gestori delle dipendenze} + \begin{itemize} + \item \textbf{npm} nella versione 6.13.x+; + \item \textbf{composer} nella versione 1.1.x; + \item \textbf{maven} nella versione 3.6.x; + \end{itemize} diff --git a/esterni/manuale_manutentore/res/sections/tecnologie.tex b/esterni/manuale_manutentore/res/sections/tecnologie.tex new file mode 100644 index 0000000..3be2d80 --- /dev/null +++ b/esterni/manuale_manutentore/res/sections/tecnologie.tex @@ -0,0 +1,81 @@ +\section{Tecnologie interessate} + Di seguito vengono descritte le diverse tecnologie che, dopo una prima fase di analisi, sono state scelte per lo sviluppo del prodotto. + \subsection{Linguaggi} + In questa sezione vengono trattati i linguaggi utilizzati per l'implementazione di ThiReMa. + \subsubsection{Java} + Il linguaggio è stato scelto perché permette di interfacciarsi con facilità con la piattaforma \glock{Kafka} richiesta dal capitolato. \glock{Java} permette inoltre di gestire le dipendenze in maniera automatica tramite Maven e di scrivere ed eseguire suite di test in maniera facile e veloce tramite \glock{JUnit}. + \newline + Il linguaggio è inoltre ben conosciuto e facile da apprendere per uno sviluppatore con una qualche esperienza nella programmazione orientata agli oggetti. + \subsubsection{PHP} + Questo linguaggio è stato scelto per lo sviluppo dell'applicazione web perché utilizzabile assieme a framework che permettono la realizzazione di componenti e pagine web in maniera veloce ed intuitiva, utilizzando sempre una sintassi elegante. + \subsubsection{JavaScript} + \glock{JavaScript} è stato scelto perché permette la realizzazione della componente \glock{bot Telegram} con un numero limitato di righe di codice, utilizzando dei moduli presenti per il suddetto linguaggio. + \newline + Un altro punto a suo favore è che il suo tempo di apprendimento è ragionevolmente breve. + \subsection{Strumenti} + In questa sezione vengono trattati gli strumenti utilizzati per l'implementazione di ThiReMa. + \subsubsection{Docker} + Questo strumento è stato utilizzato sia perché fortemente consigliato dal capitolato, sia perché permette il rilascio delle varie componenti in ambienti isolati tra loro, detti \glock{Container}, che simulano degli ambienti virtuali dov'è possibile eseguire e testare le proprie applicazioni. + \newline + In questo modo è possibile simulare l'esecuzione di più sistemi operativi su una stessa macchina fisica, condividendone le risorse, in modo da ridurre i costi e aumentare l'efficienza generale. + \newline + A differenza delle macchine virtuali, i \glock{container} risultano essere più leggeri, in quanto vengono fatti su misura per le applicazioni che devono contenere; in questo modo occupano meno memoria sul disco e impiegano meno risorse hardware. + \newline + I container vengono configurati tramite dei \glock{Dockerfile}, dove vengono specificate le operazioni da eseguire all'avvio del container stesso, oltre che informazioni e parametri specifici dell'ambiente, come il sistema operativo da utilizzare. Infine tramite dei \glock{docker-compose} vengono assemblate le diverse componenti, permettendo in pochi comandi di costruire l'intera architettura. + \newline + Per maggiori informazioni si consiglia di visitare il seguente link: + \newline + \begin{center} + \url{https://www.docker.com} + \end{center} + \subsection{Framework e librerie} + Le librerie esterne utilizzate sono state gestite tramite Maven per le componenti sviluppate in \glock{Java} (gateway, data connector ed \glock{API}); per i moduli del bot Telegram (sviluppato in \glock{Javascript}) è richiesto invece il gestore di pacchetti di \glock{Node.js} \glock{npm}. Infine per la componente web è necessario, oltre al già menzionato \textit{npm}, anche il gestore di pacchetti PHP \textit{Composer}. + \subsubsection{Spring} + Il framework \glock{Spring} è stato utilizzato per lo sviluppo della componente \glock{API}. Più precisamente dell'intera suite sono stati utilizzati Spring Boot, Spring Security, Spring Kafka e Spring Jpa. + \newline + Per maggiori informazioni visitare il seguente link: + \newline + \begin{center} + \url{https://spring.io/projects/spring-framework} + \end{center} + \subsubsection{Jwt} + Questa libreria permette di utilizzare lo standard JWT per trasmettere informazioni tra due componenti in formato \glock{JSON}. + \newline + Per maggiori informazioni visitare il seguente link: + \newline + \begin{center} + \url{https://jwt.io} + \end{center} + \subsubsection{Laravel} + Questo framework permette di realizzare applicazioni web utilizzando una sintassi espressiva ed elegante. Nel progetto è stato utilizzato per sviluppare la componente \glock{web app}. + \newline + Per maggiori informazioni visitare il seguente link: + \newline + \begin{center} + \url{https://laravel.com} + \end{center} + \subsubsection{Vue.js} + Questo framework permette di scrivere pagine web reattive e dalla sintassi elegante. Nel progetto è stato utilizzato per sviluppare la componente \glock{web app}. + \newline + Per maggiori informazioni visitare il seguente link: + \newline + \begin{center} + \url{https://vuejs.org} + \end{center} + \subsubsection{Boostrap} + Questo framework permette di sviluppare siti web e \glock{web application} responsive. Nel progetto è stato utilizzato nella creazione delle view della nostra web app. + \newline + Per maggiori informazioni visitare il seguente link: + \newline + \begin{center} + \url{https://getbootstrap.com/docs/4.4/getting-started/introduction/} + \end{center} + \subsubsection{Telegraf} + Questo modulo JavaScript viene usato all'interno della componente \glock{bot Telegram} per creare ed interfacciarsi con le \href{https://core.telegram.org/bots/api}{API ufficiali di Telegram}. + \newline + Per maggiori informazioni visitare il link seguente: + \newline + \begin{center} + \url{https://telegraf.js.org} + \end{center} + \ No newline at end of file diff --git a/esterni/manuale_manutentore/res/sections/telegram.tex b/esterni/manuale_manutentore/res/sections/telegram.tex new file mode 100644 index 0000000..0180ce1 --- /dev/null +++ b/esterni/manuale_manutentore/res/sections/telegram.tex @@ -0,0 +1,43 @@ +\subsection{Bot Telegram} + La componente \glock{bot Telegram} permette di ricevere codici di autenticazione a due fattori, notifiche di \glock{alert} ed inviare direttamente dei comandi ai singoli dispositivi, per alterarne lo stato. + \newline + La componente è stata sviluppata usando JavaScript ed i moduli Axios, HTTP e Telegraf. + +\subsubsection{Diagramma delle classi}%%%%%%%%%%%%%%%%%OK + \begin{figure}[H] + \centering + \includegraphics[scale=0.600]{res/images/BOTTELEGRAM/ClassiTelegram.png} + \caption{Diagramma delle classi della componente bot Telegram} + \label{Diagramma 19} + \end{figure} +\subsubsection{Dipendenze esterne} + La componente ha tre dipendenze esterne: + \begin{itemize} + \item \textbf{Telegraf}, modulo che permette di collegarsi con le API ufficiali di \glock{Telegram}. Ogni comando ne ha un riferimento. + \item \textbf{Axios}, modulo che permette di effettuare richieste POST e GET e di ritornare una risposta. Viene utilizzato da Server, Login e Status per comunicare con le \textit{API} e per inviare uno o più messaggi agli utilizzatori del bot; + \item \textbf{HTTP}, modulo che permette di creare un server HTTP per restare in ascolto di eventuali richieste. Viene utilizzato da Server per ascoltare eventali richieste delle \textit{API}. + \end{itemize} +\subsubsection{Diagramma di sequenza}%%%%%%%%%OK + \begin{figure}[H] + \centering + \includegraphics[scale=0.500]{res/images/BOTTELEGRAM/TelegramRichiestaPOST.png} + \caption{Diagramma di sequenza che riporta la ricezione di una richiesta POST delle \textit{API} all'interno della componente bot Telegram} + \label{Diagramma 20} + \end{figure} + + Nel diagramma di sequenza in alto viene mostrata la ricezione di una richiesta POST dalle \textit{API}. La richiesta può essere di due tipologie: + \begin{itemize} + \item \textbf{authentication:} in cui vengono inviati dalle \textit{API} un chat Id ed un codice di autenticazione; quest'ultimo dovrà poi essere inviato al chat Id specificato per permettere all'utente l'autenticazione sulla \glock{web app}; + \item \textbf{alert:} in cui vengono mandati dalle \textit{API} una lista di chat id ed un insieme di dati che poi andranno composti in un messaggio ed inviati a tutti i chat Id specificati. + \end{itemize} +\subsubsection{Estensione} + \paragraph{Inserimento di un nuovo comando} + Per inserire un nuovo comando all'interno del bot è necessario creare un file .js all'interno della cartella commands. + \newline + Poiché sarà poi necessario esportare questo comando, per poi inserirlo all'interno di main.js, l'intestazione del nuovo comando dovrà essere del tipo: + \begin{verbatim}const botNomeComando = (bot) => { + bot.command( "nomeComando", (param) => { + ... + }); + }; + \end{verbatim} \ No newline at end of file diff --git a/esterni/manuale_manutentore/res/sections/test.tex b/esterni/manuale_manutentore/res/sections/test.tex new file mode 100644 index 0000000..a1aa2bb --- /dev/null +++ b/esterni/manuale_manutentore/res/sections/test.tex @@ -0,0 +1,48 @@ +\section{Test} + In questa sezione viene spiegato come eseguire i test implementati per le componenti del progetto ThiReMa. + Per ciascun componente, in base al linguaggio di programmazione con cui è stato sviluppato, sarà necessario eseguire un comando apposito che avvierà tutte le suite dei test integrati. + A partire dalla cartella con tutte le componenti, sarà opportuno spostarsi sulla \textit{working directory} in cui sono contenuti i sorgenti. + + \subsection{Gateway} + + \begin{itemize} + \item \textit{ambiente:} Java (maven) + \item \textit{working directory:} \verb!./gateway/gateway/! + \item \textit{comando:} \verb!$ mvn verify! + \end{itemize} + + + \subsection{Data collector} + + \begin{itemize} + \item \textit{ambiente:} Java (maven) + \item \textit{working directory:} \verb!./kafka-db/kafka-data-collector/! + \item \textit{comando:} \verb!$ mvn verify! + \end{itemize} + + \subsection{API} + + \begin{itemize} + \item \textit{ambiente:} Java (maven) + \item \textit{working directory:} \verb!./api/apirest/! + \item \textit{comando:} \verb!$ mvn verify! + \end{itemize} + + + \subsection{Web application} + + \begin{itemize} + \item \textit{ambiente:} PHP (composer), NodeJs (npm) + \item \textit{working directory:} \verb!./webapp/! + \item \textit{comando per PHP:} \verb!$ composer install && vendor/bin/phpunit -c phpunit.xml! + \item \textit{comando per NodeJs:} \verb!$ npm run build --if-present && npm test ! + \end{itemize} + + \subsection{Bot Telegram} + + \begin{itemize} + \item \textit{ambiente:} NodeJs (npm) + \item \textit{working directory:} \verb!./telegram-bot/! + \item \textit{comando:} \verb!$ npm run build --if-present && npm test! + \end{itemize} + diff --git a/esterni/manuale_manutentore/res/sections/webApp.tex b/esterni/manuale_manutentore/res/sections/webApp.tex new file mode 100644 index 0000000..7670c28 --- /dev/null +++ b/esterni/manuale_manutentore/res/sections/webApp.tex @@ -0,0 +1,56 @@ +\subsection{Web application} + La componente \glock{web app} ha il compito di interfacciare gli utenti con i dispositivi censiti dal sistema e visibili al loro \glock{ente} di appartenenza. + \newline + Le principali funzionalità messe a disposizione riguardano la visualizzazione di grafici contenenti i dati di determinati sensori, la modifica delle configurazioni dei gateway e l'aggiunta o la rimozione di dispositivi e/o sensori. + \newline + La componente è stata sviluppata utilizzando i \glock{framework Laravel} e \glock{Vue.js}. + + \subsubsection{Diagramma dei package}%%%%%%%%%OK + \begin{figure}[H] + \centering + \includegraphics[scale=0.450]{res/images/WEBAPP/WebAppPackage.png} + \caption{Diagramma dei package della componente web app} + \label{Diagramma 21} + \end{figure} + + \subsubsection{Dipendenze esterne} + La componente ha le seguenti dipendenze esterne: + \begin{itemize} + \item \textbf{Laravel:} framework alla base della \glock{web app}, da cui vengono prese le basi dei controllers e dei models. Inoltre è il gestore delle view; + \item \textbf{Laravel/UI:} viene utilizzata per l'autenticazione all'interno della web app; + \item \textbf{guzzlehttp/guzzle:} viene utilizzata per effettuare richieste HTTP in linguaggio PHP; + \item \textbf{Axios:} viene utilizzata per effettuare delle richieste HTTP in \glock{JavaScript}; + \item \textbf{Datatables.js:} viene utilizzata per la paginazione delle tabelle; + \item \textbf{Apexcharts:} viene utilizzata per fare i grafici visibili all'interno dell'applicazione web; + \item \textbf{davejamesmiller/laravel-breadcrumbs:} questa dipendenza viene utilizzata per generare i breadcrumb all'interno delle pagine visualizzate; + \item \textbf{Vue.js:} framework che permette, tra le altre cose, di utilizzare array e variabili all'interno delle pagine per permetterne una visualizzazione dinamica dei contenuti; + \item \textbf{Bootstrap:} framework utilizzato per la creazione dell'interfaccia grafica dell'applicazione web; + \item \textbf{JQuery:} libreria utilizzata da \glock{Bootstrap} per molte delle sue componenti; + \item \textbf{Popper.js:} altra libreria utilizzata da \glock{Bootstrap}. + \end{itemize} + + + + \subsubsection{Diagrammi delle classi}%%%%%%%%%%OK + Nel diagramma delle classi della componente \glock{web app}, rappresentato nel file \textit{Immagini/WebApp-Classi.png}, sono presenti principalmente i provider ed i controller: i provider sono le componenti che effettuano le richieste \glock{API} da parte della web app e lavorano quindi a basso livello. + \newline + I controller invece dialogano con i provider ad un livello di astrazione più alto. Le pagine view non sono presenti in quanto il framework \glock{Laravel} le gestisce tramite pagine HTML. + \begin{landscape} + \subsubsection{Diagrammi di sequenza}%%%%%%%%%%OK + \begin{figure}[H] + \centering + \includegraphics[scale=0.400]{res/images/WEBAPP/AutenticazioneTfa.png} + \caption{Diagramma di sequenza che illustra l'autenticazione all'interno della componente web app} + \label{Diagramma 23} + \end{figure} + Nel diagramma di sequenza che rappresenta l'autenticazione, alla richiesta della vista di effettuare l'autenticazione, il LoginController verifica che le credenziali siano corrette ed in seguito, se l'utente ha attivato l'autenticazione a due fattori, invia il codice tramite richiesta HTTP POST al bot di Telegram, il quale visualizza il codice nella chat dell'utente. + \newline + Mentre, se l'utente non l'ha attivata, invia semplicemente la risposta all'utente. In entrambi i casi viene mostrata la risposta affermativa o negativa all'utente e se positiva viene effettuata l'autenticazione. + \begin{figure}[H] + \centering + \includegraphics[scale=0.600]{res/images/WEBAPP/Dashboard.index.png} + \caption{Diagramma di sequenza che illustra la visualizzazione della schermata dashboard all'interno della componente web app} + \label{Diagramma 24} + \end{figure} + Come si evince dal diagramma, il DashboardController crea uno UserService, un EntityServiceProvider ed un DeviceServiceProvider, i quali effettuano le richieste \glock{API} per richiedere le informazioni da visualizzare nella dashboard, quali ad esempio il numero di utenti di un certo ente o le informazioni dell'account dell'utente che sta visualizzando la dashboard. Infine tutte le informazioni ricavate vengono restituite alla pagine view. + \end{landscape} \ No newline at end of file diff --git a/esterni/manuale_manutentore/res/sezioni.tex b/esterni/manuale_manutentore/res/sezioni.tex new file mode 100644 index 0000000..e732a6e --- /dev/null +++ b/esterni/manuale_manutentore/res/sezioni.tex @@ -0,0 +1,16 @@ +% ----------------------- +% Sezioni da inserire +% ----------------------- +% Pro tip: usare il comando \yetAnotherSectionNamed{nome_file} + +\yetAnotherSectionNamed{introduzione} +\yetAnotherSectionNamed{tecnologie} +\yetAnotherSectionNamed{requisiti} +\yetAnotherSectionNamed{installazione} +\yetAnotherSectionNamed{test} +\yetAnotherSectionNamed{architettura} +\yetAnotherSectionNamed{glossario} + + + + diff --git a/esterni/manuale_utente/main.tex b/esterni/manuale_utente/main.tex new file mode 100644 index 0000000..ff799a6 --- /dev/null +++ b/esterni/manuale_utente/main.tex @@ -0,0 +1,102 @@ +%!TEX output_directory = .cache +% --------------------------- +% [ Manuale Utente ] +% ---------------------- +% Red Round Robin +% Progetto di SWE (2019-20) +% Template by Maxelweb +% --------------------------- + +% Configurazione primaria del documento + +% -------------- + +\newcommand{\docNome}{ MANUALE UTENTE } +\newcommand{\docBaseline}{+b0.15} +\newcommand{\docVersione}{1.0.0\docBaseline} +\newcommand{\docNomeProgetto}{ ThiReMa Project } +\newcommand{\docStatus}{Approvato} +\newcommand{\docUso}{Esterno} +\newcommand{\docDescrizione}{ + Il documento contiene una guida all'uso prodotto ThiReMa. +} + +% -------------- + +\newcommand{\docDestinatari}{ + SanMarco Informatica \\& + Prof. Tullio Vardanega \\& + Prof. Riccardo Cardin \\& + Red Round Robin + +} +\newcommand{\docRedattori}{ + Lorenzo Dei Negri \\& + Nicolò Frison + +} +\newcommand{\docVerificatori}{ + Mariano Sciacco \\& + Lorenzo Dei Negri + +} +\newcommand{\docApprovazione}{ + Alessandro Tommasin +} + +% ----- NON MODIFICARE SOTTO QUESTA RIGA ----- + +% --------------------------- +% Configurazioni +% --------------------------- + +\documentclass[11pt,a4paper,table]{article} + +\input{res/configurazione} +\usepackage{sectsty} + +% --------------------------- +% Dati frontespizio +% --------------------------- + +\title{\hr \huge \textsc{\docNome} \\ + \vspace{11pt} \large \textsc{\docNomeProgetto} \hr} + +\author{} % Non toccare +\date{} % Non toccare + +% --------------------------- +% Composizione del documento +% --------------------------- + +\begin{document} + +% Frontespizio + +\pagenumbering{gobble} +\DeactivateBG +\input{res/frontespizio} + +% Registro delle modifiche + +\newpage +\ActivateBG +\pagenumbering{arabic} +\input{res/registro} + +% Tabella dei contenuti + +\newpage +\tableofcontents +\listoffigures +\listoftables + +% Sezioni + +\newpage +\input{res/sezioni} + +\end{document} + + +% EOF diff --git a/esterni/manuale_utente/res/configurazione.tex b/esterni/manuale_utente/res/configurazione.tex new file mode 100644 index 0000000..1706de0 --- /dev/null +++ b/esterni/manuale_utente/res/configurazione.tex @@ -0,0 +1,172 @@ +% Ultimo aggiornamento: 13 gennaio 2020 +% Configurazione delle dipendenze e dei package + +\usepackage{geometry} +\usepackage{graphicx} +\usepackage{multirow} +\usepackage[T1]{fontenc} +\usepackage[utf8]{inputenc} +\usepackage{charter} +\usepackage{eurosym} +\usepackage[italian]{babel} +\usepackage{float} +\usepackage{subcaption} +\usepackage{wrapfig} +\usepackage{fancyhdr} +\usepackage{lastpage} +\usepackage{amsfonts} +\usepackage{fancyvrb} +\usepackage{background} +\usepackage{xcolor} +\usepackage{hyperref} +\usepackage{listings} +\usepackage{longtable} +\usepackage{colortbl} +\usepackage{tikz} +\usepackage{titlesec} +\usepackage{amsmath} +\usepackage{grffile} + + + +% Impostazione sottotitolo di quarto livello e quinto livello + +\setcounter{secnumdepth}{4} +\setcounter{tocdepth}{4} + +\titleformat{\paragraph} +{\normalfont\normalsize\bfseries}{\theparagraph}{1em}{} +\titlespacing*{\paragraph}{0pt}{2.25ex plus 1ex minus .2ex}{1.5ex plus .2ex} + +\titleformat{\subparagraph} +{\normalfont\normalsize\bfseries}{\thesubparagraph}{1em}{} +\titlespacing*{\subparagraph}{0pt}{1.75ex plus 1ex minus .2ex}{.75ex plus .1ex} + + +% Impostazioni pagina e margini + +\geometry{ + margin=1.0in, + top=19.2mm, % NON TOCCARE + bottom=30mm, + left=20mm, + right=20mm +} + +% Definizione colori + +\definecolor{footer-gray}{HTML}{808080} +\definecolor{light-gray}{gray}{0.6} +\definecolor{light-grayer}{gray}{0.75} +\definecolor{lighter-grayer}{gray}{0.85} +\definecolor{lightest-grayest}{gray}{0.94} +\definecolor{codegreen}{rgb}{0,0.4,0.2} +\definecolor{codegray}{rgb}{0.5,0.5,0.5} +\definecolor{codepurple}{rgb}{0.58,0,0.82} +\definecolor{backcolour}{rgb}{0.95,0.95,0.96} + + +% Impostazione header e footer + +\pagestyle{fancy} +\setlength\headheight{33pt} +\renewcommand{\headrulewidth}{0pt} +\fancyhead{} +\lhead{\includegraphics[height=10mm]{res/images/logo.png}} +\rhead{\raisebox{1.4\height}{\leftmark}} + + +\renewcommand{\footrulewidth}{0.1pt} +\fancyfoot{} +\lfoot{ \textcolor{footer-gray}{\docNome - v\docVersione} } + +\renewcommand{\footrule}{\hbox to\headwidth{\color{light-grayer}\leaders\hrule height \footrulewidth\hfill}} +\rfoot{ \textcolor{footer-gray}{Pagina \thepage \hspace{1pt} di \pageref*{LastPage}} } + +% Grandezza paragrafi e spaziatura frasi + +\setlength{\parindent}{1.55em} +\setlength{\parskip}{1.0em} +\renewcommand{\baselinestretch}{1.025} + +% Colori link + +\hypersetup{ + colorlinks, + linkcolor=[HTML]{404040}, + citecolor={blue!50!black}, + urlcolor={red!50!black} +} +\PassOptionsToPackage{hyphens}{url}\usepackage{hyperref} + +% Equivalente a
+ +\newcommand{\hr}{\par\vspace{-.1\ht\strutbox}\noindent\hrulefill\par} + +% Tabelle e tabulazione + +\setlength{\tabcolsep}{10pt} +\renewcommand{\arraystretch}{1.4} + +% Unicode per simbolo euro + +\DeclareUnicodeCharacter{20AC}{\euro} + +% Configurazione sfondo + +\newcommand\DeactivateBG{\backgroundsetup{contents={}}} +\newcommand\ActivateBG{ \backgroundsetup{ + scale=1.0, + color=black, + opacity=1.0, + angle=0, + contents={% + \includegraphics[height=297mm]{res/images/background.png} + }% +}} + +% Codice e snippet + +\renewcommand{\lstlistingname}{Snippet} +\renewcommand{\lstlistlistingname}{Lista di \lstlistingname s} + + +\lstdefinestyle{chungusHighlight}{ + frame=tb, + backgroundcolor=\color{backcolour}, + commentstyle=\color{codegreen}, + keywordstyle=\color{magenta}\textbf, + numberstyle=\color{codegray}, + stringstyle=\color{codepurple}, + basicstyle={\ttfamily}, + breakatwhitespace=false, + breaklines=true, + captionpos=b, + keepspaces=true, + numbers=left, + numbersep=5pt, + showspaces=false, + showstringspaces=false, + showtabs=false, + numbers=none, + tabsize=2 +} + +\lstset{style=chungusHighlight} + + +% Comando per aggiungere le pagine di ogni sezione + +\newcommand{\yetAnotherSectionNamed}[1]{% + \newpage + \input{res/sections/#1} +}% + + +% Comando per i documenti esterni e il glossario + +\newcommand{\dext}[1]{\textsc{#1\docBaseline\textsubscript{\textit{D}}}} + +\newcommand{\glock}[1]{\textsc{#1\textsubscript{\textit{G}}}} + + diff --git a/esterni/manuale_utente/res/frontespizio.tex b/esterni/manuale_utente/res/frontespizio.tex new file mode 100644 index 0000000..b913f6e --- /dev/null +++ b/esterni/manuale_utente/res/frontespizio.tex @@ -0,0 +1,57 @@ + +% FRONTESPIZIO + +% Logo aziendale + +\begin{figure}[t!] + \centering + \includegraphics[height=8.5em]{res/images/logo.png} +\end{figure} + +\vspace{-7.5em} + +% Titolo principale + +\maketitle +\thispagestyle{empty} + + +% Riferimenti email e sito web + +\vspace{-7em} + +\begin{center} + \href{https://www.redroundrobin.site}{www.redroundrobin.site} --- \href{mailto:redroundrobin.site@gmail.com}{redroundrobin.site@gmail.com} +\end{center} + +\vspace{1em} + +% Informazioni documento + +\begin{table}[ht] + \begin{center} + \label{tab:Informazioni_Documento} + \begin{tabular}{r|l} + \multicolumn{2}{c}{ \textsc{Informazioni sul documento} } \\ + \hline + \textbf{Versione} & \docVersione \\ + \textbf{Uso} & \docUso \\ + \textbf{Stato} & \docStatus \\ + \textbf{Destinatari} & \docDestinatari \\ + \textbf{Redattori} & \docRedattori \\ + \textbf{Verificatori} & \docVerificatori \\ + \textbf{Approvazione} & \docApprovazione \\ + \end{tabular} + \end{center} +\end{table} + + +% Descrizione del documento + +%\vspace{0em} + +%\begin{center} +% \textbf{Descrizione}\\ +% \docDescrizione +%\end{center} + diff --git a/esterni/manuale_utente/res/images/background.png b/esterni/manuale_utente/res/images/background.png new file mode 100644 index 0000000..9dcca68 Binary files /dev/null and b/esterni/manuale_utente/res/images/background.png differ diff --git a/esterni/manuale_utente/res/images/logo.png b/esterni/manuale_utente/res/images/logo.png new file mode 100644 index 0000000..32071fe Binary files /dev/null and b/esterni/manuale_utente/res/images/logo.png differ diff --git a/esterni/manuale_utente/res/images/telegram1.jpg b/esterni/manuale_utente/res/images/telegram1.jpg new file mode 100644 index 0000000..4aa32ca Binary files /dev/null and b/esterni/manuale_utente/res/images/telegram1.jpg differ diff --git a/esterni/manuale_utente/res/images/telegram2.jpg b/esterni/manuale_utente/res/images/telegram2.jpg new file mode 100644 index 0000000..e326198 Binary files /dev/null and b/esterni/manuale_utente/res/images/telegram2.jpg differ diff --git a/esterni/manuale_utente/res/images/telegram3.jpg b/esterni/manuale_utente/res/images/telegram3.jpg new file mode 100644 index 0000000..2da10c3 Binary files /dev/null and b/esterni/manuale_utente/res/images/telegram3.jpg differ diff --git a/esterni/manuale_utente/res/registro.tex b/esterni/manuale_utente/res/registro.tex new file mode 100644 index 0000000..574aedd --- /dev/null +++ b/esterni/manuale_utente/res/registro.tex @@ -0,0 +1,32 @@ +\section*{Registro delle modifiche} + +\begin{center} + \rowcolors{2}{lightest-grayest}{white} + \begin{longtable}{|c|p{3.5cm}|c|p{3cm}|p{3cm}|} + \hline + \rowcolor{lighter-grayer} + \textbf{Versione} & \textbf{Descrizione} & \textbf{Data} & \textbf{Autore} & \textbf{Ruolo} \\ + \hline + \endfirsthead + % Modificare da QUI % + + + 1.0.0+b0.15 & Approvazione del documento & 2020-04-13 & Alessandro Tommasin & Responsabile \\ + \hline + 0.1.4+b0.14 & Stesura e verifica dell'appendice \S A & 2020-04-11 & Lorenzo Dei Negri e Mariano Sciacco & Amministratore e verificatore \\ + \hline + 0.1.3+b0.14 & Stesura e verifica della sezione \S4 & 2020-04-10 & Lorenzo Dei Negri e Mariano Sciacco & Amministratore e verificatore \\ + \hline + 0.1.2+b0.14 & Stesura e verifica della sezione \S3 & 2020-04-09 & Lorenzo Dei Negri e Mariano Sciacco & Amministratore e verificatore \\ + \hline + 0.1.1+b0.14 & Stesura e verifica della sezione \S2 & 2020-04-09 & Lorenzo Dei Negri e Mariano Sciacco & Amministratore e verificatore \\ + \hline + 0.1.0+b0.14 & Approvazione del documento & 2020-04-06 & Giovanni Vidotto & Responsabile \\ + \hline + 0.0.2+b0.13 & Stesura e verifica della sezione \S1 & 2020-03-31 & Nicolò Frison e Lorenzo Dei Negri & Amministratore e verificatore \\ + \hline + 0.0.1+b0.13 & Creazione documento & 2020-03-31 & Nicolò Frison & Amministratore \\ + \hline + %%%%%%%%%%%%%%%%%%%%%% + \end{longtable} +\end{center} \ No newline at end of file diff --git a/esterni/manuale_utente/res/sections/amministratore.tex b/esterni/manuale_utente/res/sections/amministratore.tex new file mode 100644 index 0000000..9f001f9 --- /dev/null +++ b/esterni/manuale_utente/res/sections/amministratore.tex @@ -0,0 +1,3 @@ +\section{Amministratore} +Questa sezione contiene le informazioni necessarie ad un amministratore di sistema per utilizzare l'interfaccia web di ThireMa. Questa sezione sarà completata quando saranno implementate le funzionalità per l'amministratore. + diff --git a/esterni/manuale_utente/res/sections/glossario.tex b/esterni/manuale_utente/res/sections/glossario.tex new file mode 100644 index 0000000..af8959a --- /dev/null +++ b/esterni/manuale_utente/res/sections/glossario.tex @@ -0,0 +1,63 @@ +\appendix +\addcontentsline{toc}{section}{Appendice} + +\setcounter{secnumdepth}{1} % No section number +\setcounter{tocdepth}{3} % No section number + + +\section{Glossario} +\subsection{A} +\subsubsection{Alert} Segnale generato per comunicare un messaggio, in cui la soglia di un sensore è stata superata. +\subsubsection{API} Le API (acronimo di Application Programming Interface, ovvero Interfaccia di programmazione delle applicazioni) sono set di definizioni e protocolli con i quali vengono realizzati e integrati software applicativi. +\subsection{B} +\subsubsection{Bootstrap} Bootstrap è una raccolta di strumenti liberi per la creazione di siti e applicazioni per il Web. Essa contiene modelli di progettazione basati su HTML e CSS, sia per la tipografia, che per le varie componenti dell'interfaccia, come moduli, pulsanti e navigazione, così come alcune estensioni opzionali di JavaScript. +\subsubsection{Bot} I bot sono applicazioni di terze parti sviluppati da programmatori esterni per interagire con gli utenti tramite messaggi, comandi e richieste in linea tramite il servizio di messaggistica Telegram. +\subsection{C} +\subsubsection{Chrome, Google} +Browser web sviluppato da Google. +\subsubsection{Container, Docker} +Un container è una singola unità di software che contiene sia il codice che tutte le sue dipendenze in modo tale da poter essere eseguito velocemente in qualsiasi ambiente. +\subsection{D} +\subsubsection{Docker} Il software Docker è una tecnologia di containerizzazione che consente la creazione e l'utilizzo dei container Linux. +\subsubsection{Dockerfile} Un \textit{Dockerfile} è un file di configurazione che illustra i passaggi che devono essere realizzati per compilare un'immagine di un sistema operativo come base per eseguire un certo applicativo. +\subsubsection{Docker-compose} Il docker-compose è un comando che può essere utilizzato per comporre, letteralmente, tutta l'infrastruttura in base ai servizi che si è scelto di integrare. Fa uso dei \textit{Dockerfile} per avviare l'eventuale build delle \textit{immagini Docker} e permette con un solo comando di attivare (\verb!docker-compose up -d!) o disattivare (\verb!docker-compose down!) tutti i servizi. L'intera configurazione è salvata su un file denominato per convenzione \verb!docker-compose.yml!. +\subsection{E} +\subsubsection{Edge, Microsoft} +Browser web sviluppato da Microsoft. +\subsubsection{Ente} +Con ente si intende una azienda o associazione a cui viene assegnato il monitoraggio di alcuni dispositivi. +\subsection{F} +\subsubsection{Firefox, Mozilla} +Browser web libero e multipiattaforma mantenuto da Mozilla Foundation. +\subsubsection{Framework} Un framework, è un'architettura logica di supporto (spesso un'implementazione logica di un particolare design pattern) su cui un software può essere progettato e realizzato. +\subsection{I} +\subsubsection{Immagine, Docker} Un'immagine Docker è un eseguibile che può essere istanziato in un container. L'immagine Docker viene prodotta a seguito della compilazione tramite il comando \verb!docker build! di un \textit{Dockerfile} o di un \textit{docker-compose}. +\subsection{J} +\subsubsection{Java} Java è un linguaggio di programmazione ad alto livello, orientato agli oggetti e a tipizzazione statica, che si appoggia sull'omonima piattaforma software di esecuzione, specificamente progettato per essere il più possibile indipendente dalla piattaforma hardware di esecuzione tramite l'utilizzo di macchina virtuale. +\subsubsection{JavaScript} JavaScript è un linguaggio di scripting orientato agli oggetti e agli eventi, comunemente utilizzato nella programmazione web lato client per la creazione, in siti web e applicazioni web, di effetti dinamici interattivi tramite funzioni di script invocate da eventi innescati a loro volta in vari modi dall'utente sulla pagina web in uso. +\subsubsection{JSON} +Formato utilizzato per lo scambio di dati all'interno della componenti dell'applicazione. +\subsubsection{JUnit} +Framework di unit testing per il linguaggio di programmazione Java. +\subsection{K} +\subsubsection{Kafka, Apache} Apache Kafka è una piattaforma open source di stream processing scritta in Java e Scala e sviluppata dall'Apache Software Foundation. Questo progetto viene usato principalmente per tutte le applicazioni di elaborazioni di stream di dati in tempo reale. +\subsection{L} +\subsubsection{Laravel} Laravel è un framework open-source molto potente e usato per sviluppare applicazioni in PHP, facendo uso nativamente di Bootstrap e Vue.js. Permette di realizzare la parte back-end di un sito web seguendo il modello model-view-controller. +\subsection{N} +\subsubsection{Node Package Manager (NPM)} NPM (abbreviazione di Node Package Manager) è un gestore di pacchetti per il linguaggio di programmazione JavaScript. È il gestore di pacchetti predefinito per l'ambiente di runtime JavaScript Node.js. +\subsubsection{Node.js} Node.js è una runtime di JavaScript Open source multipiattaforma orientato agli eventi per l'esecuzione di codice JavaScript. +\subsection{P} +\subsubsection{PostgreSQL} PostgreSQL è un completo DBMS ad oggetti rilasciato con licenza libera. +\subsection{S} +\subsubsection{Safari} +Browser web sviluppato da Apple Inc. +\subsubsection{Spring, framework} Spring è un framework Java open-source che viene utilizzato per lo sviluppo di applicativi web e di servizi API. +\subsection{T} +\subsubsection{Telegram} Telegram è un servizio di messaggistica istantanea e broadcasting basato su cloud. +\subsubsection{TimeScaleDB} TimeScaleDB è un database open-source costruito per analizzare dati di serie storiche. +\subsubsection{Timeseries DB} Con il termine timeseries DB si intende un database il cui scopo è la memorizzazione di serie storiche di dati. +\subsection{V} +\subsubsection{Vue.js} Vue.js è un framework open-source di Javascript che permette di realizzare la parte front-end dinamica in unione con Laravel. Il framework è molto flessibile e altamente scalabile, nonché compatibile anche con Bootstrap. +\subsection{W} +\subsubsection{Web application} +Con web app o applicazione web, si intende una applicazione fruibile via web per mezzo di un browser. \ No newline at end of file diff --git a/esterni/manuale_utente/res/sections/introduzione.tex b/esterni/manuale_utente/res/sections/introduzione.tex new file mode 100644 index 0000000..c7eaa4f --- /dev/null +++ b/esterni/manuale_utente/res/sections/introduzione.tex @@ -0,0 +1,16 @@ +\section{Introduzione} + \subsection{Premessa} + \textbf{Il documento non è da intendersi come concluso e definitivo.} Alcune funzionalità devono essere ancora implementate e pertanto la struttura e i contenuti del documento potrebbe cambiare. + \subsection{Scopo del documento} + Lo scopo del documento è raggruppare i video informativi creati dal gruppo Red Round Robin. Il documento è suddiviso, oltre all'introduzione, in tre sezioni: una con le informazioni di carattere generale, una per il moderatore ente ed infine una per l'amministratore. + \subsection{Scopo del prodotto} + Per grandi e medie aziende, ma non solo, la gestione e l'analisi di grosse moli di dati sta diventando sempre di più una realtà concreta. + \newline + Il progetto ThiReMa si prefigge come obiettivo la creazione di una web application, la quale permetta di analizzare ingenti moli di dati, ricevuti da più sensori eterogenei tra loro. Tale applicazione metterà a disposizione un'interfaccia intuitiva che permetterà di visualizzare più dati di interesse od eventuali correlazioni tra gli stessi. Infine, per ogni tipologia di dato sarà possibile assegnarne il monitoraggio ad un particolare ente. + \subsection{Glossario e documenti esterni} + Per evitare possibili ambiguità relative alle terminologie (che andranno indicate in \textsc{maiuscoletto}) utilizzate nei vari documenti, verranno utilizzate due simboli: + \begin{itemize} + \item una \textit{D} al pedice per indicare il nome di un particolare documento; + \item una \textit{G} al pedice per indicare un termine che sarà presente nel \textit{Glossario} all'interno dell'appendice del documento. + \end{itemize} + \ No newline at end of file diff --git a/esterni/manuale_utente/res/sections/membro.tex b/esterni/manuale_utente/res/sections/membro.tex new file mode 100644 index 0000000..fd501c2 --- /dev/null +++ b/esterni/manuale_utente/res/sections/membro.tex @@ -0,0 +1,60 @@ +\section{Generale / Membro} +Questa sezione contiene tutte le informazioni di carattere generale dell'applicazione: è quindi indicata a tutti gli utenti che devono svolgere svolgere compiti base nell'applicazione. Ad esempio modificare le proprie impostazioni o tenere sotto controllo le rilevazioni visualizzate sotto forma di grafico o di correlazione all'interno della \glock{web app}. + +\subsection{Accesso alla web app} +Per visualizzare il tutorial recati al seguente link: +\url{https://www.youtube.com/watch?v=PjySMOLCtMA&list=PLPKYjnuIh1FA3b3jn_bwY_ztYzaFn2mIT&index=2&t=0s} + +\subsection{Accesso alla web app con TFA} +Per visualizzare il tutorial recati al seguente link: +\url{https://www.youtube.com/watch?v=DsfMva_ZtGo&list=PLPKYjnuIh1FA3b3jn_bwY_ztYzaFn2mIT&index=2} + +\subsection{Visualizzazione dashboard e supporto tecnico} +Per visualizzare il tutorial recati al seguente link: +\url{https://www.youtube.com/watch?v=feDx1bGgwOY&list=PLPKYjnuIh1FA3b3jn_bwY_ztYzaFn2mIT&index=3} + +\subsection{Impostazioni account} +Per visualizzare il tutorial recati al seguente link: +\url{https://www.youtube.com/watch?v=tXF_dbfbd4s&list=PLPKYjnuIh1FA3b3jn_bwY_ztYzaFn2mIT&index=4} + +\subsection{Configurazione Telegram} + Per usufruire delle funzionalità di alert è necessario scaricare l'applicazione Telegram dallo store sul proprio dispositivo. + Dopo aver avviato l'applicazione è necessario entrare nelle impostazioni cliccando prima sul menù ad hamburger in altro a sinistra sullo schermo. + \begin{figure}[H] + \centering + \includegraphics[scale=0.100]{res/images/telegram1.jpg} + \caption{Come entrare nella sezione impostazioni} + \label{Screenshot1} + \end{figure} + \newpage + In seguito è necessario cliccare nel punto indicato dalla freccia per poter inserire e/o modificare il proprio username + \begin{figure}[H] + \centering + \includegraphics[scale=0.100]{res/images/telegram2.jpg} + \caption{Come inserire uno username} + \label{Screenshot2} + \end{figure} + Infine è necessario inserire il nome nel campo indicato prestando attenzione ad inserire almeno 5 caratteri e salvare cliccando la spunta in alto a destra. + \begin{figure}[H] + \centering + \includegraphics[scale=0.100]{res/images/telegram3.jpg} + \caption{Come salvare lo username inserito} + \label{Screenshot3} + \end{figure} + +\subsection{Abilitazione notifiche alert e TFA} +Per visualizzare il tutorial recati al seguente link: +\url{https://www.youtube.com/watch?v=yY3eAmf-qE4&list=PLPKYjnuIh1FA3b3jn_bwY_ztYzaFn2mIT&index=5} + +\subsection{Alerts e impostazioni di notifica} +Per visualizzare il tutorial recati al seguente link: +\url{https://www.youtube.com/watch?v=p4cjw_fPQHs&list=PLPKYjnuIh1FA3b3jn_bwY_ztYzaFn2mIT&index=6} + +\subsection{Gestione pagine view} +Per visualizzare il tutorial recati al seguente link: +\url{https://www.youtube.com/watch?v=hny4ZP4W3KQ&list=PLPKYjnuIh1FA3b3jn_bwY_ztYzaFn2mIT&index=7} + +\subsection{Gestione dispositivi e sensori} +Per visualizzare il tutorial recati al seguente link: +\url{https://www.youtube.com/watch?v=0V0dy97eWCY&list=PLPKYjnuIh1FA3b3jn_bwY_ztYzaFn2mIT&index=8} + diff --git a/esterni/manuale_utente/res/sections/moderatoreEnte.tex b/esterni/manuale_utente/res/sections/moderatoreEnte.tex new file mode 100644 index 0000000..fae30b7 --- /dev/null +++ b/esterni/manuale_utente/res/sections/moderatoreEnte.tex @@ -0,0 +1,22 @@ +\section{Moderatore ente} +Questa sezione è indicata per gli utenti il cui compito è amministrare un \glock{ente} all'interno del sistema il cui compito è, oltre a controllare il flusso di dati, anche gestire gli utenti appartenenti al proprio ente e gestire le notifiche di alert inviate al bot di Telegram per gli utenti appartenenti al proprio ente. + +\subsection{Visualizzazione utenti e profili} +Per visualizzare il tutorial recati al seguente link: +\url{https://www.youtube.com/watch?v=FYI9UJyTVac&list=PLPKYjnuIh1FA3b3jn_bwY_ztYzaFn2mIT&index=9} + +\subsection{Creazione e modifica utenti} +Per visualizzare il tutorial recati al seguente link: +\url{https://www.youtube.com/watch?v=zShERsqBsmA&list=PLPKYjnuIh1FA3b3jn_bwY_ztYzaFn2mIT&index=10} + +\subsection{Disattivazione e ripristino utente} +Per visualizzare il tutorial recati al seguente link: +\url{https://www.youtube.com/watch?v=ORcxfCUnlY0&list=PLPKYjnuIh1FA3b3jn_bwY_ztYzaFn2mIT&index=11} + +\subsection{Gestione degli alerts} +Per visualizzare il tutorial recati al seguente link: +\url{https://www.youtube.com/watch?v=vVIs6lhCc_Y&list=PLPKYjnuIh1FA3b3jn_bwY_ztYzaFn2mIT&index=12} + +\subsection{Visualizzazione logs} +Per visualizzare il tutorial recati al seguente link: +\url{https://www.youtube.com/watch?v=e0uxIJjTm2s&list=PLPKYjnuIh1FA3b3jn_bwY_ztYzaFn2mIT&index=13} diff --git a/esterni/manuale_utente/res/sections/requisiti.tex b/esterni/manuale_utente/res/sections/requisiti.tex new file mode 100644 index 0000000..75671df --- /dev/null +++ b/esterni/manuale_utente/res/sections/requisiti.tex @@ -0,0 +1,30 @@ +\section{Requisiti di sistema} + + \subsection{Requisiti hardware minimi} + Per poter fruire dell'applicazione web, è necessario avere un computer con le seguenti specifiche minime: + \begin{itemize} + \item \textit{sistema operativo:} Windows 10 (64bit), Debian 9.x (64bit), MacOs 10.13 High Sierra; + \item \textit{processore (CPU):} Dual core a 2Ghz; + \item \textit{memoria (RAM):} 4GB; + \item \textit{connessione internet:} attiva; + \end{itemize} + Per poter fruire dell'applicazione \glock{Telegram} o dell'applicazione web su mobile è necessario avere uno smartphone o un tablet con le seguenti caratteristiche minime: + \begin{itemize} + \item \textit{sistema operativo:} iOS 13.0, Android 9; + \item \textit{processore (CPU):} Dual core; + \item \textit{memoria (RAM):} 2GB; + \item \textit{connessione internet:} attiva; + \end{itemize} + + \subsection{Web application} + L'applicazione web del progetto ThireMa è accessibile tramite i seguenti browser: + \begin{itemize} + \item \glock{Mozilla Firefox} a partire dalla versione 69.0; + \item \glock{Google Chrome} a partire dalla versione 75.0; + \item \glock{Safari} a partire dalla versione 13.0; + \item \glock{Microsoft Edge} a partire dalla versione 42.0. + \end{itemize} + È necessario avere nel browser Javascript attivo e i cookie abilitati. + + \subsection{Telegram} + Per inviare comandi e ricevere degli alert tramite un \glock{bot Telegram}, è necessario inoltre disporre di un \textit{Username}, configurabile all'interno della sezione impostazioni dell'applicazione \glock{Telegram}. diff --git a/esterni/manuale_utente/res/sections/supportoTecnico.tex b/esterni/manuale_utente/res/sections/supportoTecnico.tex new file mode 100644 index 0000000..28b8ebd --- /dev/null +++ b/esterni/manuale_utente/res/sections/supportoTecnico.tex @@ -0,0 +1,13 @@ +\section{Supporto tecnico} +Nel caso venissero riscontrati bug o malfunzionamenti, si prega di inviare una mail all'indirizzo \href{mailto:redroundrobin.site@gmail.com}{redroundrobin.site@gmail.com}. La mail deve essere preferibilmente nel seguente formato: +\begin{itemize} + \item \textbf{Oggetto}: [ThiReMa] <> + \item \textbf{Corpo}: + \begin{itemize} + \item data in cui è stato riscontrato il problema nel formato AAAA-MM-GG; + \item breve descrizione del problema; + \item sistema operativo in cui è avvenuto il problema; + \item browser in cui è avvenuto il problema. + \end{itemize} + \item \textbf{Allegati}: <<è possibile allegare immagini o contenuto testuale che possa facilitare la risoluzione del problema>> + \end{itemize} \ No newline at end of file diff --git a/esterni/manuale_utente/res/sezioni.tex b/esterni/manuale_utente/res/sezioni.tex new file mode 100644 index 0000000..cd55eba --- /dev/null +++ b/esterni/manuale_utente/res/sezioni.tex @@ -0,0 +1,12 @@ +% ----------------------- +% Sezioni da inserire +% ----------------------- +% Pro tip: usare il comando \yetAnotherSectionNamed{nome_file} + +\yetAnotherSectionNamed{introduzione} +\yetAnotherSectionNamed{requisiti} +\yetAnotherSectionNamed{membro} +\yetAnotherSectionNamed{moderatoreEnte} +\yetAnotherSectionNamed{amministratore} +\yetAnotherSectionNamed{supportoTecnico} +\yetAnotherSectionNamed{glossario} diff --git a/esterni/piano_progetto/images/consuntivo/ConsIncr1-4-1.png b/esterni/piano_progetto/images/consuntivo/ConsIncr1-4-1.png new file mode 100644 index 0000000..224334b Binary files /dev/null and b/esterni/piano_progetto/images/consuntivo/ConsIncr1-4-1.png differ diff --git a/esterni/piano_progetto/images/consuntivo/ConsIncr1-4-2.png b/esterni/piano_progetto/images/consuntivo/ConsIncr1-4-2.png new file mode 100644 index 0000000..c4d7b48 Binary files /dev/null and b/esterni/piano_progetto/images/consuntivo/ConsIncr1-4-2.png differ diff --git a/esterni/piano_progetto/images/consuntivo/ConsIncr5-8-1.png b/esterni/piano_progetto/images/consuntivo/ConsIncr5-8-1.png new file mode 100644 index 0000000..995f97c Binary files /dev/null and b/esterni/piano_progetto/images/consuntivo/ConsIncr5-8-1.png differ diff --git a/esterni/piano_progetto/images/consuntivo/ConsIncr5-8-2.png b/esterni/piano_progetto/images/consuntivo/ConsIncr5-8-2.png new file mode 100644 index 0000000..c68b384 Binary files /dev/null and b/esterni/piano_progetto/images/consuntivo/ConsIncr5-8-2.png differ diff --git a/esterni/piano_progetto/images/consuntivo/ConsIncr9-12-1.png b/esterni/piano_progetto/images/consuntivo/ConsIncr9-12-1.png new file mode 100644 index 0000000..96c1cff Binary files /dev/null and b/esterni/piano_progetto/images/consuntivo/ConsIncr9-12-1.png differ diff --git a/esterni/piano_progetto/images/consuntivo/ConsIncr9-12-2.png b/esterni/piano_progetto/images/consuntivo/ConsIncr9-12-2.png new file mode 100644 index 0000000..d2e121f Binary files /dev/null and b/esterni/piano_progetto/images/consuntivo/ConsIncr9-12-2.png differ diff --git a/esterni/piano_progetto/images/gantt/Incrementi-I-IV.png b/esterni/piano_progetto/images/gantt/Incrementi-I-IV.png new file mode 100644 index 0000000..5f66a41 Binary files /dev/null and b/esterni/piano_progetto/images/gantt/Incrementi-I-IV.png differ diff --git a/esterni/piano_progetto/images/gantt/Incrementi-IX-XII.png b/esterni/piano_progetto/images/gantt/Incrementi-IX-XII.png new file mode 100644 index 0000000..7a7c475 Binary files /dev/null and b/esterni/piano_progetto/images/gantt/Incrementi-IX-XII.png differ diff --git a/esterni/piano_progetto/images/gantt/Incrementi-V-VIII.png b/esterni/piano_progetto/images/gantt/Incrementi-V-VIII.png new file mode 100644 index 0000000..ffd9679 Binary files /dev/null and b/esterni/piano_progetto/images/gantt/Incrementi-V-VIII.png differ diff --git a/esterni/piano_progetto/images/preventivo/incremento1-4-1.png b/esterni/piano_progetto/images/preventivo/incremento1-4-1.png new file mode 100644 index 0000000..69c249b Binary files /dev/null and b/esterni/piano_progetto/images/preventivo/incremento1-4-1.png differ diff --git a/esterni/piano_progetto/images/preventivo/incremento1-4-2.png b/esterni/piano_progetto/images/preventivo/incremento1-4-2.png new file mode 100644 index 0000000..2dbfe07 Binary files /dev/null and b/esterni/piano_progetto/images/preventivo/incremento1-4-2.png differ diff --git a/esterni/piano_progetto/images/preventivo/incremento5-8-1.png b/esterni/piano_progetto/images/preventivo/incremento5-8-1.png new file mode 100644 index 0000000..f76c127 Binary files /dev/null and b/esterni/piano_progetto/images/preventivo/incremento5-8-1.png differ diff --git a/esterni/piano_progetto/images/preventivo/incremento5-8-2.png b/esterni/piano_progetto/images/preventivo/incremento5-8-2.png new file mode 100644 index 0000000..d2de203 Binary files /dev/null and b/esterni/piano_progetto/images/preventivo/incremento5-8-2.png differ diff --git a/esterni/piano_progetto/images/preventivo/incremento9-1.png b/esterni/piano_progetto/images/preventivo/incremento9-1.png index 85cb7d4..acd17ef 100644 Binary files a/esterni/piano_progetto/images/preventivo/incremento9-1.png and b/esterni/piano_progetto/images/preventivo/incremento9-1.png differ diff --git a/esterni/piano_progetto/images/preventivo/incremento9-12-1.png b/esterni/piano_progetto/images/preventivo/incremento9-12-1.png new file mode 100644 index 0000000..e0a16c1 Binary files /dev/null and b/esterni/piano_progetto/images/preventivo/incremento9-12-1.png differ diff --git a/esterni/piano_progetto/images/preventivo/incremento9-12-2.png b/esterni/piano_progetto/images/preventivo/incremento9-12-2.png new file mode 100644 index 0000000..041061a Binary files /dev/null and b/esterni/piano_progetto/images/preventivo/incremento9-12-2.png differ diff --git a/esterni/piano_progetto/main.tex b/esterni/piano_progetto/main.tex index d52c49d..f8f268b 100644 --- a/esterni/piano_progetto/main.tex +++ b/esterni/piano_progetto/main.tex @@ -12,8 +12,8 @@ % -------------- \newcommand{\docNome}{ PIANO DI PROGETTO } -\newcommand{\docBaseline}{+b0.10} -\newcommand{\docVersione}{2.0.0\docBaseline} +\newcommand{\docBaseline}{+b0.15} +\newcommand{\docVersione}{2.5.0\docBaseline} \newcommand{\docNomeProgetto}{ ThiReMa Project } \newcommand{\docStatus}{Approvato} \newcommand{\docUso}{Esterno} @@ -31,17 +31,18 @@ } \newcommand{\docRedattori}{ Lorenzo Dei Negri \\& + Giuseppe Vito Bitetti \\& Nicolò Frison \\& - Fouad Mouad + Giovanni Vidotto \\& + Alessandro Tommasin } \newcommand{\docVerificatori}{ - Alessandro Tommasin \\& - Giovanni Vidotto \\& - Giuseppe Vito Bitetti + Mariano Sciacco \\& + Nicolò Frison \\& + Giuseppe Vito Bitetti } \newcommand{\docApprovazione}{ - Fouad Mouad \\& - Giovanni Vidotto + Alessandro Tommasin } % ----- NON MODIFICARE SOTTO QUESTA RIGA ----- diff --git a/esterni/piano_progetto/res/registro.tex b/esterni/piano_progetto/res/registro.tex index b614ce9..d4c2dc8 100644 --- a/esterni/piano_progetto/res/registro.tex +++ b/esterni/piano_progetto/res/registro.tex @@ -10,14 +10,41 @@ \section*{Registro delle modifiche} \endfirsthead % ----- Modificare da qui ----- - - 2.0.0+b0.10 & Approvazione per il rilascio esterno & 2020-02-05 & Fouad Mouad & Responsabile \\ + 2.5.0+b0.15 & Approvazione documento & 2020-04-13 & Alessandro Tommasin & Responsabile \\ + \hline + 2.4.2+b0.15 & Aggiornamento e verifica appendice A & 2020-04-13 & Lorenzo Dei Negri e Mariano Sciacco & Amministratore e verificatore \\ + \hline + 2.4.1+b0.14 & Aggiornamento e verifica sezione \S6 & 2020-04-12 & Alessandro Tommasin e Giuseppe Vito Bitetti & Responsabile e verificatore \\ + \hline + + 2.4.0+b0.14 & Approvazione documento & 2020-04-06 & Giovanni Vidotto & Responsabile \\ + \hline + 2.3.3+b0.14 & Aggiornamento e verifica appendice A & 2020-04-06 & Nicolò Frison e Lorenzo Dei Negri & Amministratore e verificatore \\ + \hline + 2.3.2+b0.13 & Aggiornamento e verifica sezione \S6 & 2020-04-05 & Lorenzo Dei Negri e Mariano Sciacco & Responsabile e verificatore \\ + \hline + 2.3.1+b0.13 & Aggiornamento e verifica sezioni \S3, \S4, \S5 e \S6 & 2020-04-05 & Lorenzo Dei Negri e Mariano Sciacco & Responsabile e verificatore \\ + \hline + + 2.3.0+b0.13 & Approvazione documento & 2020-03-30 & Fouad Mouad & Responsabile \\ + \hline + 2.2.2+b0.13 & Aggiornamento e verifica appendice A & 2020-03-30 & Giovanni Vidotto e Nicolò Frison & Amministratore e verificatore \\ + \hline + 2.2.1+b0.12 & Aggiornamento e verifica sezione \S6 & 2020-03-29 & Giuseppe Vito Bitetti e Mariano Sciacco & Responsabile e verificatore \\ + \hline + + 2.2.0+b0.12 & Approvazione documento & 2020-03-23 & Giuseppe Vito Bitetti & Responsabile \\ \hline - 1.2.0+b0.9 & Approvazione documento & 2020-03-08 & Fouad Mouad & Responsabile \\ + 2.1.2+b0.12 & Aggiornamento e verifica appendice A & 2020-03-23 & Giovanni Vidotto e Mariano Sciacco & Amministratore e verificatore \\ \hline - 1.1.1+b0.9 & Aggiornamento e verifica sezione \S6 & 2020-03-08 & Lorenzo Dei Negri e Giuseppe Vito Bitetti & Amministratore e verificatore \\ + 2.1.1+b0.11 & Aggiornamento e verifica sezione \S6 & 2020-03-22 & Lorenzo Dei Negri e Giuseppe Vito Bitetti & Responsabile e verificatore \\ \hline - 1.1.0+b0.5 & Approvazione documento & 2020-02-05 & Giovanni Vidotto & Responsabile \\ + + 2.1.0+b0.9 & Approvazione documento & 2020-03-08 & Fouad Mouad & Responsabile \\ + \hline + 2.0.1+b0.9 & Aggiornamento e verifica sezione \S6 & 2020-03-08 & Lorenzo Dei Negri e Giuseppe Vito Bitetti & Amministratore e verificatore \\ + \hline + 2.0.0+b0.5 & Approvazione documento & 2020-02-05 & Giovanni Vidotto & Responsabile \\ \hline 1.0.3+b0.4 & Modifica e verifica sezione \S6 & 2020-01-29 & Fouad Mouad e Alessandro Tommasin & Amministratore e Verificatore \\ \hline @@ -25,9 +52,7 @@ \section*{Registro delle modifiche} \hline 1.0.1+b0.4 & Modifica e verifica sezione \S3 & 2020-01-25 & Lorenzo Dei Negri e Giovanni Vidotto & Amministratore e Verificatore \\ \hline - 1.0.0+b0.4 & Approvazione per il rilascio esterno & 2020-01-15 & Mariano Sciacco & Responsabile \\ - \hline - 0.1.0+b0.4 & Approvazione documento & 2020-01-15 & Mariano Sciacco & Responsabile \\ + 1.0.0+b0.4 & Approvazione documento & 2020-01-15 & Mariano Sciacco & Responsabile \\ \hline 0.0.6+b0.3 & Scrittura e verifica sezione \S7 & 2020-01-05 & Giovanni Vidotto e Mariano Sciacco & Amministratore e verificatore \\ \hline diff --git a/esterni/piano_progetto/res/sections/Sez1-Introduzione/Introduzione.tex b/esterni/piano_progetto/res/sections/Sez1-Introduzione/Introduzione.tex index 9b52e95..bb3039b 100644 --- a/esterni/piano_progetto/res/sections/Sez1-Introduzione/Introduzione.tex +++ b/esterni/piano_progetto/res/sections/Sez1-Introduzione/Introduzione.tex @@ -8,12 +8,12 @@ \section{Introduzione} Per evitare possibili ambiguità relative alle terminologie (che andranno indicate in \textsc{maiuscoletto}) utilizzate nei vari documenti, verranno utilizzate due simboli: \begin{itemize} \item una \textit{D} al pedice per indicare il nome di un particolare documento; - \item una \textit{G} al pedice per indicare un termine che sarà presente nel \dext{Glossario v2.0.0}. + \item una \textit{G} al pedice per indicare un termine che sarà presente nel \dext{Glossario v1.4.0}. \end{itemize} \subsection{Riferimenti} \subsubsection{Normativi} \begin{itemize} - \item \textbf{norme di progetto:} \dext{Norme di Progetto v2.0.0} + \item \textbf{norme di progetto:} \dext{Norme di Progetto v2.3.0} \end{itemize} \subsection{Scadenze} diff --git a/esterni/piano_progetto/res/sections/Sez2-AnalisiDeiRischi/AnalisiDeiRischi.tex b/esterni/piano_progetto/res/sections/Sez2-AnalisiDeiRischi/AnalisiDeiRischi.tex index d2c37ce..7da4e81 100644 --- a/esterni/piano_progetto/res/sections/Sez2-AnalisiDeiRischi/AnalisiDeiRischi.tex +++ b/esterni/piano_progetto/res/sections/Sez2-AnalisiDeiRischi/AnalisiDeiRischi.tex @@ -148,7 +148,7 @@ \subsection{Elenco dei rischi preventivati} & Nel corso del \textit{processo di sviluppo} sarà necessario configurare un diverso numero di IDE con - i relativi plugin per eseguire controlli di verifica e validazione della codifica. + i relativi plugin per eseguire controlli di verifica della codifica. Questo si rende particolarmente necessario a causa dei diversi linguaggi di programmazione usati nelle componenti software di progetto. & @@ -157,6 +157,15 @@ \subsection{Elenco dei rischi preventivati} L'\textit{amministratore} viene messo al corrente dell'accaduto e contatterà direttamente il programmatore che presenta questo genere di problema, accertando insieme a lui che tutto sia stato configurato correttamente, come riportato nella normativa. \\ \hline + RSK-TMI-2 \newline Conoscenza superficiale dei design pattern e degli stili architetturali + & + Nel corso della \textit{progettazione} del software + sarà necessario studiare a fondo le scelte architetturali da fare, per garantire una buona manuntenibilità del codice nel corso del tempo e per fare fronte alle best pratices di programmazione. + & + Confronto collettivo sulle scelte architetturali duranti le riunioni interne all'inizio di ogni incremento. + & + Il \textit{responsabile} dovrà far dialogare i progettisti per trovare una soluzione comune sui design pattern da adottare e sugli stili architetturali da scegliere. Se opportuno, dovrà segnalare il materiale didattico da studiare per approfondire tali argomenti. \\ + \hline \caption{Tabella contenente l'elenco dei rischi preventivati} \end{longtable} diff --git a/esterni/piano_progetto/res/sections/Sez3-ModelloDiSviluppo/ModelloDiSviluppo.tex b/esterni/piano_progetto/res/sections/Sez3-ModelloDiSviluppo/ModelloDiSviluppo.tex index d951157..77ddb4f 100644 --- a/esterni/piano_progetto/res/sections/Sez3-ModelloDiSviluppo/ModelloDiSviluppo.tex +++ b/esterni/piano_progetto/res/sections/Sez3-ModelloDiSviluppo/ModelloDiSviluppo.tex @@ -19,11 +19,11 @@ \section{Modello di sviluppo} \subsection{Incrementi pianificati} -Si prevede di andare a svolgere \textbf{12 incrementi} col fine di poter integrare tutte le funzionalità richieste dal progetto. Di seguito si riporta una tabella riassuntiva degli incrementi con una breve descrizione sul relativo svolgimento. +Si prevede di andare a svolgere \textbf{12 incrementi}, raggruppati in \textbf{3 fasi} in base agli obiettivi chiave del prodotto, col fine di poter integrare tutte le funzionalità richieste dal progetto. Di seguito si riporta una tabella riassuntiva degli incrementi con una breve descrizione sul relativo svolgimento. \newpage \begin{center} - \rowcolors{2}{white}{lightest-grayest} + \rowcolors{2}{lightest-grayest}{white} \begin{longtable}{|p{2.5cm}|p{6.5cm}|p{6cm}|} \hline \rowcolor{lighter-grayer} @@ -35,23 +35,27 @@ \subsection{Incrementi pianificati} \hline \endfoot \endlastfoot - + \hline + \rowcolor{lighter-grayer} \multicolumn{3}{|c|}{\textbf{Progettazione e codifica del Proof of Concept e funzionalità essenziali}} \\ \hline Incremento I & Configurazione di \glock{Apache Kafka}. & RA-F-72 \\ \hline Incremento II & Creazione dell'interfaccia del \glock{gateway} e prima implementazione base. Configurazione della struttura dati con JSON. Implementazione del protocollo di comunicazione con un dispositivo. & RA-F-69 RA-F-70 \\ \hline Incremento III & Creazione interfaccia \glock{API} e implementazione operazioni di lettura dei dati con le \glock{API}. & RA-F-65 RA-F-67 \\ \hline Incremento IV & Configurazione base web app e reperimento dati dalle \glock{API}. & RA-F-65.1 RA-F-71 RB-F-71.2 \\ \hline + \hline + \rowcolor{lighter-grayer} \multicolumn{3}{|c|}{\textbf{Progettazione completa dell'architettura e implementazione delle funzionalità}} \\ \hline Incremento V & Implementazione della configurazione dinamica per un \glock{gateway}. & RA-F-66 RA-F-66.1 \\ \hline Incremento VI & Implementazione dei database (relazionale e non relazionale). Configurazione della comunicazione dei database con \glock{Kafka}. & RA-F-64 RA-F-64.1 RA-F-64.2 RA-F-68 \\ \hline Incremento VII & Implementazione base \glock{bot Telegram} per la ricezione di avvisi e configurazione con le \glock{API}. Implementazione del login per la web app. & RA-F-1 RA-F-1.1 RA-F-1.2 RA-F-2 RA-F-3 RA-F-3.1 RA-F-3.2 RA-F-7 RA-F-8 RA-F-8.1 RA-F-8.2 RA-F-8.3 RB-F-8.4 RB-F-8.5 RA-F-34 RA-F-60 RA-F-61 RA-F-62 \\ \hline Incremento VIII & Implementazione dei grafici per la web app. & RB-F-3.3 RA-F-35 RA-F-36 RA-F-37 RA-F-38 RA-F-39 RA-F-39.1 RB-F-39.2 RA-F-40 RA-F-71.1 \\ \hline + \hline + \rowcolor{lighter-grayer} \multicolumn{3}{|c|}{\textbf{Completamento dell'implementazione e raffinamento delle funzionalità}} \\ \hline Incremento IX & Implementazione della parte utente per la web app. & RA-F-4 RB-F-8.6 RA-F-9 RA-F-11 RB-F-11.1 RA-F-33 RA-F-63 \\ \hline - Incremento X & Implementazione della moderazione per gli enti nella web app. & RA-F-5 RA-F-16 RA-F-17 RB-F-18 RB-F-18.1 RB-F-18.2 RB-F-18.3 RA-F-19 RA-F-20 RA-F-28 RA-F-29 RA-F-30 RC-F-41 RA-F-43 RA-F-44 \\ \hline + Incremento X & Implementazione della moderazione per gli enti nella web app. & RA-F-5 RA-F-16 RA-F-17 RB-F-18 RB-F-18.1 RB-F-18.2 RB-F-18.3 RA-F-19 RA-F-20 RA-F-28 RA-F-29 RA-F-30 RC-F-41 \\ \hline Incremento XI & Configurazione aggiuntiva del \glock{gateway} con \glock{Kafka}. Implementazione completa delle \glock{API}. & RA-F-51 RA-F-53 RA-F-54 RA-F-59 \\ \hline - Incremento XII & Implementazione invio input con il \glock{bot Telegram} e implementazione amministrazione web app. & RA-F-6 RA-F-10 RA-F-12 RB-F-12.1 RA-F-13 RA-F-14 RA-F-15 RA-F-21 RA-F-22 RA-F-23 RB-F-24 RB-F-24.1 RB-F-24.2 RB-F-24.3 RB-F-24.4 RB-F-24.5 RB-F-24.6 RA-F-25 RA-F-26 RA-F-27 RA-F-31 RA-F-32 RC-F-42 RB-F-44.1 RA-F-45 RA-F-46 RA-F-47 RA-F-48 RA-F-49 RA-F-50 RA-F-52 RA-F-55 RA-F-56 RA-F-57 RA-F-58 RA-F-73 RA-F-74 RA-F-75 RA-F-76 RA-F-77 \\ \hline - + Incremento XII & Implementazione invio input con il \glock{bot Telegram} e implementazione amministrazione web app. & RA-F-6 RA-F-10 RA-F-12 RB-F-12.1 RA-F-13 RA-F-14 RA-F-15 RA-F-21 RA-F-22 RA-F-23 RB-F-24 RB-F-24.1 RB-F-24.2 RB-F-24.3 RB-F-24.4 RB-F-24.5 RB-F-24.6 RA-F-25 RA-F-26 RA-F-27 RA-F-31 RA-F-32 RC-F-42 RA-F-43 RA-F-44 RB-F-44.1 RA-F-45 RA-F-46 RA-F-47 RA-F-48 RA-F-49 RA-F-50 RA-F-52 RA-F-55 RA-F-56 RA-F-57 RA-F-58 RA-F-73 RA-F-74 RA-F-75 RA-F-76 RA-F-77 \\ \hline \caption{Riassunto degli incrementi pianificati} \end{longtable} \end{center} La suddivisione degli incrementi si basa sulle \textit{funzionalità} che si vogliono portare a termine e che possono essere di interesse per il proponente. La lunghezza dei periodi è stata scelta in base al quantitativo di requisiti da convalidare e in base alle attività che devono essere svolte. Si fa notare che molti dei requisiti riportati possono essere soddisfatti pienamente solamente quando altre funzionalità vengono effettivamente implementate, poiché da esse sono \textit{dipendenti}. \newline -Se necessario, saranno eseguiti degli aggiustamenti in base agli eventuali accorgimenti avanzati dal proponente o nel caso in cui alcune funzionalità richiedano più tempo di quello preventivato. \ No newline at end of file +Se necessario, saranno eseguiti degli aggiustamenti in base agli eventuali accorgimenti avanzati dal proponente o nel caso in cui alcune funzionalità richiedano più tempo di quello preventivato. diff --git a/esterni/piano_progetto/res/sections/Sez4-Pianificazione/Pianificazione.tex b/esterni/piano_progetto/res/sections/Sez4-Pianificazione/Pianificazione.tex index 79494e6..478993e 100644 --- a/esterni/piano_progetto/res/sections/Sez4-Pianificazione/Pianificazione.tex +++ b/esterni/piano_progetto/res/sections/Sez4-Pianificazione/Pianificazione.tex @@ -166,15 +166,22 @@ \section{Pianificazione} % ============================================ + + \subsection{Progettazione e codifica del Proof of Concept e funzionalità essenziali} + + In questa prima fase di sviluppo verranno implementate le funzionalità base dell'architettura, che non sarà quindi comprensiva di tutte le componenti richieste dal capitolato, ma solo di quelle cardine, che si ritiene richiedano maggiori risorse temporali per lo sviluppo. + \newline + Nei prossimi quattro incrementi, quindi, verranno sviluppate le componenti e le funzionalità base della web app. \newline + Di seguito viene riportato il dettaglio di ogni incremento. - \subsection{Incremento I} + \subsubsection{Incremento I} L'incremento I prevede la progettazione di dettaglio e codifica delle componenti software per andare a costituire un \glock{proof of concept}. Si prevede di svolgere quanto segue: \begin{itemize} \item configurazione di \glock{Apache Kafka}. \end{itemize} - \subsubsection{Ruoli attivi} + \paragraph{Ruoli attivi} Durante questa fase è necessaria la presenza dei seguenti ruoli: \begin{itemize} @@ -186,11 +193,11 @@ \section{Pianificazione} \item verificatore. \end{itemize} - \subsubsection{Periodi e attività} + \paragraph{Periodi e attività} L'incremento viene svolto in un unico periodo di breve durata. - \paragraph{Unico periodo (dal 2020-02-05 al 2020-02-09)} + \subparagraph{Unico periodo (dal 2020-02-05 al 2020-02-09)} \begin{itemize} \item \textbf{analisi delle tecnologie:} analisi del funzionamento di \glock{Apache Kafka} e di \glock{Docker}; @@ -211,7 +218,7 @@ \section{Pianificazione} % ============================================ - \subsection{Incremento II} + \subsubsection{Incremento II} L'incremento II prevede la progettazione di dettaglio e codifica delle componenti software per andare a costituire un \glock{proof of concept}. Si prevede di svolgere quanto segue: \begin{itemize} @@ -220,7 +227,7 @@ \section{Pianificazione} \item implementazione del protocollo di comunicazione con un dispositivo. \end{itemize} - \subsubsection{Ruoli attivi} + \paragraph{Ruoli attivi} Durante questa fase è necessaria la presenza dei seguenti ruoli: \begin{itemize} @@ -232,11 +239,11 @@ \section{Pianificazione} \item verificatore. \end{itemize} - \subsubsection{Periodi e attività} + \paragraph{Periodi e attività} L'incremento viene svolto in un unico periodo di breve durata. - \paragraph{Unico periodo (dal 2020-02-10 al 2020-02-16)} + \subparagraph{Unico periodo (dal 2020-02-10 al 2020-02-16)} \begin{itemize} \item \textbf{analisi delle tecnologie:} analisi più approfondita sul funzionamento del \glock{gateway} e sullo sviluppo di un prototipo da utilizzare nel \glock{proof of concept}; @@ -255,7 +262,7 @@ \section{Pianificazione} % ============================================ - \subsection{Incremento III} + \subsubsection{Incremento III} L'incremento III prevede la progettazione di dettaglio e codifica delle componenti software per andare a costituire un \glock{proof of concept}. Si prevede di svolgere quanto segue: \begin{itemize} @@ -263,7 +270,7 @@ \section{Pianificazione} \item implementazione operazioni di lettura dei dati con le \glock{API}. \end{itemize} - \subsubsection{Ruoli attivi} + \paragraph{Ruoli attivi} Durante questa fase è necessaria la presenza dei seguenti ruoli: \begin{itemize} @@ -274,11 +281,11 @@ \section{Pianificazione} \item verificatore. \end{itemize} - \subsubsection{Periodi e attività} + \paragraph{Periodi e attività} L'incremento viene svolto in un unico periodo di breve durata. - \paragraph{Unico periodo (dal 2020-02-17 al 2020-02-23)} + \subparagraph{Unico periodo (dal 2020-02-17 al 2020-02-23)} \begin{itemize} \item \textbf{progettazione:} progettazione interfaccia \glock{API} e relative operazioni di lettura; @@ -297,7 +304,7 @@ \section{Pianificazione} % ============================================ - \subsection{Incremento IV} + \subsubsection{Incremento IV} L'incremento IV prevede la progettazione di dettaglio e codifica delle componenti software per andare a costituire un \glock{proof of concept}. Si prevede di svolgere quanto segue: \begin{itemize} @@ -306,7 +313,7 @@ \section{Pianificazione} \end{itemize} Con la fine di questo incremento, si va a costituire un primo \glock{proof of concept} del prodotto che potrà essere mostrato al committente e al proponente. - \subsubsection{Ruoli attivi} + \paragraph{Ruoli attivi} Durante questa fase è necessaria la presenza dei seguenti ruoli: \begin{itemize} @@ -318,11 +325,11 @@ \section{Pianificazione} \item verificatore. \end{itemize} - \subsubsection{Periodi e attività} + \paragraph{Periodi e attività} L'incremento viene svolto in un unico periodo di breve durata. - \paragraph{Unico periodo (dal 2020-02-24 al 2020-03-01)} + \subparagraph{Unico periodo (dal 2020-02-24 al 2020-03-01)} \begin{itemize} \item \textbf{analisi delle tecnologie:} analisi sulla sintassi da usare nelle \glock{API} e sulle funzionalità necessarie da implementare; @@ -339,17 +346,34 @@ \section{Pianificazione} \caption{Diagramma di Gantt per l'incremento IV} \end{figure} \end{landscape} + + %=== RIEPILOGO ===% + + \begin{landscape} + \begin{figure}[H] + \centering + \includegraphics[width=\linewidth]{images/gantt/incrementi-I-IV} %TOUPDATE + \caption{Diagramma di Gantt riassuntivo degli incrementi I-IV} + \end{figure} + \end{landscape} % ============================================ - - \subsection{Incremento V} + + \subsection{Progettazione completa dell'architettura e implementazione delle funzionalità} + + In questa fase di sviluppo verrà fatta un'implementazione base delle componenti restanti, ottenendo quindi un'architettura completa; verranno anche aggiunte ulteriori funzionalità alle componenti precedentemente già sviluppate, ottenendo cosi un maggiore dialogo tra le varie parti dell'architettura. + \newline + Di seguito viene riportato il dettaglio di ogni incremento. + + + \subsubsection{Incremento V} L'incremento V prevede la progettazione di dettaglio e codifica delle componenti software e la preparazione di una presentazione per le tecnologie utilizzate. A livello software, si prevede di svolgere quanto segue: \begin{itemize} \item implementazione della configurazione dinamica per un \glock{gateway}. \end{itemize} - \subsubsection{Ruoli attivi} + \paragraph{Ruoli attivi} Durante questa fase è necessaria la presenza dei seguenti ruoli: \begin{itemize} @@ -360,11 +384,11 @@ \section{Pianificazione} \item verificatore. \end{itemize} - \subsubsection{Periodi e attività} + \paragraph{Periodi e attività} L'incremento viene svolto in un unico periodo di breve durata. - \paragraph{Unico periodo (dal 2020-03-02 al 2020-03-08)} + \subparagraph{Unico periodo (dal 2020-03-02 al 2020-03-08)} \begin{itemize} \item \textbf{presentazione:} inizio creazione slides per la presentazione della \textit{technology baseline}; @@ -385,7 +409,7 @@ \section{Pianificazione} % ============================================ - \subsection{Incremento VI} + \subsubsection{Incremento VI} L'incremento VI prevede la progettazione di dettaglio e codifica delle componenti software e la preparazione di una presentazione per le tecnologie utilizzate. Si prevede di svolgere quanto segue: \begin{itemize} @@ -393,7 +417,7 @@ \section{Pianificazione} \item configurazione della comunicazione dei database con Kafka. \end{itemize} - \subsubsection{Ruoli attivi} + \paragraph{Ruoli attivi} Durante questa fase è necessaria la presenza dei seguenti ruoli: \begin{itemize} @@ -405,11 +429,11 @@ \section{Pianificazione} \item verificatore. \end{itemize} - \subsubsection{Periodi e attività} + \paragraph{Periodi e attività} L'incremento viene svolto in un unico periodo di breve durata. - \paragraph{Unico periodo (dal 2020-03-09 al 2020-03-15)} + \subparagraph{Unico periodo (dal 2020-03-09 al 2020-03-15)} \begin{itemize} \item \textbf{analisi sulle tecnologie:} analisi delle funzionalità dei database nel dettaglio; @@ -431,7 +455,7 @@ \section{Pianificazione} % ============================================ - \subsection{Incremento VII} + \subsubsection{Incremento VII} L'incremento VII prevede la progettazione di dettaglio e codifica delle componenti software. Si prevede di svolgere quanto segue: \begin{itemize} @@ -440,7 +464,7 @@ \section{Pianificazione} \item implementazione del login per la web app. \end{itemize} - \subsubsection{Ruoli attivi} + \paragraph{Ruoli attivi} Durante questa fase è necessaria la presenza dei seguenti ruoli: \begin{itemize} @@ -451,11 +475,11 @@ \section{Pianificazione} \item verificatore. \end{itemize} - \subsubsection{Periodi e attività} + \paragraph{Periodi e attività} L'incremento viene svolto in un unico periodo di breve durata. - \paragraph{Unico periodo (dal 2020-03-16 al 2020-03-22)} + \subparagraph{Unico periodo (dal 2020-03-16 al 2020-03-22)} \begin{itemize} \item \textbf{progettazione:} @@ -483,14 +507,14 @@ \section{Pianificazione} % ============================================ - \subsection{Incremento VIII} + \subsubsection{Incremento VIII} L'incremento VIII prevede la progettazione di dettaglio e codifica delle componenti software. Si prevede di svolgere quanto segue: \begin{itemize} \item implementazione dei grafici per la web app. \end{itemize} - \subsubsection{Ruoli attivi} + \paragraph{Ruoli attivi} Durante questa fase è necessaria la presenza dei seguenti ruoli: \begin{itemize} @@ -501,11 +525,11 @@ \section{Pianificazione} \item verificatore. \end{itemize} - \subsubsection{Periodi e attività} + \paragraph{Periodi e attività} L'incremento viene svolto in un unico periodo di breve durata. - \paragraph{Unico periodo (dal 2020-03-23 al 2020-03-29)} + \subparagraph{Unico periodo (dal 2020-03-23 al 2020-03-29)} \begin{itemize} \item \textbf{progettazione:} progettazione dei grafici per la web app; @@ -522,17 +546,32 @@ \section{Pianificazione} \caption{Diagramma di Gantt per l'incremento VIII} \end{figure} \end{landscape} + + %=== RIEPILOGO ===% + + \begin{landscape} + \begin{figure}[H] + \centering + \includegraphics[width=\linewidth]{images/gantt/incrementi-V-VIII} %TOUPDATE + \caption{Diagramma di Gantt riassuntivo degli incrementi V-VII} + \end{figure} + \end{landscape} % ============================================ + \subsection{Completamento dell'implementazione e raffinamento delle funzionalità} + + Durante questa fase le risorse temporali verranno concentrate sullo sviluppo della web app, componente più onerosa e richiedente di un maggior tempo di sviluppo; in particolare, sarà completata l'implementazione delle parti moderatore e utente, con tutte le funzionalità e con il soddisfacimento dei requisiti. Verranno inoltre raffinate tutte le funzionalità delle componenti coinvolte nell'architettura, con l'obiettivo di ottenere un prodotto completo. + \newline + Di seguito viene riportato il dettaglio di ogni incremento. - \subsection{Incremento IX} + \subsubsection{Incremento IX} L'incremento IX prevede la progettazione di dettaglio e codifica delle componenti software. Si prevede di svolgere quanto segue: \begin{itemize} \item implementazione della parte utente per la web app. \end{itemize} - \subsubsection{Ruoli attivi} + \paragraph{Ruoli attivi} Durante questa fase è necessaria la presenza dei seguenti ruoli: \begin{itemize} @@ -543,11 +582,11 @@ \section{Pianificazione} \item verificatore. \end{itemize} - \subsubsection{Periodi e attività} + \paragraph{Periodi e attività} L'incremento viene svolto in un unico periodo di breve durata. - \paragraph{Unico periodo (dal 2020-03-30 al 2020-04-05)} + \subparagraph{Unico periodo (dal 2020-03-30 al 2020-04-05)} \begin{itemize} \item \textbf{progettazione:} progettazione della parte utente per la web app; @@ -571,14 +610,14 @@ \section{Pianificazione} % ============================================ - \subsection{Incremento X} + \subsubsection{Incremento X} L'incremento X prevede la progettazione di dettaglio e codifica delle componenti software. Si prevede di svolgere quanto segue: \begin{itemize} \item implementazione della moderazione per gli enti nella web app. \end{itemize} - \subsubsection{Ruoli attivi} + \paragraph{Ruoli attivi} Durante questa fase è necessaria la presenza dei seguenti ruoli: \begin{itemize} @@ -589,11 +628,11 @@ \section{Pianificazione} \item verificatore. \end{itemize} - \subsubsection{Periodi e attività} + \paragraph{Periodi e attività} L'incremento viene svolto in un unico periodo di breve durata. - \paragraph{Unico periodo (dal 2020-04-06 al 2020-04-12)} + \subparagraph{Unico periodo (dal 2020-04-06 al 2020-04-12)} \begin{itemize} \item \textbf{progettazione:} progettazione della moderazione ente per la web app; @@ -616,8 +655,8 @@ \section{Pianificazione} \end{landscape} % ============================================ - - \subsection{Incremento XI} + + \subsubsection{Incremento XI} L'incremento XI prevede la progettazione di dettaglio e codifica delle componenti software. La fase si articola subito prima la revisione di qualifica prevista dal progetto didattico. Si prevede di svolgere quanto segue: \begin{itemize} @@ -625,7 +664,7 @@ \section{Pianificazione} \item implementazione completa delle \glock{API}. \end{itemize} - \subsubsection{Ruoli attivi} + \paragraph{Ruoli attivi} Durante questa fase è necessaria la presenza dei seguenti ruoli: \begin{itemize} @@ -636,11 +675,11 @@ \section{Pianificazione} \item verificatore. \end{itemize} - \subsubsection{Periodi e attività} + \paragraph{Periodi e attività} L'incremento viene svolto in un unico periodo di breve durata. - \paragraph{Unico periodo (dal 2020-04-13 al 2020-04-20)} + \subparagraph{Unico periodo (dal 2020-04-13 al 2020-04-20)} \begin{itemize} \item \textbf{presentazione:} creazione slides per la presentazione della \textit{product baseline}; @@ -665,7 +704,7 @@ \section{Pianificazione} % ============================================ - \subsection{Incremento XII} + \subsubsection{Incremento XII} L'incremento XII prevede la progettazione di dettaglio e codifica delle componenti software. Si prevede di svolgere quanto segue: \begin{itemize} @@ -673,7 +712,7 @@ \section{Pianificazione} \item implementazione amministrazione web app. \end{itemize} - \subsubsection{Ruoli attivi} + \paragraph{Ruoli attivi} Durante questa fase è necessaria la presenza dei seguenti ruoli: \begin{itemize} @@ -684,11 +723,11 @@ \section{Pianificazione} \item verificatore. \end{itemize} - \subsubsection{Periodi e attività} + \paragraph{Periodi e attività} L'incremento viene svolto in un unico periodo di breve durata. - \paragraph{Unico periodo (dal 2020-04-21 al 2020-04-30)} + \subparagraph{Unico periodo (dal 2020-04-21 al 2020-04-30)} \begin{itemize} \item \textbf{progettazione:} @@ -718,6 +757,16 @@ \section{Pianificazione} \caption{Diagramma di Gantt per l'incremento XII} \end{figure} \end{landscape} + + %=== RIEPILOGO ===% + + \begin{landscape} + \begin{figure}[H] + \centering + \includegraphics[width=\linewidth]{images/gantt/incrementi-IX-XII} %TOUPDATE + \caption{Diagramma di Gantt riassuntivo degli incrementi IX-XII} + \end{figure} + \end{landscape} % ============================================ diff --git a/esterni/piano_progetto/res/sections/Sez5-Preventivo/Preventivo.tex b/esterni/piano_progetto/res/sections/Sez5-Preventivo/Preventivo.tex index 72fd90b..ea3edcd 100644 --- a/esterni/piano_progetto/res/sections/Sez5-Preventivo/Preventivo.tex +++ b/esterni/piano_progetto/res/sections/Sez5-Preventivo/Preventivo.tex @@ -59,8 +59,8 @@ \section{Preventivo} \begin{figure}[H] \centering \includegraphics[width=0.8\linewidth]{./images/preventivo/analisi1.png} - \caption{Grafico ore/ruolo componenti nella fase di analisi dei requisiti} - \label{fig:grafico suddivione ruoli fase analisi dei requisiti} + \caption{Diagramma ore/ruolo componenti nella fase di analisi dei requisiti} + \label{fig:diagramma suddivione ruoli fase analisi dei requisiti} \end{figure} \subsubsection{Prospetto economico} @@ -102,8 +102,8 @@ \section{Preventivo} \begin{figure}[H] \centering \includegraphics[width=0.8\linewidth]{./images/preventivo/analisi2.png} - \caption{Grafico percentuale ore/ruolo nella fase di analisi dei requisiti} - \label{fig:grafico costi ruolo fase analisi dei requisiti} + \caption{Diagramma percentuale ore/ruolo nella fase di analisi dei requisiti} + \label{fig:diagramma costi ruolo fase analisi dei requisiti} \end{figure} @@ -151,8 +151,8 @@ \section{Preventivo} \begin{figure}[H] \centering \includegraphics[width=0.8\linewidth]{./images/preventivo/consRequisiti1.png} - \caption{Grafico ore/ruolo componenti nella fase di consolidamento dei requisiti} - \label{fig:grafico suddivione ruoli fase consolidamento requisiti} + \caption{Diagramma ore/ruolo componenti nella fase di consolidamento dei requisiti} + \label{fig:diagramma suddivione ruoli fase consolidamento requisiti} \end{figure} \subsubsection{Prospetto economico} @@ -194,8 +194,8 @@ \section{Preventivo} \begin{figure}[H] \centering \includegraphics[width=0.8\linewidth]{./images/preventivo/consRequisiti2.png} - \caption{Grafico percentuale ore/ruolo nella fase di consolidamento dei requisiti} - \label{fig:grafico costi ruolo fase consolidamento dei requisiti} + \caption{Diagramma percentuale ore/ruolo nella fase di consolidamento dei requisiti} + \label{fig:diagramma costi ruolo fase consolidamento dei requisiti} \end{figure} @@ -243,8 +243,8 @@ \section{Preventivo} \begin{figure}[H] \centering \includegraphics[width=0.8\linewidth]{./images/preventivo/progArch1.png} - \caption{Grafico ore/ruolo componenti nella fase di progettazione della technology baseline} - \label{fig:grafico suddivione ruoli fase progettazione della technology baseline} + \caption{Diagramma ore/ruolo componenti nella fase di progettazione della technology baseline} + \label{fig:diagramma suddivione ruoli fase progettazione della technology baseline} \end{figure} \subsubsection{Prospetto economico} @@ -286,382 +286,381 @@ \section{Preventivo} \begin{figure}[H] \centering \includegraphics[width=0.8\linewidth]{./images/preventivo/progArch2.png} - \caption{Grafico percentuale ore/ruolo nella fase di progettazione della technology baseline} - \label{fig:grafico costi ruolo fase progettazione della technology baseline} + \caption{Diagramma percentuale ore/ruolo nella fase di progettazione della technology baseline} + \label{fig:diagramma costi ruolo fase progettazione della technology baseline} \end{figure} - - \subsection{Incremento I} - \subsubsection{Prospetto orario} - Durante il primo incremento la distribuzione oraria preventivata dei ruoli di ogni componente del gruppo sarà la seguente: + \subsection{Progettazione e codifica del Proof of Concept e funzionalità essenziali} + I successivi quattro incrementi, che vedremo in dettaglio, comporranno la fase stessa. + \subsubsection{Incremento I} + \paragraph{Prospetto orario} + Durante il primo incremento la distribuzione oraria preventivata dei ruoli di ogni componente del gruppo sarà la seguente: + + \rowcolors{2}{lightest-grayest}{white} + \begin{longtable}{|l|c|c|c|c|c|c|c|} + \hline + \rowcolor{lighter-grayer} + \textbf{Nome} & \textbf{Re} & \textbf{Am} & \textbf{An} & \textbf{Pg} & \textbf{Pr} & \textbf{Ve} & \textbf{Totale} \\ + \hline + \endfirsthead + + \hline + Giuseppe Vito Bitetti & 0 & 0 & 3 & 0 & 2 & 0 & 5\\ + \hline + \hline + Lorenzo Dei Negri & 0 & 0 & 0 & 2 & 0 & 3 & 5\\ + \hline + \hline + Nicolò Frison & 0 & 3 & 0 & 0 & 0 & 2 & 5\\ + \hline + \hline + Fouad Mouad & 3 & 0 & 2 & 0 & 0 & 0 & 5\\ + \hline + \hline + Mariano Sciacco & 0 & 0 & 0 & 3 & 2 & 0 & 5\\ + \hline + \hline + Alessandro Tommasin & 0 & 2 & 0 & 3 & 0 & 0 & 5\\ + \hline + \hline + Giovanni Vidotto & 0 & 0 & 0 & 0 & 4 & 1 & 5\\ + \hline + \textbf{Totale} & 3 & 5 & 5 & 8 & 8 & 6 & 35\\ + \hline + \caption{Tabella contenente il prospetto orario preventivato per il primo incremento} + \end{longtable} + \pagebreak + + La tabella può essere riassunta nel seguente istogramma: + \begin{figure}[H] + \centering + \includegraphics[width=0.8\linewidth]{./images/preventivo/incremento1-1.png} + \caption{Diagramma ore/ruolo componenti nel primo incremento} + \label{fig:diagramma suddivione ruoli incremento I} + \end{figure} - \rowcolors{2}{lightest-grayest}{white} - \begin{longtable}{|l|c|c|c|c|c|c|c|} - \hline - \rowcolor{lighter-grayer} - \textbf{Nome} & \textbf{Re} & \textbf{Am} & \textbf{An} & \textbf{Pg} & \textbf{Pr} & \textbf{Ve} & \textbf{Totale} \\ - \hline - \endfirsthead + \paragraph{Prospetto economico} + In base al prospetto orario, quello economico sarà il seguente: - \hline - Giuseppe Vito Bitetti & 0 & 0 & 3 & 0 & 2 & 0 & 5\\ - \hline - \hline - Lorenzo Dei Negri & 0 & 0 & 0 & 2 & 0 & 3 & 5\\ - \hline - \hline - Nicolò Frison & 0 & 3 & 0 & 0 & 0 & 2 & 5\\ - \hline - \hline - Fouad Mouad & 3 & 0 & 2 & 0 & 0 & 0 & 5\\ - \hline - \hline - Mariano Sciacco & 0 & 0 & 0 & 3 & 2 & 0 & 5\\ - \hline - \hline - Alessandro Tommasin & 0 & 2 & 0 & 3 & 0 & 0 & 5\\ - \hline - \hline - Giovanni Vidotto & 0 & 0 & 0 & 0 & 4 & 1 & 5\\ - \hline - \textbf{Totale} & 3 & 5 & 5 & 8 & 8 & 6 & 35\\ - \hline - \caption{Tabella contenente il prospetto orario preventivato per il primo incremento} - \end{longtable} - \pagebreak + \rowcolors{2}{white}{lightest-grayest} + \begin{longtable}{|l|c|c|c|c|c|c|c|} + \hline + \rowcolor{lighter-grayer} + \textbf{Ruolo} & \textbf{Ore} & \textbf{Costo in € } \\ + \hline + \endfirsthead + + \hline + Responsabile & 3 & 90,00\\ + \hline + \hline + Amministratore & 5 & 100,00\\ + \hline + \hline + Analista & 5 & 125,00\\ + \hline + \hline + Progettista & 8 & 176,00\\ + \hline + \hline + Programmatore & 8 & 120,00\\ + \hline + \hline + Verificatore & 6 & 90,00\\ + \hline + \textbf{Totale} & 35 & 701,00\\ + \hline + \caption{Tabella contenente il prospetto economico in riferimento al prospetto orario} + \end{longtable} + \pagebreak + + La tabella può essere riassunta nel seguente areogramma: + \begin{figure}[H] + \centering + \includegraphics[width=0.8\linewidth]{./images/preventivo/incremento1-2.png} + \caption{Diagramma percentuale ore/ruolo del primo incremento} + \label{fig:diagramma costi ruolo incremento I} + \end{figure} - La tabella può essere riassunta nel seguente istogramma: - \begin{figure}[H] - \centering - \includegraphics[width=0.8\linewidth]{./images/preventivo/incremento1-1.png} - \caption{Grafico ore/ruolo componenti nel primo incremento} - \label{fig:grafico suddivione ruoli incremento I} - \end{figure} - - \subsubsection{Prospetto economico} - In base al prospetto orario, quello economico sarà il seguente: - \rowcolors{2}{white}{lightest-grayest} - \begin{longtable}{|l|c|c|c|c|c|c|c|} - \hline - \rowcolor{lighter-grayer} - \textbf{Ruolo} & \textbf{Ore} & \textbf{Costo in € } \\ - \hline - \endfirsthead - - \hline - Responsabile & 3 & 90,00\\ - \hline - \hline - Amministratore & 5 & 100,00\\ - \hline - \hline - Analista & 5 & 125,00\\ - \hline - \hline - Progettista & 8 & 176,00\\ - \hline - \hline - Programmatore & 8 & 120,00\\ - \hline - \hline - Verificatore & 6 & 90,00\\ - \hline - \textbf{Totale} & 35 & 701,00\\ - \hline - \caption{Tabella contenente il prospetto economico in riferimento al prospetto orario} - \end{longtable} - \pagebreak - La tabella può essere riassunta nel seguente areogramma: - \begin{figure}[H] - \centering - \includegraphics[width=0.8\linewidth]{./images/preventivo/incremento1-2.png} - \caption{Grafico percentuale ore/ruolo del primo incremento} - \label{fig:grafico costi ruolo incremento I} - \end{figure} - + \subsubsection{Incremento II} + \paragraph{Prospetto orario} + Durante il secondo incremento la distribuzione oraria preventivata dei ruoli di ogni componente del gruppo sarà la seguente: + + \rowcolors{2}{lightest-grayest}{white} + \begin{longtable}{|l|c|c|c|c|c|c|c|} + \hline + \rowcolor{lighter-grayer} + \textbf{Nome} & \textbf{Re} & \textbf{Am} & \textbf{An} & \textbf{Pg} & \textbf{Pr} & \textbf{Ve} & \textbf{Totale} \\ + \hline + \endfirsthead + + \hline + Giuseppe Vito Bitetti & 1 & 0 & 0 & 3 & 0 & 2 & 6\\ + \hline + \hline + Lorenzo Dei Negri & 0 & 0 & 0 & 0 & 3 & 3 & 6\\ + \hline + \hline + Nicolò Frison & 3 & 0 & 0 & 0 & 3 & 0 & 6\\ + \hline + \hline + Fouad Mouad & 0 & 3 & 3 & 0 & 0 & 0 & 6\\ + \hline + \hline + Mariano Sciacco & 0 & 0 & 0 & 2 & 0 & 4 & 6\\ + \hline + \hline + Alessandro Tommasin & 0 & 1 & 0 & 0 & 5 & 0 & 6\\ + \hline + \hline + Giovanni Vidotto & 0 & 2 & 0 & 4 & 0 & 0 & 6\\ + \hline + \textbf{Totale} & 4 & 6 & 3 & 9 & 11 & 9 & 42\\ + \hline + \caption{Tabella contenente il prospetto orario preventivato per il secondo incremento} + \end{longtable} + \pagebreak + + La tabella può essere riassunta nel seguente istogramma: + \begin{figure}[H] + \centering + \includegraphics[width=0.8\linewidth]{./images/preventivo/incremento2-1.png} + \caption{Diagramma ore/ruolo componenti nel secondo incremento} + \label{fig:diagramma suddivione ruoli incremento II} + \end{figure} + + \paragraph{Prospetto economico} + In base al prospetto orario, quello economico sarà il seguente: + + \rowcolors{2}{white}{lightest-grayest} + \begin{longtable}{|l|c|c|c|c|c|c|c|} + \hline + \rowcolor{lighter-grayer} + \textbf{Ruolo} & \textbf{Ore} & \textbf{Costo in € } \\ + \hline + \endfirsthead + + \hline + Responsabile & 4 & 120,00\\ + \hline + \hline + Amministratore & 6 & 120,00\\ + \hline + \hline + Analista & 3 & 75,00\\ + \hline + \hline + Progettista & 9 & 198,00\\ + \hline + \hline + Programmatore & 11 & 165,00\\ + \hline + \hline + Verificatore & 9 & 135,00\\ + \hline + \textbf{Totale} & 42 & 813,00\\ + \hline + \caption{Tabella contenente il prospetto economico in riferimento al prospetto orario} + \end{longtable} + \pagebreak + + La tabella può essere riassunta nel seguente areogramma: + \begin{figure}[H] + \centering + \includegraphics[width=0.8\linewidth]{./images/preventivo/incremento2-2.png} + \caption{Diagramma percentuale ore/ruolo del secondo incremento} + \label{fig:diagramma costi ruolo incremento II} + \end{figure} - \subsection{Incremento II} - \subsubsection{Prospetto orario} - Durante il secondo incremento la distribuzione oraria preventivata dei ruoli di ogni componente del gruppo sarà la seguente: - - \rowcolors{2}{lightest-grayest}{white} - \begin{longtable}{|l|c|c|c|c|c|c|c|} - \hline - \rowcolor{lighter-grayer} - \textbf{Nome} & \textbf{Re} & \textbf{Am} & \textbf{An} & \textbf{Pg} & \textbf{Pr} & \textbf{Ve} & \textbf{Totale} \\ - \hline - \endfirsthead - \hline - Giuseppe Vito Bitetti & 1 & 0 & 0 & 3 & 0 & 2 & 6\\ - \hline - \hline - Lorenzo Dei Negri & 0 & 0 & 0 & 0 & 3 & 3 & 6\\ - \hline - \hline - Nicolò Frison & 3 & 0 & 0 & 0 & 3 & 0 & 6\\ - \hline - \hline - Fouad Mouad & 0 & 3 & 3 & 0 & 0 & 0 & 6\\ - \hline - \hline - Mariano Sciacco & 0 & 0 & 0 & 2 & 0 & 4 & 6\\ - \hline - \hline - Alessandro Tommasin & 0 & 1 & 0 & 0 & 5 & 0 & 6\\ - \hline - \hline - Giovanni Vidotto & 0 & 2 & 0 & 4 & 0 & 0 & 6\\ - \hline - \textbf{Totale} & 4 & 6 & 3 & 9 & 11 & 9 & 42\\ - \hline - \caption{Tabella contenente il prospetto orario preventivato per il secondo incremento} - \end{longtable} - \pagebreak - - La tabella può essere riassunta nel seguente istogramma: - \begin{figure}[H] - \centering - \includegraphics[width=0.8\linewidth]{./images/preventivo/incremento2-1.png} - \caption{Grafico ore/ruolo componenti nel secondo incremento} - \label{fig:grafico suddivione ruoli incremento II} - \end{figure} - - \subsubsection{Prospetto economico} - In base al prospetto orario, quello economico sarà il seguente: - - \rowcolors{2}{white}{lightest-grayest} - \begin{longtable}{|l|c|c|c|c|c|c|c|} - \hline - \rowcolor{lighter-grayer} - \textbf{Ruolo} & \textbf{Ore} & \textbf{Costo in € } \\ - \hline - \endfirsthead + \subsubsection{Incremento III} + \paragraph{Prospetto orario} + Durante il terzo incremento la distribuzione oraria preventivata dei ruoli di ogni componente del gruppo sarà la seguente: - \hline - Responsabile & 4 & 120,00\\ - \hline - \hline - Amministratore & 6 & 120,00\\ - \hline - \hline - Analista & 3 & 75,00\\ - \hline - \hline - Progettista & 9 & 198,00\\ - \hline - \hline - Programmatore & 11 & 165,00\\ - \hline - \hline - Verificatore & 9 & 135,00\\ - \hline - \textbf{Totale} & 42 & 813,00\\ - \hline - \caption{Tabella contenente il prospetto economico in riferimento al prospetto orario} - \end{longtable} - \pagebreak - - La tabella può essere riassunta nel seguente areogramma: - \begin{figure}[H] - \centering - \includegraphics[width=0.8\linewidth]{./images/preventivo/incremento2-2.png} - \caption{Grafico percentuale ore/ruolo del secondo incremento} - \label{fig:grafico costi ruolo incremento II} - \end{figure} - - - - \subsection{Incremento III} - \subsubsection{Prospetto orario} - Durante il terzo incremento la distribuzione oraria preventivata dei ruoli di ogni componente del gruppo sarà la seguente: - - \rowcolors{2}{lightest-grayest}{white} - \begin{longtable}{|l|c|c|c|c|c|c|c|} - \hline - \rowcolor{lighter-grayer} - \textbf{Nome} & \textbf{Re} & \textbf{Am} & \textbf{An} & \textbf{Pg} & \textbf{Pr} & \textbf{Ve} & \textbf{Totale} \\ - \hline - \endfirsthead + \rowcolors{2}{lightest-grayest}{white} + \begin{longtable}{|l|c|c|c|c|c|c|c|} + \hline + \rowcolor{lighter-grayer} + \textbf{Nome} & \textbf{Re} & \textbf{Am} & \textbf{An} & \textbf{Pg} & \textbf{Pr} & \textbf{Ve} & \textbf{Totale} \\ + \hline + \endfirsthead + + \hline + Giuseppe Vito Bitetti & 0 & 0 & 0 & 0 & 3 & 3 & 6\\ + \hline + \hline + Lorenzo Dei Negri & 0 & 0 & 0 & 3 & 0 & 3 & 6\\ + \hline + \hline + Nicolò Frison & 3 & 0 & 0 & 2 & 0 & 1 & 6\\ + \hline + \hline + Fouad Mouad & 0 & 0 & 0 & 3 & 3 & 0 & 6\\ + \hline + \hline + Mariano Sciacco & 0 & 3 & 0 & 0 & 3 & 0 & 6\\ + \hline + \hline + Alessandro Tommasin & 0 & 0 & 0 & 2 & 2 & 2 & 6\\ + \hline + \hline + Giovanni Vidotto & 0 & 0 & 0 & 2 & 0 & 4 & 6\\ + \hline + \textbf{Totale} & 3 & 3 & 0 & 12 & 11 & 13 & 42\\ + \hline + \caption{Tabella contenente il prospetto orario preventivato per il terzo incremento} + \end{longtable} + \pagebreak - \hline - Giuseppe Vito Bitetti & 0 & 0 & 0 & 0 & 3 & 3 & 6\\ - \hline - \hline - Lorenzo Dei Negri & 0 & 0 & 0 & 3 & 0 & 3 & 6\\ - \hline - \hline - Nicolò Frison & 3 & 0 & 0 & 2 & 0 & 1 & 6\\ - \hline - \hline - Fouad Mouad & 0 & 0 & 0 & 3 & 3 & 0 & 6\\ - \hline - \hline - Mariano Sciacco & 0 & 3 & 0 & 0 & 3 & 0 & 6\\ - \hline - \hline - Alessandro Tommasin & 0 & 0 & 0 & 2 & 2 & 2 & 6\\ - \hline - \hline - Giovanni Vidotto & 0 & 0 & 0 & 2 & 0 & 4 & 6\\ - \hline - \textbf{Totale} & 3 & 3 & 0 & 12 & 11 & 13 & 42\\ - \hline - \caption{Tabella contenente il prospetto orario preventivato per il terzo incremento} - \end{longtable} - \pagebreak - - La tabella può essere riassunta nel seguente istogramma: - \begin{figure}[H] - \centering - \includegraphics[width=0.8\linewidth]{./images/preventivo/incremento3-1.png} - \caption{Grafico ore/ruolo componenti nel terzo incremento} - \label{fig:grafico suddivione ruoli incremento III} - \end{figure} - - \subsubsection{Prospetto economico} - In base al prospetto orario, quello economico sarà il seguente: - - \rowcolors{2}{white}{lightest-grayest} - \begin{longtable}{|l|c|c|c|c|c|c|c|} - \hline - \rowcolor{lighter-grayer} - \textbf{Ruolo} & \textbf{Ore} & \textbf{Costo in € } \\ - \hline - \endfirsthead + La tabella può essere riassunta nel seguente istogramma: + \begin{figure}[H] + \centering + \includegraphics[width=0.8\linewidth]{./images/preventivo/incremento3-1.png} + \caption{Diagramma ore/ruolo componenti nel terzo incremento} + \label{fig:diagramma suddivione ruoli incremento III} + \end{figure} - \hline - Responsabile & 3 & 90,00\\ - \hline - \hline - Amministratore & 3 & 60,00\\ - \hline - \hline - Analista & - & -\\ - \hline - \hline - Progettista & 12 & 264,00\\ - \hline - \hline - Programmatore & 11 & 165,00\\ - \hline - \hline - Verificatore & 13 & 195,00\\ - \hline - \textbf{Totale} & 42 & 774,00\\ - \hline - \caption{Tabella contenente il prospetto economico in riferimento al prospetto orario} - \end{longtable} - \pagebreak - - La tabella può essere riassunta nel seguente areogramma: - \begin{figure}[H] - \centering - \includegraphics[width=0.8\linewidth]{./images/preventivo/incremento3-2.png} - \caption{Grafico percentuale ore/ruolo del terzo incremento} - \label{fig:grafico costi ruolo incremento III} - \end{figure} - - - - \subsection{Incremento IV} - \subsubsection{Prospetto orario} - Durante il quarto incremento la distribuzione oraria preventivata dei ruoli di ogni componente del gruppo sarà la seguente: - - \rowcolors{2}{lightest-grayest}{white} - \begin{longtable}{|l|c|c|c|c|c|c|c|} - \hline - \rowcolor{lighter-grayer} - \textbf{Nome} & \textbf{Re} & \textbf{Am} & \textbf{An} & \textbf{Pg} & \textbf{Pr} & \textbf{Ve} & \textbf{Totale} \\ - \hline - \endfirsthead + \paragraph{Prospetto economico} + In base al prospetto orario, quello economico sarà il seguente: - \hline - Giuseppe Vito Bitetti & 2 & 0 & 0 & 0 & 4 & 0 & 6\\ - \hline - \hline - Lorenzo Dei Negri & 2 & 0 & 0 & 2 & 0 & 2 & 6\\ - \hline - \hline - Nicolò Frison & 0 & 0 & 0 & 2 & 4 & 0 & 6\\ - \hline - \hline - Fouad Mouad & 0 & 3 & 0 & 0 & 0 & 3 & 6\\ - \hline - \hline - Mariano Sciacco & 3 & 0 & 0 & 0 & 3 & 0 & 6\\ - \hline - \hline - Alessandro Tommasin & 0 & 0 & 2 & 0 & 0 & 4 & 6\\ - \hline - \hline - Giovanni Vidotto & 0 & 0 & 0 & 5 & 0 & 1 & 6\\ - \hline - \textbf{Totale} & 7 & 3 & 2 & 9 & 11 & 10 & 42\\ - \hline - \caption{Tabella contenente il prospetto orario preventivato per il quarto incremento} - \end{longtable} - \pagebreak - - La tabella può essere riassunta nel seguente istogramma: - \begin{figure}[H] - \centering - \includegraphics[width=0.8\linewidth]{./images/preventivo/incremento4-1.png} - \caption{Grafico ore/ruolo componenti nel quarto incremento} - \label{fig:grafico suddivione ruoli incremento IV} - \end{figure} - - \subsubsection{Prospetto economico} - In base al prospetto orario, quello economico sarà il seguente: - - \rowcolors{2}{white}{lightest-grayest} - \begin{longtable}{|l|c|c|c|c|c|c|c|} - \hline - \rowcolor{lighter-grayer} - \textbf{Ruolo} & \textbf{Ore} & \textbf{Costo in € } \\ - \hline - \endfirsthead + \rowcolors{2}{white}{lightest-grayest} + \begin{longtable}{|l|c|c|c|c|c|c|c|} + \hline + \rowcolor{lighter-grayer} + \textbf{Ruolo} & \textbf{Ore} & \textbf{Costo in € } \\ + \hline + \endfirsthead + + \hline + Responsabile & 3 & 90,00\\ + \hline + \hline + Amministratore & 3 & 60,00\\ + \hline + \hline + Analista & - & -\\ + \hline + \hline + Progettista & 12 & 264,00\\ + \hline + \hline + Programmatore & 11 & 165,00\\ + \hline + \hline + Verificatore & 13 & 195,00\\ + \hline + \textbf{Totale} & 42 & 774,00\\ + \hline + \caption{Tabella contenente il prospetto economico in riferimento al prospetto orario} + \end{longtable} + \pagebreak - \hline - Responsabile & 7 & 210,00\\ - \hline - \hline - Amministratore & 3 & 60,00\\ - \hline - \hline - Analista & 2 & 50,00\\ - \hline - \hline - Progettista & 9 & 198,00\\ - \hline - \hline - Programmatore & 11 & 165,00\\ - \hline - \hline - Verificatore & 10 & 150,00\\ - \hline - \textbf{Totale} & 42 & 833,00\\ - \hline - \caption{Tabella contenente il prospetto economico in riferimento al prospetto orario} - \end{longtable} - \pagebreak - - La tabella può essere riassunta nel seguente areogramma: - \begin{figure}[H] - \centering - \includegraphics[width=0.8\linewidth]{./images/preventivo/incremento4-2.png} - \caption{Grafico percentuale ore/ruolo del quarto incremento} - \label{fig:grafico costi ruolo incremento IV} - \end{figure} + La tabella può essere riassunta nel seguente areogramma: + \begin{figure}[H] + \centering + \includegraphics[width=0.8\linewidth]{./images/preventivo/incremento3-2.png} + \caption{Diagramma percentuale ore/ruolo del terzo incremento} + \label{fig:diagramma costi ruolo incremento III} + \end{figure} + + + \subsubsection{Incremento IV} + \paragraph{Prospetto orario} + Durante il quarto incremento la distribuzione oraria preventivata dei ruoli di ogni componente del gruppo sarà la seguente: + + \rowcolors{2}{lightest-grayest}{white} + \begin{longtable}{|l|c|c|c|c|c|c|c|} + \hline + \rowcolor{lighter-grayer} + \textbf{Nome} & \textbf{Re} & \textbf{Am} & \textbf{An} & \textbf{Pg} & \textbf{Pr} & \textbf{Ve} & \textbf{Totale} \\ + \hline + \endfirsthead + + \hline + Giuseppe Vito Bitetti & 2 & 0 & 0 & 0 & 4 & 0 & 6\\ + \hline + \hline + Lorenzo Dei Negri & 2 & 0 & 0 & 2 & 0 & 2 & 6\\ + \hline + \hline + Nicolò Frison & 0 & 0 & 0 & 2 & 4 & 0 & 6\\ + \hline + \hline + Fouad Mouad & 0 & 3 & 0 & 0 & 0 & 3 & 6\\ + \hline + \hline + Mariano Sciacco & 3 & 0 & 0 & 0 & 3 & 0 & 6\\ + \hline + \hline + Alessandro Tommasin & 0 & 0 & 2 & 0 & 0 & 4 & 6\\ + \hline + \hline + Giovanni Vidotto & 0 & 0 & 0 & 5 & 0 & 1 & 6\\ + \hline + \textbf{Totale} & 7 & 3 & 2 & 9 & 11 & 10 & 42\\ + \hline + \caption{Tabella contenente il prospetto orario preventivato per il quarto incremento} + \end{longtable} + \pagebreak + + La tabella può essere riassunta nel seguente istogramma: + \begin{figure}[H] + \centering + \includegraphics[width=0.8\linewidth]{./images/preventivo/incremento4-1.png} + \caption{Diagramma ore/ruolo componenti nel quarto incremento} + \label{fig:diagramma suddivione ruoli incremento IV} + \end{figure} + + \paragraph{Prospetto economico} + In base al prospetto orario, quello economico sarà il seguente: + + \rowcolors{2}{white}{lightest-grayest} + \begin{longtable}{|l|c|c|c|c|c|c|c|} + \hline + \rowcolor{lighter-grayer} + \textbf{Ruolo} & \textbf{Ore} & \textbf{Costo in € } \\ + \hline + \endfirsthead + + \hline + Responsabile & 7 & 210,00\\ + \hline + \hline + Amministratore & 3 & 60,00\\ + \hline + \hline + Analista & 2 & 50,00\\ + \hline + \hline + Progettista & 9 & 198,00\\ + \hline + \hline + Programmatore & 11 & 165,00\\ + \hline + \hline + Verificatore & 10 & 150,00\\ + \hline + \textbf{Totale} & 42 & 833,00\\ + \hline + \caption{Tabella contenente il prospetto economico in riferimento al prospetto orario} + \end{longtable} + \pagebreak + + La tabella può essere riassunta nel seguente areogramma: + \begin{figure}[H] + \centering + \includegraphics[width=0.8\linewidth]{./images/preventivo/incremento4-2.png} + \caption{Diagramma percentuale ore/ruolo del quarto incremento} + \label{fig:diagramma costi ruolo incremento IV} + \end{figure} - \subsection{Incremento V} - \subsubsection{Prospetto orario} - Durante il quinto incremento la distribuzione oraria preventivata dei ruoli di ogni componente del gruppo sarà la seguente: + \subsubsection{Riepilogo prospetto orario} + Durante i primi quattro incrementi la distribuzione oraria preventivata dei ruoli di ogni componente del gruppo può essere riassunta nella seguente tabella: \rowcolors{2}{lightest-grayest}{white} \begin{longtable}{|l|c|c|c|c|c|c|c|} @@ -672,45 +671,45 @@ \section{Preventivo} \endfirsthead \hline - Giuseppe Vito Bitetti & 0 & 2 & 2 & 0 & 0 & 2 & 6\\ + Giuseppe Vito Bitetti & 3 & 0 & 3 & 3 & 9 & 5 & 23\\ \hline \hline - Lorenzo Dei Negri & 0 & 0 & 0 & 2 & 4 & 0 & 6\\ + Lorenzo Dei Negri & 2 & 0 & 0 & 7 & 3 & 11 & 23\\ \hline \hline - Nicolò Frison & 2 & 0 & 0 & 0 & 0 & 4 & 6\\ + Nicolò Frison & 6 & 3 & 0 & 4 & 7 & 3 & 23\\ \hline \hline - Fouad Mouad & 2 & 0 & 0 & 0 & 4 & 0 & 6\\ + Fouad Mouad & 3 & 6 & 5 & 3 & 3 & 3 & 23\\ \hline \hline - Mariano Sciacco & 0 & 0 & 0 & 1 & 3 & 2 & 6\\ + Mariano Sciacco & 3 & 3 & 0 & 5 & 8 & 4 & 23\\ \hline \hline - Alessandro Tommasin & 0 & 0 & 0 & 3 & 3 & 0 & 6\\ + Alessandro Tommasin & 0 & 3 & 2 & 5 & 7 & 6 & 23\\ \hline \hline - Giovanni Vidotto & 0 & 2 & 0 & 0 & 4 & 0 & 6\\ + Giovanni Vidotto & 0 & 2 & 0 & 11 & 4 & 6 & 23\\ \hline - \textbf{Totale} & 4 & 4 & 2 & 6 & 18 & 8 & 42\\ + \textbf{Totale} & 17 & 17 & 10 & 38 & 41 & 38 & 161\\ \hline - \caption{Tabella contenente il prospetto orario preventivato per il quinto incremento} + \caption{Tabella contenente il prospetto orario preventivato per i primi quattro incrementi} \end{longtable} \pagebreak La tabella può essere riassunta nel seguente istogramma: \begin{figure}[H] \centering - \includegraphics[width=0.8\linewidth]{./images/preventivo/incremento5-1.png} - \caption{Grafico ore/ruolo componenti nel quinto incremento} - \label{fig:grafico suddivione ruoli incremento V} + \includegraphics[width=0.8\linewidth]{./images/preventivo/incremento1-4-1.png} + \caption{Diagramma ore/ruolo componenti nei primi quattro incrementi} + \label{fig:diagramma suddivione ruoli incrementi I-IV} \end{figure} - \subsubsection{Prospetto economico} + \subsubsection{Riepilogo prospetto economico} In base al prospetto orario, quello economico sarà il seguente: \rowcolors{2}{white}{lightest-grayest} - \begin{longtable}{|l|c|c|c|c|c|c|c|} + \begin{longtable}{|l|c|c|} \hline \rowcolor{lighter-grayer} \textbf{Ruolo} & \textbf{Ore} & \textbf{Costo in € } \\ @@ -718,24 +717,24 @@ \section{Preventivo} \endfirsthead \hline - Responsabile & 4 & 120,00\\ + Responsabile & 17 & 510,00\\ \hline \hline - Amministratore & 4 & 80,00\\ + Amministratore & 17 & 340,00\\ \hline \hline - Analista & 2 & 50,00\\ + Analista & 10 & 250,00\\ \hline \hline - Progettista & 6 & 132,00\\ + Progettista & 38 & 836,00\\ \hline \hline - Programmatore & 18 & 270,00\\ + Programmatore & 41 & 615,00\\ \hline \hline - Verificatore & 8 & 120,00\\ + Verificatore & 38 & 570,00\\ \hline - \textbf{Totale} & 42 & 772,00\\ + \textbf{Totale} & 161 & 3121,00\\ \hline \caption{Tabella contenente il prospetto economico in riferimento al prospetto orario} \end{longtable} @@ -744,291 +743,478 @@ \section{Preventivo} La tabella può essere riassunta nel seguente areogramma: \begin{figure}[H] \centering - \includegraphics[width=0.8\linewidth]{./images/preventivo/incremento5-2.png} - \caption{Grafico percentuale ore/ruolo del quinto incremento} - \label{fig:grafico costi ruolo incremento V} + \includegraphics[width=0.8\linewidth]{./images/preventivo/incremento1-4-2.png} + \caption{Diagramma percentuale ore/ruolo dei primi quattro incrementi} + \label{fig:diagramma costi ruolo incrementi I-IV} \end{figure} - - \subsection{Incremento VI} - \subsubsection{Prospetto orario} - Durante il sesto incremento la distribuzione oraria preventivata dei ruoli di ogni componente del gruppo sarà la seguente: - - \rowcolors{2}{lightest-grayest}{white} - \begin{longtable}{|l|c|c|c|c|c|c|c|} - \hline - \rowcolor{lighter-grayer} - \textbf{Nome} & \textbf{Re} & \textbf{Am} & \textbf{An} & \textbf{Pg} & \textbf{Pr} & \textbf{Ve} & \textbf{Totale} \\ - \hline - \endfirsthead + %=============================================% + \pagebreak + \subsection{Progettazione completa dell'architettura e implementazione delle funzionalità} + I successivi quattro incrementi, che vedremo in dettaglio, comporranno la fase stessa. + \subsubsection{Incremento V} + \paragraph{Prospetto orario} + Durante il quinto incremento la distribuzione oraria preventivata dei ruoli di ogni componente del gruppo sarà la seguente: - \hline - Giuseppe Vito Bitetti & 0 & 0 & 0 & 2 & 2 & 2 & 6\\ - \hline - \hline - Lorenzo Dei Negri & 0 & 0 & 0 & 0 & 4 & 2 & 6\\ - \hline - \hline - Nicolò Frison & 0 & 3 & 0 & 0 & 3 & 0 & 6\\ - \hline - \hline - Fouad Mouad & 2 & 0 & 0 & 0 & 2 & 2 & 6\\ - \hline - \hline - Mariano Sciacco & 0 & 0 & 0 & 0 & 2 & 4 & 6\\ - \hline - \hline - Alessandro Tommasin & 0 & 0 & 0 & 0 & 2 & 4 & 6\\ - \hline - \hline - Giovanni Vidotto & 0 & 0 & 0 & 4 & 2 & 0 & 6\\ - \hline - \textbf{Totale} & 2 & 3 & 0 & 6 & 17 & 14 & 42\\ - \hline - \caption{Tabella contenente il prospetto orario preventivato per il sesto incremento} - \end{longtable} + \rowcolors{2}{lightest-grayest}{white} + \begin{longtable}{|l|c|c|c|c|c|c|c|} + \hline + \rowcolor{lighter-grayer} + \textbf{Nome} & \textbf{Re} & \textbf{Am} & \textbf{An} & \textbf{Pg} & \textbf{Pr} & \textbf{Ve} & \textbf{Totale} \\ + \hline + \endfirsthead + + \hline + Giuseppe Vito Bitetti & 0 & 2 & 2 & 0 & 0 & 2 & 6\\ + \hline + \hline + Lorenzo Dei Negri & 0 & 0 & 0 & 2 & 4 & 0 & 6\\ + \hline + \hline + Nicolò Frison & 2 & 0 & 0 & 0 & 0 & 4 & 6\\ + \hline + \hline + Fouad Mouad & 2 & 0 & 0 & 0 & 4 & 0 & 6\\ + \hline + \hline + Mariano Sciacco & 0 & 0 & 0 & 1 & 3 & 2 & 6\\ + \hline + \hline + Alessandro Tommasin & 0 & 0 & 0 & 3 & 3 & 0 & 6\\ + \hline + \hline + Giovanni Vidotto & 0 & 2 & 0 & 0 & 4 & 0 & 6\\ + \hline + \textbf{Totale} & 4 & 4 & 2 & 6 & 18 & 8 & 42\\ + \hline + \caption{Tabella contenente il prospetto orario preventivato per il quinto incremento} + \end{longtable} + + La tabella può essere riassunta nel seguente istogramma: + \begin{figure}[H] + \centering + \includegraphics[width=0.8\linewidth]{./images/preventivo/incremento5-1.png} + \caption{Diagramma ore/ruolo componenti nel quinto incremento} + \label{fig:diagramma suddivione ruoli incremento V} + \end{figure} + \pagebreak + + \paragraph{Prospetto economico} + In base al prospetto orario, quello economico sarà il seguente: + + \rowcolors{2}{white}{lightest-grayest} + \begin{longtable}{|l|c|c|c|c|c|c|c|} + \hline + \rowcolor{lighter-grayer} + \textbf{Ruolo} & \textbf{Ore} & \textbf{Costo in € } \\ + \hline + \endfirsthead + + \hline + Responsabile & 4 & 120,00\\ + \hline + \hline + Amministratore & 4 & 80,00\\ + \hline + \hline + Analista & 2 & 50,00\\ + \hline + \hline + Progettista & 6 & 132,00\\ + \hline + \hline + Programmatore & 18 & 270,00\\ + \hline + \hline + Verificatore & 8 & 120,00\\ + \hline + \textbf{Totale} & 42 & 772,00\\ + \hline + \caption{Tabella contenente il prospetto economico in riferimento al prospetto orario} + \end{longtable} + + + La tabella può essere riassunta nel seguente areogramma: + \begin{figure}[H] + \centering + \includegraphics[width=0.8\linewidth]{./images/preventivo/incremento5-2.png} + \caption{Diagramma percentuale ore/ruolo del quinto incremento} + \label{fig:diagramma costi ruolo incremento V} + \end{figure} + \pagebreak + + + \subsubsection{Incremento VI} + \paragraph{Prospetto orario} + Durante il sesto incremento la distribuzione oraria preventivata dei ruoli di ogni componente del gruppo sarà la seguente: + + \rowcolors{2}{lightest-grayest}{white} + \begin{longtable}{|l|c|c|c|c|c|c|c|} + \hline + \rowcolor{lighter-grayer} + \textbf{Nome} & \textbf{Re} & \textbf{Am} & \textbf{An} & \textbf{Pg} & \textbf{Pr} & \textbf{Ve} & \textbf{Totale} \\ + \hline + \endfirsthead + + \hline + Giuseppe Vito Bitetti & 0 & 0 & 0 & 2 & 2 & 2 & 6\\ + \hline + \hline + Lorenzo Dei Negri & 0 & 0 & 0 & 0 & 4 & 2 & 6\\ + \hline + \hline + Nicolò Frison & 0 & 3 & 0 & 0 & 3 & 0 & 6\\ + \hline + \hline + Fouad Mouad & 2 & 0 & 0 & 0 & 2 & 2 & 6\\ + \hline + \hline + Mariano Sciacco & 0 & 0 & 0 & 0 & 2 & 4 & 6\\ + \hline + \hline + Alessandro Tommasin & 0 & 0 & 0 & 0 & 2 & 4 & 6\\ + \hline + \hline + Giovanni Vidotto & 0 & 0 & 0 & 4 & 2 & 0 & 6\\ + \hline + \textbf{Totale} & 2 & 3 & 0 & 6 & 17 & 14 & 42\\ + \hline + \caption{Tabella contenente il prospetto orario preventivato per il sesto incremento} + \end{longtable} + + La tabella può essere riassunta nel seguente istogramma: + \begin{figure}[H] + \centering + \includegraphics[width=0.8\linewidth]{./images/preventivo/incremento6-1.png} + \caption{Diagramma ore/ruolo componenti nel sesto incremento} + \label{fig:diagramma suddivione ruoli incremento VI} + \end{figure} \pagebreak - - La tabella può essere riassunta nel seguente istogramma: - \begin{figure}[H] - \centering - \includegraphics[width=0.8\linewidth]{./images/preventivo/incremento6-1.png} - \caption{Grafico ore/ruolo componenti nel sesto incremento} - \label{fig:grafico suddivione ruoli incremento VI} - \end{figure} - - \subsubsection{Prospetto economico} - In base al prospetto orario, quello economico sarà il seguente: - - \rowcolors{2}{white}{lightest-grayest} - \begin{longtable}{|l|c|c|c|c|c|c|c|} - \hline - \rowcolor{lighter-grayer} - \textbf{Ruolo} & \textbf{Ore} & \textbf{Costo in € } \\ - \hline - \endfirsthead - \hline - Responsabile & 3 & 90,00\\ - \hline - \hline - Amministratore & 3 & 60,00\\ - \hline - \hline - Analista & 0 & 0,00\\ - \hline - \hline - Progettista & 12 & 264,00\\ - \hline - \hline - Programmatore & 11 & 165,00\\ - \hline - \hline - Verificatore & 13 & 195,00\\ - \hline - \textbf{Totale} & 42 & 774,00\\ - \hline - \caption{Tabella contenente il prospetto economico in riferimento al prospetto orario} - \end{longtable} + \paragraph{Prospetto economico} + In base al prospetto orario, quello economico sarà il seguente: + + \rowcolors{2}{white}{lightest-grayest} + \begin{longtable}{|l|c|c|c|c|c|c|c|} + \hline + \rowcolor{lighter-grayer} + \textbf{Ruolo} & \textbf{Ore} & \textbf{Costo in € } \\ + \hline + \endfirsthead + + \hline + Responsabile & 3 & 90,00\\ + \hline + \hline + Amministratore & 3 & 60,00\\ + \hline + \hline + Analista & 0 & 0,00\\ + \hline + \hline + Progettista & 12 & 264,00\\ + \hline + \hline + Programmatore & 11 & 165,00\\ + \hline + \hline + Verificatore & 13 & 195,00\\ + \hline + \textbf{Totale} & 42 & 774,00\\ + \hline + \caption{Tabella contenente il prospetto economico in riferimento al prospetto orario} + \end{longtable} + + La tabella può essere riassunta nel seguente areogramma: + \begin{figure}[H] + \centering + \includegraphics[width=0.8\linewidth]{./images/preventivo/incremento6-2.png} + \caption{Diagramma percentuale ore/ruolo del sesto incremento} + \label{fig:diagramma costi ruolo incremento VI} + \end{figure} \pagebreak - - La tabella può essere riassunta nel seguente areogramma: - \begin{figure}[H] - \centering - \includegraphics[width=0.8\linewidth]{./images/preventivo/incremento6-2.png} - \caption{Grafico percentuale ore/ruolo del sesto incremento} - \label{fig:grafico costi ruolo incremento VI} - \end{figure} - - - - \subsection{Incremento VII} - \subsubsection{Prospetto orario} - Durante il settimo incremento la distribuzione oraria preventivata dei ruoli di ogni componente del gruppo sarà la seguente: - - \rowcolors{2}{lightest-grayest}{white} - \begin{longtable}{|l|c|c|c|c|c|c|c|} - \hline - \rowcolor{lighter-grayer} - \textbf{Nome} & \textbf{Re} & \textbf{Am} & \textbf{An} & \textbf{Pg} & \textbf{Pr} & \textbf{Ve} & \textbf{Totale} \\ - \hline - \endfirsthead - \hline - Giuseppe Vito Bitetti & 0 & 0 & 0 & 0 & 4 & 2 & 6\\ - \hline - \hline - Lorenzo Dei Negri & 2 & 0 & 0 & 2 & 0 & 2 & 6\\ - \hline - \hline - Nicolò Frison & 0 & 0 & 0 & 3 & 0 & 3 & 6\\ - \hline - \hline - Fouad Mouad & 0 & 0 & 0 & 2 & 0 & 4 & 6\\ - \hline - \hline - Mariano Sciacco & 0 & 0 & 0 & 0 & 6 & 0 & 6\\ - \hline - \hline - Alessandro Tommasin & 0 & 2 & 0 & 4 & 0 & 0 & 6\\ - \hline - \hline - Giovanni Vidotto & 0 & 0 & 0 & 0 & 6 & 0 & 6\\ - \hline - \textbf{Totale} & 2 & 2 & 0 & 11 & 16 & 11 & 42\\ - \hline - \caption{Tabella contenente il prospetto orario preventivato per il settimo incremento} - \end{longtable} - \pagebreak - - La tabella può essere riassunta nel seguente istogramma: - \begin{figure}[H] - \centering - \includegraphics[width=0.8\linewidth]{./images/preventivo/incremento7-1.png} - \caption{Grafico ore/ruolo componenti nel settimo incremento} - \label{fig:grafico suddivione ruoli incremento VII} - \end{figure} - - \subsubsection{Prospetto economico} - In base al prospetto orario, quello economico sarà il seguente: - - \rowcolors{2}{white}{lightest-grayest} - \begin{longtable}{|l|c|c|} - \hline - \rowcolor{lighter-grayer} - \textbf{Ruolo} & \textbf{Ore} & \textbf{Costo in € } \\ - \hline - \endfirsthead - \hline - Responsabile & 2 & 60,00\\ - \hline - \hline - Amministratore & 2 & 40,00\\ - \hline - \hline - Analista & 0 & 0,00\\ - \hline - \hline - Progettista & 11 & 242,00\\ - \hline - \hline - Programmatore & 16 & 240,00\\ - \hline - \hline - Verificatore & 11 & 165,00\\ - \hline - \textbf{Totale} & 42 & 747,00\\ - \hline - \caption{Tabella contenente il prospetto economico in riferimento al prospetto orario} - \end{longtable} - \pagebreak - - La tabella può essere riassunta nel seguente areogramma: - \begin{figure}[H] - \centering - \includegraphics[width=0.8\linewidth]{./images/preventivo/incremento7-2.png} - \caption{Grafico percentuale ore/ruolo del settimo incremento} - \label{fig:grafico costi ruolo incremento VII} - \end{figure} - - - \subsection{Incremento VIII} - \subsubsection{Prospetto orario} - Durante l'ottavo incremento la distribuzione oraria preventivata dei ruoli di ogni componente del gruppo sarà la seguente: - - \rowcolors{2}{lightest-grayest}{white} - \begin{longtable}{|l|c|c|c|c|c|c|c|} - \hline - \rowcolor{lighter-grayer} - \textbf{Nome} & \textbf{Re} & \textbf{Am} & \textbf{An} & \textbf{Pg} & \textbf{Pr} & \textbf{Ve} & \textbf{Totale} \\ - \hline - \endfirsthead + \subsubsection{Incremento VII} + \paragraph{Prospetto orario} + Durante il settimo incremento la distribuzione oraria preventivata dei ruoli di ogni componente del gruppo sarà la seguente: + + \rowcolors{2}{lightest-grayest}{white} + \begin{longtable}{|l|c|c|c|c|c|c|c|} + \hline + \rowcolor{lighter-grayer} + \textbf{Nome} & \textbf{Re} & \textbf{Am} & \textbf{An} & \textbf{Pg} & \textbf{Pr} & \textbf{Ve} & \textbf{Totale} \\ + \hline + \endfirsthead + + \hline + Giuseppe Vito Bitetti & 0 & 0 & 0 & 0 & 4 & 2 & 6\\ + \hline + \hline + Lorenzo Dei Negri & 2 & 0 & 0 & 2 & 0 & 2 & 6\\ + \hline + \hline + Nicolò Frison & 0 & 0 & 0 & 3 & 0 & 3 & 6\\ + \hline + \hline + Fouad Mouad & 0 & 0 & 0 & 2 & 0 & 4 & 6\\ + \hline + \hline + Mariano Sciacco & 0 & 0 & 0 & 0 & 6 & 0 & 6\\ + \hline + \hline + Alessandro Tommasin & 0 & 2 & 0 & 4 & 0 & 0 & 6\\ + \hline + \hline + Giovanni Vidotto & 0 & 0 & 0 & 0 & 6 & 0 & 6\\ + \hline + \textbf{Totale} & 2 & 2 & 0 & 11 & 16 & 11 & 42\\ + \hline + \caption{Tabella contenente il prospetto orario preventivato per il settimo incremento} + \end{longtable} + + La tabella può essere riassunta nel seguente istogramma: + \begin{figure}[H] + \centering + \includegraphics[width=0.8\linewidth]{./images/preventivo/incremento7-1.png} + \caption{Diagramma ore/ruolo componenti nel settimo incremento} + \label{fig:diagramma suddivione ruoli incremento VII} + \end{figure} + \pagebreak + + \paragraph{Prospetto economico} + In base al prospetto orario, quello economico sarà il seguente: + + \rowcolors{2}{white}{lightest-grayest} + \begin{longtable}{|l|c|c|} + \hline + \rowcolor{lighter-grayer} + \textbf{Ruolo} & \textbf{Ore} & \textbf{Costo in € } \\ + \hline + \endfirsthead + + \hline + Responsabile & 2 & 60,00\\ + \hline + \hline + Amministratore & 2 & 40,00\\ + \hline + \hline + Analista & 0 & 0,00\\ + \hline + \hline + Progettista & 11 & 242,00\\ + \hline + \hline + Programmatore & 16 & 240,00\\ + \hline + \hline + Verificatore & 11 & 165,00\\ + \hline + \textbf{Totale} & 42 & 747,00\\ + \hline + \caption{Tabella contenente il prospetto economico in riferimento al prospetto orario} + \end{longtable} + + La tabella può essere riassunta nel seguente areogramma: + \begin{figure}[H] + \centering + \includegraphics[width=0.8\linewidth]{./images/preventivo/incremento7-2.png} + \caption{Diagramma percentuale ore/ruolo del settimo incremento} + \label{fig:diagramma costi ruolo incremento VII} + \end{figure} + \pagebreak + + + \subsubsection{Incremento VIII} + \paragraph{Prospetto orario} + Durante l'ottavo incremento la distribuzione oraria preventivata dei ruoli di ogni componente del gruppo sarà la seguente: - \hline - Giuseppe Vito Bitetti & 2 & 0 & 0 & 2 & 0 & 2 & 6\\ - \hline - \hline - Lorenzo Dei Negri & 0 & 0 & 0 & 2 & 4 & 0 & 6\\ - \hline - \hline - Nicolò Frison & 0 & 0 & 0 & 2 & 2 & 2 & 6\\ - \hline - \hline - Fouad Mouad & 0 & 0 & 0 & 2 & 2 & 2 & 6\\ - \hline - \hline - Mariano Sciacco & 0 & 0 & 0 & 1 & 0 & 5 & 6\\ - \hline - \hline - Alessandro Tommasin & 0 & 0 & 0 & 3 & 0 & 3 & 6\\ - \hline - \hline - Giovanni Vidotto & 0 & 2 & 0 & 2 & 0 & 2 & 6\\ - \hline - \textbf{Totale} & 2 & 2 & 0 & 14 & 8 & 16 & 42\\ - \hline - \caption{Tabella contenente il prospetto orario preventivato per l'ottavo incremento} - \end{longtable} - \pagebreak - - La tabella può essere riassunta nel seguente istogramma: - \begin{figure}[H] - \centering - \includegraphics[width=0.8\linewidth]{./images/preventivo/incremento8-1.png} - \caption{Grafico ore/ruolo componenti nell'ottavo incremento} - \label{fig:grafico suddivione ruoli incremento VIII} - \end{figure} - - \subsubsection{Prospetto economico} - In base al prospetto orario, quello economico sarà il seguente: - - \rowcolors{2}{white}{lightest-grayest} - \begin{longtable}{|l|c|c|} - \hline - \rowcolor{lighter-grayer} - \textbf{Ruolo} & \textbf{Ore} & \textbf{Costo in € } \\ - \hline - \endfirsthead + \rowcolors{2}{lightest-grayest}{white} + \begin{longtable}{|l|c|c|c|c|c|c|c|} + \hline + \rowcolor{lighter-grayer} + \textbf{Nome} & \textbf{Re} & \textbf{Am} & \textbf{An} & \textbf{Pg} & \textbf{Pr} & \textbf{Ve} & \textbf{Totale} \\ + \hline + \endfirsthead + + \hline + Giuseppe Vito Bitetti & 2 & 0 & 0 & 2 & 0 & 2 & 6\\ + \hline + \hline + Lorenzo Dei Negri & 0 & 0 & 0 & 2 & 4 & 0 & 6\\ + \hline + \hline + Nicolò Frison & 0 & 0 & 0 & 2 & 2 & 2 & 6\\ + \hline + \hline + Fouad Mouad & 0 & 0 & 0 & 2 & 2 & 2 & 6\\ + \hline + \hline + Mariano Sciacco & 0 & 0 & 0 & 1 & 0 & 5 & 6\\ + \hline + \hline + Alessandro Tommasin & 0 & 0 & 0 & 3 & 0 & 3 & 6\\ + \hline + \hline + Giovanni Vidotto & 0 & 2 & 0 & 2 & 0 & 2 & 6\\ + \hline + \textbf{Totale} & 2 & 2 & 0 & 14 & 8 & 16 & 42\\ + \hline + \caption{Tabella contenente il prospetto orario preventivato per l'ottavo incremento} + \end{longtable} - \hline - Responsabile & 2 & 60,00\\ - \hline - \hline - Amministratore & 2 & 40,00\\ - \hline - \hline - Analista & 0 & 0,00\\ - \hline - \hline - Progettista & 14 & 308,00\\ - \hline - \hline - Programmatore & 8 & 120,00\\ - \hline - \hline - Verificatore & 16 & 240,00\\ - \hline - \textbf{Totale} & 42 & 768,00\\ - \hline - \caption{Tabella contenente il prospetto economico in riferimento al prospetto orario} - \end{longtable} + La tabella può essere riassunta nel seguente istogramma: + \begin{figure}[H] + \centering + \includegraphics[width=0.8\linewidth]{./images/preventivo/incremento8-1.png} + \caption{Diagramma ore/ruolo componenti nell'ottavo incremento} + \label{fig:diagramma suddivione ruoli incremento VIII} + \end{figure} + \pagebreak + + \paragraph{Prospetto economico} + In base al prospetto orario, quello economico sarà il seguente: + + \rowcolors{2}{white}{lightest-grayest} + \begin{longtable}{|l|c|c|} + \hline + \rowcolor{lighter-grayer} + \textbf{Ruolo} & \textbf{Ore} & \textbf{Costo in € } \\ + \hline + \endfirsthead + + \hline + Responsabile & 2 & 60,00\\ + \hline + \hline + Amministratore & 2 & 40,00\\ + \hline + \hline + Analista & 0 & 0,00\\ + \hline + \hline + Progettista & 14 & 308,00\\ + \hline + \hline + Programmatore & 8 & 120,00\\ + \hline + \hline + Verificatore & 16 & 240,00\\ + \hline + \textbf{Totale} & 42 & 768,00\\ + \hline + \caption{Tabella contenente il prospetto economico in riferimento al prospetto orario} + \end{longtable} + + La tabella può essere riassunta nel seguente areogramma: + \begin{figure}[H] + \centering + \includegraphics[width=0.8\linewidth]{./images/preventivo/incremento8-2.png} + \caption{Diagramma percentuale ore/ruolo dell'ottavo incremento} + \label{fig:diagramma costi ruolo incremento VIII} + \end{figure} \pagebreak - La tabella può essere riassunta nel seguente areogramma: - \begin{figure}[H] - \centering - \includegraphics[width=0.8\linewidth]{./images/preventivo/incremento8-2.png} - \caption{Grafico percentuale ore/ruolo dell'ottavo incremento} - \label{fig:grafico costi ruolo incremento VIII} - \end{figure} - - \subsection{Incremento IX} - \subsubsection{Prospetto orario} - Durante il nono incremento la distribuzione oraria preventivata dei ruoli di ogni componente del gruppo sarà la seguente: + \subsubsection{Riepilogo prospetto orario} + Dal quinto all'ottavo incremento la distribuzione oraria preventivata dei ruoli di ogni componente del gruppo può essere riassunta nella seguente tabella: + + \rowcolors{2}{lightest-grayest}{white} + \begin{longtable}{|l|c|c|c|c|c|c|c|} + \hline + \rowcolor{lighter-grayer} + \textbf{Nome} & \textbf{Re} & \textbf{Am} & \textbf{An} & \textbf{Pg} & \textbf{Pr} & \textbf{Ve} & \textbf{Totale} \\ + \hline + \endfirsthead + + \hline + Giuseppe Vito Bitetti & 2 & 2 & 2 & 4 & 6 & 8 & 24\\ + \hline + \hline + Lorenzo Dei Negri & 2 & 0 & 0 & 6 & 12 & 4 & 24\\ + \hline + \hline + Nicolò Frison & 2 & 3 & 0 & 5 & 5 & 9 & 24\\ + \hline + \hline + Fouad Mouad & 4 & 0 & 0 & 4 & 8 & 8 & 24\\ + \hline + \hline + Mariano Sciacco & 0 & 0 & 0 & 2 & 11 & 11 & 24\\ + \hline + \hline + Alessandro Tommasin & 0 & 2 & 0 & 10 & 5 & 7 & 24\\ + \hline + \hline + Giovanni Vidotto & 0 & 4 & 0 & 6 & 12 & 2 & 24\\ + \hline + \textbf{Totale} & 10 & 11 & 2 & 37 & 59 & 49 & 168\\ + \hline + \caption{Tabella contenente il prospetto orario preventivato dal quinto all'ottavo incremento} + \end{longtable} + + La tabella può essere riassunta nel seguente istogramma: + \begin{figure}[H] + \centering + \includegraphics[width=0.8\linewidth]{./images/preventivo/incremento5-8-1.png} + \caption{Diagramma ore/ruolo componenti dal quinto all'ottavo incremento} + \label{fig:diagramma suddivione ruoli incrementi V-VIII} + \end{figure} + \pagebreak + + \subsubsection{Riepilogo prospetto economico} + In base al prospetto orario, quello economico sarà il seguente: + + \rowcolors{2}{white}{lightest-grayest} + \begin{longtable}{|l|c|c|} + \hline + \rowcolor{lighter-grayer} + \textbf{Ruolo} & \textbf{Ore} & \textbf{Costo in € } \\ + \hline + \endfirsthead + + \hline + Responsabile & 10 & 300,00\\ + \hline + \hline + Amministratore & 11 & 220,00\\ + \hline + \hline + Analista & 2 & 50,00\\ + \hline + \hline + Progettista & 37 & 814,00\\ + \hline + \hline + Programmatore & 59 & 885,00\\ + \hline + \hline + Verificatore & 49 & 735,00\\ + \hline + \textbf{Totale} & 168 & 3004,00\\ + \hline + \caption{Tabella contenente il prospetto economico in riferimento al prospetto orario} + \end{longtable} + + La tabella può essere riassunta nel seguente areogramma: + \begin{figure}[H] + \centering + \includegraphics[width=0.8\linewidth]{./images/preventivo/incremento5-8-2.png} + \caption{Diagramma percentuale ore/ruolo dal quinto all'ottavo incremento} + \label{fig:diagramma costi ruolo incrementi V-VIII} + \end{figure} + + + %=======================================================% + \pagebreak + \subsection{Completamento dell'implementazione e raffinamento delle funzionalità} + I successivi quattro incrementi, che vedremo in dettaglio, comporranno la fase stessa. + \subsubsection{Incremento IX} + \paragraph{Prospetto orario} + Nel nono incremento la distribuzione oraria preventivata dei ruoli dei componenti del gruppo sarà: \rowcolors{2}{lightest-grayest}{white} \begin{longtable}{|l|c|c|c|c|c|c|c|} @@ -1063,17 +1249,17 @@ \section{Preventivo} \hline \caption{Tabella contenente il prospetto orario preventivato per il nono incremento} \end{longtable} - \pagebreak La tabella può essere riassunta nel seguente istogramma: \begin{figure}[H] \centering - \includegraphics[width=0.8\linewidth]{./images/preventivo/incremento9-1.png} - \caption{Grafico ore/ruolo componenti nel nono incremento} - \label{fig:grafico suddivione ruoli incremento IX} + \includegraphics[width=0.75\linewidth]{./images/preventivo/incremento9-1.png} + \caption{Diagramma ore/ruolo componenti nel nono incremento} + \label{fig:diagramma suddivione ruoli incremento IX} \end{figure} +% \pagebreak - \subsubsection{Prospetto economico} + \paragraph{Prospetto economico} In base al prospetto orario, quello economico sarà il seguente: \rowcolors{2}{white}{lightest-grayest} @@ -1106,20 +1292,19 @@ \section{Preventivo} \hline \caption{Tabella contenente il prospetto economico in riferimento al prospetto orario} \end{longtable} - \pagebreak La tabella può essere riassunta nel seguente areogramma: \begin{figure}[H] \centering \includegraphics[width=0.8\linewidth]{./images/preventivo/incremento9-2.png} - \caption{Grafico percentuale ore/ruolo del nono incremento} - \label{fig:grafico costi ruolo incremento IX} + \caption{Diagramma percentuale ore/ruolo del nono incremento} + \label{fig:diagramma costi ruolo incremento IX} \end{figure} + \pagebreak - - \subsection{Incremento X} - \subsubsection{Prospetto orario} + \subsubsection{Incremento X} + \paragraph{Prospetto orario} Durante il decimo incremento la distribuzione oraria preventivata dei ruoli di ogni componente del gruppo sarà la seguente: \rowcolors{2}{lightest-grayest}{white} @@ -1155,17 +1340,17 @@ \section{Preventivo} \hline \caption{Tabella contenente il prospetto orario preventivato per il decimo incremento} \end{longtable} - \pagebreak La tabella può essere riassunta nel seguente istogramma: \begin{figure}[H] \centering \includegraphics[width=0.8\linewidth]{./images/preventivo/incremento10-1.png} - \caption{Grafico ore/ruolo componenti nel decimo incremento} - \label{fig:grafico suddivione ruoli incremento X} + \caption{Diagramma ore/ruolo componenti nel decimo incremento} + \label{fig:diagramma suddivione ruoli incremento X} \end{figure} + \pagebreak - \subsubsection{Prospetto economico} + \paragraph{Prospetto economico} In base al prospetto orario, quello economico sarà il seguente: \rowcolors{2}{white}{lightest-grayest} @@ -1198,20 +1383,19 @@ \section{Preventivo} \hline \caption{Tabella contenente il prospetto economico in riferimento al prospetto orario} \end{longtable} - \pagebreak La tabella può essere riassunta nel seguente areogramma: \begin{figure}[H] \centering \includegraphics[width=0.8\linewidth]{./images/preventivo/incremento10-2.png} - \caption{Grafico percentuale ore/ruolo del decimo incremento} - \label{fig:grafico costi ruolo incremento X} + \caption{Diagramma percentuale ore/ruolo del decimo incremento} + \label{fig:diagramma costi ruolo incremento X} \end{figure} + \pagebreak - - \subsection{Incremento XI} - \subsubsection{Prospetto orario} + \subsubsection{Incremento XI} + \paragraph{Prospetto orario} Durante l'undicesimo incremento la distribuzione oraria preventivata dei ruoli di ogni componente del gruppo sarà la seguente: \rowcolors{2}{lightest-grayest}{white} @@ -1247,17 +1431,17 @@ \section{Preventivo} \hline \caption{Tabella contenente il prospetto orario preventivato per l'undicesimo incremento} \end{longtable} - \pagebreak La tabella può essere riassunta nel seguente istogramma: \begin{figure}[H] \centering \includegraphics[width=0.8\linewidth]{./images/preventivo/incremento11-1.png} - \caption{Grafico ore/ruolo componenti nell'undicesimo incremento} - \label{fig:grafico suddivione ruoli incremento XI} + \caption{Diagramma ore/ruolo componenti nell'undicesimo incremento} + \label{fig:diagramma suddivione ruoli incremento XI} \end{figure} + \pagebreak - \subsubsection{Prospetto economico} + \paragraph{Prospetto economico} In base al prospetto orario, quello economico sarà il seguente: \rowcolors{2}{white}{lightest-grayest} @@ -1290,20 +1474,19 @@ \section{Preventivo} \hline \caption{Tabella contenente il prospetto economico in riferimento al prospetto orario} \end{longtable} - \pagebreak La tabella può essere riassunta nel seguente areogramma: \begin{figure}[H] \centering \includegraphics[width=0.8\linewidth]{./images/preventivo/incremento11-2.png} - \caption{Grafico percentuale ore/ruolo dell'undicesimo incremento} - \label{fig:grafico costi ruolo incremento XI } + \caption{Diagramma percentuale ore/ruolo dell'undicesimo incremento} + \label{fig:diagramma costi ruolo incremento XI } \end{figure} + \pagebreak - - \subsection{Incremento XII} - \subsubsection{Prospetto orario} + \subsubsection{Incremento XII} + \paragraph{Prospetto orario} Durante il dodicesimi incremento la distribuzione oraria preventivata dei ruoli di ogni componente del gruppo sarà la seguente: \rowcolors{2}{lightest-grayest}{white} @@ -1339,17 +1522,17 @@ \section{Preventivo} \hline \caption{Tabella contenente il prospetto orario preventivato per il dodicesimo incremento} \end{longtable} - \pagebreak La tabella può essere riassunta nel seguente istogramma: \begin{figure}[H] \centering \includegraphics[width=0.8\linewidth]{./images/preventivo/incremento12-1.png} - \caption{Grafico ore/ruolo componenti nel dodicesimo incremento} - \label{fig:grafico suddivione ruoli incremento XII} + \caption{Diagramma ore/ruolo componenti nel dodicesimo incremento} + \label{fig:diagramma suddivione ruoli incremento XII} \end{figure} + \pagebreak - \subsubsection{Prospetto economico} + \paragraph{Prospetto economico} In base al prospetto orario, quello economico sarà il seguente: \rowcolors{2}{white}{lightest-grayest} @@ -1382,17 +1565,106 @@ \section{Preventivo} \hline \caption{Tabella contenente il prospetto economico in riferimento al prospetto orario} \end{longtable} - \pagebreak La tabella può essere riassunta nel seguente areogramma: \begin{figure}[H] \centering \includegraphics[width=0.8\linewidth]{./images/preventivo/incremento12-2.png} - \caption{Grafico percentuale ore/ruolo del dodicesimo incremento} - \label{fig:grafico costi ruolo incremento XII} + \caption{Diagramma percentuale ore/ruolo del dodicesimo incremento} + \label{fig:diagramma costi ruolo incremento XII} \end{figure} + \pagebreak + + \subsubsection{Riepilogo prospetto orario} + Durante gli ultimi quattro incrementi la distribuzione oraria preventivata dei ruoli di ogni componente del gruppo può essere riassunta nella seguente tabella: + + \rowcolors{2}{lightest-grayest}{white} + \begin{longtable}{|l|c|c|c|c|c|c|c|} + \hline + \rowcolor{lighter-grayer} + \textbf{Nome} & \textbf{Re} & \textbf{Am} & \textbf{An} & \textbf{Pg} & \textbf{Pr} & \textbf{Ve} & \textbf{Totale} \\ + \hline + \endfirsthead + + \hline + Giuseppe Vito Bitetti & 0 & 0 & 0 & 7 & 7 & 14 & 28\\ + \hline + \hline + Lorenzo Dei Negri & 1 & 4 & 0 & 9 & 3 & 11 & 28\\ + \hline + \hline + Nicolò Frison & 0 & 2 & 0 & 7 & 9 & 10 & 28\\ + \hline + \hline + Fouad Mouad & 0 & 0 & 0 & 12 & 10 & 6 & 28\\ + \hline + \hline + Mariano Sciacco & 0 & 1 & 0 & 9 & 10 & 6 & 28\\ + \hline + \hline + Alessandro Tommasin & 4 & 0 & 0 & 9 & 6 & 9 & 28\\ + \hline + \hline + Giovanni Vidotto & 4 & 0 & 0 & 5 & 11 & 8 & 28\\ + \hline + \textbf{Totale} & 9 & 7 & 0 & 58 & 56 & 66 & 196\\ + \hline + \caption{Tabella contenente il prospetto orario preventivato per gli ultimi quattro incrementi} + \end{longtable} + La tabella può essere riassunta nel seguente istogramma: + \begin{figure}[H] + \centering + \includegraphics[width=0.8\linewidth]{./images/preventivo/incremento9-12-1.png} + \caption{Diagramma ore/ruolo componenti negli ultimi quattro incrementi} + \label{fig:diagramma suddivione ruoli incrementi IX-XII} + \end{figure} + \pagebreak + \subsubsection{Riepilogo prospetto economico} + In base al prospetto orario, quello economico sarà il seguente: + + \rowcolors{2}{white}{lightest-grayest} + \begin{longtable}{|l|c|c|} + \hline + \rowcolor{lighter-grayer} + \textbf{Ruolo} & \textbf{Ore} & \textbf{Costo in € } \\ + \hline + \endfirsthead + + \hline + Responsabile & 9 & 270,00\\ + \hline + \hline + Amministratore & 7 & 140,00\\ + \hline + \hline + Analista & - & -\\ + \hline + \hline + Progettista & 58 & 1276,00\\ + \hline + \hline + Programmatore & 56 & 840,00\\ + \hline + \hline + Verificatore & 66 & 990,00\\ + \hline + \textbf{Totale} & 196 & 3516,00\\ + \hline + \caption{Tabella contenente il prospetto economico in riferimento al prospetto orario} + \end{longtable} + + La tabella può essere riassunta nel seguente areogramma: + \begin{figure}[H] + \centering + \includegraphics[width=0.8\linewidth]{./images/preventivo/incremento9-12-2.png} + \caption{Diagramma percentuale ore/ruolo degli ultimi quattro incrementi} + \label{fig:diagramma costi ruolo incrementi IX-XII} + \end{figure} + \pagebreak + + %====================================% \subsection{Fase di validazione e collaudo} \subsubsection{Prospetto orario} @@ -1431,15 +1703,15 @@ \section{Preventivo} \hline \caption{Tabella contenente il prospetto orario preventivato per la fase di validazione e collaudo} \end{longtable} - \pagebreak La tabella può essere riassunta nel seguente istogramma: \begin{figure}[H] \centering \includegraphics[width=0.8\linewidth]{./images/preventivo/validColl1.png} - \caption{Grafico ore/ruolo componenti nella fase di validazione e collaudo} - \label{fig:grafico suddivione ruoli fase di validazione e collaudo} + \caption{Diagramma ore/ruolo componenti nella fase di validazione e collaudo} + \label{fig:diagramma suddivione ruoli fase di validazione e collaudo} \end{figure} + \pagebreak \subsubsection{Prospetto economico} In base al prospetto orario, quello economico sarà il seguente: @@ -1474,18 +1746,17 @@ \section{Preventivo} \hline \caption{Tabella contenente il prospetto economico in riferimento al prospetto orario} \end{longtable} - \pagebreak La tabella può essere riassunta nel seguente areogramma: \begin{figure}[H] \centering \includegraphics[width=0.8\linewidth]{./images/preventivo/validColl2.png} - \caption{Grafico percentuale ore/ruolo della fase di validazione e collaudo} - \label{fig:grafico costi ruolo fase di validazione e collaudo} - \end{figure} + \caption{Diagramma percentuale ore/ruolo della fase di validazione e collaudo} + \label{fig:diagramma costi ruolo fase di validazione e collaudo} + \end{figure} + \pagebreak - \subsection{Riepilogo ore totali} \subsubsection{Totale ore} \subparagraph{Totale prospetto orario } @@ -1523,15 +1794,15 @@ \section{Preventivo} \hline \caption{Tabella contenente un prospetto orario riepilogativo di tutti i periodi trattati in precedenza} \end{longtable} - \pagebreak La tabella può essere riassunta nel seguente istogramma: \begin{figure}[H] \centering \includegraphics[width=0.8\linewidth]{./images/preventivo/totOre1.png} - \caption{Grafico ore/ruolo componenti nel totale delle ore} - \label{fig:grafico suddivione ruoli totale ore} + \caption{Diagramma ore/ruolo componenti nel totale delle ore} + \label{fig:diagramma suddivione ruoli totale ore} \end{figure} + \pagebreak \subparagraph{Totale prospetto economico} In base al prospetto orario, quello economico sarà il seguente: @@ -1566,15 +1837,15 @@ \section{Preventivo} \hline \caption{Tabella contenente il prospetto economico in riferimento al prospetto orario} \end{longtable} - \pagebreak La tabella può essere riassunta nel seguente areogramma: \begin{figure}[H] \centering \includegraphics[width=0.8\linewidth]{./images/preventivo/totOre2.png} - \caption{Grafico percentuale ore/ruolo nel totale delle ore} - \label{fig:grafico costi ruolo fase totale ore} + \caption{Diagramma percentuale ore/ruolo nel totale delle ore} + \label{fig:diagramma costi ruolo fase totale ore} \end{figure} + \pagebreak \subsubsection{Totale ore rendicontate} \subparagraph{Totale prospetto orario rendicontato} @@ -1613,15 +1884,15 @@ \section{Preventivo} \hline \caption{Tabella contenente il prospetto orario preventivato a carico del committente} \end{longtable} - \pagebreak La tabella può essere riassunta nel seguente istogramma: \begin{figure}[H] \centering \includegraphics[width=0.8\linewidth]{./images/preventivo/totOreRed1.png} - \caption{Grafico ore/ruolo componenti nel totale delle ore rendicontate} - \label{fig:grafico suddivione ruoli totale ore rendicontete} + \caption{Diagramma ore/ruolo componenti nel totale delle ore rendicontate} + \label{fig:diagramma suddivione ruoli totale ore rendicontete} \end{figure} + \pagebreak \subparagraph{Totale prospetto economico rendicontato} In base al prospetto orario, quello economico sarà il seguente: @@ -1656,15 +1927,16 @@ \section{Preventivo} \hline \caption{Tabella contenente il prospetto economico in riferimento al prospetto orario} \end{longtable} - \pagebreak + La tabella può essere riassunta nel seguente areogramma: \begin{figure}[H] \centering \includegraphics[width=0.8\linewidth]{./images/preventivo/totOreRed2.png} - \caption{Grafico percentuale ore/ruolo nel totale delle ore rendicontate} - \label{fig:grafico costi ruolo fase totale ore rendicontate} + \caption{Diagramma percentuale ore/ruolo nel totale delle ore rendicontate} + \label{fig:diagramma costi ruolo fase totale ore rendicontate} \end{figure} + \subsection{Conclusioni} Il costo totale preventivato dal gruppo per lo sviluppo del progetto ammonta a 13.786,00 €. diff --git a/esterni/piano_progetto/res/sections/Sez6-Consuntivo/Consuntivo.tex b/esterni/piano_progetto/res/sections/Sez6-Consuntivo/Consuntivo.tex index 7e82976..2c12193 100644 --- a/esterni/piano_progetto/res/sections/Sez6-Consuntivo/Consuntivo.tex +++ b/esterni/piano_progetto/res/sections/Sez6-Consuntivo/Consuntivo.tex @@ -48,8 +48,8 @@ \section{Consuntivo di periodo} \begin{figure}[H] \centering \includegraphics[width=0.8\linewidth]{images/consuntivo/analisiCons1.png} - \caption{Grafico consuntivo ore/ruolo componenti nella fase di analisi dei requisiti} - \label{fig:consuntivo grafico suddivisione ruoli fase analisi dei requisiti} + \caption{Diagramma consuntivo ore/ruolo componenti nella fase di analisi dei requisiti} + \label{fig:consuntivo diagramma suddivisione ruoli fase analisi dei requisiti} \end{figure} \subsubsection{Prospetto economico} @@ -91,8 +91,8 @@ \section{Consuntivo di periodo} \begin{figure}[H] \centering \includegraphics[width=0.8\linewidth]{images/consuntivo/analisiCons2.png} - \caption{Grafico percentuale ore/ruolo nella fase di analisi dei requisiti} - \label{fig:consuntivo2 grafico costi ruolo fase analisi dei requisiti} + \caption{Diagramma percentuale ore/ruolo nella fase di analisi dei requisiti} + \label{fig:consuntivo2 diagramma costi ruolo fase analisi dei requisiti} \end{figure} \subsubsection{Conclusioni} In questa fase il gruppo ha investito lo stesso numero di ore che erano state preventivate, applicando però delle correzioni per quanto riguarda l'assegnazione oraria per i diversi ruoli: @@ -151,8 +151,8 @@ \section{Consuntivo di periodo} \begin{figure}[H] \centering \includegraphics[width=0.8\linewidth]{images/consuntivo/ConsReqCons.png} - \caption{Grafico consuntivo ore/ruolo componenti della fase di consolidamento dei Requisiti} - \label{fig:consuntivo grafico suddivisione ruoli fase di consolidamento dei requisiti} + \caption{Diagramma consuntivo ore/ruolo componenti della fase di consolidamento dei Requisiti} + \label{fig:consuntivo diagramma suddivisione ruoli fase di consolidamento dei requisiti} \end{figure} \subsubsection{Prospetto economico} @@ -193,8 +193,8 @@ \section{Consuntivo di periodo} \begin{figure}[H] \centering \includegraphics[width=0.8\linewidth]{images/consuntivo/ConsReqCons2.png} - \caption{Grafico percentuale ore/ruolo nella fase di consolidamento dei requisiti} - \label{fig:consuntivo grafico costi ruolo fase di consolidamento dei requisiti} + \caption{Diagramma percentuale ore/ruolo nella fase di consolidamento dei requisiti} + \label{fig:consuntivo diagramma costi ruolo fase di consolidamento dei requisiti} \end{figure} \pagebreak @@ -256,8 +256,8 @@ \section{Consuntivo di periodo} \begin{figure}[H] \centering \includegraphics[width=0.8\linewidth]{images/consuntivo/ConsCorrez1.png} - \caption{Grafico consuntivo ore/ruolo componenti della fase di progettazione della technology baseline} - \label{fig:consuntivo grafico suddivione ruoli fase di progettazione della technology baseline} + \caption{Diagramma consuntivo ore/ruolo componenti della fase di progettazione della technology baseline} + \label{fig:consuntivo diagramma suddivione ruoli fase di progettazione della technology baseline} \end{figure} \pagebreak @@ -299,8 +299,8 @@ \section{Consuntivo di periodo} \begin{figure}[H] \centering \includegraphics[width=0.8\linewidth]{images/consuntivo/ConsCorrez2.png} - \caption{Grafico percentuale ore/ruolo nella fase di progettazione della technology baseline} - \label{fig:consuntivo grafico costi ruolo fase progettazione della technology baseline} + \caption{Diagramma percentuale ore/ruolo nella fase di progettazione della technology baseline} + \label{fig:consuntivo diagramma costi ruolo fase progettazione della technology baseline} \end{figure} \subsubsection{Conclusioni} @@ -313,10 +313,13 @@ \section{Consuntivo di periodo} \subsubsection{Preventivo a finire} A seguito dei recenti cambiamenti apportati alla pianificazione, nonostante alcune lievi modifiche all'assegnazione oraria dei ruoli per la fase corrente, e tenendo in considerazione il leggero risparmio maturato, da parte del committente, sul costo totale del progetto, è stato deciso di non intervenire sul preventivo. - - \subsection{Incremento I} + + \subsection{Progettazione e codifica del Proof of Concept e funzionalità essenziali} + Vedremo in dettaglio i consuntivi dei successivi quattro incrementi, che compongono la fase stessa. + + \subsubsection{Incremento I} Le ore di lavoro svolte in questo periodo sono volte alla configurazione dei container e dell'immagine \glock{Docker} di Kafka. - \subsubsection{Prospetto orario} + \paragraph{Prospetto orario} Nella tabella in seguito viene illustrato il cambiamento nel numero d'ore di ogni persona, per ogni ruolo ricoperto: \rowcolors{2}{lightest-grayest}{white} @@ -359,11 +362,11 @@ \section{Consuntivo di periodo} \begin{figure}[H] \centering \includegraphics[width=0.8\linewidth]{images/consuntivo/ConsIncr1-1.png} - \caption{Grafico consuntivo ore/ruolo componenti dell'incremento I} - \label{fig:consuntivo grafico suddivione ruoli incremento I} + \caption{Diagramma consuntivo ore/ruolo componenti dell'incremento I} + \label{fig:consuntivo diagramma suddivione ruoli incremento I} \end{figure} - \subsubsection{Prospetto economico} + \paragraph{Prospetto economico} In base al prospetto orario, quello economico sarà il seguente: \rowcolors{2}{white}{lightest-grayest} @@ -402,11 +405,11 @@ \section{Consuntivo di periodo} \begin{figure}[H] \centering \includegraphics[width=0.8\linewidth]{images/consuntivo/ConsIncr1-2.png} - \caption{Grafico percentuale ore/ruolo nell'incremento I} - \label{fig:consuntivo grafico costi ruolo incremento I} + \caption{Diagramma percentuale ore/ruolo nell'incremento I} + \label{fig:consuntivo diagramma costi ruolo incremento I} \end{figure} - \subsubsection{Conclusioni} + \paragraph{Conclusioni} Durante l'incremento I il gruppo ha lavorato mantenendo il numero di ore che erano state preventivate. È stato necessario però svolgere alcuni cambiamenti nella suddivisione oraria per ruolo, in particolare: \begin{itemize} \item \textbf{amministratore:} la configurazione degli strumenti da parte dell'amministratore ha richiesto meno tempo di ciò che era stato preventivato. @@ -416,16 +419,16 @@ \section{Consuntivo di periodo} Alla luce dei cambiamenti effettuati il risultato è che il gruppo ha risparmiato in totale € 27,00 investendo le stesse ore preventivate. \pagebreak - \subsubsection{Preventivo a finire} + \paragraph{Preventivo a finire} L'inizio dello sviluppo sta procedendo in modo positivo, specialmente nel primo periodo di progettazione dell'incremento, che ha richiesto meno risorse di quanto preventivato, segno di una progettazione troppo prudente. \newline È stato scelto di impiegare le risorse rimaste disponibili per potenziare la verifica in modo da garantire una maggiore qualità nel primo incremento che costituisce la base del prodotto. \newline Di conseguenza, anche a seguito dei lievi cambiamenti riportati, è stato deciso di non modificare il preventivo in quanto si è ritenuto che la pianificazione svolta garantisca il raggiungimento degli obiettivi preposti nei tempi stabiliti. - \subsection{Incremento II } + \subsubsection{Incremento II } Le ore di lavoro svolte in questo periodo sono volte alla creazione della struttura base del \glock{gateway} ed alla decisione della struttura JSON dei dati da inviare a Kafka. Verrà inoltre implementato un primo protocollo di comunicazione. - \subsubsection{Prospetto orario} + \paragraph{Prospetto orario} Nella tabella in seguito viene illustrato il cambiamento nel numero d'ore di ogni persona, per ogni ruolo ricoperto: \rowcolors{2}{lightest-grayest}{white} @@ -468,11 +471,11 @@ \section{Consuntivo di periodo} \begin{figure}[H] \centering \includegraphics[width=0.8\linewidth]{images/consuntivo/ConsIncr2-1.png} - \caption{Grafico consuntivo ore/ruolo componenti dell'incremento II} - \label{fig:consuntivo grafico suddivione ruoli incremento II} + \caption{Diagramma consuntivo ore/ruolo componenti dell'incremento II} + \label{fig:consuntivo diagramma suddivione ruoli incremento II} \end{figure} - \subsubsection{Prospetto economico} + \paragraph{Prospetto economico} In base al prospetto orario, quello economico sarà il seguente: \rowcolors{2}{white}{lightest-grayest} @@ -511,11 +514,11 @@ \section{Consuntivo di periodo} \begin{figure}[H] \centering \includegraphics[width=0.8\linewidth]{images/consuntivo/ConsIncr2-2.png} - \caption{Grafico percentuale ore/ruolo nell'incremento II} - \label{fig:consuntivo grafico costi ruolo incremento II} + \caption{Diagramma percentuale ore/ruolo nell'incremento II} + \label{fig:consuntivo diagramma costi ruolo incremento II} \end{figure} - \subsubsection{Conclusioni} + \paragraph{Conclusioni} Durante l'incremento II il gruppo ha lavorato mantenendo il numero di ore che erano state preventivate. È stato necessario però svolgere alcuni cambiamenti nella suddivisione oraria per ruolo, in particolare: \begin{itemize} \item \textbf{analista:} la comprensione dei requisiti in riferimento agli incrementi da svolgere ha richiesto un'ora in meno del suddetto ruolo; @@ -526,16 +529,16 @@ \section{Consuntivo di periodo} Alla luce dei cambiamenti effettuati il risultato è che il gruppo ha risparmiato in totale € 30,00 investendo le stesse ore preventivate. \pagebreak - \subsubsection{Preventivo a finire} + \paragraph{Preventivo a finire} Lo sviluppo sta procedendo in modo positivo, nonostante alcune difficoltà riscontrate nell'utilizzo di nuove tecnologie e strumenti necessari per la realizzazione dell'incremento pianificato. \newline Tuttavia, avendo potuto intensificare la verifica nello scorso incremento, si è ritenuto ragionevole sopportare la sua riduzione in questa fase. In questo modo è stato possibile non intervenire attivamente sul preventivo, potendo, quindi, dedicare più tempo allo studio delle nuove tecnologie utilizzate. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - \subsection{Incremento III } + \subsubsection{Incremento III } Le ore di lavoro svolte in questo periodo sono volte alla progettazione dell'interfaccia delle \glock{API} ed all'implementazione delle operazioni di lettura dei dati tramite le \glock{API}. - \subsubsection{Prospetto orario} + \paragraph{Prospetto orario} Nella tabella in seguito viene illustrato il cambiamento nel numero d'ore di ogni persona, per ogni ruolo ricoperto: \rowcolors{2}{lightest-grayest}{white} @@ -578,11 +581,11 @@ \section{Consuntivo di periodo} \begin{figure}[H] \centering \includegraphics[width=0.8\linewidth]{images/consuntivo/ConsIncr3-1.png} - \caption{Grafico consuntivo ore/ruolo componenti dell'incremento III} - \label{fig:consuntivo grafico suddivione ruoli incremento III} + \caption{Diagramma consuntivo ore/ruolo componenti dell'incremento III} + \label{fig:consuntivo diagramma suddivione ruoli incremento III} \end{figure} - \subsubsection{Prospetto economico} + \paragraph{Prospetto economico} In base al prospetto orario, quello economico sarà il seguente: \rowcolors{2}{white}{lightest-grayest} @@ -593,26 +596,26 @@ \section{Consuntivo di periodo} \hline \endfirsthead \hline - Responsabile & 3 & 90,00 \\ - \hline - \hline - Amministratore & 3 & 60,00\\ - \hline - \hline - Analista & - & -\\ - \hline - \hline - Progettista & 14 (+2) & 308,00 (+44,00)\\ - \hline - \hline - Programmatore & 10 (-1) & 150,00 (-15,00) \\ - \hline - \hline - Verificatore & 12 (-1) & 180,00 (-15,00)\\ - \hline - \textbf{Totale} & 42 & 788,00 (+14,00)\\ - \hline - + Responsabile & 3 & 90,00 \\ + \hline + \hline + Amministratore & 3 & 60,00\\ + \hline + \hline + Analista & - & -\\ + \hline + \hline + Progettista & 14 (+2) & 308,00 (+44,00)\\ + \hline + \hline + Programmatore & 10 (-1) & 150,00 (-15,00) \\ + \hline + \hline + Verificatore & 12 (-1) & 180,00 (-15,00)\\ + \hline + \textbf{Totale} & 42 & 788,00 (+14,00)\\ + \hline + \caption{Tabella contenente il prospetto economico in riferimento al prospetto orario} \end{longtable} \pagebreak @@ -621,11 +624,11 @@ \section{Consuntivo di periodo} \begin{figure}[H] \centering \includegraphics[width=0.8\linewidth]{images/consuntivo/ConsIncr3-2.png} - \caption{Grafico percentuale ore/ruolo nell'incremento III} - \label{fig:consuntivo grafico costi ruolo incremento III} + \caption{Diagramma percentuale ore/ruolo nell'incremento III} + \label{fig:consuntivo diagramma costi ruolo incremento III} \end{figure} - \subsubsection{Conclusioni} + \paragraph{Conclusioni} Durante l'incremento III il gruppo ha lavorato mantenendo il numero di ore che erano state preventivate. È stato necessario però svolgere alcuni cambiamenti nella suddivisione oraria per ruolo, in particolare: \begin{itemize} \item \textbf{progettista:} la progettazione delle API ha richiesto due ore in più del ruolo di progettista per creare la struttura base delle API stesse; @@ -634,8 +637,8 @@ \section{Consuntivo di periodo} \end{itemize} Alla luce dei cambiamenti effettuati il risultato è che il gruppo ha risparmiato in totale € 16,00 investendo le stesse ore preventivate. - \subsubsection{Preventivo a finire} - Lo sviluppo continua a procedere in modo positivo, nonostante alcune difficoltà riscontrate nella progettazione di dettaglio dell'incremento pianificato. Tuttavia, l'intensificazione della progettazione ha favorito la codifica di quanto progettato, permettendo un risparmio di tempo da parte del programmatore. + \paragraph{Preventivo a finire} + Lo sviluppo procede in modo positivo, nonostante alcune difficoltà riscontrate nella progettazione di dettaglio dell'incremento pianificato. Tuttavia, l'intensificazione della progettazione ha favorito la codifica di quanto progettato, permettendo un risparmio di tempo da parte del programmatore. \newline D'altro canto, questo ha anche comportato la riduzione di un'ora del tempo previsto per la verifica, ma, sebbene sia il secondo incremento consecutivo che risente di questo indebolimento della verifica, si ritiene che ciò possa essere recuperato negli incrementi successivi. \newline @@ -643,9 +646,9 @@ \section{Consuntivo di periodo} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - \subsection{Incremento IV} + \subsubsection{Incremento IV} Le ore di lavoro svolte in questo periodo sono volte alla configurazione di base della web app e reperimento dati dalle \glock{API}. - \subsubsection{Prospetto orario} + \paragraph{Prospetto orario} Nella tabella in seguito viene illustrato il cambiamento nel numero d'ore di ogni persona, per ogni ruolo ricoperto: \rowcolors{2}{lightest-grayest}{white} @@ -681,18 +684,17 @@ \section{Consuntivo di periodo} \caption{Tabella consuntiva contenente il prospetto orario per l'incremento IV} \end{longtable} - \pagebreak La tabella può essere riassunta nel seguente istogramma: \begin{figure}[H] \centering \includegraphics[width=0.8\linewidth]{images/consuntivo/ConsIncr4-1.png} - \caption{Grafico consuntivo ore/ruolo componenti dell'incremento IV} - \label{fig:consuntivo grafico suddivisione ruoli incremento IV} + \caption{Diagramma consuntivo ore/ruolo componenti dell'incremento IV} + \label{fig:consuntivo diagramma suddivisione ruoli incremento IV} \end{figure} - \subsubsection{Prospetto economico} + \paragraph{Prospetto economico} In base al prospetto orario, quello economico sarà il seguente: \rowcolors{2}{white}{lightest-grayest} @@ -725,35 +727,130 @@ \section{Consuntivo di periodo} \caption{Tabella contenente il prospetto economico in riferimento al prospetto orario} \end{longtable} - \pagebreak La tabella può essere riassunta nel seguente areogramma: \begin{figure}[H] \centering \includegraphics[width=0.8\linewidth]{images/consuntivo/ConsIncr4-2.png} - \caption{Grafico percentuale ore/ruolo nell'incremento IV} - \label{fig:consuntivo grafico costi ruolo incremento IV} + \caption{Diagramma percentuale ore/ruolo nell'incremento IV} + \label{fig:consuntivo diagramma costi ruolo incremento IV} \end{figure} - \subsubsection*{Conclusioni} - Durante l'incremento IV il gruppo ha lavorato mantenendo il numero di ore che erano state preventivate. È stato necessario però svolgere alcuni cambiamenti nella suddivisione oraria per ruolo, in particolare: + \paragraph{Conclusioni} + Durante l'incremento IV il gruppo ha lavorato mantenendo il numero di ore che erano state preventivate. + È stato necessario però svolgere alcuni cambiamenti nella suddivisione oraria per ruolo, in particolare: \begin{itemize} \item \textbf{progettista:} la progettazione della porzione di web app necessaria all'incremento ha richiesto due ore in meno del ruolo di progettista, grazie all'esperienza maturata precedentemente da parte del progettista; \item \textbf{verificatore:} il risparmio maturato dal progettista ha reso possibile investire due ore in più nel ruolo di verificatore. \end{itemize} Alla luce dei cambiamenti effettuati il risultato è che il gruppo ha risparmiato in totale € 30,00 investendo le stesse ore preventivate. - \subsubsection{Preventivo a finire} + \paragraph{Preventivo a finire} Lo sviluppo procede bene, grazie all'esperienza pregressa del progettista è stato possibile risparmiare del tempo da investire nella verifica, in modo da pareggiare le ore sacrificate in precedenza, senza risentirne a livello di sviluppo dell'incremento. \newline Di conseguenza il preventivo rimane in linea con quanto definito in \S5. - - %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - \subsection{Incremento V } - Le ore di lavoro svolte in questo periodo sono volte all'implementazione della configurazione dinamica di un \glock{gateway}. - \subsubsection{Prospetto orario} - Nella tabella in seguito viene illustrato il cambiamento nel numero d'ore di ogni persona, per ogni ruolo ricoperto: + \pagebreak + + \subsubsection{Fase complessiva} + + \paragraph{Riepilogo prospetto orario} + Durante i primi quattro incrementi la distribuzione oraria consuntiva dei ruoli di ogni componente del gruppo può essere riassunta nella seguente tabella: + + \rowcolors{2}{lightest-grayest}{white} + \begin{longtable}{|l|c|c|c|c|c|c|c|} + \hline + \rowcolor{lighter-grayer} + \textbf{Nome} & \textbf{Re} & \textbf{Am} & \textbf{An} & \textbf{Pg} & \textbf{Pr} & \textbf{Ve} & \textbf{Totale} \\ + \hline + \endfirsthead + + \hline + Giuseppe Vito Bitetti & 3 & 0 & 3 & 4 (+1) & 9 & 4 (-1) & 23\\ + \hline + \hline + Lorenzo Dei Negri & 2 & 0 & 0 & 5 (-2) & 3 & 13 (+2) & 23\\ + \hline + \hline + Nicolò Frison & 6 & 2 (-1) & 0 & 3 (-1) & 7 & 5 (+2) & 23\\ + \hline + \hline + Fouad Mouad & 3 & 6 & 4 (-1) & 4 (+1) & 3 & 3 & 23\\ + \hline + \hline + Mariano Sciacco & 3 & 3 & 0 & 5 & 8 & 4 & 23\\ + \hline + \hline + Alessandro Tommasin & 0 & 3 & 2 & 5 & 7 & 6 & 23\\ + \hline + \hline + Giovanni Vidotto & 0 & 2 & 0 & 12(+1) & 4 & 5 (-1) & 23\\ + \hline + \textbf{Totale} & 17 & 16 (-1) & 9 (-1) & 38 & 41 & 40 (+2) & 161\\ + \hline + \caption{Tabella contenente il prospetto orario consuntivo per i primi quattro incrementi} + \end{longtable} + + La tabella può essere riassunta nel seguente istogramma: + \begin{figure}[H] + \centering + \includegraphics[width=0.8\linewidth]{./images/consuntivo/ConsIncr1-4-1.png} + \caption{Diagramma ore/ruolo componenti nei primi quattro incrementi} + \label{fig:diagramma suddivione ruoli incrementi I-IV} + \end{figure} + \pagebreak + + \paragraph{Riepilogo prospetto economico} + In base al prospetto orario, quello economico sarà il seguente: + + \rowcolors{2}{white}{lightest-grayest} + \begin{longtable}{|l|c|c|} + \hline + \rowcolor{lighter-grayer} + \textbf{Ruolo} & \textbf{Ore} & \textbf{Costo in € } \\ + \hline + \endfirsthead + + \hline + Responsabile & 17 & 510,00\\ + \hline + \hline + Amministratore & 16 (-1) & 320,00 (-20,00)\\ + \hline + \hline + Analista & 9 (-1)& 225,00 (-25,00)\\ + \hline + \hline + Progettista & 38 & 836,00\\ + \hline + \hline + Programmatore & 41 & 615,00\\ + \hline + \hline + Verificatore & 40 (+2) & 600,00\\ + \hline + \textbf{Totale} & 161 & 3106,00 (-15)\\ + \hline + \caption{Tabella contenente il prospetto economico in riferimento al prospetto orario} + \end{longtable} + + La tabella può essere riassunta nel seguente areogramma: + \begin{figure}[H] + \centering + \includegraphics[width=0.8\linewidth]{./images/consuntivo/ConsIncr1-4-2.png} + \caption{Diagramma consuntivo percentuale ore/ruolo dei primi quattro incrementi} + \label{fig:diagramma consuntivo costi ruolo incrementi I-IV} + \end{figure} + \paragraph{Preventivo a finire} + In questa prima fase lo sviluppo del prodotto, sebbene leggermente altalenante per quanto riguarda le ore impiegate per i vari ruoli, è stato in linea con quanto preventivato inizialmente; di conseguenza il preventivo a finire resta invariato. + \pagebreak + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \subsection{Progettazione completa dell'architettura e implementazione delle funzionalità} + Vedremo in dettaglio i consuntivi dei successivi quattro incrementi, che compongono la fase stessa. + \subsubsection{Incremento V } + Le ore di lavoro del periodo sono volte all'implementazione della configurazione dinamica del gateway. + \paragraph{Prospetto orario} + La tabella illustra il cambiamento nel numero d'ore di ogni persona, per ogni ruolo ricoperto: \rowcolors{2}{lightest-grayest}{white} \begin{longtable}{|l|c|c|c|c|c|c|c|} @@ -793,13 +890,13 @@ \section{Consuntivo di periodo} \begin{figure}[H] \centering - \includegraphics[width=0.8\linewidth]{images/consuntivo/ConsIncr5-1.png} - \caption{Grafico consuntivo ore/ruolo componenti dell'incremento V} - \label{fig:consuntivo grafico suddivisione ruoli incremento V} + \includegraphics[width=0.75\linewidth]{images/consuntivo/ConsIncr5-1.png} + \caption{Diagramma consuntivo ore/ruolo componenti dell'incremento V} + \label{fig:consuntivo diagramma suddivisione ruoli incremento V} \end{figure} - \pagebreak - \subsubsection{Prospetto economico} + + \paragraph{Prospetto economico} In base al prospetto orario, quello economico sarà il seguente: \rowcolors{2}{white}{lightest-grayest} @@ -837,13 +934,12 @@ \section{Consuntivo di periodo} \begin{figure}[H] \centering \includegraphics[width=0.8\linewidth]{images/consuntivo/ConsIncr5-2.png} - \caption{Grafico percentuale ore/ruolo nell'incremento V} - \label{fig:consuntivo grafico costi ruolo incremento V} + \caption{Diagramma percentuale ore/ruolo nell'incremento V} + \label{fig:consuntivo diagramma costi ruolo incremento V} \end{figure} \pagebreak - %Conclusioni per la revisione di progettazione - \subsubsection{Conclusioni} + \paragraph{Conclusioni} Durante l'incremento V il gruppo ha lavorato mantenendo il numero di ore che erano state preventivate. È stato necessario però svolgere alcuni cambiamenti nella suddivisione oraria per ruolo, in particolare: \begin{itemize} \item \textbf{responsabile:} il ruolo del responsabile è stato svolto più lentamente di ciò che era stato preventivato, richiedendo un'ora in più, a causa dell'onere di approvazione dei documenti per il rilascio esterno che si è rivelato più impegnativo del previsto; @@ -853,30 +949,111 @@ \section{Consuntivo di periodo} \end{itemize} Alla luce dei cambiamenti effettuati il risultato è che il gruppo ha risparmiato 1,00 € investendo le stesse ore preventivate. - \subsubsection{Preventivo a finire} + \paragraph{Preventivo a finire} Lo sviluppo procede in modo soddisfacente, nonostante le iniziali difficoltà nella progettazione di dettaglio dell'incremento, la qualità del lavoro svolto ha permesso di ridurre le ore di codifica e verifica senza risentirne a livello di sviluppo e qualità dello stesso. \newline Quindi, nonostante i cambiamenti effettuati al piano orario, l'incremento è stato realizzato secondo la pianificazione preventivata, perciò il preventivo rimane in linea con quanto definito in \S5. + \pagebreak - - \subsection{Incremento VI } + \subsubsection{Incremento VI } Le ore di lavoro svolte in questo periodo sono volte all'implementazione dei \glock{database} e per la configurazione della comunicazione dei database con \glock{Kafka}. + \paragraph{Prospetto orario} + Nella tabella in seguito viene illustrato il cambiamento nel numero d'ore di ogni persona, per ogni ruolo ricoperto: + \rowcolors{2}{lightest-grayest}{white} + \begin{longtable}{|l|c|c|c|c|c|c|c|} + \hline + \rowcolor{lighter-grayer} + \textbf{Nome} & \textbf{Re} & \textbf{Am} & \textbf{An} & \textbf{Pg} & \textbf{Pr} & \textbf{Ve} & \textbf{Totale} \\ + \hline + \endfirsthead + + \hline + Giuseppe Vito Bitetti & 0 & 0 & 0 & 2 & 2 & 2 & 6\\ + \hline + \hline + Lorenzo Dei Negri & 0 & 0 & 0 & 0 & 4 & 2 & 6\\ + \hline + \hline + Nicolò Frison & 0 & 3 & 0 & 0 & 3 & 0 & 6\\ + \hline + \hline + Fouad Mouad & 2 & 0 & 0 & 0 & 2 & 2 & 6\\ + \hline + \hline + Mariano Sciacco & 0 & 0 & 0 & 0 & 2 & 4 & 6\\ + \hline + \hline + Alessandro Tommasin & 0 & 0 & 0 & 0 & 2 & 4 & 6\\ + \hline + \hline + Giovanni Vidotto & 0 & 0 & 0 & 4 & 2 & 0 & 6\\ + \hline + \textbf{Totale} & 2 & 3 & 0 & 6 & 17 & 14 & 42\\ + \hline + \caption{Tabella consuntiva contenente il prospetto orario per l'incremento VI} + \end{longtable} + + La tabella può essere riassunta nel seguente istogramma: + + \begin{figure}[H] + \centering + \includegraphics[width=0.75\linewidth]{./images/preventivo/incremento6-1.png} + \caption{Diagramma consuntivo ore/ruolo componenti dell'incremento VI} + \label{fig:consuntivo diagramma suddivisione ruoli incremento VI} + \end{figure} + + + \paragraph{Prospetto economico} + In base al prospetto orario, quello economico sarà il seguente: + \rowcolors{2}{white}{lightest-grayest} + \begin{longtable}{|l|c|c|c|c|c|c|c|} + \hline + \rowcolor{lighter-grayer} + \textbf{Ruolo} & \textbf{Ore} & \textbf{Costo in € } \\ + \hline + \endfirsthead + + \hline + Responsabile & 3 & 90,00\\ + \hline + \hline + Amministratore & 3 & 60,00\\ + \hline + \hline + Analista & 0 & 0,00\\ + \hline + \hline + Progettista & 12 & 264,00\\ + \hline + \hline + Programmatore & 11 & 165,00\\ + \hline + \hline + Verificatore & 13 & 195,00\\ + \hline + \textbf{Totale} & 42 & 774,00\\ + \hline + \caption{Tabella contenente il prospetto economico in riferimento al prospetto orario} + \end{longtable} - \subsubsection{Conclusioni} - In questa fase non c'è stato alcun cambiamento orario rispetto alla suddivisione preventivata. - Durante l'incremento VI il gruppo ha lavorato mantenendo il numero di ore che erano state preventivate. - - \subsubsection{Preventivo a finire} - Lo sviluppo procede bene, le difficoltà riscontrate sono state in linea con quanto preventivato. - Il preventivo rimane in linea con quanto definito in \S5. - \pagebreak + La tabella può essere riassunta nel seguente areogramma: + \begin{figure}[H] + \centering + \includegraphics[width=0.8\linewidth]{./images/preventivo/incremento6-2.png} + \caption{Diagramma percentuale ore/ruolo nell'incremento VI} + \label{fig:consuntivo diagramma costi ruolo incremento VI} + \end{figure} + \pagebreak + \paragraph{Conclusioni} + Durante lo sviluppo dell'incremento il gruppo ha lavorato in modo efficiente e professionale, riuscendo a rispettare il numero di ore preventivate, per ogni ruolo coinvolto. + \paragraph{Preventivo a finire} + Lo sviluppo dell'incremento è stato molto soddisfacente, infatti l'impegno necessario per completarlo è stato in linea con quanto previsto; di conseguenza il preventivo a finire rimane uguale a quello definito in \S5. - - \subsection{Incremento VII} + \subsubsection{Incremento VII} Le ore di lavoro svolte in questo periodo sono volte all'implementazione base del \glock{bot Telegram}, della schermata di login del sito web e della parte privata e pubblica del sito. - \subsubsection{Prospetto orario} + \paragraph{Prospetto orario} Nella tabella in seguito viene illustrato il cambiamento nel numero d'ore di ogni persona, per ogni ruolo ricoperto: \rowcolors{2}{lightest-grayest}{white} @@ -912,18 +1089,17 @@ \section{Consuntivo di periodo} \hline \caption{Tabella consuntiva contenente il prospetto orario per il settimo incremento} \end{longtable} - + \pagebreak La tabella può essere riassunta nel seguente istogramma: \begin{figure}[H] \centering \includegraphics[width=0.8\linewidth]{images/consuntivo/ConsIncr7-1.png} - \caption{Grafico consuntivo ore/ruolo componenti dell'incremento VII} - \label{fig:consuntivo grafico suddivisione ruoli incremento VII} + \caption{Diagramma consuntivo ore/ruolo componenti dell'incremento VII} + \label{fig:consuntivo diagramma suddivisione ruoli incremento VII} \end{figure} - \pagebreak - \subsubsection{Prospetto economico} + \paragraph{Prospetto economico} In base al prospetto orario, quello economico sarà il seguente: \rowcolors{2}{white}{lightest-grayest} @@ -956,17 +1132,18 @@ \section{Consuntivo di periodo} \hline \caption{Tabella contenente il prospetto economico in riferimento al prospetto orario} \end{longtable} + + \pagebreak La tabella può essere riassunta nel seguente areogramma: \begin{figure}[H] \centering \includegraphics[width=0.8\linewidth]{images/consuntivo/ConsIncr7-2.png} - \caption{Grafico percentuale ore/ruolo nell'incremento VII} - \label{fig:consuntivo grafico costi ruolo incremento VII} + \caption{Diagramma percentuale ore/ruolo nell'incremento VII} + \label{fig:consuntivo diagramma costi ruolo incremento VII} \end{figure} - \pagebreak - \subsubsection*{Conclusioni} + \paragraph{Conclusioni} Durante l'incremento VII il gruppo ha lavorato mantenendo il numero di ore che erano state preventivate. È stato necessario però svolgere alcuni cambiamenti nella suddivisione oraria per ruolo, in particolare: \begin{itemize} \item \textbf{progettista:} la progettazione della porzione di web app necessaria all'incremento ha richiesto un'ora in meno del ruolo di progettista, viste le minori difficoltà riscontrate rispetto a quelle previste; @@ -974,15 +1151,16 @@ \section{Consuntivo di periodo} \end{itemize} Alla luce dei cambiamenti effettuati il risultato è che il gruppo ha risparmiato in totale € 7,00 investendo le stesso numero di ore preventivate. - \subsubsection{Preventivo a finire} - Lo sviluppo procede bene e, nonostante alcune difficoltà iniziali, le tempistiche per l'incremento sono state rispettate. + \paragraph{Preventivo a finire} + Lo sviluppo procede bene e, nonostante alcune difficoltà iniziali, le tempistiche per l'incremento sono state rispettate, al netto della leggera ridistribuzione oraria citata in precedenza. \newline - Di conseguenza il preventivo rimane in linea con quanto definito in \S5. - + È stato necessario impiegare più tempo per lo studio del bot, viste alcune difficoltà iniziali nello sviluppo dello stesso, con il linguaggio Node.JS, dal momento che, la documentazione a riguardo, non è stata di facile comprensione. + \newline + Tuttavia, per quanto una problematica riguardante la codifica sia ad alta priorità, e richieda un pronto intervento, la variazione oraria non ha causato un costo supplementare; di conseguenza non si ritiene necessario apportare cambiamenti al preventivo descritto in \S5. - \subsection{Incremento VIII} + \subsubsection{Incremento VIII} Le ore di lavoro svolte in questo periodo sono volte all'implementazione dei grafici per la web app e delle funzioni utili per la generazione dei grafici in tempo reale. - \subsubsection{Prospetto orario} + \paragraph{Prospetto orario} Nella tabella in seguito viene illustrato il cambiamento nel numero d'ore di ogni persona, per ogni ruolo ricoperto: \rowcolors{2}{lightest-grayest}{white} @@ -1024,11 +1202,11 @@ \section{Consuntivo di periodo} \begin{figure}[H] \centering \includegraphics[width=0.8\linewidth]{images/consuntivo/ConsIncr8-1.png} - \caption{Grafico consuntivo ore/ruolo componenti dell'incremento VIII} - \label{fig:consuntivo grafico suddivisione ruoli incremento VIII} + \caption{Diagramma consuntivo ore/ruolo componenti dell'incremento VIII} + \label{fig:consuntivo diagramma suddivisione ruoli incremento VIII} \end{figure} - \subsubsection{Prospetto economico} + \paragraph{Prospetto economico} In base al prospetto orario, quello economico sarà il seguente: \rowcolors{2}{white}{lightest-grayest} @@ -1046,7 +1224,7 @@ \section{Consuntivo di periodo} Amministratore & 2 & 40,00\\ \hline \hline - Analista & 0 & 0,00\\ + Analista & - & -\\ \hline \hline Progettista & 13 (-1) & 286,00 (-22,00)\\ @@ -1061,34 +1239,137 @@ \section{Consuntivo di periodo} \hline \caption{Tabella contenente il prospetto economico in riferimento al prospetto orario} \end{longtable} - \pagebreak + La tabella può essere riassunta nel seguente areogramma: \begin{figure}[H] \centering \includegraphics[width=0.8\linewidth]{images/consuntivo/ConsIncr8-2.png} - \caption{Grafico percentuale ore/ruolo nell'incremento VIII} - \label{fig:consuntivo grafico costi ruolo incremento VIII} + \caption{Diagramma percentuale ore/ruolo nell'incremento VIII} + \label{fig:consuntivo diagramma costi ruolo incremento VIII} \end{figure} - \subsubsection*{Conclusioni} + \pagebreak + + \paragraph{Conclusioni} Durante l'incremento VIII il gruppo ha lavorato mantenendo il numero di ore che erano state preventivate. È stato necessario però svolgere alcuni cambiamenti nella suddivisione oraria per ruolo, in particolare: \begin{itemize} - \item \textbf{progettista:} si è usufruito di un'ora in meno per il ruolo, vista la velocità con la quale la fase di progettazione delle componenti è terminata; - \item \textbf{programmatore:} lo sviluppo per la generazione dei grafici in tempo reale ha richiesto più ore del previsto dal momento che, la documentazione a riguardo, non è stata di facile comprensione. + \item \textbf{progettista:} si è usufruito di un'ora in meno per il ruolo, vista la velocità con la quale l'attività di progettazione delle componenti è terminata; + \item \textbf{programmatore:} lo sviluppo per la generazione dei grafici in tempo reale ha richiesto più ore del previsto, dal momento che la documentazione a riguardo non è stata di facile comprensione. \end{itemize} Alla luce dei cambiamenti effettuati il risultato è che il gruppo ha risparmiato in totale € 7,00 investendo le stesso numero di ore preventivate. - \subsubsection{Preventivo a finire} - Lo sviluppo procede secondo quanto preventivato e, nonostante alcune difficoltà riscontrate durante la attività di codifica, le tempistiche per l'incremento sono state rispettate. Una volta terminato il processo di codifica la maggior parte delle ore, per il ruolo del verificatore, sono state investite nel controllo di tutto il codice sviluppato fino a questo punto. + \paragraph{Preventivo a finire} + Lo sviluppo procede secondo quanto preventivato e, nonostante alcune difficoltà riscontrate durante la attività di codifica, le tempistiche per l'incremento sono state rispettate. + \newline + Una volta terminata l'attività di codifica, la maggior parte delle ore per il ruolo del verificatore sono state investite nel controllo di tutto il codice sviluppato fino a questo punto, riuscendo a garantire quindi una maggiore qualità del prodotto. Il gruppo si ritiene soddisfatto di quanto fatto finora. \newline - Nel complesso il preventivo rimane in linea con quanto definito in \S5. + Nel complesso, sebbene si sia verificata una seconda problematica riguardante la codifica, è stato ritenuto necessario intervenire sul preventivo a finire; infatti in questo incremento è stata trattata una componente differente rispetto al precedente ed il bilancio risulta essere, ancora una volta, positivo. + + \subsubsection{Fase complessiva} + \paragraph{Riepilogo prospetto orario} + Dal quinto all'ottavo incremento la distribuzione oraria consuntiva dei ruoli di ogni componente del gruppo può essere riassunta nella seguente tabella: + \rowcolors{2}{lightest-grayest}{white} + \begin{longtable}{|l|c|c|c|c|c|c|c|} + \hline + \rowcolor{lighter-grayer} + \textbf{Nome} & \textbf{Re} & \textbf{Am} & \textbf{An} & \textbf{Pg} & \textbf{Pr} & \textbf{Ve} & \textbf{Totale} \\ + \hline + \endfirsthead + + \hline + Giuseppe Vito Bitetti & 2 & 2 & 2 & 4 & 6 & 8 & 24\\ + \hline + \hline + Lorenzo Dei Negri & 2 & 0 & 0 & 6 & 12 & 4 & 24\\ + \hline + \hline + Nicolò Frison & 2 & 3 & 0 & 5 & 5 & 9 & 24\\ + \hline + \hline + Fouad Mouad & 5 (+1) & 0 & 0 & 4 & 7 (-1) & 8 & 24\\ + \hline + \hline + Mariano Sciacco & 0 & 0 & 0 & 3 (+1) & 12 (+1) & 9 (-2) & 24\\ + \hline + \hline + Alessandro Tommasin & 0 & 2 & 0 & 8 (-2) & 7 (+2) & 7 & 24\\ + \hline + \hline + Giovanni Vidotto & 0 & 4 & 0 & 6 (+1) & 11 (-1) & 2 & 24\\ + \hline + \textbf{Totale} & 11 (+1) & 11 & 2 & 37 & 62 (+3) & 45 (-4) & 168\\ + \hline + \caption{Tabella contenente il prospetto orario consuntivo dal quinto all'ottavo incremento} + \end{longtable} - \subsection{Incremento IX} + La tabella può essere riassunta nel seguente istogramma: + \begin{figure}[H] + \centering + \includegraphics[width=0.8\linewidth]{./images/consuntivo/ConsIncr5-8-1.png} + \caption{Diagramma ore/ruolo componenti dal quinto all'ottavo incremento} + \label{fig:diagramma suddivione ruoli incrementi V-VIII} + \end{figure} + + \paragraph{Riepilogo prospetto economico} + In base al prospetto orario, quello economico sarà il seguente: + + \rowcolors{2}{white}{lightest-grayest} + \begin{longtable}{|l|c|c|} + \hline + \rowcolor{lighter-grayer} + \textbf{Ruolo} & \textbf{Ore} & \textbf{Costo in € } \\ + \hline + \endfirsthead + + \hline + Responsabile & 11 (+1) & 330,00 (+30,00)\\ + \hline + \hline + Amministratore & 11 & 220,00\\ + \hline + \hline + Analista & 2 & 50,00\\ + \hline + \hline + Progettista & 37 & 814,00\\ + \hline + \hline + Programmatore & 62 (+3) & 885,00 (+45,00)\\ + \hline + \hline + Verificatore & 45 (-4) & 675,00 (-60,00)\\ + \hline + \textbf{Totale} & 168 & 3019,00 (+15,00)\\ + \hline + \caption{Tabella contenente il prospetto economico in riferimento al prospetto orario} + \end{longtable} + + \pagebreak + + La tabella può essere riassunta nel seguente areogramma: + \begin{figure}[H] + \centering + \includegraphics[width=0.8\linewidth]{./images/consuntivo/ConsIncr5-8-2.png} + \caption{Diagramma consuntivo percentuale ore/ruolo dal quinto all'ottavo incremento} + \label{fig:diagramma consuntivo costi ruolo incrementi V-VIII} + \end{figure} + + \paragraph{Preventivo a finire} + In questa prima fase, lo sviluppo del prodotto, sebbene leggermente altalenante per quanto riguarda le ore impiegate per i vari ruoli, è stato in linea con quanto preventivato inizialmente; di conseguenza il preventivo a finire resta invariato. + \newline + Infatti il gruppo è riuscito a realizzare tutte le funzionalità che aveva pianificato di implementare tramite gli incrementi e, grazie all'esperienza acquisita, confida di riuscire a recuperare la spesa di € 15,00, richiesta per consentire la variazione oraria necessaria, nei vari incrementi. + + \subsection{Completamento dell'implementazione e raffinamento delle funzionalità} + I successivi quattro incrementi, che vedremo in dettaglio, comporranno la fase stessa. + + \pagebreak + + \subsubsection{Incremento IX} Le ore di lavoro svolte in questo periodo sono volte all'implementazione della parte utente per la web app. - \subsubsection{Prospetto orario} + \paragraph{Prospetto orario} Nella tabella in seguito viene illustrato il cambiamento nel numero d'ore di ogni persona, per ogni ruolo ricoperto: \rowcolors{2}{lightest-grayest}{white} @@ -1122,7 +1403,7 @@ \section{Consuntivo di periodo} \hline \textbf{Totale} & 4 & 2 & 0 & 11 & 15 (-3) & 10 (+3) & 42\\ \hline - \caption{Tabella consuntiva contenente il prospetto orario per il nono incremento} + \caption{Tabella consuntiva contenente il prospetto orario per il nono incremento} \end{longtable} La tabella può essere riassunta nel seguente istogramma: @@ -1130,11 +1411,12 @@ \section{Consuntivo di periodo} \begin{figure}[H] \centering \includegraphics[width=0.8\linewidth]{images/consuntivo/ConsIncr9-1.png} - \caption{Grafico consuntivo ore/ruolo componenti dell'incremento IX} - \label{fig:consuntivo grafico suddivisione ruoli incremento IXI} + \caption{Diagramma consuntivo ore/ruolo componenti dell'incremento IX} + \label{fig:consuntivo diagramma suddivisione ruoli incremento IX} \end{figure} - \subsubsection{Prospetto economico} + + \paragraph{Prospetto economico} In base al prospetto orario, quello economico sarà il seguente: \rowcolors{2}{white}{lightest-grayest} @@ -1172,40 +1454,228 @@ \section{Consuntivo di periodo} \begin{figure}[H] \centering \includegraphics[width=0.8\linewidth]{images/consuntivo/ConsIncr9-2.png} - \caption{Grafico percentuale ore/ruolo nell'incremento IX} - \label{fig:consuntivo grafico costi ruolo incremento IX} + \caption{Diagramma percentuale ore/ruolo nell'incremento IX} + \label{fig:consuntivo diagramma costi ruolo incremento IX} \end{figure} \pagebreak - - \subsubsection*{Conclusioni} + \paragraph{Conclusioni} Durante l'incremento IX il gruppo ha lavorato mantenendo il numero di ore che erano state preventivate. È stato necessario però svolgere alcuni cambiamenti nella suddivisione oraria per ruolo, in particolare: \begin{itemize} - \item \textbf{programmatore:} lo sviluppo della parte utente per la web app ha causato meno imprevisti rispetto a quelli preventivati e, alla luce di ciò, son state guadagnate tre ore in fase di codifica; + \item \textbf{programmatore:} lo sviluppo della parte utente per la web app ha causato meno imprevisti rispetto a quelli preventivati e, alla luce di ciò, son state guadagnate tre ore che è stato possibile investire in fase di verifica; \item \textbf{verificatore:} il risparmio verificatosi nel ruolo del programmatore, ha reso possibile investire tre ore in più nel ruolo di verificatore. \end{itemize} Nonostante i cambiamenti effettuati il preventivo è rimasto invariato, investendo le stesso numero di ore che sono state preventivate. - \subsubsection{Preventivo a finire} - Lo sviluppo procede perfettamente e, grazie alle ore risparmiate nella fase di programmazione, è stato possibile investire più risorse temporali per l'attività di verifica, in modo da equilibrare le ore spese nell'incremento per ogni componente del gruppo. + \paragraph{Preventivo a finire} + Lo sviluppo procede in modo molto soddisfacente e, grazie alle ore risparmiate nella fase di programmazione, è stato possibile investire più risorse temporali per l'attività di verifica, nonostante fossero già state maggiorate nell'incremento precedente, in modo da equilibrare le ore spese per ogni componente del gruppo. \newline - Di conseguenza il preventivo rimane in linea con quanto definito in \S5. + Come previsto al termine dell'incremento precedente, infatti, l'esperienza e le capacità acquisite dai componenti del gruppo ha permesso di risparmiare delle ore in codifica; queste ore sono state preventivamente impiegate nella verifica del software, in modo da assicurarne la qualità. + \newline + Nonostante la ridistribuzione oraria, il gruppo non ha accusato ulteriori spese rispetto a quelle preventivate, di conseguenza il preventivo a finire rimane in linea con quanto definito in \S5. + \pagebreak - \subsection{Incremento X} + \subsubsection{Incremento X} Le ore di lavoro svolte in questo periodo sono volte all'implementazione della moderazione per gli enti nella web app. - \subsubsection{Conclusioni} + \paragraph{Prospetto orario} + Nella tabella in seguito viene illustrato il cambiamento nel numero d'ore di ogni persona, per ogni ruolo ricoperto: + + \rowcolors{2}{lightest-grayest}{white} + \begin{longtable}{|l|c|c|c|c|c|c|c|} + \hline + \rowcolor{lighter-grayer} + \textbf{Nome} & \textbf{Re} & \textbf{Am} & \textbf{An} & \textbf{Pg} & \textbf{Pr} & \textbf{Ve} & \textbf{Totale} \\ + \hline + \endfirsthead + + \hline + Giuseppe Vito Bitetti & 0 & 0 & 0 & 3 & 0 & 3 & 6\\ + \hline + \hline + Lorenzo Dei Negri & 0 & 2 & 0 & 4 & 0 & 0 & 6\\ + \hline + \hline + Nicolò Frison & 0 & 0 & 0 & 3 & 0 & 3 & 6\\ + \hline + \hline + Fouad Mouad & 0 & 0 & 0 & 0 & 4 & 2 & 6\\ + \hline + \hline + Mariano Sciacco & 0 & 0 & 0 & 2 & 0 & 4 & 6\\ + \hline + \hline + Alessandro Tommasin & 2 & 0 & 0 & 2 & 0 & 2 & 6\\ + \hline + \hline + Giovanni Vidotto & 0 & 0 & 0 & 2 & 2 & 2 & 6\\ + \hline + \textbf{Totale} & 2 & 2 & 0 & 16 & 6 & 16 & 42\\ + \hline + \caption{Tabella consuntiva contenente il prospetto orario per il decimo incremento} + \end{longtable} + \pagebreak + La tabella può essere riassunta nel seguente istogramma: + \begin{figure}[H] + \centering + \includegraphics[width=0.8\linewidth]{./images/preventivo/incremento10-1.png} + \caption{Diagramma consuntivo ore/ruolo componenti dell'incremento X} + \label{fig:consuntivo diagramma suddivione ruoli incremento X} + \end{figure} + + \paragraph{Prospetto economico} + In base al prospetto orario, quello economico sarà il seguente: + + \rowcolors{2}{white}{lightest-grayest} + \begin{longtable}{|l|c|c|c|c|c|c|c|} + \hline + \rowcolor{lighter-grayer} + \textbf{Ruolo} & \textbf{Ore} & \textbf{Costo in € } \\ + \hline + \endfirsthead + + \hline + Responsabile & 2 & 60,00\\ + \hline + \hline + Amministratore & 2 & 40,00\\ + \hline + \hline + Analista & 0 & 0,00\\ + \hline + \hline + Progettista & 16 & 352,00\\ + \hline + \hline + Programmatore & 6 & 90,00\\ + \hline + \hline + Verificatore & 16 & 240,00\\ + \hline + \textbf{Totale} & 42 & 782,00\\ + \hline + \caption{Tabella contenente il prospetto economico in riferimento al prospetto orario} + \end{longtable} + \pagebreak + La tabella può essere riassunta nel seguente areogramma: + \begin{figure}[H] + \centering + \includegraphics[width=0.8\linewidth]{./images/preventivo/incremento10-2.png} + \caption{Diagramma percentuale ore/ruolo nell'ncremento X} + \label{fig:consuntivo diagramma costi ruolo incremento X} + \end{figure} + + \paragraph{Conclusioni} In questa fase non c'è stato alcun cambiamento orario rispetto alla suddivisione preventivata. - Durante l'incremento X il gruppo ha lavorato mantenendo il numero di ore che erano state preventivate. + Durante l'incremento il gruppo ha lavorato mantenendo il numero di ore che erano state preventivate. + + \paragraph{Preventivo a finire} + Lo sviluppo procede bene, le difficoltà riscontrate si sono rivelate in linea con quanto preventivato dal gruppo; infatti i membri avevano correttamente intuito la complessità degli ultimi incrementi, riuscendo quindi ad assegnare il giusto numero di ore ai diversi ruoli. + \newline + Considerando la tendenza positiva sperimentata fino a questo momento, il gruppo resta fiducioso per i prossimi due incrementi, nonostante siano più corposi e necessitino maggiori risorse temporali; di conseguenza il preventivo rimane in linea con quanto definito in \S5. + \pagebreak + \subsubsection{Fase complessiva} + + \paragraph{Riepilogo prospetto orario} + Ad ora sono stati svolti solo i primi due incrementi e la distribuzione oraria consuntiva dei ruoli di ogni componente del gruppo può essere riassunta nella seguente tabella: + + \rowcolors{2}{lightest-grayest}{white} + \begin{longtable}{|l|c|c|c|c|c|c|c|} + \hline + \rowcolor{lighter-grayer} + \textbf{Nome} & \textbf{Re} & \textbf{Am} & \textbf{An} & \textbf{Pg} & \textbf{Pr} & \textbf{Ve} & \textbf{Totale} \\ + \hline + \endfirsthead + + \hline + Giuseppe Vito Bitetti & 0 & 0 & 0 & 3 & 4 & 5 & 12\\ + \hline + \hline + Lorenzo Dei Negri & 0 & 2 & 0 & 6 & 0 & 4 & 12\\ + \hline + \hline + Nicolò Frison & 0 & 2 & 0 & 3 & 3 & 4 & 12\\ + \hline + \hline + Fouad Mouad & 0 & 0 & 0 & 5 & 4 (-1) & 3 (+1) & 12\\ + \hline + \hline + Mariano Sciacco & 0 & 0 & 0 & 4 & 2 (-2) & 6 (+2) & 12\\ + \hline + \hline + Alessandro Tommasin & 2 & 0 & 0 & 4 & 4 & 2 & 12\\ + \hline + \hline + Giovanni Vidotto & 4 & 0 & 0 & 2 & 4 & 2 & 12\\ + \hline + \textbf{Totale} & 6 & 4 & 0 & 27 & 21 (-3) & 26 (+3) & 84\\ + \hline + \caption{Tabella contenente il prospetto orario consuntivo per gli ultimi quattro incrementi} + \end{longtable} + + La tabella può essere riassunta nel seguente istogramma: + \begin{figure}[H] + \centering + \includegraphics[width=0.8\linewidth]{./images/consuntivo/ConsIncr9-12-1.png} + \caption{Diagramma ore/ruolo componenti negli ultimi quattro incrementi} + \label{fig:diagramma suddivione ruoli incrementi IX-XII} + \end{figure} + + + \paragraph{Riepilogo prospetto economico} + In base al prospetto orario, quello economico sarà il seguente: + + \rowcolors{2}{white}{lightest-grayest} + \begin{longtable}{|l|c|c|} + \hline + \rowcolor{lighter-grayer} + \textbf{Ruolo} & \textbf{Ore} & \textbf{Costo in € } \\ + \hline + \endfirsthead + + \hline + Responsabile & 6 & 180,00\\ + \hline + \hline + Amministratore & 4 & 80,00\\ + \hline + \hline + Analista & - & -\\ + \hline + \hline + Progettista & 27 & 594,00\\ + \hline + \hline + Programmatore & 21 (-3) & 315,00 (-45,00)\\ + \hline + \hline + Verificatore & 26 (+3) & 390,00 (+45,00)\\ + \hline + \textbf{Totale} & 84 & 1559,00\\ + \hline + \caption{Tabella contenente il prospetto economico in riferimento al prospetto orario} + \end{longtable} + + La tabella può essere riassunta nel seguente areogramma: + \begin{figure}[H] + \centering + \includegraphics[width=0.8\linewidth]{./images/consuntivo/ConsIncr9-12-2.png} + \caption{Diagramma consuntivo percentuale ore/ruolo degli ultimi quattro incrementi} + \label{ fig:diagramma consuntivo costi ruolo incrementi IX-XI I} + \end{figure} + \pagebreak + \paragraph{Preventivo a finire} + Al momento sono stati portati a termine solamente i primi due incrementi pianificati per questa fase, quindi le considerazioni sull'andamento dello sviluppo ed il preventivo a finire sono da considerarsi parziali. + \newline + Durante questi primi due incrementi la velocità di sviluppo e le risorse impiegate sono rimaste in linea con quanto preventivato, segno di una maggior maturità e consapevolezza delle proprie capacità da parte del gruppo. + \newline + I due incrementi rimasti sono quelli più lunghi e corposi, quindi necessiteranno una maggior attenzione da parte di ciascun componente; tuttavia, essendo attualmente in positivo, per quanto riguarda i costi, e contando sull'esperienza acquisita, il gruppo ritiene di poter rispettare il preventivo definito in \S5, senza dover apportare alcuna modifica. + + %=================================================================% - \subsubsection{Preventivo a finire} - Lo sviluppo procede bene, le difficoltà riscontrate sono state in linea con quanto preventivato. - Il preventivo rimane in linea con quanto definito in \S5. - \pagebreak - \subsection{Tabella riassuntiva del preventivo a finire} Di seguito il confronto tra preventivo e consultivo per le varie fasi: - \rowcolors{2}{lightest-grayest}{white} + \rowcolors{2}{white}{lightest-grayest} \begin{longtable}{|l|c|c|c|} \hline \rowcolor{lighter-grayer} diff --git a/esterni/piano_progetto/res/sections/Sez7-Appendice/Appendice.tex b/esterni/piano_progetto/res/sections/Sez7-Appendice/Appendice.tex index 0991000..30dcf4a 100644 --- a/esterni/piano_progetto/res/sections/Sez7-Appendice/Appendice.tex +++ b/esterni/piano_progetto/res/sections/Sez7-Appendice/Appendice.tex @@ -4,7 +4,7 @@ \section{Riscontro dei rischi} \begin{center} - \rowcolors{2}{lightest-grayest}{white} + \rowcolors{2}{white}{lightest-grayest} \begin{longtable}{|c|p{3cm}|p{4cm}|p{4cm}|} \hline \rowcolor{lighter-grayer} @@ -35,6 +35,14 @@ \hline RSK-TBT-1 & Incremento VI & Il computer da lavoro utilizzato per svolgere le attività di progetto di un membro del gruppo ha avuto un malfunzionamento inaspettato che lo ha costretto a cambiare macchina. & Il responsabile è stato contattato immediatamente dell'accaduto e, trattandosi della parte finale dell'incremento, non sono stati necessari particolari riassegnamenti, visto che i task assegnati erano già stati portati a termine. \\ \hline + RSK-TMI-1 & Incremento VII & A seguito della configurazione degli IDE, alcuni programmatori hanno avuto delle difficoltà nell'uso dei programmi di controllo dello stile di codifica (\textit{linter}). & L'amministratore, dopo essere stato avvisato tramite le comunicazioni automatiche su \glock{Slack}, ha provveduto ad aiutare i programmatori che presentavano problemi con l'uso dei \textit{linter}, indicando i comandi da effettuare, come riportato nelle norme di progetto. \\ + \hline + RSK-TMI-2 & Incremento VIII & A seguito del colloquio con il professor Cardin, sono state riscontrate delle dipendenze circolari che rappresentavano un anti-pattern architetturale. & Il responsabile ha messo in moto i progettisti e i programmatori affinché risolvessero tempestivamente il problema, cercando una soluzione per rimuovere le dipendenze riscontrate. \\ + \hline + RSK-OBT-1 & Incremento IX & A causa dell'emergenza COVID-19, non è stato possibile prendere contatti diretti con il proponente per mostrare le nuove specifiche API realizzate fino a quel momento. & Il responsabile ha messo a disposizione del proponente una risorsa interna dei programmatori \footnote{\href{api.docs.redroundrobin.site}{https://api.docs.redroundrobin.site}} che mostra la specifica delle API, aggiornata in tempo reale in base agli aggiornamenti sul repository, permettendo di discutere agevolmente su \glock{Slack} di eventuali cambiamenti. \\ + \hline + RSK-OBT-1 & Incremento X & A causa dell'emergenza COVID-19, non è stato possibile prendere contatti diretti con il proponente per mostrare lo stato dello sviluppo della web app. & Il responsabile ha prontamente inoltrato al proponente i video tutorial del manuale utente per mostrare i risultati ottenuti fino a quel momento. \\ + \hline \caption{Tabella contenente i rischi incontrati} \end{longtable} diff --git a/esterni/piano_qualifica/main.synctex(busy) b/esterni/piano_qualifica/main.synctex(busy) new file mode 100644 index 0000000..2feb3f7 Binary files /dev/null and b/esterni/piano_qualifica/main.synctex(busy) differ diff --git a/esterni/piano_qualifica/main.tex b/esterni/piano_qualifica/main.tex index 853c263..678f95e 100644 --- a/esterni/piano_qualifica/main.tex +++ b/esterni/piano_qualifica/main.tex @@ -12,8 +12,8 @@ % -------------- \newcommand{\docNome}{ PIANO DI QUALIFICA } -\newcommand{\docBaseline}{+b0.10} -\newcommand{\docVersione}{2.0.0\docBaseline} +\newcommand{\docBaseline}{+b0.15} +\newcommand{\docVersione}{1.6.0\docBaseline} \newcommand{\docNomeProgetto}{ ThiReMa Project } \newcommand{\docStatus}{Approvato} \newcommand{\docUso}{Esterno} @@ -32,17 +32,17 @@ \newcommand{\docRedattori}{ Lorenzo Dei Negri \\& Giuseppe Vito Bitetti \\& - Alessandro Tommasin \\& - Giovanni Vidotto + Nicolò Frison \\& + Giovanni Vidotto \\& + Alessandro Tommasin } \newcommand{\docVerificatori}{ - Lorenzo Dei Negri \\& - Fouad Mouad \\& + Mariano Sciacco \\& + Nicolò Frison \\& Giuseppe Vito Bitetti } \newcommand{\docApprovazione}{ - Mariano Sciacco \\& - Fouad Mouad + Alessandro Tommasin } % ----- NON MODIFICARE SOTTO QUESTA RIGA ----- diff --git a/esterni/piano_qualifica/res/images/ACWP_1.png b/esterni/piano_qualifica/res/images/ACWP_1.png index fc8396e..e43956e 100644 Binary files a/esterni/piano_qualifica/res/images/ACWP_1.png and b/esterni/piano_qualifica/res/images/ACWP_1.png differ diff --git a/esterni/piano_qualifica/res/images/ACWP_2.png b/esterni/piano_qualifica/res/images/ACWP_2.png new file mode 100644 index 0000000..3e96c95 Binary files /dev/null and b/esterni/piano_qualifica/res/images/ACWP_2.png differ diff --git a/esterni/piano_qualifica/res/images/BCWP_1.png b/esterni/piano_qualifica/res/images/BCWP_1.png index 6958a7f..96daaca 100644 Binary files a/esterni/piano_qualifica/res/images/BCWP_1.png and b/esterni/piano_qualifica/res/images/BCWP_1.png differ diff --git a/esterni/piano_qualifica/res/images/BCWP_2.png b/esterni/piano_qualifica/res/images/BCWP_2.png new file mode 100644 index 0000000..cc30f5e Binary files /dev/null and b/esterni/piano_qualifica/res/images/BCWP_2.png differ diff --git a/esterni/piano_qualifica/res/images/BCWS_1.png b/esterni/piano_qualifica/res/images/BCWS_1.png index ef3b2a9..aca41e7 100644 Binary files a/esterni/piano_qualifica/res/images/BCWS_1.png and b/esterni/piano_qualifica/res/images/BCWS_1.png differ diff --git a/esterni/piano_qualifica/res/images/BCWS_2.png b/esterni/piano_qualifica/res/images/BCWS_2.png new file mode 100644 index 0000000..ff5d111 Binary files /dev/null and b/esterni/piano_qualifica/res/images/BCWS_2.png differ diff --git a/esterni/piano_qualifica/res/images/CV_1.png b/esterni/piano_qualifica/res/images/CV_1.png index 125244e..1fafee2 100644 Binary files a/esterni/piano_qualifica/res/images/CV_1.png and b/esterni/piano_qualifica/res/images/CV_1.png differ diff --git a/esterni/piano_qualifica/res/images/CV_2.png b/esterni/piano_qualifica/res/images/CV_2.png new file mode 100644 index 0000000..4e9b820 Binary files /dev/null and b/esterni/piano_qualifica/res/images/CV_2.png differ diff --git a/esterni/piano_qualifica/res/images/LLVT.png b/esterni/piano_qualifica/res/images/LLVT.png new file mode 100644 index 0000000..b9b15d6 Binary files /dev/null and b/esterni/piano_qualifica/res/images/LLVT.png differ diff --git a/esterni/piano_qualifica/res/images/QM-PROC-10-NCOM.png b/esterni/piano_qualifica/res/images/QM-PROC-10-NCOM.png new file mode 100644 index 0000000..441aa92 Binary files /dev/null and b/esterni/piano_qualifica/res/images/QM-PROC-10-NCOM.png differ diff --git a/esterni/piano_qualifica/res/images/QM-PROC-11-PMS.png b/esterni/piano_qualifica/res/images/QM-PROC-11-PMS.png new file mode 100644 index 0000000..223f8f3 Binary files /dev/null and b/esterni/piano_qualifica/res/images/QM-PROC-11-PMS.png differ diff --git a/esterni/piano_qualifica/res/images/QM-PROC-14-TCS.png b/esterni/piano_qualifica/res/images/QM-PROC-14-TCS.png new file mode 100644 index 0000000..d7fff4d Binary files /dev/null and b/esterni/piano_qualifica/res/images/QM-PROC-14-TCS.png differ diff --git a/esterni/piano_qualifica/res/images/QM-PROC-7-SMR.png b/esterni/piano_qualifica/res/images/QM-PROC-7-SMR.png new file mode 100644 index 0000000..9d7b51d Binary files /dev/null and b/esterni/piano_qualifica/res/images/QM-PROC-7-SMR.png differ diff --git a/esterni/piano_qualifica/res/images/QM-PROC-8-SDR.png b/esterni/piano_qualifica/res/images/QM-PROC-8-SDR.png new file mode 100644 index 0000000..a743cc6 Binary files /dev/null and b/esterni/piano_qualifica/res/images/QM-PROC-8-SDR.png differ diff --git a/esterni/piano_qualifica/res/images/QM-PROC-9-SOR.png b/esterni/piano_qualifica/res/images/QM-PROC-9-SOR.png new file mode 100644 index 0000000..be74e7f Binary files /dev/null and b/esterni/piano_qualifica/res/images/QM-PROC-9-SOR.png differ diff --git a/esterni/piano_qualifica/res/images/QM-PROD-10-PAP.png b/esterni/piano_qualifica/res/images/QM-PROD-10-PAP.png new file mode 100644 index 0000000..a42b894 Binary files /dev/null and b/esterni/piano_qualifica/res/images/QM-PROD-10-PAP.png differ diff --git a/esterni/piano_qualifica/res/images/QM-PROD-11-COCIM.png b/esterni/piano_qualifica/res/images/QM-PROD-11-COCIM.png new file mode 100644 index 0000000..2f92f79 Binary files /dev/null and b/esterni/piano_qualifica/res/images/QM-PROD-11-COCIM.png differ diff --git a/esterni/piano_qualifica/res/images/QM-PROD-12-CCLA.png b/esterni/piano_qualifica/res/images/QM-PROD-12-CCLA.png new file mode 100644 index 0000000..569fc12 Binary files /dev/null and b/esterni/piano_qualifica/res/images/QM-PROD-12-CCLA.png differ diff --git a/esterni/piano_qualifica/res/images/QM-PROD-13-NCS.png b/esterni/piano_qualifica/res/images/QM-PROD-13-NCS.png new file mode 100644 index 0000000..239cae1 Binary files /dev/null and b/esterni/piano_qualifica/res/images/QM-PROD-13-NCS.png differ diff --git a/esterni/piano_qualifica/res/images/QM-PROD-14-TCS.png b/esterni/piano_qualifica/res/images/QM-PROD-14-TCS.png new file mode 100644 index 0000000..f25386d Binary files /dev/null and b/esterni/piano_qualifica/res/images/QM-PROD-14-TCS.png differ diff --git a/esterni/piano_qualifica/res/images/QM-PROD-15-DUPC.png b/esterni/piano_qualifica/res/images/QM-PROD-15-DUPC.png new file mode 100644 index 0000000..4190c16 Binary files /dev/null and b/esterni/piano_qualifica/res/images/QM-PROD-15-DUPC.png differ diff --git a/esterni/piano_qualifica/res/images/QM-PROD-16-NVSC.png b/esterni/piano_qualifica/res/images/QM-PROD-16-NVSC.png new file mode 100644 index 0000000..f0ca8e8 Binary files /dev/null and b/esterni/piano_qualifica/res/images/QM-PROD-16-NVSC.png differ diff --git a/esterni/piano_qualifica/res/images/QM-PROD-4-NVUL.png b/esterni/piano_qualifica/res/images/QM-PROD-4-NVUL.png new file mode 100644 index 0000000..5e798e3 Binary files /dev/null and b/esterni/piano_qualifica/res/images/QM-PROD-4-NVUL.png differ diff --git a/esterni/piano_qualifica/res/images/QM-PROD-5-TVUL.png b/esterni/piano_qualifica/res/images/QM-PROD-5-TVUL.png new file mode 100644 index 0000000..3062731 Binary files /dev/null and b/esterni/piano_qualifica/res/images/QM-PROD-5-TVUL.png differ diff --git a/esterni/piano_qualifica/res/images/QM-PROD-6-NBUG.png b/esterni/piano_qualifica/res/images/QM-PROD-6-NBUG.png new file mode 100644 index 0000000..843d2a5 Binary files /dev/null and b/esterni/piano_qualifica/res/images/QM-PROD-6-NBUG.png differ diff --git a/esterni/piano_qualifica/res/images/QM-PROD-7-TBUG.png b/esterni/piano_qualifica/res/images/QM-PROD-7-TBUG.png new file mode 100644 index 0000000..2bc27d5 Binary files /dev/null and b/esterni/piano_qualifica/res/images/QM-PROD-7-TBUG.png differ diff --git a/esterni/piano_qualifica/res/images/QM-PROD-8-RM.png b/esterni/piano_qualifica/res/images/QM-PROD-8-RM.png new file mode 100644 index 0000000..02fe186 Binary files /dev/null and b/esterni/piano_qualifica/res/images/QM-PROD-8-RM.png differ diff --git a/esterni/piano_qualifica/res/images/QM-PROD-9-PAA.png b/esterni/piano_qualifica/res/images/QM-PROD-9-PAA.png new file mode 100644 index 0000000..e548e55 Binary files /dev/null and b/esterni/piano_qualifica/res/images/QM-PROD-9-PAA.png differ diff --git a/esterni/piano_qualifica/res/images/QM-TEST-1-COCO.png b/esterni/piano_qualifica/res/images/QM-TEST-1-COCO.png new file mode 100644 index 0000000..4648173 Binary files /dev/null and b/esterni/piano_qualifica/res/images/QM-TEST-1-COCO.png differ diff --git a/esterni/piano_qualifica/res/images/QM-TEST-2-CONCO.png b/esterni/piano_qualifica/res/images/QM-TEST-2-CONCO.png new file mode 100644 index 0000000..4d9c9c7 Binary files /dev/null and b/esterni/piano_qualifica/res/images/QM-TEST-2-CONCO.png differ diff --git a/esterni/piano_qualifica/res/images/QM-TEST-3-LOCO.png b/esterni/piano_qualifica/res/images/QM-TEST-3-LOCO.png new file mode 100644 index 0000000..e91662a Binary files /dev/null and b/esterni/piano_qualifica/res/images/QM-TEST-3-LOCO.png differ diff --git a/esterni/piano_qualifica/res/images/QM-TEST-4-PTCP.png b/esterni/piano_qualifica/res/images/QM-TEST-4-PTCP.png new file mode 100644 index 0000000..53ab666 Binary files /dev/null and b/esterni/piano_qualifica/res/images/QM-TEST-4-PTCP.png differ diff --git a/esterni/piano_qualifica/res/images/QM-TEST-5-FTCP.png b/esterni/piano_qualifica/res/images/QM-TEST-5-FTCP.png new file mode 100644 index 0000000..b5cf624 Binary files /dev/null and b/esterni/piano_qualifica/res/images/QM-TEST-5-FTCP.png differ diff --git a/esterni/piano_qualifica/res/images/QM-TEST-6-BFP.png b/esterni/piano_qualifica/res/images/QM-TEST-6-BFP.png new file mode 100644 index 0000000..f6792a0 Binary files /dev/null and b/esterni/piano_qualifica/res/images/QM-TEST-6-BFP.png differ diff --git a/esterni/piano_qualifica/res/images/QM-TEST-7-CMTC.png b/esterni/piano_qualifica/res/images/QM-TEST-7-CMTC.png new file mode 100644 index 0000000..0b8c35c Binary files /dev/null and b/esterni/piano_qualifica/res/images/QM-TEST-7-CMTC.png differ diff --git a/esterni/piano_qualifica/res/images/RischiNonPreven_4.png b/esterni/piano_qualifica/res/images/RischiNonPreven_4.png new file mode 100644 index 0000000..3191be1 Binary files /dev/null and b/esterni/piano_qualifica/res/images/RischiNonPreven_4.png differ diff --git a/esterni/piano_qualifica/res/images/RischiNonPrevent_3.png b/esterni/piano_qualifica/res/images/RischiNonPrevent_3.png index 0ff54fd..b18be73 100644 Binary files a/esterni/piano_qualifica/res/images/RischiNonPrevent_3.png and b/esterni/piano_qualifica/res/images/RischiNonPrevent_3.png differ diff --git a/esterni/piano_qualifica/res/images/SV_1.png b/esterni/piano_qualifica/res/images/SV_1.png index dfda1bc..7d50a74 100644 Binary files a/esterni/piano_qualifica/res/images/SV_1.png and b/esterni/piano_qualifica/res/images/SV_1.png differ diff --git a/esterni/piano_qualifica/res/images/SV_2.png b/esterni/piano_qualifica/res/images/SV_2.png new file mode 100644 index 0000000..5d899b6 Binary files /dev/null and b/esterni/piano_qualifica/res/images/SV_2.png differ diff --git a/esterni/piano_qualifica/res/images/gulpease_2.PNG b/esterni/piano_qualifica/res/images/gulpease_2.png similarity index 100% rename from esterni/piano_qualifica/res/images/gulpease_2.PNG rename to esterni/piano_qualifica/res/images/gulpease_2.png diff --git a/esterni/piano_qualifica/res/images/gulpease_3.png b/esterni/piano_qualifica/res/images/gulpease_3.png new file mode 100644 index 0000000..05ed88c Binary files /dev/null and b/esterni/piano_qualifica/res/images/gulpease_3.png differ diff --git a/esterni/piano_qualifica/res/images/ortografia_3.png b/esterni/piano_qualifica/res/images/ortografia_3.png new file mode 100644 index 0000000..faffbb8 Binary files /dev/null and b/esterni/piano_qualifica/res/images/ortografia_3.png differ diff --git a/esterni/piano_qualifica/res/registro.tex b/esterni/piano_qualifica/res/registro.tex index 1e6ce18..d715c4a 100644 --- a/esterni/piano_qualifica/res/registro.tex +++ b/esterni/piano_qualifica/res/registro.tex @@ -10,21 +10,45 @@ \section*{Registro delle modifiche} \endfirsthead % ----- Modificare da qui ----- - 2.0.0+b0.10 & Approvazione per il rilascio esterno & 2020-03-09 & Fouad Mouad & Responsabile \\ + 1.6.0+b0.15 & Approvazione documento & 2020-04-13 & Alessandro Tommasin & Responsabile \\ \hline + 1.5.2+b0.15 & Aggiornamento e verifica appendice A e B & 2020-04-13 & Lorenzo Dei Negri e Mariano Sciacco & Amministratore e verificatore \\ + \hline + 1.5.1+b0.14 & Aggiornamento e verifica sezione \S4 & 2020-04-12 & Alessandro Tommasin e Giuseppe Vito Bitetti & Responsabile e verificatore \\ + \hline + + 1.5.0+b0.14 & Approvazione documento & 2020-04-06 & Giovanni Vidotto & Responsabile \\ + \hline + 1.4.2+b0.14 & Aggiornamento e verifica appendice A e B & 2020-04-06 & Nicolò Frison e Lorenzo Dei Negri & Amministratore e verificatore \\ + \hline + 1.4.1+b0.13 & Aggiornamento e verifica sezione \S4 & 2020-04-04 & Lorenzo Dei Negri e Mariano Sciacco & Responsabile e verificatore \\ + \hline + + 1.4.0+b0.13 & Approvazione documento & 2020-03-30 & Fouad Mouad & Responsabile \\ + \hline + 1.3.2+b0.13 & Aggiornamento e verifica appendice A e B & 2020-03-30 & Giovanni Vidotto e Nicolò Frison & Amministratore e verificatore \\ + \hline + 1.3.1+b0.12 & Aggiornamento e verifica sezione \S4 & 2020-03-28 & Giuseppe Vito Bitetti e Mariano Sciacco & Responsabile e verificatore \\ + \hline + + 1.3.0+b0.12 & Approvazione documento & 2020-03-23 & Giuseppe Vito Bitetti & Responsabile \\ + \hline + 1.2.2+b0.12 & Aggiornamento e verifica appendice A e B & 2020-03-23 & Giovanni Vidotto e Mariano Sciacco & Amministratore e verificatore \\ + \hline + 1.2.1+b0.11 & Aggiornamento e verifica sezioni \S2 e \S3 & 2020-03-19 & Lorenzo Dei Negri e Giuseppe Vito Bitetti & Responsabile e verificatore \\ + \hline + 1.2.0+b0.9 & Approvazione documento & 2020-03-08 & Mariano Sciacco & Responsabile \\ \hline - 1.1.1+b0.9 & Aggiornamento e verifica appendice A & 2020-03-08 & Lorenzo Dei Negri e Giuseppe Vito Bitetti & Amministratore e verificatore \\ + 1.1.1+b0.9 & Aggiornamento e verifica appendice A & 2020-03-08 & Lorenzo Dei Negri e Giuseppe Vito Bitetti & Amministratore e verificatore \\ \hline 1.1.0+b0.5 & Approvazione documento & 2020-02-05 & Mariano Sciacco & Responsabile \\ \hline - 1.0.2+b0.4 & Aggiornamento e verifica sezioni \S5 e \S6 & 2020-02-02 & Alessandro Tommasin, Giovanni Vidotto e Fouad Mouad & Amministratore e verificatore \\ - \hline - 1.0.1+b0.4 & Aggiornamento e verifica sezione \S2 e \S3 & 2020-02-01 & Giuseppe Vito Bitetti e Lorenzo Dei Negri & Amministratore e verificatore \\ + 1.0.2+b0.4 & Aggiornamento e verifica sezioni \S5 e \S6 & 2020-02-02 & Alessandro Tommasin, Giovanni Vidotto e Fouad Mouad & Amministratore e verificatore \\ \hline - 1.0.0+b0.4 & Approvazione per il rilascio esterno & 2020-01-15 & Alessandro Tommasin & Responsabile \\ + 1.0.1+b0.4 & Aggiornamento e verifica sezione \S2 e \S3 & 2020-02-01 & Giuseppe Vito Bitetti e Lorenzo Dei Negri & Amministratore e verificatore \\ \hline - 0.2.0+b0.4 & Approvazione documento & 2020-01-15 & Alessandro Tommasin & Responsabile \\ + 1.0.0+b0.4 & Approvazione documento & 2020-01-15 & Alessandro Tommasin & Responsabile \\ \hline 0.1.2+b0.3 & Scrittura e verifica sezione \S5 e \S6 & 2020-01-04 & Giovanni Vidotto e Nicolò Frison & Amministratore e verificatore \\ \hline diff --git a/esterni/piano_qualifica/res/sections/Sez1-Introduzione/Introduzione.tex b/esterni/piano_qualifica/res/sections/Sez1-Introduzione/Introduzione.tex index ce4df19..e4b55ae 100644 --- a/esterni/piano_qualifica/res/sections/Sez1-Introduzione/Introduzione.tex +++ b/esterni/piano_qualifica/res/sections/Sez1-Introduzione/Introduzione.tex @@ -9,13 +9,13 @@ \section{Introduzione} \begin{itemize} \item una \textit{D} al pedice per indicare il nome di un particolare documento; \item una \textit{G} al pedice per indicare un termine che sarà - presente nel \dext{Glossario v2.0.0}. + presente nel \dext{Glossario v1.4.0}. \end{itemize} \subsection{Riferimenti} \subsubsection{Normativi} \begin{itemize} - \item \textbf{norme di progetto:} \dext{Norme di Progetto v2.0.0}; + \item \textbf{norme di progetto:} \dext{Norme di Progetto v2.3.0}; \item \textbf{capitolato d'appalto C6 - ThiReMa - Things Relationship Management:}\\ \url{https://www.math.unipd.it/~tullio/IS-1/2019/Progetto/C6.pdf}. \end{itemize} diff --git a/esterni/piano_qualifica/res/sections/Sez2-QualitaDiProdotto/Affidabilita.tex b/esterni/piano_qualifica/res/sections/Sez2-QualitaDiProdotto/Affidabilita.tex index eb07fc0..581fe21 100644 --- a/esterni/piano_qualifica/res/sections/Sez2-QualitaDiProdotto/Affidabilita.tex +++ b/esterni/piano_qualifica/res/sections/Sez2-QualitaDiProdotto/Affidabilita.tex @@ -1,22 +1,23 @@ \subsubsection{QC-3 Affidabilità} -Con il termine affidabilità si intende la capacità del prodotto di mantenere un livello minimo di prestazioni, deciso a propri, in determinate situazioni ed un dato lasso di tempo. +Con il termine affidabilità si intende la capacità del prodotto di mantenere un livello minimo di funzionamento, deciso a priori, in qualsiasi situazione di utilizzo. Quindi, oltre all'affidabilità in senso stretto, vengono considerate anche la correttezza e la tolleranza agli errori. - \paragraph{Metriche} - L'affidabilità del prodotto viene valutata dai seguenti criteri: + \paragraph{Metriche utilizzate} \begin{itemize} - \item densità errori: è una percentuale che indica quanti test sono stati passati a fronte di quelli proposti; - \item complessità dei test di classe: fornisce il numero di test che coinvolgono una classe. + \item QM-PROD-6 Numero di bug rilevati (BUGR); + \item QM-PROD-7 Tempo stimato risoluzione bug (TBUG). \end{itemize} + + \paragraph{Indici di qualità} \begin{center} \rowcolors{2}{lightest-grayest}{white} - \begin{tabular}{|c|c|c|c|} + \begin{tabular}{|c|c|c|} \rowcolor{lighter-grayer} \hline - ID & Nome & Valore ottimale & Valore accettabile \\ + \textbf{ID metrica} & \textbf{Valore preferibile} & \textbf{Valore accettabile} \\ \hline - QM-PROD-2 & Densità errori (DE) & 100\% & 100\% \\ + QM-PROD-6 (BUGR) & \(= 0\) &\(\le 3\) \\ \hline - QM-PROD-3 & Complessità dei test di classe (CTCLA) & NAN & NAN \\ + QM-PROD-7 (TBUG) & \(= 00:00:00\) & \(\le 01:00:00\) \\ \hline \end{tabular} \end{center} diff --git a/esterni/piano_qualifica/res/sections/Sez2-QualitaDiProdotto/Comprensione.tex b/esterni/piano_qualifica/res/sections/Sez2-QualitaDiProdotto/Comprensione.tex index ccf13ab..9b293ca 100644 --- a/esterni/piano_qualifica/res/sections/Sez2-QualitaDiProdotto/Comprensione.tex +++ b/esterni/piano_qualifica/res/sections/Sez2-QualitaDiProdotto/Comprensione.tex @@ -1,23 +1,29 @@ \subsubsection{QC-1 Comprensione} Tutti i documenti devono essere leggibili e comprensibili, queste qualità derivano dalla correttezza lessicografica, grammaticale, e semantica. +\newline +Inoltre, i video sostitutivi del classico manuale utente cartaceo devono essere ragionevolmente corti e sufficientemente chiari nell'illustrare le funzionalità del prodotto, in modo da evitare ambiguità ed esporre tutte e solo le azioni necessarie. - \paragraph{Metriche} - La comprensione dei documenti viene valutata dai seguenti criteri: + \paragraph{Metriche utilizzate} \begin{itemize} - \item QM-PROD-1 \glock{Indice di Gulpease}; - \item QM-PROD-2 Correttezza ortografica. + \item QM-PROD-1 \glock{Indice di Gulpease} (GULP); + \item QM-PROD-2 Correttezza ortografica (CORT); + \item QM-PROD-3 Limite alla lunghezza dei video tutorial (LLVT). \end{itemize} + + \paragraph{Indici di qualità} \begin{center} - \rowcolors{2}{lightest-grayest}{white} - \begin{longtable}{|c|c|c|c|} + \rowcolors{2}{white}{lightest-grayest} + \begin{longtable}{|c|c|c|} \hline \rowcolor{lighter-grayer} - ID & Nome & Valore ottimale & Valore accettabile \\ + \textbf{ID metrica} & \textbf{Valore preferibile} & \textbf{Valore accettabile} \\ \hline \endhead - QM-PROD-1 & \glock{Indice di Gulpease} (GULP) & \(\ge 80\) & \(\ge 60\) \\ + QM-PROD-1 (GULP) & \(\ge 80\) & \(\ge 60\) \\ \hline - QM-PROD-2 & Correttezza ortografica (CORT) & 0 & 0 \\ + QM-PROD-2 (CORT) & \(= 0\) & \(= 0\) \\ + \hline + QM-PROD-3 (LLVT) & \(\le 00:01:00\) & \(\le 00:02:30\) \\ \hline \caption{Indici di qualità per le metriche di comprensione del prodotto} \end{longtable} diff --git a/esterni/piano_qualifica/res/sections/Sez2-QualitaDiProdotto/Efficienza.tex b/esterni/piano_qualifica/res/sections/Sez2-QualitaDiProdotto/Efficienza.tex index c9bde21..8aebcbd 100644 --- a/esterni/piano_qualifica/res/sections/Sez2-QualitaDiProdotto/Efficienza.tex +++ b/esterni/piano_qualifica/res/sections/Sez2-QualitaDiProdotto/Efficienza.tex @@ -1,19 +1,20 @@ \subsubsection{QC-4 Efficienza} Con efficienza si intende la capacità del prodotto di mantenere un livello adeguato di prestazioni in determinate situazioni. - \paragraph{Metriche} - L'efficenza del prodotto viene valutata dal seguente criterio: + \paragraph{Metriche utilizzate} \begin{itemize} - \item risposta media: è una misurazione in ms che indica il tempo medio di risposta per ogni richiesta. + \item QM-PROD-8 Risposta media (RM). \end{itemize} + + \paragraph{Indici di qualità} \begin{center} \rowcolors{2}{lightest-grayest}{white} - \begin{tabular}{|c|c|c|c|} + \begin{tabular}{|c|c|c|} \rowcolor{lighter-grayer} \hline - ID & Nome & Valore ottimale & Valore accettabile \\ + \textbf{ID metrica} & \textbf{Valore preferibile} & \textbf{Valore accettabile} \\ \hline - QM-PROD-4 & Risposta media (RM) & NAN & NAN \\ + QM-PROD-8 (RM) & \(\le 00:00:02.000\) & \(\le 00:00:04.000\) \\ \hline \end{tabular} \end{center} diff --git a/esterni/piano_qualifica/res/sections/Sez2-QualitaDiProdotto/Manutenibilita.tex b/esterni/piano_qualifica/res/sections/Sez2-QualitaDiProdotto/Manutenibilita.tex index dbf0f58..950eab0 100644 --- a/esterni/piano_qualifica/res/sections/Sez2-QualitaDiProdotto/Manutenibilita.tex +++ b/esterni/piano_qualifica/res/sections/Sez2-QualitaDiProdotto/Manutenibilita.tex @@ -1,26 +1,35 @@ \subsubsection{QC-6 Manutenibilità} -Fornisce un indicatore sul livello di semplicità per quanto riguarda la modifica, correzzione ed estendibilità del prodotto software. - \paragraph{Obiettivi} - - \paragraph{Metriche} - La manutenibilità del prodotto viene valutata dai seguenti criteri: +Fornisce un'indicazione sul livello di semplicità del prodotto software, intesa come facilità di modifica, estensione e correzione del codice. + + \paragraph{Metriche utilizzate} \begin{itemize} - \item complessità del codice: consiste nel rapporto tra il numero di linee di commento ed il numero di linee di codice; - \item complessità della classe: si contano il numero dei metodi di una classe per avere una misura della sua complessità; - \item complessità del metodo: si valuta la lunghezza del metodo e il numero di chiamate (dirette) ad altri metodoi da parte di quest'ultimo. + \item QM-PROD-11 Complessità ciclomatica media (COCIM); + \item QM-PROD-12 Complessità della classe (CCLA); + \item QM-PROD-13 Numero di \glock{code smell} rilevati (NCS); + \item QM-PROD-14 Tempo di risoluzione code smell (TCS); + \item QM-PROD-15 Percentuale di duplicazione del codice (DUPC); + \item QM-PROD-16 Numero di violazioni dello standard di codifica (NVSC). \end{itemize} + + \paragraph{Indici di qualità} \begin{center} \rowcolors{2}{lightest-grayest}{white} - \begin{tabular}{|c|c|c|c|} + \begin{tabular}{|c|c|c|} \rowcolor{lighter-grayer} \hline - ID & Nome & Valore ottimale & Valore accettabile \\ + \textbf{ID metrica} & \textbf{Valore preferibile} & \textbf{Valore accettabile} \\ \hline - QM-PROD-7 & Complessità del codice (CCOD) & NAN & NAN \\ + QM-PROD-11 (COCIM) & \(\le 10\) & \(\le 20\) \\ \hline - QM-PROD-8 & Complessità della classe (CCLA) & NAN & NAN \\ + QM-PROD-12 (CCLA) & \(\le 5\) & \(\le 10\) \\ \hline - QM-PROD-9 & Complessità del metodo (CMET) & NAN & NAN \\ + QM-PROD-13 (NCS) & \(\le 25\) & \(\le 50\) \\ + \hline + QM-PROD-14 (TCS) & \(\le 03:00:00\) & \(\le 06:00:00\) \\ + \hline + QM-PROD-15 (DUPC) & \(= 0\) & \(\le 3\)\% \\ + \hline + QM-PROD-16 (NVSC) & \(\le 5\) & \(\le 20\) \\ \hline \end{tabular} \end{center} diff --git a/esterni/piano_qualifica/res/sections/Sez2-QualitaDiProdotto/QualitaDiProdotto.tex b/esterni/piano_qualifica/res/sections/Sez2-QualitaDiProdotto/QualitaDiProdotto.tex index 7902b9f..85c45bb 100644 --- a/esterni/piano_qualifica/res/sections/Sez2-QualitaDiProdotto/QualitaDiProdotto.tex +++ b/esterni/piano_qualifica/res/sections/Sez2-QualitaDiProdotto/QualitaDiProdotto.tex @@ -1,10 +1,37 @@ \section{Qualità di prodotto} - Per garantire e valutare la qualità del prodotto il gruppo ha deciso di fare riferimento allo standard ISO/IEC 9126, il quale definisce i parametri per produrre un prodotto di buona qualità, questi parametri quantificano il grado di raggiungimento di tale caratteristica. Oltre alle qualità presenti nello standard sopra citato il gruppo ha deciso di utilizzare altri parametri per quantificare la qualità della documentazione fornita con il prodotto software. Di seguito sono riportate le qualità che il gruppo ha ritenuto appropriate per quanto riguarda lo stato attuale del progetto. - %\subsection{Qualità del software} - %\input{res/sections/Sez2-QualitaDiProdotto/Funzionabilita} - %\input{res/sections/Sez2-QualitaDiProdotto/Affidabilita} - %\input{res/sections/Sez2-QualitaDiProdotto/Efficienza} - %\input{res/sections/Sez2-QualitaDiProdotto/Usabilita} - %\input{res/sections/Sez2-QualitaDiProdotto/Manutenibilita} - \subsection{Qualità dei documenti} - \input{res/sections/Sez2-QualitaDiProdotto/Comprensione} + +\subsection{Introduzione} + Per garantire e valutare la qualità del prodotto il gruppo ha deciso di fare riferimento allo standard ISO/IEC 9126, il quale definisce i parametri per produrre un prodotto di buona qualità, questi parametri quantificano il grado di raggiungimento di tale caratteristica. + \newline + Oltre alle qualità presenti nello standard sopra citato, il gruppo ha deciso di utilizzare altri parametri per quantificare la qualità della documentazione fornita con il prodotto, oltre al software stesso. + \newline + Di seguito sono riportate le qualità che il gruppo ha ritenuto appropriate per quanto riguarda lo stato attuale del progetto. + +%\subsection{Qualità del software} + %\input{res/sections/Sez2-QualitaDiProdotto/Funzionabilita} + +\subsection{Monitoraggio dei documenti} + Le qualità dei documenti, monitorate con delle metriche precise di qualità, sono le seguenti: + + \begin{itemize} + \item QC-1 Comprensione. + \end{itemize} + + \input{res/sections/Sez2-QualitaDiProdotto/Comprensione} + +\subsection{Monitoraggio del software} + Le qualità del software, monitorate con delle metriche precise di qualità, sono le seguenti: + + \begin{itemize} + \item QP-2 Sicurezza; + \item QP-3 Affidabilità; + \item QP-4 Efficienza; + \item QP-5 Usabilità; + \item QC-6 Manutenibilità. + \end{itemize} + + \input{res/sections/Sez2-QualitaDiProdotto/Sicurezza} + \input{res/sections/Sez2-QualitaDiProdotto/Affidabilita} + \input{res/sections/Sez2-QualitaDiProdotto/Efficienza} + \input{res/sections/Sez2-QualitaDiProdotto/Usabilita} + \input{res/sections/Sez2-QualitaDiProdotto/Manutenibilita} \ No newline at end of file diff --git a/esterni/piano_qualifica/res/sections/Sez2-QualitaDiProdotto/Sicurezza.tex b/esterni/piano_qualifica/res/sections/Sez2-QualitaDiProdotto/Sicurezza.tex new file mode 100644 index 0000000..49d51a4 --- /dev/null +++ b/esterni/piano_qualifica/res/sections/Sez2-QualitaDiProdotto/Sicurezza.tex @@ -0,0 +1,23 @@ +\subsubsection{QC-2 Sicurezza} +Con il termine sicurezza si intende la proprietà del prodotto di essere privo di vulnerabilità all'interno del codice che lo implementa. + + \paragraph{Metriche utilizzate} + \begin{itemize} + \item QM-PROD-4 Numero di vulnerabilità rilevate (NVUL); + \item QM-PROD-5 Tempo di risoluzione vulnerabilità (TVUL). + \end{itemize} + + \paragraph{Indici di qualità} + \begin{center} + \rowcolors{2}{lightest-grayest}{white} + \begin{tabular}{|c|c|c|} + \rowcolor{lighter-grayer} + \hline + \textbf{ID metrica} & \textbf{Valore preferibile} & \textbf{Valore accettabile} \\ + \hline + QM-PROD-4 (NVUL) & \(= 0\) & \(\le 5\) \\ + \hline + QM-PROD-5 (TVUL) & \(= 00:00:00\) & \(\le 01:00:00\) \\ + \hline + \end{tabular} + \end{center} diff --git a/esterni/piano_qualifica/res/sections/Sez2-QualitaDiProdotto/Usabilita.tex b/esterni/piano_qualifica/res/sections/Sez2-QualitaDiProdotto/Usabilita.tex index 299bc5b..de9ae7a 100644 --- a/esterni/piano_qualifica/res/sections/Sez2-QualitaDiProdotto/Usabilita.tex +++ b/esterni/piano_qualifica/res/sections/Sez2-QualitaDiProdotto/Usabilita.tex @@ -1,22 +1,23 @@ \subsubsection{QC-5 Usabilità} -L'usabilità definisce la capacità del prodotto di essere appreso ed usato dall'utente in determinate situazioni. +L'usabilità definisce la capacità del prodotto di essere appreso ed usato dall'utente per raggiungere i suoi scopi. - \paragraph{Metriche} - L'usabilità del prodotto viene valutata dai seguenti criteri: + \paragraph{Metriche utilizzate} \begin{itemize} - \item profondità dell'albero delle azioni: quante azioni deve compiere l'utente per arrivare al suo obiettivo; - \item profondità dell'albero delle pagine: quante pagine deve visitare l'utente per arrivare alla pagina obiettivo. + \item QM-PROD-9 Profondità dell'albero delle azioni (PAA); + \item QM-PROD-10 Profondità dell'albero delle pagine (PAP). \end{itemize} + + \paragraph{Indici di qualità} \begin{center} \rowcolors{2}{lightest-grayest}{white} - \begin{tabular}{|c|c|c|c|} + \begin{tabular}{|c|c|c|} \rowcolor{lighter-grayer} \hline - ID & Nome & Valore ottimale & Valore accettabile \\ + \textbf{ID metrica} & \textbf{Valore preferibile} & \textbf{Valore accettabile} \\ \hline - QM-PROD-5 & Profondità dell'albero delle azioni (PAA) & NAN & NAN \\ + QM-PROD-9 (PAA) & \(\le 5\) & \(\le 8\) \\ \hline - QM-PROD-6 & Profondità dell'albero delle pagine (PAP) & NAN & NAN \\ + QM-PROD-10 (PAP) & \(\le 5\) & \(\le 7\) \\ \hline \end{tabular} \end{center} diff --git a/esterni/piano_qualifica/res/sections/Sez3-QualitaDiProcesso/QualitaDiProcesso.tex b/esterni/piano_qualifica/res/sections/Sez3-QualitaDiProcesso/QualitaDiProcesso.tex index ce1c6a7..0d5cec9 100644 --- a/esterni/piano_qualifica/res/sections/Sez3-QualitaDiProcesso/QualitaDiProcesso.tex +++ b/esterni/piano_qualifica/res/sections/Sez3-QualitaDiProcesso/QualitaDiProcesso.tex @@ -2,8 +2,11 @@ \section{Qualità di processo} \subsection{Introduzione} -Nello svolgimento del progetto, i processi fanno uso di criteri di qualità, attraverso i quali è possibile perseguire un miglioramento continuo che porti alla più completa soddisfazione di questi criteri. In questo progetto, si è scelto di fare uso del metodo PDCA e dello standard ISO/IEC 15504 (SPICE). Attraverso \glock{PDCA} e \glock{SPICE}, è possibile garantire uno svolgimento dei processi che tendono, attraverso l'esperienza, a migliorarsi e ad assicurare al cliente l'ottenimento di un prodotto di qualità. -In questa sezione si espongono i livelli di qualità accettabili e ottimali sulla base delle metriche scelte all'interno del documento \dext{Norme di Progetto v2.0.0}. +Nello svolgimento del progetto, i processi fanno uso di criteri di qualità, attraverso i quali è possibile perseguire un miglioramento continuo che porti alla più completa soddisfazione di questi criteri. +\newline +In questo progetto, si è scelto di fare uso del metodo PDCA e dello standard ISO/IEC 15504 (SPICE). Attraverso \glock{PDCA} e \glock{SPICE}, è possibile garantire uno svolgimento dei processi che tendono, attraverso l'esperienza, a migliorarsi e ad assicurare al cliente l'ottenimento di un prodotto di qualità. +\newline +In questa sezione si espongono i livelli di qualità accettabili e ottimali sulla base delle metriche scelte all'interno del documento \dext{Norme di Progetto v2.3.0}. \subsection{Monitoraggio dei processi} @@ -11,25 +14,28 @@ \subsection{Monitoraggio dei processi} \begin{itemize} \item QP-1 Gestione dei processi; - \item QP-2 Gestione dei rischi. - %\item QP-3 Validazione. - %\item QP-4 Verifica. + \item QP-2 Gestione dei rischi; + \item QP-3 Sviluppo; + \item QP-4 Verifica; + \item QP-5 Garanzia della qualità. \end{itemize} - \subsubsection{QP-1. Gestione dei processi} + \subsubsection{QP-1 Gestione dei processi} - Il processo di gestione dei processi si riserva di gestire la copertura delle risorse disponibili e delle attività schedulate all'interno del \dext{Piano di Progetto v2.0.0}. Di seguito vengono esposte le metriche utilizzate, che possono essere visionate all'interno del documento \dext{Norme di Progetto v2.0.0}. + Il processo di gestione dei processi si riserva di gestire la copertura delle risorse disponibili e delle attività schedulate all'interno del \dext{Piano di Progetto v2.5.0}. + \newline + Di seguito vengono esposte le metriche utilizzate, che possono essere visionate all'interno del documento \dext{Norme di Progetto v2.3.0}. \paragraph{Metriche utilizzate} \begin{itemize} - \item QM-PROC-1 Budgeted Cost of Work Scheduled (BCWS); - \item QM-PROC-2 Actual Cost of Work Performed (ACWP); - \item QM-PROC-3 Budgeted Cost of Work Performed (BCWP); - \item QM-PROC-4 Schedule Variance (SV); - \item QM-PROC-5 Cost Variance (CV). + \item QM-PROC-1 Budgeted cost of work scheduled (BCWS); + \item QM-PROC-2 Actual cost of work performed (ACWP); + \item QM-PROC-3 Budgeted cost of work performed (BCWP); + \item QM-PROC-4 Schedule variance (SV); + \item QM-PROC-5 Cost variance (CV). \end{itemize} - + \pagebreak \paragraph{Indici di qualità} \begin{center} @@ -55,16 +61,18 @@ \subsection{Monitoraggio dei processi} \end{longtable} \end{center} - \subsubsection{QP-2. Gestione dei rischi} + \subsubsection{QP-2 Gestione dei rischi} - Il processo di gestione dei rischi monitora la comparsa di nuovi rischi che possono avvenire durante le fasi del progetto. + Il processo di gestione dei rischi monitora la comparsa di nuovi rischi che possono verificarsi durante le fasi del progetto. + \newline Per ogni fase del progetto si eseguirà una relativa analisi retrospettiva dei rischi precedentemente segnalati e, in caso di nuovi rischi, si cercherà di risolverli nel minor tempo possibile. - Di seguito vengono esposte le metriche utilizzate, che possono essere visionate all'interno del documento \dext{Norme di Progetto v2.0.0}. + \newline + Di seguito vengono esposte le metriche utilizzate, che possono essere visionate all'interno del documento \dext{Norme di Progetto v2.3.0}. \paragraph{Metriche utilizzate} \begin{itemize} - \item QM-PROC-6 Unbudgeted Risks (UR). + \item QM-PROC-6 Unbudgeted risks (UR). \end{itemize} \paragraph{Indici di qualità} @@ -83,80 +91,115 @@ \subsection{Monitoraggio dei processi} \caption{Indici di qualità per le metriche di gestione dei rischi} \end{longtable} \end{center} + \newpage + \subsubsection{QP-3 Sviluppo} + + Il processo di sviluppo si prefigge di realizzare il prodotto commissionato, in modo conforme ai requisiti concordati con il committente. + \newline + Di conseguenza è necessario tenere traccia di tutti i requisiti portati a termine fino alla data corrente e dell'eventuale valore aggiunto che possono costituire i requisiti non obbligatori. + \newline + Di seguito vengono esposte le metriche utilizzate, che possono essere visionate all'interno del documento \dext{Norme di Progetto v2.3.0}. + + \paragraph{Metriche utilizzate} -% \subsubsection{QP-3. Validazione} -% -% Il processo di validazione vuole tenere traccia di tutti i requisiti portati a termine fino alla data corrente e dell'eventuale valore aggiunto che possono costituire i requisiti non obbligatori. -% Di seguito vengono esposte le metriche utilizzate, che possono essere visionate all'interno del documento \dext{Norme di Progetto v2.0.0}. -% -% \paragraph{Metriche utilizzate} -% -% \begin{itemize} -% \item QM-PROC-7 Satisfied Mandatory Requirements (SMR); -% \item QM-PROC-8 Satisfied Desirable Requirements (SDR); -% \item QM-PROC-9 Satisfied Optional Requirements (SOR). -% \end{itemize} -% -% -% \paragraph{Indici di Qualità} -% -% \begin{center} -% \rowcolors{2}{white}{lightest-grayest} -% \begin{longtable}{|c|c|c|} -% \hline -% \rowcolor{lighter-grayer} -% \textbf{ID Metrica} & \textbf{Valore Preferibile} & \textbf{Valore Accettabile}\\ -% \hline -% \endfirsthead -% \hline -% QM-PROC-7 (SMR) & \(\geq 100\%\) & \(\geq 100\%\) \\ -% \hline -% QM-PROC-8 (SDR) & \(\geq 50\%\) & \(\geq 15\%\) \\ -% \hline -% QM-PROC-9 (SOR) & \(\geq 15\%\) & \(\geq 0\%\) \\ -% \hline -% \caption{Indici di qualità per le metriche di validazione} -% \end{longtable} -% \end{center} - - %\subsubsection{QP-4. Verifica} - - % Il processo di Verifica del Software pone come obiettivo il controllo dello sviluppo software a livello di codifica. - % Di seguito vengono esposte le metriche utilizzate, che possono essere visionate all'interno del documento \dext{Norme di Progetto v2.0.0}. - - % \paragraph{Metriche utilizzate} - - % \begin{itemize} - %NDR: da usare dopo - % \item QM-PROC-10. Branch Coverage (BCOV); - % \item QM-PROC-11. Condition Coverage (COCOV); - % \item QM-PROC-12. Statement Coverage (SCOV); - % \item QM-TEST-1. Passed Test Cases Percentage (PTCP); - % \item QM-TEST-2. Failed Test Cases Percentage (FTCP); - % \item QM-TEST-3. Bug-Fixing Percentage (BFP); - % \item QM-TEST-4. Test Effectiveness (TE). - % \end{itemize} - - - % \paragraph{Indici di Qualità} - - % \begin{center} - % \rowcolors{2}{white}{lightest-grayest} - % \begin{longtable}{|c|c|c|} - % \hline - % \rowcolor{lighter-grayer} - % \textbf{ID Metrica} & \textbf{Valore Preferibile} & \textbf{Valore Accettabile}\\ - % \hline - % \endfirsthead - % \hline - % QM-PROC-10 (BCOV) & \(\geq 75\%\) & \(\geq 50\%\) \\ \hline - % QM-PROC-11 (COCOV) & \(\geq 50\%\) & \(\geq 25\%\) \\ \hline - % QM-PROC-12 (SCOV) & \(\geq 75\%\) & \(\geq 50\%\) \\ \hline - % QM-TEST-1 (PTCP) & \(\geq 100\%\) & \(\geq 100\%\) \\ \hline - % QM-TEST-2 (FTCP) & \(\geq 0\%\) & \(\geq 0\%\) \\ \hline - % QM-TEST-3 (BFP) & \(\geq 100\%\) & \(\geq 100\%\) \\ \hline - % QM-TEST-4 (TE) & \(\geq 75\%\) & \(\geq 50\%\) \\ \hline - % \hline - % \caption{Indici di qualità per le metriche di verifica} - % \end{longtable} - % \end{center} + \begin{itemize} + \item QM-PROC-7 Satisfied mandatory requirements (SMR); + \item QM-PROC-8 Satisfied desirable requirements (SDR); + \item QM-PROC-9 Satisfied optional requirements (SOR); + \item QM-PROC-10 Numero di commit (NCOM). + \end{itemize} + + + \paragraph{Indici di Qualità} + + \begin{center} + \rowcolors{2}{lightest-grayest}{white} + \begin{longtable}{|c|c|c|} + \hline + \rowcolor{lighter-grayer} + \textbf{ID metrica} & \textbf{Valore preferibile} & \textbf{Valore accettabile}\\ + \hline + \endfirsthead + \hline + QM-PROC-7 (SMR) & \(= 100\%\) & \(= 100\%\) \\ + \hline + QM-PROC-8 (SDR) & \(= 100\%\) & \(\geq 50\%\) \\ + \hline + QM-PROC-9 (SOR) & \(\geq 50\%\) & \(\geq 0\%\) \\ + \hline + QM-PROC-10 (NCOM) \footnote{Questa metrica non prevede dei valori di soglia con cui effettuare un confronto in quanto l'obiettivo è mostrare la tendenza dei valori rilevati} & \(-\) & \(-\) \\ + \hline + \caption{Indici di qualità per le metriche di validazione} + \end{longtable} + \end{center} + \newpage + \subsubsection{QP-4 Verifica} + + Il processo di verifica si pone come obiettivo il controllo dello sviluppo software a livello di codifica. + \newline + Di seguito vengono esposte le metriche utilizzate, che possono essere visionate all'interno del documento \dext{Norme di Progetto v2.3.0}. + + \paragraph{Metriche utilizzate} + + \begin{itemize} + \item QM-TEST-1 Code coverage (COCO); + \item QM-TEST-2 Condition coverage (CONCO); + \item QM-TEST-3 Line coverage (LOCO); + \item QM-TEST-4 Passed test cases percentage (PTCP); + \item QM-TEST-5 Failed test cases percentage (FTCP); + \item QM-TEST-6 Bug-fixing percentage (BFP); + \item QM-TEST-7 Complessità media dei test di classe (CMTC). + \end{itemize} + + + \paragraph{Indici di Qualità} + \begin{center} + \rowcolors{2}{white}{lightest-grayest} + \begin{longtable}{|c|c|c|} + \hline + \rowcolor{lighter-grayer} + \textbf{ID metrica} & \textbf{Valore preferibile} & \textbf{Valore accettabile}\\ + \hline + \endfirsthead + \hline + QM-TEST-1 (COCO) & \(\geq 90\%\) & \(\geq 75\%\) \\ \hline + QM-TEST-2 (CONCO) & \(\geq 90\%\) & \(\geq 75\%\) \\ \hline + QM-TEST-3 (LOCO) & \(\geq 90\%\) & \(\geq 75\%\) \\ \hline + QM-TEST-4 (PTCP) & \(= 100\%\) & \(\geq 90\%\) \\ \hline + QM-TEST-5 (FTCP) & \(= 0\%\) & \(\le 10\%\) \\ \hline + QM-TEST-6 (BFP) & \(= 100\%\) & \(\geq 50\%\) \\ \hline + QM-TEST-7 (CMTC) \footnote{Questa metrica non prevede dei valori di soglia con cui effettuare un confronto in quanto l'obiettivo è mostrare la tendenza dei valori rilevati} & \(-\) & \(-\) \\ \hline + \hline + \caption{Indici di qualità per le metriche di verifica} + \end{longtable} + \end{center} + \newpage + \subsubsection{QP-5 Garanzia della qualità} + + Il processo di garanzia della qualità si pone come obiettivo il controllo del livello di qualità mantenuto dal gruppo durante lo svolgimento del progetto. + \newline + Di seguito vengono esposte le metriche utilizzate, che possono essere visionate all'interno del documento \dext{Norme di Progetto v2.3.0}. + + \paragraph{Metriche utilizzate} + + \begin{itemize} + \item QM-PROC-11 Percentuale delle metriche soddisfatte (PMS). + \end{itemize} + + + \paragraph{Indici di Qualità} + + \begin{center} + \rowcolors{2}{white}{lightest-grayest} + \begin{longtable}{|c|c|c|} + \hline + \rowcolor{lighter-grayer} + \textbf{ID metrica} & \textbf{Valore preferibile} & \textbf{Valore accettabile}\\ + \hline + \endfirsthead + \hline + QM-PROC-11 (PMS) & \(= 100\%\) & \(\geq 75\%\) \\ \hline + \hline + \caption{Indici di qualità per le metriche di garanzia della qualità} + \end{longtable} + \end{center} \ No newline at end of file diff --git a/esterni/piano_qualifica/res/sections/Sez4-Test/Test.tex b/esterni/piano_qualifica/res/sections/Sez4-Test/Test.tex index 1dbc8bc..899fbcd 100644 --- a/esterni/piano_qualifica/res/sections/Sez4-Test/Test.tex +++ b/esterni/piano_qualifica/res/sections/Sez4-Test/Test.tex @@ -1,5 +1,5 @@ \section{Test} - Per la classificazione dei test si fa riferimento alle sezioni verifica e validazione delle \dext{Norme di Progetto v2.0.0}. + Per la classificazione dei test si fa riferimento alle sezioni verifica e validazione delle \dext{Norme di Progetto v2.3.0}. \subsection{Tipologie di test} @@ -15,15 +15,12 @@ \section{Test} \subsection{Test di accettazione} - I test di accettazione sono utilizzati per dimostrare che il prodotto sviluppato soddisfa tutti i requisiti individuati dal capitolato e concordati con il proponente: è alla presenza di questi, infatti, che tali test vengono eseguiti, in sede di collaudo finale del prodotto. - - \subsection{Test di sistema} \begin{center} - \rowcolors{2}{white}{lightest-grayest} + \rowcolors{2}{lightest-grayest}{white} \begin{longtable}{|c|p{10cm}|c|} \hline \rowcolor{lighter-grayer} - \textbf{Codice} & \textbf{Descrizione} & \textbf{Stato} \\ + \textbf{Codice} & \textbf{Test} & \textbf{Stato} \\ \hline \endhead \hline @@ -33,298 +30,2399 @@ \section{Test} \endlastfoot \hline - %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Test di sistema per i requisiti funzionali %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - TSA-F-1 & Si verifichi che un utente possa accedere alle sezioni private del sito inserendo la propria mail e password. + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Test di accettazione per i requisiti funzionali %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + TA-1 & Si verifichi che un utente possa accedere alle sezioni private del sito inserendo la propria mail e password. & NI \\ \hline - TSA-F-1.1 & Si verifichi che un utente possa usufruire dell'autenticazione a due fattori. & NI \\ + TA-2 & Si verifichi che un utente possa usufruire dell'autenticazione a due fattori. & NI \\ \hline - TSA-F-1.2 & Si verifichi che un utente possa ricevere un codice di autenticazione a due fattori tramite Telegram. & NI \\ - %\hline - %TSA-F-1.2.1 & Si verifichi che un utente al quale viene chiesto di inserire un codice di autenticazione a due fattori possa richiederne il rinvio & NI \\ + TA-3 & Si verifichi che un utente possa ricevere un codice di autenticazione a due fattori tramite Telegram. & NI \\ \hline - TSA-F-2 & Si verifichi che un utente autenticato abbia accesso alle sezioni private del sito in base ai suoi permessi & NI \\ + TA-4 & Si verifichi che un utente autenticato abbia accesso alle sezioni private del sito in base ai suoi permessi & NI \\ \hline - TSA-F-3 & Si verifichi che un utente autenticato possa accedere ad una dashboard che mostra: + TA-5 & Si verifichi che un utente autenticato possa accedere ad una dashboard che mostra: \begin{itemize} \item le informazioni dell'utente autenticato; \item i principali contatti di supporto tecnico. \end{itemize} & NI \\ \hline - TSB-F-3.1 & Si verifichi che un utente autenticato possa accedere ad una dashboard che mostra le statistiche generali del sistema. & NI \\ - \hline - TSA-F-4 & Si verifichi che un membro possa visualizzare la lista dei dispositivi autorizzati per il proprio ente. & NI \\ + TA-6 & Si verifichi che un utente autenticato possa accedere ad una dashboard che mostra le statistiche generali del sistema. & NI \\ \hline - TSA-F-5 & Si verifichi che un moderatore ente possa visualizzare la lista dei dispositivi autorizzati per il proprio ente. & NI \\ + TA-7 & Si verifichi che un membro possa visualizzare la lista dei dispositivi autorizzati per il proprio ente. & NI \\ \hline - TSA-F-6 & Si verifichi che un amministratore possa visualizzare la lista completa dei dispositivi censiti nel sistema. & NI \\ + TA-8 & Si verifichi che un moderatore ente possa visualizzare la lista dei dispositivi autorizzati per il proprio ente. & NI \\ \hline - TSA-F-7 & Si verifichi che un utente autenticato possa accedere alla sezione impostazioni del proprio account. & NI \\ + TA-9 & Si verifichi che un amministratore possa visualizzare la lista completa dei dispositivi censiti nel sistema. & NI \\ \hline - TSA-F-8.1 & Si verifichi che un utente autenticato possa modificare la propria password. & NI \\ + TA-10 & Si verifichi che un utente autenticato possa accedere alla sezione impostazioni del proprio account. & NI \\ \hline - TSA-F-8.2 & Si verifichi che un utente autenticato possa modificare la propria email. & NI \\ + TA-11 & Si verifichi che un utente autenticato possa modificare le impostazioni del proprio account. & NI \\ \hline - TSA-F-8.3 & Si verifichi che un utente autenticato possa modificare il proprio username Telegram. & NI \\ + TA-12 & Si verifichi che un utente autenticato possa modificare la propria password. & NI \\ \hline - TSB-F-8.4 & Si verifichi che un utente autenticato possa abilitare l'autenticazione a due fattori tramite Telegram. & NI \\ + TA-13 & Si verifichi che un utente autenticato possa modificare la propria email. & NI \\ \hline - TSB-F-8.5 & Si verifichi che un utente autenticato possa disabilitare l'autenticazione a due fattori tramite Telegram. & NI \\ + TA-14 & Si verifichi che un utente autenticato possa modificare il proprio username Telegram. & NI \\ \hline - TSB-F-8.6 & Si verifichi che un utente autenticato possa modificare la preferenza di notifica di uno specifico alert in base a quelli disponibili. & NI \\ + TA-15 & Si verifichi che un utente autenticato possa abilitare l'autenticazione a due fattori tramite Telegram. & NI \\ \hline - TSA-F-9 & Si verifichi che un membro o un moderatore ente possano visualizzare la lista dei sensori di uno dei dispositivi autorizzati per il proprio ente. & NI \\ + TA-16 & Si verifichi che un utente autenticato possa disabilitare l'autenticazione a due fattori tramite Telegram. & NI \\ \hline - TSA-F-10 & Si verifichi che un amministratore possa visualizzare la lista completa dei sensori di qualunque dispositivo censito nel sistema. & NI \\ + TA-17 & Si verifichi che un utente autenticato possa modificare la preferenza di notifica di uno specifico alert in base a quelli disponibili. & NI \\ \hline - TSA-F-11 & Si verifichi che un membro o un moderatore ente possano visualizzare i dati in tempo reale di un sensore a loro autorizzato. & NI \\ + TA-18 & Si verifichi che un membro o un moderatore ente possano visualizzare la lista dei sensori di uno dei dispositivi autorizzati per il proprio ente. & NI \\ \hline - TSB-F-11.1 & Si verifichi che un membro o un moderatore ente possano visualizzare i dati in tempo reale di un sensore a loro autorizzato sotto forma di grafico. & NI \\ + TA-19 & Si verifichi che un amministratore possa visualizzare la lista completa dei sensori di qualunque dispositivo censito nel sistema. & NI \\ \hline - TSA-F-12 & Si verifichi che un amministratore possa visualizzare i dati in tempo reale di un sensore di uno dei dispositivi censiti nel sistema. & NI \\ + TA-20 & Si verifichi che un membro o un moderatore ente possano visualizzare i dati in tempo reale di un sensore a loro autorizzato. & NI \\ \hline - TSB-F-12.1 & Si verifichi che un amministratore possa visualizzare tramite grafici le informazioni di un sensore. & NI \\ + TA-21 & Si verifichi che un membro o un moderatore ente possano visualizzare i dati in tempo reale di un sensore a loro autorizzato sotto forma di grafico. & NI \\ \hline - TSA-F-13 & Si verifichi che un amministratore possa visualizzare a quali enti è stato assegnato un sensore. & NI \\ + TA-22 & Si verifichi che un amministratore possa visualizzare i dati in tempo reale di un sensore di uno dei dispositivi censiti nel sistema. & NI \\ \hline - TSA-F-14 & Si verifichi che un amministratore possa assegnare un sensore di un qualsiasi dispositivo censito ad un ente. & NI \\ + TA-23 & Si verifichi che un amministratore possa visualizzare tramite grafici le informazioni di un sensore. & NI \\ \hline - TSA-F-15 & Si verifichi che un amministratore possa revocare un sensore di un qualunque dispositivo censito ad un ente. & NI \\ + TA-24 & Si verifichi che un amministratore possa visualizzare a quali enti è stato assegnato un sensore. & NI \\ \hline - TSA-F-16 & Si verifichi che un moderatore ente possa visualizzare i membri appartenenti al proprio ente. & NI \\ + TA-25 & Si verifichi che un amministratore possa assegnare un sensore di un qualsiasi dispositivo censito ad un ente. & NI \\ \hline - TSA-F-17 & Si verifichi che un moderatore ente possa visualizzare le informazioni di un membro appartenente al suo ente. & NI \\ + TA-26 & Si verifichi che un amministratore possa revocare un sensore di un qualunque dispositivo censito ad un ente. & NI \\ \hline - TSB-F-18.1 & Si verifichi che un moderatore ente possa modificare la email di un membro appartenente al suo ente. & NI \\ + TA-27 & Si verifichi che un moderatore ente possa visualizzare i membri appartenenti al proprio ente. & NI \\ \hline - TSB-F-18.2 & Si verifichi che un moderatore ente possa modificare il nome di un membro appartenente al suo ente. & NI \\ + TA-28 & Si verifichi che un moderatore ente possa visualizzare le informazioni di un membro appartenente al suo ente. & NI \\ \hline - TSB-F-18.3 & Si verifichi che un moderatore ente possa modificare il cognome di un membro appartenente al suo ente. & NI \\ + TA-29 & Si verifichi che un moderatore ente possa modificare le informazioni di un membro appartenente al suo ente. & NI \\ \hline - TSA-F-19 & Si verifichi che un moderatore ente possa rimuovere un membro appartenente al suo ente. & NI \\ + TA-30 & Si verifichi che un moderatore ente possa modificare la email di un membro appartenente al suo ente. & NI \\ \hline - TSA-F-20 & Si verifichi che un moderatore ente possa creare un nuovo account per un membro che apparterrà solo al suo ente. & NI \\ + TA-31 & Si verifichi che un moderatore ente possa modificare il nome di un membro appartenente al suo ente. & NI \\ \hline - TSA-F-21 & Si verifichi che un amministratore possa visualizzare la lista completa con tutti gli utenti registrati nel sistema. & NI \\ + TA-32 & Si verifichi che un moderatore ente possa modificare il cognome di un membro appartenente al suo ente. & NI \\ \hline - TSA-F-22 & Si verifichi che un amministratore possa visualizzare le informazioni di uno qualsiasi degli utenti. & NI \\ + TA-33 & Si verifichi che un moderatore ente possa rimuovere un membro appartenente al suo ente. & NI \\ \hline - TSA-F-23 & Si verifichi che un amministratore possa disattivare un account di utente qualunque. & NI \\ + TA-34 & Si verifichi che un moderatore ente possa creare un nuovo account per un membro che apparterrà solo al suo ente. & NI \\ \hline - TSB-F-24.1 & Si verifichi che un amministratore possa modificare la mail di utente qualunque. & NI \\ + TA-35 & Si verifichi che un amministratore possa visualizzare la lista completa con tutti gli utenti registrati nel sistema. & NI \\ \hline - TSB-F-24.2 & Si verifichi che un amministratore possa modificare il nome di utente qualunque. & NI \\ + TA-36 & Si verifichi che un amministratore possa visualizzare le informazioni di uno qualsiasi degli utenti. & NI \\ \hline - TSB-F-24.3 & Si verifichi che un amministratore possa modificare il cognome di utente qualunque. & NI \\ + TA-37 & Si verifichi che un amministratore possa disattivare un account di utente qualunque. & NI \\ \hline - TSB-F-24.4 & Si verifichi che un amministratore possa modificare lo username Telegram di utente qualunque. & NI \\ + TA-38 & Si verifichi che un amministratore possa modificare l'account di un utente qualunque. & NI \\ \hline - TSB-F-24.5 & Si verifichi che un amministratore possa attivare l'autenticazione a due fattori tramite Telegram ad un utente qualunque. & NI \\ + TA-39 & Si verifichi che un amministratore possa modificare la mail di utente qualunque. & NI \\ \hline - TSB-F-24.6 & Si verifichi che un amministratore possa disattivare l'autenticazione a due fattori tramite Telegram ad un utente qualunque. & NI \\ + TA-40 & Si verifichi che un amministratore possa modificare il nome di utente qualunque. & NI \\ \hline - TSA-F-25 & Si verifichi che un amministratore possa riassegnare un membro o un moderatore ente ad un ente differente. & NI \\ + TA-41 & Si verifichi che un amministratore possa modificare il cognome di utente qualunque. & NI \\ \hline - TSA-F-26 & Si verifichi che un amministratore possa resettare la password a un membro o a un moderatore ente. & NI \\ + TA-42 & Si verifichi che un amministratore possa modificare lo username Telegram di utente qualunque. & NI \\ \hline - TSA-F-27 & Si verifichi che un amministratore possa creare un account per nuovo utente. & NI \\ + TA-43 & Si verifichi che un amministratore possa attivare l'autenticazione a due fattori tramite Telegram ad un utente qualunque. & NI \\ \hline - TSA-F-28 & Si verifichi che un moderatore ente possa visualizzare la lista degli alert attivi per il proprio ente. & NI \\ + TA-44 & Si verifichi che un amministratore possa disattivare l'autenticazione a due fattori tramite Telegram ad un utente qualunque. & NI \\ \hline - TSA-F-29 & Si verifichi che un moderatore ente possa aggiungere un alert di un particolare sensore per il suo ente. & NI \\ + TA-45 & Si verifichi che un amministratore possa riassegnare un membro o un moderatore ente ad un ente differente. & NI \\ \hline - TSA-F-30 & Si verifichi che un moderatore ente possa rimuovere uno degli alert attivi per il proprio ente. & NI \\ + TA-46 & Si verifichi che un amministratore possa resettare la password a un membro o a un moderatore ente. & NI \\ \hline - TSA-F-31 & Si verifichi che un amministratore possa visualizzare la lista degli alert attivi per tutti gli enti. & NI \\ + TA-47 & Si verifichi che un amministratore possa creare un account per nuovo utente. & NI \\ \hline - TSA-F-32 & Si verifichi che un amministratore possa rimuovere un alert di un particolare sensore. & NI \\ + TA-48 & Si verifichi che un moderatore ente possa visualizzare la lista degli alert attivi per il proprio ente. & NI \\ \hline - TSA-F-33 & Si verifichi che un membro o un moderatore ente possano ricevere notifiche Telegram sulla base delle soglie impostate negli alert attivi per il proprio ente. & NI \\ + TA-49 & Si verifichi che un moderatore ente possa aggiungere un alert di un particolare sensore per il suo ente. & NI \\ \hline - TSA-F-34 & Si verifichi che un utente autenticato possa effettuare il logout dalla web-application. & NI \\ + TA-50 & Si verifichi che un moderatore ente possa rimuovere uno degli alert attivi per il proprio ente. & NI \\ \hline - TSA-F-35 & Si verifichi che un utente autenticato possa visualizzare le proprie pagine \textit{View}. & NI \\ + TA-51 & Si verifichi che un amministratore possa visualizzare la lista degli alert attivi per tutti gli enti. & NI \\ \hline - TSA-F-36 & Si verifichi che un utente autenticato possa creare delle proprie pagine \textit{View}. & NI \\ + TA-52 & Si verifichi che un amministratore possa rimuovere un alert di un particolare sensore. & NI \\ \hline - TSA-F-37 & Si verifichi che un utente autenticato possa rimuovere le proprie pagine \textit{View}. & NI \\ + TA-53 & Si verifichi che un membro o un moderatore ente possano ricevere notifiche Telegram sulla base delle soglie impostate negli alert attivi per il proprio ente. & NI \\ \hline - TSA-F-38 & Si verifichi che un utente autenticato possa aggiungere grafici in una propria pagina \textit{View}. & NI \\ + TA-54 & Si verifichi che un utente autenticato possa effettuare il logout dalla web-application. & NI \\ \hline - TSA-F-39.1 & Si verifichi che un utente autenticato possa visualizzare almeno una correlazione tra due dati. & NI \\ + TA-55 & Si verifichi che un utente autenticato possa visualizzare le proprie pagine \textit{View}. & NI \\ \hline - TSB-F-39.1 & Si verifichi che un utente autenticato possa visualizzare tre correlazioni tra due dati. & NI \\ + TA-56 & Si verifichi che un utente autenticato possa creare delle proprie pagine \textit{View}. & NI \\ \hline - TSA-F-40 & Si verifichi che un utente autenticato possa eliminare un grafico o correlazione da una propria pagina \textit{View}. & NI \\ + TA-57 & Si verifichi che un utente autenticato possa rimuovere le proprie pagine \textit{View}. & NI \\ \hline - TSC-F-41 & Si verifichi che un moderatore ente possa visualizzare la lista logs degli utenti autorizzati del suo ente. & NI \\ + TA-58 & Si verifichi che un utente autenticato possa aggiungere grafici in una propria pagina \textit{View}. & NI \\ \hline - TSC-F-42 & Si verifichi che un amministratore possa visualizzare la lista logs degli utenti di sistema. & NI \\ + TA-59 & Si verifichi che un utente autenticato possa visualizzare due dati in un grafico in una propria pagina view. & NI \\ \hline - TSA-F-43 & Si verifichi che un moderatore ente possa visualizzare la lista dei dispositivi autorizzati all'invio dei comandi. & NI \\ + TA-60 & Si verifichi che un utente autenticato possa visualizzare almeno una correlazione tra due dati. & NI \\ \hline - TSA-F-44 & Si verifichi che un moderatore ente possa inviare comandi ai singoli dispositivi autorizzati per il proprio ente. & NI \\ + TA-61 & Si verifichi che un utente autenticato possa visualizzare tre correlazioni tra due dati. & NI \\ \hline - TSB-F-44.1 & Si verifichi che l'invio dei comandi ai dispositivi avvenga tramite un bot Telegram. & NI \\ + TA-62 & Si verifichi che un utente autenticato possa eliminare un grafico o correlazione da una propria pagina \textit{View}. & NI \\ \hline - TSA-F-45 & Si verifichi che un amministratore possa visualizzare la configurazione dei dispositivi censiti nel sistema. & NI \\ + TA-63 & Si verifichi che un moderatore ente possa visualizzare la lista logs degli utenti autorizzati del suo ente. & NI \\ \hline - TSA-F-46 & Si verifichi che un amministratore possa censire un nuovo dispositivo. & NI \\ + TA-64 & Si verifichi che un amministratore possa visualizzare la lista logs degli utenti di sistema. & NI \\ \hline - TSA-F-47 & Si verifichi che un amministratore possa decidere quali dati ricevere da un dispositivo. & NI \\ + TA-65 & Si verifichi che un moderatore ente possa visualizzare la lista dei dispositivi autorizzati all'invio dei comandi. & NI \\ \hline - TSA-F-48 & Si verifichi che un amministratore possa decidere con quale frequenza ricevere dati da un dispositivo. & NI \\ + TA-66 & Si verifichi che un moderatore ente possa inviare comandi ai singoli dispositivi autorizzati per il proprio ente. & NI \\ \hline - TSA-F-49 & Si verifichi che un amministratore possa rimuovere un dispositivo censito. & NI \\ + TA-67 & Si verifichi che l'invio dei comandi ai dispositivi avvenga tramite un bot Telegram. & NI \\ \hline - TSA-F-50 & Si verifichi che un amministratore possa modificare la configurazione di un dispositivo già censito. & NI \\ + TA-68 & Si verifichi che un amministratore possa visualizzare la configurazione dei dispositivi censiti nel sistema. & NI \\ \hline - TSA-F-51 & Si verifichi che qualora si ottenga una nuova configurazione del gateway, il sistema esegua la rimozione automatica degli alert attivi di un dispositivo non più presente nella configurazione. & NI \\ + TA-69 & Si verifichi che un amministratore possa censire un nuovo dispositivo. & NI \\ \hline - TSA-F-52 & Si verifichi che il sistema esegua la rimozione automatica dei sensori autorizzati agli enti che non sono più esistenti. & NI \\ + TA-70 & Si verifichi che un amministratore possa decidere quali dati ricevere da un dispositivo. & NI \\ \hline - TSA-F-53 & Si verifichi che il sistema rimuova automaticamente i grafici creati dagli utenti nella pagina \textit{View} qualora venga rimosso un sensore. & NI \\ + TA-71 & Si verifichi che un amministratore possa decidere con quale frequenza ricevere dati da un dispositivo. & NI \\ \hline - TSA-F-54 & Si verifichi che il sistema disattivi automaticamente gli utenti facenti parte di un ente qualora questo venga disabilitato da un amministratore & NI \\ + TA-72 & Si verifichi che un amministratore possa rimuovere un dispositivo censito. & NI \\ \hline - TSA-F-55 & Si verifichi che un amministratore possa creare un nuovo ente. & NI \\ + TA-73 & Si verifichi che un amministratore possa modificare la configurazione di un dispositivo già censito. & NI \\ \hline - TSA-F-56 & Si verifichi che un amministratore possa modificare le informazioni di un ente esistente. & NI \\ + TA-74 & Si verifichi che qualora si ottenga una nuova configurazione del gateway, il sistema esegua la rimozione automatica degli alert attivi di un dispositivo non più presente nella configurazione. & NI \\ \hline - TSA-F-57 & Si verifichi che un amministratore possa disattivare un ente. & NI \\ + TA-75 & Si verifichi che il sistema esegua la rimozione automatica dei sensori autorizzati agli enti che non sono più esistenti. & NI \\ \hline - TSA-F-58 & Si verifichi che un amministratore possa visualizzare gli enti attivi nel sistema. & NI \\ + TA-76 & Si verifichi che il sistema rimuova automaticamente i grafici creati dagli utenti nella pagina \textit{View} qualora venga rimosso un sensore. & NI \\ \hline - TSA-F-59 & Si verifichi che il sistema disattivi automaticamente gli alert attivi di un utente qualora questo venga disattivato. & NI \\ + TA-77 & Si verifichi che il sistema disattivi automaticamente gli utenti facenti parte di un ente qualora questo venga disabilitato da un amministratore & NI \\ \hline - TSA-F-60 & Si verifichi che il sistema non permetta l'accesso ad utenti non amministratori che non fanno parte di un ente. & NI \\ + TA-78 & Si verifichi che un amministratore possa creare un nuovo ente. & NI \\ \hline - TSA-F-61 & Si verifichi che il sistema non permetta l'accesso ad utenti disattivati. & NI \\ + TA-79 & Si verifichi che un amministratore possa modificare le informazioni di un ente esistente. & NI \\ \hline - TSA-F-62 & Si verifichi che il sistema non permetta la notifica degli alert ad utenti disattivati. & NI \\ + TA-80 & Si verifichi che un amministratore possa disattivare un ente. & NI \\ \hline - TSA-F-63 & Si verifichi che il sistema permetta la notifica degli alert in base alle preferenze indicate nelle impostazioni di un utente. & NI \\ + TA-81 & Si verifichi che un amministratore possa visualizzare gli enti attivi nel sistema. & NI \\ \hline - TSA-F-64.1 & Si verifichi che i dati ricevuti dal gateway vengano salvati all'interno di un time series database. & NI \\ + TA-82 & Si verifichi che il sistema disattivi automaticamente gli alert attivi di un utente qualora questo venga disattivato. & NI \\ \hline - TSA-F-64.2 & Si verifichi che i dati utilizzati per gli account degli utenti vengano salvati in un database relazionale. & NI \\ + TA-83 & Si verifichi che il sistema non permetta l'accesso ad utenti non amministratori che non fanno parte di un ente. & NI \\ \hline - TSA-F-65 & Si verifichi che le applicazioni che vogliono utilizzare il sistema si interfaccino con \glock{Kafka} tramite delle \glock{API}. & NI \\ + TA-84 & Si verifichi che il sistema non permetta l'accesso ad utenti disattivati. & NI \\ \hline - TSA-F-66 & Si verifichi che le configurazioni dei \glock{gateway} vengano inviate dagli amministratori attraverso delle API. & NI \\ + TA-85 & Si verifichi che il sistema non permetta la notifica degli alert ad utenti disattivati. & NI \\ \hline - TSA-F-66.1 & Si verifichi che le configurazioni del gateway possano essere sovrascritte. & NI \\ + TA-86 & Si verifichi che il sistema permetta la notifica degli alert in base alle preferenze indicate nelle impostazioni di un utente. & NI \\ \hline - TSA-F-67 & Si verifichi che le \glock{API} si interfaccino con i database per la ricezione ed invio di dati. & NI \\ + TA-87 & Si verifichi che i dati usati nel sistema vengano salvati all'interno di una base di dati. & NI \\ \hline - TSA-F-68 & Si verifichi che la base di dati time series si interfacci con Kafka per la lettura e scrittura dei dati. & NI \\ + TA-88 & Si verifichi che i dati ricevuti dal gateway vengano salvati all'interno di un time series database. & NI \\ \hline - TSA-F-69 & Si verifichi che i \glock{gateway} comunichino con Kafka tramite \glock{topic} utilizzando il modello \textit{Producer-Consumer}. & NI \\ + TA-89 & Si verifichi che i dati utilizzati per gli account degli utenti vengano salvati in un database relazionale. & NI \\ \hline - TSA-F-70 & Si verifichi che i dispositivi comunichino con i \glock{gateway} i dati da inviare. & NI \\ + TA-90 & Si verifichi che le applicazioni che vogliono utilizzare il sistema si interfaccino con \glock{Kafka} tramite delle \glock{API}. & NI \\ \hline - TSA-F-71 & Si verifichi che la web app permetta di accedere a tutte le sue funzionalità da browser nelle modalità desktop e tablet. & NI \\ + TA-91 & Si verifichi che le configurazioni dei \glock{gateway} vengano inviate dagli amministratori attraverso delle API. & NI \\ \hline - TSA-F-71.1 & Si verifichi che la web app permetta di visualizzare grafici e dati da browser nella modalità mobile. & NI \\ + TA-92 & Si verifichi che le configurazioni del gateway possano essere sovrascritte. & NI \\ \hline - TSB-F-71.2 & Si verifichi che la web app permetta di compilare moduli interni da browser nella modalità mobile. & NI \\ + TA-93 & Si verifichi che le \glock{API} si interfaccino con i database per la ricezione ed invio di dati. & NI \\ \hline - TSA-F-72 & Si verifichi che \glock{Kafka} possa comunicare con i database, con i \glock{gateway} e con le \glock{API}. & NI \\ + TA-94 & Si verifichi che i \glock{gateway} comunichino con Kafka tramite \glock{topic} utilizzando il modello \textit{Producer-Consumer}. & NI \\ \hline - TSA-F-73 & Si verifichi che un amministratore possa visualizzare i \glock{gateway} disponibili. & NI \\ + TA-95 & Si verifichi che i dispositivi comunichino con i \glock{gateway} i dati da inviare. & NI \\ \hline - TSA-F-74 & Si verifichi che un amministratore possa visualizzare le informazioni dei \glock{gateway} disponibili. & NI \\ + TA-96 & Si verifichi che la web app permetta di accedere a tutte le sue funzionalità da browser nelle modalità desktop e tablet. & NI \\ \hline - TSA-F-75 & Si verifichi che un amministratore possa creare un nuovo \glock{gateway}. & NI \\ + TA-97 & Si verifichi che la web app permetta di visualizzare grafici e dati da browser nella modalità mobile. & NI \\ \hline - TSA-F-76 & Si verifichi che un amministratore possa modificare i dati di un \glock{gateway}. & NI \\ + TA-98 & Si verifichi che la web app permetta di compilare moduli interni da browser nella modalità mobile. & NI \\ \hline - TSA-F-77 & Si verifichi che un amministratore possa rimuovere un \glock{gateway}. & NI \\ + TA-99 & Si verifichi che un amministratore possa visualizzare i \glock{gateway} disponibili. & NI \\ \hline - %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Test di sistema per i requisiti prestazionali %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - TSA-P-1 & Si verifichi che i tempi di risposta della web app per disegnare grafici siano inferiori ai 7.5 secondi, a fronte di un carico massimo di 30 utenti connessi contemporaneamente. & NI \\ + TA-100 & Si verifichi che un amministratore possa visualizzare le informazioni dei \glock{gateway} disponibili. & NI \\ \hline - TSA-P-2 & Si verifichi che il sistema riesca a gestire un carico di almeno 30 utenti connessi contemporaneamente alla web app. & NI \\ + TA-101 & Si verifichi che un amministratore possa creare un nuovo \glock{gateway}. & NI \\ \hline - %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Test di sistema per i requisiti di qualità %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - TSA-Q-4.1 & Si verifichi che la documentazione delle API sia stata scritta utilizzata per la denominazione della funzioni messe a disposizione. & NI \\ + TA-102 & Si verifichi che un amministratore possa modificare i dati di un \glock{gateway}. & NI \\ \hline - TSA-Q-7 & Si verifichi che il codice sorgente venga gestito tramite un sistema di versionamento. & NI \\ + TA-103 & Si verifichi che un amministratore possa rimuovere un \glock{gateway}. & NI \\ \hline - TSA-Q-8 & Si verifichi che siano stati realizzati dei test di unità e di integrazione per verificare le singole componenti e i subsystem interni. & NI \\ + TA-104 & Si verifichi che un amministratore possa inviare una nuova configurazione a un gateway. & NI \\ \hline - TSB-Q-10 & Si verifichi che la web app superi la validazione W3C & NI \\ + TA-105 & Si verifichi che un moderatore possa ripristinare un utente del suo ente precedentemente disattivato. & NI \\ \hline - %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Test per i requisiti di vincolo %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - TSA-V-1 & Si verifichi che le istanze del sistema siano gestite tramite \glock{Docker}. & NI \\ + TA-106 & Si verifichi che un amministratore possa ripristinare un utente precedentemente disattivato. & NI \\ \hline - TSA-V-2 & Si verifichi che la ricezione degli avvisi avvenga tramite un bot Telegram. & NI \\ + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Test di accettazione per i requisiti prestazionali %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + TA-107 & Si verifichi che i tempi di risposta della web app per disegnare grafici siano inferiori ai 7.5 secondi, a fronte di un carico massimo di 30 utenti connessi contemporaneamente. & NI \\ \hline - TSA-V-3 & Si verifichi che il sistema faccia uso dell'ecosistema \glock{Kafka}. & NI \\ + TA-108 & Si verifichi che il sistema riesca a gestire un carico di almeno 30 utenti connessi contemporaneamente alla web app. & NI \\ \hline - TSA-V-4 & Si verifichi che il sistema faccia uso di un time series database per la memorizzazione dei dati dei sensori. & NI \\ + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Test di accettazione per i requisiti di qualità %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + %TA-108 & Si verifichi che la documentazione delle API sia stata scritta utilizzata per la denominazione della funzioni messe a disposizione. & NI \\ + %\hline + %TA-109 & Si verifichi che il codice sorgente venga gestito tramite un sistema di versionamento. & NI \\ + %\hline + %TA-110 & Si verifichi che siano stati realizzati dei test di unità e di integrazione per verificare le singole componenti e i subsystem interni. & NI \\ + %\hline + %TA-111 & Si verifichi che la web app superi la validazione W3C & NI \\ + %\hline + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Test per i requisiti di vincolo %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + TA-109 & Si verifichi che le le istanze siano gestite tramite \glock{Docker}. & NI \\ \hline - TSA-V-5 & Si verifichi che il sistema faccia uso di un protocollo per comunicare con il gateway. & NI \\ + TA-110 & Si verifichi che la ricezione degli avvisi avvenga tramite un bot Telegram. & NI \\ \hline - TSA-V-6 & Si verifichi che il sistema faccia uso di API per la comunicazione con le applicazioni. & NI \\ + TA-111 & Si verifichi che il sistema faccia uso dell'ecosistema \glock{Kafka}. & NI \\ \hline - TSA-V-7 & Si verifichi che la web app sia compatibile con il browser \glock{Firefox} dalla versione 69.0. & NI \\ + TA-112 & Si verifichi che il sistema faccia uso di un time series database per la memorizzazione dei dati dei sensori. & NI \\ \hline - TSA-V-8 & Si verifichi che la web app sia compatibile con il browser \glock{Chrome} dalla versione 75.0. & NI \\ + TA-113 & Si verifichi che il sistema faccia uso di un protocollo per comunicare con il gateway. & NI \\ \hline - TSA-V-9 & Si verifichi che la web app sia compatibile con il browser \glock{Safari} dalla versione 13.0. & NI \\ + TA-114 & Si verifichi che il sistema faccia uso di API per la comunicazione con le applicazioni. & NI \\ \hline - TSB-V-10 & Si verifichi che la web app sia compatibile con il browser \glock{Edge} dalla versione 42.0. & NI \\ + TA-115 & Si verifichi che la web app sia compatibile con il browser \glock{Firefox} dalla versione 69.0. & NI \\ \hline - TSA-V-11 & Si verifichi che la web app sia stata sviluppata utilizzando il framework \glock{Bootstrap} & NI \\ + TA-116 & Si verifichi che la web app sia compatibile con il browser \glock{Chrome} dalla versione 75.0. & NI \\ \hline - TSA-V-12 & Si verifichi che tutta la documentazione relativa al software sia stata scritta in lingua italiana. & NI \\ + TA-117 & Si verifichi che la web app sia compatibile con il browser \glock{Safari} dalla versione 13.0. & NI \\ \hline - TSA-V-12.1 & Si verifichi che il software sia accompagnato da un manuale amministratore, contenente le informazioni utili per la distribuzione e l'installazione del prodotto. & NI \\ + TA-118 & Si verifichi che la web app sia compatibile con il browser \glock{Edge} dalla versione 42.0. & NI \\ \hline - TSA-V-12.2 & Si verifichi che il software sia accompagnato da un manuale utente, contenente le informazioni utili per l'utilizzo del prodotto da parte degli utenti e dei moderatori ente. & NI \\ + TA-119 & Si verifichi che la web app sia stata sviluppata utilizzando il framework \glock{Bootstrap} & NI \\ \hline - \caption{Tabella contenente un riepilogo dei test di sistema} + \caption{Tabella contenente un riepilogo dei test di accettazione} \end{longtable} \end{center} - - - \subsection{Test di integrazione} - + + \subsubsection{Tracciamento} \begin{center} \rowcolors{2}{lightest-grayest}{white} - \begin{longtable}{|c|p{12cm}|c|} - \hline - \rowcolor{lighter-grayer} - \textbf{Codice} & \textbf{Descrizione} & \textbf{Stato} \\ %& \textbf{Risultato} + \begin{longtable}{|c|c|} \hline + \rowcolor{lighter-grayer}{ \textbf{Codice} } & {\textbf{Requisito} } \\ \hline \endhead + \multicolumn{2}{|c|}{\textit{Continua nella pagina successiva...}}\\ \hline - \multicolumn{3}{|c|}{\textit{Continua nella pagina successiva...}}\\ - \hline - \endfoot - \endlastfoot + \hline + \endfoot + \endlastfoot \hline - TI-1 & Si verifichi l'integrazione tra i DISPOSITIVI e il GATEWAY. & NI \\ + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Test di accettazione per i requisiti funzionali %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + TA-1 & RA-F-1 \\ \hline - TI-2 & Si verifichi l'integrazione tra il servizio KAFKA e i GATEWAY. & NI \\ + TA-2 & RA-F-1.1 \\ \hline - TI-3 & Si verifichi l'integrazione tra il servizio KAFKA e i DATABASE. & NI \\ + TA-3 & RA-F-1.2 \\ \hline - TI-4 & Si verifichi l'integrazione tra il servizio KAFKA e le API. & NI \\ + TA-4 & RA-F-2 \\ \hline - TI-5 & Si verifichi l'integrazione tra le API e i DATABASE. & NI \\ + TA-5 & RA-F-3 \\ \hline - TI-6 & Si verifichi l'integrazione tra le API e TELEGRAM. & NI \\ + TA-6 & RA-F-3.3 \\ \hline - TI-7 & Si verifichi l'integrazione tra le API e la WEBAPP. & NI \\ + TA-7 & RA-F-4 \\ \hline - - \caption{Tabella contenente un riepilogo dei test di integrazione} + TA-8 & RA-F-5 \\ + \hline + TA-9 & RA-F-6 \\ + \hline + TA-10 & RA-F-7 \\ + \hline + TA-11 & RA-F-8 \\ + \hline + TA-12 & RA-F-8.1 \\ + \hline + TA-13 & RA-F-8.2 \\ + \hline + TA-14 & RA-F-8.3 \\ + \hline + TA-15 & RA-F-8.4 \\ + \hline + TA-16 & RA-F-8.5 \\ + \hline + TA-17 & RB-F-8.6 \\ + \hline + TA-18 & RA-F-9 \\ + \hline + TA-19 & RA-F-10 \\ + \hline + TA-20 & RA-F-11 \\ + \hline + TA-21 & RB-F-11.1 \\ + \hline + TA-22 & RA-F-12 \\ + \hline + TA-23 & RA-F-12.1 \\ + \hline + TA-24 & RA-F-13 \\ + \hline + TA-25 & RA-F-14 \\ + \hline + TA-26 & RA-F-15 \\ + \hline + TA-27 & RA-F-16 \\ + \hline + TA-28 & RA-F-17 \\ + \hline + TA-29 & RA-F-18 \\ + \hline + TA-30 & RA-F-18.1 \\ + \hline + TA-31 & RA-F-18.2 \\ + \hline + TA-32 & RA-F-18.3 \\ + \hline + TA-33 & RA-F-19 \\ + \hline + TA-34 & RA-F-20 \\ + \hline + TA-35 & RA-F-21 \\ + \hline + TA-36 & RA-F-22 \\ + \hline + TA-37 & RA-F-23 \\ + \hline + TA-38 & RA-F-24 \\ + \hline + TA-39 & RA-F-24.1 \\ + \hline + TA-40 & RA-F-24.2 \\ + \hline + TA-41 & RA-F-24.3 \\ + \hline + TA-42 & RB-F-24.4 \\ + \hline + TA-43 & RB-F-24.5 \\ + \hline + TA-44 & RB-F-24.6 \\ + \hline + TA-45 & RA-F-25 \\ + \hline + TA-46 & RA-F-26 \\ + \hline + TA-47 & RA-F-27 \\ + \hline + TA-48 & RA-F-28 \\ + \hline + TA-49 & RA-F-29 \\ + \hline + TA-50 & RA-F-30 \\ + \hline + TA-51 & RA-F-31 \\ + \hline + TA-52 & RA-F-32 \\ + \hline + TA-53 & RA-F-33 \\ + \hline + TA-54 & RA-F-34 \\ + \hline + TA-55 & RA-F-35 \\ + \hline + TA-56 & RA-F-36 \\ + \hline + TA-57 & RA-F-37 \\ + \hline + TA-58 & RA-F-38 \\ + \hline + TA-59 & RA-F-39 \\ + \hline + TA-60 & RA-F-39.1 \\ + \hline + TA-61 & RB-F-39.2 \\ + \hline + TA-62 & RA-F-40 \\ + \hline + TA-63 & RA-F-41 \\ + \hline + TA-64 & RA-F-42 \\ + \hline + TA-65 & RA-F-43 \\ + \hline + TA-66 & RA-F-44 \\ + \hline + TA-67 & RB-F-44.1 \\ + \hline + TA-68 & RA-F-45 \\ + \hline + TA-69 & RA-F-46 \\ + \hline + TA-70 & RA-F-47 \\ + \hline + TA-71 & RA-F-48 \\ + \hline + TA-72 & RA-F-49 \\ + \hline + TA-73 & RA-F-50 \\ + \hline + TA-74 & RA-F-51 \\ + \hline + TA-75 & RA-F-52 \\ + \hline + TA-76 & RA-F-53 \\ + \hline + TA-77 & RA-F-54 \\ + \hline + TA-78 & RA-F-55 \\ + \hline + TA-79 & RA-F-56 \\ + \hline + TA-80 & RA-F-57 \\ + \hline + TA-81 & RA-F-58 \\ + \hline + TA-82 & RA-F-59 \\ + \hline + TA-83 & RA-F-60 \\ + \hline + TA-84 & RA-F-61 \\ + \hline + TA-85 & RA-F-62 \\ + \hline + TA-86 & RA-F-63 \\ + \hline + TA-87 & RA-F-64 \\ + \hline + TA-88 & RA-F-64.1 \\ + \hline + TA-89 & RA-F-64.2 \\ + \hline + TA-90 & RA-F-65 \\ + \hline + TA-91 & RA-F-66 \\ + \hline + TA-92 & RA-F-66.1 \\ + \hline + TA-93 & RA-F-67 \\ + \hline + TA-94 & RA-F-69 \\ + \hline + TA-95 & RA-F-70 \\ + \hline + TA-96 & RA-F-71 \\ + \hline + TA-97 & RA-F-71.1 \\ + \hline + TA-98 & RB-F-71.2 \\ + \hline + TA-99 & RA-F-73 \\ + \hline + TA-100 & RA-F-74 \\ + \hline + TA-101 & RA-F-75 \\ + \hline + TA-102 & RA-F-76 \\ + \hline + TA-103 & RA-F-77 \\ + \hline + TA-104 & RA-F-78 \\ + \hline + TA-105 & RC-F-79 \\ + \hline + TA-106 & RC-F-80 \\ + \hline + TA-107 & RA-P-1 \\ + \hline + TA-108 & RA-P-2 \\ + \hline + TA-109 & RA-V-1 \\ + \hline + TA-110 & RA-V-2 \\ + \hline + TA-111 & RA-V-3 \\ + \hline + TA-112 & RA-V-4 \\ + \hline + TA-113 & RA-V-5 \\ + \hline + TA-114 & RA-V-6 \\ + \hline + TA-115 & RA-V-7 \\ + \hline + TA-116 & RA-V-8 \\ + \hline + TA-117 & RA-V-9 \\ + \hline + TA-118 & RA-V-10 \\ + \hline + TA-119 & RA-V-11 \\ + \hline + + \caption{Tabella contenente il tracciamento dei test di accettazione con i requisiti} \end{longtable} \end{center} +\newpage + \subsection{Test di sistema} + \begin{center} + \rowcolors{2}{lightest-grayest}{white} + \begin{longtable}{|c|p{10cm}|c|} + \hline + \rowcolor{lighter-grayer} + \textbf{Codice} & \textbf{Test} & \textbf{Stato} \\ + \hline + \endhead + \hline + \multicolumn{3}{|c|}{\textit{Continua nella pagina successiva...}}\\ + \hline + \endfoot + \endlastfoot - \subsection{Test di unità} - Le specifiche di questi test verranno scritte successivamente, rispettando il \glock{modello a V}. + \hline + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Test di sistema per i requisiti funzionali %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + TS-1 & Si verifichi che un utente possa accedere alle sezioni private del sito inserendo la propria mail e password. + & S \\ + \hline + TS-2 & Si verifichi che un utente possa usufruire dell'autenticazione a due fattori. & S \\ + \hline + TS-3 & Si verifichi che un utente possa ricevere un codice di autenticazione a due fattori tramite Telegram. & S \\ + %\hline + %TSA-F-1.2.1 & Si verifichi che un utente al quale viene chiesto di inserire un codice di autenticazione a due fattori possa richiederne il rinvio & NI \\ + \hline + TS-4 & Si verifichi che un utente autenticato abbia accesso alle sezioni private del sito in base ai suoi permessi & S \\ + \hline + TS-5 & Si verifichi che un utente autenticato possa accedere ad una dashboard che mostra: + \begin{itemize} + \item le informazioni dell'utente autenticato; + \item i principali contatti di supporto tecnico. + \end{itemize} & S \\ + \hline + TS-6 & Si verifichi che un utente autenticato possa accedere ad una dashboard che mostra le statistiche generali del sistema. & S \\ + \hline + TS-7 & Si verifichi che un membro possa visualizzare la lista dei dispositivi autorizzati per il proprio ente. & S \\ + \hline + TS-8 & Si verifichi che un moderatore ente possa visualizzare la lista dei dispositivi autorizzati per il proprio ente. & S \\ + \hline + TS-9 & Si verifichi che un amministratore possa visualizzare la lista completa dei dispositivi censiti nel sistema. & NI \\ + \hline + TS-10 & Si verifichi che un utente autenticato possa accedere alla sezione impostazioni del proprio account. & S \\ + \hline + TS-11 & Si verifichi che un utente autenticato possa modificare le impostazioni del proprio account. & S \\ + \hline + TS-12 & Si verifichi che un utente autenticato possa modificare la propria password. & S \\ + \hline + TS-13 & Si verifichi che un utente autenticato possa modificare la propria email. & S \\ + \hline + TS-14 & Si verifichi che un utente autenticato possa modificare il proprio username Telegram. & S \\ + \hline + TS-15 & Si verifichi che un utente autenticato possa abilitare l'autenticazione a due fattori tramite Telegram. & S \\ + \hline + TS-16 & Si verifichi che un utente autenticato possa disabilitare l'autenticazione a due fattori tramite Telegram. & S \\ + \hline + TS-17 & Si verifichi che un utente autenticato possa modificare la preferenza di notifica di uno specifico alert in base a quelli disponibili. & S \\ + \hline + TS-18 & Si verifichi che un membro o un moderatore ente possano visualizzare la lista dei sensori di uno dei dispositivi autorizzati per il proprio ente. & S \\ + \hline + TS-19 & Si verifichi che un amministratore possa visualizzare la lista completa dei sensori di qualunque dispositivo censito nel sistema. & NI \\ + \hline + TS-20 & Si verifichi che un membro o un moderatore ente possano visualizzare i dati in tempo reale di un sensore a loro autorizzato. & S \\ + \hline + TS-21 & Si verifichi che un membro o un moderatore ente possano visualizzare i dati in tempo reale di un sensore a loro autorizzato sotto forma di grafico. & S \\ + \hline + TS-22 & Si verifichi che un amministratore possa visualizzare i dati in tempo reale di un sensore di uno dei dispositivi censiti nel sistema. & NI \\ + \hline + TS-23 & Si verifichi che un amministratore possa visualizzare tramite grafici le informazioni di un sensore. & NI \\ + \hline + TS-24 & Si verifichi che un amministratore possa visualizzare a quali enti è stato assegnato un sensore. & NI \\ + \hline + TS-25 & Si verifichi che un amministratore possa assegnare un sensore di un qualsiasi dispositivo censito ad un ente. & NI \\ + \hline + TS-26 & Si verifichi che un amministratore possa revocare un sensore di un qualunque dispositivo censito ad un ente. & NI \\ + \hline + TS-27 & Si verifichi che un moderatore ente possa visualizzare i membri appartenenti al proprio ente. & S \\ + \hline + TS-28 & Si verifichi che un moderatore ente possa visualizzare le informazioni di un membro appartenente al suo ente. & S \\ + \hline + TS-29 & Si verifichi che un moderatore ente possa modificare le informazioni di un membro appartenente al suo ente. & S \\ + \hline + TS-30 & Si verifichi che un moderatore ente possa modificare la email di un membro appartenente al suo ente. & S \\ + \hline + TS-31 & Si verifichi che un moderatore ente possa modificare il nome di un membro appartenente al suo ente. & S \\ + \hline + TS-32 & Si verifichi che un moderatore ente possa modificare il cognome di un membro appartenente al suo ente. & S \\ + \hline + TS-33 & Si verifichi che un moderatore ente possa rimuovere un membro appartenente al suo ente. & S \\ + \hline + TS-34 & Si verifichi che un moderatore ente possa creare un nuovo account per un membro che apparterrà solo al suo ente. & S \\ + \hline + TS-35 & Si verifichi che un amministratore possa visualizzare la lista completa con tutti gli utenti registrati nel sistema. & NI \\ + \hline + TS-36 & Si verifichi che un amministratore possa visualizzare le informazioni di uno qualsiasi degli utenti. & NI \\ + \hline + TS-37 & Si verifichi che un amministratore possa disattivare un account di utente qualunque. & NI \\ + \hline + TS-38 & Si verifichi che un amministratore possa modificare l'account di un utente qualunque. & NI \\ + \hline + TS-39 & Si verifichi che un amministratore possa modificare la mail di utente qualunque. & NI \\ + \hline + TS-40 & Si verifichi che un amministratore possa modificare il nome di utente qualunque. & NI \\ + \hline + TS-41 & Si verifichi che un amministratore possa modificare il cognome di utente qualunque. & NI \\ + \hline + TS-42 & Si verifichi che un amministratore possa modificare lo username Telegram di utente qualunque. & NI \\ + \hline + TS-43 & Si verifichi che un amministratore possa attivare l'autenticazione a due fattori tramite Telegram ad un utente qualunque. & NI \\ + \hline + TS-44 & Si verifichi che un amministratore possa disattivare l'autenticazione a due fattori tramite Telegram ad un utente qualunque. & NI \\ + \hline + TS-45 & Si verifichi che un amministratore possa riassegnare un membro o un moderatore ente ad un ente differente. & NI \\ + \hline + TS-46 & Si verifichi che un amministratore possa resettare la password a un membro o a un moderatore ente. & NI \\ + \hline + TS-47 & Si verifichi che un amministratore possa creare un account per nuovo utente. & NI \\ + \hline + TS-48 & Si verifichi che un moderatore ente possa visualizzare la lista degli alert attivi per il proprio ente. & S \\ + \hline + TS-49 & Si verifichi che un moderatore ente possa aggiungere un alert di un particolare sensore per il suo ente. & S \\ + \hline + TS-50 & Si verifichi che un moderatore ente possa rimuovere uno degli alert attivi per il proprio ente. & S \\ + \hline + TS-51 & Si verifichi che un amministratore possa visualizzare la lista degli alert attivi per tutti gli enti. & NI \\ + \hline + TS-52 & Si verifichi che un amministratore possa rimuovere un alert di un particolare sensore. & NI \\ + \hline + TS-53 & Si verifichi che un membro o un moderatore ente possano ricevere notifiche Telegram sulla base delle soglie impostate negli alert attivi per il proprio ente. & S \\ + \hline + TS-54 & Si verifichi che un utente autenticato possa effettuare il logout dalla web-application. & S \\ + \hline + TS-55 & Si verifichi che un utente autenticato possa visualizzare le proprie pagine \textit{View}. & S \\ + \hline + TS-56 & Si verifichi che un utente autenticato possa creare delle proprie pagine \textit{View}. & S \\ + \hline + TS-57 & Si verifichi che un utente autenticato possa rimuovere le proprie pagine \textit{View}. & S \\ + \hline + TS-58 & Si verifichi che un utente autenticato possa aggiungere grafici in una propria pagina \textit{View}. & S \\ + \hline + TS-59 & Si verifichi che un utente autenticato possa visualizzare due dati in un grafico in una propria pagina view. & S \\ + \hline + TS-60 & Si verifichi che un utente autenticato possa visualizzare almeno una correlazione tra due dati. & S \\ + \hline + TS-61 & Si verifichi che un utente autenticato possa visualizzare tre correlazioni tra due dati. & NI \\ + \hline + TS-62 & Si verifichi che un utente autenticato possa eliminare un grafico o correlazione da una propria pagina \textit{View}. & S \\ + \hline + TS-63 & Si verifichi che un moderatore ente possa visualizzare la lista logs degli utenti autorizzati del suo ente. & S \\ + \hline + TS-64 & Si verifichi che un amministratore possa visualizzare la lista logs degli utenti di sistema. & NI \\ + \hline + TS-65 & Si verifichi che un moderatore ente possa visualizzare la lista dei dispositivi autorizzati all'invio dei comandi. & NI \\ + \hline + TS-66 & Si verifichi che un moderatore ente possa inviare comandi ai singoli dispositivi autorizzati per il proprio ente. & NI \\ + \hline + TS-67 & Si verifichi che l'invio dei comandi ai dispositivi avvenga tramite un bot Telegram. & NI \\ + \hline + TS-68 & Si verifichi che un amministratore possa visualizzare la configurazione dei dispositivi censiti nel sistema. & NI \\ + \hline + TS-69 & Si verifichi che un amministratore possa censire un nuovo dispositivo. & NI \\ + \hline + TS-70 & Si verifichi che un amministratore possa decidere quali dati ricevere da un dispositivo. & NI \\ + \hline + TS-71 & Si verifichi che un amministratore possa decidere con quale frequenza ricevere dati da un dispositivo. & NI \\ + \hline + TS-72 & Si verifichi che un amministratore possa rimuovere un dispositivo censito. & NI \\ + \hline + TS-73 & Si verifichi che un amministratore possa modificare la configurazione di un dispositivo già censito. & NI \\ + \hline + TS-74 & Si verifichi che qualora si ottenga una nuova configurazione del gateway, il sistema esegua la rimozione automatica degli alert attivi di un dispositivo non più presente nella configurazione. & NI \\ + \hline + TS-75 & Si verifichi che il sistema esegua la rimozione automatica dei sensori autorizzati agli enti che non sono più esistenti. & NI \\ + \hline + TS-76 & Si verifichi che il sistema rimuova automaticamente i grafici creati dagli utenti nella pagina \textit{View} qualora venga rimosso un sensore. & NI \\ + \hline + TS-77 & Si verifichi che il sistema disattivi automaticamente gli utenti facenti parte di un ente qualora questo venga disabilitato da un amministratore & NI \\ + \hline + TS-78 & Si verifichi che un amministratore possa creare un nuovo ente. & NI \\ + \hline + TS-79 & Si verifichi che un amministratore possa modificare le informazioni di un ente esistente. & NI \\ + \hline + TS-80 & Si verifichi che un amministratore possa disattivare un ente. & NI \\ + \hline + TS-81 & Si verifichi che un amministratore possa visualizzare gli enti attivi nel sistema. & NI \\ + \hline + TS-82 & Si verifichi che il sistema disattivi automaticamente gli alert attivi di un utente qualora questo venga disattivato. & S \\ + \hline + TS-83 & Si verifichi che il sistema non permetta l'accesso ad utenti non amministratori che non fanno parte di un ente. & S \\ + \hline + TS-84 & Si verifichi che il sistema non permetta l'accesso ad utenti disattivati. & S \\ + \hline + TS-85 & Si verifichi che il sistema non permetta la notifica degli alert ad utenti disattivati. & S \\ + \hline + TS-86 & Si verifichi che il sistema permetta la notifica degli alert in base alle preferenze indicate nelle impostazioni di un utente. & S \\ + \hline + TS-87 & Si verifichi che i dati usati nel sistema vengano salvati all'interno di una base di dati. & S \\ + \hline + TS-88 & Si verifichi che i dati ricevuti dal gateway vengano salvati all'interno di un time series database. & S \\ + \hline + TS-89 & Si verifichi che i dati utilizzati per gli account degli utenti vengano salvati in un database relazionale. & S \\ + \hline + TS-90 & Si verifichi che le applicazioni che vogliono utilizzare il sistema si interfaccino con \glock{Kafka} tramite delle \glock{API}. & S \\ + \hline + TS-91 & Si verifichi che le configurazioni dei \glock{gateway} vengano inviate dagli amministratori attraverso delle API. & NI \\ + \hline + TS-92 & Si verifichi che le configurazioni del gateway possano essere sovrascritte. & NI \\ + \hline + TS-93 & Si verifichi che le \glock{API} si interfaccino con i database per la ricezione ed invio di dati. & S \\ + \hline + TS-94 & Si verifichi che i \glock{gateway} comunichino con Kafka tramite \glock{topic} utilizzando il modello \textit{Producer-Consumer}. & S \\ + \hline + TS-95 & Si verifichi che i dispositivi comunichino con i \glock{gateway} i dati da inviare. & S \\ + \hline + TS-96 & Si verifichi che la web app permetta di accedere a tutte le sue funzionalità da browser nelle modalità desktop e tablet. & S \\ + \hline + TS-97 & Si verifichi che la web app permetta di visualizzare grafici e dati da browser nella modalità mobile. & NI \\ + \hline + TS-98 & Si verifichi che la web app permetta di compilare moduli interni da browser nella modalità mobile. & NI \\ + \hline + TS-99 & Si verifichi che un amministratore possa visualizzare i \glock{gateway} disponibili. & NI \\ + \hline + TS-100 & Si verifichi che un amministratore possa visualizzare le informazioni dei \glock{gateway} disponibili. & NI \\ + \hline + TS-101 & Si verifichi che un amministratore possa creare un nuovo \glock{gateway}. & NI \\ + \hline + TS-102 & Si verifichi che un amministratore possa modificare i dati di un \glock{gateway}. & NI \\ + \hline + TS-103 & Si verifichi che un amministratore possa rimuovere un \glock{gateway}. & NI \\ + \hline + TS-104 & Si verifichi che un amministratore possa inviare una nuova configurazione a un gateway. & NI \\ + \hline + TS-105 & Si verifichi che un moderatore possa ripristinare un utente del suo ente precedentemente disattivato. & S \\ + \hline + TS-106 & Si verifichi che un amministratore possa ripristinare un utente precedentemente disattivato. & NI \\ + \hline + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Test di sistema per i requisiti prestazionali %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + TS-107 & Si verifichi che i tempi di risposta della web app per disegnare grafici siano inferiori ai 7.5 secondi, a fronte di un carico massimo di 30 utenti connessi contemporaneamente. & NI \\ + \hline + TS-108 & Si verifichi che il sistema riesca a gestire un carico di almeno 30 utenti connessi contemporaneamente alla web app. & NI \\ + \hline + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Test di sistema per i requisiti di qualità %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + %TS-108 & Si verifichi che la documentazione delle API sia stata scritta utilizzata per la denominazione della funzioni messe a disposizione. & NI \\ + %\hline + %TS-109 & Si verifichi che il codice sorgente venga gestito tramite un sistema di versionamento. & NI \\ + %\hline + %TS-110 & Si verifichi che siano stati realizzati dei test di unità e di integrazione per verificare le singole componenti e i subsystem interni. & NI \\ + %\hline + %TS-111 & Si verifichi che la web app superi la validazione W3C & NI \\ + %\hline + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Test per i requisiti di vincolo %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + TS-109 & Si verifichi che le istanze del sistema siano gestite tramite \glock{Docker}. & S \\ + \hline + TS-110 & Si verifichi che la ricezione degli avvisi avvenga tramite un bot Telegram. & S \\ + \hline + TS-111 & Si verifichi che il sistema faccia uso dell'ecosistema \glock{Kafka}. & S \\ + \hline + TS-112 & Si verifichi che il sistema faccia uso di un time series database per la memorizzazione dei dati dei sensori. & S \\ + \hline + TS-113 & Si verifichi che il sistema faccia uso di un protocollo per comunicare con il gateway. & S \\ + \hline + TS-114 & Si verifichi che il sistema faccia uso di API per la comunicazione con le applicazioni. & S \\ + \hline + TS-115 & Si verifichi che la web app sia compatibile con il browser \glock{Firefox} dalla versione 69.0. & S \\ + \hline + TS-116 & Si verifichi che la web app sia compatibile con il browser \glock{Chrome} dalla versione 75.0. & S \\ + \hline + TS-117 & Si verifichi che la web app sia compatibile con il browser \glock{Safari} dalla versione 13.0. & S \\ + \hline + TS-118 & Si verifichi che la web app sia compatibile con il browser \glock{Edge} dalla versione 42.0. & S \\ + \hline + TS-119 & Si verifichi che la web app sia stata sviluppata utilizzando il framework \glock{Bootstrap} & S \\ + \hline + + \caption{Tabella contenente un riepilogo dei test di sistema} + \end{longtable} + \end{center} + + \subsubsection{Tracciamento} + \begin{center} + \rowcolors{2}{lightest-grayest}{white} + \begin{longtable}{|c|c|} + \hline + \rowcolor{lighter-grayer}{ \textbf{Codice} } & {\textbf{Requisito} } \\ \hline + \endhead + \multicolumn{2}{|c|}{\textit{Continua nella pagina successiva...}}\\ + \hline + \hline + \endfoot + \endlastfoot + + \hline + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Test di sistema per i requisiti funzionali %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + TS-1 & RA-F-1 \\ + \hline + TS-2 & RA-F-1.1 \\ + \hline + TS-3 & RA-F-1.2 \\ + \hline + TS-4 & RA-F-2 \\ + \hline + TS-5 & RA-F-3 \\ + \hline + TS-6 & RA-F-3.3 \\ + \hline + TS-7 & RA-F-4 \\ + \hline + TS-8 & RA-F-5 \\ + \hline + TS-9 & RA-F-6 \\ + \hline + TS-10 & RA-F-7 \\ + \hline + TS-11 & RA-F-8 \\ + \hline + TS-12 & RA-F-8.1 \\ + \hline + TS-13 & RA-F-8.2 \\ + \hline + TS-14 & RA-F-8.3 \\ + \hline + TS-15 & RA-F-8.4 \\ + \hline + TS-16 & RA-F-8.5 \\ + \hline + TS-17 & RB-F-8.6 \\ + \hline + TS-18 & RA-F-9 \\ + \hline + TS-19 & RA-F-10 \\ + \hline + TS-20 & RA-F-11 \\ + \hline + TS-21 & RB-F-11.1 \\ + \hline + TS-22 & RA-F-12 \\ + \hline + TS-23 & RA-F-12.1 \\ + \hline + TS-24 & RA-F-13 \\ + \hline + TS-25 & RA-F-14 \\ + \hline + TS-26 & RA-F-15 \\ + \hline + TS-27 & RA-F-16 \\ + \hline + TS-28 & RA-F-17 \\ + \hline + TS-29 & RA-F-18 \\ + \hline + TS-30 & RA-F-18.1 \\ + \hline + TS-31 & RA-F-18.2 \\ + \hline + TS-32 & RA-F-18.3 \\ + \hline + TS-33 & RA-F-19 \\ + \hline + TS-34 & RA-F-20 \\ + \hline + TS-35 & RA-F-21 \\ + \hline + TS-36 & RA-F-22 \\ + \hline + TS-37 & RA-F-23 \\ + \hline + TS-38 & RA-F-24 \\ + \hline + TS-39 & RA-F-24.1 \\ + \hline + TS-40 & RA-F-24.2 \\ + \hline + TS-41 & RA-F-24.3 \\ + \hline + TS-42 & RB-F-24.4 \\ + \hline + TS-43 & RB-F-24.5 \\ + \hline + TS-44 & RB-F-24.6 \\ + \hline + TS-45 & RA-F-25 \\ + \hline + TS-46 & RA-F-26 \\ + \hline + TS-47 & RA-F-27 \\ + \hline + TS-48 & RA-F-28 \\ + \hline + TS-49 & RA-F-29 \\ + \hline + TS-50 & RA-F-30 \\ + \hline + TS-51 & RA-F-31 \\ + \hline + TS-52 & RA-F-32 \\ + \hline + TS-53 & RA-F-33 \\ + \hline + TS-54 & RA-F-34 \\ + \hline + TS-55 & RA-F-35 \\ + \hline + TS-56 & RA-F-36 \\ + \hline + TS-57 & RA-F-37 \\ + \hline + TS-58 & RA-F-38 \\ + \hline + TS-59 & RA-F-39 \\ + \hline + TS-60 & RA-F-39.1 \\ + \hline + TS-61 & RB-F-39.2 \\ + \hline + TS-62 & RA-F-40 \\ + \hline + TS-63 & RA-F-41 \\ + \hline + TS-64 & RA-F-42 \\ + \hline + TS-65 & RA-F-43 \\ + \hline + TS-66 & RA-F-44 \\ + \hline + TS-67 & RB-F-44.1 \\ + \hline + TS-68 & RA-F-45 \\ + \hline + TS-69 & RA-F-46 \\ + \hline + TS-70 & RA-F-47 \\ + \hline + TS-71 & RA-F-48 \\ + \hline + TS-72 & RA-F-49 \\ + \hline + TS-73 & RA-F-50 \\ + \hline + TS-74 & RA-F-51 \\ + \hline + TS-75 & RA-F-52 \\ + \hline + TS-76 & RA-F-53 \\ + \hline + TS-77 & RA-F-54 \\ + \hline + TS-78 & RA-F-55 \\ + \hline + TS-79 & RA-F-56 \\ + \hline + TS-80 & RA-F-57 \\ + \hline + TS-81 & RA-F-58 \\ + \hline + TS-82 & RA-F-59 \\ + \hline + TS-83 & RA-F-60 \\ + \hline + TS-84 & RA-F-61 \\ + \hline + TS-85 & RA-F-62 \\ + \hline + TS-86 & RA-F-63 \\ + \hline + TS-87 & RA-F-64 \\ + \hline + TS-88 & RA-F-64.1 \\ + \hline + TS-89 & RA-F-64.2 \\ + \hline + TS-90 & RA-F-65 \\ + \hline + TS-91 & RA-F-66 \\ + \hline + TS-92 & RA-F-66.1 \\ + \hline + TS-93 & RA-F-67 \\ + \hline + TS-94 & RA-F-69 \\ + \hline + TS-95 & RA-F-70 \\ + \hline + TS-96 & RA-F-71 \\ + \hline + TS-97 & RA-F-71.1 \\ + \hline + TS-98 & RB-F-71.2 \\ + \hline + TS-99 & RA-F-73 \\ + \hline + TS-100 & RA-F-74 \\ + \hline + TS-101 & RA-F-75 \\ + \hline + TS-102 & RA-F-76 \\ + \hline + TS-103 & RA-F-77 \\ + \hline + TS-104 & RA-F-78 \\ + \hline + TS-105 & RC-F-79 \\ + \hline + TS-106 & RC-F-80 \\ + \hline + TS-107 & RA-P-1 \\ + \hline + TS-108 & RA-P-2 \\ + \hline + TS-109 & RA-V-1 \\ + \hline + TS-110 & RA-V-2 \\ + \hline + TS-111 & RA-V-3 \\ + \hline + TS-112 & RA-V-4 \\ + \hline + TS-113 & RA-V-5 \\ + \hline + TS-114 & RA-V-6 \\ + \hline + TS-115 & RA-V-7 \\ + \hline + TS-116 & RA-V-8 \\ + \hline + TS-117 & RA-V-9 \\ + \hline + TS-118 & RA-V-10 \\ + \hline + TS-119 & RA-V-11 \\ + \hline + + \caption{Tabella contenente il tracciamento dei test di sistema con i requisiti} + \end{longtable} + \end{center} + + \subsection{Test di integrazione} + + \begin{center} + \rowcolors{2}{white}{lightest-grayest} + \begin{longtable}{|c|p{12cm}|c|} + \hline + \rowcolor{lighter-grayer} + \textbf{Codice} & \textbf{Test} & \textbf{Stato} \\ %& \textbf{Risultato} + \hline + \endhead + \hline + \multicolumn{3}{|c|}{\textit{Continua nella pagina successiva...}}\\ + \hline + \endfoot + \endlastfoot + + \hline + TI-1 & Verifica l'integrazione del invio dei comandi dal gateway ai dispositivi & NI \\ + \hline + TI-2 & Verifica l'integrazione della richiesta dei dati dei dispositivi dal gateway & S \\ + \hline + TI-3 & Verifica l'integrazione della ricezione dei comandi ai gateway tramite kafka-consumer di ogni gateway & NI \\ + \hline + TI-4 & Verifica l'integrazione della ricezione delle configurazioni dei gateway tramite kafka-consumer di ogni gateway & S \\ + \hline + TI-5 & Verifica l'integrazione del invio dei dati dal gateway tramite kafka-producer di ogni gateway & S \\ + \hline + TI-6 & Verifica l'integrazione del invio degli alert dal data-collector tramite kafka-producer & S \\ + \hline + TI-7 & Verifica l'integrazione della ricezione dei dati dei dispositivi al data-collector tramite kafka-consumer & S \\ + \hline + TI-8 & Verifica l'integrazione del invio dei dati dei dispositivi dal data-collector al database timescale & S \\ + \hline + TI-9 & Verifica l'integrazione della richiesta del elenco degli alert dalle API al database Postgres & S \\ + \hline + TI-10 & Verifica l'integrazione della richiesta del singolo alert dalle API al database Postgres & S \\ + \hline + TI-11 & Verifica l'integrazione della richiesta della creazione di un alert dalle API al database Postgres & S \\ + \hline + TI-12 & Verifica l'integrazione della richiesta della modifica di un alert dalle API al database Postgres & S \\ + \hline + TI-13 & Verifica l'integrazione della richiesta del eliminazione di un alert dalle API al database Postgres & S \\ + \hline + TI-14 & Verifica l'integrazione della richiesta di disabilitazione di un alert a un utente dalle API al database Postgres & S \\ + \hline + TI-15 & Verifica l'integrazione della richiesta dei dati rilevati dai sensori dalle API al database Timescale & S \\ + \hline + TI-16 & Verifica l'integrazione della richiesta del elenco dei dispositivi dalle API al database Postgres & S \\ + \hline + TI-17 & Verifica l'integrazione della richiesta del singolo dispositivo dalle API al database Postgres & S \\ + \hline + TI-18 & Verifica l'integrazione della richiesta della creazione di un dispositivo dalle API al database Postgres & NI \\ + \hline + TI-19 & Verifica l'integrazione della richiesta della modifica di un dispositivo dalle API al database Postgres & NI \\ + \hline + TI-20 & Verifica l'integrazione della richiesta del eliminazione di un dispositivo dalle API al database Postgres & NI \\ + \hline + TI-21 & Verifica l'integrazione della richiesta del elenco degli enti dalle API al database Postgres & S \\ + \hline + TI-22 & Verifica l'integrazione della richiesta del singolo ente dalle API al database Postgres & S \\ + \hline + TI-23 & Verifica l'integrazione della richiesta della creazione di un ente dalle API al database Postgres & NI \\ + \hline + TI-24 & Verifica l'integrazione della richiesta della modifica di un ente dalle API al database Postgres & NI \\ + \hline + TI-25 & Verifica l'integrazione della richiesta del eliminazione di un ente dalle API al database Postgres & NI \\ + \hline + TI-26 & Verifica l'integrazione della richiesta del elenco dei gateway dalle API al database Postgres & S \\ + \hline + TI-27 & Verifica l'integrazione della richiesta del singolo gateway dalle API al database Postgres & S \\ + \hline + TI-28 & Verifica l'integrazione della richiesta della creazione di un gateway dalle API al database Postgres & NI \\ + \hline + TI-29 & Verifica l'integrazione della richiesta della modifica di un gateway dalle API al database Postgres & NI \\ + \hline + TI-30 & Verifica l'integrazione della richiesta del eliminazione di un gateway dalle API al database Postgres & NI \\ + \hline + TI-31 & Verifica l'integrazione della richiesta del elenco delle logs dalle API al database Timescale & S \\ + \hline + TI-32 & Verifica l'integrazione della richiesta del elenco dei sensori dalle API al database Postgres & S \\ + \hline + TI-33 & Verifica l'integrazione della richiesta del singolo sensore dalle API al database Postgres & S \\ + \hline + TI-34 & Verifica l'integrazione della richiesta della creazione di un sensore dalle API al database Postgres & NI \\ + \hline + TI-35 & Verifica l'integrazione della richiesta della modifica di un sensore dalle API al database Postgres & NI \\ + \hline + TI-36 & Verifica l'integrazione della richiesta del eliminazione di un sensore dalle API al database Postgres & NI \\ + \hline + TI-37 & Verifica l'integrazione della richiesta del elenco degli utenti dalle API al database Postgres & S \\ + \hline + TI-38 & Verifica l'integrazione della richiesta del singolo utente dalle API al database Postgres & S \\ + \hline + TI-39 & Verifica l'integrazione della richiesta della creazione di un utente dalle API al database Postgres & S \\ + \hline + TI-40 & Verifica l'integrazione della richiesta della modifica di un utente dalle API al database Postgres & S \\ + \hline + TI-41 & Verifica l'integrazione della richiesta del eliminazione di un utente dalle API al database Postgres & S \\ + \hline + TI-42 & Verifica l'integrazione della richiesta del elenco delle viste dalle API al database Postgres & S \\ + \hline + TI-43 & Verifica l'integrazione della richiesta della singola vista dalle API al database Postgres & S \\ + \hline + TI-44 & Verifica l'integrazione della richiesta della creazione di una vista dalle API al database Postgres & S \\ + \hline + TI-45 & Verifica l'integrazione della richiesta del eliminazione di una vista dalle API al database Postgres & S \\ + \hline + TI-46 & Verifica l'integrazione della richiesta del elenco dei grafici delle viste dalle API al database Postgres & S \\ + \hline + TI-47 & Verifica l'integrazione della richiesta del singolo grafico delle viste dalle API al database Postgres & S \\ + \hline + TI-48 & Verifica l'integrazione della richiesta della creazione di un grafico delle viste dalle API al database Postgres & S \\ + \hline + TI-49 & Verifica l'integrazione della richiesta del eliminazione di un grafico delle viste dalle API al database Postgres & S \\ + \hline + TI-50 & Verifica l'integrazione della ricezione degli alert alle API tramite kafka-consumer & S \\ + \hline + TI-51 & Verifica l'integrazione del invio degli alert dalle API al telegram bot & S \\ + \hline + TI-52 & Verifica l'integrazione del invio delle configurazioni dalle API tramite kafka-producer & NI \\ + \hline + TI-53 & Verifica l'integrazione del invio dei comandi dalle API tramite kafka-producer & NI \\ + \hline + TI-54 & Verifica l'integrazione del invio del codice di autenticazione a due fattori dalle API a telegram & S \\ + \hline + TI-55 & Verifica l'integrazione del invio dei comandi da telegram alle API & NI \\ + \hline + TI-56 & Verifica l'integrazione della richiesta di registrazione da telegram alle API & S \\ + \hline + TI-57 & Verifica l'integrazione della richiesta di autenticazione da webapp alle API & S \\ + \hline + TI-58 & Verifica l'integrazione della richiesta di autenticazione tfa da webapp alle API & S \\ + \hline + TI-59 & Verifica l'integrazione della richiesta del elenco degli alert da webapp alle API & S \\ + \hline + TI-60 & Verifica l'integrazione della richiesta del singolo alert da webapp alle API & S \\ + \hline + TI-61 & Verifica l'integrazione della richiesta della creazione di un alert da webapp alle API & S \\ + \hline + TI-62 & Verifica l'integrazione della richiesta della modifica di un alert da webapp alle API & S \\ + \hline + TI-63 & Verifica l'integrazione della richiesta del eliminazione di un singolo alert da webapp alle API & S \\ + \hline + TI-64 & Verifica l'integrazione della richiesta di abilitazione di un alert ad un utente da webapp alle API & S \\ + \hline + TI-65 & Verifica l'integrazione della richiesta di disabilitazione di un alert ad un utente da webapp alle API & S \\ + \hline + TI-66 & Verifica l'integrazione della richiesta dei dati rilevati dai sensori da webapp alle API & S \\ + \hline + TI-67 & Verifica l'integrazione della richiesta del elenco dispositivi da webapp alle API & S \\ + \hline + TI-68 & Verifica l'integrazione della richiesta del singolo dispositivo da webapp alle API & S \\ + \hline + TI-69 & Verifica l'integrazione della richiesta della creazione del dispositivo da webapp alle API & NI \\ + \hline + TI-70 & Verifica l'integrazione della richiesta della modifica di un dispositivo da webapp alle API & NI \\ + \hline + TI-71 & Verifica l'integrazione della richiesta del eliminazione di un dispositivo da webapp alle API & NI \\ + \hline + TI-72 & Verifica l'integrazione della richiesta del elenco degli enti da webapp alle API & NI \\ + \hline + TI-73 & Verifica l'integrazione della richiesta del singolo ente da webapp alle API & NI \\ + \hline + TI-74 & Verifica l'integrazione della richiesta della creazione di un ente da webapp alle API & NI \\ + \hline + TI-75 & Verifica l'integrazione della richiesta della modifica di un ente da webapp alle API & NI \\ + \hline + TI-76 & Verifica l'integrazione della richiesta di eliminazione di un ente da webapp alle API & NI \\ + \hline + TI-77 & Verifica l'integrazione della richiesta del elenco dei gateways da webapp alle API & NI \\ + \hline + TI-78 & Verifica l'integrazione della richiesta del singolo gateway da webapp alle API & NI \\ + \hline + TI-79 & Verifica l'integrazione della richiesta della creazione di un gateway da webapp alle API & NI \\ + \hline + TI-80 & Verifica l'integrazione della richiesta della modifica di un gateway da webapp alle API & NI \\ + \hline + TI-81 & Verifica l'integrazione della richiesta del eliminazione di un gateway da webapp alle API & NI \\ + \hline + TI-82 & Verifica l'integrazione del invio della configurazione di un gateway da webapp alle API & NI \\ + \hline + TI-83 & Verifica l'integrazione della richiesta del elenco dei logs da webapp alle API & S \\ + \hline + TI-84 & Verifica l'integrazione della richiesta del elenco dei sensori da webapp alle API & S \\ + \hline + TI-85 & Verifica l'integrazione della richiesta del singolo sensore da webapp alle API & S \\ + \hline + TI-86 & Verifica l'integrazione della richiesta della creazione di un sensore da webapp alle API & NI \\ + \hline + TI-87 & Verifica l'integrazione della richiesta della modifica di un sensore da webapp alle API & NI \\ + \hline + TI-88 & Verifica l'integrazione della richiesta del eliminazione di un sensore da webapp alle API & NI \\ + \hline + TI-89 & Verifica l'integrazione della richiesta delle statistiche di sistema da webapp alle API & S \\ + \hline + TI-90 & Verifica l'integrazione della richiesta del elenco degli utenti da webapp alle API & S \\ + \hline + TI-91 & Verifica l'integrazione della richiesta del singolo utente da webapp alle API & S \\ + \hline + TI-92 & Verifica l'integrazione della richiesta della creazione di un utente da webapp alle API & S \\ + \hline + TI-93 & Verifica l'integrazione della richiesta della modifica di un utente da webapp alle API & S \\ + \hline + TI-94 & Verifica l'integrazione della richiesta del eliminazione di un utente da webapp alle API & S \\ + \hline + TI-95 & Verifica l'integrazione della richiesta del elenco delle viste da webapp alle API & S \\ + \hline + TI-96 & Verifica l'integrazione della richiesta della singola vista da webapp alle API & S \\ + \hline + TI-97 & Verifica l'integrazione della richiesta della creazione di una vista da webapp alle API & S \\ + \hline + TI-98 & Verifica l'integrazione della richiesta eliminazione di una vista da webapp alle API & S \\ + \hline + TI-99 & Verifica l'integrazione della richiesta del elenco dei grafici delle viste da webapp alle API & S \\ + \hline + TI-100 & Verifica l'integrazione della richiesta del singolo grafico delle viste da webapp alle API & S \\ + \hline + TI-101 & Verifica l'integrazione della richiesta della creazione di un grafico delle viste da webapp alle API & S \\ + \hline + TI-102 & Verifica l'integrazione della richiesta eliminazione di un grafico delle viste da webapp alle API & S \\ + \hline + + \caption{Tabella contenente un riepilogo dei test di integrazione} + \end{longtable} + \end{center} + + \subsubsection{Tracciamento} + \begin{center} + \rowcolors{2}{white}{lightest-grayest} + \begin{longtable}{|c|c|} + \hline + \rowcolor{lighter-grayer}{ \textbf{Codice} } & {\textbf{Componente} } \\ \hline + \endhead + \multicolumn{2}{|c|}{\textit{Continua nella pagina successiva...}}\\ + \hline + \hline + \endfoot + \endlastfoot + + \hline + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Test di sistema per i requisiti funzionali %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + TI-1 & Gateway.sendCommand() \\ + \hline + TI-2 & Gateway.start() \\ + \hline + TI-3 & Consumer.executeConsumer() \\ + \hline + TI-4 & Consumer.executeConsumer() \\ + \hline + TI-5 & Producer.executeProducer() \\ + \hline + TI-6 & utils.Producer.executeProducer() \\ + \hline + TI-7 & utils.Consumer.fetchMessages() \\ + \hline + TI-8 & DataInserter.sinkData() \\ + \hline + TI-9 & service.postgres.AlertService.findAll() \\ + \hline + TI-10 & service.postgres.AlertService.findById() \\ + \hline + TI-11 & service.postgres.AlertService.addAlert() \\ + \hline + TI-12 & service.postgres.AlertService.editAlert() \\ + \hline + TI-13 & service.postgres.AlertService.deleteAlert() \\ + \hline + TI-15 & service.postgres.AlertService.enableUserAlert() \\ + \hline + TI-16 & service.timescale.SensorService.findAllForEachSensor() \\ + \hline + TI-17 & service.postgres.DeviceService.findAll() \\ + \hline + TI-18 & service.postgres.DeviceService.findById() \\ + \hline + TI-19 & service.postgres.DeviceService.addDevice() \\ + \hline + TI-20 & service.postgres.DeviceService.editDevice() \\ + \hline + TI-21 & service.postgres.DeviceService.deleteDevice() \\ + \hline + TI-22 & service.postgres.EntityService.findAll() \\ + \hline + TI-23 & service.postgres.EntityService.findById() \\ + \hline + TI-24 & service.postgres.EntityService.addEntity() \\ + \hline + TI-25 & service.postgres.EntityService.editEntity() \\ + \hline + TI-26 & service.postgres.EntityService.deleteEntity() \\ + \hline + TI-27 & service.postgres.GatewayService.findAll() \\ + \hline + TI-28 & service.postgres.GatewayService.findById() \\ + \hline + TI-29 & service.postgres.GatewayService.addGateway() \\ + \hline + TI-30 & service.postgres.GatewayService.editGateway() \\ + \hline + TI-31 & service.postgres.GatewayService.deleteGateway() \\ + \hline + TI-32 & service.timescale.LogService.findAll() \\ + \hline + TI-33 & service.postgres.SensorService.findAll() \\ + \hline + TI-34 & service.postgres.SensorService.findById() \\ + \hline + TI-35 & service.postgres.SensorService.addSensor() \\ + \hline + TI-36 & service.postgres.SensorService.editSensor() \\ + \hline + TI-37 & service.postgres.SensorService.deleteSensor() \\ + \hline + TI-38 & service.postgres.UserService.findAll() \\ + \hline + TI-39 & service.postgres.UserService.findById() \\ + \hline + TI-40 & service.postgres.UserService.addUser() \\ + \hline + TI-41 & service.postgres.UserService.editUser() \\ + \hline + TI-42 & service.postgres.UserService.deleteUser() \\ + \hline + TI-43 & service.postgres.ViewService.findAll() \\ + \hline + TI-44 & service.postgres.ViewService.findById() \\ + \hline + TI-45 & service.postgres.ViewService.addView() \\ + \hline + TI-46 & service.postgres.ViewService.deleteView() \\ + \hline + TI-47 & service.postgres.ViewGraphService.findAll() \\ + \hline + TI-48 & service.postgres.ViewGraphService.findById() \\ + \hline + TI-49 & service.postgres.ViewGraphService.addViewGraph() \\ + \hline + TI-50 & service.postgres.ViewGraphService.deleteViewGraph() \\ + \hline + TI-51 & service.TelegramService.sendAlerts() \\ + \hline + TI-52 & service.TelegramService.sendAlerts() \\ + \hline + TI-53 & service.postgres.GatewayService.sendConfig() \\ + \hline + TI-54 & service.TelegramService.sendCommands() \\ + \hline + TI-55 & service.TelegramService.sendTfa() \\ + \hline + TI-56 & botCommand.botSendCommand \\ + \hline + TI-57 & botLogin.botLogin \\ + \hline + TI-58 & LoginController.login() \\ + \hline + TI-59 & LoginController.login() \\ + \hline + TI-60 & AlertServiceProvider.findAll() \\ + \hline + TI-61 & AlertServiceProvider.find() \\ + \hline + TI-62 & AlertServiceProvider.store() \\ + \hline + TI-63 & AlertServiceProvider.update() \\ + \hline + TI-64 & AlertServiceProvider.destroy() \\ + \hline + TI-65 & AlertServiceProvider.enable() \\ + \hline + TI-66 & AlertServiceProvider.disable() \\ + \hline + TI-67 & SensorServiceProvider.fetch() \\ + \hline + TI-68 & DeviceServiceProvider.findAll() \\ + \hline + TI-69 & DeviceServiceProvider.find() \\ + \hline + TI-70 & DeviceServiceProvider.create() \\ + \hline + TI-71 & DeviceServiceProvider.update() \\ + \hline + TI-72 & DeviceServiceProvider.destroy() \\ + \hline + TI-73 & EntityServiceProvider.findAll() \\ + \hline + TI-74 & EntityServiceProvider.find() \\ + \hline + TI-75 & EntityServiceProvider.create() \\ + \hline + TI-76 & EntityServiceProvider.update() \\ + \hline + TI-77 & EntityServiceProvider.destroy() \\ + \hline + TI-78 & GatewayServiceProvider.findAll() \\ + \hline + TI-79 & GatewayServiceProvider.find() \\ + \hline + TI-80 & GatewayServiceProvider.create() \\ + \hline + TI-81 & GatewayServiceProvider.update() \\ + \hline + TI-82 & GatewayServiceProvider.destroy() \\ + \hline + TI-83 & GatewayServiceProvider.config() \\ + \hline + TI-84 & LogsServiceProvider.findAll() \\ + \hline + TI-85 & SensorServiceProvider.findAll() \\ + \hline + TI-86 & SensorServiceProvider.find() \\ + \hline + TI-87 & SensorServiceProvider.create() \\ + \hline + TI-88 & SensorServiceProvider.update() \\ + \hline + TI-89 & SensorServiceProvider.destroy() \\ + \hline + TI-90 & StatsServiceProvider.stats() \\ + \hline + TI-91 & UserServiceProvider.findAll() \\ + \hline + TI-92 & UserServiceProvider.retrieveById() \\ + \hline + TI-93 & UserServiceProvider.create() \\ + \hline + TI-94 & UserServiceProvider.update() \\ + \hline + TI-95 & UserServiceProvider.destroy() \\ + \hline + TI-96 & ViewServiceProvider.findAll() \\ + \hline + TI-97 & ViewServiceProvider.find() \\ + \hline + TI-98 & ViewServiceProvider.create() \\ + \hline + TI-99 & ViewServiceProvider.destroy() \\ + \hline + TI-100 & ViewGraphServiceProvider.findAll() \\ + \hline + TI-101 & ViewGraphServiceProvider.find() \\ + \hline + TI-102 & ViewGraphServiceProvider.create() \\ + \hline + TI-103 & ViewGraphServiceProvider.destroy() \\ + \hline + + \caption{Tabella contenente il tracciamento dei test di sistema con i requisiti} + \end{longtable} + \end{center} + + \subsection{Test di unità} + + \begin{center} + \rowcolors{2}{lightest-grayest}{white} + \begin{longtable}{|c|p{12cm}|c|} + \hline + \rowcolor{lighter-grayer} + \textbf{Codice} & \textbf{Test} & \textbf{Stato} \\ %& \textbf{Risultato} + \hline + \endhead + \hline + \multicolumn{3}{|c|}{\textit{Continua nella pagina successiva...}}\\ + \hline + \endfoot + \endlastfoot + + \hline + TU-1 & Verifica l'eliminazione degli alert di un sensore in base al autorizzazione & S \\ + \hline + TU-2 & Verifica il ritorno della lista degli alert in base ai filtri e al autorizzazione & S \\ + \hline + TU-3 & Verifica il ritorno del alert tramite id in base al autorizzazione & S \\ + \hline + TU-4 & Verifica la creazione di un nuovo alert in base al autorizzazione & S \\ + \hline + TU-5 & Verifica la modifica di un alert tramite id in base al autorizzazione & S \\ + \hline + TU-6 & Verifica l'eliminazione di un alert tramite id in base al autorizzazione & S \\ + \hline + TU-7 & Verifica la disabilitazione o abilitazione di un alert in base al autorizzazione & S \\ + \hline + TU-8 & Verifica se l'utente ha effettuato l'autenticazione o se necessita del autenticazione a due fattori & S \\ + \hline + TU-9 & Verifica se l'utente ha inserito il codice dell'autenticazione a due fattori corretto & S \\ + \hline + TU-10 & Verifica se l'utente ha effettuato l'autenticazione dal bot telegram & S \\ + \hline + TU-11 & Verifica il ritorno della lista dei valori dei sensori in base ai filtri e al autorizzazione & S \\ + \hline + TU-12 & Verifica il ritorno del ultimo valore dei sensori in base al autorizzazione & S \\ + \hline + TU-13 & Verifica il ritorno della lista di devices in base ai filtri e al autorizzazione & S \\ + \hline + TU-14 & Verifica il ritorno di un device con un id in base al autorizzazione & S \\ + \hline + TU-15 & Verifica il ritorno dei sensori di un device con un id in base ai filtri e al autorizzazione & S \\ + \hline + TU-16 & Verifica il ritorno del sensore di un device con un id e un id reale in base al autorizzazione & S \\ + \hline + TU-17 & Verifica il ritorno della lista di enti in base ai filtri e al autorizzazione & S \\ + \hline + TU-18 & Verifica il ritorno di un ente con un id in base al autorizzazione & S \\ + \hline + TU-19 & Verifica il ritorno della lista di gateway in base ai filtri e al autorizzazione & S \\ + \hline + TU-20 & Verifica il ritorno di un gateway con un id in base al autorizzazione & S \\ + \hline + TU-21 & Verifica il ritorno della lista di device di un gateway con un id in base al autorizzazione & S \\ + \hline + TU-22 & Verifica il ritorno di un device di un gateway con un id e un id reale device in base al autorizzazione & S \\ + \hline + TU-23 & Verifica il ritorno della lista di sensori appartenenti a un device di un gateway tramite id e id reale device & S \\ + \hline + TU-24 & Verifica il ritorno di un sensore appartenente a un device di un gateway tramite id, id reale device e id reale sensore & S \\ + \hline + TU-25 & Verifica il ritorno della lista di tutti i sensori in base ai filtri e al autorizzazione & S \\ + \hline + TU-26 & Verifica il ritorno della lista di tutti gli user in base al autorizzazione & S \\ + \hline + TU-27 & Verifica la creazione di un user in base al autorizzazione & S \\ + \hline + TU-28 & Verifica l'eliminazione di un user in base al autorizzazione & S \\ + \hline + TU-29 & Verifica la modifica di un user in base al autorizzazione & S \\ + \hline + TU-30 & Verifica il ritorno della lista di tutte le view in base ai filtri e al autorizzazione & S \\ + \hline + TU-31 & Verifica la creazione di una view di uno user in base al autorizzazione & S \\ + \hline + TU-32 & Verifica l'eliminazione di una view in base al autorizzazione & S \\ + \hline + TU-33 & Verifica il ritorno di una view tramite id & S \\ + \hline + TU-34 & Verifica il ritorno della lista di tutti i grafici delle view in base ai filtri e al autorizzazione & S \\ + \hline + TU-35 & Verifica il ritorno di un grafico di una view tramite id in base al autorizzazione & S \\ + \hline + TU-36 & Verifica la creazione di un nuovo grafico di una view in base al autorizzazione & S \\ + \hline + TU-37 & Verifica la modifica di un grafico di una view in base al autorizzazione & S \\ + \hline + TU-38 & Verifica l'eliminazione di un grafico di un user in base al autorizzazione & S \\ + \hline + TU-39 & Verifica il ritorno della lista di tutti gli alert & S \\ + \hline + TU-40 & Verifica il ritorno della lista degli alert di un ente & S \\ + \hline + TU-41 & Verifica il ritorno della lista degli alert di un ente di un sensore & S \\ + \hline + TU-42 & Verifica il ritorno della lista degli alert di un sensore & S \\ + \hline + TU-43 & Verifica il ritorno della lista degli alert disabilitati da un utente & S \\ + \hline + TU-44 & Verifica il ritorno del alert tramite id & S \\ + \hline + TU-45 & Verifica il ritorno del alert tramite id e un ente & S \\ + \hline + TU-46 & Verifica l'effettiva creazione di un nuovo alert & S \\ + \hline + TU-47 & Verifica l'effettiva modifica di un alert & S \\ + \hline + TU-48 & Verifica la disabilitazione o abilitazione di un alert per un user & S \\ + \hline + TU-49 & Verifica l'eliminazione di un alert tramite id & S \\ + \hline + TU-50 & Verifica l'eliminazione degli alert di un sensore & S \\ + \hline + TU-51 & Verifica il ritorno della lista di tutti i device & S \\ + \hline + TU-52 & Verifica il ritorno della lista dei device visualizzabili da un ente & S \\ + \hline + TU-53 & Verifica il ritorno della lista dei device visualizzabili da un ente di un gateway & S \\ + \hline + TU-54 & Verifica il ritorno della lista dei device di un gateway & S \\ + \hline + TU-55 & Verifica il ritorno del device tramite id & S \\ + \hline + TU-56 & Verifica il ritorno del device con un sensore & S \\ + \hline + TU-57 & Verifica il ritorno del device tramite id e un ente & S \\ + \hline + TU-58 & Verifica il ritorno del alert di un gateway con un id reale & S \\ + \hline + TU-59 & Verifica il ritorno della lista di tutti gli enti & S \\ + \hline + TU-60 & Verifica il ritorno della lista degli enti con un sensore & S \\ + \hline + TU-61 & Verifica il ritorno della lista degli enti con un sensore e un user & S \\ + \hline + TU-62 & Verifica il ritorno della lista degli enti con un user & S \\ + \hline + TU-63 & Verifica il ritorno del ente tramite id & S \\ + \hline + TU-64 & Verifica il ritorno della lista di tutti i gateway & S \\ + \hline + TU-65 & Verifica il ritorno del gateway con un device & S \\ + \hline + TU-66 & Verifica il ritorno del gateway tramite id & S \\ + \hline + TU-67 & Verifica il ritorno della lista di tutti i sensori & S \\ + \hline + TU-68 & Verifica il ritorno della lista di sensori di un device & S \\ + \hline + TU-69 & Verifica il ritorno della lista di sensori di un device visualizzabili da un ente & S \\ + \hline + TU-70 & Verifica il ritorno della lista di sensori visualizzabili da un ente & S \\ + \hline + TU-71 & Verifica il ritorno della lista di sensori di un gateway e un device & S \\ + \hline + TU-72 & Verifica il ritorno della lista di sensori di un grafico di una view & S \\ + \hline + TU-73 & Verifica il ritorno del sensore di un alert & S \\ + \hline + TU-74 & Verifica il ritorno di un sensore con id reale di un device & S \\ + \hline + TU-75 & Verifica il ritorno di un sensore con id reale di un device visualizzabile da un ente & S \\ + \hline + TU-76 & Verifica il ritorno di un sensore con id reale di un device di un gateway & S \\ + \hline + TU-77 & Verifica il ritorno di un sensore tramite id & S \\ + \hline + TU-78 & Verifica il ritorno di un sensore tramite id e visualizzabile da un ente & S \\ + \hline + TU-79 & Verifica l'eliminazione di un user & S \\ + \hline + TU-80 & Verifica la modifica di un user tramite id, id user che modifica e campi da modificare & S \\ + \hline + TU-81 & Verifica il ritorno della lista di tutti gli user & S \\ + \hline + TU-82 & Verifica il ritorno della lista degli user di un ente & S \\ + \hline + TU-83 & Verifica il ritorno di un user tramite email & S \\ + \hline + TU-84 & Verifica il ritorno di un user tramite id & S \\ + \hline + TU-85 & Verifica il ritorno di un user tramite nome telegram & S \\ + \hline + TU-86 & Verifica il ritorno di un user tramite nome telegram e chat telegram & S \\ + \hline + TU-87 & Verifica il ritorno di un oggetto user per l'autenticazione tramite email & S \\ + \hline + TU-88 & Verifica il ritorno di un oggetto user per l'autenticazione tramite nome telegram & S \\ + \hline + TU-89 & Verifica il ritorno di un oggetto user per l'autenticazione tramite username & S \\ + \hline + TU-90 & Verifica la creazione di un nuovo utente & S \\ + \hline + TU-91 & Verifica la creazione di un nuovo grafico di una view & S \\ + \hline + TU-92 & Verifica l'eliminazione della graph della view tramite id & S \\ + \hline + TU-93 & Verifica la modifica della graph della view & S \\ + \hline + TU-94 & Verifica il ritorno della lista di tutti i grafici di tutte le view & S \\ + \hline + TU-95 & Verifica il ritorno della lista dei grafici con un sensore & S \\ + \hline + TU-96 & Verifica il ritorno della lista dei grafici delle view di un user & S \\ + \hline + TU-97 & Verifica il ritorno della lista dei grafici della view di un user con una view & S \\ + \hline + TU-98 & Verifica il ritorno della lista dei grafici della view con una view & S \\ + \hline + TU-99 & Verifica il ritorno di un grafico della view tramite id & S \\ + \hline + TU-100 & Verifica il permesso di gestire una view tramite id ad un user & S \\ + \hline + TU-101 & Verifica l'eliminazione di una view tramite id & S \\ + \hline + TU-102 & Verifica il ritorno di tutte le view di un user & S \\ + \hline + TU-103 & Verifica il ritorno di una view tramite id & S \\ + \hline + TU-104 & Verifica il ritorno di una view tramite id di un user & S \\ + \hline + TU-105 & Verifica la creazione di una nuova view & S \\ + \hline + TU-106 & Verifica la creazione del log & S \\ + \hline + TU-107 & Verifica il ritorno della lista di tutti i valori rilevati di una lista di sensori & S \\ + \hline + TU-108 & Verifica il ritorno della lista di tutti i valori rilevati di una lista di sensori di un ente & S \\ + \hline + TU-109 & Verifica il ritorno della lista di tutti i valori rilevati di tutti i sensori & S \\ + \hline + TU-110 & Verifica il ritorno della lista di tutti i valori rilevati dei sensori di un ente & S \\ + \hline + TU-111 & Verifica il ritorno del ultimo valore rilevato di un sensore & S \\ + \hline + TU-112 & Verificail ritorno del ultimo valore rilevato di un sensore di un ente & S \\ + \hline + TU-113 & Verifica il ritorno della lista di N valori rilevati di una lista di sensori & S \\ + \hline + TU-114 & Verifica il ritorno della lista di N valori rilevati di una lista di sensori di un ente & S \\ + \hline + TU-115 & Verifica il ritorno della lista di N valori rilevati di tutti i sensori & S \\ + \hline + TU-116 & Verifica il ritorno della lista di N valori rilevati di tutti i sensori di un ente & S \\ + \hline + TU-117 & Verifica se le credenziali dellìuser sono valide & S \\ + \hline + TU-118 & Verifica il ritorno del codice di autenticazione estratto dal token & S \\ + \hline + TU-119 & Verifica il ritorno della data di scadenza del token & S \\ + \hline + TU-120 & Verifica il ritorno del tipo di utente estratto dal token & S \\ + \hline + TU-121 & Verifica il ritorno del tipo di token & S \\ + \hline + TU-122 & Verifica il ritorno del username estratto dal token & S \\ + \hline + TU-123 & Verifica la creazione del token & S \\ + \hline + TU-124 & Verifica la creazione del token fornendo la data di scadenza & S \\ + \hline + TU-125 & Verifica la creazione del token per la autenticazione a due fattori & S \\ + \hline + TU-126 & Verifica se il token è di tipo tfa & S \\ + \hline + TU-127 & Verifica se il token è valido & S \\ + \hline + TU-128 & Verifica la corretta rilevazione di un alert & S \\ + \hline + TU-129 & Verifica la rimozione degli alert falsi positivi & S \\ + \hline + TU-130 & Verifica il ritorno del numero di alert & S \\ + \hline + TU-131 & Verifica il ritorno del device id & S \\ + \hline + TU-132 & Verifica il ritorno del timestamp & S \\ + \hline + TU-133 & Verifica il settaggio del timestamp & S \\ + \hline + TU-134 & Verifica il ritorno dei sensori & S \\ + \hline + TU-135 & Verifica l'aggiunta di un sensore & S \\ + \hline + TU-136 & Verifica la rimozione di un sensore & S \\ + \hline + TU-137 & Verifica il ritorno del numvero di sensori & S \\ + \hline + TU-138 & Verifica il ritorno del sensor id & S \\ + \hline + TU-139 & Verifica il ritorno del dato & S \\ + \hline + TU-140 & Verifica il ritorno del timestamp & S \\ + \hline + TU-141 & Verifica il settaggio del timestamp & S \\ + \hline + TU-142 & Verifica il settaggio del dato & S \\ + \hline + TU-143 & Verifica il funzionamento del producer & S \\ + \hline + TU-144 & Verifica il ritorno della lista dei device & S \\ + \hline + TU-145 & Verifica l'aggiunta del sensore & S \\ + \hline + TU-146 & Verifica l'impostazione della configurazione del gateway & S \\ + \hline + TU-147 & Verifica il ritorno del nome del gateway & S \\ + \hline + TU-148 & Verifica il corretto inizio del gateway & S \\ + \hline + TU-149 & Verifica la corretta creazione del pacchetto & S \\ + \hline + TU-150 & Verifica l'inizializzazione del gateway & S \\ + \hline + TU-151 & Verifica l'aggiunta degli attributi & S \\ + \hline + TU-152 & Verifica il ritorno della stringa con il giusto significato del tipo di relazione & S \\ + \hline + TU-153 & Verifica l'aggiunta degli attributi & S \\ + \hline + TU-154 & Verifica l'aggiunta degli attributi & S \\ + \hline + TU-155 & Verifica l'aggiunta degli attributi & S \\ + \hline + TU-156 & Verifica l'aggiunta degli attributi & S \\ + \hline + TU-157 & Verifica l'aggiunta degli attributi & S \\ + \hline + TU-158 & Verifica l'aggiunta degli attributi & S \\ + \hline + TU-159 & Verifica l'aggiunta degli attributi & S \\ + \hline + TU-160 & Verifica il ritorno della nome dell'attributo dell'identificativo & S \\ + \hline + TU-161 & Verifica il ritorno dell'identificativo & S \\ + \hline + TU-162 & Verifica il ritorno della password & S \\ + \hline + TU-163 & Verifica il ritorno dello username di telegram & S \\ + \hline + TU-164 & Verifica il ritorno dell'id della chat di telegram & S \\ + \hline + TU-165 & Verifica il ritorno della stringa rappresentante il ruolo dell'utente & S \\ + \hline + TU-166 & Verifica il settaggio dell'utente come disabilitato & S \\ + \hline + TU-167 & Verifica il ritorno dello stato dell'utente & S \\ + \hline + TU-168 & Verifica il ritorno della view di tutte le "view" & S \\ + \hline + TU-169 & Verifica il ritorno della view di una singola "view" & S \\ + \hline + TU-170 & Verifica il ritorno di una view della lista di tutti gli utenti & S \\ + \hline + TU-171 & Verifica il ritorno di una view del singolo utente & S \\ + \hline + TU-172 & Verifica il ritorno di una view nella quale si puo' creare un utente & S \\ + \hline + TU-173 & Verifica il ritorno di una view nella quale si puo' modificare un utente & S \\ + \hline + TU-174 & Verifica il ritorno di una view nella quale si possono modificare le informazioni del proprio profilo & S \\ + \hline + TU-175 & Verifica il ritorno della view della lista di tutti i sensori & S \\ + \hline + TU-176 & Verifica il ritorno della view della creazione di un sensore & S \\ + \hline + TU-177 & Verifica il ritorno della view del dettaglio di un singolo sensore & S \\ + \hline + TU-178 & Verifica il ritorno della view della modifica di un sensore & S \\ + \hline + TU-179 & Verifica il ritorno della view della lista dei gateway & S \\ + \hline + TU-180 & Verifica il ritorno della view della creazione di un gateway & S \\ + \hline + TU-181 & Verifica il ritorno della view modifica di un gateway & S \\ + \hline + TU-182 & Verifica il ritorno della view dei dettagli di un gateway & S \\ + \hline + TU-183 & Verifica il ritorno della view della lista di tutti i dispositivi & S \\ + \hline + TU-184 & Verifica il ritorno della view della creazione di un dispositivo & S \\ + \hline + TU-185 & Verifica il ritorno della view di modifica di un dispositivo & S \\ + \hline + TU-186 & Verifica il ritorno della view del dettaglio di un dispositivo & S \\ + \hline + TU-187 & Verifica il ritorno della view della lista dei logs & S \\ + \hline + TU-188 & Verifica il ritorno della view della pagina di dashboard & S \\ + \hline + TU-189 & Verifica il ritorno della view della lista degli enti & S \\ + \hline + TU-190 & Verifica il ritorno della view per la creazione di un ente & S \\ + \hline + TU-191 & Verifica il ritorno della view per la modifica di un ente & S \\ + \hline + TU-192 & Verifica il ritorno della view di un ente & S \\ + \hline + TU-193 & Verifica il ritorno della view della lista degli alerts & S \\ + \hline + TU-194 & Verifica il ritorno della view per creare un alert & S \\ + \hline + TU-195 & Verifica il ritorno della view per modificare un alert & S \\ + \hline + TU-196 & Verifica che il messaggio sia stato inviato correttamente alla chatID richiesta & S \\ + \hline + TU-197 & Verifica se la chatId di telegram è gia registrata nel dabase e nel caso la aggiunge & S \\ + \hline + TU-198 & Verifica che l'utente sia loggato e ne ritorna lo status & S \\ + \hline + TU-199 & Verifica che il campo venga restituito correttamente & S \\ + \hline + TU-200 & Verifica che la creazione dei pacchetti avvenga correttamente & S \\ + \hline + TU-201 & Verifica che la costruzione avvenga in maniera conforme & S \\ + \hline + TU-202 & Verifica che il metodo risponda correttamente in caso di eccezioni & S \\ + \hline + TU-203 & Verifica che il comportamento sia quello previsto & S \\ + \hline + TU-204 & Verifica che i dispositivi siano ritornati nel formato corretto & S \\ + \hline + TU-205 & Verifica che la conversione avvenga rispettando i contratti & S \\ + \hline + TU-206 & Verifica che il CRC calcolato sia conforme & S \\ + \hline + TU-207 & Verifica che il comportamento del metodo sia corretto & S \\ + \hline + TU-208 & Verifica che il comportamento del metodo sia corretto & S \\ + \hline + TU-209 & Verifica che il metodo ritorni il campo correttamente & S \\ + \hline + TU-210 & Verifica che il metodo inserisca il campo correttamente & S \\ + \hline + TU-211 & Verifica che il metodo ritorni il campo correttamente & S \\ + \hline + TU-212 & Verifica che il metodo inserisca il campo correttamente & S \\ + \hline + TU-213 & Verifica che il comportamento del metodo sia corretto & S \\ + \hline + + \caption{Tabella contenente un riepilogo dei test di integrazione} + \end{longtable} + \end{center} + + \subsubsection{Tracciamento} + \begin{center} + \rowcolors{2}{lightest-grayest}{white} + \begin{longtable}{|c|c|} + \hline + \rowcolor{lighter-grayer}{ \textbf{Codice} } & {\textbf{Componente} } \\ \hline + \endhead + \multicolumn{2}{|c|}{\textit{Continua nella pagina successiva...}}\\ + \hline + \hline + \endfoot + \endlastfoot + + \hline + TU-1 & controller.AlertController.deleteAlerts() \\ + \hline + TU-2 & controller.AlertController.getAlerts() \\ + \hline + TU-3 & controller.AlertController.getAlert() \\ + \hline + TU-4 & controller.AlertController.createAlert() \\ + \hline + TU-5 & controller.AlertController.editAlert() \\ + \hline + TU-6 & controller.AlertController.deleteAlert() \\ + \hline + TU-7 & controller.AlertController.disableUserAlert() \\ + \hline + TU-8 & controller.AuthController.authentication() \\ + \hline + TU-9 & controller.AuthController.tfaAuthentication() \\ + \hline + TU-10 & controller.AuthController.telegramAuthentication() \\ + \hline + TU-11 & controller.DataController.getSensorsValues() \\ + \hline + TU-12 & controller.DataController.getLastSensorValue() \\ + \hline + TU-13 & controller.DeviceController.getDevices() \\ + \hline + TU-14 & controller.DeviceController.getDevice() \\ + \hline + TU-15 & controller.DeviceController.getSensorsByDevice() \\ + \hline + TU-16 & controller.DeviceController.getSensorByDevice() \\ + \hline + TU-17 & controller.EntityController.getEntities() \\ + \hline + TU-18 & controller.EntityController.getEntity() \\ + \hline + TU-19 & controller.GatewayController.getGateways() \\ + \hline + TU-20 & controller.GatewayController.getGateway() \\ + \hline + TU-21 & controller.GatewayController.getGatewaysDevices() \\ + \hline + TU-22 & controller.GatewayController.getGatewaysDevice() \\ + \hline + TU-23 & controller.GatewayController.getGatewaysDevicesSensors() \\ + \hline + TU-24 & controller.GatewayController.getGatewaysDevicesSensor() \\ + \hline + TU-25 & controller.SensorController.getSensors() \\ + \hline + TU-26 & controller.UserController.getUsers() \\ + \hline + TU-27 & controller.UserController.createUser() \\ + \hline + TU-28 & controller.UserController.deleteUser() \\ + \hline + TU-29 & controller.UserController.editUser() \\ + \hline + TU-30 & controller.ViewController.views() \\ + \hline + TU-31 & controller.ViewController.createView() \\ + \hline + TU-32 & controller.ViewController.deleteView() \\ + \hline + TU-33 & controller.ViewController.selectOneView() \\ + \hline + TU-34 & controller.ViewGraphController.getViewGraphs() \\ + \hline + TU-35 & controller.ViewGraphController.getViewGraph() \\ + \hline + TU-36 & controller.ViewGraphController.createUserViewGraphs() \\ + \hline + TU-37 & controller.ViewGraphController.editViewGraph() \\ + \hline + TU-38 & controller.ViewGraphController.deleteUserViewGraph() \\ + \hline + TU-39 & service.postgres.AlertService.findAll() \\ + \hline + TU-40 & service.postgres.AlertService.findAllByEntityId() \\ + \hline + TU-41 & service.postgres.AlertService.findAllByEntityIdAndSensorId() \\ + \hline + TU-42 & service.postgres.AlertService.findAllBySensorId() \\ + \hline + TU-43 & service.postgres.AlertService.findAllDisabledByUserId() \\ + \hline + TU-44 & service.postgres.AlertService.findById() \\ + \hline + TU-45 & service.postgres.AlertService.findByIdAndEntityId() \\ + \hline + TU-46 & service.postgres.AlertService.addAlert() \\ + \hline + TU-47 & service.postgres.AlertService.editAlert() \\ + \hline + TU-48 & service.postgres.AlertService.enableUserAlert() \\ + \hline + TU-49 & service.postgres.AlertService.deleteAlert() \\ + \hline + TU-50 & service.postgres.AlertService.deleteAlertsBySensorId() \\ + \hline + TU-51 & service.postgres.DeviceService.findAll() \\ + \hline + TU-52 & service.postgres.DeviceService.findAllByEntityId() \\ + \hline + TU-53 & service.postgres.DeviceService.findAllByEntityIdAndGatewayId() \\ + \hline + TU-54 & service.postgres.DeviceService.findAllByGatewayId() \\ + \hline + TU-55 & service.postgres.DeviceService.findById() \\ + \hline + TU-56 & service.postgres.DeviceService.findBySensorId() \\ + \hline + TU-57 & service.postgres.DeviceService.findByIdAndEntityId() \\ + \hline + TU-58 & service.postgres.DeviceService.findByGatewayIdAndRealDeviceId() \\ + \hline + TU-59 & service.postgres.EntityService.findAll() \\ + \hline + TU-60 & service.postgres.EntityService.findAllBySensorId() \\ + \hline + TU-61 & service.postgres.EntityService.findAllBySensorIdAndUserId() \\ + \hline + TU-62 & service.postgres.EntityService.findAllByUserId() \\ + \hline + TU-63 & service.postgres.EntityService.findById() \\ + \hline + TU-64 & service.postgres.GatewayService.findAll() \\ + \hline + TU-65 & service.postgres.GatewayService.findByDeviceId() \\ + \hline + TU-66 & service.postgres.GatewayService.findById() \\ + \hline + TU-67 & service.postgres.SensorService.findAll() \\ + \hline + TU-68 & service.postgres.SensorService.findAllByDeviceId() \\ + \hline + TU-69 & service.postgres.SensorService.findAllByDeviceIdAndEntityId() \\ + \hline + TU-70 & service.postgres.SensorService.findAllByEntityId() \\ + \hline + TU-71 & service.postgres.SensorService.findAllByGatewayIdAndRealDeviceId() \\ + \hline + TU-72 & service.postgres.SensorService.findAllByViewGraphId() \\ + \hline + TU-73 & service.postgres.SensorService.findByAlertId() \\ + \hline + TU-74 & service.postgres.SensorService.findByDeviceIdAndRealSensorId() \\ + \hline + TU-75 & service.postgres.SensorService.findByDeviceIdAndRealSensorIdAndEntityId() \\ + \hline + TU-76 & service.postgres.SensorService.findByGatewayIdAndRealDeviceIdAndRealSensorId() \\ + \hline + TU-77 & service.postgres.SensorService.findById() \\ + \hline + TU-78 & service.postgres.SensorService.findByIdAndEntityId() \\ + \hline + TU-79 & service.postgres.UserService.deleteUser() \\ + \hline + TU-80 & service.postgres.UserService.editUser() \\ + \hline + TU-81 & service.postgres.UserService.findAll() \\ + \hline + TU-82 & service.postgres.UserService.findAllByEntityId() \\ + \hline + TU-83 & service.postgres.UserService.findByEmail() \\ + \hline + TU-84 & service.postgres.UserService.findById() \\ + \hline + TU-85 & service.postgres.UserService.findByTelegramName() \\ + \hline + TU-86 & service.postgres.UserService.findByTelegramNameAndTelegramChat() \\ + \hline + TU-87 & service.postgres.UserService.loadUserByEmail() \\ + \hline + TU-88 & service.postgres.UserService.loadUserByTelegramName() \\ + \hline + TU-89 & service.postgres.UserService.loadUserByUsername() \\ + \hline + TU-90 & service.postgres.UserService.addUser() \\ + \hline + TU-91 & service.postgres.ViewGraphService.addViewGraph() \\ + \hline + TU-92 & service.postgres.ViewGraphService.deleteViewGraph() \\ + \hline + TU-93 & service.postgres.ViewGraphService.editViewGraph() \\ + \hline + TU-94 & service.postgres.ViewGraphService.findAll() \\ + \hline + TU-95 & service.postgres.ViewGraphService.findAllBySensorId() \\ + \hline + TU-96 & service.postgres.ViewGraphService.findAllByUserId() \\ + \hline + TU-97 & service.postgres.ViewGraphService.findAllByUserIdAndViewId() \\ + \hline + TU-98 & service.postgres.ViewGraphService.findAllByViewId() \\ + \hline + TU-99 & service.postgres.ViewGraphService.findById() \\ + \hline + TU-100 & service.postgres.ViewGraphService.getPermissionByIdAndUserId() \\ + \hline + TU-101 & service.postgres.ViewService.deleteView() \\ + \hline + TU-102 & service.postgres.ViewService.findAllByUser() \\ + \hline + TU-103 & service.postgres.ViewService.findById() \\ + \hline + TU-104 & service.postgres.ViewService.findByIdAndUserId() \\ + \hline + TU-105 & service.postgres.ViewService.addView() \\ + \hline + TU-106 & service.timescale.LogService.createLog() \\ + \hline + TU-107 & service.timescale.SensorService.findAllBySensorIdList() \\ + \hline + TU-108 & service.timescale.SensorService.findAllBySensorIdListAndEntityId() \\ + \hline + TU-109 & service.timescale.SensorService.findAllForEachSensor() \\ + \hline + TU-110 & service.timescale.SensorService.findAllForEachSensorByEntityId() \\ + \hline + TU-111 & service.timescale.SensorService.findLastValueBySensorId() \\ + \hline + TU-112 & service.timescale.SensorService.findLastValueBySensorIdAndEntityId() \\ + \hline + TU-113 & service.timescale.SensorService.findTopNBySensorIdList() \\ + \hline + TU-114 & service.timescale.SensorService.findTopNBySensorIdListAndEntityId() \\ + \hline + TU-115 & service.timescale.SensorService.findTopNForEachSensor() \\ + \hline + TU-116 & service.timescale.SensorService.findTopNForEachSensorByEntityId() \\ + \hline + TU-117 & utils.CustomAuthenticationManager.authenticate() \\ + \hline + TU-118 & utils.JwtUtil.extractAuthCode() \\ + \hline + TU-119 & utils.JwtUtil.extractExpiration() \\ + \hline + TU-120 & utils.JwtUtil.extractRole() \\ + \hline + TU-121 & utils.JwtUtil.extractType() \\ + \hline + TU-122 & utils.JwtUtil.extractUsername() \\ + \hline + TU-123 & utils.JwtUtil.generateToken() \\ + \hline + TU-124 & utils.JwtUtil.generateTokenWithExpiration() \\ + \hline + TU-125 & utils.JwtUtil.generateTfaToken() \\ + \hline + TU-126 & utils.JwtUtil.isTfa() \\ + \hline + TU-127 & utils.JwtUtil.validateToken() \\ + \hline + TU-128 & models.AlertTimeTable.verifyAlert() \\ + \hline + TU-129 & models.AlertTimeTable.clear() \\ + \hline + TU-130 & models.AlertTimeTable.size() \\ + \hline + TU-131 & gateway.models.Device.getDeviceId() \\ + \hline + TU-132 & gateway.models.Device.getTimestamp() \\ + \hline + TU-133 & gateway.models.Device.setTimestamp() \\ + \hline + TU-134 & gateway.models.Device.getSensors() \\ + \hline + TU-135 & gateway.models.Device.addSensor() \\ + \hline + TU-136 & gateway.models.Device.removeSensor() \\ + \hline + TU-137 & gateway.models.Device.getSensorsNumber() \\ + \hline + TU-138 & gateway.models.Sensor.getSensorId() \\ + \hline + TU-139 & gateway.models.Sensor.getData() \\ + \hline + TU-140 & gateway.models.Sensor.getTimestamp() \\ + \hline + TU-141 & gateway.models.Sensor.setTimestamp() \\ + \hline + TU-142 & gateway.models.Sensor.setData() \\ + \hline + TU-143 & gateway.utils.Producer.Producer() \\ + \hline + TU-144 & gateway.utils.Translator.getDevices() \\ + \hline + TU-145 & gateway.utils.Translator.addSensor() \\ + \hline + TU-146 & gateway.Gateway.buildFromConfig() \\ + \hline + TU-147 & gateway.Gateway.getName() \\ + \hline + TU-148 & gateway.Gateway.start() \\ + \hline + TU-149 & gateway.Gateway.createRequestPacket() \\ + \hline + TU-150 & gateway.Gateway.init() \\ + \hline + TU-151 & models.Alert.fill() \\ + \hline + TU-152 & models.Alert.getType() \\ + \hline + TU-153 & models.Device.fill() \\ + \hline + TU-154 & models.Entity.fill() \\ + \hline + TU-155 & models.Gateway.fill() \\ + \hline + TU-156 & models.Sensor.fill() \\ + \hline + TU-157 & models.View.fill() \\ + \hline + TU-158 & models.ViewGraph.fill() \\ + \hline + TU-159 & models.User.fill() \\ + \hline + TU-160 & models.User.getAuthIdentifierName() \\ + \hline + TU-161 & models.User.getAuthIdentifier() \\ + \hline + TU-162 & models.User.getAuthPassword() \\ + \hline + TU-163 & models.User.getTelegramName() \\ + \hline + TU-164 & models.User.getChatId() \\ + \hline + TU-165 & models.User.getRole() \\ + \hline + TU-166 & models.User.setDeleted() \\ + \hline + TU-167 & models.User.getDeleted() \\ + \hline + TU-168 & controllers.ViewController.index() \\ + \hline + TU-169 & controllers.ViewController.show() \\ + \hline + TU-170 & controllers.UserController.index() \\ + \hline + TU-171 & controllers.UserController.show() \\ + \hline + TU-172 & controllers.UserController.create() \\ + \hline + TU-173 & controllers.UserController.edit() \\ + \hline + TU-174 & controllers.SettingsController.edit() \\ + \hline + TU-175 & controllers.SensorController.index() \\ + \hline + TU-176 & controllers.SensorController.create() \\ + \hline + TU-177 & controllers.SensorController.show() \\ + \hline + TU-178 & controllers.SensorController.edit() \\ + \hline + TU-179 & controllers.GatewayController.index() \\ + \hline + TU-180 & controllers.GatewayController.create() \\ + \hline + TU-181 & controllers.GatewayController.edit() \\ + \hline + TU-182 & controllers.GatewayController.show() \\ + \hline + TU-183 & controllers.DeviceController.index() \\ + \hline + TU-184 & controllers.DeviceController.create() \\ + \hline + TU-185 & controllers.DeviceController.edit() \\ + \hline + TU-186 & controllers.DeviceController.show() \\ + \hline + TU-187 & controllers.LogsController.index() \\ + \hline + TU-188 & controllers.DashboardController.index() \\ + \hline + TU-189 & controllers.EntityController.index() \\ + \hline + TU-190 & controllers.EntityController.create() \\ + \hline + TU-191 & controllers.EntityController.edit() \\ + \hline + TU-192 & controllers.EntityController.show() \\ + \hline + TU-193 & controllers.AlertsController.index() \\ + \hline + TU-194 & controllers.AlertsController.create() \\ + \hline + TU-195 & controllers.AlertsController.edit() \\ + \hline + TU-196 & botServer.botServer.sendMessage() \\ + \hline + TU-197 & commans.botLogin.login() \\ + \hline + TU-198 & commands.botStatus.statua() \\ + \hline + TU-199 & gateway.Gateway.getName() \\ + \hline + TU-200 & gateway.Gateway.createRequestPacket() \\ + \hline + TU-201 & gateway.Gateway.buildFromConfig() \\ + \hline + TU-202 & gateway.Gateway.start() \\ + \hline + TU-203 & gateway.Gateway.init() \\ + \hline + TU-204 & gateway.Translator.getDevices() \\ + \hline + TU-205 & gateway.Utility.convertPacket() \\ + \hline + TU-206 & gateway.Utility.calculateCrc() \\ + \hline + TU-207 & gateway.Utility.checkIntegrity() \\ + \hline + TU-208 & gateway.Sensor.getSensorId() \\ + \hline + TU-209 & gateway.Sensor.getData() \\ + \hline + TU-210 & gateway.Sensor.setTimestamp() \\ + \hline + TU-211 & gateway.Device .getDeviceId() \\ + \hline + TU-212 & gateway.Device .setTimestamp() \\ + \hline + TU-213 & gateway.Device .removeSensor() \\ + \hline + + \caption{Tabella contenente il tracciamento dei test di sistema con i requisiti} + \end{longtable} + \end{center} diff --git a/esterni/piano_qualifica/res/sections/Sez5-Resoconto/Resoconto.tex b/esterni/piano_qualifica/res/sections/Sez5-Resoconto/Resoconto.tex index 825e3f9..57c6630 100644 --- a/esterni/piano_qualifica/res/sections/Sez5-Resoconto/Resoconto.tex +++ b/esterni/piano_qualifica/res/sections/Sez5-Resoconto/Resoconto.tex @@ -5,7 +5,7 @@ \section{Resoconto attività di verifica} \subsection{Verifica processi} -\subsubsection{Calcolo metriche gestione delle risorse} +\subsubsection{Calcolo metriche gestione delle risorse - QP1} Per verificare che i costi stabiliti rientrino in quanto preventivato si trovano a seguire dei grafici contenenti i risultati ottenuti: \paragraph{Budgeted cost of work scheduled} @@ -15,6 +15,12 @@ \subsubsection{Calcolo metriche gestione delle risorse} \caption{Grafico contenente il costo preventivato in euro per fase} \label{fig:Grafico contenente il costo preventivato in euro per fase} \end{figure} + \begin{figure}[H] + \centering + \includegraphics[width=0.8\linewidth]{./res/images/BCWS_2.png} + \caption{Grafico contenente il costo preventivato in euro per fase} + \label{fig:Grafico contenente il costo preventivato in euro per fase} + \end{figure} \paragraph{Actual cost of work performed} \begin{figure}[H] @@ -23,6 +29,12 @@ \subsubsection{Calcolo metriche gestione delle risorse} \caption{Grafico contenente il costo effettivo in euro per fase} \label{fig:Grafico contenente il costo effettivo in euro per fase} \end{figure} + \begin{figure}[H] + \centering + \includegraphics[width=0.8\linewidth]{./res/images/ACWP_2.png} + \caption{Grafico contenente il costo effettivo in euro per fase} + \label{fig:Grafico contenente il costo effettivo in euro per fase} + \end{figure} \paragraph{Budgeted cost of work performed} \begin{figure}[H] @@ -31,6 +43,12 @@ \subsubsection{Calcolo metriche gestione delle risorse} \caption{Grafico contenente il valore del prodotto in euro per fase} \label{fig:Grafico contenente il valore del prodotto in euro per fase} \end{figure} + \begin{figure}[H] + \centering + \includegraphics[width=0.8\linewidth]{./res/images/BCWP_2.png} + \caption{Grafico contenente il valore del prodotto in euro per fase} + \label{fig:Grafico contenente il valore del prodotto in euro per fase} + \end{figure} \paragraph{Schedule variance} \begin{figure}[H] @@ -39,6 +57,13 @@ \subsubsection{Calcolo metriche gestione delle risorse} \caption{Grafico contenente il valore dello schedule variance per fase} \label{fig:Grafico contenente il valore dello schedule variance per fase} \end{figure} + \begin{figure}[H] + \centering + \includegraphics[width=0.8\linewidth]{./res/images/SV_2.png} + \caption{Grafico contenente il valore dello schedule variance per fase} + \label{fig:Grafico contenente il valore dello schedule variance per fase} + \end{figure} + \paragraph{Cost Variance} \begin{figure}[H] @@ -47,8 +72,14 @@ \subsubsection{Calcolo metriche gestione delle risorse} \caption{Grafico contenente il valore dello cost variance per fase} \label{fig:Grafico contenente il valore dello cost variance per fase} \end{figure} + \begin{figure}[H] + \centering + \includegraphics[width=0.8\linewidth]{./res/images/CV_2.png} + \caption{Grafico contenente il valore dello cost variance per fase} + \label{fig:Grafico contenente il valore dello cost variance per fase} + \end{figure} -\subsubsection{Calcolo metriche gestione dei rischi} +\subsubsection{Calcolo metriche gestione dei rischi - QP2} \paragraph{Unbudgeted Risks} Per monitorare i rischi non preventivati riscontrati durante l'avanzamento del progetto si sono raccolte le misurazioni nei seguenti grafici: @@ -70,15 +101,114 @@ \subsubsection{Calcolo metriche gestione dei rischi} \begin{figure}[H] \centering \includegraphics[width=0.8\linewidth]{./res/images/RischiNonPrevent_3.png} - \caption{Grafico periodo/rischio per le fasi che vanno dalla progettazione della technology baseline all'incremento 5} - \label{fig:Grafico periodo/rischio per le fasi che vanno dalla progettazione della technology baseline all'incremento 5} + \caption{Grafico periodo/rischio per le fasi che vanno dalla progettazione della technology baseline all'incremento VI} + \label{fig:Grafico periodo/rischio per le fasi che vanno dalla progettazione della technology baseline all'incremento VI} \end{figure} - -%\subsection{Verifica prodotto} + + \begin{figure}[H] + \centering + \includegraphics[width=0.8\linewidth]{./res/images/RischiNonPreven_4.png} + \caption{Grafico periodo/rischio per le fasi che vanno dall'incremento VII all'incremento X} + \label{fig:Grafico periodo/rischio per le fasi che vanno dall'incremento VII all'incremento X} + \end{figure} + +\subsubsection{Calcolo metriche sviluppo - QP3} +\paragraph{Satisfied mandatory requirements} + \begin{figure}[H] + \centering + \includegraphics[width=0.8\linewidth]{./res/images/QM-PROC-7-SMR.png} + \caption{Grafico periodo/percentuale di requisiti obbligatori soddisfatti per le fasi che vanno dall'incremento VII all'incremento X} + \label{fig:Grafico periodo/percentuale di requisiti obbligatori soddisfatti per le fasi che vanno dall'incremento VII all'incremento X} + \end{figure} +\paragraph{Satisfied desirable requirements} + \begin{figure}[H] + \centering + \includegraphics[width=0.8\linewidth]{./res/images/QM-PROC-8-SDR.png} + \caption{Grafico periodo/percentuale di requisiti desiderabili soddisfatti per le fasi che vanno dall'incremento VII all'incremento X} + \label{fig:Grafico periodo/percentuale di requisiti desiderabili soddisfatti per le fasi che vanno dall'incremento VII all'incremento X} + \end{figure} +\paragraph{Satisfied optional requirements} + \begin{figure}[H] + \centering + \includegraphics[width=0.8\linewidth]{./res/images/QM-PROC-9-SOR.png} + \caption{Grafico periodo/percentuale di requisiti opzionali soddisfatti per le fasi che vanno dall'incremento VII all'incremento X} + \label{fig:Grafico periodo/percentuale di requisiti opzionali soddisfatti per le fasi che vanno dall'incremento VII all'incremento X} + \end{figure} +\paragraph{Numero di commit} +\begin{figure}[H] + \centering + \includegraphics[width=0.8\linewidth]{./res/images/QM-PROC-10-NCOM.png} + \caption{Grafico periodo/numero di commit per le fasi che vanno dall'incremento VII all'incremento X} + \label{fig:Grafico periodo/numero di commit per le fasi che vanno dall'incremento VII all'incremento X} + \end{figure} + +\subsubsection{Calcolo metriche verifica - QP4} +\paragraph{Code coverage} +\begin{figure}[H] + \centering + \includegraphics[width=0.8\linewidth]{./res/images/QM-TEST-1-COCO.png} + \caption{Grafico periodo/percentuale di code coverage per le fasi che vanno dall'incremento VII all'incremento X} + \label{fig:Grafico periodo/percentuale di code coverage per le fasi che vanno dall'incremento VII all'incremento X} + \end{figure} +\paragraph{Condition coverage} +\begin{figure}[H] + \centering + \includegraphics[width=0.8\linewidth]{./res/images/QM-TEST-2-CONCO.png} + \caption{Grafico periodo/percentuale di condition coverage per le fasi che vanno dall'incremento VII all'incremento X} + \label{fig:Grafico periodo/percentuale di condition coverage per le fasi che vanno dall'incremento VII all'incremento X} + \end{figure} +\paragraph{Line coverage} +\begin{figure}[H] + \centering + \includegraphics[width=0.8\linewidth]{./res/images/QM-TEST-3-LOCO.png} + \caption{Grafico periodo/rischio per le fasi che vanno dall'incremento VII all'incremento X} + \label{fig:Grafico periodo/rischio per le fasi che vanno dall'incremento VII all'incremento X} + \end{figure} +\paragraph{Passed test cases percentage} +\begin{figure}[H] + \centering + \includegraphics[width=0.8\linewidth]{./res/images/QM-TEST-4-PTCP.png} + \caption{Grafico periodo/percentuale di test case passati per le fasi che vanno dall'incremento VII all'incremento X} + \label{fig:Grafico periodo/percentuale di test case passati per le fasi che vanno dall'incremento VII all'incremento X} + \end{figure} +\paragraph{Failed test cases percentage} +\begin{figure}[H] + \centering + \includegraphics[width=0.8\linewidth]{./res/images/QM-TEST-5-FTCP.png} + \caption{Grafico periodo/percentuale di test case falliti per le fasi che vanno dall'incremento VII all'incremento X} + \label{fig:Grafico periodo/percentuale di test case falliti per le fasi che vanno dall'incremento VII all'incremento X} + \end{figure} +\paragraph{Bug-fixing percentage} +\begin{figure}[H] + \centering + \includegraphics[width=0.8\linewidth]{./res/images/QM-TEST-6-BFP.png} + \caption{Grafico periodo/percentuale di bug sistemati per le fasi che vanno dall'incremento VII all'incremento X} + \label{fig:Grafico periodo/percentuale di bug sistemati per le fasi che vanno dall'incremento VII all'incremento X} + \end{figure} +\paragraph{Complessità media dei test di classe} +\begin{figure}[H] + \centering + \includegraphics[width=0.8\linewidth]{./res/images/QM-TEST-7-CMTC.png} + \caption{Grafico periodo/complessità media per le fasi che vanno dall'incremento VII all'incremento X} + \label{fig:Grafico periodo/complessità media per le fasi che vanno dall'incremento VII all'incremento X} + \end{figure} + + +\subsubsection{Calcolo metriche qualità - QP5} +\paragraph{Percentuale delle metriche soddisfatte} +\begin{figure}[H] + \centering + \includegraphics[width=0.8\linewidth]{./res/images/QM-PROC-11-PMS.png} + \caption{Grafico periodo/percentuale metriche soddisfatte per le fasi che vanno dall'incremento VII all'incremento X} + \label{fig:Grafico periodo/percentuale metriche soddisfatte per le fasi che vanno dall'incremento VII all'incremento X} + \end{figure} + +\subsection{Verifica prodotto} + \subsection{Verifica documentazione} -\subsubsection{Calcolo metriche comprensione} +\subsubsection{Calcolo metriche comprensione - QC1} \paragraph{Indice di Gulpease} Per verificare quanto sono leggibili i documenti redatti si utilizza \glock{l'indice di Gulpease}, di seguito i grafici contenenti i risultati ottenuti: @@ -97,6 +227,13 @@ \subsubsection{Calcolo metriche comprensione} \label{fig:Grafico indice di gulpease periodo di progettazione della technology baseline.} \end{figure} +\begin{figure}[H] + \centering + \includegraphics[width=0.8\linewidth]{./res/images/gulpease_3.png} + \caption{Grafico periodo/indice di gulpease nel periodo dall'incremento VI al X.} + \label{fig:Grafico indice di gulpease periodo dall'incremento VI al X.} +\end{figure} + \paragraph{Correttezza ortografica} È stato effettuato un controllo di ortografia e di seguito vengono illustrati i grafici contenenti i risultati ottenuti: @@ -113,3 +250,120 @@ \subsubsection{Calcolo metriche comprensione} \caption{Grafico periodo/errori ortografici nel periodo di progettazione della technology baseline.} \label{fig:Grafico errori ortografici durante il periodo di progettazione della technology baseline.} \end{figure} + +\begin{figure}[H] + \centering + \includegraphics[width=0.8\linewidth]{./res/images/ortografia_3.png} + \caption{Grafico periodo/errori ortografici nel periodo dall'incremento VI al X.} + \label{fig:Grafico errori ortografici durante il periodo dall'incremento VI al X.} +\end{figure} + +\paragraph{Limite lunghezza video tutorial} +\begin{figure}[H] + \centering + \includegraphics[width=0.8\linewidth]{./res/images/LLVT.png} + \caption{Grafico periodo/lunghezza video per le fasi che vanno dall'incremento VII all'incremento X} + \label{fig:Grafico periodo/lunghezza video per le fasi che vanno dall'incremento VII all'incremento X} + \end{figure} + +\subsubsection{Calcolo metriche sicurezza - QC2} +\paragraph{Numero di vulnerabilità rilevate} +\begin{figure}[H] + \centering + \includegraphics[width=0.8\linewidth]{./res/images/QM-PROD-4-NVUL.png} + \caption{Grafico periodo/numero di vulnerabilità per le fasi che vanno dall'incremento VII all'incremento X} + \label{fig:Grafico periodo/numero di vulnerabilità per le fasi che vanno dall'incremento VII all'incremento X} + \end{figure} +\paragraph{Tempo di risoluzione vulnerabilità} +\begin{figure}[H] + \centering + \includegraphics[width=0.8\linewidth]{./res/images/QM-PROD-5-TVUL.png} + \caption{Grafico periodo/tempo di risoluzione per le fasi che vanno dall'incremento VII all'incremento X} + \label{fig:Grafico periodo/tempo di risoluzione per le fasi che vanno dall'incremento VII all'incremento X} + \end{figure} + +\subsubsection{Calcolo metriche affidabilità - QC3} +\paragraph{Numero di bug rilevati} +\begin{figure}[H] + \centering + \includegraphics[width=0.8\linewidth]{./res/images/QM-PROD-6-NBUG.png} + \caption{Grafico periodo/numero di bug per le fasi che vanno dall'incremento VII all'incremento X} + \label{fig:Grafico periodo/numero di bug per le fasi che vanno dall'incremento VII all'incremento X} + \end{figure} +\paragraph{Tempo stimato risoluzione bug} +\begin{figure}[H] + \centering + \includegraphics[width=0.8\linewidth]{./res/images/QM-PROD-7-TBUG.png} + \caption{Grafico periodo/tempo di risoluzione per le fasi che vanno dall'incremento VII all'incremento X} + \label{fig:Grafico periodo/tempo di risoluzione per le fasi che vanno dall'incremento VII all'incremento X} + \end{figure} + +\subsubsection{Calcolo metriche efficienza - QC4} +\paragraph{Risposta media} +\begin{figure}[H] + \centering + \includegraphics[width=0.8\linewidth]{./res/images/QM-PROD-8-RM.png} + \caption{Grafico periodo/risposta media per le fasi che vanno dall'incremento VII all'incremento X} + \label{fig:Grafico periodo/risposta media per le fasi che vanno dall'incremento VII all'incremento X} + \end{figure} + +\subsubsection{Calcolo metriche usabilità - QC5} +\paragraph{Profondità dell'albero delle azioni} +\begin{figure}[H] + \centering + \includegraphics[width=0.8\linewidth]{./res/images/QM-PROD-9-PAA.png} + \caption{Grafico periodo/numero di click per le fasi che vanno dall'incremento VII all'incremento X} + \label{fig:Grafico periodo/numero di click per le fasi che vanno dall'incremento VII all'incremento X} + \end{figure} +\paragraph{Profondità dell'albero delle pagine} +\begin{figure}[H] + \centering + \includegraphics[width=0.8\linewidth]{./res/images/QM-PROD-10-PAP.png} + \caption{Grafico periodo/profondità pagine per le fasi che vanno dall'incremento VII all'incremento X} + \label{fig:Grafico periodo/profondità pagine per le fasi che vanno dall'incremento VII all'incremento X} + \end{figure} + +\subsubsection{Calcolo metriche manutenibilità - QC6} +\paragraph{Complessità ciclomatica media} +\begin{figure}[H] + \centering + \includegraphics[width=0.8\linewidth]{./res/images/QM-PROD-11-COCIM.png} + \caption{Grafico periodo/complessità ciclomatica per le fasi che vanno dall'incremento VII all'incremento X} + \label{fig:Grafico periodo/complessità ciclomatica per le fasi che vanno dall'incremento VII all'incremento X} + \end{figure} +\paragraph{Complessità della classe} +\begin{figure}[H] + \centering + \includegraphics[width=0.8\linewidth]{./res/images/QM-PROD-12-CCLA.png} + \caption{Grafico periodo/complessità per le fasi che vanno dall'incremento VII all'incremento X} + \label{fig:Grafico periodo/complessità per le fasi che vanno dall'incremento VII all'incremento X} + \end{figure} +\paragraph{Numero di code smell rilevati} +\begin{figure}[H] + \centering + \includegraphics[width=0.8\linewidth]{./res/images/QM-PROD-13-NCS.png} + \caption{Grafico periodo/numero di code smell per le fasi che vanno dall'incremento VII all'incremento X} + \label{fig:Grafico periodo/rischio per le fasi che vanno dall'incremento VII all'incremento X} + \end{figure} +\paragraph{Tempo di risoluzione code smell} +\begin{figure}[H] + \centering + \includegraphics[width=0.8\linewidth]{./res/images/QM-PROD-14-TCS.png} + \caption{Grafico periodo/tempo di risoluzione per le fasi che vanno dall'incremento VII all'incremento X} + \label{fig:Grafico periodo/tempo di risoluzione per le fasi che vanno dall'incremento VII all'incremento X} + \end{figure} +\paragraph{Percentuale di duplicazione del codice} +\begin{figure}[H] + \centering + \includegraphics[width=0.8\linewidth]{./res/images/QM-PROD-15-DUPC.png} + \caption{Grafico periodo/percentuale di duplicazione per le fasi che vanno dall'incremento VII all'incremento X} + \label{fig:Grafico periodo/percentuale di duplicazione per le fasi che vanno dall'incremento VII all'incremento X} + \end{figure} +\paragraph{Numero di violazioni standard di codifica} +\begin{figure}[H] + \centering + \includegraphics[width=0.8\linewidth]{./res/images/QM-PROD-16-NVSC.png} + \caption{Grafico periodo/numero di violazione per le fasi che vanno dall'incremento VII all'incremento X} + \label{fig:Grafico periodo/numero di violazione per le fasi che vanno dall'incremento VII all'incremento X} + \end{figure} + diff --git a/esterni/piano_qualifica/res/sections/Sez6-ValutazioniMiglioramento/Valutazione.tex b/esterni/piano_qualifica/res/sections/Sez6-ValutazioniMiglioramento/Valutazione.tex index eda152e..e52542c 100644 --- a/esterni/piano_qualifica/res/sections/Sez6-ValutazioniMiglioramento/Valutazione.tex +++ b/esterni/piano_qualifica/res/sections/Sez6-ValutazioniMiglioramento/Valutazione.tex @@ -5,7 +5,7 @@ \section{Valutazioni di miglioramento} \subsection{Valutazioni sull'organizzazione} \begin{center} - \rowcolors{2}{white}{lightest-grayest} + \rowcolors{2}{lightest-grayest}{white} \begin{longtable}{|p{3cm}|p{6cm}|p{6cm}|} \hline \rowcolor{lighter-grayer} @@ -30,7 +30,14 @@ \section{Valutazioni di miglioramento} & Durante l'incremento IV non è stato possibile organizzarsi con il proponente per trovarsi di persona, dal momento che si è scatenata un'epidemia (COVID-19) in città e sono state prese misure cautelative nel padovano e nei dintorni. & - Al fine di mostrare al proponente quanto è stato fatto, in riferimento a quanto riportato nel verbale VI\_2020-02-24\_14, è stato realizzato un video dimostrativo di breve durata per il primo \textit{proof of concept}. Vista la bassa complessità e il breve tempo di realizzazione, il gruppo prenderà in considerazione, oltre alle videoconferenze, la creazione di video dimostrativi, qualora non fosse possibile incontrarsi con il proponente, incentivando lo \textit{smart working}. \\ + Al fine di mostrare al proponente quanto è stato fatto, in riferimento a quanto riportato nel verbale VI\_2020-02-24\_14, è stato realizzato un video dimostrativo di breve durata per il primo \textit{proof of concept}. Vista la bassa complessità e il breve tempo di realizzazione, il gruppo ha previsto, oltre alle videoconferenze, la creazione di video dimostrativi, qualora non fosse possibile incontrarsi con il proponente, incentivando lo \textit{smart working}. \\ + \hline + + Incremento VII + & + Durante l'incremento VII non è stato ancora possibile organizzare incontri di persona, dal momento l'epidemia COVID-19 ha richiesto misure cautelative in tutta Italia. + & + Al fine di mantenere alta la produttività e la comunicazione con i membri del gruppo, sono stati organizzati, con gli stessi, degli incontri informali tramite \glock{Discord} per fare il punto della situazione, all'inizio di ciascun incremento; in questo modo è possibile discutere di eventuali problematiche riscontrate nel corso dello sviluppo. \\ \hline \caption{Tabella contenente le valutazioni sull'organizzazione} @@ -38,12 +45,9 @@ \section{Valutazioni di miglioramento} \end{longtable} \end{center} - -\newpage - \subsection{Valutazioni sui ruoli} \begin{center} - \rowcolors{2}{lightest-grayest}{white} + \rowcolors{2}{white}{lightest-grayest} \begin{longtable}{|p{2.5cm}|p{2.5cm}|p{5cm}|p{5cm}|} \hline \rowcolor{lighter-grayer} @@ -98,7 +102,7 @@ \section{Valutazioni di miglioramento} & Durante la progettazione della technology baseline, sono stati rilevati alcuni problemi in merito all'utilizzo di una sola repository di progetto per realizzare interamente il prodotto. Il problema rilevato riguardava lo sviluppo basato su una ampia astrazione dei branch, che può portare a difficoltà di coordinamento e confusione nell'identificazione dei componenti. & - Sono stati introdotti i \textit{Git Submodules} al fine di separare la complessità e agevolare il processo di sviluppo delle componenti software. L'amministratore ha quindi stanziato un sotto-modulo per ciascun componente, una volta identificato, e lo ha documentato nelle \dext{Norme di Progetto v2.0.0}. Ciascun membro del gruppo è stato aggiunto alle repository e per ognuna sono state replicate e integrate le configurazioni principali. \\ + Sono stati introdotti i \textit{Git Submodules} al fine di separare la complessità e agevolare il processo di sviluppo delle componenti software. L'amministratore ha quindi stanziato un sotto-modulo per ciascun componente, una volta identificato, e lo ha documentato nelle \dext{Norme di Progetto v2.3.0}. Ciascun membro del gruppo è stato aggiunto alle repository e per ognuna sono state replicate e integrate le configurazioni principali. \\ \hline Progettazione technology baseline @@ -117,17 +121,27 @@ \section{Valutazioni di miglioramento} Alcuni programmatori si sono trovati in difficoltà nella codifica di alcune funzionalità previste nell'incremento, viste le nuove tecnologie previste dal capitolato. & Al fine di non rallentare l'incremento, i programmatori sono stati affiancati direttamente su \glock{Discord} con i progettisti per portare a termine l'incremento in modo consono. I programmatori sono stati notificati di rileggere le guide fornite nelle \textit{Norme di Progetto} e indicare eventuali mancanze, così da essere più pronti per futuri incrementi. \\ - + \hline + + Incremento VIII + & + Progettista + & + Alcuni progettisti hanno avuto difficoltà nell'uso corretto dei design pattern e degli stili architetturali da adottare nei vari componenti software. + & + Per non rallentare lo sviluppo, i progettisti sono stati messi al corrente del materiale didattico messo a disposizione dal professor Cardin in materia di \textit{design pattern}. Per maggiore sicurezza, sono stati richiesti dei confronti via email con il professore per accertare eventuali errori su alcune scelte architetturali. \\ \hline \caption{Tabella contenente le valutazioni sui ruoli} \end{longtable} \end{center} - + + \newpage + \subsection{Valutazioni sugli strumenti} \begin{center} - \rowcolors{2}{white}{lightest-grayest} + \rowcolors{2}{lightest-grayest}{white} \begin{longtable}{|p{2.5cm}|p{2.5cm}|p{5cm}|p{5cm}|} \hline \rowcolor{lighter-grayer} @@ -177,7 +191,16 @@ \section{Valutazioni di miglioramento} Alcuni membri del gruppo, che erano giù riusciti a configurare gli strumenti nel proprio sistema operativo, hanno prontamente aiutato tramite una brevissima chiamata \glock{Discord} coloro che avevano problemi. Sono state messe a disposizione, da parte dell'amministratore, ulteriori guide sulla configurazione base dei linguaggi di programmazione che vanno aggiunti agli strumenti. \\ \hline + Incremento X + & + Node Package Manager (npm) + & + Durante lo sviluppo, ci sono stati dei problemi con le dipendenze del file \textit{package-lock.json} di \textit{npm} nella web app e si sono verificati dei malfunzionamenti non ben identificati. + & + Dopo un'attenta analisi dei programmatori, il problema è stato identificato velocemente; questo era dovuto al mancato versionamento del file \textit{package-lock.json}. Questo file, che in genere viene auto-generato da \textit{npm}, ha creato dei conflitti che rendevano la web app inutilizzabile, poiché venivano integrate delle dipendenze obsolete. Al fine di evitare nuovamente questo tipo di problemi, l'amministratore è stato messo al corrente delle eventuali politiche di versionamento da adottare nelle repository che fanno uso di \textit{npm}. \\ + \hline + \caption{Tabella contenente le valutazioni sugli strumenti} \end{longtable} diff --git a/esterni/piano_qualifica/res/sections/Sez7-GestioneCambiamenti/Cambiamenti.tex b/esterni/piano_qualifica/res/sections/Sez7-GestioneCambiamenti/Cambiamenti.tex index a827f2f..8c5c78b 100644 --- a/esterni/piano_qualifica/res/sections/Sez7-GestioneCambiamenti/Cambiamenti.tex +++ b/esterni/piano_qualifica/res/sections/Sez7-GestioneCambiamenti/Cambiamenti.tex @@ -1,5 +1,5 @@ \section{Gestione dei cambiamenti} - In questa sezione è contenuto il tracciamento dei cambiamenti migliorativi che si sono svolti a seguito delle osservazioni da parte del proponente e del committente, seguendo il formalismo riportato nelle \dext{Norme di progetto v2.0.0}. + In questa sezione è contenuto il tracciamento dei cambiamenti migliorativi che si sono svolti a seguito delle osservazioni da parte del proponente e del committente, seguendo il formalismo riportato nelle \dext{Norme di progetto v2.3.0}. Per questioni di dimensione, alcune parole nell'intestazione della tabella sono state abbreviate. \begin{center} diff --git a/esterni/verbali/VE_2020-03-25_20/main.tex b/esterni/verbali/VE_2020-03-25_20/main.tex index a1acfc1..50a7062 100644 --- a/esterni/verbali/VE_2020-03-25_20/main.tex +++ b/esterni/verbali/VE_2020-03-25_20/main.tex @@ -12,22 +12,22 @@ % -------------- \newcommand{\docNome}{ VERBALE RIUNIONE \#20 } -\newcommand{\docBaseline}{+b0.13} -\newcommand{\docVersione}{0.0.1\docBaseline} +\newcommand{\docBaseline}{+b0.15} +\newcommand{\docVersione}{1.0.0\docBaseline} \newcommand{\docNomeProgetto}{ 25 marzo 2020 } -\newcommand{\docStatus}{Da approvare} +\newcommand{\docStatus}{Approvato} \newcommand{\docUso}{Esterno} % -------------- \newcommand{\docRedattori}{ - Giuseppe Vito Bitetti + Giovanni Vidotto } \newcommand{\docVerificatori}{ - NA + Alessandro Tommasin } \newcommand{\docApprovazione}{ - NA + Giuseppe Vito Bitetti } % ----- NON MODIFICARE SOTTO QUESTA RIGA ----- diff --git a/esterni/verbali/VE_2020-03-25_20/res/contenuto.tex b/esterni/verbali/VE_2020-03-25_20/res/contenuto.tex index b012814..d415beb 100644 --- a/esterni/verbali/VE_2020-03-25_20/res/contenuto.tex +++ b/esterni/verbali/VE_2020-03-25_20/res/contenuto.tex @@ -23,8 +23,8 @@ \subsection*{Presenze} \item Fouad Mouad; \item Mariano Sciacco; \item Alessandro Tommasin; - \item Giuseppe Vito Bitetti (segretario); - \item Giovanni Vidotto; + \item Giuseppe Vito Bitetti; + \item Giovanni Vidotto (segretario); \item Nicolò Frison; \end{itemize} \item \textbf{assenti: } diff --git a/esterni/verbali/VE_2020-03-25_20/res/registro.tex b/esterni/verbali/VE_2020-03-25_20/res/registro.tex index 4effb9a..3c484ce 100644 --- a/esterni/verbali/VE_2020-03-25_20/res/registro.tex +++ b/esterni/verbali/VE_2020-03-25_20/res/registro.tex @@ -10,9 +10,11 @@ \section*{Registro delle modifiche} \endfirsthead % ----- Modificare da qui ----- - + 1.0.0+b0.12 & Approvazione del documento & 2020-03-27 & Giuseppe Vito Bitetti & Responsabile \\ + \hline + 0.0.2+b0.12 & Stesura e revisione del documento & 2020-03-25 & Giovanni Vidotto e Alessandro Tommasin & Amministratore e verificatore \\ \hline - 0.0.1+b0.13 & Creazione e stesura iniziale del documento & 2020-03-25 & Giuseppe Vito Bitetti & Redattore \\ + 0.0.1+b0.12 & Creazione iniziale del documento & 2020-03-25 & Giovanni Vidotto & Redattore \\ \hline \end{longtable} diff --git a/esterni/verbali/VE_2020-03-31_21/main.tex b/esterni/verbali/VE_2020-03-31_21/main.tex index 323cb5c..75af008 100644 --- a/esterni/verbali/VE_2020-03-31_21/main.tex +++ b/esterni/verbali/VE_2020-03-31_21/main.tex @@ -12,10 +12,10 @@ % -------------- \newcommand{\docNome}{ VERBALE RIUNIONE \#21 } -\newcommand{\docBaseline}{+b0.13} -\newcommand{\docVersione}{0.0.1\docBaseline} +\newcommand{\docBaseline}{+b0.15} +\newcommand{\docVersione}{1.0.0\docBaseline} \newcommand{\docNomeProgetto}{ 31 marzo 2020 } -\newcommand{\docStatus}{Da approvare} +\newcommand{\docStatus}{Approvato} \newcommand{\docUso}{Esterno} % -------------- @@ -24,10 +24,10 @@ Mariano Sciacco } \newcommand{\docVerificatori}{ - NA + Nicolò Frison } \newcommand{\docApprovazione}{ - NA + Giovanni Vidotto } % ----- NON MODIFICARE SOTTO QUESTA RIGA ----- diff --git a/esterni/verbali/VE_2020-03-31_21/res/registro.tex b/esterni/verbali/VE_2020-03-31_21/res/registro.tex index 60c305d..059be58 100644 --- a/esterni/verbali/VE_2020-03-31_21/res/registro.tex +++ b/esterni/verbali/VE_2020-03-31_21/res/registro.tex @@ -10,7 +10,10 @@ \section*{Registro delle modifiche} \endfirsthead % ----- Modificare da qui ----- - + 1.0.0+b0.13 & Approvazione del documento & 2020-04-01 & Giovanni Vidotto & Responsabile \\ + \hline + 0.0.2+b0.13 & Stesura e revisione del documento & 2020-03-31 & Mariano Sciacco e Nicolò Frison & Amministratore e verificatore \\ + \hline 0.0.1+b0.13 & Creazione iniziale del documento & 2020-03-31 & Mariano Sciacco & Redattore \\ \hline diff --git a/esterni/verbali/VE_2020-04-10_23/main.tex b/esterni/verbali/VE_2020-04-10_23/main.tex new file mode 100644 index 0000000..6021dd9 --- /dev/null +++ b/esterni/verbali/VE_2020-04-10_23/main.tex @@ -0,0 +1,86 @@ +%!TEX output_directory = .cache +% --------------------------- +% [ Verbale ] +% ---------------------- +% Red Round Robin +% Progetto di SWE (2019-20) +% Template by Maxelweb +% --------------------------- + +% Configurazione primaria del documento + +% -------------- + +\newcommand{\docNome}{ VERBALE RIUNIONE \#23 } +\newcommand{\docBaseline}{+b0.15} +\newcommand{\docVersione}{1.0.0\docBaseline} +\newcommand{\docNomeProgetto}{ 10 aprile 2020 } +\newcommand{\docStatus}{Approvato} +\newcommand{\docUso}{Esterno} + +% -------------- + +\newcommand{\docRedattori}{ + Giuseppe Vito Bitetti +} +\newcommand{\docVerificatori}{ + Mariano Sciacco +} +\newcommand{\docApprovazione}{ + Alessandro Tommasin +} + +% ----- NON MODIFICARE SOTTO QUESTA RIGA ----- + +% --------------------------- +% Configurazioni +% --------------------------- + +\documentclass[11pt,a4paper,table]{article} + +\input{res/configurazione} + +% --------------------------- +% Dati frontespizio +% --------------------------- + +\title{\hr \huge \textsc{\docNome} \\ + \vspace{11pt} \large \textsc{\docNomeProgetto} \hr} + +\author{} % Non toccare +\date{} % Non toccare + +% --------------------------- +% Composizione del documento +% --------------------------- + +\begin{document} + +% Frontespizio + +\pagenumbering{gobble} +\DeactivateBG +\input{res/frontespizio} + +% Registro delle modifiche + +\newpage +\ActivateBG +\pagenumbering{Roman} +\input{res/registro} + + +% Contenuto + +\newpage +\input{res/contenuto} + + +% Registro Decisioni + +\newpage +\input{res/tracciamenti} + +\end{document} + +% EOF diff --git a/esterni/verbali/VE_2020-04-10_23/res/configurazione.tex b/esterni/verbali/VE_2020-04-10_23/res/configurazione.tex new file mode 100644 index 0000000..7e2bd53 --- /dev/null +++ b/esterni/verbali/VE_2020-04-10_23/res/configurazione.tex @@ -0,0 +1,169 @@ +% Ultimo aggiornamento: 14 dicembre 2019 +% Configurazione delle dipendenze e dei package + + +\usepackage{geometry} +\usepackage{graphicx} +\usepackage[T1]{fontenc} +\usepackage[utf8]{inputenc} +\usepackage{charter} +\usepackage{eurosym} +\usepackage[italian]{babel} +\usepackage{float} +\usepackage{subcaption} +\usepackage{wrapfig} +\usepackage{fancyhdr} +\usepackage{lastpage} +\usepackage{amsfonts} +\usepackage{fancyvrb} +\usepackage{background} +\usepackage{xcolor} +\usepackage{hyperref} +\usepackage{listings} +\usepackage{longtable} +\usepackage{colortbl} +\usepackage{tikz} +\usepackage{titlesec} + + +% Impostazione sottotitolo di quarto livello e quinto livello + +\setcounter{secnumdepth}{4} +\setcounter{tocdepth}{4} + +\titleformat{\paragraph} +{\normalfont\normalsize\bfseries}{\theparagraph}{1em}{} +\titlespacing*{\paragraph}{0pt}{2.25ex plus 1ex minus .2ex}{1.5ex plus .2ex} + +\titleformat{\subparagraph} +{\normalfont\normalsize\bfseries}{\thesubparagraph}{1em}{} +\titlespacing*{\subparagraph}{0pt}{1.75ex plus 1ex minus .2ex}{.75ex plus .1ex} + + +% Impostazioni pagina e margini + +\geometry{ + margin=1.0in, + top=19.2mm, % NON TOCCARE + bottom=30mm, + left=20mm, + right=20mm +} + +% Definizione colori + +\definecolor{footer-gray}{HTML}{808080} +\definecolor{light-gray}{gray}{0.6} +\definecolor{light-grayer}{gray}{0.75} +\definecolor{lighter-grayer}{gray}{0.85} +\definecolor{lightest-grayest}{gray}{0.94} +\definecolor{codegreen}{rgb}{0,0.4,0.2} +\definecolor{codegray}{rgb}{0.5,0.5,0.5} +\definecolor{codepurple}{rgb}{0.58,0,0.82} +\definecolor{backcolour}{rgb}{0.95,0.95,0.96} + + +% Impostazione header e footer + +\pagestyle{fancy} +\setlength\headheight{33pt} +\renewcommand{\headrulewidth}{0pt} +\fancyhead{} +\lhead{\includegraphics[height=10mm]{res/images/logo.png}} +\rhead{\raisebox{1.4\height}{\leftmark}} + + +\renewcommand{\footrulewidth}{0.1pt} +\fancyfoot{} +\lfoot{ \textcolor{footer-gray}{\docNome - v\docVersione} } + +\renewcommand{\footrule}{\hbox to\headwidth{\color{light-grayer}\leaders\hrule height \footrulewidth\hfill}} +\rfoot{ \textcolor{footer-gray}{Pagina \thepage \hspace{1pt} di \pageref*{LastPage}} } + +% Grandezza paragrafi e spaziatura frasi + +\setlength{\parindent}{1.7em} +\setlength{\parskip}{1.1em} +\renewcommand{\baselinestretch}{1.05} + +% Colori link + +\hypersetup{ + colorlinks, + linkcolor=[HTML]{404040}, + citecolor={blue!50!black}, + urlcolor={red!50!black} +} +\PassOptionsToPackage{hyphens}{url}\usepackage{hyperref} + +% Equivalente a
+ +\newcommand{\hr}{\par\vspace{-.1\ht\strutbox}\noindent\hrulefill\par} + +% Tabelle e tabulazione + +\setlength{\tabcolsep}{10pt} +\renewcommand{\arraystretch}{1.4} + +% Unicode per simbolo euro + +\DeclareUnicodeCharacter{20AC}{\euro} + +% Configurazione sfondo + +\newcommand\DeactivateBG{\backgroundsetup{contents={}}} +\newcommand\ActivateBG{ \backgroundsetup{ + scale=1.0, + color=black, + opacity=1.0, + angle=0, + contents={% + \includegraphics[height=297mm]{res/images/background.png} + }% +}} + +% Codice e snippet + +\renewcommand{\lstlistingname}{Snippet} +\renewcommand{\lstlistlistingname}{Lista di \lstlistingname s} + + +\lstdefinestyle{chungusHighlight}{ + frame=tb, + backgroundcolor=\color{backcolour}, + commentstyle=\color{codegreen}, + keywordstyle=\color{magenta}\textbf, + numberstyle=\color{codegray}, + stringstyle=\color{codepurple}, + basicstyle={\ttfamily}, + breakatwhitespace=false, + breaklines=true, + captionpos=b, + keepspaces=true, + numbers=left, + numbersep=5pt, + showspaces=false, + showstringspaces=false, + showtabs=false, + numbers=none, + tabsize=2 +} + +\lstset{style=chungusHighlight} + + +% Comando per aggiungere le pagine di ogni sezione + +\newcommand{\yetAnotherSectionNamed}[1]{% + \newpage + \input{res/sections/#1} +}% + + +% Comando per i documenti esterni e il glossario + +\newcommand{\dext}[1]{\textsc{#1\textsubscript{\textit{D}}}} + +\newcommand{\glock}[1]{\textsc{#1\textsubscript{\textit{G}}}} + + diff --git a/esterni/verbali/VE_2020-04-10_23/res/contenuto.tex b/esterni/verbali/VE_2020-04-10_23/res/contenuto.tex new file mode 100644 index 0000000..0b1ba21 --- /dev/null +++ b/esterni/verbali/VE_2020-04-10_23/res/contenuto.tex @@ -0,0 +1,48 @@ +\section*{Introduzione} + +\subsection*{Luogo e data dell'incontro} + \begin{itemize} + \item \textbf{luogo:} \glock{Slack}; + \item \textbf{data:} 2020-04-10; + \item \textbf{ora di inizio:} 15:00; + \item \textbf{ora di fine:} 15:25. + \end{itemize} + +\subsection*{Ordine del giorno} + \begin{enumerate} + \item richiesta di conferma sui video tutorial per il manuale utente; + \item varie ed eventuali. + \end{enumerate} + +\subsection*{Presenze} + \begin{itemize} + \item \textbf{totale presenti:} 7 su 7 + \item \textbf{presenti: } + \begin{itemize} + \item Lorenzo Dei Negri; + \item Fouad Mouad; + \item Mariano Sciacco; + \item Alessandro Tommasin; + \item Giuseppe Vito Bitetti (segretario); + \item Giovanni Vidotto; + \item Nicolò Frison; + \end{itemize} + \item \textbf{assenti: } + \begin{itemize} + \item nessuno; + \end{itemize} + \item \textbf{partecipanti esterni:} + \begin{itemize} + \item Alex Beggiato (referente, SanMarco Informatica). + \end{itemize} + \end{itemize} + + +\newpage +\section*{Svolgimento} + + \subsection*{Richiesta di conferma sui video tutorial per il manuale utente} + Il gruppo ha richiesto un feedback, da parte di Alex Beggiato, sulla qualità e sulla bontà dei video tutorial prodotti per il manuale utente. + + \subsection*{Varie ed eventuali} + È stato fatto il punto della situazione, circa lo sviluppo del progetto, assieme al referente Alex Beggiato. diff --git a/esterni/verbali/VE_2020-04-10_23/res/frontespizio.tex b/esterni/verbali/VE_2020-04-10_23/res/frontespizio.tex new file mode 100644 index 0000000..986da9f --- /dev/null +++ b/esterni/verbali/VE_2020-04-10_23/res/frontespizio.tex @@ -0,0 +1,47 @@ + +% FRONTESPIZIO + +% Logo aziendale + +\begin{figure}[t!] + \centering + \includegraphics[height=10em]{res/images/logo.png} +\end{figure} + + +% Titolo principale + +\maketitle +\thispagestyle{empty} + + +% Riferimenti email e sito web + +\vspace{-6em} + +\begin{center} + \href{https://www.redroundrobin.site}{www.redroundrobin.site} --- \href{mailto:redroundrobin.site@gmail.com}{redroundrobin.site@gmail.com} +\end{center} + +\vspace{3em} + +% Informazioni documento + +\begin{table}[ht] + \begin{center} + \label{tab:Informazioni_Documento} + \begin{tabular}{r|l} + \multicolumn{2}{c}{ \textsc{Informazioni sul documento} } \\ + \hline + \textbf{Versione} & \docVersione \\ + \textbf{Uso} & \docUso \\ + \textbf{Stato} & \docStatus \\ + \textbf{Redattori} & \docRedattori \\ + \textbf{Verificatori} & \docVerificatori \\ + \textbf{Approvazione} & \docApprovazione \\ + \end{tabular} + \end{center} +\end{table} + + + diff --git a/esterni/verbali/VE_2020-04-10_23/res/images/background.png b/esterni/verbali/VE_2020-04-10_23/res/images/background.png new file mode 100644 index 0000000..9dcca68 Binary files /dev/null and b/esterni/verbali/VE_2020-04-10_23/res/images/background.png differ diff --git a/esterni/verbali/VE_2020-04-10_23/res/images/logo.png b/esterni/verbali/VE_2020-04-10_23/res/images/logo.png new file mode 100644 index 0000000..32071fe Binary files /dev/null and b/esterni/verbali/VE_2020-04-10_23/res/images/logo.png differ diff --git a/esterni/verbali/VE_2020-04-10_23/res/registro.tex b/esterni/verbali/VE_2020-04-10_23/res/registro.tex new file mode 100644 index 0000000..e57cbe9 --- /dev/null +++ b/esterni/verbali/VE_2020-04-10_23/res/registro.tex @@ -0,0 +1,21 @@ +\section*{Registro delle modifiche} + +\begin{center} + \rowcolors{2}{lightest-grayest}{white} + \begin{longtable}{|c|p{3.5cm}|c|p{3cm}|p{3cm}|} + \hline + \rowcolor{lighter-grayer} + \textbf{Versione} & \textbf{Descrizione} & \textbf{Data} & \textbf{Autore} & \textbf{Ruolo} \\ + \hline + \endfirsthead + + % ----- Modificare da qui ----- + 1.0.0+b0.15 & Approvazione del documento & 2020-04-13 & Alessandro Tommasin & Responsabile \\ + \hline + 0.0.2+b0.14 & Stesura e revisione del documento & 2020-04-10 & Giuseppe Vito Bitetti e Mariano Sciacco & Amministratore e verificatore \\ + \hline + 0.0.1+b0.14 & Creazione iniziale del documento & 2020-04-10 & Giuseppe Vito Bitetti & Redattore \\ + \hline + + \end{longtable} +\end{center} diff --git a/esterni/verbali/VE_2020-04-10_23/res/tracciamenti.tex b/esterni/verbali/VE_2020-04-10_23/res/tracciamenti.tex new file mode 100644 index 0000000..5c53c7c --- /dev/null +++ b/esterni/verbali/VE_2020-04-10_23/res/tracciamenti.tex @@ -0,0 +1,17 @@ +\section*{Tracciamento delle decisioni} + +\begin{center} + \rowcolors{2}{lightest-grayest}{white} + \begin{longtable}{|c|p{12.25cm}|} + \hline + \rowcolor{lighter-grayer} + \textbf{Codice} & \textbf{Descrizione} \\ + \hline + \endfirsthead + + \hline + VE\_2020-04-10\_23.1 & Decisione di fornire i video prodotti fin ora come allegato al manuale utente. \\ + \hline + + \end{longtable} +\end{center} diff --git a/interni/norme_progetto/main.tex b/interni/norme_progetto/main.tex index df5061f..bdd05fb 100644 --- a/interni/norme_progetto/main.tex +++ b/interni/norme_progetto/main.tex @@ -13,8 +13,8 @@ % -------------- \newcommand{\docNome}{ NORME DI PROGETTO } -\newcommand{\docBaseline}{+b0.10} -\newcommand{\docVersione}{2.0.0\docBaseline} +\newcommand{\docBaseline}{+b0.15} +\newcommand{\docVersione}{2.3.0\docBaseline} \newcommand{\docNomeProgetto}{ ThiReMa Project} \newcommand{\docStatus}{Approvato} \newcommand{\docUso}{Interno} @@ -31,16 +31,16 @@ } \newcommand{\docRedattori}{ Alessandro Tommasin \\& - Mariano Sciacco \\& - Giuseppe Vito Bitetti + Fouad Mouad \\& + Nicolò Frison } \newcommand{\docVerificatori}{ - Lorenzo Dei Negri \\& - Mariano Sciacco + Fouad Mouad \\& + Mariano Sciacco \\& + Lorenzo Dei Negri } \newcommand{\docApprovazione}{ - Giuseppe Vito Bitetti \\& - Fouad Mouad + Giovanni Vidotto } % ----- NON MODIFICARE SOTTO QUESTA RIGA ----- diff --git a/interni/norme_progetto/res/configurazione.tex b/interni/norme_progetto/res/configurazione.tex index 370ed5c..49411e2 100644 --- a/interni/norme_progetto/res/configurazione.tex +++ b/interni/norme_progetto/res/configurazione.tex @@ -2,7 +2,7 @@ % Configurazione delle dipendenze e dei package \usepackage{geometry} -\usepackage{graphicx} +\usepackage{graphicx} \usepackage{multirow} \usepackage[T1]{fontenc} \usepackage[utf8]{inputenc} @@ -12,13 +12,13 @@ \usepackage{float} \usepackage{subcaption} \usepackage{wrapfig} -\usepackage{fancyhdr} +\usepackage{fancyhdr} \usepackage{lastpage} \usepackage{amsfonts} \usepackage{fancyvrb} \usepackage{background} \usepackage{xcolor} -\usepackage{hyperref} +\usepackage{hyperref} \usepackage{listings} \usepackage{longtable} \usepackage{colortbl} @@ -29,6 +29,22 @@ \usepackage{courier} \usepackage{enumitem} +%highlight per js +\lstdefinelanguage{JavaScript}{ + keywords={typeof, new, true, false, catch, function, return, null, catch, switch, var, if, in, while, do, else, case, break}, + keywordstyle=\color{blue}\bfseries, + ndkeywords={class, export, boolean, throw, implements, import, this}, + ndkeywordstyle=\color{darkgray}\bfseries, + identifierstyle=\color{black}, + sensitive=false, + comment=[l]{//}, + morecomment=[s]{/*}{*/}, + commentstyle=\color{purple}\ttfamily, + stringstyle=\color{red}\ttfamily, + morestring=[b]', + morestring=[b]" +} + % Impostazione sottotitolo di quarto livello e quinto livello @@ -57,10 +73,10 @@ % Definizione colori \definecolor{footer-gray}{HTML}{808080} -\definecolor{light-gray}{gray}{0.6} -\definecolor{light-grayer}{gray}{0.75} -\definecolor{lighter-grayer}{gray}{0.85} -\definecolor{lightest-grayest}{gray}{0.94} +\definecolor{light-gray}{gray}{0.6} +\definecolor{light-grayer}{gray}{0.75} +\definecolor{lighter-grayer}{gray}{0.85} +\definecolor{lightest-grayest}{gray}{0.94} \definecolor{codegreen}{rgb}{0,0.4,0.2} \definecolor{codegray}{rgb}{0.5,0.5,0.5} \definecolor{codepurple}{rgb}{0.58,0,0.82} @@ -129,28 +145,28 @@ % Codice e snippet \renewcommand{\lstlistingname}{Snippet} -\renewcommand{\lstlistlistingname}{Lista di \lstlistingname s} +\renewcommand{\lstlistlistingname}{Lista di \lstlistingname s} -\lstset{basicstyle=\footnotesize\ttfamily,breaklines=true} +\lstset{basicstyle=\footnotesize\ttfamily,breaklines=true} \lstdefinestyle{chungusHighlight}{ frame=tb, - backgroundcolor=\color{backcolour}, + backgroundcolor=\color{backcolour}, commentstyle=\color{codegreen}, keywordstyle=\color{magenta}\textbf, numberstyle=\color{codegray}, stringstyle=\color{codepurple}, basicstyle={\ttfamily}, - breakatwhitespace=false, - breaklines=true, - captionpos=b, - keepspaces=true, - numbers=left, - numbersep=5pt, - showspaces=false, + breakatwhitespace=false, + breaklines=true, + captionpos=b, + keepspaces=true, + numbers=left, + numbersep=5pt, + showspaces=false, showstringspaces=false, showtabs=false, - numbers=none, + numbers=none, tabsize=2 } @@ -170,5 +186,3 @@ \newcommand{\dext}[1]{\textsc{#1\docBaseline\textsubscript{\textit{D}}}} \newcommand{\glock}[1]{\textsc{#1\textsubscript{\textit{G}}}} - - diff --git a/interni/norme_progetto/res/registro.tex b/interni/norme_progetto/res/registro.tex index ac3f09a..bcc82cc 100644 --- a/interni/norme_progetto/res/registro.tex +++ b/interni/norme_progetto/res/registro.tex @@ -10,23 +10,33 @@ \section*{Registro delle modifiche} \endfirsthead % ----- Modificare da qui ----- - - - 2.0.0+b0.10 & Approvazione per il rilascio esterno & 2019-03-09 & Fouad Mouad & Responsabile \\ + 2.3.0+b0.14 & Approvazione documento & 2019-04-06 & Giovanni Vidotto & Responsabile \\ + \hline + 2.2.1+b0.13 & Aggiornamento e verifica sezioni \S2.2.5, \S3.1.5, \S3.4.5, \S3.5.5 & 2019-04-01 & Nicolò Frison e Lorenzo Dei Negri & Amministratore \\ + \hline + 2.2.0+b0.12 & Approvazione documento & 2019-03-23 & Giuseppe Vito Bitetti & Responsabile \\ + \hline + 2.1.1+b0.11 & Aggiornamento e verifica sezioni \S2.2.5, \S3.1.5, \S3.4.5, \S3.5.5 & 2019-03-17 & Alessandro Tommasin e Fouad Mouad & Amministratore \\ + \hline + 2.1.0+b0.11 & Approvazione documento & 2019-03-16 & Lorenzo Dei Negri & Responsabile \\ + \hline + 2.0.2+b0.10 & Aggiornamento e verifica sezioni \S2.2.6, \S3.1.6, \S3.2.6, \S3.5.6 & 2019-03-14 & Nicolò Frison e Mariano Sciacco & Responsabile \\ + \hline + 2.0.1+b0.10 & Aggiornamento e verifica sezione \S2.2.4 & 2019-03-12 & Fouad Mouad e Mariano Sciacco & Responsabile \\ \hline - 1.1.0+b0.5 & Approvazione documento & 2019-02-05 & Giuseppe Vito Bitetti & Responsabile \\ + 2.0.0+b0.5 & Approvazione documento & 2019-02-05 & Giuseppe Vito Bitetti & Responsabile \\ \hline - 1.0.2+b0.4 & Aggiornamento e verifica sezione \S2, \S3 e \S4 & 2020-02-03 & Alessandro Tommasin, Mariano Sciacco e Lorenzo Dei Negri & Amministratore e verificatore \\ + 1.1.2+b0.4 & Aggiornamento e verifica sezione \S2, \S3 e \S4 & 2020-02-03 & Alessandro Tommasin, Mariano Sciacco e Lorenzo Dei Negri & Amministratore e verificatore \\ \hline - 1.0.1+b0.4 & Ristrutturazione e verifica delle sezioni \S2, \S3 e \S4 & 2020-01-30 & Alessandro Tommasin, Giuseppe Vito Bitetti e Mariano Sciacco & Amministratore e verificatore \\ + 1.1.1+b0.4 & Ristrutturazione e verifica delle sezioni \S2, \S3 e \S4 & 2020-01-30 & Alessandro Tommasin, Giuseppe Vito Bitetti e Mariano Sciacco & Amministratore e verificatore \\ \hline - 1.0.0+b0.4 & Approvazione per il rilascio esterno & 2019-01-15 & Alessandro Tommasin & Responsabile \\ + 1.1.0+b0.4 & Approvazione documento & 2019-01-15 & Alessandro Tommasin & Responsabile \\ \hline - 0.3.0+b0.3 & Aggiornamento sezione \S3.5 e \S3.7 & 2019-12-28 & Nicolò Frison & Amministratore \\ + 1.0.2+b0.3 & Aggiornamento sezione \S3.5 e \S3.7 & 2019-12-28 & Nicolò Frison & Amministratore \\ \hline - 0.2.1+b0.2 & Verifica sezione \S3.4, \S3.5, \S3.6, \S3.7 e \S3.9 & 2020-12-27 & Alessandro Tommasin e Mariano Sciacco & Verificatore\\ + 1.0.1+b0.2 & Verifica sezione \S3.4, \S3.5, \S3.6, \S3.7 e \S3.9 & 2020-12-27 & Alessandro Tommasin e Mariano Sciacco & Verificatore\\ \hline - 0.2.0+b0.2 & Approvazione documento & 2020-12-24 & Lorenzo Dei Negri & Responsabile \\ + 1.0.0+b0.2 & Approvazione documento & 2020-12-24 & Lorenzo Dei Negri & Responsabile \\ \hline 0.1.5+b0.1 & Stesura e verifica sezione \S3.9 & 2019-12-22 & Giuseppe Vito Bitetti e Alessandro Tommasin & Amministratore e verificatore \\ \hline diff --git a/interni/norme_progetto/res/sections/Sez1-Introduzione/introduzione.tex b/interni/norme_progetto/res/sections/Sez1-Introduzione/introduzione.tex index a499e7b..57a3a20 100644 --- a/interni/norme_progetto/res/sections/Sez1-Introduzione/introduzione.tex +++ b/interni/norme_progetto/res/sections/Sez1-Introduzione/introduzione.tex @@ -8,7 +8,7 @@ \section{Introduzione} \begin{itemize} \item una \textit{D} a pedice per indicare il nome di un particolare documento. \item una \textit{G} a pedice per indicare un termine che sarà - presente nel \dext{Glossario v2.0.0}. + presente nel \dext{Glossario v1.4.0}. \end{itemize} \subsection{Riferimenti} diff --git a/interni/norme_progetto/res/sections/Sez2-ProcessiPrimari/Sviluppo.tex b/interni/norme_progetto/res/sections/Sez2-ProcessiPrimari/Sviluppo.tex index e4aba3a..60b5708 100644 --- a/interni/norme_progetto/res/sections/Sez2-ProcessiPrimari/Sviluppo.tex +++ b/interni/norme_progetto/res/sections/Sez2-ProcessiPrimari/Sviluppo.tex @@ -79,15 +79,15 @@ \subsection{Sviluppo} \subparagraph{Scopo} L'attività di progettazione precede quella di codifica ed avviene successivamente all'analisi dei requisiti. \newline - In questa attività i progettisti hanno il compito di definire una soluzione del problema che sia soddisfacente per gli \glock{stakeholder}. + In questa attività i progettisti hanno il compito di definire una soluzione del problema che sia soddisfacente per gli \glock{stakeholder}. \newline Lo scopo della progettazione è definire l'architettura logica del prodotto da sviluppare e deve permettere di: \begin{itemize} \item garantire l'efficacia del prodotto, soddisfacendo tutti i requisiti individuati nell'attività di analisi, attraverso un sistema di qualità che persegua il principio di correttezza per costruzione; - \item garantire l'efficienza nella realizzazione del prodotto, impiegando parti riusabili con specifiche chiare, organizzate in modo da facilitarne la manutenzione, e realizzabili con risorse sostenibili; + \item garantire l'efficienza nella realizzazione del prodotto, impiegando parti riusabili con specifiche chiare, organizzate in modo da facilitarne la manutenzione, e realizzabili ottimizzando l'utilizzo delle risorse disponibili; \item gestire la complessità del sistema, suddividendolo fino ad ottenere delle parti di complessità trattabile, che possano essere fornite in ingresso all'attività di codifica come singoli compiti individuali che siano, quindi, fattibili, rapidi e verificabili. \end{itemize} - + \subparagraph{Aspettative} Le aspettative della progettazione è la definizione l'architettura logica del prodotto, la quale dovrà godere delle seguenti qualità: \begin{itemize} @@ -105,7 +105,7 @@ \subsection{Sviluppo} \item \textbf{coesione:} composta da parti raggruppate per obiettivi comuni, in modo da ridurre l'interdipendenza tra le componenti e quindi aumentare la manutenibilità e la comprensibilità; \item \textbf{basso accoppiamento:} composta da parti distinte con dipendenza bassa o nulla le une dalle altre. \end{itemize} - + \subparagraph{Descrizione} Per perseguire la qualità nella progettazione dell'architettura è necessario seguire le seguenti regole: \begin{itemize} @@ -117,12 +117,12 @@ \subsection{Sviluppo} \item evitare la definizione di dipendenze circolari tra classi; \item se possibile, definire sempre relazioni tra componenti con il minor grado di dipendenza realizzabile. \end{itemize} - L'attività di progettazione si articola nelle seguenti due parti: + L'attività di progettazione si articola nelle seguenti due parti: \begin{itemize} \item \textbf{progettazione architetturale:} definizione delle specifiche, ad alto livello, dell'architettura e delle componenti del prodotto, delle loro interazioni con le restanti parti del sistema e dei test di integrazione; al termine di questo periodo di progettazione si ottiene la technology baseline del progetto; \item \textbf{progettazione di dettaglio:} definizione delle specifiche di dettaglio dell'architettura e delle componenti del prodotto, fino ad arrivare a singole unità, a partire dalla technology baseline; inoltre sono definiti l'insieme dei diagrammi UML che descrivono l'architettura e le sue componenti, scomposte in unità, e i test necessari per la loro verifica; al termine di questo periodo di progettazione si ottiene la product baseline del progetto. \end{itemize} - + \subparagraph{Technology baseline} La technology baseline deve includere: \begin{itemize} @@ -139,14 +139,14 @@ \subsection{Sviluppo} \item \textbf{\glock{diagrammi UML}:} diagrammi realizzati in linguaggio UML versione 2.0, utilizzati per rendere più chiare le soluzioni progettuali adottate; essi si suddividono in: \begin{itemize} \item \textbf{diagrammi dei package:} descrivono le dipendenze tra classi raggruppate in diversi package, ossia raggruppamenti di elementi in un'unità di livello più alto; - \item \textbf{diagrammi delle classi:} rappresentano le classi che compongono il sistema, assieme ai loro attributi e metodi, e le relazioni di dipendenza che sussistono tra loro; + \item \textbf{diagrammi delle classi:} rappresentano le classi che compongono il sistema, assieme ai loro attributi e metodi, e le relazioni di dipendenza che sussistono tra loro; \item \textbf{diagrammi di sequenza:} descrivono la collaborazione di un gruppo di oggetti che devono realizzare un determinato comportamento, attraverso una sequenza di azioni e di scelte definite; \item \textbf{diagrammi delle attività:} descrivono la logica procedurale di un processo o flusso di operazioni, aiutando a descrivere gli aspetti dinamici dei casi d'uso. \end{itemize} \item \textbf{test di unità:} definizione dei test eseguiti per verificare che il funzionamento delle varie classi e metodi che implementano il sistema software sia corretto e conforme ai requisiti; \item \textbf{tracciamento delle classi:} associazione tra requisiti e classi che li soddisfano. \end{itemize} - + Segue un'analisi più approfondita dei diagrammi UML e delle caratteristiche che devono avere. \textbf{Diagrammi dei package} @@ -157,7 +157,7 @@ \subsection{Sviluppo} \hangindent=0.6cm Questi diagrammi permettono di rappresentare le dipendenze tra i diversi package che li compongono; ciò consente di individuare le dipendenze circolari, in modo da rimuoverle, e di capire quali elementi del sistema dovranno essere i più stabili, verificando quali hanno più dipendenze entranti. Inoltre, tramite i diagrammi dei package è possibile controllare la complessità strutturale del sistema. \newline \hangindent=0.6cm Rispetto ad altri package esterni, gli elementi interni di un determinato package possono avere visibilità pubblica oppure privata. - + \textbf{Diagrammi delle classi} \newline \newline @@ -174,7 +174,7 @@ \subsection{Sviluppo} \item \textbf{molteplicità (opzionale):} occorrenze dell'attributo nella classe; \item \textbf{default (opzionale):} valore predefinito dell'attributo; \item \textbf{proprietà aggiuntive (opzionali);} - \end{itemize} + \end{itemize} \item \textbf{operazioni (opzionali):} rappresentano le azioni eseguibili dalla classe; sono identificate dalle seguenti proprietà: \begin{itemize} \item \textbf{visibilità:} visibilità dell'operazione rispetto ad altre classi, può essere pubblica, protetta o privata; @@ -204,7 +204,7 @@ \subsection{Sviluppo} \item \textbf{classe astratte:} rappresenta una classe di cui non è possibile instanziare alcun oggetto, in quanto possiede almeno un'operazione astratta (operazione dichiarata ma non definita); le classi che specializzano una classe astratta, per non essere a loro volta astratte, devono obbligatoriamente prevedere una definizione delle operazioni astratte ereditate; \item \textbf{interfaccia:} rappresenta un costrutto simile ad una classe astratta, ma a differenza di quest'ultima non può possedere attributi e tutte le sue operazioni sono obbligatoriamente astratte. \end{itemize} - + \textbf{Diagrammi di sequenza} \newline \newline @@ -247,7 +247,7 @@ \subsection{Sviluppo} \item \textbf{centralizzato:} un unico partecipante concentra su di sè la responsabilità della chiamata dei messaggi verso tutti gli altri partecipanti, governando l'intera elaborazione; diventa quindi un punto critico dell'architettura del sistema; \item \textbf{distribuito:} ogni partecipante ha dei compiti ben definiti e la responsabilità della chiamata dei messaggi verso gli altri partecipanti coinvolti. \end{itemize} - + \textbf{Diagrammi delle attività} \newline \newline @@ -256,7 +256,7 @@ \subsection{Sviluppo} \hangindent=0.6cm I costrutti utilizzati in questi diagrammi sono i seguenti: \begin{itemize}[leftmargin=1.5cm] \item \textbf{nodo iniziale:} rappresenta il punto d'inizio dell'esecuzione dell'attività; - \item \textbf{nodo di fine flusso:} rappresenta un punto di terminazione di un percorso di esecuzione; non causa la terminazione dell'esecuzione dell'attività, in quanto essa può continuare su altri percorsi; + \item \textbf{nodo di fine flusso:} rappresenta un punto di terminazione di un percorso di esecuzione; non causa la terminazione dell'esecuzione dell'attività, in quanto essa può continuare su altri percorsi; \item \textbf{nodo finale:} rappresenta il punto di terminazione dell'esecuzione dell'attività; \item \textbf{activity:} rappresenta un'azione all'interno dell'attività, identificata da una breve descrizione; \item \textbf{subactivity:} rappresenta una sotto-attività utilizzata per descrivere un'azione che ne comprende altre al suo interno; ogni sotto-attività può essere utilizzata come una singola azione all'interno del diagramma, in modo da non aumentarne troppo la dimensione e la complessità, e non comprometterne, quindi, la gestione e la comprensione; tuttavia deve essere sempre realizzato un diagramma della sotto-attività che ne illustri l'input, l'output e le azioni contenute; @@ -274,56 +274,175 @@ \subsection{Sviluppo} \paragraph{Codifica} \subparagraph{Scopo} - L'obbiettivo di questa attività è di normare la concretizzazione del prodotto attraverso la programmazione. Gli sviluppatori, durante la fase di implementazione, dovranno attenersi alle norme sotto elencate. + Lo scopo di questa attività è di normare la concretizzazione del prodotto attraverso la programmazione. Gli sviluppatori, durante la fase di implementazione, dovranno attenersi alle norme sotto elencate. \subparagraph{Aspettative} - L'obbiettivo è lo sviluppo del software richiesto dal proponente, utilizzando le norme di programmazione stabilite in modo da: + L'obiettivo è lo sviluppo del software richiesto dal proponente, utilizzando le norme di programmazione stabilite, in modo da: \begin{itemize} \item ottenere codice leggibile ed uniforme per i programmatori; \item agevolare le fasi di manutenzione, verifica e validazione; \item fornire un prodotto conforme alle richieste prefissate dal proponente; - \item creare un prodotto di qualità. + \item realizzare un prodotto di qualità. \end{itemize} \subparagraph{Descrizione} - Il codice scritto dovrà rispettare e perseguire quanto stabilito nel documento \dext{Piano di Qualifica v2.0.0} con il fine di fornire una buona qualità del codice. + Il codice scritto dovrà rispettare le norme stabilite in questo documento, con il fine di perseguire una buona livello di qualità, conforme alle metriche stabilite. \subparagraph{Stile di codifica} - Per garantire l'uniformità del codice, ciascuno sviluppatore dovrà attenersi alle seguenti norme di programmazione: + Per garantire l'uniformità del codice, in base al linguaggio utilizzato, ciascuno sviluppatore dovrà attenersi a quanto segue: \begin{itemize} - \item \textbf{indentazione:} i blocchi del codice devono essere indentati, per ciascun livello, con tabulazione la cui larghezza sia impostata a quattro (4) spazi. Ogni programmatore dovrà configurare il proprio editor di testo secondo questa regola (l'indentazione dei commenti non viene considerata); - \item \textbf{univocità dei nomi:} metodi e variabili devono avere nomi univoci e che ne descrivano il più possibile la funzione; la prima lettera deve essere sempre minuscola e, nel caso in cui il metodo/variabile sia una concatenazione di più parole, i programmatori devo attenersi al \glock{CamelCase}. - Per quanto riguarda le classi si applicano le regole esposte in precedenza tranne per la lettera iniziale del nome, che sarà maiuscola; - \item \textbf{parentesizzazione:} l'uso delle parentesi è obbligatorio per la disambiguazione, sia logica che non, delle operazioni lineari, es. somma, concatenazione in AND, etc.; inoltre, si impone, nell'uso delle parentesi graffe per la definizione di classi e metodi, di concatenare la parentesi di apertura con la stringa di definizione separandola con uno spazio; per quanto riguarda le parentesi tonde esse non dovranno essere separate da alcun spazio e/o indentazione. La stessa politica viene applicata per costrutti di selezione ed iterazione. Sono ammessi, ove applicabili, operatori ternari (per esempio (\textit{(cond1) ? "stringa1" : var1; }) in \textit{PHP}) con la possibilità di non utilizzare le parentesi graffe. Viene riportato un esempio per chiarificare ulteriormente le prescrizioni sopra citate: - - \begin{lstlisting}[language=java,captionpos=b,caption={Esempio di dichiarazione di una classe in Java}] - public class Classe { - private int var1; - private int var2; - private boolean var3; - - public void metodo() { - while( true ){ - if( var1 && ( var2 || var3 )) - var1 += var2; - else - var2 = var1 + var2; - } - } - - private int altroMetodo() { - if( var3 ){ - return var3; - } else { - return var1 + var2; - } - } - } - \end{lstlisting} - - \item \textbf{spazi e capo-riga:} prima di ogni apertura e/o chiusura di parentesi graffa, tonda e quadra ci deve essere uno (1) spazio, fatta eccezione per le parentesi tonde di definizione di metodi. Inoltre, le variabili e simboli dei costrutti lineari dovranno essere separati da uno (1) spazio. Ogni chiusura di parentesi graffa per metodi, classi e condizioni necessita di un capo-riga, fatta eccezione dei costrutti logici \textit{if-else} nei quali la condizione di \textit{else} deve essere separata da uno (1) spazio dalla parentesi graffa di chiusura del costrutto \textit{if}. + \item \textbf{Java:} si è deciso di seguire le linee guida fornite da \glock{Google} per il linguaggio, in particolare: + \begin{itemize} + \item \textbf{parentesizzazione:} le parentesi graffe verranno utilizzate sempre, anche se il corpo del blocco è vuoto o con una sola istruzione; inoltre, si segue lo stile Kernighan and Ritchie per quanto riguarda l'utilizzo degli spazi e dei capo-riga; + \begin{lstlisting}[language=java,captionpos=b,caption={Esempio per la sintassi Java}] +return () -> { + while (condition()) { + method(); + } +}; + + return new MyClass() { + @Override public void method() { + if (condition()) { + try { + something(); + } catch (ProblemException e) { + recover(); + } + } else if (otherCondition()) { + somethingElse(); + } else { + lastThing(); + } + } +}; + \end{lstlisting} + \item \textbf{indentazione:} i blocchi del codice devono essere sempre indentati, per ciascun livello, con tabulazione la cui larghezza sia impostata a due (2) spazi; ogni programmatore dovrà configurare il proprio editor di testo secondo questa regola (l'indentazione dei commenti non viene considerata); + \item \textbf{verbosità:} ogni istruzione non potrà essere più lunga di cento (100) caratteri; + \item \textbf{univocità dei nomi:} metodi e variabili devono avere nomi univoci che ne descrivano il più possibile la funzione; la prima lettera deve essere sempre minuscola e, nel caso in cui il/la metodo/variabile sia una concatenazione di più parole, i programmatori devo attenersi al \glock{LowerCamelCase}. per quanto riguarda le classi si applicano le regole esposte in precedenza, tranne per la lettera iniziale del nome, che sarà maiuscola, in linea con \glock{UpperCamelCase}; + \item \textbf{ricorsione:} l’uso della ricorsione è da evitare ove possibile, in quanto aumenterebbe la complessità computazionale del codice; + \item \textbf{lingua:} la lingua con cui viene scritto il codice deve essere l’inglese, mentre per i commenti può essere usato l'italiano; + + \end{itemize} + Ulteriori dettagli sono disponibili alla risorsa online \href{https://google.github.io/styleguide/javaguide.html}{Google Java Style Guide}; + \item \textbf{JavaScript:} si è deciso di seguire le linee guida fornite da \glock{Google} per il linguaggio, in particolare: + \begin{itemize} + \item \textbf{parentesizzazione:} le parentesi graffe verranno utilizzate sempre, anche se il corpo del blocco è vuoto o con una sola istruzione; inoltre, si segue lo stile Kernighan and Ritchie per quanto riguarda l'utilizzo degli spazi e dei capo-riga; + \begin{lstlisting}[language=JavaScript,captionpos=b,caption={Esempio per la sintassi JavaScript}] +class InnerClass { + constructor() {} + + /** @param {number} foo */ + method(foo) { + if (condition(foo)) { + try { + // Note: this might fail. + something(); + } catch (err) { + recover(); + } + } + } +} + \end{lstlisting} + \item \textbf{indentazione:} i blocchi del codice devono essere indentati, per ciascun livello, con tabulazione la cui larghezza sia impostata a due (2) spazi; ogni programmatore dovrà configurare il proprio editor di testo secondo questa regola (l'indentazione dei commenti non viene considerata); + \item \textbf{verbosità:} ogni istruzione non potrà essere più lunga di ottanta (80) caratteri; + \item \textbf{univocità dei nomi:} metodi e variabili devono avere nomi univoci che ne descrivano il più possibile la funzione; la prima lettera deve essere sempre minuscola e, nel caso in cui il/la metodo/variabile sia una concatenazione di più parole, i programmatori devo attenersi al \glock{LowerCamelCase}; per quanto riguarda le classi si applicano le regole esposte in precedenza, tranne per la lettera iniziale del nome, che sarà maiuscola, in linea con \glock{UpperCamelCase}; + \item \textbf{ricorsione:} l’uso della ricorsione è da evitare ove possibile, in quanto aumenterebbe la complessità computazionale del codice; + \item \textbf{lingua:} la lingua con cui viene scritto il codice deve essere l’inglese, mentre per i commenti può essere usato l'italiano; + \end{itemize} + Ulteriori dettagli sono disponibili alla risorsa online \href{https://google.github.io/styleguide/jsguide.html}{Google JavaScript Style Guide}; + \item \textbf{PHP:} si è deciso di utilizzare le linee guida fornite dallo standard PSR-12 per il linguaggio, in particolare: + \begin{itemize} + \item \textbf{parentesizzazione:} le parentesi graffe verranno utilizzate sempre, anche se il corpo del blocco è vuoto o con una sola istruzione; inoltre, si segue lo stile Kernighan and Ritchie per quanto riguarda l'utilizzo degli spazi e dei capo-riga; + \begin{lstlisting}[language=php,captionpos=b,caption={Esempio per la sintassi PHP}] + $b) { + $foo->bar($arg1); + } else { + BazClass::bar($arg2, $arg3); + } + } + + final public static function bar() + { + // method body + } + } + \end{lstlisting} + \item \textbf{indentazione:} i blocchi del codice devono essere indentati, per ciascun livello, con tabulazione la cui larghezza sia impostata a quattro (4) spazi; ogni programmatore dovrà configurare il proprio editor di testo secondo questa regola (l'indentazione dei commenti non viene considerata); + \item \textbf{verbosità:} ogni istruzione non potrà essere più lunga di centoventi (120) caratteri; + \item \textbf{univocità dei nomi:} metodi e variabili devono avere nomi univoci e che ne descrivano il più possibile la funzione; la prima lettera deve essere sempre minuscola e, nel caso in cui il/la metodo/variabile sia una concatenazione di più parole, i programmatori devo attenersi al \glock{LowerCamelCase}; per quanto riguarda le classi si applicano le regole esposte in precedenza tranne per la lettera iniziale del nome, che sarà maiuscola in linea con \glock{UpperCamelCase}; + \item \textbf{ricorsione:} l’uso della ricorsione è da evitare ove possibile, in quanto aumenterebbe la complessità computazionale del codice; + \item \textbf{lingua:} la lingua con cui viene scritto il codice deve essere l’inglese, mentre per i commenti può essere usato l'italiano; + \end{itemize} + Ulteriori dettagli sono disponibili alla risorsa online \href{https://www.php-fig.org/psr/psr-12}{PSR PHP Style Guide}. + \end{itemize} + + %\begin{itemize} + % \item \textbf{indentazione:} i blocchi del codice devono essere indentati, per ciascun livello, con tabulazione la cui larghezza sia impostata a quattro (4) spazi. Ogni programmatore dovrà configurare il proprio editor di testo secondo questa regola (l'indentazione dei commenti non viene considerata); + %\item \textbf{univocità dei nomi:} metodi e variabili devono avere nomi univoci e che ne descrivano il più possibile la funzione; la prima lettera deve essere sempre minuscola e, nel caso in cui il metodo/variabile sia una concatenazione di più parole, i programmatori devo attenersi al \glock{CamelCase}. + %Per quanto riguarda le classi si applicano le regole esposte in precedenza tranne per la lettera iniziale del nome, che sarà maiuscola; + %\item \textbf{parentesizzazione:} l'uso delle parentesi è obbligatorio per la disambiguazione, sia logica che non, delle operazioni lineari, es. somma, concatenazione in AND, etc.; inoltre, si impone, nell'uso delle parentesi graffe per la definizione di classi e metodi, di concatenare la parentesi di apertura con la stringa di definizione separandola con uno spazio; per quanto riguarda le parentesi tonde esse non dovranno essere separate da alcun spazio e/o indentazione. La stessa politica viene applicata per costrutti di selezione ed iterazione. Sono ammessi, ove applicabili, operatori ternari (per esempio (\textit{(cond1) ? "stringa1" : var1; }) in \textit{PHP}) con la possibilità di non utilizzare le parentesi graffe. Viene riportato un esempio per chiarificare ulteriormente le prescrizioni sopra citate: + + %\begin{lstlisting}[language=java,captionpos=b,caption={Esempio di dichiarazione di una classe in Java}] + %public class Classe { + % private int var1; + % private int var2; + % private boolean var3; + % + % public void metodo() { + % while( true ){ + % if( var1 && ( var2 || var3 )) + % var1 += var2; + % else + % var2 = var1 + var2; + % } + % } + % + % private int altroMetodo() { + % if( var3 ){ + % return var3; + % } else { + % return var1 + var2; + % } + % } + %} + %\end{lstlisting} + + %\item \textbf{spazi e capo-riga:} prima di ogni apertura e/o chiusura di parentesi graffa, tonda e quadra ci deve essere uno (1) spazio, fatta eccezione per le parentesi tonde di definizione di metodi. Inoltre, le variabili e simboli dei costrutti lineari dovranno essere separati da uno (1) spazio. Ogni chiusura di parentesi graffa per metodi, classi e condizioni necessita di un capo-riga, fatta eccezione dei costrutti logici \textit{if-else} nei quali la condizione di \textit{else} deve essere separata da uno (1) spazio dalla parentesi graffa di chiusura del costrutto \textit{if}. + %\end{itemize} + \subparagraph{Linee guida} + Per quanto riguarda la verifica dei linguaggi sopra detti, rispetto alle linee guida di riferimento, ci si riferisce a: + \begin{itemize} + \item \textbf{Checkstyle:} usato per la verifica della sintassi del linguaggio Java, con le regole riportate dal Google Java Style Guide; + \item \textbf{Prettier, ESLint:} usato per la verifica della sintassi del linguaggio JavaScript, con le regole riportate dal Google JavaScript Style Guide; + \item \textbf{PHP CodeSniffer:} usato per la verifica del linguaggio PHP, con le regole riportate dal PSR PHP Style Guide; + \item \textbf{W3C:} usato per HTML5 e CSS3, in quanto il gruppo si attiene alle regole imposte dal World Wide Web Consortium; per assicurarsi il rispetto di tali norme il codice prodotto verrà verificato tramite i validatori offerti dal W3C: + \begin{itemize} + \item \href{https://validator.w3.org/}{Markup Validation Service}; + \item \href{https://jigsaw.w3.org/css-validator/}{CSS Validation Service}. + \end{itemize} \end{itemize} \subsubsection{Metriche} - + % NDR ------------------- METRICHE --------------------- @@ -333,21 +452,21 @@ \subsection{Sviluppo} \subparagraph{Scopo} La sicurezza viene analizzata per fornire al cliente un prodotto che sia privo di vulnerabilità note, sia a livello di librerie, che a livello di contenuti. \subparagraph{Introduzione alle Metriche} - Per la sicurezza si é deciso di utilizzare le seguenti metricche: + Per la sicurezza si è deciso di utilizzare le seguenti metriche: \begin{itemize} \item QM-PROD-4 Numero di vulnerabilità rilevate (NVUL); - \item QM-PROD-5 Tempo di risoluzione vulnerabilità (TVUL); + \item QM-PROD-5 Tempo di risoluzione vulnerabilità (TVUL). \end{itemize} \subparagraph{ QM-PROD-4 Numero di vulnerabilità rilevate (NVUL)} \begin{itemize} - \item \textbf{descrizione: } - La metrica permette di rilevare il numero di vulnerabilità di sicurezza attraverso \glock{SonarCloud} per un componente software; - \item \textbf{unità di misura: } - La metrica è espressa con un numero intero; - \item \textbf{fonte: } - Il dato viene recuperato attraverso le statistiche di \glock{SonarCloud}; - \item \textbf{risultato: } - Il risultato delle rilevazioni ha i seguenti significati: + \item \textbf{Descrizione: } + la metrica permette di rilevare il numero di vulnerabilità di sicurezza, attraverso \glock{SonarCloud}, per un componente software; + \item \textbf{Unità di misura: } + la metrica è espressa con un numero intero; + \item \textbf{Fonte: } + il dato viene recuperato attraverso le statistiche di \glock{SonarCloud}; + \item \textbf{Risultato: } + il risultato delle rilevazioni ha i seguenti significati: \begin{itemize} \item se il risultato è pari a 0, allora non sono state rilevate vulnerabilità nell'applicazione e/o nelle sue dipendenze; \item se il risultato è maggiore di 0, allora sono state rilevate vulnerabilità nell'applicazione e/o nelle sue dipendenze. @@ -355,13 +474,13 @@ \subsection{Sviluppo} \end{itemize} \subparagraph{ QM-PROD-5 Tempo di risoluzione vulnerabilità (TVUL) } \begin{itemize} - \item \textbf{descrizione: } - La metrica permette di comprendere una stima temporale per correggere le vulnerabilità di sicurezza scoperte attraverso \glock{SonarCloud} per un componente software; - \item \textbf{unità di misura: } + \item \textbf{Descrizione: } + La metrica permette di comprendere la stima temporale per correggere le vulnerabilità di sicurezza rilevate attraverso \glock{SonarCloud}, per un componente software; + \item \textbf{Unità di misura: } La metrica è espressa in minuti; - \item \textbf{fonte: } + \item \textbf{Fonte: } Il dato viene recuperato attraverso le statistiche di \glock{SonarCloud}; - \item \textbf{risultato: } + \item \textbf{Risultato: } Il risultato delle rilevazioni ha i seguenti significati: \begin{itemize} \item se il risultato è pari a 0 allora non sono state scoperte vulnerabilità nell'applicazione e/o nelle sue dipendenze; @@ -369,35 +488,35 @@ \subsection{Sviluppo} \end{itemize} \end{itemize} - + \paragraph{QC-3 Affidabilità} \subparagraph{Scopo} - Durante lo sviluppo si vuole monitorare l'affidabilità e correttezza, così come la sua tolleranza agli errori. + Durante lo sviluppo si vuole monitorare l'affidabilità e la correttezza, così come la sua tolleranza agli errori: \begin{itemize} \item \textbf{maturità:} il software deve essere in grado di evitare il verificarsi di errori e/o malfunzionamenti derivanti dalla sua esecuzione; - \item \textbf{tolleranza degli errori:} il prodotto é in grado di mantenere un livello minimo di prestazioni predeterminate anche in presenza di malfunzionamenti e/o usi impropri di esso; + \item \textbf{tolleranza degli errori:} il prodotto è in grado di mantenere un livello minimo di prestazioni predeterminate anche in presenza di malfunzionamenti e/o usi impropri di esso; \item \textbf{recuperabilità:} il software, in seguito ad un errore e/o malfunzionamento, deve essere in grado di ripristinare uno stato di usabilità in un arco di tempo definito e di recuperare eventuali dati persi durante il suddetto lasso di tempo; - \item \textbf{aderenza:} descrive la capacitá del prodotto di aderire alle specifiche relative all'affidabilità. + \item \textbf{aderenza:} descrive la capacità del prodotto di aderire alle specifiche relative all'affidabilità. \end{itemize} \subparagraph{Introduzione alle Metriche} - Per l'affidabilità si é deciso di utilizzare le seguenti metriche: + Per l'affidabilità si è deciso di utilizzare le seguenti metriche: \begin{itemize} \item QM-PROD-6 Numero di bug rilevati (BUGR); \item QM-PROD-7 Tempo stimato risoluzione bug (TBUG). \end{itemize} \subparagraph{ QM-PROD-6 Numero di bug rilevati (BUGR)} \begin{itemize} - \item \textbf{descrizione: } - La metrica permette di rilevare il numero di bug che sono stati scoperti attraverso \glock{SonarCloud} per un componente software; - \item \textbf{unità di misura: } - La metrica è espressa in numero naturale a partire da 0; - \item \textbf{fonte: } - Il dato viene recuperato attraverso le statistiche di \glock{SonarCloud}; - \item \textbf{risultato: } - Il risultato delle rilevazioni ha i seguenti significati: + \item \textbf{Descrizione: } + la metrica permette di rilevare il numero di bug che sono stati scoperti attraverso \glock{SonarCloud}, per un componente software; + \item \textbf{Unità di misura: } + la metrica è espressa in numero intero positivo, a partire da 0; + \item \textbf{Fonte: } + il dato viene recuperato attraverso le statistiche di \glock{SonarCloud}; + \item \textbf{Risultato: } + il risultato delle rilevazioni ha i seguenti significati: \begin{itemize} \item se il risultato è pari a 0 allora non sono stati rilevati bug; \item se il risultato è maggiore di 0 allora sono stati rilevati dei bug. @@ -405,25 +524,25 @@ \subsection{Sviluppo} \end{itemize} \subparagraph{ QM-PROD-7 Tempo stimato risoluzione bug (TBUG)} \begin{itemize} - \item \textbf{descrizione: } - La metrica permette di rilevare il tempo stimato per la risoluzione dei bug che sono stati scoperti attraverso \glock{SonarCloud} per un componente software; - \item \textbf{unità di misura: } - La metrica è espressa in minuti; - \item \textbf{fonte: } - Il dato viene recuperato attraverso le statistiche di \glock{SonarCloud}; - \item \textbf{risultato: } - Il risultato delle rilevazioni ha i seguenti significati: + \item \textbf{Descrizione: } + la metrica permette di rilevare il tempo stimato per la risoluzione dei bug che sono stati scoperti attraverso \glock{SonarCloud}, per un componente software; + \item \textbf{Unità di misura: } + la metrica è espressa in minuti; + \item \textbf{Fonte: } + il dato viene recuperato attraverso le statistiche di \glock{SonarCloud}; + \item \textbf{Risultato: } + il risultato delle rilevazioni ha i seguenti significati: \begin{itemize} \item se il risultato è pari a 0 allora non sono stati rilevati bug; \item se il risultato è maggiore di 0 allora sono stati rilevati dei bug che hanno un tempo di risoluzione stimato pari a quello riportato. \end{itemize} \end{itemize} - + \paragraph{QC-4 Efficienza} \subparagraph{Scopo} - Si vuole misurare l'efficienza del prodotto in modo da fornire all'utente un software usabile, piacevole e veloce. + Si vuole misurare l'efficienza del prodotto in modo da fornire all'utente un software usabile, piacevole e veloce: \begin{itemize} \item \textbf{comportamento nel tempo:} garanzia di tempi di elaborazione accettabili da parte del prodotto; \item \textbf{utilizzo di risorse:} utilizzo non eccessivo delle risorse a disposizione. @@ -435,18 +554,18 @@ \subsection{Sviluppo} \end{itemize} \subparagraph{QM-PROD-8 Risposta media (RM)} \begin{itemize} - \item \textbf{descrizione: } - La metrica RM punta a misurare l'efficienza di elaborazione del prodotto in modo da fornire all'utente un'esperienza piacevole di utilizzo; - \item \textbf{unità di misura: } - La metrica è espressa millisecondi (\textit{ms}); - \item \textbf{formula: } - La formula della metrica è la seguente: + \item \textbf{Descrizione: } + la metrica RM punta a misurare l'efficienza di elaborazione del prodotto in modo da fornire all'utente un'esperienza piacevole di utilizzo; + \item \textbf{Unità di misura: } + la metrica è espressa millisecondi (\textit{ms}); + \item \textbf{Formula: } + la formula della metrica è la seguente: \[ \text{RM} = \frac{\sum_{n=1}^{z} \text{tempo di risposta in ms}}{z} \] dove $z$ è il numero di misurazioni effettuate; - \item \textbf{risultato: } - Il risultato della formula indica il tempo medio di risposta del prodotto: + \item \textbf{Risultato: } + il risultato della formula indica il tempo medio di risposta del prodotto: \begin{itemize} \item se è pari a 0, allora non è stata fatta alcuna misurazione poiché non è stato possibile; \item se è maggiore di 0, allora è stato possibile eseguire una misurazione. @@ -456,7 +575,7 @@ \subsection{Sviluppo} \paragraph{QC-5 Usabilità} \subparagraph{Scopo} - Si vuole misurare l'usabilità del prodotto in modo da fornire all'utente un'esperienza piacevole durante il suo utilizzo, nonché fornire un prodotto facile da apprendere ed utilizzare. + Si vuole misurare l'usabilità del prodotto in modo da fornire all'utente un'esperienza piacevole durante il suo utilizzo, nonché fornire un prodotto facile da apprendere ed utilizzare: \begin{itemize} \item \textbf{comprensibilità:} determina la facilità di utilizzo e di comprensione del prodotto e delle sue funzionalità da parte dell'utente; \item \textbf{apprendibilità:} definisce il livello di impegno richiesto, da parte dell'utilizzatore, per imparare ad usare il prodotto; @@ -464,24 +583,23 @@ \subsection{Sviluppo} \item \textbf{attrattiva:} la proprietà del software di produrre un'esperienza d'uso gradevole per l'utente. \end{itemize} \subparagraph{Introduzione alle Metriche} - Per la funzionabilità si é deciso di utilizzare le seguenti metriche: + Per l'usabilità si è deciso di utilizzare le seguenti metriche: \begin{itemize} \item QM-PROD-9 Profondità dell'albero delle azioni (PAA); \item QM-PROD-10 Profondità dell'albero delle pagine (PAP). \end{itemize} \subparagraph{QM-PROD-9 Profondità dell'albero delle azioni (PAA)} \begin{itemize} - \item \textbf{descrizione: } - La metrica PAA permette di misurare l'operabilità e la comprensibilità del prodotto da parte dell'utente. Essa misura il numero massimo di azioni effettuate dall'utente prima di poter arrivare al suo obiettivo. - Viene misurato per il sito web in base alle tipologie di utente previste; - \item \textbf{unità di misura: } - La metrica è espressa con un numero intero; - \item \textbf{formula: } - La formula della metrica è la seguente: + \item \textbf{Descrizione: } + la metrica PAA permette di misurare l'operabilità e la comprensibilità del prodotto da parte dell'utente; essa misura il numero massimo di azioni effettuate dall'utente prima di poter arrivare al suo obiettivo; viene misurato per il sito web in base alle tipologie di utente previste; + \item \textbf{Unità di misura: } + la metrica è espressa con un numero intero; + \item \textbf{Formula: } + la formula della metrica è la seguente: \textit{PAA = numero di click} dove ogni click corrisponde ad un'azione; - \item \textbf{risultato: } - Il risultato della formula ha i seguenti significati: + \item \textbf{Risultato: } + il risultato della formula ha i seguenti significati: \begin{itemize} \item se il risultato è minore della soglia prevista, allora l'obiettivo potrà essere portato a termine con maggiore semplicità; \item se il risultato è maggiore della soglia prevista, allora l'obiettivo potrà essere portato a termine con maggiore difficoltà; @@ -489,19 +607,18 @@ \subsection{Sviluppo} \end{itemize} \subparagraph{QM-PROD-10 Profondità dell'albero delle pagine (PAP)} \begin{itemize} - \item \textbf{descrizione: } - La metrica PAP permette di misurare l'apprendibilità, l'operabilità e l'attrattiva del prodotto dal punto di vista del cliente. Essa misura il numero massimo di pagine visitate dall'utente prima di poter arrivare al suo obiettivo. - Viene misurato per il sito web in base alle tipologie di utente previste; - \item \textbf{unità di misura: } - La metrica è espressa tramite un numero intero; - \item \textbf{formula: } - La formula della metrica è la seguente: + \item \textbf{Descrizione: } + la metrica PAP permette di misurare l'apprendibilità, l'operabilità e l'attrattiva del prodotto dal punto di vista del cliente; essa misura il numero massimo di pagine visitate dall'utente prima di poter arrivare al suo obiettivo; viene misurato per il sito web in base alle tipologie di utente previste; + \item \textbf{Unità di misura: } + la metrica è espressa tramite un numero intero; + \item \textbf{Formula: } + la formula della metrica è la seguente: \textit{PAP = numero di pagine} - \item \textbf{risultato: } - Il risultato della formula ha i seguenti significati: + \item \textbf{Risultato: } + il risultato della formula ha i seguenti significati: \begin{itemize} - \item un numero minore di pagine, conduce a minore smarrimento dell'utente nel sito; - \item un numero troppo di alto di pagine, può condurre un maggiore senso di smarrimento dell'utente nel sito; + \item un numero minore di pagine, conduce a minore smarrimento dell'utente nel sito; + \item un numero troppo di alto di pagine, può condurre un maggiore senso di smarrimento dell'utente nel sito. \end{itemize} \end{itemize} @@ -509,33 +626,33 @@ \subsection{Sviluppo} \paragraph{QC-6 Manutenibilità} \subparagraph{Scopo} - La manutenibilità viene monitorata in modo da fornire un prodotto modificabile ed estendibile, in modo da poter estendere facilmente sia la vita del prodotto che le sue funzionalità. + La manutenibilità viene monitorata per essere in grado di fornire un prodotto modificabile e migliorabile, in modo da poter estendere facilmente sia la vita del prodotto stesso, sia le sue funzionalità. \begin{itemize} - \item \textbf{analizzabilità:} determina la facilità con cui é possibile analizzare e localizzare un errore all'interno del codice; - \item \textbf{modificabilità:} definisce la capacitá del prodotto di apportare una modifica o una estensione; + \item \textbf{analizzabilità:} determina la facilità con cui è possibile analizzare e localizzare un errore all'interno del codice; + \item \textbf{modificabilità:} definisce la capacità del prodotto di apportare una modifica o una estensione; \item \textbf{stabilità:} il software deve essere un grado di essere usato anche in caso le modifiche apportate siano errate; \item \textbf{testabilità:} determina la capacità del software di essere testato facilmente per fornire una validazione delle modifica apportate. \end{itemize} \subparagraph{Introduzione alle Metriche} - Per la manutenibilità si é deciso di utilizzare le seguenti metricche: + Per la manutenibilità si è deciso di utilizzare le seguenti metriche: \begin{itemize} \item QM-PROD-11 Complessità ciclomatica media (COCIM); \item QM-PROD-12 Complessità della classe (CCLA); - \item QM-PROD-13 Numero di Code Smells rilevati (NCS); - \item QM-PROD-14 Tempo di risoluzione Code Smells (TCS); + \item QM-PROD-13 Numero di code smell rilevati (NCS); + \item QM-PROD-14 Tempo di risoluzione code smell (TCS); \item QM-PROD-15 Percentuale di duplicazione del Codice (DUPC); - \item QM-PROD-16 Numero di violazioni standard di codifica (NVSC); + \item QM-PROD-16 Numero di violazioni standard di codifica (NVSC). \end{itemize} \subparagraph{QM-PROD-11 Complessità ciclomatica media (COCIM)} \begin{itemize} - \item \textbf{descrizione: } - La metrica viene usata per rilevare la complessità ciclomatica media di tutte le classi e di tutti i metodi realizzati nel programma; da questa si comprende la quantità delle condizioni realizzate e la loro relativa complessità media; - \item \textbf{unità di misura: } - La metrica è espressa con un numero decimale; - \item \textbf{fonte: } - Il dato viene recuperato attraverso le statistiche di \glock{SonarCloud}; - \item \textbf{risultato: } - Il risultato rilevato ha i seguenti significati: + \item \textbf{Descrizione: } + la metrica viene usata per rilevare la complessità ciclomatica media di tutte le classi e di tutti i metodi realizzati nel programma; da questa si comprende la quantità delle condizioni realizzate e la loro relativa complessità media; + \item \textbf{Unità di misura: } + la metrica è espressa con un numero decimale; + \item \textbf{Fonte: } + il dato viene recuperato attraverso le statistiche di \glock{SonarCloud}; + \item \textbf{Risultato: } + il risultato rilevato ha i seguenti significati: \begin{itemize} \item se il risultato è pari a 0, allora non sono presenti dei punti condizionali del programma; \item se il risultato è maggiore di 0, allora il numero di punti condizionali del programma sono un numero finito. @@ -543,62 +660,62 @@ \subsection{Sviluppo} \end{itemize} \subparagraph{QM-PROD-12 Complessità della classe (CCLA)} \begin{itemize} - \item \textbf{descrizione: } - La metrica CCLA misura il quantitativo medio del numero di metodi presenti nelle classi e permette di comprendere la complessità generale delle stesse; - \item \textbf{unità di misura: } - La metrica è espressa tramite un numero decimale; - \item \textbf{formula: } - La formula della metrica è la seguente: + \item \textbf{Descrizione: } + la metrica CCLA misura il quantitativo medio del numero di metodi presenti nelle classi e permette di comprendere la complessità generale delle stesse; + \item \textbf{Unità di misura: } + la metrica è espressa tramite un numero decimale; + \item \textbf{Formula: } + la formula della metrica è la seguente: \[ CCLA = \frac{\text{numero totale di metodi}}{\text{numero totale di classi}} \] - \item \textbf{risultato: } - Il risultato della formula ha i seguenti significati: + \item \textbf{Risultato: } + il risultato della formula ha i seguenti significati: \begin{itemize} \item se il risultato è pari a 0, allora le classi non hanno metodi; \item se il risultato è maggiore di 0, allora in media una classe della componente software ha un numero finito di metodi. \end{itemize} \end{itemize} - \subparagraph{QM-PROD-13 Numero di Code Smells rilevati (NCS)} + \subparagraph{QM-PROD-13 Numero di code smell rilevati (NCS)} \begin{itemize} - \item \textbf{descrizione: } - La metrica viene usata per rilevare il numero di \glock{Code Smells} attraverso \glock{SonarCloud}. Un \glock{Code Smell} fa riferimento a una best practice mancata che i programmatori dovrebbero seguire nel corso dello sviluppo per rendere il codice leggibile e privo di errori; - \item \textbf{unità di misura: } - La metrica è espressa tramite un numero intero; - \item \textbf{fonte: } - Il dato viene recuperato attraverso le statistiche di \glock{SonarCloud}; - \item \textbf{risultato: } - Il risultato rilevato ha i seguenti significati: + \item \textbf{Descrizione: } + la metrica viene usata per rilevare il numero di \glock{code smell} attraverso \glock{SonarCloud}; un \glock{code smell} fa riferimento ad una best practice mancata che i programmatori dovrebbero seguire nel corso dello sviluppo per rendere il codice leggibile, privo di errori e manutenibile; + \item \textbf{Unità di misura: } + la metrica è espressa tramite un numero intero; + \item \textbf{Fonte: } + il dato viene recuperato attraverso le statistiche di \glock{SonarCloud}; + \item \textbf{Risultato: } + il risultato rilevato ha i seguenti significati: \begin{itemize} \item se il risultato è pari a 0, allora il codice scritto ha rispettato tutte le \textit{best practice} segnalate; \item se il risultato è maggiore di 0, allora il codice scritto non ha rispettato tutte le \textit{best practice} segnalate. \end{itemize} \end{itemize} - \subparagraph{QM-PROD-14 Tempo di risoluzione Code Smells (TCS)} + \subparagraph{QM-PROD-14 Tempo di risoluzione code smell (TCS)} \begin{itemize} - \item \textbf{descrizione: } - La metrica viene usata per rilevare il tempo stimato di risoluzione dei \glock{Code Smells} attraverso \glock{SonarCloud}. Il tempo riportato risulta essere una stima che viene calcolata direttamente da \glock{SonarCloud} sulla base della quantità di \glock{Code Smells} e della complessità di risoluzione di ognuno di essi; - \item \textbf{unità di misura: } - La metrica è espressa in minuti; - \item \textbf{fonte: } - Il dato viene recuperato attraverso le statistiche di \glock{SonarCloud}; - \item \textbf{risultato: } - Il risultato rilevato ha i seguenti significati: + \item \textbf{Descrizione: } + la metrica viene usata per rilevare il tempo stimato di risoluzione dei \glock{code smell} attraverso \glock{SonarCloud}; il tempo riportato risulta essere una stima che viene calcolata direttamente da \glock{SonarCloud} sulla base della quantità di \glock{code smell} e della complessità di risoluzione di ognuno di essi; + \item \textbf{Unità di misura: } + la metrica è espressa in minuti; + \item \textbf{Fonte: } + il dato viene recuperato attraverso le statistiche di \glock{SonarCloud}; + \item \textbf{Risultato: } + il risultato rilevato ha i seguenti significati: \begin{itemize} - \item se il risultato è pari a 0, allora non sono stati trovati \glock{Code Smells} da risolvere; - \item se il risultato è maggiore di 0, allora sarà necessario il quantitativo di minuti indicato per risolvere tutti i \glock{Code Smells} rilevati. + \item se il risultato è pari a 0, allora non sono stati trovati \glock{code smell} da risolvere; + \item se il risultato è maggiore di 0, allora sarà necessario il quantitativo di minuti indicato per risolvere tutti i \glock{code smell} rilevati. \end{itemize} \end{itemize} - \subparagraph{QM-PROD-15 Percentuale di duplicazione del Codice (DUPC)} + \subparagraph{QM-PROD-15 Percentuale di duplicazione del codice (DUPC)} \begin{itemize} - \item \textbf{descrizione: } - La metrica viene usata per rilevare la percentuale di codice duplicato nel corso dello sviluppo; - \item \textbf{unità di misura: } - La metrica è espressa in percentuale (\%); - \item \textbf{fonte: } - Il dato viene recuperato attraverso le statistiche di \glock{SonarCloud}; - \item \textbf{risultato: } - Il risultato rilevato ha i seguenti significati: + \item \textbf{Descrizione: } + la metrica viene usata per rilevare la percentuale di codice duplicato nel corso dello sviluppo; + \item \textbf{Unità di misura: } + la metrica è espressa in percentuale (\%); + \item \textbf{Fonte: } + il dato viene recuperato attraverso le statistiche di \glock{SonarCloud}; + \item \textbf{Risultato: } + il risultato rilevato ha i seguenti significati: \begin{itemize} \item se il risultato è pari a 0, allora il codice scritto non è stato duplicato su più parti del programma; \item se il risultato è maggiore di 0, allora una parte del codice scritto è stato duplicato su più punti del programma. @@ -606,123 +723,123 @@ \subsection{Sviluppo} \end{itemize} \subparagraph{QM-PROD-16 Numero di violazioni dello standard di codifica (NVSC)} \begin{itemize} - \item \textbf{descrizione: } - La metrica viene usata per rilevare il numero di violazioni dello standard di codifica; - \item \textbf{unità di misura: } - La metrica è espressa in percentuale (\%); - \item \textbf{fonte: } - Il dato viene recuperato attraverso i report di \textit{Maven} durante la compilazione e tramite \glock{Github Actions}; - \item \textbf{risultato: } - Il risultato rilevato ha i seguenti significati: + \item \textbf{Descrizione: } + la metrica viene usata per rilevare il numero di violazioni dello standard di codifica; + \item \textbf{Unità di misura: } + la metrica è espressa in percentuale (\%); + \item \textbf{Fonte: } + il dato viene recuperato attraverso i report di \textit{Maven} durante la compilazione e tramite \glock{Github Actions}; + \item \textbf{Risultato: } + il risultato rilevato ha i seguenti significati: \begin{itemize} \item se il risultato è pari a 0, allora il codice scritto ha rispetto a pieno lo standard di codifica; \item se il risultato è maggiore di 0, allora tutto o una parte del codice scritto non ha rispettato lo standard di codifica. \end{itemize} \end{itemize} - - + + \paragraph{QP-3 Sviluppo} \subparagraph{Scopo} - Durante lo sviluppo, si vuole monitorare la capacità del prodotto di soddisfare tutti i requisiti richiesti dall'utente per determinare il grado di completamento. + Durante lo sviluppo, si vuole monitorare la capacità del prodotto di soddisfare tutti i requisiti richiesti dal proponente per determinare il grado di completamento. \subparagraph{Introduzione alle Metriche} - Per la farà uso delle seguenti metriche: + Per il processo di sviluppo si farà uso delle seguenti metriche: \begin{itemize} - \item QM-PROC-7 Satisfied Mandatory Requirements (SMR); - \item QM-PROC-8 Satisfied Desirable Requirements (SDR); - \item QM-PROC-9 Satisfied Optional Requirements (SOR); - \item QM-PROC-10 Numero di commits (NCOM); + \item QM-PROC-7 Satisfied mandatory requirements (SMR); + \item QM-PROC-8 Satisfied desirable requirements (SDR); + \item QM-PROC-9 Satisfied optional requirements (SOR); + \item QM-PROC-10 Numero di commits (NCOM). \end{itemize} - \subparagraph{QM-PROC-7 Satisfied Mandatory Requirements (SMR)} + \subparagraph{QM-PROC-7 Satisfied mandatory requirements (SMR)} \begin{itemize} - - \item \textbf{descrizione: } - La metrica SMR indica il quantitativo di requisiti obbligatori soddisfatti (progettati, sviluppati, verificati e validati) fino alla data corrente. Questa metrica permette sia al gruppo, che al cliente, di comprendere la percentuale di completezza base del prodotto; - \item \textbf{unità di misura: } - La metrica viene espressa in percentuale; + \item \textbf{Descrizione: } + la metrica SMR indica il quantitativo di requisiti obbligatori soddisfatti (progettati, sviluppati e verificati) fino alla data corrente; questa metrica permette sia al gruppo, che al committente, di comprendere la percentuale di completezza base del prodotto; + + \item \textbf{Unità di misura: } + la metrica viene espressa in percentuale; - \item \textbf{formula: } - La formula della metrica è la seguente: + \item \textbf{Formula: } + la formula della metrica è la seguente: \[ \text{SMR} = \frac{\text{requisiti obbligatori soddisfatti}}{\text{requisiti obbligatori totali}} \times 100 \] - \item \textbf{risultato: } + \item \textbf{Risultato: } \begin{itemize} - \item Un risultato pari a 0\% indica che non è stato soddisfatto ancora alcun requisito obbligatorio; - \item Un risultato superiore allo 0\% ma inferiore al 100\% indica che alcuni requisiti obbligatori sono stati soddisfatti; - \item Un risultato pari a 100\% indica che sono stati soddisfatti tutti i requisiti obbligatori. + \item un risultato pari a 0\% indica che non è stato soddisfatto ancora alcun requisito obbligatorio; + \item un risultato superiore allo 0\% ma inferiore al 100\% indica che alcuni requisiti obbligatori sono stati soddisfatti; + \item un risultato pari a 100\% indica che sono stati soddisfatti tutti i requisiti obbligatori. \end{itemize} \end{itemize} - \subparagraph{QM-PROC-8 Satisfied Desirable Requirements (SDR)} + \subparagraph{QM-PROC-8 Satisfied desirable requirements (SDR)} \begin{itemize} - \item \textbf{descrizione: } - La metrica SDR indica il quantitativo di requisiti desiderabili soddisfatti (progettati, sviluppati, verificati e validati) fino alla data corrente. Questa metrica permette sia al gruppo, che al cliente, di comprendere la percentuale di valore aggiunto del prodotto; + \item \textbf{Descrizione: } + la metrica SDR indica il quantitativo di requisiti desiderabili soddisfatti (progettati, sviluppati e verificati) fino alla data corrente; questa metrica permette sia al gruppo, che al committente, di comprendere la percentuale di valore aggiunto del prodotto; - \item \textbf{unità di misura: } - La metrica viene espressa in percentuale; + \item \textbf{Unità di misura: } + la metrica viene espressa in percentuale; - \item \textbf{formula: } - La formula della metrica è la seguente: + \item \textbf{Formula: } + la formula della metrica è la seguente: \[ \text{SDR} = \frac{\text{requisiti desiderabili soddisfatti}}{\text{requisiti desiderabili totali}} \times 100 \] - \item \textbf{risultato: } + \item \textbf{Risultato: } \begin{itemize} - \item Un risultato pari a 0\% indica che non è stato soddisfatto ancora alcun requisito desiderabile; - \item Un risultato superiore allo 0\% ma inferiore al 100\% indica che alcuni requisiti desiderabili sono stati soddisfatti; - \item Un risultato pari a 100\% indica che sono stati soddisfatti tutti i requisiti desiderabili. + \item un risultato pari a 0\% indica che non è stato soddisfatto ancora alcun requisito desiderabile; + \item un risultato superiore allo 0\% ma inferiore al 100\% indica che alcuni requisiti desiderabili sono stati soddisfatti; + \item un risultato pari a 100\% indica che sono stati soddisfatti tutti i requisiti desiderabili. \end{itemize} \end{itemize} - \subparagraph{QM-PROC-9 Satisfied Optional Requirements (SOR)} + \subparagraph{QM-PROC-9 Satisfied optional requirements (SOR)} \begin{itemize} - \item \textbf{descrizione: } - La metrica SDR indica il quantitativo di requisiti desiderabili soddisfatti (progettati, sviluppati, verificati e validati) fino alla data corrente; + \item \textbf{Descrizione: } + la metrica SDR indica il quantitativo di requisiti desiderabili soddisfatti (progettati, sviluppati e verificati) fino alla data corrente; - \item \textbf{unità di misura: } - La metrica viene espressa in percentuale; + \item \textbf{Unità di misura: } + la metrica viene espressa in percentuale; - \item \textbf{formula: } - La formula della metrica è la seguente: + \item \textbf{Formula: } + la formula della metrica è la seguente: \[ \text{SOR} = \frac{\text{requisiti opzionali soddisfatti}}{\text{requisiti opzionali totali}} \times 100 \] - \item \textbf{risultato: } + \item \textbf{Risultato: } \begin{itemize} - \item Un risultato pari a 0\% indica che non è stato soddisfatto ancora alcun requisito opzionale; - \item Un risultato superiore allo 0\% ma inferiore al 100\% indica che alcuni requisiti opzionali sono stati soddisfatti; - \item Un risultato pari a 100\% indica che sono stati soddisfatti tutti i requisiti opzionali. + \item un risultato pari a 0\% indica che non è stato soddisfatto ancora alcun requisito opzionale; + \item un risultato superiore allo 0\% ma inferiore al 100\% indica che alcuni requisiti opzionali sono stati soddisfatti; + \item un risultato pari a 100\% indica che sono stati soddisfatti tutti i requisiti opzionali. \end{itemize} \end{itemize} - \subparagraph{QM-PROC-10 Numero di commits (NCOM)} + \subparagraph{QM-PROC-10 Numero di commit (NCOM)} \begin{itemize} - \item \textbf{descrizione: } - La metrica mostra il numero di commits che sono stati inseriti nella repository nell'arco di tempo definito; + \item \textbf{Descrizione: } + la metrica mostra il numero di commit che sono stati inseriti nel repository nell'arco di tempo definito; - \item \textbf{unità di misura: } - La metrica viene espressa con un numero intero; + \item \textbf{Unità di misura: } + la metrica viene espressa con un numero intero; - \item \textbf{fonte: } - Il dato viene recuperato attraverso le statistiche di \glock{Github}; + \item \textbf{Fonte: } + il dato viene recuperato attraverso le statistiche di \glock{Github}; - \item \textbf{risultato: } + \item \textbf{Risultato: } \begin{itemize} - \item Un risultato pari a 0 indica che non ci sono stati commits e pertanto il gruppo non ha lavorato; - \item Un risultato superiore a 0 indica che il gruppo ha lavorato attivamente al progetto. + \item un risultato pari a 0 indica che non ci sono stati commit e pertanto il gruppo non ha lavorato; + \item un risultato superiore a 0 indica che il gruppo ha lavorato attivamente al progetto. \end{itemize} \end{itemize} @@ -730,13 +847,13 @@ \subsection{Sviluppo} \subsubsection{Strumenti} Di seguito sono elencati gli strumenti che verranno utilizzati nel processo di sviluppo. - + \paragraph{IntelliJ Idea - Ultimate Edition} IntelliJ Idea è un IDE sviluppato da \textit{JetBrains} che viene utilizzato per lo sviluppo di applicativi \glock{Java} e permette di agevolare ampiamente lo sviluppatore, grazie agli strumenti aggiuntivi che possono essere facilmente configurati. \newline Include anche la possibilità di usare un debugger, eseguire refactoring del codice, configurare un sistema di versionamento e integrarsi con i framework più utilizzati per \glock{Java}, come \glock{Spring}. \newline - Il software è a pagamento, ma gratuito per gli studenti universitari. + Il software è a pagamento, ma gratuito per gli studenti universitari. \begin{itemize} \item IntelliJ Idea genera una cartella \verb!.idea! che non deve essere aggiunta al sistema di versionamento; @@ -744,34 +861,34 @@ \subsection{Sviluppo} \end{itemize} \paragraph{PHPStorm} - PHPStorm è un IDE sviluppato da \textit{JetBrains}, molto simile a IntelliJ Idea, che viene usato per lo sviluppo della web app, la quale fa uso di HTML, PHP e \glock{JavaScript}. + PHPStorm è un IDE sviluppato da \textit{JetBrains}, molto simile a IntelliJ Idea, che viene usato per lo sviluppo della web app, la quale fa uso di HTML, PHP e \glock{JavaScript}. \newline - Si integra facilmente con \glock{Laravel} e altri framework molto usati, in particolare permette di configurare tutto in modo automatico, agevolando lo sviluppatore. + Si integra facilmente con \glock{Laravel} e altri framework molto usati, in particolare permette di configurare tutto in modo automatico, agevolando lo sviluppatore. \newline - PHPStorm è gratuito per gli studenti universitari e può essere riscattato, allo stesso modo di IntelliJ Idea, dal sito ufficiale. + PHPStorm è gratuito per gli studenti universitari e può essere riscattato, allo stesso modo di IntelliJ Idea, dal sito ufficiale. \begin{itemize} \item PHPStorm genera una cartella \verb!.idea! che non deve essere aggiunta al sistema di versionamento; \item analogamente, anche le cartelle di output, \verb!out/! e \verb!target/!, non devono essere versionate. \end{itemize} - + \paragraph{WebStorm} WebStorm è un IDE sviluppato da \textit{JetBrains}, molto simile a PHPStorm, che viene usato per lo sviluppo del \glock{bot Telegram}, il quale fa uso di \glock{JavaScript}. \newline Si integra facilmente con \glock{Node.js} e altri framework molto usati, in particolare permette di configurare tutto in modo automatico, agevolando lo sviluppatore. \newline - WebStorm è gratuito per gli studenti universitari e può essere riscattato, allo stesso modo di PHPStorm, dal sito ufficiale. - + WebStorm è gratuito per gli studenti universitari e può essere riscattato, allo stesso modo di PHPStorm, dal sito ufficiale. + \begin{itemize} \item WebStorm genera una cartella \verb!.idea! che non deve essere aggiunta al sistema di versionamento; \item analogamente, anche le cartelle di output, \verb!out/! e \verb!target/!, non devono essere versionate. \end{itemize} - - \paragraph{Visual Studio Code} + + \paragraph{Visual Studio Code} Visual Studio Code è un editor di codice sorgente sviluppato da \textit{Microsoft} per Windows, Linux e MacOS; esso include una serie di estensioni che possono essere utilizzate al fine di arricchire l'editor in base alle necessità. \newline Nell'ambito del progetto, Visual Studio Code può essere utilizzato per lo sviluppo del codice sorgente per board come \glock{Arduino Uno} e \glock{ESP8266}, con le quali è possibile simulare fisicamente un dispositivo industriale. - + \paragraph{Portainer} Portainer è un applicativo web usato per la gestione dei \glock{container}, istanziati in una macchina locale o remota, che fa uso di \glock{Docker}. \newline @@ -782,7 +899,7 @@ \subsection{Sviluppo} \item visualizzare i logs di un singolo container; \item operare dentro il container da riga di comando; \item modificare la configurazione di rete e di avvio del container; - \item aggiungere ed eseguire il processo di build delle \glock{immagini} di \glock{Docker}. + \item aggiungere ed eseguire il processo di build delle \glock{immagini} di \glock{Docker}. \end{itemize} \paragraph{Kafka Manager} @@ -794,24 +911,24 @@ \subsection{Sviluppo} \item cancellare topic esistenti; \item aggiornare dei parametri di configurazione di un particolare topic; \item controllare il flusso di produzione e consumazione dei messaggi. - \end{itemize} - - \paragraph{Draw.io} - Draw.io è un'applicazione online gratuita e collaborativa, utilizzabile nella suite di \glock{Google Drive}, per la realizzazione di diagrammi di molteplici tipologie. + \end{itemize} + + \paragraph{Draw.io} + Draw.io è un'applicazione online gratuita e collaborativa, utilizzabile nella suite di \glock{Google Drive}, per la realizzazione di diagrammi di molteplici tipologie. \newline In particolare, risulta molto utile per la rappresentazione di diagrammi UML di qualsiasi tipologia, grazie ad un insieme di forme e figure in linguaggio UML predefinite all'interno dell'applicazione stessa e facilmente componibili per la costruzione dei diagrammi. - - \paragraph{Firefox} + + \paragraph{Firefox} Browser web sviluppato dalla \textit{Mozilla Foundations} che viene utilizzato per visualizzare la web app e accedere alle interfacce online di \glock{Docker}. \newline Il browser è gratuito e scaricabile dal sito ufficiale per qualunque sistema operativo. - \paragraph{Chrome} + \paragraph{Chrome} Chrome è un browser web sviluppato da \textit{Google} che viene utilizzato in alternativa a \textit{Firefox}, per la visualizzazione della web app e per accedere agli strumenti online. \newline Viene utilizzato sia a livello desktop, che a livello mobile, specialmente negli smartphone \textit{Android}. - \paragraph{Safari} + \paragraph{Safari} Safari è un browser web sviluppato da \textit{Apple} che viene utilizzato per accedere e testare la web app su \textit{MacOs}. \newline - Esiste una versione mobile del browser che viene utilizzata nativamente negli smartphone \textit{Apple}. \ No newline at end of file + Esiste una versione mobile del browser che viene utilizzata nativamente negli smartphone \textit{Apple}. diff --git a/interni/norme_progetto/res/sections/Sez3-ProcessiSupporto/GaranziaQualita.tex b/interni/norme_progetto/res/sections/Sez3-ProcessiSupporto/GaranziaQualita.tex index 83b1ed8..6ee21a7 100644 --- a/interni/norme_progetto/res/sections/Sez3-ProcessiSupporto/GaranziaQualita.tex +++ b/interni/norme_progetto/res/sections/Sez3-ProcessiSupporto/GaranziaQualita.tex @@ -109,7 +109,7 @@ \subsection{Garanzia della qualità} \subparagraph{Scopo} - Durante le fasi di progetto, specialmente quelle che riguardano lo sviluppo, si rende necessario monitorare il quantitativo delle metriche soddisfatte per comprendere l'attenzione alla qualità dai parte dei componenti del gruppo. + Durante le fasi di progetto, specialmente quelle che riguardano lo sviluppo, si rende necessario monitorare il quantitativo delle metriche soddisfatte per comprendere l'attenzione alla qualità da parte del gruppo. \subparagraph{Introduzione alle metriche} @@ -121,24 +121,24 @@ \subsection{Garanzia della qualità} \subparagraph{QM-PROC-11 Percentuale delle metriche soddisfatte (PMS)} \begin{itemize} - \item \textbf{descrizione: } - La metrica permette di conoscere la percentuale delle metriche soddisfatte fino a quel momento, sulla base delle metriche disponibili; + \item \textbf{Descrizione: } + la metrica permette di conoscere la percentuale delle metriche soddisfatte fino a quel momento, sulla base delle metriche disponibili; - \item \textbf{unità di misura: } - La metrica viene espressa in percentuale. + \item \textbf{Unità di misura: } + la metrica viene espressa in percentuale. - \item \textbf{formula: } - La formula della metrica è la seguente: + \item \textbf{Formula: } + la formula della metrica è la seguente: \[ \text{PMS} = \frac{\text{Numero di metriche soddisfatte}}{\text{Numero totale di operandi}} \times 100 \] dove per \textit{metriche soddisfatte} si intendono tutte le metriche la cui soglia di accettabilità è stata superata; - \item \textbf{risultato: } + \item \textbf{Risultato: } \begin{itemize} - \item Se il risultato è pari a 0\%, nessuna metrica è stata superata. - \item Se il risultato è pari al 100\%, tutte le metriche sono state superate. - \item Se il risultato è maggiore di 0\%, ma minore di 100\%, non tutte le metriche hanno raggiunto la soglia di accettabilità. + \item se il risultato è pari a 0\%, nessuna metrica è stata superata. + \item se il risultato è pari al 100\%, tutte le metriche sono state superate. + \item se il risultato è maggiore di 0\%, ma minore di 100\%, non tutte le metriche hanno raggiunto la soglia di accettabilità. \end{itemize} \end{itemize} diff --git a/interni/norme_progetto/res/sections/Sez3-ProcessiSupporto/GestConfigurazione.tex b/interni/norme_progetto/res/sections/Sez3-ProcessiSupporto/GestConfigurazione.tex index 0a7fa47..2940e62 100644 --- a/interni/norme_progetto/res/sections/Sez3-ProcessiSupporto/GestConfigurazione.tex +++ b/interni/norme_progetto/res/sections/Sez3-ProcessiSupporto/GestConfigurazione.tex @@ -87,24 +87,34 @@ \subsubsection{Attività} \] \begin{itemize} - \item \((\alpha)\): numero identificativo del rilascio esterno del documento al proponente e/o al committente + \item \((\alpha)\): numero identificativo che rappresenta un insieme di modifiche sostanziali della struttura e dei contenuti delle sezioni del documento; \begin{itemize} \item parte da 0 e non si resetta mai; - \item viene incrementato solo dal responsabile a seguito di una approvazione di rilascio del documento verso un destinatario esterno al team; + \item viene incrementato solo dal responsabile, o da una procedura automatica da lui approvata, a seguito di un accertamento di importanti cambiamenti nel documento, quali: + \begin{itemize} + \item aggiunta o modifica di almeno un quarto del numero di sezioni del documento; + \item cambiamento radicale della struttura delle sezioni; + \item aggiunta di una nuova sezione di primo livello o di più appendici; + \end{itemize} \end{itemize} - \item \((\beta)\): numero identificativo che rappresenta un'approvazione del documento + \item \((\beta)\): numero identificativo che rappresenta un accertamento e un'approvazione del documento a seguito di modifiche minori; \begin{itemize} \item parte da 0 e si resetta solo a incrementi di \(\alpha\); - \item viene incrementato solo dal responsabile a seguito del raggiungimento di una baseline se il prodotto è conforme; + \item viene incrementato solo dal responsabile, o da una procedura automatica da lui approvata, a seguito del raggiungimento di una baseline, se il prodotto è conforme; + \item le modifiche minori possono riguardare: + \begin{itemize} + \item la modifica di un numero ristretto di sezioni (es: una o due sezioni); + \item l'aggiunta di una nuova sezione di secondo livello o di un'appendice; + \end{itemize} \end{itemize} - \item \((\gamma)\): numero rappresentativo di una aggiunta o modifica verificata fatta al documento + \item \((\gamma)\): numero rappresentativo di una aggiunta o modifica verificata fatta al documento, in modo singolare \begin{itemize} \item parte da 0 e si resetta solo a incrementi di \(\beta\) o di \(\alpha\); \item viene incrementato da un revisore dopo aver verificato che una sezione sia conforme a quanto deciso. \end{itemize} \end{itemize} - Generalmente ogni documento prima di poter essere rilasciato verso l'esterno dovrà essere stato approvato e rilasciato internamente. + Generalmente, ogni documento prima di poter essere rilasciato verso l'esterno dovrà essere stato approvato per rilasciato. \subparagraph{Esempi codice di versionamento dei documenti} @@ -447,7 +457,8 @@ \subsubsection{Strumenti} \item \textbf{descrizione:} contiene le \glock{API} per la comunicazione tra \glock{Apache Kafka} e le applicazioni esterne; \item \textbf{nome completo:} \verb!RedRoundRobin/swe-api!; \item \textbf{URL:} \href{https://github.com/RedRoundRobin/swe-api}{api.redroundrobin.site}; - \item \textbf{linguaggi di sviluppo:} \glock{Java}. + \item \textbf{linguaggi di sviluppo:} \glock{Java}; + \item \textbf{documentazione online API (branch \textit{develop}):} \href{http://redroundrobin.github.io/api-docs}{api.docs.redroundrobin.site}. \end{itemize} \subparagraph{Sotto-modulo swe-telegram} @@ -634,7 +645,7 @@ \subsubsection{Strumenti} \paragraph{Strumenti video} - Al fine di eseguire registrazioni di video dimostrativi, sono stati utilizzati degli strumenti per la registrazione dello schermo e per il montaggio finale. In particolare, si è fatto uso di strumenti gratuiti e con molteplice compatibilità a livello di sistema operativo. + Al fine di eseguire registrazioni di video dimostrativi per il proponente e per il manuale utente, sono stati utilizzati degli strumenti per la registrazione dello schermo e per il montaggio finale. In particolare, si è fatto uso di strumenti gratuiti e con molteplice compatibilità a livello di sistema operativo. \subparagraph{OBS} @@ -663,7 +674,7 @@ \subsubsection{Strumenti} YouTube è una piattaforma online di pubblicazione e streaming video che si integra nativamente con un account Google. L'inserimento dei video è gratuito e il suo utilizzo è molto intuitivo. \newline - Attraverso l'uso dell'account Google di progetto, si è deciso di aprire un canale YouTube in forma privata col fine di pubblicare video in base alle necessità. + Attraverso l'uso dell'account Google di progetto, si è deciso di aprire un canale YouTube in forma privata col fine di pubblicare i video di presentazione per il proponente e per il manuale utente. \newline I video pubblicati all'interno del canale di progetto sono solamente in forma privata e accessibili unicamente tramite link. diff --git a/interni/norme_progetto/res/sections/Sez3-ProcessiSupporto/Validazione.tex b/interni/norme_progetto/res/sections/Sez3-ProcessiSupporto/Validazione.tex index 1076b4d..1fa10f6 100644 --- a/interni/norme_progetto/res/sections/Sez3-ProcessiSupporto/Validazione.tex +++ b/interni/norme_progetto/res/sections/Sez3-ProcessiSupporto/Validazione.tex @@ -28,25 +28,12 @@ \subsection{Validazione} Per classificare questi tipi di test verrà associata un codice ad ognuno di essi secondo il seguente modello: \begin{center} - \textbf{TA[Priorità]-[Tipologia]-[Identificativo]} + \textbf{TA-[Identificativo]} \end{center} Dove: \begin{itemize} - \item \textbf{Priorità:} indica la priorità del requisito associato al test e potrà avere i seguenti valori: - \begin{itemize} - \item \textbf{A:} obbligatorio, strettamente necessario; - \item \textbf{B:} desiderabile, non strettamente necessario; - \item \textbf{C:} relativamente utile o contrattabile in corso d'opera. - \end{itemize} - \item \textbf{Tipologia:} indica la tipologia del requisito associato al test e potrà avere i seguenti valori: - \begin{itemize} - \item \textbf{F:} funzionale; - \item \textbf{P:} prestazionale; - \item \textbf{Q:} qualitativo; - \item \textbf{V:} vincolo. - \end{itemize} - \item \textbf{Identificativo:} numero progressivo il cui obiettivo sarà di contraddistinguere il singolo componente da testare; parte da 1. + \item \textbf{Identificativo:} è un numero progressivo il cui obiettivo sarà di contraddistinguere il singolo requisito da testare; parte da 1. \end{itemize} \subsubsection{Metriche} diff --git a/interni/norme_progetto/res/sections/Sez3-ProcessiSupporto/Verifica.tex b/interni/norme_progetto/res/sections/Sez3-ProcessiSupporto/Verifica.tex index 374b5e4..0531507 100644 --- a/interni/norme_progetto/res/sections/Sez3-ProcessiSupporto/Verifica.tex +++ b/interni/norme_progetto/res/sections/Sez3-ProcessiSupporto/Verifica.tex @@ -63,25 +63,12 @@ \subsection{Verifica} Per classificare questa tipologia di test si utilizzerà un codice utilizzando il seguente modello: \begin{center} - \textbf{TS[Priorità]-[Tipologia]-[Identificativo]} + \textbf{TS-[Identificativo]} \end{center} Dove: \begin{itemize} - \item \textbf{Priorità:} indica la priorità del requisito associato al test e potrà avere i seguenti valori: - \begin{itemize} - \item \textbf{A:} obbligatorio, strettamente necessario; - \item \textbf{B:} desiderabile, non strettamente necessario; - \item \textbf{C:} relativamente utile o contrattabile in corso d'opera. - \end{itemize} - \item \textbf{Tipologia:} indica la tipologia del requisito associato al test e potrà avere i seguenti valori: - \begin{itemize} - \item \textbf{F:} funzionale; - \item \textbf{P:} prestazionale; - \item \textbf{Q:} qualitativo; - \item \textbf{V:} vincolo. - \end{itemize} - \item \textbf{Identificativo:} numero progressivo il cui obiettivo sarà di contraddistinguere il singolo componente da testare; parte da 1. + \item \textbf{Identificativo:} è un numero progressivo il cui obiettivo sarà di contraddistinguere il singolo requisito da testare; parte da 1. \end{itemize} \subparagraph*{Test di integrazione} @@ -94,7 +81,7 @@ \subsection{Verifica} Dove: \begin{itemize} - \item \textbf{Identificativo:} è un numero progressivo il cui obiettivo sarà di contraddistinguere il singolo componente da testare; parte da 1. + \item \textbf{Identificativo:} è un numero progressivo il cui obiettivo sarà di contraddistinguere la singola integrazione da testare; parte da 1. \end{itemize} \subparagraph*{Test di unità} @@ -107,7 +94,7 @@ \subsection{Verifica} Dove: \begin{itemize} - \item \textbf{Identificativo:} è un numero progressivo il cui obiettivo sarà di contraddistinguere il singolo componente da testare; parte da 1. + \item \textbf{Identificativo:} è un numero progressivo il cui obiettivo sarà di contraddistinguere la singola unità da testare; parte da 1. \end{itemize} \subparagraph*{Test di regressione} @@ -116,159 +103,156 @@ \subsection{Verifica} \subsubsection{Metriche} - Per il processo di verifica non sono state ancora definite e implementate delle metriche di qualità. - \paragraph{QP-4 Verifica} \subparagraph{Scopo} - Durante tutta la fase di sviluppo, si vuole monitorare il processo di verifica (software) mettendo in luce aspetti che riguardano la complessità e la copertura di test a livello di codice. Questo può essere utile per il cliente e per il gruppo per comprendere l'avanzamento delle attività di verifica del software fino alla data attuale. + Durante tutta la fase di sviluppo, si vuole monitorare il processo di verifica (software) mettendo in luce aspetti che riguardano la complessità e la copertura di test a livello di codice. Questo può essere utile sia per il cliente, sia per il gruppo, in modo da comprendere l'avanzamento delle attività di verifica del software fino alla data attuale. \subparagraph{Introduzione alle metriche} - Per la Verifica del Software si farà uso delle seguenti metriche: + Per la verifica del software si farà uso delle seguenti metriche: \begin{itemize} - - \item QM-TEST-1 Code Coverage (COCO); - \item QM-TEST-2 Condition Coverage (CONCO); - \item QM-TEST-3 Line Coverage (LOCO); - \item QM-TEST-4 Passed Test Cases Percentage (PTCP); - \item QM-TEST-5 Failed Test Cases Percentage (FTCP); - \item QM-TEST-6 Bug-Fixing Percentage (BFP); + \item QM-TEST-1 Code coverage (COCO); + \item QM-TEST-2 Condition coverage (CONCO); + \item QM-TEST-3 Line coverage (LOCO); + \item QM-TEST-4 Passed test cases percentage (PTCP); + \item QM-TEST-5 Failed test cases percentage (FTCP); + \item QM-TEST-6 Bug-fixing percentage (BFP); \item QM-TEST-7 Complessità media dei test di classe (CMTC). \end{itemize} - \subparagraph{QM-TEST-1 Code Coverage (COCO)} + \subparagraph{QM-TEST-1 Code coverage (COCO)} \begin{itemize} - \item \textbf{descrizione: } - La metrica verifica la copertura effettuata attraverso una suite di tests, rispetto al codice prodotto del programma; + \item \textbf{Descrizione: } + la metrica verifica la copertura effettuata attraverso una suite di test, rispetto al codice prodotto del programma; - \item \textbf{unità di misura: } - La metrica viene espressa in percentuale. + \item \textbf{Unità di misura: } + la metrica viene espressa in percentuale; - \item \textbf{fonte: } - I dati vengono recuperati attraverso le statistiche di \glock{SonarCloud}; + \item \textbf{Fonte: } + i dati vengono recuperati attraverso le statistiche di \glock{SonarCloud}; - \item \textbf{risultato: } + \item \textbf{Risultato: } \begin{itemize} - \item Se il risultato è pari a 0\%, la copertura è nulla. - \item Se il risultato è pari al 100\%, la copertura è totale. - \item Se il risultato è maggiore di 0\%, ma minore di 100\%, la copertura è parziale. + \item se il risultato è pari a 0\%, la copertura è nulla; + \item se il risultato è pari al 100\%, la copertura è totale; + \item se il risultato è maggiore di 0\%, ma minore di 100\%, la copertura è parziale. \end{itemize} \end{itemize} - \subparagraph{QM-TEST-2 Condition Coverage (CONCO)} + \subparagraph{QM-TEST-2 Condition coverage (CONCO)} \begin{itemize} - \item \textbf{descrizione: } - La metrica verifica che ogni condizione di tipo booleano realizzata con gli operatori logici venga considerata sia vera che falsa nei test. Questo permette di avere una migliore sensibilità sul controllo di flusso del programma; + \item \textbf{Descrizione: } + la metrica verifica che ogni condizione di tipo booleano realizzata con degli operatori logici, venga considerata sia vera che falsa nei test; questo permette di avere una migliore sensibilità sul controllo di flusso del programma; - \item \textbf{unità di misura: } - La metrica viene espressa in percentuale. + \item \textbf{Unità di misura: } + la metrica viene espressa in percentuale; - \item \textbf{fonte: } - I dati vengono recuperati attraverso le statistiche di \glock{SonarCloud}; + \item \textbf{Fonte: } + i dati vengono recuperati attraverso le statistiche di \glock{SonarCloud}; - \item \textbf{formula: } - La formula della metrica è la seguente: + \item \textbf{Formula: } + la formula della metrica è la seguente: \[ \text{COCOV} = \frac{\text{Numero di operandi eseguiti dai test}}{\text{Numero totale di operandi}} \times 100 \] - \item \textbf{risultato: } + \item \textbf{Risultato: } \begin{itemize} - \item Se il risultato è pari a 0\%, la copertura è nulla. - \item Se il risultato è pari al 100\%, la copertura è totale. - \item Se il risultato è maggiore di 0\%, ma minore di 100\%, la copertura è parziale. + \item se il risultato è pari a 0\%, la copertura è nulla; + \item se il risultato è pari al 100\%, la copertura è totale; + \item se il risultato è maggiore di 0\%, ma minore di 100\%, la copertura è parziale. \end{itemize} \end{itemize} - \subparagraph{QM-TEST-3 Line Coverage (LOCO)} + \subparagraph{QM-TEST-3 Line coverage (LOCO)} \begin{itemize} - \item \textbf{descrizione: } - La metrica verifica la percentuale di linee di codice che è stata coperta attraverso i test; questo permette di comprendere il quantitativo di attenzione che è stato dato nella scrittura dei test; + \item \textbf{Descrizione: } + la metrica verifica la percentuale di linee di codice che è stata coperta attraverso i test; questo permette di comprendere il quantitativo di attenzione che è stato dato nella scrittura dei test; - \item \textbf{unità di misura: } - La metrica viene espressa in percentuale. + \item \textbf{Unità di misura: } + la metrica viene espressa in percentuale; - \item \textbf{fonte: } - I dati vengono recuperati attraverso le statistiche di \glock{SonarCloud}; + \item \textbf{Fonte: } + i dati vengono recuperati attraverso le statistiche di \glock{SonarCloud}; - \item \textbf{risultato: } + \item \textbf{Risultato: } \begin{itemize} - \item Se il risultato è pari a 0\%, la copertura è nulla. - \item Se il risultato è pari al 100\%, la copertura è totale. - \item Se il risultato è maggiore di 0\%, ma minore di 100\%, la copertura è parziale. + \item se il risultato è pari a 0\%, la copertura è nulla; + \item se il risultato è pari al 100\%, la copertura è totale; + \item se il risultato è maggiore di 0\%, ma minore di 100\%, la copertura è parziale. \end{itemize} \end{itemize} - \subparagraph{QM-TEST-4 Passed Test Cases Percentage (PTCP)} + \subparagraph{QM-TEST-4 Passed test cases percentage (PTCP)} \begin{itemize} - \item \textbf{descrizione: } - La metrica PTCP si utilizza per misurare la percentuale di test passati con successo in una specifica fase del progetto fino alla data corrente. + \item \textbf{Descrizione: } + la metrica PTCP si utilizza per misurare la percentuale di test passati con successo in una specifica fase del progetto fino alla data corrente; - \item \textbf{unità di misura: } - La metrica viene espressa in percentuale. + \item \textbf{Unità di misura: } + la metrica viene espressa in percentuale; - \item \textbf{formula: } - La formula della metrica è la seguente: + \item \textbf{Formula: } + la formula della metrica è la seguente: \[ \text{PTCP} = \frac{\text{Numero di test passati}}{\text{Numero totale di test eseguiti}} \times 100 \] - \item \textbf{risultato: } + \item \textbf{Risultato: } \begin{itemize} - \item Se il risultato è pari a 0\%, nessun test realizzato per il software è andato a buon fine; - \item Se il risultato è pari al 100\%, tutti i test realizzati per il software sono andati a buon fine; - \item Se il risultato è compreso tra 0\% e 100\%, non tutti i test realizzati per il software sono andati a buon fine. + \item se il risultato è pari a 0\%, nessun test realizzato per il software è andato a buon fine; + \item se il risultato è pari al 100\%, tutti i test realizzati per il software sono andati a buon fine; + \item se il risultato è compreso tra 0\% e 100\%, non tutti i test realizzati per il software sono andati a buon fine. \end{itemize} \end{itemize} - \subparagraph{QM-TEST-5 Failed Test Cases Percentage (FTCP)} + \subparagraph{QM-TEST-5 Failed test cases percentage (FTCP)} \begin{itemize} - \item \textbf{descrizione: } - La metrica FTCP viene usata per misurare la percentuale di test falliti in una specifica fase del progetto fino alla data corrente. + \item \textbf{Descrizione: } + la metrica FTCP viene usata per misurare la percentuale di test falliti in una specifica fase del progetto fino alla data corrente; - \item \textbf{unità di misura: } - La metrica viene espressa in percentuale. + \item \textbf{Unità di misura: } + la metrica viene espressa in percentuale; - \item \textbf{formula: } - La formula della metrica è la seguente: + \item \textbf{Formula: } + la formula della metrica è la seguente: \[ \text{FTCP} = \frac{\text{Numero di test falliti}}{\text{Numero totale di test eseguiti}} \times 100 \] - \item \textbf{risultato: } + \item \textbf{Risultato: } \begin{itemize} - \item Se il risultato è pari a 0\%, non ci sono test realizzati per il software che sono falliti; - \item Se il risultato è pari al 100\%, tutti i test realizzati per il software sono falliti; - \item Se il risultato è compreso tra 0\% e 100\%, non tutti i test realizzati per il software sono andati a buon fine. + \item se il risultato è pari a 0\%, non ci sono test realizzati per il software che sono falliti; + \item se il risultato è pari al 100\%, tutti i test realizzati per il software sono falliti; + \item se il risultato è compreso tra 0\% e 100\%, non tutti i test realizzati per il software sono andati a buon fine. \end{itemize} \end{itemize} - \subparagraph{QM-TEST-6 Bug-Fixing Percentage (BFP)} + \subparagraph{QM-TEST-6 Bug-fixing percentage (BFP)} \begin{itemize} - \item \textbf{descrizione: } - La metrica BFP si utilizza per misurare il quantitativo di errori corretti nel codice rispetto agli errori trovati fino alla data corrente. + \item \textbf{Descrizione: } + la metrica BFP si utilizza per misurare il quantitativo di errori corretti nel codice, rispetto agli errori trovati, fino alla data corrente; - \item \textbf{unità di misura: } - La metrica viene espressa in percentuale. + \item \textbf{Unità di misura: } + la metrica viene espressa in percentuale; - \item \textbf{formula: } - La formula della metrica è la seguente: + \item \textbf{Formula: } + la formula della metrica è la seguente: \[ \text{BFP} = \frac{\text{Numero di difetti corretti}}{\text{Numero di difetti trovati}} \times 100 \] - \item \textbf{risultato: } + \item \textbf{Risultato: } \begin{itemize} - \item Se il risultato è pari a 0\%, nessun difetto è stato risolto; - \item Se il risultato è pari al 100\%, tutti i difetti sono stati risolti; - \item Se il risultato è compreso tra 0\% e 100\%, non tutti i difetti sono stati corretti. + \item se il risultato è pari a 0\%, nessun difetto è stato risolto; + \item se il risultato è pari al 100\%, tutti i difetti sono stati risolti; + \item se il risultato è compreso tra 0\% e 100\%, non tutti i difetti sono stati corretti. \end{itemize} \end{itemize} @@ -276,20 +260,20 @@ \subsection{Verifica} \subparagraph{QM-TEST-7 Complessità media dei test di classe (CMTC)} \begin{itemize} - \item \textbf{descrizione: } - La metrica CMTC viene utilizzata per comprendere il quantitativo medio di test realizzati in relazione al numero di classi presenti nel componente software; - \item \textbf{unità di misura: } - La metrica è espressa tramite un numero decimale; - \item \textbf{formula: } - La formula della metrica è la seguente: + \item \textbf{Descrizione: } + la metrica CMTC viene utilizzata per comprendere il quantitativo medio di test realizzati in relazione al numero di classi presenti nel componente software; + \item \textbf{Unità di misura: } + la metrica è espressa tramite un numero decimale; + \item \textbf{Formula: } + la formula della metrica è la seguente: \[ \text{CMTC} = \frac{\text{numero totale di test}}{\text{numero totali di classi}} \] - \item \textbf{risultato: } - Il risultato della formula ha i seguenti significati: + \item \textbf{Risultato: } + il risultato della formula ha i seguenti significati: \begin{itemize} \item se il risultato è pari a 0, allora nel componente non è stato incluso in alcun test; - \item se il risultato è maggiore di 0 e minore di 1, allora in media ci possono essere delle classi prive di test. + \item se il risultato è maggiore di 0 e minore di 1, allora in media ci possono essere delle classi prive di test; \item se il risultato è maggiore di 1, allora in media ciascuna classe ha almeno un test. \end{itemize} \end{itemize} diff --git a/interni/norme_progetto/res/sections/Sez4-ProcessiOrganizzativi/GestProcessi.tex b/interni/norme_progetto/res/sections/Sez4-ProcessiOrganizzativi/GestProcessi.tex index c069514..af0f569 100644 --- a/interni/norme_progetto/res/sections/Sez4-ProcessiOrganizzativi/GestProcessi.tex +++ b/interni/norme_progetto/res/sections/Sez4-ProcessiOrganizzativi/GestProcessi.tex @@ -26,7 +26,7 @@ \subsection{Gestione dei processi} \end{itemize} \subsubsection{Descrizione} - Le attività previste dal processo di gestione dei processi sono raccolte nel \dext{Piano di Progetto v2.0.0}, la cui redazione è in carico al responsabile, con la collaborazione dell'amministratore. + Le attività previste dal processo di gestione dei processi sono raccolte nel \dext{Piano di Progetto v2.5.0}, la cui redazione è in carico al responsabile, con la collaborazione dell'amministratore. \newline Nello specifico, sono trattati: @@ -294,14 +294,14 @@ \subsection{Gestione dei processi} Per la gestione delle risorse si farà uso delle seguenti metriche: \begin{itemize} - \item QM-PROC-1 Budgeted Cost of Work Scheduled (BCWS); - \item QM-PROC-2 Actual Cost of Work Performed (ACWP); - \item QM-PROC-3 Budgeted Cost of Work Performed (BCWP); - \item QM-PROC-4 Schedule Variance (SV); - \item QM-PROC-5 Cost Variance (CV). + \item QM-PROC-1 Budgeted cost of work scheduled (BCWS); + \item QM-PROC-2 Actual cost of work performed (ACWP); + \item QM-PROC-3 Budgeted cost of work performed (BCWP); + \item QM-PROC-4 Schedule variance (SV); + \item QM-PROC-5 Cost variance (CV). \end{itemize} - \subparagraph{QM-PROC-1 Budgeted Cost of Work Scheduled (BCWS)} + \subparagraph{QM-PROC-1 Budgeted cost of work scheduled (BCWS)} \begin{itemize} \item \textbf{Descrizione:} la metrica BCWS definisce il costo pianificato per realizzare le attività di progetto alla data corrente; @@ -309,7 +309,7 @@ \subsection{Gestione dei processi} \item \textbf{Unità di misura:} il costo pianificato è misurato in EURO. \end{itemize} - \subparagraph{QM-PROC-2 Actual Cost of Work Performed (ACWP)} + \subparagraph{QM-PROC-2 Actual cost of work performed (ACWP)} \begin{itemize} \item \textbf{Descrizione:} la metrica ACWP definisce il costo effettivamente sostenuto per realizzare le attività di progetto alla data corrente; @@ -317,7 +317,7 @@ \subsection{Gestione dei processi} \item \textbf{Unità di misura:} il costo sostenuto è misurato in EURO. \end{itemize} - \subparagraph{QM-PROC-3 Budgeted Cost of Work Performed (BCWP)} + \subparagraph{QM-PROC-3 Budgeted cost of work performed (BCWP)} \begin{itemize} \item \textbf{Descrizione:} la metrica BCWP definisce il valore delle attività realizzate alla data corrente. In altre parole, misura il valore del prodotto fino ad ora realizzato; @@ -325,7 +325,7 @@ \subsection{Gestione dei processi} \item \textbf{Unità di misura:} il valore del prodotto è misurato in EURO. \end{itemize} - \subparagraph{QM-PROC-4 Schedule Variance (SV)} + \subparagraph{QM-PROC-4 Schedule variance (SV)} \begin{itemize} \item \textbf{Descrizione:} la metrica SV indica se si è in anticipo, in ritardo o in linea rispetto alle schedulazioni pianificate per il progetto. Questo può essere utile per il cliente per valutare l'efficacia del gruppo nei confronti della realizzazione del progetto; @@ -347,7 +347,7 @@ \subsection{Gestione dei processi} \item un risultato \textbf{pari a zero} indica che il progetto è in linea rispetto alla schedulazione. \end{itemize} \end{itemize} - \subparagraph{QM-PROC-5 Cost Variance (CV)} + \subparagraph{QM-PROC-5 Cost variance (CV)} \begin{itemize} \item \textbf{Descrizione:} la metrica CV indica se il valore del costo realmente maturato è maggiore, minore o uguale rispetto al costo effettivo. In altre parole, permette di comprendere con che livello di efficienza il gruppo sta sviluppando il progetto, rispetto a quanto pianificato; @@ -374,10 +374,10 @@ \subsection{Gestione dei processi} Per la gestione dei rischi si farà uso delle seguenti metriche: \begin{itemize} - \item QM-PROC-6 Unbudgeted Risks (UR). + \item QM-PROC-6 Unbudgeted risks (UR). \end{itemize} - \subparagraph{QM-PROC-6 Unbudgeted Risks (UR)} + \subparagraph{QM-PROC-6 Unbudgeted risks (UR)} \begin{itemize} \item \textbf{Descrizione:} la metrica UR viene utilizzata per tracciare in modo incrementale tutti i nuovi rischi non precedentemente preventivati che si presentano durante una fase del progetto; diff --git a/interni/studio_fattibilita/res/sections/Introduzione.tex b/interni/studio_fattibilita/res/sections/Introduzione.tex index b739ba9..cdc6aab 100644 --- a/interni/studio_fattibilita/res/sections/Introduzione.tex +++ b/interni/studio_fattibilita/res/sections/Introduzione.tex @@ -11,7 +11,7 @@ \subsection{Glossario e documenti esterni} \subsection{Riferimenti} \subsubsection{Normativi} \begin{itemize} - \item \textbf{\dext{Norme di Progetto v1.0.0}}. + \item \textbf{\dext{Norme di Progetto v2.0.0}}. \end{itemize} \subsubsection{Informativi} \begin{itemize} diff --git a/interni/verbali/VI_2020-03-11_17/main.tex b/interni/verbali/VI_2020-03-11_17/main.tex index d586dcd..b83ebd0 100644 --- a/interni/verbali/VI_2020-03-11_17/main.tex +++ b/interni/verbali/VI_2020-03-11_17/main.tex @@ -12,8 +12,8 @@ % -------------- \newcommand{\docNome}{ VERBALE RIUNIONE \#17 } -\newcommand{\docBaseline}{+b0.11} -\newcommand{\docVersione}{0.1.0\docBaseline} +\newcommand{\docBaseline}{+b0.15} +\newcommand{\docVersione}{1.0.0\docBaseline} \newcommand{\docNomeProgetto}{ 11 marzo 2020 } \newcommand{\docStatus}{Approvato} \newcommand{\docUso}{Interno} @@ -27,7 +27,7 @@ Giuseppe Vito Bitetti } \newcommand{\docApprovazione}{ - Giovanni Vidotto + Lorenzo Dei Negri } % ----- NON MODIFICARE SOTTO QUESTA RIGA ----- diff --git a/interni/verbali/VI_2020-03-11_17/res/registro.tex b/interni/verbali/VI_2020-03-11_17/res/registro.tex index 66bfb54..7084c67 100644 --- a/interni/verbali/VI_2020-03-11_17/res/registro.tex +++ b/interni/verbali/VI_2020-03-11_17/res/registro.tex @@ -10,11 +10,11 @@ \section*{Registro delle modifiche} \endfirsthead % ----- Modificare da qui ----- - 0.1.0+b0.11 & Approvazione del documento & 2020-03-15 & Giovanni Vidotto & Responsabile \\ + 1.0.0+b0.10 & Approvazione del documento & 2020-03-15 & Lorenzo Dei Negri & Responsabile \\ \hline - 0.0.2+b0.11 & Stesura e revisione del documento & 2020-03-11 & Fouad Mouad e Giuseppe Vito Bitetti & Amministratore e verificatore \\ + 0.0.2+b0.10 & Stesura e revisione del documento & 2020-03-11 & Fouad Mouad e Giuseppe Vito Bitetti & Amministratore e verificatore \\ \hline - 0.0.1+b0.11 & Creazione iniziale del documento & 2020-03-11 & Fouad Mouad & Redattore \\ + 0.0.1+b0.10 & Creazione iniziale del documento & 2020-03-11 & Fouad Mouad & Redattore \\ \hline \end{longtable} diff --git a/interni/verbali/VI_2020-03-19_18/main.tex b/interni/verbali/VI_2020-03-19_18/main.tex index 42e836b..e1b79ac 100644 --- a/interni/verbali/VI_2020-03-19_18/main.tex +++ b/interni/verbali/VI_2020-03-19_18/main.tex @@ -12,8 +12,8 @@ % -------------- \newcommand{\docNome}{ VERBALE RIUNIONE \#18 } -\newcommand{\docBaseline}{+b0.12} -\newcommand{\docVersione}{0.0.2\docBaseline} +\newcommand{\docBaseline}{+b0.15} +\newcommand{\docVersione}{1.0.0\docBaseline} \newcommand{\docNomeProgetto}{ 19 marzo 2020 } \newcommand{\docStatus}{Approvato} \newcommand{\docUso}{Interno} @@ -24,10 +24,10 @@ Giuseppe Vito Bitetti } \newcommand{\docVerificatori}{ -NA + Fouad Mouad } \newcommand{\docApprovazione}{ -NA + Lorenzo Dei Negri } % ----- NON MODIFICARE SOTTO QUESTA RIGA ----- diff --git a/interni/verbali/VI_2020-03-19_18/res/registro.tex b/interni/verbali/VI_2020-03-19_18/res/registro.tex index bcdae2b..25b495f 100644 --- a/interni/verbali/VI_2020-03-19_18/res/registro.tex +++ b/interni/verbali/VI_2020-03-19_18/res/registro.tex @@ -10,9 +10,11 @@ \section*{Registro delle modifiche} \endfirsthead % ----- Modificare da qui ----- - 0.0.2+b0.12 & Stesura & 2020-03-19 & Giuseppe Vito Bitetti & Amministratore \\ + 1.0.0+b0.11 & Approvazione del documento & 2020-03-21 & Lorenzo Dei Negri & Responsabile \\ \hline - 0.0.1+b0.12 & Creazione iniziale del documento & 2020-03-19 & Giuseppe Vito Bitetti & Redattore \\ + 0.0.2+b0.11 & Stesura e revisione del documento & 2020-03-19 & Giuseppe Vito Bitetti e Fouad Mouad & Amministratore e verificatore \\ + \hline + 0.0.1+b0.11 & Creazione iniziale del documento & 2020-03-19 & Giuseppe Vito Bitetti & Redattore \\ \hline \end{longtable} diff --git a/interni/verbali/VI_2020-03-23_19/main.tex b/interni/verbali/VI_2020-03-23_19/main.tex index 05fbd3e..a65098e 100644 --- a/interni/verbali/VI_2020-03-23_19/main.tex +++ b/interni/verbali/VI_2020-03-23_19/main.tex @@ -12,10 +12,10 @@ % -------------- \newcommand{\docNome}{ VERBALE RIUNIONE \#19 } -\newcommand{\docBaseline}{+b0.13} -\newcommand{\docVersione}{0.0.2\docBaseline} +\newcommand{\docBaseline}{+b0.15} +\newcommand{\docVersione}{1.0.0\docBaseline} \newcommand{\docNomeProgetto}{ 23 marzo 2020 } -\newcommand{\docStatus}{Da approvare} +\newcommand{\docStatus}{Approvato} \newcommand{\docUso}{Interno} % -------------- @@ -24,10 +24,10 @@ Giovanni Vidotto } \newcommand{\docVerificatori}{ -NA + Mariano Sciacco } \newcommand{\docApprovazione}{ -NA + Giuseppe Vito Bitetti } % ----- NON MODIFICARE SOTTO QUESTA RIGA ----- diff --git a/interni/verbali/VI_2020-03-23_19/res/registro.tex b/interni/verbali/VI_2020-03-23_19/res/registro.tex index 68eecc3..9aba747 100644 --- a/interni/verbali/VI_2020-03-23_19/res/registro.tex +++ b/interni/verbali/VI_2020-03-23_19/res/registro.tex @@ -10,9 +10,11 @@ \section*{Registro delle modifiche} \endfirsthead % ----- Modificare da qui ----- - 0.0.2+b0.13 & Stesura & 2020-03-23 & Giovanni Vidotto & Amministratore \\ + 1.0.0+b0.12 & Approvazione del documento & 2020-03-25 & Giuseppe Vito Bitetti & Responsabile \\ \hline - 0.0.1+b0.13 & Creazione iniziale del documento & 2020-03-23 & Giovanni Vidotto & Redattore \\ + 0.0.2+b0.12 & Stesura e revisione del documento & 2020-03-23 & Giovanni Vidotto e Mariano Sciacco & Amministratore e verificatore \\ + \hline + 0.0.1+b0.12 & Creazione iniziale del documento & 2020-03-23 & Giovanni Vidotto & Redattore \\ \hline \end{longtable} diff --git a/interni/verbali/VI_2020-04-03_22/main.tex b/interni/verbali/VI_2020-04-03_22/main.tex index abdffea..f92194c 100644 --- a/interni/verbali/VI_2020-04-03_22/main.tex +++ b/interni/verbali/VI_2020-04-03_22/main.tex @@ -12,10 +12,10 @@ % -------------- \newcommand{\docNome}{ VERBALE RIUNIONE \#22 } -\newcommand{\docBaseline}{+b0.13} -\newcommand{\docVersione}{0.0.1\docBaseline} +\newcommand{\docBaseline}{+b0.15} +\newcommand{\docVersione}{1.0.0\docBaseline} \newcommand{\docNomeProgetto}{ 03 aprile 2020 } -\newcommand{\docStatus}{Da approvare} +\newcommand{\docStatus}{Approvato} \newcommand{\docUso}{Interno} % -------------- @@ -24,10 +24,10 @@ Giuseppe Vito Bitetti } \newcommand{\docVerificatori}{ -NA + Lorenzo Dei Negri } \newcommand{\docApprovazione}{ -NA + Giovanni Vidotto } % ----- NON MODIFICARE SOTTO QUESTA RIGA ----- diff --git a/interni/verbali/VI_2020-04-03_22/res/registro.tex b/interni/verbali/VI_2020-04-03_22/res/registro.tex index 717f827..6ec7b80 100644 --- a/interni/verbali/VI_2020-04-03_22/res/registro.tex +++ b/interni/verbali/VI_2020-04-03_22/res/registro.tex @@ -10,7 +10,11 @@ \section*{Registro delle modifiche} \endfirsthead % ----- Modificare da qui ----- - 0.0.1+b0.13 & Creazione e stesura iniziale del documento & 2020-04-03 & Giuseppe Vito Bitetti & Redattore \\ + 1.0.0+b0.13 & Approvazione del documento & 2020-04-05 & Giovanni Vidotto & Responsabile \\ + \hline + 0.0.2+b0.13 & Stesura e revisione del documento & 2020-04-03 & Giuseppe Vito Bitetti e Lorenzo Dei Negri & Amministratore e verificatore \\ + \hline + 0.0.1+b0.13 & Creazione iniziale del documento & 2020-04-03 & Giuseppe Vito Bitetti & Redattore \\ \hline \end{longtable}