Καταργημένα θέματα ερευνητικών εργασιών 1996-2016

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

Αποθετήριο εργασιών του ΟΠΑ (καταργήθηκε 2016)

Στόχος της εργασίας είναι ο σχεδιασμός και η υλοποίηση ενός αποθετηρίου εργασιών και τεχνικών αναφορών (working papers, technical reports) για το ΟΠΑ. Περιλαμβάνει: Το σύστημα θα χρησιμοποιεί διεπαφές RADIUS του ΟΠΑ για την αυθεντικοποίηση των χρηστών και EPIC (http://epic.grnet.gr/guides/overview/) του ΕΔΕΤ για τη δημιουργία αναγνωριστικών DOI.

Εργαλεία του Unix στο περιβάλλον Eclipse (καταργήθηκε 2016)

Τα εργαλεία που παρέχει μέσω της γραμμής εντολών το λειτουργικό σύστημα 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, και να βλέπουν τα παραγόμενα αποτελέσματα.

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

Διαδικτυακή διεπαφή αποσφαλματωτή (καταργήθηκε 2016)

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

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

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

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

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

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

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

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

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

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

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

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

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

Η ροή σκέψης της Wikipedia (καταργήθηκε 2016)

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

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

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

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

Ελέγχος διεπαφών σε προγράμματα Java (καταργήθηκε 2016)

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

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

Επεκτάσεις UML στο περιβάλλον AT&T Graphviz (καταργήθηκε 2016)

Το περιβάλλον 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 (καταργήθηκε 2016)

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

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

Έλεγχος λαθών σε λογιστικά φύλλα (καταργήθηκε 2016)

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

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

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

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

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

Υλοποίηση του Μηχανισμού των Αντικυθήρων σε τρεις διαστάσεις (καταργήθηκε 2014)

O Μηχανισμός των Αντικυθήρων (http://el.wikipedia.org/wiki/%CE%9C%CE%B7%CF%87%CE%B1%CE%BD%CE%B9%CF%83%CE%BC%CF%8C%CF%82_%CF%84%CF%89%CE%BD_%CE%91%CE%BD%CF%84%CE%B9%CE%BA%CF%85%CE%B8%CE%AE%CF%81%CF%89%CE%BD) είναι ένας αρχαίος μηχανικός υπολογιστής αστρονομικών φαινομένων. Στόχος της εργασίας είναι η αυτοματοποιημένη κατασκευή ενός πλήρως λειτουργικού ιδεατού ψηφιακού αντιγράφου του υπολογιστή σε τρεις διαστάσεις. Ιδέες για τον τρόπο υλοποίησης μπορούν να αντληθούν από την υπάρχουσα προσομοίωση του υπολογιστή σε δύο διαστάσεις ( http://www.spinellis.gr/sw/ameso/index.el.html) στο περιβάλλον Squeak EToys. Παραδοτέο της εργασίας είναι αρχείο στερεολιθογραφίας μορφότυπου STL (https://en.wikipedia.org/wiki/STL_%28file_format%29) για την κατασκευή των γραναζιών καθώς και οδηγίες συναρμολόγησής τους σε τρεις διαστάσεις. Η τοποθέτηση των γραναζιών πρέπει να ακολουθεί όσο το δυνατόν τον αρχαίο μηχανισμό. Ο σχεδιασμός των γραναζιών και οι οδηγίες συναρμολόγησης θα πρέπει να υλοποιηθούν αυτόματα από λογισμικό που θα γραφεί για το σκοπό αυτό.

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

Έλεγχος και βελτιστοποίηση της υλοποίησης OpenMIC (καταργήθηκε 2013)

Ο μετρική 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) ως πλαίσιο αναφοράς.

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

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

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

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

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

Μαθηματικοί υπολογισμοί σε δηλωτικά συστήματα διαμόρφωσης κειμένου (καταργήθηκε 2012· βλ. SWeave)

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

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

Επεκτάσεις τις γλώσσας D (καταργήθηκε 2011)

Το Dtrace είναι ένα πολύ δυνατό εργαλείο ανάλυσης της απόδοσης συστημάτων. Βασίζεται σε μια γλώσσα προγραμματισμού ειδικού πεδίου (D), την οποία και ο χρήστης χρησιμοποιεί για να εισάγει μετρητές απόδοσης στον κώδικα του προγράμματος προς αξιολόγηση. Η γλώσσα D δανείζεται στοιχεία από το συντακτικό της γλώσσας C αλλά η εκτέλεσή της βασίζεται στη λογική της αναγνώρισης προτύπων (pattern matching). Αν και δίνει στο χρήστη μεγάλη ελευθερία σχετικά με τον καθορισμό σημείων μέτρησης, είναι περιοριστική αναφορικά με τις δυνατότητες επεξεργασίας των συλλεγόμενων δεδομένων και της μορφοποίησης της εξόδου των προγραμμάτων. Αυτό έχει ως αποτέλεσμα τα ποιο εξελιγμένα προγράμματα σε γλώσσα D να αποτελούνται σε μεγάλο βαθμό από κώδικα κάποιας άλλης γλώσσας, για παράδειγμα Perl ή Python.

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

Ο κώδικας του Dtrace είναι ελεύθερα διαθέσιμος.

Πηγές

Εξωτερική πρόσβαση σε δομές δεδομένων STL (καταργήθηκε 2011)

Στόχος της εργασίας είναι η δημιουργία μιας ενδιάμεσης επαφής που θα επιτρέπει την εύκολη σύνδεση των δομών δεδομένων που παρέχει η βιβλιοθήκη STL της C++ (vector, deque, list, set, map) στους τελικούς χρήστες του προγράμματος. Αυτό μπορεί να επιτευχθεί με τρεις τρόπους: Με τον τρόπο αυτό θα μπορεί κανείς εύκολα να προσθέσει τη δυνατότητα χρήσης εντολών SQL, του φλοιού του Unix, ή XML πάνω στις δομές δεδομένων ενός προγράμματος.

Η σχεσιακή βάση δεδομένων SQLite μπορεί εύκολα να ενσωματωθεί ως βιβλιοθήκη σε προγράμματα γραμμένα σε C ή C++. Επιπλέον η SQLite παρέχει μια διεπαφή ιδεατών πινάκων (http://www.sqlite.org/cvstrac/wiki?p=VirtualTableMethods) μέσω της οποίας μπορούμε να αντιστοιχίσουμε δικές μας πηγές δεδομένων σε πίνακες SQL.

Παράδειγμα κώδικα

class Employee : public SqlValueInterface {
private:
	int id;
	string givenName;
	string familyName;
	int salary;
};

main()
{
	vector <Employee> e;

	sql_register_vector("Employees", e);
	fuse_register_vector("Employees", e);
	xml_register_vector("Employees", e);
}

Παράδειγμα χρήσης

Μέσω SQL

SELECT MIN(salary), AVG(salary), MAX(salary) FROM Employees;
SELECT * FROM Employees ORDER BY familyName;

Ως αρχείο κειμένου

awk '
{ sum += $4; count++ }
END { print "Average salary is ", sum / count }
' /tmp/fuse/Employees

Σημείωση

Το τμήμα του έργου που αφορά τη σύνδεση με τη σχεσιακή βάση δεδομένων μπορεί να υλοποιηθεί και σε Java με τη χρήση της HSQLB και των κλάσεων που υλοποιούν περιέκτες του πακέτου java.util.

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

Εντοπισμός θέσης με τη χρήση κυψελών κινητής τηλεφωνίας (καταργήθηκε 2011)

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

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

Η παρακάτω εικόνα δείχνει τμήμα μιας καταγεγραμμένης διαδρομής κατά μήκος της λεωφόρου Κηφισιάς και της Αττικής οδού καθώς και τις αντίστοιχες αλλαγές κυψελών.
Google Earth GSM Cell changes

Έρευνα υιοθέτησης λογισμικού ανοικτού κώδικα (καταργήθηκε 2011)

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

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

Οπτικοποίηση και ανάλυση δυναμικών χρήσης εργαλείων ελέγχου εκδόσεων λογισμικού (καταργήθηκε 2008)

Τα συστήματα ελέγχου εκδόσεως λογισμικού κρατούν λεπτομερή στοιχεία για όλες τις αλλαγές που γίνονται στο λογισμικό κατά τη διάρκεια της ανάπτυξής του. Η post mortem ανάλυση των αλλαγών που έγιναν σε ένα μεγάλο σώμα λογισμικού σε μακρύ χρονικό διάστημα και από περισσότερα άτομα μπορεί να προσδιορίσει ενδιαφέροντα στοιχεία για το λογισμικό και την ομάδα που το ανέπτυξε όπως: Τα παραπάνω μπορούν να διερευνηθούν σε επίπεδο αρχείου ή, με λίγη πρόσθετη ανάλυση, σε επίπεδο διαδικασίας ή συνάρτησης.

Υλοποίηση

Η εργασία αυτή δεν προσφέρεται πλέον, μια και έχει υλοποιηθεί παρόμοια λειτουργικότητα στο έργο code_swarm (http://vis.cs.ucdavis.edu/~ogawa/codeswarm/).

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

Εκτέλεση κρυπτογραφημένου λογισμικού σε έξυπνες κάρτες (καταργήθηκε 2007)

Οι έξυπνες κάρτες (http://en.wikipedia.org/wiki/Smartcard) επιτρέπουν την εκτέλεση λογισμικού σε περιβάλλον που δυσκολεύει σημαντικά την πρόσβαση σε μη εξουσιοδοτημένους τρίτους. Σύγχρονες έξυπνες κάρτες επιτρέπουν την εκτέλεση προγραμμάτων γραμμένων σε Java (http://www.gemplus.com/products/gemxpresso_pro_range/). Στόχος της εργασίας είναι η προσαρμογή προγραμμάτων Java που εκτελούνται σε έναν προσωπικό υπολογιστή έτσι ώστε μέρος τους να εκτελείται κρυπτογραφημένα στο περιβάλλον της έξυπνης κάρτας. Σημασία στο εγχείρημα αυτό έχουν η αυτοματοποίηση της διαδικασίας, η ασφάλεια και η απόδοση.

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

Μετατροπή της Wikipedia σε βάση γνώσης (καταργήθηκε 2007)

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

Στόχος της εργασίας είναι η εξόρυξη από τα άρθρα της Wikipedia, κανόνων γνώσης, λ.χ. πως ο Περικλής (http://en.wikipedia.org/wiki/Pericles) ήταν στρατηγός που έζησε από το 495 έως το 429 π.Χ. Οι κανόνες μπορούν να εκφραστούν εύκολα ως κατηγορήματα της γλώσσας Prolog, για παράδειγμα:

military_person('Pericles');
military_rank('Pericles', 'General');
birth_year('Pericles', -495);
death_year('Pericles', -429);
Η εξόρυξη της γνώσης θα γίνει αυτόματα. Για το σκοπό αυτό θα δημιουργηθεί ένα πλαίσιο για την περιγραφή της μετατροπής προτύπων (templates) της Wikipedia σε κανόνες Prolog.

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

Εύρεση τέλειας συνάρτησης κατακερματισμού με τη χρήση στοχαστικού αλγόριθμου (καταργήθηκε 2007)

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

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

Έλεγχος τύπων μεταξύ αρχείων της C (καταργήθηκε 2007)

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

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

Χρονική ανασκόπηση πρακτικών γραφής πηγαίου κώδικα (καταργήθηκε 2007)

Η ύπαρξη μεγάλων συλλογών ανοιχτού πηγαίου κώδικα επιτρέπει την εύκολη συγκριτική έρευνα μετρικών και χαρακτηριστικών του. Η εργασία αυτή θα ερευνήσει τη μεταβολή μετρικών που επηρεάζουν την αναγνωσιμώτητα του κώδικα με βάση το χρόνο και άρα την εξέλιξη της τεχνολογίας. Μερικές τέτοιες μετρικές μπορεί να είναι: Ως βάση για τη μελέτη θα μπορούσε να χρησιμοποιηθούν υλοποιήσεις του λειτουργικού συστήματος Unix, από αυτές της περιόδου 1973-1979 (http://minnie.tuhs.org/UnixTree/) μέχρι σύγχρονες εκδόσεις Linux, FreeBSD και Minix.

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

Μετρητής κατανομής χρόνου για διερμηνευόμενα προγράμματα (καταργήθηκε 2007)

Η απόδοση προγραμμάτων γραμμένων σε διερμηνευόμενες γλώσσες όπως Perl, Ruby, PHP, Python, καθώς και στη γλώσσα του φλοιού του λειτουργικού συστήματος Unix (shell scripts) δεν είναι σήμερα εύκολο να αναλυθεί και, κατά συνέπεια, να βελτιστοποιηθεί. Με βάση την υπόθεση πως ο χρόνος των προγραμμάτων που γράφονται στις παραπάνω γλώσσες δεν αναλίσκεται στην εκτέλεση κώδικα γραμμένου στην αντίστοιχη γλώσσα αλλά σε κλήσεις του λειτουργικού συστήματος, μπορούμε να διαχωρίσουμε και να αναλύσουμε τις κλήσεις αυτές ανά διεργασία και ανά πόρο (λ.χ. αρχείο, δικτυακή σύνδεση), εξάγοντας έτσι πολύτιμα συμπεράσματα.

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

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

Η χρήση μη τεκμηριωμένων εντολών των Windows (καταργήθηκε 2007)

Η Microsoft έχει συχνά κατηγορηθεί ότι χρησιμοποιεί αθέμιτα τις γνώσεις της στον τομέα των λειτουργικών συστημάτων τα οποία η ίδια δημιουργεί για να επιτύχει δεσπόζουσα θέση και στον τομέα των εφαρμογών. Στοιχεία το οποίο θα μπορούσε να τεκμηριώσει την άποψη αυτή θα ήταν η χρήση μη τεκμηριωμένων κλήσεων του λειτουργικού συστήματος από εφαρμογές της Microsoft. Η εργασία αυτή περιλαμβάνει τη χρήση εργαλείων όπως το apispy και το dumpbin πάνω σε εφαρμογές της Microsoft όπως το Office, ο Internet Explorer και το Visual Studio για την έρευνα του κατά πόσο χρησιμοποιούνται τέτοιες κλήσεις.

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

Έρευνα λαθών σε κρίσιμα προϊόντα (καταργήθηκε 2007)

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

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

Σύγκριση γράφων εξάρτησης ανοιχτού πηγαίου κώδικα και κλειστών εφαρμογών (καταργήθηκε 2007)

Το λογισμικό ανοιχτού πηγαίου κώδικα (open source) και οι τεχνολογικές και κοινωνικές όψεις της διεργασίας παραγωγής του δέχονται τελευταία σημαντική προσοχή από ερευνητές, τεχνικούς και τη βιομηχανία. Η συγκριτική μελέτη της αλληλεξάρτησης υποσυστημάτων ανάμεσα σε λογισμικό ανοιχτού και λογισμικό "ιδιωτικού" πηγαίου κώδικα μπορεί να αποκαλύψει σημαντικές πτυχές διαφορών του κύκλου ζωής των δύο μοντέλων. Η εργασία περιλαμβάνει την συγκριτική εξέταση της αλληλεξάρτησης σε "κλειστές" εφαρμογές στο περιβάλλον Microsoft Windows και σε ανοιχτές εφαρμογές στο περιβάλλον Red Hat Linux με μεθοδολογία που θα προταθεί από τον επιβλέποντα και μικρά εργαλεία που θα υλοποιηθούν στα πλαίσια της εργασίας. Η σύγκριση θα βασιστεί σε αλγορίθμους γράφων και τεχνικές οπτικοποίησης.

Πληροφορίες

Open Source Software (http://www.opensource.org)
The Halloween Documents (http://www.opensource.org/halloween.html)
The Cathedral and the Bazaar (http://www.redhat.com/redhat/cathedral-bazaar/cathedral-bazaar.html)
Red Hat Linux (http://www.redhat.com)

Ασφαλές περιβάλλον εργασίας Unix σε Perl (καταργήθηκε 2007)

Η γλώσσα Perl επιτρέπει την εύκολη υλοποίηση προγραμμάτων συστήματος σε χώρο και χρόνο υποπολλαπλάσιο αυτού που απαιτείται για την υλοποίησή τους σε C. Μια πρόσθετη δυνατότητα της γλώσσας επιτρέπει την υλοποίηση ασφαλών προγραμμάτων με δυναμικό έλεγχο ροής δεδομένων ανάμεσα σε προστατευμένα και μη προστατευμένα πεδία (domain tainting). Ο σχεδιασμός και η υλοποίηση του φλοιού του Unix καθώς και των βασικών εντολών του σε Perl μπορούν να δημιουργήσουν ένα περιβάλλον για την ασφαλή ανάπτυξη προγραμμάτων συστήματος.

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

Προσθήκη καθοριζόμενου τελεστή για πρόσβαση σε μέλη της C++ (καταργήθηκε 2007)

Η γλώσσα C++ δεν επιτρέπει τον καθορισμό του τελεστή . μια και ο δεξιός του τελεστέος δεν είναι τιμή αλλά μια σταθερά. Με τη χρήση του καθοριζόμενου τελεστή . μπορεί να αποφευχθεί ο άχρηστος καθορισμός μεθόδων πρόσβασης (accessor methods) (get* set*) που συνηθίζεται κατά τον αντικειμενοστρεφή σχεδιασμό. Η εργασία περιλαμβάνει την προσθήκη στο μεταγλωττιστή gcc του παραπάνω τελεστή. Ιδιαίτερο ενδιαφέρον παρουσιάζει ο χειρισμός δεικτών σε μέλη ο οποίος μπορεί να υλοποιηθεί εύκολα και αποδοτικά.

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

Γλώσσες εξειδεικευμένου πεδίου βασισμένες στην XML (καταργήθηκε 2007)

Υποσυστήματα λογισμικού μπορούν συχνά να σχεδιαστούν και να υλοποιηθούν με καθαρό ευσύνοπτο και αισθητικά άρτιο τρόπο με τη χρήση εξειδικευμένων γλωσσικών φορμαλισμών. Σε περιπτώσεις όπου ο φορμαλισμός αυτός είναι ασύμβατος με την κύρια γλώσσα υλοποίησης χρησιμοποιούμε εξειδικευμένες "μικρές γλώσσες". Τις γλώσσες αυτές τις ονομάζουμε γλώσσες εξειδικευμένου πεδίου (ΓΕΠ) - domain-specific languages (DSL). Τέτοιες περιπτώσεις μπορούν να εμφανιστούν όταν στοιχεία του προγράμματος ή των δεδομένων επαναλαμβάνονται, στην προδιαγραφή σύνθετων σταθερών, στην υποστήριξη μιας περίπλοκης διεργασίας ανάπτυξης, στην υλοποίηση συστημάτων για τα οποία δεν υπάρχει άμεση υποστήριξη από το περιβάλλον ανάπτυξης, στον πολυπαραδειγματικό προγραμματισμό και σε άλλες σύνθετες υλοποιήσεις. Ένα πρόβλημα με τη χρήση των ΓΕΠ είναι οι εξοικίωση των χρηστών τους με τη σύνταξη που η κάθε μια χρησιμοποιεί.

Η εργασία αυτή θα διερευνήσει το κατά πόσο η XML μπορεί να χρησιμοποιηθεί ως μια ΓΕΠ γενικής εφαρμογής. Στοιχεία που ενδιαφέρουν είναι:

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

Σχεσιακή πρόσβαση σε δομές δεδομένων (καταργήθηκε 2006)

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

Στόχος της εργασίας αυτής είναι η μετατροπή μιας ενσωματωμένης σχεσιακής βάσης δεδομένων όπως η HSQLDB (http://www.hsqldb.org/) (Java) ή η SQLite (http://www.sqlite.org/) (C) έτσι ώστε να μπορεί να δίνει εύκολα σχεσιακή πρόσβαση σε περιέχοντες. Ανάλογο παράδειγμα είναι η βιβλιοθήκη SWILL που επιτρέπει εύκολα σ'ένα πρόγραμμα να δρα ως εξυπηρετητής ιστού.

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

Αυτόματη ανίχνευση επιθέσεων ένεσης SQL (καταργήθηκε 2006)

Οι επιθέσεις ένεσης SQL (SQL injection attacks) βασίζονται στην εισαγωγή δεδομένων που θα προκαλέσουν τη μη εξουσιοδοτημένη εκτέλεση εντολών SQL. Η εργασία αυτή περιλαμβάνει το σχεδιασμό και την υλοποίηση ενός προστατευτικού περιβλήματος για βιβλιοθήκες διασύνδεσης με τη βάση δεδομένων, όπως αυτές που υποστηρίζουν τα πρωτόκολλα ODBC και JDBC. Το περίβλημα, θα συνδέει εντολές SQL με αντίστοιχους τόπους κλήσης τους, έτσι ώστε σε περίπτωση που κληθούν άλλες μη επιτρεπόμενες εντολές να τις ανιχνεύει και να απογερεύει την εκτέλεσή τους ή να σημαίνει συναγερμό.

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

Νέα Επιχειρησιακά Μοντέλα στην Ανάπτυξη και Διάθεση Λογισμικού - Ανάλυση Διεθνών Πρακτικών και Ανάπτυξη Εργαλείου Υποστήριξης Αποφάσεων (καταργήθηκε 2006)

Η εργασία αυτή προσφέρεται από την εταιρία Singular (http://www.singular.gr). Το πλαίσιο της εργασίας θα διαμορφωθεί σε συνεργασία με στέλεχος της εταιρίας.

Νέες Εφαρμογές Σημασιολογικών Δικτύων στην Αναπαράσταση Πληροφορίας και Γνώσης σε Επιχειρησιακό Περιβάλλον (καταργήθηκε 2006)

Η εργασία αυτή προσφέρεται από την εταιρία Singular (http://www.singular.gr). Το πλαίσιο της εργασίας θα διαμορφωθεί σε συνεργασία με στέλεχος της εταιρίας.

Συστήματα Επιχειρησιακής Μοντελοποίησης και Αναπαράστασης : Αξιολόγηση και Εφαρμογές (καταργήθηκε 2006)

Η εργασία αυτή προσφέρεται από την εταιρία Singular (http://www.singular.gr). Το πλαίσιο της εργασίας θα διαμορφωθεί σε συνεργασία με στέλεχος της εταιρίας.

Μεταγλώττιση φύλλων εργασίας του Excel (καταργήθηκε 2006)

Τα φύλλα εργασίας του Excel συχνά περιέχουν χιλιάδες ενεργά κελιά και αντίστοιχους τύπους. Συχνά όμως λίγα μόνο στοιχεία από το φύλο εργασίας μεταβάλλονται ενώ είναι από την αρχή γνωστό ποια στοιχεία αποτελούν το σταθερό μοντέλο και ποια τις εισόδους του. Σκοπός της εργασίας είναι η υλοποίηση ενός συστήματος που θα μεταγλωττίζει (πιθανώς σε κώδικα C, C# ή .NET CLR) φύλλα εργασίας του Excel. Το νέο φύλλο εργασίας που θα παράγεται θα αντικαθιστά κελιά που περιέχουν τύπους που δε μεταβάλλονται με κλήσεις στις αντίστοιχες μεταγλωττισμένες συναρτήσεις. Η μεταγλώττιση μπορεί να χρησιμοποιήσει τεχνικές αφηρημένης διερμηνείας (abstract interpretation) για τη βελτιστοποίηση του παραγώμενου κώδικα.

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

Διαμόρφωση προγραμμάτων μέσω XML (καταργήθηκε 2005)

Πολλά προγράμματα διαμορφώνουν δυναμικά τη λειτουργία τους με βάση εξωτερικά αρχεία. Στο περιβάλλον Unix τα αρχεία αυτά έχουν ad hoc περιεχόμενο και όνομα .*rc. Στο περιβάλλον Windows η διαμόρφωση γινόταν παλαιότερα από αρχεία με συγκεκριμένη σύνταξη και όνομα *.ini και σήμερα από τη βάση δεδομένων που αναφέρεται ως registry. Στόχος της εργασίας είναι η δημιουργία ενός σχήματος XML, εργαλείων υποστήριξης και μιας μικρής αυτοδύναμης και αποδοτικής βιβλιοθήκης που θα επιτρέπει τη χρήση αρχείων διαμόρφωσης γραμμένων σε XML.

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

<?xml version="1.0" ?>
<metaconfiguration>
	<language>Java</language>
	<item>
		<name>xsize</name>
		<type>int</name>
		<variable>x_size</variable>
	</item>
	<item>
		<name>name</name>
		<type>string</name>
		<method>Properties::set_name</method>
	</item>
</metaconfiguration>
Το αρχείο αυτό θα μετασχηματίζεται (με τη χρήση XSLT) σε κώδικα για σύνδεση με το υπόλοιπο πρόγραμμα καθώς και σε αρχείο XSchema που θα ορίζει το σχήμα του συγκεκριμένου αρχείου διαμόρφωσης.

Επιθυμητό στοιχείο της εργασίας είναι η μέγιστη δυνατή μεταφερσιμότητα του συστήματος μεταξύ C, C++, C# και Java.

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

Δικαιώματα και λίστες ελέγχου πρόσβασης στο Unix (καταργήθηκε 2004)

Το λειτουργικό σύστημα Windows, όπως και ορισμένα άλλα λειτουργικά συστήματα, ελέγχει την πρόσβαση σε αντικείμενα (λ.χ. αρχεία) με βάση τις λίστες ελέγχου πρόσβασης (access control lists). Επίσης, περιορίζει τη χρήση ορισμένων κλήσεων του συστήματος (π.χ. SetSystemPowerState) σε χρήστες που έχουν τα συγκεκριμένα δικαιώματα (privileges).

Στόχος της εργασίας είναι η προσθήκη των παραπάνω δυνατοτήτων σε ένα λειτουργικό σύστημα ανοιχτού πηγαίου κώδικα τύπου Unix, όπως το FreeBSD, OpenBSD ή το Linux.

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

Τα δικαιώματα στις κλήσεις του λειτουργικού συστήματος, υλοποιούνται με αλλαγές στον πυρήνα. Ένας παραμετρικός τρόπος προδιορισμού είναι η προσθήκη αρχείων που καθορίζουν την ομάδα χρηστών που έχει τη συγκεκριμένη δυνατότητα κλήσης (π.χ. /etc/privileges/acct).

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

Υλοποίηση ασφαλούς ομότιμου δικτύου για την ανταλλαγή μηνυμάτων σχετικά με την δραστηριότητα κακόβουλου λογισμικού (καταργήθηκε 2003)

Η εργασία περιγράφεται στη σελίδα http://istlab.dmst.aueb.gr/~vbill/topic.htm (http://istlab.dmst.aueb.gr/~vbill/topic.htm)

Μέτρηση συνέπειας στον πηγαίο κώδικα προγραμμάτων (καταργήθηκε 2003)

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

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

Μεταγλωττιστής κανονικών εκφράσεων σε Java bytecodes (καταργήθηκε 2003)

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

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

Διεπαφή σχεσιακής βάσης δεδομένων πηγαίου κώδικα (καταργήθηκε 2003)

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

Το σύστημα θα υλοποιηθεί σε Java με τη χρήση JDBC για επικοινωνία με τη βάση δεδομένων. Είναι επίσης δυνατό να χρησιμοποιηθεί η ενσωματωμένη βάση δεδομένων hsqldb (http://hsqldb.sourceforge.net/). Η διεπαφή μπορεί να υλοποιηθεί είτε σε περιβάλλον swing ή σε περιβάλλον web με τη χρήση ενός ενσωματωμένου εξυπηρετητή Web.

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

Φλοιός XML (καταργήθηκε - 2002)

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

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

Ποιες βελτιστοποιήσεις υποστηρίζουν οι σύγχρονοι μεταγλωττιστές C++; (καταργήθηκε - 2002)

Ένας μεγάλος αριθμός από συχνά χρησιμοποιούμενες δομές κώδικα της C++ μπορεί εύκολα να βελτιστοποιηθεί έτσι ώστε να μην επιβαρύνει τον τελικό κώδικα. Η εργασία αυτή θα ερευνήσει κατά πόσο μεταγλωττιστές παραγωγής όπως η Microsoft C++ και ο GNU C++ Compiler υλοποιούν τις βελτιστοποιήσεις αυτές. Η έρευνα θα γίνει ακολουθώντας τα βήματα που παρουσιάζονται παρακάτω.
  1. Περιγραφή των τεχνικών βελτιστοποίησης που παρουσιάζονται στη βιβλιογραφία (κυρίως στο βιβλίο του Stroustrup).
  2. Κατασκευή μικρών προγραμμάτων που να υλοποιούν την κάθε τεχνική.
  3. Μεταγλώττιση και ανάγνωση του παραγόμενου κώδικα.
  4. Συγκέντρωση και σύγκριση των αποτελεσμάτων.

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

Αυτόματη δημιουργία βιβλιογραφικών αναφορών (καταργήθηκε - 2002)

Το πρόγραμμα BibTeX δημιουργεί αυτόματα λίστες για βιβλιογραφικές αναφορές με βάση τις παραπομπές που υπάρχουν σε ένα κείμενο. Το BibTeX διαβάζει: Από τα παραπάνω στοιχεία το πρόγραμμα δημιουργεί τη λίστα των βιβλιογραφικών αναφορών στη γλώσσα του LaTeX.

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

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

Γραφική παράσταση ψηφιακών υπογραφών (καταργήθηκε - 2002)

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

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

Οπτικοποίηση διαδρομών GPS (καταργήθηκε - 2000)

Το GPS (Global Positioning System) επιτρέπει την καταγραφή τη διαδρομής που ακολουθεί ένα όχημα ή σκάφος με την αποθήκευση του στίγματός του στις διαδοχικές του θέσεις. Η καταγεγραμμένη πορεία εκτός από στοιχεία της διαδρομής εμπεριέχει και το στοιχείο της ταχύτητας μέσω του χρόνου που είναι αποθηκευμένος σε σχέση με κάθε στίγμα. Σκοπός της εργασίας αυτής είναι ο σχεδιασμός και η υλοποίηση ενός εργαλείου για τη δημιουργία ενός αλληλεπιδραστικού χάρτη της διαδρομής ο οποίος θα μπορεί να προβάλλεται στο Web.

Πληροφορίες

Global Positioning System Overview (http://www.utexas.edu/depts/grg/gcraft/notes/gps/gps.html)
GPS Waypoint Registry (http://www.waypoint.org/)
Digital Chart of the World (http://ortelius.maproom.psu.edu/dcw/)
GPS World Home Page (http://www.gpsworld.com/)
Global Positioning System (GPS) Resources (http://www.cnde.iastate.edu/gps.html)
NMEA-0183 and GPS Information (ftp://sundae.triumf.ca/pub/peter/index.html)
GPS - General Information Sites (http://www.inmet.com/~pwt/gps_gen.htm)

Στατιστική και γλωσσολογική ανάλυση δικαστικών αποφάσεων (καταργήθηκε - 2000)

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

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

Φλοιός γραφικής επεξεργασίας εικόνων (καταργήθηκε - 2000)

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

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

Η αξιοπιστία παραπομπών στο Internet σε άρθρα περιοδικών (καταργήθηκε - 1999)

Συχνά σε άρθρα επιστημονικών περιοδικών υπάρχουν παραπομπές σε πηγές στο Internet. Οι πηγές αυτές δεν έχουν αρχειακό χαρακτήρα και με την πάροδο του χρόνου παύουν να είναι επίκαιρες απαξιώνοντας έτσι και τα άρθρα τα οποία παραπέμπουν σε αυτές. Οι εργασία περιλαμβάνει την υλοποίηση εργαλείου για την αυτόματη αξιολόγηση παραπομπών στο Web από άρθρα των ACM, IEEE, Usenix κλπ τα οποία υπάρχουν και σε ηλεκτρονική μορφή ως προς την επικαιρότητά τους και την εξαγωγή συμπερασμάτων.

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

Ασφαλής διαμόρφωση εξυπηρετητή ιστοσελίδων (καταργήθηκε - 1999)

Η εξάπλωση του Internet και του WWW παρέχει μια διαδεδομένη πλατφόρμα για την υλοποίηση της επικοινωνίας με το χρήστη διαφόρων εφαρμογών. Προτείνουμε την ανάλυση θεμάτων ασφαλείας και την υλοποίηση με τη χρήση τεχνολογίας CGI φιλικού συστήματος ασφαλούς διαμόρφωσης του εξυπηρετητή του ιστού Apache. Η πιστοποίηση του χρήστη θα γίνεται με τη χρήση πιστοποιητικών.

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

Η αξιοπιστία των προγραμμάτων του Unix: οκτώ χρόνια αργότερα (καταργήθηκε - 1998)

Το 1990 δημοσιεύτηκε στο περιοδικό Communications of the ACM άρθρο στο οποίο γινόταν εμπειρικός έλεγχος στην αξιοπιστία αντιπροσωπευτικών βοηθητικών προγραμμάτων του Unix. Σκοπός της εργασίας αυτής είναι ο επανέλεγχος των αντίστοιχων προγραμμάτων με παρόμοιες μεθόδους σε αντιπροσωπευτικά εμπορικά και ερευνητικά συστήματα (λ.χ. AIX, Solaris, Windows NT, Linux) και η εξαγωγή των αντιστοίχων συμπερασμάτων.

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

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

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

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

Μετατροπή Java bytecodes σε C (καταργήθηκε - 1998)

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

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

Ασφαλής κατάλογος LDAP (καταργήθηκε - 1998)

Οι υπηρεσίες καταλόγου για την πιστοποίηση εξυπηρετητών και πελατών πρέπει να προσφέρονται και να ανακτώνται με ασφαλή τρόπο όταν τα στοιχεία πρόκειται να περάσουν μέσα από ένα ανοικτό δίκτυο. Η εργασία περιλαμβάνει την προσθήκη σε λογισμικό καταλόγου LDAP (lightweight directory access protocol) χαρακτηριστικών ασφαλείας με την υποστήριξη της τεχνολογίας SSL (secure session layer).

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

Σύνδεση εξυπηρετητή Web με εξυπηρετητή καταλόγου (καταργήθηκε - 1998)

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

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

Εργαλείο ανάλυσης και διαχείρισης κινδύνων σε πληροφοριακά συστήματα (καταργήθηκε - 1997)

Κατά την ανάπτυξη και τη διαχείριση των πληροφοριακών συστημάτων που περιέχουν προσωπικά ή ευαίσθητα δεδομένα (σύμφωνα με το Ν. 2472/97 ευαίσθητα δεδομένα είναι αυτά που αφορούν τη φυλετική ή εθνική προέλευση, τα πολιτικά φρονήματα, τις θρησκευτικές ή φιλοσοφικές πεποιθήσεις, τη συμμετοχή σε ένωση, σωματείο και συνδικαλιστική οργάνωση, την υγεία, την κοινωνική πρόνοια και την ερωτική ζωή, καθώς και τα σχετικά με ποινικές διώξεις ή καταδίκες) απαιτείται να λαμβάνονται τα κατάλληλα οργανωτικά και τεχνικά μέτρα για την ασφάλεια των δεδομένων και την προστασία τους από τυχαία ή αθέμιτη καταστροφή, τυχαία απώλεια, αλλοίωση, απαγορευμένη διάδοση ή πρόσβαση και κάθε άλλη μορφή αθέμιτης επεξεργασίας. Τα μέτρα αυτά πρέπει να εξασφαλίζουν επίπεδο ασφάλειας ανάλογο προς τους κινδύνους που συνεπάγεται η επεξεργασία και η φύση των δεδομένων που είναι αντικείμενο της επεξεργασίας.

Στόχος της εργασίας είναι η υλοποίηση ενός εργαλείου το οποίο με τη χρήση της κατάλληλης μεθόδου (π.χ. της CRAMM: UK Government Risk Analysis and Management Method) θα βοηθά:

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

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

Ιδεατή συσκευή τραπεζικών συναλλαγών στο Internet (καταργήθηκε - 1997)

Η εξάπλωση του Internet και του WWW παρέχει μια διαδεδομένη πλατφόρμα για την υλοποίηση δικτυακών εφαρμογών. Προτείνουμε την ανάλυση θεμάτων ασφαλείας και την υλοποίηση σε γλώσσα Java μιας ιδεατής συσκευής τραπεζικών συναλλαγών (ATM) η οποία θα επιτρέπει με ασφαλή τρόπο τη διεκπεραίωση από το σπίτι όλων των συναλλαγών που δεν απαιτούν παρουσία στην τράπεζα (υπόλοιπο λογαριασμού, μεταφορά μεταξύ λογαριασμών, εκτύπωση συναλλαγών, πληρωμή λογαριασμών κ.λπ.)

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

Σύστημα διαχείρισης αλλαγών λογισμικού βασισμένο σε σχεσιακή βάση δεδομένων (καταργήθηκε - 1997)

Τα περισσότερα συστήματα διαχείρισης αλλαγών λογισμικού (Revision Control Systems) υλοποιούν το συντονισμό των αλλαγών χτίζοντας εξ' αρχής μια ad hoc βάση δεδομένων χρησιμοποιώντας ως δομικά στοιχεία αρχεία του λειτουργικού συστήματος. Η υλοποίηση των συναλλαγών, του κλειδώματος και της αποθήκευσης των διαφορετικών εκδόσεων γίνεται περίπλοκη και δύσκολα μεταφερτή ανάμεσα σε διαφορετικά λειτουργικά συστήματα ή ακόμα και συστήματα αποθήκευσης (λ.χ. NFS). Η εργασία περιλαμβάνει την υλοποίηση συστήματος διαχείρισης αλλαγών λογισμικού βασισμένου σε σχεσιακή βάση δεδομένων (λ.χ. Ingres) καθώς και την υλοποίηση συστήματος διεπαφής με το χρήστη τεχνικής πελάτη-εξυπηρετητή (client-server).

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

Προσθήκη ελληνικών στον πολυγλωσσικό ορθογραφικό διορθωτή ispell (καταργήθηκε - 1996)

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

Βιβλιογραφία: http://hoth.stsci.edu/gnu/ispell/ispell_toc.html

Περιεχόμενα