diff --git a/chapters/3.application-design/3.4.use-cases.tex b/chapters/3.application-design/3.4.use-cases.tex index 3a0874e..6935128 100644 --- a/chapters/3.application-design/3.4.use-cases.tex +++ b/chapters/3.application-design/3.4.use-cases.tex @@ -23,16 +23,51 @@ { 1 & Ο χρήστης πατάει το κουμπί εγγραφή. & Το σύστημα εμφανίζει την φόρμα ``Εγγραφή Χρήστη''. \\ [0.5ex] \midrule - 2 & Ο χρήστης συμπληρώνει τα πεδία και πατάει το κουμπί ``Υποβολή''. & Το σύστημα εισάγει νέο χρήστη. \\ [0.5ex] + 2 & Ο χρήστης συμπληρώνει τα πεδία και πατάει το κουμπί ``Υποβολή''. & Το σύστημα εισάγει νέο χρήστη στο blockchain. \\ [0.5ex] \midrule - 3 & - & Το σύστημα εμφανίζει την φόρμα ``Πληροφορίες Χρήστη''. \\ [0.5ex] + 3 & - & Το σύστημα δημιουργεί τις προσωπικές βάσεις βάσεις δεδομένων OrbitDb του χρήστη. \\ [0.5ex] \midrule - 4 & Ο χρήστης συμπληρώνει τις προσωπικές του πληροφορίες και πατάει το κουμπί ``Υποβολή''. & Το σύστημα εισάγει τις πληροφορίες χρήστη. \\ [0.5ex] + 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} + % ===== ===== % Use case 2 % ===== ===== @@ -50,14 +85,42 @@ \useCaseBaseFlowTable { - 1 & Ο χρήστης πατάει το κουμπί δημιουργίας νέου θέματος. & Το σύστημα εμφανίζει την φόρμα ``Δημιουργία Θέματος''. \\ [0.5ex] + 1 & Ο χρήστης πατάει το κουμπί δημιουργίας νέου θέματος. & Το σύστημα εμφανίζει την φόρμα ``Δημιουργία Θέματος''. \\ [0.5ex] + \midrule + 2 & Ο χρήστης συμπληρώνει τα πεδία και πατάει το κουμπί ``Υποβολή''. & Το σύστημα εισάγει νέο θέμα στο blockchain. \\ [0.5ex] \midrule - 2 & Ο χρήστης συμπληρώνει τα πεδία και πατάει το κουμπί ``Υποβολή''. & Το σύστημα εισάγει νέο θέμα. \\ [0.5ex] + 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} + % ===== ===== % Use case 3 % ===== ===== @@ -75,7 +138,9 @@ \useCaseBaseFlowTable { - 1 & Ο χρήστης πατάει σε ένα από τα θέματα της λίστας. & Το σύστημα ανακτά τις πληροφορίες του θέματος. \\ [0.5ex] + 1 & Ο χρήστης πατάει σε ένα από τα θέματα της λίστας. & Το σύστημα ανακτά τις πληροφορίες του θέματος από το blockchain. \\ [0.5ex] + \midrule + 2 & - & Το σύστημα ανακτά τα μηνύματα του θέματος αντιγράφοντας τις προσωπικές βάσεις OrbitDb των συγγραφέων. \\ [0.5ex] } {Το σύστημα μεταβαίνει στην σελίδα του θέματος.} {Σενάριο χρήσης 3 - Βασική ροή} @@ -98,14 +163,27 @@ \useCaseBaseFlowTable { - 1 & Ο χρήστης πατάει το κουμπί δημιουργίας νέου μηνύματος. & Το σύστημα εμφανίζει την φόρμα ``Δημιουργία Μηνύματος''. \\ [0.5ex] + 1 & Ο χρήστης πατάει το κουμπί δημιουργίας νέου μηνύματος. & Το σύστημα εμφανίζει την φόρμα ``Δημιουργία Μηνύματος''. \\ [0.5ex] + \midrule + 2 & Ο χρήστης συμπληρώνει τα πεδία και πατάει το κουμπί ``Υποβολή''. & Το σύστημα εισάγει νέο μήνυμα στο blockchain. \\ [0.5ex] \midrule - 2 & Ο χρήστης συμπληρώνει τα πεδία και πατάει το κουμπί ``Υποβολή''. & Το σύστημα εισάγει νέο μήνυμα. \\ [0.5ex] + 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} + % ===== ===== % Use case 5 % ===== ===== @@ -123,7 +201,7 @@ \useCaseBaseFlowTable { - 1 & Ο χρήστης πατάει το κουμπί της επιλογής που επιθυμεί να ψηφίσει και πατάει το κουμπί ``Υποβολή''. & Το σύστημα εισάγει νέα ψήφο. \\ [0.5ex] + 1 & Ο χρήστης πατάει το κουμπί της επιλογής που επιθυμεί να ψηφίσει και πατάει το κουμπί ``Υποβολή''. & Το σύστημα εισάγει νέα ψήφο στο blockchain. \\ [0.5ex] } {Το σύστημα ανανεώνει τις πληροφορίες της ψηφοφορίας.} {Σενάριο χρήσης 5 - Βασική ροή} @@ -146,7 +224,7 @@ \useCaseBaseFlowTable { - 1 & Ο χρήστης πατάει στο κουμπί υπερψήφισης ή καταψήφισης μηνύματος. & Το σύστημα εισάγει νέα ψήφο μηνύματος. \\ [0.5ex] + 1 & Ο χρήστης πατάει στο κουμπί υπερψήφισης μηνύματος. & Το σύστημα εισάγει νέα ψήφο μηνύματος στο blockchain. \\ [0.5ex] } {Το σύστημα ανανεώνει τις ψήφους του μηνύματος.} {Σενάριο χρήσης 6 - Βασική ροή} diff --git a/custom-commands/use-case-commands.tex b/custom-commands/use-case-commands.tex index 6f3344b..62e55ba 100644 --- a/custom-commands/use-case-commands.tex +++ b/custom-commands/use-case-commands.tex @@ -37,3 +37,25 @@ \label{table:#4} \end{table} }} + +\newcommand{\useCaseAlternateFlowTable}[7] {{ + \begin{table}[H] + \begin{center} + \begin{tabularx}{\textwidth}{l X X} + \toprule + \multicolumn{3}{l}{\textbf{Εναλλακτική ροή {#1}:} {#2}} \\ [0.5ex] + \midrule + \multicolumn{3}{p{\dimexpr\textwidth-2\tabcolsep-0.8pt}}{{#3}} \\ [0.5ex] + \midrule + \textbf{Γραμμή} & \textbf{Ενέργεια χρήστη συστήματος} & \textbf{Απάντηση Συστήματος} \\ [0.5ex] + \midrule + #4 \\ [0.5ex] + \midrule + \multicolumn{3}{p{\dimexpr\textwidth-2\tabcolsep-0.8pt}}{{#5}} \\ [0.5ex] + \bottomrule + \end{tabularx} + \end{center} + \caption{#6} + \label{table:#7} + \end{table} +}} diff --git a/thesis.pdf b/thesis.pdf index 193c176..25671b0 100644 Binary files a/thesis.pdf and b/thesis.pdf differ