Browse Source

feat: add missing use cases

develop
Apostolos Fanakis 3 years ago
parent
commit
c8c46ddd29
Signed by: Apostolof GPG Key ID: 8600B4C4163B3269
  1. 13
      chapters/3.application-design/3.4.use-cases.tex
  2. 6
      chapters/3.application-design/3.4.use-cases/3.4.1.use-case-sign-up.tex
  3. 35
      chapters/3.application-design/3.4.use-cases/3.4.2.use-case-sign-in.tex
  4. 24
      chapters/3.application-design/3.4.use-cases/3.4.3.use-case-create-topic.tex
  5. 22
      chapters/3.application-design/3.4.use-cases/3.4.4.use-case-fetch-topic.tex
  6. 20
      chapters/3.application-design/3.4.use-cases/3.4.5.use-case-create-post.tex
  7. 50
      chapters/3.application-design/3.4.use-cases/3.4.6.use-case-modify-post.tex
  8. 16
      chapters/3.application-design/3.4.use-cases/3.4.7.use-case-vote-in-poll.tex
  9. 16
      chapters/3.application-design/3.4.use-cases/3.4.8.use-case-vote-post.tex
  10. 35
      chapters/3.application-design/3.4.use-cases/3.4.9.delete-local-data.tex
  11. BIN
      thesis.pdf
  12. 16
      tikz/chapter-3/3-4-use-case-delete-local-data-sequence-diagram.tex
  13. 16
      tikz/chapter-3/3-4-use-case-modify-post-sequence-diagram.tex
  14. 16
      tikz/chapter-3/3-4-use-case-sign-in-sequence-diagram.tex

13
chapters/3.application-design/3.4.use-cases.tex

@ -5,8 +5,11 @@
Παρατίθενται εδώ τα σενάρια χρήσης που δίνουν τις απαραίτητες πληροφορίες για την κατανόηση της λειτουργίας του συστήματος. Παρατίθενται εδώ τα σενάρια χρήσης που δίνουν τις απαραίτητες πληροφορίες για την κατανόηση της λειτουργίας του συστήματος.
\input{chapters/3.application-design/3.4.use-cases/3.4.1.use-case-sign-up} \input{chapters/3.application-design/3.4.use-cases/3.4.1.use-case-sign-up}
\input{chapters/3.application-design/3.4.use-cases/3.4.2.use-case-create-topic} \input{chapters/3.application-design/3.4.use-cases/3.4.2.use-case-sign-in}
\input{chapters/3.application-design/3.4.use-cases/3.4.3.use-case-fetch-topic} \input{chapters/3.application-design/3.4.use-cases/3.4.3.use-case-create-topic}
\input{chapters/3.application-design/3.4.use-cases/3.4.4.use-case-create-post} \input{chapters/3.application-design/3.4.use-cases/3.4.4.use-case-fetch-topic}
\input{chapters/3.application-design/3.4.use-cases/3.4.5.use-case-vote-in-poll} \input{chapters/3.application-design/3.4.use-cases/3.4.5.use-case-create-post}
\input{chapters/3.application-design/3.4.use-cases/3.4.6.use-case-vote-post} \input{chapters/3.application-design/3.4.use-cases/3.4.6.use-case-modify-post}
\input{chapters/3.application-design/3.4.use-cases/3.4.7.use-case-vote-in-poll}
\input{chapters/3.application-design/3.4.use-cases/3.4.8.use-case-vote-post}
\input{chapters/3.application-design/3.4.use-cases/3.4.9.delete-local-data}

6
chapters/3.application-design/3.4.use-cases/3.4.1.use-case-sign-up.tex

@ -8,8 +8,8 @@
\useCaseTable \useCaseTable
{Εγγράφομαι στο σύστημα} {Εγγράφομαι στο σύστημα}
{Στόχος του σεναρίου χρήσης είναι ο επισκέπτης να μπορεί να εγγραφεί στο σύστημα ως χρήστης.} {Στόχος του σεναρίου χρήσης είναι ο επισκέπτης να μπορεί να εγγραφεί στο σύστημα ως χρήστης.}
{TODO} {\ref{srs:functional-srs-sign-up}, \ref{srs:functional-srs-create-user-databases}}
{TODO} {\ref{srs:non-functional-srs-minimize-fees}}
{Ο επισκέπτης πατάει το κουμπί εγγραφή.} {Ο επισκέπτης πατάει το κουμπί εγγραφή.}
{Ο επισκέπτης πρέπει να έχει ανοίξει την σελίδα της εφαρμογής.} {Ο επισκέπτης πρέπει να έχει ανοίξει την σελίδα της εφαρμογής.}
{Σενάριο χρήσης 1, εγγραφή χρήστη στο σύστημα.} {Σενάριο χρήσης 1, εγγραφή χρήστη στο σύστημα.}
@ -40,7 +40,7 @@
\label{figure:3-4-use-case-sign-up-base-flow-sequence-diagram} \label{figure:3-4-use-case-sign-up-base-flow-sequence-diagram}
\end{figure} \end{figure}
% ===== Alternate flow ===== % ===== Alternate flows =====
Το <ΣΧ-1> περιέχει επίσης τρεις εναλλακτικές ροές που μπορεί να προκύψουν βάσει των επιλογών του χρήστη και οι οποίες περιγράφονται στους πίνακες \ref{table:3-4-use-case-sign-up-alternate-flow-1}, \ref{table:3-4-use-case-sign-up-alternate-flow-2} και \ref{table:3-4-use-case-sign-up-alternate-flow-3}. Το <ΣΧ-1> περιέχει επίσης τρεις εναλλακτικές ροές που μπορεί να προκύψουν βάσει των επιλογών του χρήστη και οι οποίες περιγράφονται στους πίνακες \ref{table:3-4-use-case-sign-up-alternate-flow-1}, \ref{table:3-4-use-case-sign-up-alternate-flow-2} και \ref{table:3-4-use-case-sign-up-alternate-flow-3}.

35
chapters/3.application-design/3.4.use-cases/3.4.2.use-case-sign-in.tex

