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

Διομήδης Σπινέλλης
Τμήμα Διοικητικής Επιστήμης και Τεχνολογίας
Οικονομικό Πανεπιστήμιο Αθηνών
dds@aueb.gr

Έλεγχος και βελτιστοποίηση της υλοποίησης OpenMIC

Ο μετρική MIC (maximal information coefficient) επιτρέπει την εύρεση μη προκαθορισμένων συσχετίσεων σε σύνολα δεδομένων πολλαπλών διαστάσεων. Η εργασία αυτή στοχεύει στον έλεγχο και τη βελτιστοποίηση μιας υλοποίησης της μετρικής αυτής που είναι διαθέσιμη ως λογισμικό ανοικτού κώδικα. Περισσότερες πληροφορίες σχετικά με τη μετρική αυτή υπάρχουν στην ιστοσελίδα που δημιουργήθηκε από την ομάδα που την ανακάλυψε (http://www.exploredata.net/) καθώς και το αντίστοιχο άρθρο (http://dx.doi.org/10.1126/science.1205438) που δημοσιεύτηκε στο περιοδικό Science.

Ως βάση της εργασίας παρέχεται κώδικας (https://github.com/dspinellis/OpenMIC) που υλοποιεί τους αλγόριθμους που αναφέρονται στο άρθρο, μεταγλωττίζεται, και περνά όλους τους ελέγχους μονάδας, καθώς και η αρχική εφαρμογή (http://www.exploredata.net/Downloads) ως πλαίσιο αναφοράς.

Πράγματα που πρέπει να κάνετε είναι τα παρακάτω.

Βιβλιογραφία

Εργαλεία του Unix στο περιβάλλον Eclipse

Τα εργαλεία που παρέχει μέσω της γραμμής εντολών το λειτουργικό σύστημα Unix (και Linux) είναι εξαιρετικά ισχυρά, αλλά για πολλούς δύσχρηστα. Έτσι αρκετοί προγραμματιστές χρησιμοποιούν ολοκληρωμένα περιβάλλοντα ανάπτυξης, όπως το Eclipse και το Visual Studio, τα οποία παρέχουν εύκολες στη χρήση, αλλά σε πολλούς τομείς περιορισμένες δυνατότητες. Στόχος της εργασίας είναι η ανάπτυξη στο περιβάλλον Eclipse μιας εύχρηστης διεπαφής για την εκτέλεση εργασιών με τα εργαλεία του Unix. Παραδείγματα τέτοιων εργαλείων είναι τα find, grep, sort, uniq, wc, sed, awk, stat, jot, tar, nm, diff, comm, head, tail, fmt, και xargs. Μέσω της διεπαφής αυτής θα μπορούν οι χρήστες να επιλέγουν εργαλεία, να καθορίζουν τις παραμέτρους τους, να τα συνδέουν μεταξύ τους, να τους παρέχουν δεδομένα από το περιβάλλον Eclipse, και να βλέπουν τα παραγόμενα αποτελέσματα.

Βιβλιογραφία

Διαδικτυακή διεπαφή αποσφαλματωτή

Η διεπαφή κειμένου που προσφέρει ο αποσφαλματωτής gdb δεν είναι ιδιαίτερα εύχρηστη. Πολλές λειτουργίες, όπως η τοποθέτηση σημείων διακοπής και η παρακολούθηση ροής του προγράμματος, πραγματοποιούνται με τρόπο που δεν είναι διαισθητικός. Από την άλλη πλευρά οι περισσότερες γραφικές διεπαφές διορθωτών δεν είναι μεταφέρσιμες ανάμεσα σε διαφορετικές πλατφόρμες. Η εργασία περιλαμβάνει το σχεδιασμό και την υλοποίηση μιας διαδικτυακής διεπαφής στον αποσφαλματωτή gdb, αντίστοιχης με αυτή που παρέχεται από την εφαρμογή RStudio (http://rstudio.org/) για το έργο R (http://www.r-project.org/). Η υλοποίηση θα μπορούσε να βασιστεί στη χρήση της υπάρχουσας διεπαφής GDB/MI (machine interface), στη βιβλιοθήκη SWILL και στη τεχνολογία AJAX (asynchronous Javascript and XML). Η βιβλιοθήκη SWILL επιτρέπει την λειτουργία εφαρμογών ως διαδικτυακών εξυπηρετητών. Έτσι, ο προτεινόμενος συνδυασμός παρέχει μια μεταφέρσιμη γραφική διεπαφή μέσω ενός οποιουδήποτε φυλλομετρητή, η οποία μάλιστα έχει ως πρόσθετο πλεονέκτημα να είναι προσβάσιμη από το διαδίκτυο.

Βιβλιογραφία

Το πρόβλημα της διαδοχικής τρωτότητας στις υπηρεσίες του παγκοσμίου ιστού

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

Βιβλιογραφία

Αξιολόγηση του έργου της μετάβασης λογισμικού στο πρότυπο IPv6

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

Στα πλαίσια της εργασία θα εξεταστούν τα παρακάτω δύο στοιχεία:

  1. Το ποσοστό των εφαρμογών που είναι συμβατές με το πρότυπο IPv6.
  2. Το έργο που απαιτήθηκε για την προσαρμογή της κάθε εφαρμογής στο πρότυπο IPv6.

Βιβλιογραφία

Μετρικές ποιότητας λογισμικού κατά τον Christopher Alexander

O αρχιτέκτων Christopher Alexander έχει ορίσει μια σειρά από σχεδιαστικές ιδιότητες που περιστρέφονται γύρω από τον ορισμό κέντρων. Η ικανοποίηση των αντικειμενικών αυτών ιδιοτήτων συνιστά κατά τον Alexander μια έκφραση ποιότητας. Οι ιδιότητες αυτές είναι η κλίμακα σε διάφορα επίπεδα, ένα ισχυρό κέντρο, τα όρια, η εναλλασσόμενη επανάληψη, ο θετικός χώρος, το Καλό σχήμα, η βαθιά αλληλοσύνδεση, η αντίθεση, η κλιμάκωση, η τραχύτητα, η ηχώ, το κενό, η απλότητα και εσωτερική ηρεμία και το ένα με τον κόσμο. Στόχος της εργασίας είναι ο ορισμός και η υλοποίηση μετρικών που θα βρίσκουν χαρακτηριστικά της ποιότητας σύμφωνα με τους ορισμούς του Alexander.

Βιβλιογραφία

Η ροή σκέψης της Wikipedia

H ελεύθερη εγκυκλοπαίδεια Wikipedia (http://www.wikipedia.org) παρέχει στον παγκόσμιο ιστό πάνω από ένα εκατομύριο άρθρα δομημένα σε μορφή πλούσιου υπερκειμένου. Το περιεχόμενο της εγκυκλοπαίδειας είναι διαθέσιμο σε μορφή βάσης δεδομένων.

Στόχος της εργασίας είναι η ανάλυση των ιδιοτήτων της Wikipedia ως γράφου και η αποδοτική δημιουργία οπτικοποίησης των συνδέσμων κάθε λήμματος με τρόπο που να επιτρέπει στο χρήση να πλοηγείται οπτικά ανάμεσα στα λήμματα. Για να είναι χρήσιμη η παράσταση αυτή θα πρέπει να φαίνονται όχι μόνο οι σύνδεσμοι των άμεσα συνδεδεμένων λημμάτων, αλλά και αρκετές επόμενες σειρές. Η οπτικοποίηση θα βοηθά το χρήστη να πλοηγείται προς λήμματα-κόμβους με ικανό αριθμό υπερσυνδέσμων.

Εναλλακτικά, το περιεχόμενο της Wikipedia μπορεί να παρουσιαστεί σε εικαστική μορφή (π.χ. screen saver). Άρθρα που περιέχουν εικόνες καλής ποιότητας συνδέονται μεταξύ τους σε γράφο τον οποίο το πρόγραμμα ακολουθεί, δείχοντας την κάθε εικόνα στην οθόνη του υπολογιστή. Παλαιότερες εικόνες θα μπορούσαν να απομακρύνονται και να μικραίνουν σε μέγεθος, π.χ. κινούμενες σε σχήμα σπείρας προς το κέντρο της οθόνης.

Βιβλιογραφία

Ελέγχος διεπαφών σε προγράμματα Java

Σύγχρονα προγράμματα όλο και συχνότερα υλοποιούν τη λειτουργικότητά τους μέσω διεπαφών έτοιμων κλάσεων. Ο μεγάλος αριθμός των έτοιμων κλάσεων έχει ως αποτέλεσμα προγράμματα στατικού ελέγχου του κώδικα να χρειάζονται εξειδικευμένο κώδικα για να βρουν λάθη στις κλήσεις των μεθόδων τους. Για το λόγο αυτό προτείνουμε ο έλεγχος διεπαφών να αποτελεί τμήμα της διεπαφής και όχι του προγράμματος στατικού ελέγχου. Η δυνατότητα αυτή έχει ήδη υλοποιηθεί (http://www.dmst.aueb.gr/dds/sw/api-verify/) (Spinellis and Louridas) στο πρόγραμμα FindBugs (http://findbugs.sourceforge.net/) (Hovemeyer and Pugh, 2004). Η εργασία έχει ως στόχο να προσθέσει ελέγχους σε σημαντικές κλάσεις της Java και να μετρήσει την αποτελεσματικότητα της μεθόδου με την εφαρμογή της σε μεγάλες βάσεις ανοικτού κώδικα.

Βιβλιογραφία

Επεκτάσεις UML στο περιβάλλον AT&T Graphviz

Το περιβάλλον Graphviz της AT&T επιτρέπει το δηλωτικό καθορισμό γραφημάτων χωρίς τη χρήση γραφικού περιβάλλοντος. Με τον τρόπο αυτό τα γραφήματα μπορούν εύκολα να παραχθούν αυτόματα από άλλα εργαλεία, να ελεχθούν ως προς τις αλλαγές και τις διαμορφώσεις τους, να επαναχρησιμοποιηθούν και να τεκμηριωθούν. Για παράδειγμα η περιγραφή αριστερά δημιουργεί αυτόματα το διάγραμμα που εμφανίζεται δεξιά:
digraph G {
	main->usage;
	main->fprintf;
	main->exit;
	usage->fprintf;
	usage->exit;
}
Δύο ξεχωριστά εργαλεία, το dot και το neato επιτρέπουν το σχεδιασμό κατευθυνόμενων ή μη γράφων. Το περιβάλλον Graphviz είναι διαθέσιμο από το Internet σε μορφή ανοικτού κώδικα.

Το σύστημα UMLGraph (http://www.umlgraph.org) επιτρέπει το σχεδιασμό διαγραμμάτων κλάσεων και ακολουθίας με δηλωτικό τρόπο. Στόχος της εργασίας αυτής είναι η προσθήκη στο περιβάλλον Graphviz πρόσθετων εντολών για το σχεδιασμό και άλλων γραφημάτων UML. Μερικά διαγράμματα που θα μπορούσαν να υποστηρίζονται είναι:

Βιβλιογραφία

Υποστήριξη scalable vector graphics στη σουίτα Outwit

Η σουίτα εργαλείων Outwit επιτρέπει την αλληλεπίδραση εργαλείων του Unix στο περιβάλλον των Windows. Περιέχει εργαλεία για πρόσβαση στο πρόχειρο (clipboard), στο registry, της ιδιότητες εγγράφων και σε σχεσιακές βάσεις δεδομένων. Στόχος της εργασίας αυτής είναι η προσθήκη στο πρόγραμμα πρόσβασης στο πρόχειρο (winclip) της δυνατότητας αντιγραφής και επικόλλησης διανυσματικών γραφημάτων με τη μορφή Windows Metafile και Scalable Vector Graphics αντίστοιχα.

Βιβλιογραφία

Έλεγχος λαθών σε λογιστικά φύλλα

Σύμφωνα με στοιχεία ερευνών 21-80% των λογιστικών φύλλων και 1-5% των κελιών τους περιέχουν λάθη. Η εργασία αυτή αρχικά θα διερευνήσει με εμπειρικό τρόπο (ερωτηματολόγια) συχνά λάθη που εμφανίζονται σε λογιστικά φύλλα. Στη συνέχεια θα προταθούν ευρηστικές μέθοδοι και αλγόριθμοι για τον εντοπισμό των λαθών. Με βάση τις μεθόδους αυτές θα υλοποιηθεί εργαλείο εντοπισμού λαθών με βάση τη γλώσσα ενός προγράμματος λογιστικών φύλλων (π.χ. Excel Basic).

Βιβλιογραφία

Μαθηματικοί υπολογισμοί σε δηλωτικά συστήματα διαμόρφωσης κειμένου

Δηλωτικά συστήματα διαμόρφωσης κειμένου (SGML, TeX, troff) παρέχουν ευέλικτες και εξελίξιμες πλατφόρμες για τη συγγραφή επιστημονικών και τεχνικών κειμένων. Ένα στοιχείο που απουσιάζει από τα συστήματα αυτά είναι η δυνατότητα δηλωτικής εισαγωγής παραμετρικών μαθηματικών υπολογισμών. Η δυνατότητα αυτή η οποία παρέχεται από τους σύγχρονους επεξεργαστές κειμένου μέσω της εισαγωγής λογιστικών φύλλων (MS-Word / Excel) μπορεί να υποστηριχτεί με τον ορισμό κατάλληλης γλώσσας και την υλοποίηση ενός ανάλογου προ-επεξεργαστή.

Βιβλιογραφία

Εργαλειοθήκη βελτιστοποίησης

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

Βιβλιογραφία

Ασφαλής και διαφανής βελτιστοποίηση σκληρού δίσκου

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

Βιβλιογραφία