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
5d96d96a
Commit
5d96d96a
authored
Mar 05, 2018
by
Antonios Angelakis
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Write chapter 7
parent
40534f86
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
97 additions
and
23 deletions
+97
-23
test.tex
test.tex
+97
-23
No files found.
test.tex
View file @
5d96d96a
...
...
@@ -1200,22 +1200,96 @@ interactive script σε Python για την αυτόματη παραγωγή
\section
{
Καταληκτικές Παρατηρήσεις
}
- συνοψη αναφεροντας ξανα λιγα πραγματα για καθε κεφαάλαιο
- παρουσιαση οπενσορς, παρουσα κατασταση που μπορει να ναι και ντοκιουμεντεησιον
για οποιον ασχοληθει, φιτσουρς
Στη συγκεκριμένη εργασία έγινε μια προσπάθεια βελτίωσης του συστήματος
αυτόματος αξιολόγησης Grader και προσθήκης δυνατοτήτων που θα το καταστήσουν
πιο ευέλικτο και εύκολο στη χρήση του. Για να επιτευχθεί αυτό, διερευνήθηκε ο
τρόπος λειτουργίας του όπως και ο τρόπος λειτουργίας άλλων παρόμοιων
συστημάτων. Για τις τροποποιήσεις και τις προσθήκες που υλοποιήθηκαν, έγινε
προσπάθεια να χρησιμοποιηθούν σωστές σχεδιαστικές επιλογές με έμφαση στη
βελτίωση της ποιότητας του κώδικα, στην μετέπειτα ευκολία συντήρησης και
επέκτασης του.
- αλλαγες, βελτιωση ευκολιας χρησης και προσθετες δυνατοτητες
\bigskip
Στο Κεφάλαιο 2, παρουσιάστηκαν συστήματα αυτόματης αξιολόγησης ανοιχτού λογισμικού
που προσφέρονται για τη διενέργεια διαγωνισμών και λειτουργούν με παρόμοιο τρόπο
με το Grader. Αναλύθηκε η σχεδίαση τους, τα σενάρια χρήσης τους και οι διαφορές
τους με το δικό μας σύστημα.
\bigskip
Στο κεφάλαιο 3, είδαμε τον τρόπο λειτουργίας του Grader και του Kewii, της
εφαρμογής που τρέχει στον εξυπηρετητή και αναλαμβάνει την εκτέλεση των
υποβληθέντων προγραμμάτων. Αναλύθηκε η αρχιτεκτονική και ο τρόπος επικοινωνίας
μεταξύ τους. Αναφέρθηκαν, ακόμα, όλα τα συστατικά στοιχεία του συστήματος, οι
σχέσεις τους και κατά πόσο εμπλέκονται με Kewii και Grader. Το συγκεκριμένο
κεφάλαιο έχει σκοπό να λειτουργήσει στο μέλλον σαν έγγραφο αναφοράς για όποιον
επιθυμεί να επεκτείνει το σύστημα, βοηθώντας τον να αντιληφθεί γρηγορότερα τον
σχεδιασμό του.
\bigskip
\section
{
Μελλοντική Έρευνα
}
Στα κεφάλαια 4,5 και 6, αναλύθηκαν οι σημαντικότερες αλλαγές που έγιναν κατά τη
διάρκεια της παρούσας εργασίας. Αυτές συμπεριλάμβαναν τη δημιουργία μιας νέας
έννοιας για το σύστημα, αυτής των ομάδων αρχείων ελέγχου, και ως αποτέλεσμα την
επέκταση ολόκληρου του συστήματος για την υποστήριξη του, την αλλαγή της
αρχιτεκτονικής προβλημάτων, διαγωνισμών και υποβολών προς διευκόλυνση της
λειτουργίας του Grader και ένα σύνολο άλλων, μικρότερης σημασίας, προσθηκών.
Κατά τη διαδικασία υλοποίησης κάθε τροποποίησης έγινε προσπάθεια βελτίωσης της
εκάστοτε διαμόρφωσης με αναδιαμόρφωση κλάσεων μεθόδων και δομών δεδομένων ώστε
ο κώδικας να είναι περισσότερο κατανοητός και διαχειρίσιμος από τους μελλοντικούς
συντηρητές του. Επίσης, καταγράφηκε η διαδικασία εγκατάστασης της συνολικής
εφαρμογής του σε ένα καινούριο σύστημα ώστε να είναι εύκολο να μετεγκατασταθεί
στο μέλλον ή να δημιουργηθεί περιβάλλον δοκιμών. (TODO: πρώτη φορά τα αναφέρω αυτά!)
\section
{
Μελλοντική Εργασία
}
Υπάρχουν πολλές προσθήκες που θα μπορούσαν να γίνουν σε Grader και Kewii για τη
βελτιστοποίηση τους. Όσον αφορά στον πρώτο, θα μπορούσε να προστεθεί η δυνατότητα
επισκόπησης και σχολιασμού υποβληθέντων λύσεων (code reviews) όπου οι διαχειριστές
ή υπεύθυνοι για τους διαγωνισμούς θα μπορούσαν να σχολιάζουν τις λύσεις των
διαγωνιζόμενων και εκεί να γίνεται συζήτηση μεταξύ τους για τυχόν βελτιστοποιήσεις
ή σφάλματα.
- μεταφορα σε framework
\bigskip
Επιπροσθέτως, θα ήταν αρκετά θετικό αν μπορούσε να διενεργηθεί ένας επανασχεδιασμός
της διαδικτυακής εφαρμογής σύμφωνα με μια αρχιτεκτονική MVC ή παρόμοια με χρήση
κάποιου σύγχρονου πλαισίου (framework) ώστε να γίνει άμεσα πιο κατανοητός ο
διαχωρισμός παρουσίασης και υλοποίησης της λογικής της αξιολόγησης και των
υπόλοιπων λειτουργιών. Κάτι τέτοιο θα είχε ως προϋπόθεση πλήρη κατανόηση του Grader
και του συνόλου των μερών του, αλλά θα επιβράβευε άμεσα όσους θα ήταν υπεύθυνοι για
την περαιτέρω ανάπτυξη του.
- security enchancements
\bigskip
- προσθηκη code reviews
Μελλοντικά, θα μπορούσε να υπάρξει βελτίωση και του Kewii σε αρκετά θέματα.
Αρχικά, όπως έχει αναφερθεί και στο κεφάλαιο 6.1.2 για την Python, οι
διαγωνιζόμενοι θα επωφελούνταν στην περίπτωση προσθήκης ενός μηχανισμού για
ανάλυση του πηγαίου κώδικα των υποβολών τους, καθώς δεν εκτελείται μεταγλώττιση
και όλα τα σφάλματα είναι κατά την εκτέλεση. Ένα εργαλείο που θα μπορούσε να
χρησιμοποιηθεί για το συγκεκριμένο σκοπό είναι το pylint (TODO:
https://www.pylint.org/). Το συγκεκριμένο πρόγραμμα, έχει τη δυνατότητα τόσο να
εντοπίζει σφάλματα πριν την εκτέλεση, όσο και να ελέγχει την ποιότητα του
κώδικα σύμφωνα με συγκεκριμένα στάνταρ όπως είναι π.χ. το PEP-8 (TODO: link).
- pylint PEP-8
\bigskip
Άλλο ένα θέμα που επιδέχεται βελτίωση είναι η ασφάλεια εκτέλεσης του Kewii.
Προφανώς, είναι αρκετά δύσκολο να επιτυγχάνεται η απόλυτη ασφάλεια όταν εξ ορισμού
εκτελείται άγνωστος κώδικας σε έναν εξυπηρετητή. Παρόλα αυτά, μπορεί να υλοποιηθεί
ένα πιο αποκλεισμένο (sandboxed) περιβάλλον, πιθανόν με τη χρήση ενός εικονικού
μηχανήματος που να έχει ως στόχο τον αποκλεισμό των εκτελούμενων προγραμμάτων ή
με χρήση ειδικευμένου λογισμικού ως container, π.χ. Docker (TODO: link).
\bigskip
Τέλος, θα ήταν ωφέλιμο για την απόδοση του Kewii να υλοποιηθεί μια παραλληλοποίηση
των εκτελέσεων πολλαπλών υποβολών ταυτόχρονα, που θα μείωνε σε μεγάλο βαθμό το
χρόνο εκτέλεσης, εάν χρησιμοποιούνταν με χρήση συστάδας εικονικών ή φυσικών
μηχανημάτων. Η συγκεκριμένη υλοποίηση έχει ήδη γίνει στο (TODO: τσιαμητρος) και
είναι συμβατή με το σύστημα μας. Μένει να διερευνηθούν οι λεπτομέρειες της
προσθήκης και να διεξαχθεί αξιολόγηση της λειτουργίας.
%%% Bibliography
\bibliographystyle
{
softlab-thesis
}
...
...
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