@ -0,0 +1,35 @@
% ===== =====
% Use case 1
% ===== =====
\subsection{Σενάριο χρήσης 2: Σύνδεση χρήστη} \label{subsection:3-4-use-case-signin}
Το σενάριο χρήσης 2, <ΣΧ-2>, περιγράφει τις διαδοχικές ενέργειες που εκτελούνται για την σύνδεση ενός χρήστη στο σύστημα. Στους πίνακες \ref{table:3-4-use-case-sign-in} και \ref{table:3-4-use-case-sign-in-base-flow} παρατίθενται οι βασικές πληροφορίες του <ΣΧ-2> και οι ενέργειες της βασικής ροής αντίστοιχα, ενώ στο σχήμα \ref{figure:3-4-use-case-sign-in-base-flow-sequence-diagram} φαίνεται το διάγραμμα της βασικής ροής.
\useCaseTable
{Συνδέομαι στο σύστημα}
{Στόχος του σεναρίου χρήσης είναι ο χρήστης να συνδέεται αυτόματα στο σύστημα.}
{\ref{srs:functional-srs-sign-in}}
{-}
{-}
{Ο χρήστης πρέπει να έχει ανοίξει την σελίδα της εφαρμογής.}
{Σενάριο χρήσης 2, σύνδεση χρήστη στο σύστημα.}
{\label{table:3-4-use-case-sign-in}}
% ===== Base flow =====
\useCaseBaseFlowTable
{
1 & - & Το σύστημα ανακτά τις πληροφορίες του χρήστη από το blockchain. \\ [0.5ex]
\midrule
2 & - & Το σύστημα δημιουργεί τις προσωπικές βάσεις βάσεις δεδομένων OrbitDb του χρήστη. \\ [0.5ex]
}
{Το σύστημα παραμένει στην αρχική σελίδα της εφαρμογής.}
{Σενάριο χρήσης 2 - Βασική ροή}
{\label{table:3-4-use-case-sign-in-base-flow}}
\begin{figure}[H]
\centering
\input{tikz/chapter-3/3-4-use-case-sign-in-sequence-diagram}
\caption{Σενάριο χρήσης 2 - Διάγραμμα βασικής ροής}
\label{figure:3-4-use-case-sign-in-base-flow-sequence-diagram}
\end{figure}

24
chapters/3.application-design/3.4.use-cases/3.4.2.use-case-create-topic.tex → chapters/3.application-design/3.4.use-cases/3.4.3.use-case-create-topic.tex

