Browse Source

Merge branch 'feature/4-6-design-implementation-differences' into develop

develop
Apostolos Fanakis 3 years ago
parent
commit
3923071f04
Signed by: Apostolof GPG Key ID: 8600B4C4163B3269
  1. BIN
      assets/figures/chapter-4/4.6.design-implementation-differences-sprints.png
  2. 2
      chapters/3.application-design/3.8.implementation-methodology-specification.tex
  3. 2
      chapters/4.application-implementation/4.4.problems-faced.tex
  4. 47
      chapters/4.application-implementation/4.5.implemented-parts.tex
  5. 1
      chapters/appendix/appendix.tex
  6. 3
      chapters/appendix/screenshots-appendix.tex
  7. 2
      custom-commands/appendix-overrides.tex
  8. 2
      misc/packages.tex
  9. BIN
      thesis.pdf
  10. 5
      thesis.tex

BIN
assets/figures/chapter-4/4.6.design-implementation-differences-sprints.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 974 KiB

2
chapters/3.application-design/3.8.implementation-methodology-specification.tex

@ -16,3 +16,5 @@
\caption{Διαχωρισμός σε sprints}
\label{figure:3.8.implementation-methodology-specification-sprints}
\end{figure}
TODO: add tasks for serve (front and contracts) thru IPFS, upgradability

2
chapters/4.application-implementation/4.4.problems-faced.tex

@ -1 +1 @@
\section{Προβλήματα ανάπτυξης}
\section{Προβλήματα ανάπτυξης} \label{section:4-5-problems-faced}

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

