Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in
Toggle navigation
S
softlab-thesis
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Antonios Angelakis
softlab-thesis
Commits
f5e4b910
Commit
f5e4b910
authored
Mar 14, 2018
by
Antonios Angelakis
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Minor fixes and add Uncle Bob
parent
4186d9ce
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
30 additions
and
24 deletions
+30
-24
thesis.bib
thesis.bib
+7
-0
thesis.tex
thesis.tex
+23
-24
No files found.
thesis.bib
View file @
f5e4b910
...
...
@@ -75,3 +75,10 @@
pages={149--162},
year={2008}
}
@book{martin2009clean,
title={Clean code: a handbook of agile software craftsmanship},
author={Martin, Robert C},
year={2009},
publisher={Pearson Education}
}
thesis.tex
View file @
f5e4b910
...
...
@@ -386,7 +386,7 @@ H αρχική έκδοση του Mooshak δημιουργήθηκε το 2000
\caption
[Η αρχιτεκτονική του Mooshak]
{
Η αρχιτεκτονική του Mooshak με τρεις
εξυπηρετητές, όπου οι δύο βρίσκονται στο ίδιο τοπικό δίκτυο και όλοι
συγχρονίζουν τα δεδομένα τους. Βασισμένο στο σχήμα 4 του
\cite
{
leal20
.3,trim=4 4 4 4,clip
mooshak
}
.
}
\cite
{
leal20
03
mooshak
}
.
}
\end{figure}
\bigskip
...
...
@@ -895,8 +895,8 @@ TODO: Καλύτερη περιγραφή της λειτουργίας της
\bigskip
Οι αλλαγές που αφορούν το frontend κομμάτι έγιναν κυρίως στη σελίδα της διαχείρισης
αρχείων ελέγχων. Όπως φαίνεται στην εικόνα
18
, δίπλα σε κάθε αρχείο ελέγχου είναι
τα χρωματικά tags και
με χρήσ
η CSS διακρίνεται το επιλεγμένο. Για την προσθήκη
αρχείων ελέγχων. Όπως φαίνεται στην εικόνα
4.1
, δίπλα σε κάθε αρχείο ελέγχου είναι
τα χρωματικά tags και
χάρη στ
η CSS διακρίνεται το επιλεγμένο. Για την προσθήκη
του blue tag, δανειστήκαμε την εικόνα από το hellenico, και αυτή προστέθηκε μετά
το κίτρινο και πορτοκαλί. Αντίστοιχα, προστέθηκε η περιγραφή του συγκεκριμένου
tag και ο κώδικας που διαχειριζόταν το πάτημα του tag και την αλλαγή στη βάση.
...
...
@@ -1033,12 +1033,10 @@ callback για την χρησιμοποίηση αυτών των αποτελ
σημαντικό η πληροφορία για τις ομάδες, τις βαθμολογίες τους και το ποια αρχεία
εμπεριέχει η κάθε μια, να εμφανίζεται στη συγκεκριμένη οθόνη χωρίς να είναι
απαραίτητη η μετάβαση στη οθόνη της διαχείρισης ομάδας αρχείων ελέγχου. Οι δύο
προαναφερθείσες οθόνες εμφανίζονται στις εικόνες 4
1 και 42
.
προαναφερθείσες οθόνες εμφανίζονται στις εικόνες 4
.3 και 4.4
.
\bigskip
(TODO: eikones 41 42)
\begin{figure}
\centering
\includegraphics
[scale=0.3,trim=4 4 4 4,clip]
{
Figures/groupoverview.png
}
...
...
@@ -1129,15 +1127,15 @@ callback για την χρησιμοποίηση αυτών των αποτελ
\bigskip
Η υλοποίηση όσον αφορά στο frontend και τη λογική του Grader, συνδυάστηκε με
μερικό refactoring των κλάσεων και των συναρτήσεων, χρησιμοποιώντας πολλές
από τις αρχές που περιγράφονται στο (TODO: να το βγαλω τελειως ή να βάλω πηγή)
clean code του Robert Martin. Μέρος των αλλαγών ήταν και η προσθήκη ενός πεδίου
στον
πίνακα των υποβολών, με τίτλο resultsjson, το οποίο περιέχει τα αναλυτικά
μερικό refactoring των κλάσεων και των συναρτήσεων, χρησιμοποιώντας πολλές
από
τις αρχές που περιγράφονται στο Clean Code του Robert Martin
\cite
{
martin2009clean
}
. Μέρος των αλλαγών ήταν και η προσθήκη ενός πεδίου στον
πίνακα των υποβολών, με τίτλο resultsjson, το οποίο περιέχει τα αναλυτικά
αποτελέσματα μιας υποβολής, κωδικοποιημένα σε μορφή JSON, έτσι ώστε να μην
υπολογίζονται κάθε φορά που απαιτούνται. Επιπλέον, αλλαγές έγιναν ώστε να
αφαιρεθούν κομμάτια επαναλαμβανόμενου κώδικα με την αντίστοιχη δημιουργία
νέων δομών και κλάσεων, αποσύνδεση της λογικής διαφορετικών αντικειμένων και
μείωση
της πολυπλοκότητας μεγάλων κομματιών κώδικα με δημιουργία μικρότερων
αφαιρεθούν κομμάτια επαναλαμβανόμενου κώδικα με την αντίστοιχη δημιουργία
νέων
δομών και κλάσεων, αποσύνδεση της λογικής διαφορετικών αντικειμένων και μείωση
της πολυπλοκότητας μεγάλων κομματιών κώδικα με δημιουργία μικρότερων
συναρτήσεων με περιγραφικά ονόματα.
\bigskip
...
...
@@ -1167,7 +1165,7 @@ draw this
Τα προβλήματα, έπειτα από τη δημιουργία τους, παραμένουν ανένταχτα, στην κατηγορία
"Προβλήματα εκτός διαγωνισμών" της οθόνης διαχείρισης
όπως φαίνεται και σ
ε screenshot παρακάτω
. Το επόμενο βήμα είναι η μετακίνηση τους
όπως φαίνεται και σ
το σχήμα 5.1
. Το επόμενο βήμα είναι η μετακίνηση τους
σε κάποιον διαγωνισμό με χρήση του μενού στα δεξιά του προβλήματος. Η μετακίνηση
αυτού του τύπου είναι ο μόνος τρόπος να επαναχρησιμοποιηθεί το πρόβλημα και σε
άλλους διαγωνισμούς, αφότου τελειώσει αυτός για τον οποίο δημιουργήθηκε
...
...
@@ -1193,7 +1191,7 @@ draw this
\bigskip
Στο σχήμα
1
αρχίζει να διακρίνεται το πρόβλημα που δημιουργείται. Η σύνδεση
Στο σχήμα
5.2
αρχίζει να διακρίνεται το πρόβλημα που δημιουργείται. Η σύνδεση
κάθε προβλήματος με το διαγωνισμό γίνεται μέσω του πεδίο compid στον πίνακα
των προβλημάτων. Ως αποτέλεσμα, το μόνο που κάνει η λειτουργία της μετακίνησης
προβλήματος σε άλλον διαγωνισμό είναι να αλλάξει αυτό το πεδίο. Επιπροσθέτως,
...
...
@@ -1246,7 +1244,7 @@ draw this
θα έχει την ίδια λογική, δηλαδή θα αναγράφει τις επιμέρους βαθμολογίες σε κάθε
πρόβλημα του διαγωνισμού. Η διαφορά θα είναι ότι δε θα σημειώνεται στη βάση μόνο
η βαθμολογία αλλά ζευγάρια probid: βαθμολογία. Στο παράδειγμα που χρησιμοποιήθηκε
προηγουμένως, το πεδίο θα έχει τη μορφή
{
48: 7, 51: 9
}
.
προηγουμένως, το πεδίο θα έχει τη μορφή
$
\{
48
:
7
,
51
:
9
\}
$
.
\bigskip
...
...
@@ -1281,7 +1279,7 @@ draw this
επιλέγοντας διαγωνισμό. Τέλος, στο κάτω μέρος της οθόνης, όπου αναγράφονταν τα
ανένταχτα προβλήματα, κρίθηκε προτιμότερο να αναγράφονται όλα τα προβλήματα
ώστε να είναι ευκολότερο να αναζητηθεί και να αντιγραφεί κάποιο σε ένα νέο
διαγωνισμό. Η νέα διαχείριση παρουσιάζεται στ
η φωτογραφία4
.
διαγωνισμό. Η νέα διαχείριση παρουσιάζεται στ
ις φωτογραφίες 5.2 και 5.3
.
\bigskip
...
...
@@ -1412,7 +1410,7 @@ Overflow \cite{website:pythongrowth} χάρη, κυρίως, στην καθιέ
Κατά τη διαδικασία δημιουργίας ενός προβλήματος, είναι απαραίτητο να προστεθεί
ένας συχνά μεγάλος αριθμός αρχείων ελέγχου. Ο μόνος τρόπος να γίνει αυτό είναι
μέσω της οθόνης διαχείρισης των αρχείων ελέγχου, όπως φαίνεται στη
φωτογραφία
18
, και κάθε νέο αρχείο ανεβαίνει ξεχωριστά, δηλαδή δεν υπάρχει
φωτογραφία
4.1
, και κάθε νέο αρχείο ανεβαίνει ξεχωριστά, δηλαδή δεν υπάρχει
κάποια μαζική διαδικασία.
\bigskip
...
...
@@ -1436,11 +1434,12 @@ Overflow \cite{website:pythongrowth} χάρη, κυρίως, στην καθιέ
\subsection
{
Υλοποίηση
}
Το εργαλείο που περιγράφηκε θα προστεθεί στην οθόνη διαχείρισης των αρχείων
ελέγχου κάτω από το ήδη υπάρχον ανέβασμα μεμονωμένου αρχείου, όπως φαίνεται και
στην εικόνα33. Ο διαχειριστής θα ανεβάζει ένα συμπιεσμένο αρχείο (zip) με τα
αρχεία εισόδου και εξόδου που θέλει να προσθέσει στο πρόγραμμα. Στο αρχείο θα
πρέπει, επιπλέον, να υπάρχει και ένα αρχείο με όνομα descriptor.json το οποίο
θα αναλαμβάνει να περιγράψει στο εργαλείο τις προδιαγραφές αρχείων και ομάδων.
ελέγχου κάτω από το ήδη υπάρχον ανέβασμα μεμονωμένου αρχείου. Μετά την προσθήκη
η οθόνη θα έχει τη μορφή της φωτογραφίας 6.1. Ο διαχειριστής θα ανεβάζει ένα
συμπιεσμένο αρχείο (zip) με τα αρχεία εισόδου και εξόδου που θέλει να προσθέσει
στο πρόγραμμα. Στο αρχείο θα πρέπει, επιπλέον, να υπάρχει και ένα αρχείο με
όνομα descriptor.json το οποίο θα αναλαμβάνει να περιγράψει στο εργαλείο τις
προδιαγραφές αρχείων και ομάδων.
\bigskip
...
...
@@ -1506,7 +1505,7 @@ descriptor.json αρχείου.
ερωτήσεις σχετικές με τον αριθμό και τα ονόματα των αρχείων ελέγχου και ομάδων
και έπειτα για κάθε ομάδα σχετικά με το ποια αρχεία περιέχει και τους τύπους
εκτέλεσης τους. Στο τέλος, παράγει το αρχείο που περιγράφηκε. Παρακάτω φαίνεται
η εκτέλεση του συγκεκριμένου script, μαζί με το αρχείο που δημιουργείται
.
μια τυπική εκτέλεση του συγκεκριμένου script
.
\begin{figure}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment