Skip to content
This repository was archived by the owner on Jul 1, 2020. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
33 commits
Select commit Hold shift + click to select a range
0e32974
Sistemato caso d'uso uc1 e corretto primo diagramma riassuntivo
aletomm Jan 30, 2020
7e2b173
Modifica requisiti prestazionali in normali (manca sul secondo tracci…
Maxelweb Jan 30, 2020
e79739d
Merge branch 'feature/fixAdR' of https://github.com/Maxelweb/swe-docs…
Maxelweb Jan 30, 2020
b604886
Fix prestazionali
Maxelweb Jan 30, 2020
8b40d0e
Fix RAV-1 e sotto-casi
lorenzodeinegri Jan 30, 2020
a266df2
Merge branch 'feature/fixAdR' of https://github.com/Maxelweb/swe-docs…
lorenzodeinegri Jan 30, 2020
30a844d
Fix requisito 15 vincolo (da 11 qualità)
Maxelweb Jan 30, 2020
e044c0d
arrivato a RAF12 con le fonti dei requisiti prestazionali
Jan 30, 2020
e67d827
Creato diagramma caso d'uso 6.5
aletomm Jan 30, 2020
84840c0
Merge branch 'feature/fixAdR' of https://github.com/Maxelweb/swe-docs…
Jan 30, 2020
11671de
Aggiunti requisiti riguardanti i manuali
lorenzodeinegri Jan 30, 2020
ea74865
Merge branch 'feature/fixAdR' of https://github.com/Maxelweb/swe-docs…
lorenzodeinegri Jan 30, 2020
420fec4
specificati gli UC di ogni requisito nella tabella sotto la sezione c…
Jan 30, 2020
16657dc
Merge branch 'feature/fixAdR' of https://github.com/Maxelweb/swe-docs…
Jan 30, 2020
2972720
Fix decisioni verbali
lorenzodeinegri Jan 30, 2020
03a517c
Aggiunto diagramma uc6.5
aletomm Jan 30, 2020
c710da5
Merge remote-tracking branch 'origin/feature/fixAdR' into feature/fixAdR
aletomm Jan 30, 2020
52bf7c0
Tolto diagramma riassuntivo figura 6
aletomm Feb 11, 2020
d125c62
Rimozione caso d'uso 1.4
aletomm Feb 11, 2020
9bc9c97
Modifica casi UC 16
aletomm Feb 11, 2020
105de28
Eliminati diagrammi inutili UC16
aletomm Feb 11, 2020
8aebe43
Sistemato requisito RAV11 e UC 9.1 e 13.1
aletomm Feb 12, 2020
c10af09
Aggiunto diagramma UC16
aletomm Feb 12, 2020
de8c31a
Aggiunte informazioni mancani descrizioni UC
aletomm Feb 13, 2020
27d63c4
Sistemata subsubsection UC 11 e 18-23
aletomm Feb 13, 2020
1293987
Sistemata mancanza di "UC" in UC 4.x
aletomm Feb 13, 2020
a448df9
Rimossi RA-V-(7-10)
aletomm Feb 13, 2020
746b5b1
Aggiunti contenuti dashboard caso d'uso 2
aletomm Feb 13, 2020
d41b1e3
Sistemato tracciamento dopo rimozione di RAV7-10
aletomm Feb 13, 2020
839705b
Fix maiuscole
lorenzodeinegri Feb 15, 2020
34164be
Fix maiuscole
lorenzodeinegri Feb 16, 2020
77a7854
Fix UC16
lorenzodeinegri Feb 21, 2020
27e0d98
Merge branch 'develop' into feature/fixAdR
Maxelweb Feb 23, 2020
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -9,4 +9,5 @@
*.out
*.sublime-workspace
*.pdf
*.lot
*.lof
2 changes: 1 addition & 1 deletion esterni/analisi_requisiti/main.tex
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
\newcommand{\docVersione}{1.0.0\docBaseline}
\newcommand{\docNomeProgetto}{ ThiReMa Project }
\newcommand{\docStatus}{Approvato}
\newcommand{\docUso}{esterno}
\newcommand{\docUso}{Esterno}
\newcommand{\docDescrizione}{
Il documento contiene una analisi formale approfondita di tutti i requisiti e i casi d'uso richiesti dal progetto.
}
Expand Down
2 changes: 2 additions & 0 deletions esterni/analisi_requisiti/res/configurazione.tex
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,8 @@
\usepackage{tikz}
\usepackage{titlesec}
\usepackage{amsmath}
\usepackage{grffile}



% Impostazione sottotitolo di quarto livello e quinto livello
Expand Down
Binary file modified esterni/analisi_requisiti/res/images/uc1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified esterni/analisi_requisiti/res/images/uc16.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added esterni/analisi_requisiti/res/images/uc6.5.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
@@ -1,23 +1,23 @@
\section{Introduzione}
\subsection{Scopo del documento}
Lo scopo di questo documento è la candidatura del gruppo RedRoundRobin allo svolgimento del progetto relativo al capitolato C6 - ThiReMa.
Lo scopo di questo documento è la candidatura del gruppo Red Round Robin allo svolgimento del progetto relativo al capitolato C6 - ThiReMa.
All'interno di questa analisi è possibile seguire la classificazione, il tracciamento e la descrizione dettagliata dei requisiti individuati dall'analisi del capitolato scelto.
\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:
\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 \dext{Glossario v1.0.0}.
\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 v1.0.0}.
\end{itemize}
\subsection{Riferimenti}
\subsubsection{Normativi}
\begin{itemize}
\item \textbf{Norme di Progetto: }\dext{Norme di Progetto v1.0.0}
\item \textbf{Capitolato C6 - ThiReMa: }\url{https://www.math.unipd.it/~tullio/IS-1/2019/Progetto/C6.pdf}
\item \textbf{norme di progetto: }\dext{Norme di Progetto v1.0.0}
\item \textbf{capitolato C6 - ThiReMa: }\url{https://www.math.unipd.it/~tullio/IS-1/2019/Progetto/C6.pdf}
\end{itemize}
\subsubsection{Informativi}
\begin{itemize}
\item \textbf{Presentazione seminario capitolato C6 - ThiReMa: }\url{https://www.math.unipd.it/~tullio/IS-1/2019/Progetto/C6a.pdf}
\item \textbf{Slide Ingegneria del Software - Analisi dei requisiti: }\url{https://www.math.unipd.it/~tullio/IS-1/2019/Dispense/L08.pdf}
\item \textbf{Slide Ingegneria del Software - Diagrammi dei casi d'uso: }\url{https://www.math.unipd.it/~tullio/IS-1/2019/Dispense/E03.pdf}
\item \textbf{presentazione seminario capitolato C6 - ThiReMa: }\url{https://www.math.unipd.it/~tullio/IS-1/2019/Progetto/C6a.pdf}
\item \textbf{slide Ingegneria del Software - Analisi dei requisiti: }\url{https://www.math.unipd.it/~tullio/IS-1/2019/Dispense/L08.pdf}
\item \textbf{slide Ingegneria del Software - Diagrammi dei casi d'uso: }\url{https://www.math.unipd.it/~tullio/IS-1/2019/Dispense/E03.pdf}
\end{itemize}

Original file line number Diff line number Diff line change
Expand Up @@ -5,22 +5,22 @@ \section{Analisi del prodotto}
\subsection{Analisi della struttura}
La struttura del prodotto sarà divisa in:
\begin{itemize}
\item \textbf{Interfaccia di gestione}: L'interfaccia di gestione ed interrogazione permetterà agli utenti di seguire l'andamento di uno o più sensori, di controllarli, attivandoli o disattivandoli ed infine, agli utenti con maggiori privilegi, di aggiungere o rimuovere altri utenti o gruppi.
\item \textbf{interfaccia di gestione:} l'interfaccia di gestione ed interrogazione permetterà agli utenti di seguire l'andamento di uno o più sensori, di controllarli, attivandoli o disattivandoli ed infine, agli utenti con maggiori privilegi, di aggiungere o rimuovere altri utenti o gruppi.
Tramite questa interfaccia deve essere possibile inviare dei comandi al giusto gateway tramite un apposito \glock{topic} di Kafka per controllare gli \glock{edge data point}.
L'interfaccia di gestione dovrà dare la possibilità agli utenti di gestire i propri dati (quale ad esempio la password di accesso).
\item \textbf{Database}: Si è pensato di utilizzare due tipi di database in base ai dati da memorizzare:
L'interfaccia di gestione dovrà dare la possibilità agli utenti di gestire i propri dati (quale ad esempio la password di accesso);
\item \textbf{database:} Si è pensato di utilizzare due tipi di database in base ai dati da memorizzare:
\begin{itemize}
\item Un database di tipo \glock{Time-Series} per memorizzare i dati temporali ricevuti dai sensori;
\item Un database relazionale, per memorizzare i metadati relativi ai sensori (ad esempio il loro censimento) o relativi agli utenti che andranno ad utilizzare l'interfaccia di gestione.
\item un database di tipo \glock{Time-Series} per memorizzare i dati temporali ricevuti dai sensori;
\item un database relazionale, per memorizzare i metadati relativi ai sensori (ad esempio il loro censimento) o relativi agli utenti che andranno ad utilizzare l'interfaccia di gestione;
\end{itemize}

\item \textbf{Gateway}: I dispositivi (o edge data point) che invieranno i dati dei loro sensori, non si interfacceranno direttamente con i database o con il cluster Kafka (descritto in seguito) bensì dialogheranno con un \glock{gateway} tramite degli appositi protocolli.
\item \textbf{gateway:} i dispositivi (o edge data point) che invieranno i dati dei loro sensori, non si interfacceranno direttamente con i database o con il cluster Kafka (descritto in seguito) bensì dialogheranno con un \glock{gateway} tramite degli appositi protocolli.
Saranno presenti diversi gateway suddivisi per struttura, con almeno un gateway per sede, in modo tale da facilitare l'individuazione di uno specifico edge data point.
Le configurazioni di invio dei dati (quale ad esempio la frequenza di invio) per ogni singolo dispositivo dovranno essere inviate dalla web app, che tramite un apposito topic di kafka, vengono salvate nell'apposito gateway, che poi si occuperà di filtrare i dati inviati dai dispositivi ed eventualmente trasformarli in formato JSON.
Le configurazioni di invio dei dati (quale ad esempio la frequenza di invio) per ogni singolo dispositivo dovranno essere inviate dalla web app, che tramite un apposito topic di Kafka, vengono salvate nell'apposito gateway, che poi si occuperà di filtrare i dati inviati dai dispositivi ed eventualmente trasformarli in formato JSON;

\item \textbf{Dispositivo (Edge Data Point)}: I dispositivi dopo essere stati censiti, invieranno dati al proprio gateway, senza essere consci della propria configurazione.
\item \textbf{dispositivo (edge data point):} i dispositivi dopo essere stati censiti, invieranno dati al proprio gateway, senza essere consci della propria configurazione;

\item \textbf{Cluster Apache Kafka}: Tramite Kafka e le sue API verranno ricevuti i dati dai sensori, passando da un gateway, verranno manipolati tramite degli stream ed infine salvati nel database e/o mostrati agli utenti che li richiedono. L'interfaccia di gestione ed il database contenente le misurazioni dei sensori si interfacceranno quindi con Kafka e non direttamente tra loro.
\item \textbf{cluster Apache Kafka:} tramite Kafka e le sue API verranno ricevuti i dati dai sensori, passando da un gateway, verranno manipolati tramite degli stream ed infine salvati nel database e/o mostrati agli utenti che li richiedono. L'interfaccia di gestione ed il database contenente le misurazioni dei sensori si interfacceranno quindi con Kafka e non direttamente tra loro.

\end{itemize}
\subsection{Attori}
Expand All @@ -31,19 +31,19 @@ \section{Analisi del prodotto}
\caption{Diagramma riassuntivo degli attori con le relative generalizzazioni.}
\end{figure}

Gli attori individuati dopo un'attenta analisi del capitolato sono i seguenti:
Gli attori individuati dopo un'attenta analisi del capitolato sono i seguenti
\subsubsection{Attori principali}
\begin{itemize}
\item \textbf{Utente non autenticato}: utente che non ha accesso alle sezioni private del sito poiché deve ancora eseguire l'autenticazione con le proprie credenziali. Inoltre, non ha ancora effettuato una prima autenticazione con il bot di \glock{Telegram}.
\item \textbf{Utente non autenticato}: utente che non ha accesso alle sezioni private del sito poiché deve ancora eseguire l'autenticazione con le proprie credenziali. Inoltre, non ha ancora effettuato una prima autenticazione con il bot di \glock{Telegram};

\item \textbf{Utente autenticato}: utente che ha eseguito l'accesso al sito e ha accesso alle sezioni private del sito in base ai suoi permessi. Può gestire il proprio account attraverso le impostazioni e si è autenticato il bot di \glock{Telegram}. Si differenzia in tre tipologie:

\begin{itemize}
\item \textbf{Membro}: utente che può accedere alle sezioni del sito in base al suo ente di appartenenza. Questo tipo di utente deve appartenere a uno e un solo ente, ossia un gruppo che ha il permesso di visualizzare (in tabella o con un grafico) le misurazioni dei sensori. Può ricevere notifiche dal bot di \glock{Telegram}.
\item \textbf{Membro}: utente che può accedere alle sezioni del sito in base al suo ente di appartenenza. Questo tipo di utente deve appartenere a uno e un solo ente, ossia un gruppo che ha il permesso di visualizzare (in tabella o con un grafico) le misurazioni dei sensori. Può ricevere notifiche dal bot di \glock{Telegram};

\item \textbf{Moderatore ente}: Un moderatore ente ha tutti i permessi di un utente autorizzato e può gestire (visualizzare, modificare, rimuovere o aggiungere) i membri del proprio ente. Di questi ultimi, può visualizzare le relative attività (logs).
Questo attore può impostare dei valori soglia, che quando superati provocano l'invio di notifiche a tutti i membri dell'ente.
Possono essere presenti uno o più moderatori ente per ogni singolo ente.
Possono essere presenti uno o più moderatori ente per ogni singolo ente;

\item \textbf{Amministratore}: L'amministratore rappresenta un utente con il più alto livello di privilegi. Questo attore può infatti gestire (modificare, creare e rimuovere) gli enti, i loro membri e i dispositivi a loro assegnati. Non fa parte di un ente specifico, ma può visualizzare i dati di qualunque dispositivo censito.
L'amministratore può inoltre vedere tutte le attività di ogni singolo utente e può gestire l'invio della configurazione al gateway, decidendo quali dispositivi censire.
Expand Down
Loading