You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
301 lines
19 KiB
301 lines
19 KiB
\section{Σενάρια χρήσης} \label{section:3-4-use-cases}
|
|
|
|
Βασικό μέρος της σχεδίασης της πλατφόρμας ήταν η καταγραφή των απαιτήσεων η οποία έγινε στο προηγούμενο κεφάλαιο (\ref{section:3-3-requirements}) καθώς και η σχεδίαση και ανάπτυξη των σεναρίων χρήσης. Τα σενάρια χρήσης αντιστοιχίζουν πιθανές ενέργειες των χρηστών με αποκρίσεις του συστήματος. Μέσω της αντιστοίχισης αυτής παρουσιάζεται η λειτουργικότητα του συστήματος και περιγράφονται τόσο οι λειτουργικές όσο και οι μη λειτουργικές απαιτήσεις του συστήματος.
|
|
|
|
Παρατίθενται εδώ τα σενάρια χρήσης που δίνουν τις απαραίτητες πληροφορίες για την κατανόηση της λειτουργίας του συστήματος.
|
|
|
|
% ===== =====
|
|
% Use case 1
|
|
% ===== =====
|
|
\subsection{Σενάριο χρήσης 1: Εγγραφή χρήστη} \label{subsection:3-4-use-case-signup}
|
|
|
|
\useCaseTable
|
|
{Εγγράφομαι στο σύστημα}
|
|
{Στόχος του σεναρίου χρήσης είναι ο επισκέπτης να μπορεί να εγγραφεί στο σύστημα ως χρήστης.}
|
|
{TODO}
|
|
{TODO}
|
|
{Ο επισκέπτης πατάει το κουμπί εγγραφή.}
|
|
{Ο επισκέπτης πρέπει να έχει ανοίξει την σελίδα της εφαρμογής.}
|
|
{Σενάριο χρήσης 1, εγγραφή χρήστη στο σύστημα.}
|
|
{3-4-use-case-sign-up}
|
|
|
|
\useCaseBaseFlowTable
|
|
{
|
|
1 & Ο χρήστης πατάει το κουμπί εγγραφή. & Το σύστημα εμφανίζει την φόρμα ``Εγγραφή Χρήστη''. \\ [0.5ex]
|
|
\midrule
|
|
2 & Ο χρήστης συμπληρώνει τα πεδία και πατάει το κουμπί ``Υποβολή''. & Το σύστημα εισάγει νέο χρήστη στο blockchain. \\ [0.5ex]
|
|
\midrule
|
|
3 & - & Το σύστημα δημιουργεί τις προσωπικές βάσεις βάσεις δεδομένων OrbitDb του χρήστη. \\ [0.5ex]
|
|
\midrule
|
|
4 & - & Το σύστημα εμφανίζει την φόρμα ``Πληροφορίες Χρήστη''. \\ [0.5ex]
|
|
\midrule
|
|
5 & Ο χρήστης συμπληρώνει τις προσωπικές του πληροφορίες και πατάει το κουμπί ``Υποβολή''. & Το σύστημα εισάγει τις πληροφορίες χρήστη στην προσωπική του βάση OrbitDb. \\ [0.5ex]
|
|
}
|
|
{Το σύστημα μεταβαίνει στην αρχική σελίδα της εφαρμογής.}
|
|
{Σενάριο χρήσης 1 - Βασική ροή}
|
|
{3-4-use-case-sign-up-base-flow}
|
|
|
|
\useCaseAlternateFlowTable
|
|
{1}
|
|
{Τα στοιχεία χρήστη είναι λανθασμένα.}
|
|
{Εφόσον ο χρήστης στη γραμμή 2 δεν συμπληρώσει το πεδίο ονόματος χρήστη ή συμπληρώσει ένα όνομα χρήστη το οποίο είναι ήδη σε χρήση στο σύστημα, το σύστημα πρέπει να επιστρέψει σχετικό μήνυμα σφάλματος.}
|
|
{
|
|
1 & - & Το σύστημα εμφανίζει μήνυμα σφάλματος.
|
|
}
|
|
{Το σύστημα επιστρέφει στη γραμμή 1 της βασικής ροής.}
|
|
{Σενάριο χρήσης 1 - Εναλλακτική ροή 1}
|
|
{3-4-use-case-sign-up-alternate-flow-1}
|
|
|
|
\useCaseAlternateFlowTable
|
|
{2}
|
|
{Ο χρήστης πατάει το κουμπί ``Άκυρο''.}
|
|
{Εφόσον ο χρήστης στη γραμμή 2 της Βασικής Ροής επιλέξει ``Άκυρο'' το σύστημα επιστρέφει στην αρχική σελίδα της εφαρμογής.}
|
|
{
|
|
1 & Ο χρήστης πατάει το κουμπί ``Άκυρο'' & Το σύστημα επιστρέφει στην αρχική σελίδα της εφαρμογής.
|
|
}
|
|
{Το σενάριο χρήσης τερματίζεται.}
|
|
{Σενάριο χρήσης 1 - Εναλλακτική ροή 2}
|
|
{3-4-use-case-sign-up-alternate-flow-2}
|
|
|
|
\useCaseAlternateFlowTable
|
|
{3}
|
|
{Ο χρήστης πατάει το κουμπί ``Παράληψη''.}
|
|
{Εφόσον ο χρήστης στη γραμμή 5 της Βασικής Ροής επιλέξει ``Παράληψη'' το σύστημα επιστρέφει στην αρχική σελίδα της εφαρμογής.}
|
|
{
|
|
1 & Ο χρήστης πατάει το κουμπί ``Παράληψη'' & Το σύστημα επιστρέφει στην αρχική σελίδα της εφαρμογής.
|
|
}
|
|
{Το σενάριο χρήσης τερματίζεται.}
|
|
{Σενάριο χρήσης 1 - Εναλλακτική ροή 3}
|
|
{3-4-use-case-sign-up-alternate-flow-3}
|
|
|
|
\begin{figure}[H]
|
|
\centering
|
|
\input{tikz/chapter-3/3-4-use-case-sign-up-sequence-diagram}
|
|
\caption{Σενάριο χρήσης 1 - Διάγραμμα βασικής ροής}
|
|
\label{figure:3-4-use-case-sign-up-base-flow-sequence-diagram}
|
|
\end{figure}
|
|
|
|
% ===== =====
|
|
% Use case 2
|
|
% ===== =====
|
|
\subsection{Σενάριο χρήσης 2: Δημιουργία νέου θέματος} \label{subsection:3-4-use-case-create-topic}
|
|
|
|
\useCaseTable
|
|
{Δημιουργώ νέο θέμα}
|
|
{Στόχος του σεναρίου χρήσης είναι ο χρήστης να μπορεί να δημιουργήσει νέο θέμα.}
|
|
{TODO}
|
|
{TODO}
|
|
{Ο χρήστης πατάει το κουμπί δημιουργίας νέου θέματος.}
|
|
{Ο χρήστης να έχει συνδεθεί στην εφαρμογή και να βρίσκεται στην αρχική σελίδα.}
|
|
{Σενάριο χρήσης 2, δημιουργία νέου θέματος.}
|
|
{3-4-use-case-create-topic}
|
|
|
|
\useCaseBaseFlowTable
|
|
{
|
|
1 & Ο χρήστης πατάει το κουμπί δημιουργίας νέου θέματος. & Το σύστημα εμφανίζει την φόρμα ``Δημιουργία Θέματος''. \\ [0.5ex]
|
|
\midrule
|
|
2 & Ο χρήστης συμπληρώνει τα πεδία και πατάει το κουμπί ``Υποβολή''. & Το σύστημα εισάγει νέο θέμα στο blockchain. \\ [0.5ex]
|
|
\midrule
|
|
3 & - & Το σύστημα εισάγει τις πληροφορίες του θέματος στην προσωπική βάση OrbitDb του χρήστη. \\ [0.5ex]
|
|
}
|
|
{Το σύστημα μεταβαίνει στην σελίδα του νέου θέματος.}
|
|
{Σενάριο χρήσης 2 - Βασική ροή}
|
|
{3-4-use-case-create-topic-base-flow}
|
|
|
|
\useCaseAlternateFlowTable
|
|
{1}
|
|
{Ο χρήστης δημιουργεί ψηφοφορία.}
|
|
{Εφόσον ο χρήστης στη γραμμή 2 της Βασικής Ροής επιλέξει ``Προσθήκη Ψηφοφορίας'' το σύστημα ανανεώνει την σελίδα προσθέτοντας τα επιπλέον πεδία της φόρμας ``Δημιουργία Ψηφοφορίας''.}
|
|
{
|
|
1 & Ο χρήστης, αφού συμπληρώσει τη φόρμα ``Δημιουργία Θέματος'', πατάει το κουμπί ``Προσθήκη ψηφοφορίας'' & Το σύστημα ανανεώνει τη σελίδα με τα πεδία της φόρμας ``Δημιουργία Ψηφοφορίας''. \\ [0.5ex]
|
|
\midrule
|
|
2 & Ο χρήστης συμπληρώνει τα πεδία και πατάει το κουμπί ``Υποβολή''. & Το σύστημα εισάγει το νέο θέμα καθώς και τη νέα ψηφοφορία στο blockchain. \\ [0.5ex]
|
|
\midrule
|
|
3 & - & Το σύστημα εισάγει τις πληροφορίες του θέματος και της ψηφοφορίας στις προσωπικές βάσεις OrbitDb του χρήστη.
|
|
}
|
|
{Το σύστημα μεταβαίνει στην σελίδα του νέου θέματος.}
|
|
{Σενάριο χρήσης 2 - Εναλλακτική ροή 1}
|
|
{3-4-use-case-create-topic-alternate-flow-1}
|
|
|
|
\useCaseAlternateFlowTable
|
|
{2}
|
|
{Ο χρήστης πατάει το κουμπί ``Άκυρο''.}
|
|
{Εφόσον ο χρήστης στη γραμμή 2 της Βασικής Ροής ή στη γραμμή 2 της Εναλλακτικής Ροής 1 επιλέξει ``Άκυρο'' το σύστημα επιστρέφει στην αρχική σελίδα της εφαρμογής.}
|
|
{
|
|
1 & Ο χρήστης πατάει το κουμπί ``Άκυρο'' & Το σύστημα επιστρέφει στην αρχική σελίδα της εφαρμογής.
|
|
}
|
|
{Το σενάριο χρήσης τερματίζεται.}
|
|
{Σενάριο χρήσης 2 - Εναλλακτική ροή 2}
|
|
{3-4-use-case-create-topic-alternate-flow-2}
|
|
|
|
\begin{figure}[H]
|
|
\centering
|
|
\input{tikz/chapter-3/3-4-use-case-create-topic-sequence-diagram}
|
|
\caption{Σενάριο χρήσης 2 - Διάγραμμα βασικής ροής}
|
|
\label{figure:3-4-use-case-create-topic-base-flow-sequence-diagram}
|
|
\end{figure}
|
|
|
|
\begin{figure}[H]
|
|
\centering
|
|
\input{tikz/chapter-3/3-4-use-case-create-topic-alternate-flow-1-sequence-diagram}
|
|
\caption{Σενάριο χρήσης 2 - Διάγραμμα εναλλακτικής ροής 1}
|
|
\label{figure:3-4-use-case-create-topic-alternate-flow-1-sequence-diagram}
|
|
\end{figure}
|
|
|
|
% ===== =====
|
|
% Use case 3
|
|
% ===== =====
|
|
\subsection{Σενάριο χρήσης 3: Ανάκτηση θέματος} \label{subsection:3-4-use-case-fetch-topic}
|
|
|
|
\useCaseTable
|
|
{Ανακτώ ένα θέμα}
|
|
{Στόχος του σεναρίου χρήσης είναι ο επισκέπτης ή ο χρήστης να μπορεί να ανακτήσει ένα θέμα.}
|
|
{TODO}
|
|
{TODO}
|
|
{Ο επισκέπτης ή χρήστης πατάει σε ένα από τα θέματα.}
|
|
{Ο επισκέπτης ή χρήστης πρέπει να έχει ανοίξει την σελίδα της εφαρμογής.}
|
|
{Σενάριο χρήσης 3, ανάκτηση θέματος.}
|
|
{3-4-use-case-fetch-topic}
|
|
|
|
\useCaseBaseFlowTable
|
|
{
|
|
1 & Ο χρήστης πατάει σε ένα από τα θέματα της λίστας. & Το σύστημα ανακτά τις πληροφορίες του θέματος από το blockchain. \\ [0.5ex]
|
|
\midrule
|
|
2 & - & Το σύστημα ανακτά τα μηνύματα του θέματος αντιγράφοντας τις προσωπικές βάσεις OrbitDb των συγγραφέων. \\ [0.5ex]
|
|
}
|
|
{Το σύστημα μεταβαίνει στην σελίδα του θέματος.}
|
|
{Σενάριο χρήσης 3 - Βασική ροή}
|
|
{3-4-use-case-fetch-topic-base-flow}
|
|
|
|
\useCaseAlternateFlowTable
|
|
{1}
|
|
{Το θέμα περιέχει ψηφοφορία.}
|
|
{Εφόσον το θέμα που ανακτήθηκε στη γραμμή 1 της Βασικής Ροής περιέχει ψηφοφορία ανακτώνται οι πληροφορίες της.}
|
|
{
|
|
1 & - & Το σύστημα ανακτά τα μηνύματα του θέματος αντιγράφοντας τις προσωπικές βάσεις OrbitDb των συγγραφέων. \\ [0.5ex]
|
|
2 & - & Το σύστημα ανακτά την ψηφοφορία από το blockchain. \\ [0.5ex]
|
|
3 & - & Το σύστημα ανακτά τις πληροφορίες της ψηφοφορίας αντιγράφοντας την προσωπική βάση OrbitDb του συγγραφέα. \\ [0.5ex]
|
|
4 & - & Το σύστημα επιβεβαιώνει τις πληροφορίες της ψηφοφορίας με βάση το hash που έχει ανακτηθεί από το blockchain. \\ [0.5ex]
|
|
}
|
|
{Το σενάριο χρήσης τερματίζεται.}
|
|
{Σενάριο χρήσης 3 - Εναλλακτική ροή 1}
|
|
{3-4-use-case-fetch-topic-alternate-flow-1}
|
|
|
|
\begin{figure}[H]
|
|
\centering
|
|
\input{tikz/chapter-3/3-4-use-case-fetch-topic-sequence-diagram}
|
|
\caption{Σενάριο χρήσης 3 - Διάγραμμα βασικής ροής}
|
|
\label{figure:3-4-use-case-fetch-topic-base-flow-sequence-diagram}
|
|
\end{figure}
|
|
|
|
\begin{figure}[H]
|
|
\centering
|
|
\input{tikz/chapter-3/3-4-use-case-fetch-topic-alternate-flow-1-sequence-diagram}
|
|
\caption{Σενάριο χρήσης 3 - Διάγραμμα εναλλακτικής ροής 1}
|
|
\label{figure:3-4-use-case-fetch-topic-alternate-flow-1-sequence-diagram}
|
|
\end{figure}
|
|
|
|
% ===== =====
|
|
% Use case 4
|
|
% ===== =====
|
|
\subsection{Σενάριο χρήσης 4: Δημιουργία νέου μηνύματος} \label{subsection:3-4-use-case-create-post}
|
|
|
|
\useCaseTable
|
|
{Δημιουργώ νέο μήνυμα}
|
|
{Στόχος του σεναρίου χρήσης είναι ο χρήστης να μπορεί να δημιουργήσει νέο μήνυμα.}
|
|
{TODO}
|
|
{TODO}
|
|
{Ο χρήστης πατάει το κουμπί δημιουργίας νέου μηνύματος.}
|
|
{Ο χρήστης να έχει συνδεθεί στην εφαρμογή και να βρίσκεται στην σελίδα ενός θέματος.}
|
|
{Σενάριο χρήσης 4, δημιουργία νέου μηνύματος.}
|
|
{3-4-use-case-create-post}
|
|
|
|
\useCaseBaseFlowTable
|
|
{
|
|
1 & Ο χρήστης πατάει το κουμπί δημιουργίας νέου μηνύματος. & Το σύστημα εμφανίζει την φόρμα ``Δημιουργία Μηνύματος''. \\ [0.5ex]
|
|
\midrule
|
|
2 & Ο χρήστης συμπληρώνει τα πεδία και πατάει το κουμπί ``Υποβολή''. & Το σύστημα εισάγει νέο μήνυμα στο blockchain. \\ [0.5ex]
|
|
\midrule
|
|
3 & - & Το σύστημα εισάγει τις πληροφορίες του μηνύματος στην προσωπική βάση OrbitDb του χρήστη. \\ [0.5ex]
|
|
}
|
|
{Το σύστημα παραμένει στη σελίδα του θέματος εμφανίζοντας το νέο μήνυμα.}
|
|
{Σενάριο χρήσης 4 - Βασική ροή}
|
|
{3-4-use-case-create-post-base-flow}
|
|
|
|
\useCaseAlternateFlowTable
|
|
{1}
|
|
{Ο χρήστης πατάει το κουμπί ``Άκυρο''.}
|
|
{Εφόσον ο χρήστης στη γραμμή 2 της Βασικής Ροής επιλέξει ``Άκυρο'' το σύστημα επιστρέφει στη σελίδα του θέματος.}
|
|
{
|
|
1 & Ο χρήστης πατάει το κουμπί ``Άκυρο'' & Το σύστημα επιστρέφει στη σελίδα του θέματος.
|
|
}
|
|
{Το σενάριο χρήσης τερματίζεται.}
|
|
{Σενάριο χρήσης 4 - Εναλλακτική ροή 1}
|
|
{3-4-use-case-create-post-alternate-flow-1}
|
|
|
|
\begin{figure}[H]
|
|
\centering
|
|
\input{tikz/chapter-3/3-4-use-case-create-post-sequence-diagram}
|
|
\caption{Σενάριο χρήσης 4 - Διάγραμμα βασικής ροής}
|
|
\label{figure:3-4-use-case-create-post-base-flow-sequence-diagram}
|
|
\end{figure}
|
|
|
|
% ===== =====
|
|
% Use case 5
|
|
% ===== =====
|
|
\subsection{Σενάριο χρήσης 5: Ψήφιση σε ψηφοφορία} \label{subsection:3-4-use-case-vote-in-poll}
|
|
|
|
\useCaseTable
|
|
{Ψηφίζω σε ψηφοφορία}
|
|
{Στόχος του σεναρίου χρήσης είναι ο χρήστης να μπορεί να ψηφίσει σε μία ψηφοφορία.}
|
|
{TODO}
|
|
{TODO}
|
|
{Ο χρήστης πατάει το κουμπί ψηφοφορίας.}
|
|
{Ο χρήστης να έχει συνδεθεί στην εφαρμογή και να βρίσκεται στην σελίδα ενός θέματος το οποίο περιλαμβάνει ψηφοφορία.}
|
|
{Σενάριο χρήσης 5, ψήφιση σε ψηφοφορία.}
|
|
{3-4-use-case-vote-in-poll}
|
|
|
|
\useCaseBaseFlowTable
|
|
{
|
|
1 & Ο χρήστης πατάει το κουμπί της επιλογής που επιθυμεί να ψηφίσει και πατάει το κουμπί ``Υποβολή''. & Το σύστημα εισάγει νέα ψήφο στο blockchain. \\ [0.5ex]
|
|
}
|
|
{Το σύστημα ανανεώνει τις πληροφορίες της ψηφοφορίας.}
|
|
{Σενάριο χρήσης 5 - Βασική ροή}
|
|
{3-4-use-case-vote-in-poll-base-flow}
|
|
|
|
\begin{figure}[H]
|
|
\centering
|
|
\input{tikz/chapter-3/3-4-use-case-vote-in-poll-sequence-diagram}
|
|
\caption{Σενάριο χρήσης 5 - Διάγραμμα βασικής ροής}
|
|
\label{figure:3-4-use-case-vote-in-poll-base-flow-sequence-diagram}
|
|
\end{figure}
|
|
|
|
% ===== =====
|
|
% Use case 6
|
|
% ===== =====
|
|
\subsection{Σενάριο χρήσης 6: Ψήφιση μηνύματος} \label{subsection:3-4-use-case-vote-post}
|
|
|
|
\useCaseTable
|
|
{Ψηφίζω σε μήνυμα}
|
|
{Στόχος του σεναρίου χρήσης είναι ο χρήστης να μπορεί να υπερψηφίσει ή καταψηφίσει ένα μήνυμα.}
|
|
{TODO}
|
|
{TODO}
|
|
{Ο επισκέπτης πατάει το κουμπί υπερψήφισης ή καταψήφισης.}
|
|
{Ο χρήστης να έχει συνδεθεί στην εφαρμογή και να βρίσκεται στην σελίδα ενός θέματος το οποίο περιλαμβάνει τουλάχιστον ένα μήνυμα το οποίο δεν έχει δημιουργήσει ο ίδιος.}
|
|
{Σενάριο χρήσης 6, ψήφιση μηνύματος.}
|
|
{3-4-use-case-vote-post}
|
|
|
|
\useCaseBaseFlowTable
|
|
{
|
|
1 & Ο χρήστης πατάει στο κουμπί υπερψήφισης μηνύματος. & Το σύστημα εισάγει νέα ψήφο μηνύματος στο blockchain. \\ [0.5ex]
|
|
}
|
|
{Το σύστημα ανανεώνει τις ψήφους του μηνύματος.}
|
|
{Σενάριο χρήσης 6 - Βασική ροή}
|
|
{3-4-use-case-vote-post-base-flow}
|
|
|
|
\begin{figure}[H]
|
|
\centering
|
|
\input{tikz/chapter-3/3-4-use-case-vote-post-sequence-diagram}
|
|
\caption{Σενάριο χρήσης 6 - Διάγραμμα βασικής ροής}
|
|
\label{figure:3-4-use-case-vote-post-base-flow-sequence-diagram}
|
|
\end{figure}
|
|
|