Προτεινόμενα θέματα εκπόνησης εργασίας 2016-2017

Αποδοτική παράσταση επιστημονικών γενεαλογικών δένδρων

Τα επιστημονικά γενεαλογικά δένδρα, όπως αυτό, έχουν δυο χαρακτηριστικά που επιτρέπουν την εμφάνισή τους με ιδιαίτερα αποδοτικό τρόπο από άποψη χώρου που καταλαμβάνεται στην εικόνα.

Στόχος της εργασίας είναι η υλοποίηση ενός εργαλείου στο σύστημα Graphviz (αντίστοιχου με το dot ή το fdp) που θα επιτρέπει την αποδοτική παράσταση τέτοιων γράφων εκμεταλλευόμενο τα ειδικά τους χαρακτηριστικά. Για το σκοπό αυτό το εργαλείο θα χρησιμοποιεί όσο αποδοτικότερα γίνεται τα κενά που αφήνονται σήμερα από το εργαλείο dot σε κάθε γενεά, κρατώντας όμως στις συνδέσεις του γράφου μία κατεύθυνση στην οποία δεν θα υπάρχουν αντίστροφες συνδέσεις (από αριστερά προς τα δεξιά στο συγκεκριμένο παράδειγμα).

Η σχέση ηλικίας, εμπειρίας και πρακτικών προγραμματισμού

Στόχος της εργασίας είναι η συσχέτιση πρακτικών προγραμματισμού (π.χ. μήκος ονομάτων, βάθος εμφώλευσης, μέγεθος συναρτήσεων) με την ηλικία και την εμπειρία του προγραμματιστή.

Για το σκοπό αυτό θα αντληθούν αλλαγές που έχουν πραγματοποιηθεί στο λειτουργικό σύστημα FreeBSD από προγραμματιστές των οποίων η ηλικία είναι γνωστή μέσω του αρχείου calendar.freebsd. Αντίστοιχα, η εμπειρία μπορεί να προσδιοριστεί από τον αριθμό των ετών κατά τα οποία συνεισφέρεται κώδικας.

Μοντέλο επαναχρησιμοποίησης πακέτων λογισμικού

Στόχος της εργασίας είναι η δημιουργία ενός μοντέλου των παραγόντων που επηρεάζουν την επαναχρησιμοποίηση λογισμικού. Αυτοί μπορεί να είναι οι παρακάτω:

Η παρακολούθηση των παραπάνω σε βάθος χρόνου μπορεί να επιτρέψει την εξαγωγή συμπερασμάτων αιτίου-αποτελέσματος.

Σύστημα αρχείων για αποθήκευση δεδομένων σε στήλες

Στόχος της εργασίας είναι η υλοποίηση ενός απλού συστήματος αρχείων (file system) στο λειτουργικό σύστημα Linux ή FreeBSD που να επιτρέπει μόνο τη φύλαξη και ανάκτηση στοιχείων με τη μορφή κλειδί-δεδομένα. Το κλειδί είναι το όνομα του αρχείου και τα δεδομένα το περιεχόμενό του. Το σύστημα δεν θα υποστηρίζει δενδρική δομή αρχείων και άλλα σύνθετα χαρακτηριστικά. Έτσι, μια αποδοτική υλοποίηση αυτού του συστήματος μπορεί να είναι ταχύτερη τόσο σε σχέση με υπάρχοντα συστήματα αρχείων, όσο και με αντίστοιχες βάσεις δεδομένων.

Στοχαστική βελτιστοποίηση διεπαφής CAD

Ένα συγκεκριμένο λογισμικό CAD για αρχιτέκτονες και πολιτικούς μηχανικούς έχει κατηγοριοποιημένες τις εντολές και τις παραμέτρους ανά οντότητα και τύπο. Στόχος της εργασίας είναι η ανάπτυξη τεχνικής για τη βελτιστοποίηση της κατηγοριοποίησης. Για το σκοπό αυτό θα πρέπει πρώτα να γίνει βιβλιογραφική επισκόπηση του χώρου. Στη συνέχεια πρέπει να κατασκευαστεί μοντέλο κόστους για την εκτέλεση των εντολών και την αλλαγή των παραμέτρων του υπάρχοντος προγράμματος. Τέλος, εφαρμόζοντας αλγορίθμους στοχαστικής βελτιστοποίησης πάνω στο υπάρχον μοντέλο κόστους και το ιστορικό πέντε εκατομμυρίων εντολών που δόθηκαν σε 56 χιλιάδες πραγματικές εκτελέσεις του προγράμματος, πρέπει να δημιουργηθεί και να αξιολογηθεί ένα νέο προτεινόμενο μοντέλο διάταξης των εντολών και να διατυπωθούν συμπεράσματα σχετικά με τη μέθοδο που ακολουθήθηκε και τα αποτελέσματά της.

Αυτόματη ανίχνευση οσμών εκτέλεσης κώδικα

Η εργασία περιλαμβάνει την ανάλυση δεδομένων αρχείων που παράγονται από την παρακολούθηση κλήσεων κατά την εκτέλεση προγραμμάτων με στόχο την εύρεση προβληματικών πρακτικών προγραμματισμού. Παραδείγματα τέτοιων πρακτικών είναι

Το τελικό αποτέλεσμα είναι συστάσεις για τη βελτίωση της ποιότητας του αντίστοιχου λογισμικού.