@ -1,18 +1,18 @@
% ===== ===== % ===== =====
% Use case 2 % Use case 3
% ===== ===== % ===== =====
\subsection{Σενάριο χρήσης 2: Δημιουργία νέου θέματος} \label{subsection:3-4-use-case-create-topic} \subsection{Σενάριο χρήσης 3: Δημιουργία νέου θέματος} \label{subsection:3-4-use-case-create-topic}
Το σενάριο χρήσης 2, <ΣΧ-2>, περιγράφει τις διαδοχικές ενέργειες που εκτελούνται για την δημιουργία ενός θέματος. Στους πίνακες \ref{table:3-4-use-case-create-topic} και \ref{table:3-4-use-case-create-topic-base-flow} παρατίθενται οι βασικές πληροφορίες του <ΣΧ-2> και οι ενέργειες της βασικής ροής αντίστοιχα, ενώ στο σχήμα \ref{figure:3-4-use-case-create-topic-base-flow-sequence-diagram} φαίνεται το διάγραμμα της βασικής ροής. Το σενάριο χρήσης 3, <ΣΧ-3>, περιγράφει τις διαδοχικές ενέργειες που εκτελούνται για την δημιουργία ενός θέματος. Στους πίνακες \ref{table:3-4-use-case-create-topic} και \ref{table:3-4-use-case-create-topic-base-flow} παρατίθενται οι βασικές πληροφορίες του <ΣΧ-3> και οι ενέργειες της βασικής ροής αντίστοιχα, ενώ στο σχήμα \ref{figure:3-4-use-case-create-topic-base-flow-sequence-diagram} φαίνεται το διάγραμμα της βασικής ροής.
\useCaseTable \useCaseTable
{Δημιουργώ νέο θέμα} {Δημιουργώ νέο θέμα}
{Στόχος του σεναρίου χρήσης είναι ο χρήστης να μπορεί να δημιουργήσει νέο θέμα.} {Στόχος του σεναρίου χρήσης είναι ο χρήστης να μπορεί να δημιουργήσει νέο θέμα.}
{TODO} {\ref{srs:functional-srs-create-topic}, \ref{srs:functional-srs-create-polls}}
{TODO} {\ref{srs:non-functional-srs-minimize-fees}}
{Ο χρήστης πατάει το κουμπί δημιουργίας νέου θέματος.} {Ο χρήστης πατάει το κουμπί δημιουργίας νέου θέματος.}
{Ο χρήστης να έχει συνδεθεί στην εφαρμογή και να βρίσκεται στην αρχική σελίδα.} {Ο χρήστης να έχει συνδεθεί στην εφαρμογή και να βρίσκεται στην αρχική σελίδα.}
{Σενάριο χρήσης 2, δημιουργία νέου θέματος.} {Σενάριο χρήσης 3, δημιουργία νέου θέματος.}
{\label{table:3-4-use-case-create-topic}} {\label{table:3-4-use-case-create-topic}}
% ===== Base flow ===== % ===== Base flow =====
@ -26,19 +26,19 @@
3 & - & Το σύστημα εισάγει τις πληροφορίες του θέματος στην προσωπική βάση OrbitDb του χρήστη. \\ [0.5ex] 3 & - & Το σύστημα εισάγει τις πληροφορίες του θέματος στην προσωπική βάση OrbitDb του χρήστη. \\ [0.5ex]
} }
{Το σύστημα μεταβαίνει στην σελίδα του νέου θέματος.} {Το σύστημα μεταβαίνει στην σελίδα του νέου θέματος.}
{Σενάριο χρήσης 2 - Βασική ροή} {Σενάριο χρήσης 3 - Βασική ροή}
{\label{table:3-4-use-case-create-topic-base-flow}} {\label{table:3-4-use-case-create-topic-base-flow}}
\begin{figure}[H] \begin{figure}[H]
\centering \centering
\input{tikz/chapter-3/3-4-use-case-create-topic-sequence-diagram} \input{tikz/chapter-3/3-4-use-case-create-topic-sequence-diagram}
\caption{Σενάριο χρήσης 2 - Διάγραμμα βασικής ροής} \caption{Σενάριο χρήσης 3 - Διάγραμμα βασικής ροής}
\label{figure:3-4-use-case-create-topic-base-flow-sequence-diagram} \label{figure:3-4-use-case-create-topic-base-flow-sequence-diagram}
\end{figure} \end{figure}
% ===== Alternate flow ===== % ===== Alternate flow =====
Το <ΣΧ-2> περιέχει επίσης δύο εναλλακτικές ροές που μπορεί να προκύψουν βάσει των επιλογών του χρήστη και οι οποίες περιγράφονται στους πίνακες \ref{table:3-4-use-case-create-topic-alternate-flow-1} και \ref{table:3-4-use-case-create-topic-alternate-flow-2}. Η εναλλακτική ροή 1 φαίνεται επίσης στο σχήμα \ref{figure:3-4-use-case-create-topic-alternate-flow-1-sequence-diagram} όπου παρουσιάζεται το διάγραμμα ροής της. Το <ΣΧ-3> περιέχει επίσης δύο εναλλακτικές ροές που μπορεί να προκύψουν βάσει των επιλογών του χρήστη και οι οποίες περιγράφονται στους πίνακες \ref{table:3-4-use-case-create-topic-alternate-flow-1} και \ref{table:3-4-use-case-create-topic-alternate-flow-2}. Η εναλλακτική ροή 1 φαίνεται επίσης στο σχήμα \ref{figure:3-4-use-case-create-topic-alternate-flow-1-sequence-diagram} όπου παρουσιάζεται το διάγραμμα ροής της.
\useCaseAlternateFlowTable \useCaseAlternateFlowTable
{1} {1}
@ -52,13 +52,13 @@
3 & - & Το σύστημα εισάγει τις πληροφορίες του θέματος και της ψηφοφορίας στις προσωπικές βάσεις OrbitDb του χρήστη. 3 & - & Το σύστημα εισάγει τις πληροφορίες του θέματος και της ψηφοφορίας στις προσωπικές βάσεις OrbitDb του χρήστη.
} }
{Το σύστημα μεταβαίνει στην σελίδα του νέου θέματος.} {Το σύστημα μεταβαίνει στην σελίδα του νέου θέματος.}
{Σενάριο χρήσης 2 - Εναλλακτική ροή 1} {Σενάριο χρήσης 3 - Εναλλακτική ροή 1}
{\label{table:3-4-use-case-create-topic-alternate-flow-1}} {\label{table:3-4-use-case-create-topic-alternate-flow-1}}
\begin{figure}[H] \begin{figure}[H]
\centering \centering
\input{tikz/chapter-3/3-4-use-case-create-topic-alternate-flow-1-sequence-diagram} \input{tikz/chapter-3/3-4-use-case-create-topic-alternate-flow-1-sequence-diagram}
\caption{Σενάριο χρήσης 2 - Διάγραμμα εναλλακτικής ροής 1} \caption{Σενάριο χρήσης 3 - Διάγραμμα εναλλακτικής ροής 1}
\label{figure:3-4-use-case-create-topic-alternate-flow-1-sequence-diagram} \label{figure:3-4-use-case-create-topic-alternate-flow-1-sequence-diagram}
\end{figure} \end{figure}
@ -70,5 +70,5 @@
1 & Ο χρήστης πατάει το κουμπί ``Άκυρο'' & Το σύστημα επιστρέφει στην αρχική σελίδα της εφαρμογής. 1 & Ο χρήστης πατάει το κουμπί ``Άκυρο'' & Το σύστημα επιστρέφει στην αρχική σελίδα της εφαρμογής.
} }
{Το σενάριο χρήσης τερματίζεται.} {Το σενάριο χρήσης τερματίζεται.}
{Σενάριο χρήσης 2 - Εναλλακτική ροή 2} {Σενάριο χρήσης 3 - Εναλλακτική ροή 2}
{\label{table:3-4-use-case-create-topic-alternate-flow-2}} {\label{table:3-4-use-case-create-topic-alternate-flow-2}}

22
chapters/3.application-design/3.4.use-cases/3.4.3.use-case-fetch-topic.tex → chapters/3.application-design/3.4.use-cases/3.4.4.use-case-fetch-topic.tex

