Browse Source

Merge branch 'refactor/3-6-use-cases' into 'develop'

refactor: add missing use cases

See merge request ecentrics/thesis-report!3
develop
Apostolos Fanakis 3 years ago
parent
commit
4848ff8302
  1. 3
      chapters/3.application-design/3.6.use-cases.tex
  2. 70
      chapters/3.application-design/3.6.use-cases/3.6.10.use-case-create-community.tex
  3. 3
      chapters/4.application-implementation/4.5.implemented-parts.tex
  4. BIN
      thesis.pdf
  5. 21
      tikz/chapter-3/3-6-use-case-create-community-alternate-flow-1-sequence-diagram.tex
  6. 16
      tikz/chapter-3/3-6-use-case-create-community-sequence-diagram.tex

3
chapters/3.application-design/3.6.use-cases.tex

@ -13,5 +13,4 @@
\input{chapters/3.application-design/3.6.use-cases/3.6.7.use-case-vote-in-poll}
\input{chapters/3.application-design/3.6.use-cases/3.6.8.use-case-vote-post}
\input{chapters/3.application-design/3.6.use-cases/3.6.9.delete-local-data}
%TODO: Add missing use cases
\input{chapters/3.application-design/3.6.use-cases/3.6.10.use-case-create-community}

70
chapters/3.application-design/3.6.use-cases/3.6.10.use-case-create-community.tex

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

3
chapters/4.application-implementation/4.5.implemented-parts.tex

@ -19,8 +19,7 @@
Τα χαρακτηριστικά τα οποία παραλήφθηκαν είναι τα παρακάτω:
\begin{itemize}
\item η δημιουργία κοινοτήτων όπως περιγράφεται στην \ref{srs:functional-srs-create-communities} και στο σενάριο χρήσης todo
\item ο ορισμός εξωτερικών contracts για τα tokens των κοινοτήτων όπως περιγράφεται στην \ref{srs:functional-srs-assign-community-contract} και στο σενάριο χρήσης todo
\item η δημιουργία κοινοτήτων και ο ορισμός εξωτερικών contracts για τα tokens τους όπως περιγράφεται στις \ref{srs:functional-srs-create-communities} \& \ref{srs:functional-srs-assign-community-contract} και στο σενάριο χρήσης \ref{subsection:3-10-use-case-create-community}
\end{itemize}
Τέλος, η ΜΛΑ που αφορά την ελαχιστοποίηση των fees (\ref{srs:non-functional-srs-minimize-fees}) ακολουθήθηκε κατά το δυνατόν σε όλη τη διαδικασία σχεδιασμού και υλοποίησης. Η ΜΛΑ σχετικά με την αναβαθμισιμότητα των contracts (\ref{srs:non-functional-srs-upgrade-contracts}) καταστρατηγήθηκε λόγω του χρόνου που θα απαιτούσε μία τέτοια υλοποίηση.

BIN
thesis.pdf

Binary file not shown.

21
tikz/chapter-3/3-6-use-case-create-community-alternate-flow-1-sequence-diagram.tex

@ -0,0 +1,21 @@
\begin{sequencediagram}
\newthread{actor}{Actor}{}
\newinst[4]{concordia}{:Concordia}{}
\newinst[4]{eth}{:Ethereum}{}
\newinst{orbit}{:OrbitDb}{}
\begin{call}{actor}{Create community}{concordia}{Community creation form}
\end{call}
\begin{call}{actor}{Add external contract}{concordia}{External contract form}
\end{call}
\begin{call}{actor}{Submit}{concordia}{Created community page}
\begin{call}{concordia}{Create community}{eth}{New community ID}
\end{call}
\begin{call}{concordia}{Connect external contract}{eth}{}
\end{call}
\end{call}
\end{sequencediagram}

16
tikz/chapter-3/3-6-use-case-create-community-sequence-diagram.tex

@ -0,0 +1,16 @@
\begin{sequencediagram}
\newthread{actor}{Actor}{}
\newinst[3]{concordia}{:Concordia}{}
\newinst[2]{eth}{:Ethereum}{}
\newinst[1]{orbit}{:OrbitDb}{}
\begin{call}{actor}{Create community}{concordia}{Community creation form}
\end{call}
\begin{call}{actor}{Submit}{concordia}{Created community page}
\begin{call}{concordia}{Create community}{eth}{New community ID}
\end{call}
\end{call}
\end{sequencediagram}
Loading…
Cancel
Save