Εύρεση μη δηλωμένων εξαρτήσεων σε συστήματα διαμόρφωσης υπολογιστών

Λογισμικό που επιτρέπει την αυτόματη διαμόρφωση υπολογιστών, όπως το Puppet, απαιτεί κάθε στοιχείο διαμόρφωσης (π.χ. η προσθήκη ενός αρχείου) να περιλαμβάνει τα προαπαιτούμενα (π.χ. την εγκατάσταση του αντίστοιχου λογισμικού). Σκοπός της εργασίας είναι η ανάλυση γράφων που προέρχονται από αρχεία καταγραφής της λειτουργίας τέτοιων συστημάτων για την εύρεση εξαρτήσεων που ενώ απαιτούνται, δεν έχουν στην πραγματικότητα δηλωθεί. Συνεπώς, το προτεινόμενο σύστημα θα προτείνει την προσθήκη των αντίστοιχων εξαρτήσεων, έτσι ώστε να αποφευχθεί το ενδεχόμενο αστοχίας της διαμόρφωσης.

Το μοντέλο ανάπτυξης της Wikipedia

H ελεύθερη εγκυκλοπαίδεια Wikipedia παρέχει στον παγκόσμιο ιστό πάνω από εκατομμύρια άρθρα δομημένα σε μορφή πλούσιου υπερκειμένου. Το περιεχόμενο της εγκυκλοπαίδειας, η ιστορία των άρθρων, καθώς και τα στοιχεία πρόσβασης σ' αυτά είναι διαθέσιμα σε δομημένα αρχεία καθώς και μέσω του Google BigQuery.

Στόχος της εργασίας είναι η δημιουργία ενός πλήρους μοντέλου ανάπτυξης της Wikipedia που θα λαμβάνει υπόψη του παράγοντες σαν:

Οσμές ποιότητας σε αρχεία Word/Excel/Powerpoint

Οι οσμές ποιότητας (quality smells) μπορούν να χρησιμοποιηθούν για να ανιχνεύσουν κακή ποιότητα σε ένα ψηφιακό έγγραφο. Για παράδειγμα σε αρχεία Word μπορεί να είναι η απουσία χρήσης προτύπων (styles), σε αρχεία Excel η μη χρήση ονομάτων και σε αρχεία Powerpoint η μορφοποίηση χωρίς τη χρήση πρότυπων διαφανειών (master slides). Η εργασία

Εξέλιξη της ασφάλειας στον πηγαίο κώδικα του Unix

Με βάση ένα αποθετήριο που καλύπτει 45 χρόνια της εξέλιξης του πηγαίου κώδικα του λειτουργικού συστήματος Unix η εργασία θα ερευνήσει πώς εξελίσσονται πιθανές ευπάθειες του κώδικα που θα μπορούσαν να οδηγήσουν σε κενά ασφάλειας. Η ανίχνευση των ευπαθειών θα γίνει με τη χρήση σχετικών εργαλείων στατικής ανάλυσης κώδικα, όπως του Flawfinder.

Αλλαγές στις ώρες εργασίας με βάση εμπειρικά δεδομένα από ψηφιακά αποθετήρια

Η εργασία έχει ως στόχο την εύρεση ψηφιακών αποθετηρίων από τα οποία μπορούν να αντληθούν εμπειρικά δεδομένα σε σχέση με αλλαγές στις ώρες εργασίας (π.χ. ωράριο, εργασία τα σαββατοκύριακα) σε διάστημα δεκαετιών. Παράδειγμα αποτελεί αποθετήριο που καλύπτει 45 χρόνια της εξέλιξης του πηγαίου κώδικα του λειτουργικού Unix και αντίστοιχο για το Linux.

Γραφική διεπαφή για εντολές του Unix

Οι εντολές που προσφέρονται στη γραμμή εντολών του Unix είναι εξαιρετικά ισχυρές. Όμως η διαμόρφωσή τους με παραμέτρους είναι δύσκολη και απαιτεί συχνές αναφορές στην τεκμηρίωσή τους, διότι είναι δύσκολο κανείς να θυμάται τις διαθέσιμες παραμέτρους και τα ονόματά τους.

Στόχος της εργασίας είναι η δημιουργία μιας γραφικής διεπαφής για τη διαμόρφωση των παραμέτρων της κάθε εντολής. Αυτή θα εμφανίζει κατάλληλα ομαδοποιημένες και τεκμηριωμένες τις διαθέσιμες παραμέτρους, επιτρέποντας στο χρήστη να επιλέξει αυτές που χρειάζεται. Με βάση τις επιλογές του χρήστη, η διεπαφή θα σχηματίζει δυναμικά την εντολή με τη μορφή που πρέπει να εκτελεστεί.

Η γραφική διεπαφή θα διαμορφώνεται για κάθε εντολή βάσει ενός αρχείου διαμόρφωσης γραμμένου σε μια απλή γλώσσα εξειδικευμένου πεδίου (domain specific language) που θα περιγράφει ποιες είναι οι διαθέσιμες παράμετροι, τι κάνει η κάθε μία και πώς μπορούν να συνδυαστούν. Η αρχική μορφή του αρχείου αυτού θα μπορεί να δημιουργείται από τον πηγαίο κώδικα της εντολής και της τεκμηρίωσής της.