@ -1,18 +1,18 @@
% ===== ===== % ===== =====
% Use case 3 % Use case 4
% ===== ===== % ===== =====
\subsection{Σενάριο χρήσης 3: Ανάκτηση θέματος} \label{subsection:3-4-use-case-fetch-topic} \subsection{Σενάριο χρήσης 4: Ανάκτηση θέματος} \label{subsection:3-4-use-case-fetch-topic}
Το σενάριο χρήσης 3, <ΣΧ-3>, περιγράφει τις διαδοχικές ενέργειες που εκτελούνται για την ανάκτηση ενός θέματος. Στους πίνακες \ref{table:3-4-use-case-fetch-topic} και \ref{table:3-4-use-case-fetch-topic-base-flow} παρατίθενται οι βασικές πληροφορίες του <ΣΧ-3> και οι ενέργειες της βασικής ροής αντίστοιχα, ενώ στο σχήμα \ref{figure:3-4-use-case-fetch-topic-base-flow-sequence-diagram} φαίνεται το διάγραμμα της βασικής ροής. Το σενάριο χρήσης 4, <ΣΧ-4>, περιγράφει τις διαδοχικές ενέργειες που εκτελούνται για την ανάκτηση ενός θέματος. Στους πίνακες \ref{table:3-4-use-case-fetch-topic} και \ref{table:3-4-use-case-fetch-topic-base-flow} παρατίθενται οι βασικές πληροφορίες του <ΣΧ-4> και οι ενέργειες της βασικής ροής αντίστοιχα, ενώ στο σχήμα \ref{figure:3-4-use-case-fetch-topic-base-flow-sequence-diagram} φαίνεται το διάγραμμα της βασικής ροής.
\useCaseTable \useCaseTable
{Ανακτώ ένα θέμα} {Ανακτώ ένα θέμα}
{Στόχος του σεναρίου χρήσης είναι ο επισκέπτης ή ο χρήστης να μπορεί να ανακτήσει ένα θέμα.} {Στόχος του σεναρίου χρήσης είναι ο επισκέπτης ή ο χρήστης να μπορεί να ανακτήσει ένα θέμα.}
{TODO} {\ref{srs:functional-srs-browse-topics}}
{TODO} {-}
{Ο επισκέπτης ή χρήστης πατάει σε ένα από τα θέματα.} {Ο επισκέπτης ή χρήστης πατάει σε ένα από τα θέματα.}
{Ο επισκέπτης ή χρήστης πρέπει να έχει ανοίξει την σελίδα της εφαρμογής.} {Ο επισκέπτης ή χρήστης πρέπει να έχει ανοίξει την σελίδα της εφαρμογής.}
{Σενάριο χρήσης 3, ανάκτηση θέματος.} {Σενάριο χρήσης 4, ανάκτηση θέματος.}
{\label{table:3-4-use-case-fetch-topic}} {\label{table:3-4-use-case-fetch-topic}}
% ===== Base flow ===== % ===== Base flow =====
@ -24,19 +24,19 @@
2 & - & Το σύστημα ανακτά τα μηνύματα του θέματος αντιγράφοντας τις προσωπικές βάσεις OrbitDb των συγγραφέων. \\ [0.5ex] 2 & - & Το σύστημα ανακτά τα μηνύματα του θέματος αντιγράφοντας τις προσωπικές βάσεις OrbitDb των συγγραφέων. \\ [0.5ex]
} }
{Το σύστημα μεταβαίνει στην σελίδα του θέματος.} {Το σύστημα μεταβαίνει στην σελίδα του θέματος.}
{Σενάριο χρήσης 3 - Βασική ροή} {Σενάριο χρήσης 4 - Βασική ροή}
{\label{table:3-4-use-case-fetch-topic-base-flow}} {\label{table:3-4-use-case-fetch-topic-base-flow}}
\begin{figure}[H] \begin{figure}[H]
\centering \centering
\input{tikz/chapter-3/3-4-use-case-fetch-topic-sequence-diagram} \input{tikz/chapter-3/3-4-use-case-fetch-topic-sequence-diagram}
\caption{Σενάριο χρήσης 3 - Διάγραμμα βασικής ροής} \caption{Σενάριο χρήσης 4 - Διάγραμμα βασικής ροής}
\label{figure:3-4-use-case-fetch-topic-base-flow-sequence-diagram} \label{figure:3-4-use-case-fetch-topic-base-flow-sequence-diagram}
\end{figure} \end{figure}
% ===== Alternate flow ===== % ===== Alternate flow =====
Το <ΣΧ-3> περιέχει επίσης μία εναλλακτική ροή που μπορεί να προκύψει βάσει των επιλογών του χρήστη και η οποία περιγράφεται στον πίνακα \ref{table:3-4-use-case-fetch-topic-alternate-flow-1}. Η εναλλακτική ροή 1 φαίνεται επίσης στο σχήμα \ref{figure:3-4-use-case-fetch-topic-alternate-flow-1-sequence-diagram} όπου παρουσιάζεται το διάγραμμα ροής της. Το <ΣΧ-4> περιέχει επίσης μία εναλλακτική ροή που μπορεί να προκύψει βάσει των επιλογών του χρήστη και η οποία περιγράφεται στον πίνακα \ref{table:3-4-use-case-fetch-topic-alternate-flow-1}. Η εναλλακτική ροή 1 φαίνεται επίσης στο σχήμα \ref{figure:3-4-use-case-fetch-topic-alternate-flow-1-sequence-diagram} όπου παρουσιάζεται το διάγραμμα ροής της.
\useCaseAlternateFlowTable \useCaseAlternateFlowTable
{1} {1}
@ -49,12 +49,12 @@
4 & - & Το σύστημα επιβεβαιώνει τις πληροφορίες της ψηφοφορίας με βάση το hash που έχει ανακτηθεί από το blockchain. \\ [0.5ex] 4 & - & Το σύστημα επιβεβαιώνει τις πληροφορίες της ψηφοφορίας με βάση το hash που έχει ανακτηθεί από το blockchain. \\ [0.5ex]
} }
{Το σενάριο χρήσης τερματίζεται.} {Το σενάριο χρήσης τερματίζεται.}
{Σενάριο χρήσης 3 - Εναλλακτική ροή 1} {Σενάριο χρήσης 4 - Εναλλακτική ροή 1}
{\label{table:3-4-use-case-fetch-topic-alternate-flow-1}} {\label{table:3-4-use-case-fetch-topic-alternate-flow-1}}
\begin{figure}[H] \begin{figure}[H]
\centering \centering
\input{tikz/chapter-3/3-4-use-case-fetch-topic-alternate-flow-1-sequence-diagram} \input{tikz/chapter-3/3-4-use-case-fetch-topic-alternate-flow-1-sequence-diagram}
\caption{Σενάριο χρήσης 3 - Διάγραμμα εναλλακτικής ροής 1} \caption{Σενάριο χρήσης 4 - Διάγραμμα εναλλακτικής ροής 1}
\label{figure:3-4-use-case-fetch-topic-alternate-flow-1-sequence-diagram} \label{figure:3-4-use-case-fetch-topic-alternate-flow-1-sequence-diagram}
\end{figure} \end{figure}

20
chapters/3.application-design/3.4.use-cases/3.4.4.use-case-create-post.tex → chapters/3.application-design/3.4.use-cases/3.4.5.use-case-create-post.tex