@ -1,9 +1,46 @@
\section{Χαρακτηριστικά που υλοποιήθηκαν} \label{section:4-6-implemented-parts}
\section{Χαρακτηριστικά που υλοποιήθηκαν} \label{section:4-5-implemented-parts}
TODO: add references to use cases implemented with screenshots of application
TODO: add unimplemented parts like serve (front and contracts) thru IPFS, upgradability
Κατά την υλοποίηση εμφανίστηκαν διάφορα προβλήματα που δεν είχαν προβλεφθεί όπως αναλύθηκε στο προηγούμενο κεφάλαιο και τα οποία προκάλεσαν καθυστερήσεις στην ολοκλήρωση των tasks. Λόγω των καθυστερήσεων αυτών έγιναν διάφορες αναδιαμορφώσεις του προγραμματισμού των Sprint καθώς και διαπραγματεύσεις της σημαντικότητας των χαρακτηριστικών. Από τον επανασχεδιασμό και τις προσαρμογές αυτές προέκυψαν μερικές αλλαγές στο τελικό σετ των χαρακτηριστικών της πλατφόρμας σε σχέση με ό,τι είχε αρχικά προδιαγραφεί. Τα χαρακτηριστικά που υλοποιήθηκαν τελικά είναι:
\begin{itemize}
\item η εγγραφή χρήστη και η δημιουργία των τοπικών βάσεων του όπως περιγράφεται στις \ref{srs:functional-srs-sign-up} \& \ref{srs:functional-srs-create-user-databases} και στο σενάριο χρήσης \ref{subsection:3-6-use-case-signup}
\item η αυτόματη είσοδος χρήστη όπως περιγράφεται στην \ref{srs:functional-srs-sign-in} και στο σενάριο χρήσης \ref{subsection:3-6-use-case-signin}
\item η δημιουργία θέματος και η δημιουργία ψηφοφοριών όπως περιγράφεται στις \ref{srs:functional-srs-create-topic} \& \ref{srs:functional-srs-create-polls} και στο σενάριο χρήσης \ref{subsection:3-6-use-case-create-topic}
\item η περιήγηση στα υπάρχοντας θέματα όπως περιγράφεται στην \ref{srs:functional-srs-browse-topics} και στο σενάριο χρήσης \ref{subsection:3-6-use-case-fetch-topic}
\item η δημοσίευση μηνύματος όπως περιγράφεται στην \ref{srs:functional-srs-create-post} και στο σενάριο χρήσης \ref{subsection:3-6-use-case-create-post}
\item η επεξεργασία μηνύματος όπως περιγράφεται στην \ref{srs:functional-srs-modify-post} και στο σενάριο χρήσης \ref{subsection:3-6-use-case-modify-post}
\item η ψήφιση σε ψηφοφορία όπως περιγράφεται στην \ref{srs:functional-srs-vote-polls} και στο σενάριο χρήσης \ref{subsection:3-6-use-case-vote-in-poll}
\item η ψήφιση σε μηνύματα όπως περιγράφεται στην \ref{srs:functional-srs-vote-posts} και στο σενάριο χρήσης \ref{subsection:3-6-use-case-vote-post}
\item η διαγραφή των τοπικών δεδομένων όπως περιγράφεται στην \ref{srs:functional-srs-delete-local-data} και στο σενάριο χρήσης \ref{subsection:3-6-use-case-delete-local-data}
\end{itemize}
Τα παραπάνω αντιστοιχούν σε 11 ολοκληρωμένες από τις 13 προδιαγεγραμμένες ΛΑ ή πλήρωση 84.6\%, ποσοστό που θεωρείται από τους συγγραφείς επαρκές για την εξαγωγή συμπερασμάτων για τον χώρο των DApps και υπερβάλλων για τα πλαίσια ενός PoC. Στο παράρτημα \ref{screenshots-appendix} παρατίθενται τα στιγμιότυπα οθόνης των υλοποιημένων χαρακτηριστικών.
Τα χαρακτηριστικά τα οποία παραλήφθηκαν είναι τα παρακάτω:
\begin{itemize}
\item η δημιουργία κοινοτήτων όπως περιγράφεται στην \ref{srs:functional-srs-create-communities} και στο σενάριο χρήσης todo
\item ο ορισμός εξωτερικών contracts για τα tokens των κοινοτήτων όπως περιγράφεται στην \ref{srs:functional-srs-assign-community-contract} και στο σενάριο χρήσης todo
\end{itemize}
Τέλος, η ΜΛΑ που αφορά την ελαχιστοποίηση των fees (\ref{srs:non-functional-srs-minimize-fees}) ακολουθήθηκε κατά το δυνατόν σε όλη τη διαδικασία σχεδιασμού και υλοποίησης. Η ΜΛΑ σχετικά με την αναβαθμισιμότητα των contracts (\ref{srs:non-functional-srs-upgrade-contracts}) καταστρατηγήθηκε λόγω του χρόνου που θα απαιτούσε μία τέτοια υλοποίηση.
Η \ref{srs:non-functional-srs-maximum-decentraliztion} απαιτεί την μεγιστοποίηση της αποκέντρωσης της πλατφόρμας. Παρότι υπάρχουν μέρη τα οποία φαινομενικά έχει παραβιαστεί, όπως η διάθεση της εφαρμογής και των contract artifacts μέσω κεντροποιημένων servers καθώς και η ύπαρξη του rendezvous server, στην πραγματικότητα έχει ακολουθηθεί σε ικανοποιητικό βαθμό. Σχετικά με την εφαρμογή και τα contracts, πάρθηκε η απόφαση να διατεθούν μέσω των αντίστοιχων servers επειδή αυτό προσφέρει μεγάλη ευελιξία και ευκολία στην ανάπτυξη. Θα μπορούσαν εύκολα να διατεθούν μέσω αποκεντρωμένων συστημάτων όπως torrents ή το IPFS και αυτό παραμένει ένα ανοιχτό θέμα. Επίσης ανοιχτό θέμα παραμένει η ανάγκη ύπαρξης του rendezvous server. Λόγω της φύσης του πρωτοκόλλου IPFS και της λειτουργίας που επιτελεί ο server αυτός, είναι αδύνατον να παραληφθεί, ωστόσο είναι ανοιχτό ερευνητικό πεδίο η περαιτέρω αποκέντρωση του πρωτοκόλλου.
% https://mnot.github.io/avoiding-internet-centralization/draft-nottingham-avoiding-internet-centralization.html#name-necessary-centralization
\subsection{Διαφορές σχεδιασμού-υλοποίησης} \label{subsection:4-6-1-design-implementation-differences}
TODO: add diagram with colors
TODO: add differences in architecture
Σημαντικές διαφορές υπήρξαν επίσης στην διαδικασία υλοποίησης τόσο όσον αφορά τον αριθμό και τις λειτουργίες των διαφορετικών πακέτων λογισμικού όσο και τον χρονοπρογραμματισμό. Προστέθηκαν τρεις νέες υπηρεσίες, η υπηρεσία "Concordia Contracts Provider", ο προσαρμοσμένος IPFS pinner και η ιστοσελίδα "Concordia Guide".
Η ανάγκη για τα νέα πακέτα λογισμικού προέκυψε κατά την πορεία υλοποίησης της διπλωματικής και προστέθηκαν στον χρονοπρογραμματισμό που είχε γίνει στην αρχή της εργασίας. Στην προσαρμογή αυτή βοήθησαν ιδιαίτερα οι Agile τακτικές που ακολουθήθηκαν και η προσαρμοστικότητα που προσφέρει το Scrum σε μεταβαλλόμενες απαιτήσεις.
Τέλος, κατά την υλοποίηση έγινε γρήγορα αντιληπτή η αξία που προσφέρουν ένα δοκιμαστικό περιβάλλον (staging environment) σε συνδυασμό με ένα CI/CD σύστημα. Για το λόγο αυτό πάρθηκε η απόφαση να μεταφερθεί το sprint που αφορούσε αυτά πολύ νωρίτερα στην διαδικασία υλοποίησης, ώστε να μεγιστοποιηθεί η χρήση του.
Εποπτικά, η διαδικασία της υλοποίησης περιγράφεται στο παρακάτω σχήμα (σχήμα \ref{figure:4.6.design-implementation-differences-sprints}). Με σκούρο πράσινο χρώμα εμφανίζονται τα tasks τα οποία υπήρχαν στο χρονοπρογραμματισμό από τη αρχή και υλοποιήθηκαν, με ανοιχτό πράσινο αυτά τα οποία δεν υπήρχαν στον αρχικό προγραμματισμό αλλά υλοποιήθηκαν και με κόκκινο αυτά τα οποία δεν υλοποιήθηκαν.
\begin{figure}[H]
\centering
\includegraphics[width=\textwidth]{assets/figures/chapter-4/4.6.design-implementation-differences-sprints.png}
\caption{Διαχωρισμός σε sprints}
\label{figure:4.6.design-implementation-differences-sprints}
\end{figure}