@ -1,18 +1,18 @@
% ===== ===== % ===== =====
% Use case 4 % Use case 5
% ===== ===== % ===== =====
\subsection{Σενάριο χρήσης 4: Δημιουργία νέου μηνύματος} \label{subsection:3-4-use-case-create-post} \subsection{Σενάριο χρήσης 5: Δημιουργία νέου μηνύματος} \label{subsection:3-4-use-case-create-post}
Το σενάριο χρήσης 4, <ΣΧ-4>, περιγράφει τις διαδοχικές ενέργειες που εκτελούνται για την δημιουργία ενός μηνύματος. Στους πίνακες \ref{table:3-4-use-case-create-post} και \ref{table:3-4-use-case-create-post-base-flow} παρατίθενται οι βασικές πληροφορίες του <ΣΧ-4> και οι ενέργειες της βασικής ροής αντίστοιχα, ενώ στο σχήμα \ref{figure:3-4-use-case-create-post-base-flow-sequence-diagram} φαίνεται το διάγραμμα της βασικής ροής. Το σενάριο χρήσης 5, <ΣΧ-5>, περιγράφει τις διαδοχικές ενέργειες που εκτελούνται για την δημιουργία ενός μηνύματος. Στους πίνακες \ref{table:3-4-use-case-create-post} και \ref{table:3-4-use-case-create-post-base-flow} παρατίθενται οι βασικές πληροφορίες του <ΣΧ-5> και οι ενέργειες της βασικής ροής αντίστοιχα, ενώ στο σχήμα \ref{figure:3-4-use-case-create-post-base-flow-sequence-diagram} φαίνεται το διάγραμμα της βασικής ροής.
\useCaseTable \useCaseTable
{Δημιουργώ νέο μήνυμα} {Δημιουργώ νέο μήνυμα}
{Στόχος του σεναρίου χρήσης είναι ο χρήστης να μπορεί να δημιουργήσει νέο μήνυμα.} {Στόχος του σεναρίου χρήσης είναι ο χρήστης να μπορεί να δημιουργήσει νέο μήνυμα.}
{TODO} {\ref{srs:functional-srs-create-post}}
{TODO} {\ref{srs:non-functional-srs-minimize-fees}}
{Ο χρήστης πατάει το κουμπί δημιουργίας νέου μηνύματος.} {Ο χρήστης πατάει το κουμπί δημιουργίας νέου μηνύματος.}
{Ο χρήστης να έχει συνδεθεί στην εφαρμογή και να βρίσκεται στην σελίδα ενός θέματος.} {Ο χρήστης να έχει συνδεθεί στην εφαρμογή και να βρίσκεται στην σελίδα ενός θέματος.}
{Σενάριο χρήσης 4, δημιουργία νέου μηνύματος.} {Σενάριο χρήσης 5, δημιουργία νέου μηνύματος.}
{\label{table:3-4-use-case-create-post}} {\label{table:3-4-use-case-create-post}}
% ===== Base flow ===== % ===== Base flow =====
@ -26,19 +26,19 @@
3 & - & Το σύστημα εισάγει τις πληροφορίες του μηνύματος στην προσωπική βάση OrbitDb του χρήστη. \\ [0.5ex] 3 & - & Το σύστημα εισάγει τις πληροφορίες του μηνύματος στην προσωπική βάση OrbitDb του χρήστη. \\ [0.5ex]
} }
{Το σύστημα παραμένει στη σελίδα του θέματος εμφανίζοντας το νέο μήνυμα.} {Το σύστημα παραμένει στη σελίδα του θέματος εμφανίζοντας το νέο μήνυμα.}
{Σενάριο χρήσης 4 - Βασική ροή} {Σενάριο χρήσης 5 - Βασική ροή}
{\label{table:3-4-use-case-create-post-base-flow}} {\label{table:3-4-use-case-create-post-base-flow}}
\begin{figure}[H] \begin{figure}[H]
\centering \centering
\input{tikz/chapter-3/3-4-use-case-create-post-sequence-diagram} \input{tikz/chapter-3/3-4-use-case-create-post-sequence-diagram}
\caption{Σενάριο χρήσης 4 - Διάγραμμα βασικής ροής} \caption{Σενάριο χρήσης 5 - Διάγραμμα βασικής ροής}
\label{figure:3-4-use-case-create-post-base-flow-sequence-diagram} \label{figure:3-4-use-case-create-post-base-flow-sequence-diagram}
\end{figure} \end{figure}
% ===== Alternate flow ===== % ===== Alternate flow =====
Το <ΣΧ-4> περιέχει επίσης μία εναλλακτική ροή που μπορεί να προκύψει βάσει των επιλογών του χρήστη και η οποία περιγράφεται στον πίνακα \ref{table:3-4-use-case-create-post-alternate-flow-1}. Το <ΣΧ-5> περιέχει επίσης μία εναλλακτική ροή που μπορεί να προκύψει βάσει των επιλογών του χρήστη και η οποία περιγράφεται στον πίνακα \ref{table:3-4-use-case-create-post-alternate-flow-1}.
\useCaseAlternateFlowTable \useCaseAlternateFlowTable
{1} {1}
@ -48,5 +48,5 @@
1 & Ο χρήστης πατάει το κουμπί ``Άκυρο'' & Το σύστημα επιστρέφει στη σελίδα του θέματος. 1 & Ο χρήστης πατάει το κουμπί ``Άκυρο'' & Το σύστημα επιστρέφει στη σελίδα του θέματος.
} }
{Το σενάριο χρήσης τερματίζεται.} {Το σενάριο χρήσης τερματίζεται.}
{Σενάριο χρήσης 4 - Εναλλακτική ροή 1} {Σενάριο χρήσης 5 - Εναλλακτική ροή 1}
{\label{table:3-4-use-case-create-post-alternate-flow-1}} {\label{table:3-4-use-case-create-post-alternate-flow-1}}

50
chapters/3.application-design/3.4.use-cases/3.4.6.use-case-modify-post.tex

@ -0,0 +1,50 @@
% ===== =====
% Use case 6
% ===== =====
\subsection{Σενάριο χρήσης 6: Τροποποίηση μηνύματος} \label{subsection:3-4-use-case-modify-post}
Το σενάριο χρήσης 6, <ΣΧ-6>, περιγράφει τις διαδοχικές ενέργειες που εκτελούνται για τη τροποποίηση ενός μηνύματος. Στους πίνακες \ref{table:3-4-use-case-modify-post} και \ref{table:3-4-use-case-modify-post-base-flow} παρατίθενται οι βασικές πληροφορίες του <ΣΧ-6> και οι ενέργειες της βασικής ροής αντίστοιχα, ενώ στο σχήμα \ref{figure:3-4-use-case-modify-post-base-flow-sequence-diagram} φαίνεται το διάγραμμα της βασικής ροής.
\useCaseTable
{Τροποποιώ ένα μήνυμα}
{Στόχος του σεναρίου χρήσης είναι ο χρήστης να μπορεί να τροποποιήσει τα μηνύματά του.}
{\ref{srs:functional-srs-modify-post}}
{-}
{Ο χρήστης πατάει το κουμπί τροποποίησης του μηνύματος.}
{Ο χρήστης να έχει συνδεθεί στην εφαρμογή και να βρίσκεται στην σελίδα του θέματος που περιέχει το μήνυμά του.}
{Σενάριο χρήσης 6, τροποποίηση μηνύματος.}
{\label{table:3-4-use-case-modify-post}}
% ===== Base flow =====
\useCaseBaseFlowTable
{
1 & Ο χρήστης πατάει το κουμπί τροποποίησης του μηνύματος. & Το σύστημα εμφανίζει την φόρμα ``Τροποποίηση Μηνύματος''. \\ [0.5ex]
\midrule
2 & Ο χρήστης συμπληρώνει τα πεδία και πατάει το κουμπί ``Υποβολή''. & Το σύστημα τροποποιεί τις πληροφορίες του μηνύματος στην προσωπική βάση OrbitDb του χρήστη. \\ [0.5ex]
}
{Το σύστημα παραμένει στη σελίδα του θέματος εμφανίζοντας το τροποποιημένο μήνυμα.}
{Σενάριο χρήσης 6 - Βασική ροή}
{\label{table:3-4-use-case-modify-post-base-flow}}
\begin{figure}[H]
\centering
\input{tikz/chapter-3/3-4-use-case-modify-post-sequence-diagram}
\caption{Σενάριο χρήσης 6 - Διάγραμμα βασικής ροής}
\label{figure:3-4-use-case-modify-post-base-flow-sequence-diagram}
\end{figure}
% ===== Alternate flow =====
Το <ΣΧ-6> περιέχει επίσης μία εναλλακτική ροή που μπορεί να προκύψει βάσει των επιλογών του χρήστη και η οποία περιγράφεται στον πίνακα \ref{table:3-4-use-case-modify-post-alternate-flow-1}.
\useCaseAlternateFlowTable
{1}
{Ο χρήστης πατάει το κουμπί ``Άκυρο''.}
{Εφόσον ο χρήστης στη γραμμή 2 της Βασικής Ροής επιλέξει ``Άκυρο'' το σύστημα επιστρέφει στη σελίδα του θέματος.}
{
1 & Ο χρήστης πατάει το κουμπί ``Άκυρο'' & Το σύστημα επιστρέφει στη σελίδα του θέματος.
}
{Το σενάριο χρήσης τερματίζεται.}
{Σενάριο χρήσης 6 - Εναλλακτική ροή 1}
{\label{table:3-4-use-case-modify-post-alternate-flow-1}}

16
chapters/3.application-design/3.4.use-cases/3.4.5.use-case-vote-in-poll.tex → chapters/3.application-design/3.4.use-cases/3.4.7.use-case-vote-in-poll.tex

@ -1,18 +1,18 @@
% ===== ===== % ===== =====
% Use case 5 % Use case 7
% ===== ===== % ===== =====
\subsection{Σενάριο χρήσης 5: Ψήφιση σε ψηφοφορία} \label{subsection:3-4-use-case-vote-in-poll} \subsection{Σενάριο χρήσης 7: Ψήφιση σε ψηφοφορία} \label{subsection:3-4-use-case-vote-in-poll}
Το σενάριο χρήσης 5, <ΣΧ-5>, περιγράφει τις διαδοχικές ενέργειες που εκτελούνται για την ψήφιση σε μία ψηφοφορία. Στους πίνακες \ref{table:3-4-use-case-vote-in-poll} και \ref{table:3-4-use-case-vote-in-poll-base-flow} παρατίθενται οι βασικές πληροφορίες του <ΣΧ-5> και οι ενέργειες της βασικής ροής αντίστοιχα, ενώ στο σχήμα \ref{figure:3-4-use-case-vote-in-poll-base-flow-sequence-diagram} φαίνεται το διάγραμμα της βασικής ροής. Το σενάριο χρήσης 7, <ΣΧ-7>, περιγράφει τις διαδοχικές ενέργειες που εκτελούνται για την ψήφιση σε μία ψηφοφορία. Στους πίνακες \ref{table:3-4-use-case-vote-in-poll} και \ref{table:3-4-use-case-vote-in-poll-base-flow} παρατίθενται οι βασικές πληροφορίες του <ΣΧ-7> και οι ενέργειες της βασικής ροής αντίστοιχα, ενώ στο σχήμα \ref{figure:3-4-use-case-vote-in-poll-base-flow-sequence-diagram} φαίνεται το διάγραμμα της βασικής ροής.
\useCaseTable \useCaseTable
{Ψηφίζω σε ψηφοφορία} {Ψηφίζω σε ψηφοφορία}
{Στόχος του σεναρίου χρήσης είναι ο χρήστης να μπορεί να ψηφίσει σε μία ψηφοφορία.} {Στόχος του σεναρίου χρήσης είναι ο χρήστης να μπορεί να ψηφίσει σε μία ψηφοφορία.}
{TODO} {\ref{srs:functional-srs-vote-polls}}
{TODO} {\ref{srs:non-functional-srs-minimize-fees}}
{Ο χρήστης πατάει το κουμπί ψηφοφορίας.} {Ο χρήστης πατάει το κουμπί ψηφοφορίας.}
{Ο χρήστης να έχει συνδεθεί στην εφαρμογή και να βρίσκεται στην σελίδα ενός θέματος το οποίο περιλαμβάνει ψηφοφορία.} {Ο χρήστης να έχει συνδεθεί στην εφαρμογή και να βρίσκεται στην σελίδα ενός θέματος το οποίο περιλαμβάνει ψηφοφορία.}
{Σενάριο χρήσης 5, ψήφιση σε ψηφοφορία.} {Σενάριο χρήσης 7, ψήφιση σε ψηφοφορία.}
{\label{table:3-4-use-case-vote-in-poll}} {\label{table:3-4-use-case-vote-in-poll}}
% ===== Base flow ===== % ===== Base flow =====
@ -22,12 +22,12 @@
1 & Ο χρήστης πατάει το κουμπί της επιλογής που επιθυμεί να ψηφίσει και πατάει το κουμπί ``Υποβολή''. & Το σύστημα εισάγει νέα ψήφο στο blockchain. \\ [0.5ex] 1 & Ο χρήστης πατάει το κουμπί της επιλογής που επιθυμεί να ψηφίσει και πατάει το κουμπί ``Υποβολή''. & Το σύστημα εισάγει νέα ψήφο στο blockchain. \\ [0.5ex]
} }
{Το σύστημα ανανεώνει τις πληροφορίες της ψηφοφορίας.} {Το σύστημα ανανεώνει τις πληροφορίες της ψηφοφορίας.}
{Σενάριο χρήσης 5 - Βασική ροή} {Σενάριο χρήσης 7 - Βασική ροή}
{\label{table:3-4-use-case-vote-in-poll-base-flow}} {\label{table:3-4-use-case-vote-in-poll-base-flow}}
\begin{figure}[H] \begin{figure}[H]
\centering \centering
\input{tikz/chapter-3/3-4-use-case-vote-in-poll-sequence-diagram} \input{tikz/chapter-3/3-4-use-case-vote-in-poll-sequence-diagram}
\caption{Σενάριο χρήσης 5 - Διάγραμμα βασικής ροής} \caption{Σενάριο χρήσης 7 - Διάγραμμα βασικής ροής}
\label{figure:3-4-use-case-vote-in-poll-base-flow-sequence-diagram} \label{figure:3-4-use-case-vote-in-poll-base-flow-sequence-diagram}
\end{figure} \end{figure}