1
chapters/appendix/appendix.tex

@ -0,0 +1 @@
\input{chapters/appendix/screenshots-appendix}

3
chapters/appendix/screenshots-appendix.tex

@ -0,0 +1,3 @@
\chapter{Στιγμιότυπα οθόνης πλατφόρμας} \label{screenshots-appendix}
TODO: add screenshots of application

2
custom-commands/appendix-overrides.tex

@ -0,0 +1,2 @@
\renewcommand{\appendixtocname}{Παραρτήματα}
\renewcommand{\appendixpagename}{Παραρτήματα}

2
misc/packages.tex

@ -30,6 +30,7 @@
\usepackage{tcolorbox} % Colored boxes
\tcbuselibrary{minted} % Make tcolorbox work with minted
\usepackage{graphicx}
\usepackage{appendix} % Appendix helpers
% --- TikZ and UML diagrams
\usepackage{pgf-umlsd}
@ -46,6 +47,7 @@
\input{custom-commands/srs-commands}
\input{custom-commands/use-case-commands}
\input{custom-commands/custom-spheading}
\input{custom-commands/appendix-overrides}
% --- Custom styles ---
\renewcommand{\arraystretch}{1.2} % Streches the table row height so text is not crammed between the lines

BIN
thesis.pdf

Binary file not shown.

5
thesis.tex

@ -31,6 +31,11 @@
\input{chapters/4.application-implementation/4.0.application-implementation}
\input{chapters/5.conclusions-open-areas/5.0.conclusions-open-areas}
\appendix
\appendixpage
\addappheadtotoc
\input{chapters/appendix/appendix}
% end of thesis body
% --------------------------

Loading…
Cancel
Save