16
chapters/3.application-design/3.4.use-cases/3.4.6.use-case-vote-post.tex → chapters/3.application-design/3.4.use-cases/3.4.8.use-case-vote-post.tex

@ -1,18 +1,18 @@
% ===== ===== % ===== =====
% Use case 6 % Use case 8
% ===== ===== % ===== =====
\subsection{Σενάριο χρήσης 6: Ψήφιση μηνύματος} \label{subsection:3-4-use-case-vote-post} \subsection{Σενάριο χρήσης 8: Ψήφιση μηνύματος} \label{subsection:3-4-use-case-vote-post}
Το σενάριο χρήσης 6, <ΣΧ-6>, περιγράφει τις διαδοχικές ενέργειες που εκτελούνται για την ψήφιση σε ένα μήνυμα. Στους πίνακες \ref{table:3-4-use-case-vote-post} και \ref{table:3-4-use-case-vote-post-base-flow} παρατίθενται οι βασικές πληροφορίες του <ΣΧ-6> και οι ενέργειες της βασικής ροής αντίστοιχα, ενώ στο σχήμα \ref{figure:3-4-use-case-vote-post-base-flow-sequence-diagram} φαίνεται το διάγραμμα της βασικής ροής. Το σενάριο χρήσης 8, <ΣΧ-8>, περιγράφει τις διαδοχικές ενέργειες που εκτελούνται για την ψήφιση σε ένα μήνυμα. Στους πίνακες \ref{table:3-4-use-case-vote-post} και \ref{table:3-4-use-case-vote-post-base-flow} παρατίθενται οι βασικές πληροφορίες του <ΣΧ-8> και οι ενέργειες της βασικής ροής αντίστοιχα, ενώ στο σχήμα \ref{figure:3-4-use-case-vote-post-base-flow-sequence-diagram} φαίνεται το διάγραμμα της βασικής ροής.
\useCaseTable \useCaseTable
{Ψηφίζω σε μήνυμα} {Ψηφίζω σε μήνυμα}
{Στόχος του σεναρίου χρήσης είναι ο χρήστης να μπορεί να υπερψηφίσει ή καταψηφίσει ένα μήνυμα.} {Στόχος του σεναρίου χρήσης είναι ο χρήστης να μπορεί να υπερψηφίσει ή καταψηφίσει ένα μήνυμα.}
{TODO} {\ref{srs:functional-srs-vote-posts}}
{TODO} {\ref{srs:non-functional-srs-minimize-fees}}
{Ο επισκέπτης πατάει το κουμπί υπερψήφισης ή καταψήφισης.} {Ο επισκέπτης πατάει το κουμπί υπερψήφισης ή καταψήφισης.}
{Ο χρήστης να έχει συνδεθεί στην εφαρμογή και να βρίσκεται στην σελίδα ενός θέματος το οποίο περιλαμβάνει τουλάχιστον ένα μήνυμα το οποίο δεν έχει δημιουργήσει ο ίδιος.} {Ο χρήστης να έχει συνδεθεί στην εφαρμογή και να βρίσκεται στην σελίδα ενός θέματος το οποίο περιλαμβάνει τουλάχιστον ένα μήνυμα το οποίο δεν έχει δημιουργήσει ο ίδιος.}
{Σενάριο χρήσης 6, ψήφιση μηνύματος.} {Σενάριο χρήσης 8, ψήφιση μηνύματος.}
{\label{table:3-4-use-case-vote-post}} {\label{table:3-4-use-case-vote-post}}
% ===== Base flow ===== % ===== Base flow =====
@ -22,12 +22,12 @@
1 & Ο χρήστης πατάει στο κουμπί υπερψήφισης μηνύματος. & Το σύστημα εισάγει νέα ψήφο μηνύματος στο blockchain. \\ [0.5ex] 1 & Ο χρήστης πατάει στο κουμπί υπερψήφισης μηνύματος. & Το σύστημα εισάγει νέα ψήφο μηνύματος στο blockchain. \\ [0.5ex]
} }
{Το σύστημα ανανεώνει τις ψήφους του μηνύματος.} {Το σύστημα ανανεώνει τις ψήφους του μηνύματος.}
{Σενάριο χρήσης 6 - Βασική ροή} {Σενάριο χρήσης 8 - Βασική ροή}
{\label{table:3-4-use-case-vote-post-base-flow}} {\label{table:3-4-use-case-vote-post-base-flow}}
\begin{figure}[H] \begin{figure}[H]
\centering \centering
\input{tikz/chapter-3/3-4-use-case-vote-post-sequence-diagram} \input{tikz/chapter-3/3-4-use-case-vote-post-sequence-diagram}
\caption{Σενάριο χρήσης 6 - Διάγραμμα βασικής ροής} \caption{Σενάριο χρήσης 8 - Διάγραμμα βασικής ροής}
\label{figure:3-4-use-case-vote-post-base-flow-sequence-diagram} \label{figure:3-4-use-case-vote-post-base-flow-sequence-diagram}
\end{figure} \end{figure}

35
chapters/3.application-design/3.4.use-cases/3.4.9.delete-local-data.tex

@ -0,0 +1,35 @@
% ===== =====
% Use case 9
% ===== =====
\subsection{Σενάριο χρήσης 9: Διαγραφή τοπικών δεδομένων} \label{subsection:3-4-use-case-delete-local-data}
Το σενάριο χρήσης 9, <ΣΧ-9>, περιγράφει τις διαδοχικές ενέργειες που εκτελούνται για τη διαγραφεί των τοπικών δεδομένων. Στους πίνακες \ref{table:3-4-use-case-delete-local-data} και \ref{table:3-4-use-case-delete-local-data-base-flow} παρατίθενται οι βασικές πληροφορίες του <ΣΧ-9> και οι ενέργειες της βασικής ροής αντίστοιχα, ενώ στο σχήμα \ref{figure:3-4-use-case-delete-local-data-base-flow-sequence-diagram} φαίνεται το διάγραμμα της βασικής ροής.
\useCaseTable
{Διαγράφω τα τοπικά δεδομένα}
{Στόχος του σεναρίου χρήσης είναι ο επισκέπτης να μπορεί να διαγράψει τα τοπικά δεδομένα που αποθηκεύονται στο σύστημά του από την εφαρμογή.}
{\ref{srs:functional-srs-delete-local-data}}
{-}
{Ο επισκέπτης πατάει το κουμπί διαγραφής των τοπικών δεδομένων.}
{Ο επισκέπτης πρέπει να έχει ανοίξει την σελίδα της εφαρμογής.}
{Σενάριο χρήσης 9, διαγραφή τοπικών δεδομένων.}
{\label{table:3-4-use-case-delete-local-data}}
% ===== Base flow =====
\useCaseBaseFlowTable
{
1 & Ο επισκέπτης πατάει το κουμπί διαγραφής των τοπικών δεδομένων. & Το σύστημα εμφανίζει την φόρμα ``Επιβεβαίωση Διαγραφής Τοπικών Δεδομένων''. \\ [0.5ex]
\midrule
2 & Ο επισκέπτης συμπληρώνει το πεδίο και πατάει το κουμπί ``Υποβολή''. & Το σύστημα διαγράφει όλες τις τοπικές βάσεις OrbitDb που χρησιμοποιούνται από την εφαρμογή. \\ [0.5ex]
}
{Το σύστημα παραμένει πραγματοποιεί ανανέωση της σελίδας.}
{Σενάριο χρήσης 9 - Βασική ροή}
{\label{table:3-4-use-case-delete-local-data-base-flow}}
\begin{figure}[H]
\centering
\input{tikz/chapter-3/3-4-use-case-delete-local-data-sequence-diagram}
\caption{Σενάριο χρήσης 9 - Διάγραμμα βασικής ροής}
\label{figure:3-4-use-case-delete-local-data-base-flow-sequence-diagram}
\end{figure}

BIN
thesis.pdf

Binary file not shown.

16
tikz/chapter-3/3-4-use-case-delete-local-data-sequence-diagram.tex

@ -0,0 +1,16 @@
\begin{sequencediagram}
\newthread{actor}{Actor}{}
\newinst[4]{concordia}{:Concordia}{}
\newinst[1]{eth}{:Ethereum}{}
\newinst[1]{orbit}{:OrbitDb}{}
\begin{call}{actor}{Delete local data}{concordia}{Delete confirmation form}
\end{call}
\begin{call}{actor}{Submit}{concordia}{}
\begin{call}{concordia}{Delete local DBs}{orbit}{}
\end{call}
\end{call}
\end{sequencediagram}

16
tikz/chapter-3/3-4-use-case-modify-post-sequence-diagram.tex

@ -0,0 +1,16 @@
\begin{sequencediagram}
\newthread{actor}{Actor}{}
\newinst[4]{concordia}{:Concordia}{}
\newinst[1]{eth}{:Ethereum}{}
\newinst[2]{orbit}{:OrbitDb}{}
\begin{call}{actor}{Modify post}{concordia}{Post modification form}
\end{call}
\begin{call}{actor}{Submit}{concordia}{Updated topic page}
\begin{call}{concordia}{Save modified post information}{orbit}{}
\end{call}
\end{call}
\end{sequencediagram}

16
tikz/chapter-3/3-4-use-case-sign-in-sequence-diagram.tex

@ -0,0 +1,16 @@
\begin{sequencediagram}
\newthread{actor}{Actor}{}
\newinst[2]{concordia}{:Concordia}{}
\newinst[2]{eth}{:Ethereum}{}
\newinst[1]{orbit}{:OrbitDb}{}
\begin{call}{actor}{Fetch page}{concordia}{}
\begin{call}{concordia}{Get user}{eth}{User information}
\end{call}
\begin{call}{concordia}{Create databases}{orbit}{}
\end{call}
\end{call}
\end{sequencediagram}
Loading…
Cancel
Save