Αποθετήριο εργασιών του ΟΠΑ (καταργήθηκε 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,
και να βλέπουν τα παραγόμενα αποτελέσματα.
Βιβλιογραφία
- Diomidis Spinellis.
Working with Unix tools (http://www.dmst.aueb.gr/dds/pubs/jrnl/2005-IEEESW-TotT/html/v22n6.html).
IEEE Software, 22(6):9–11, November/December 2005.
(doi:10.1109/MS.2005.170 (http://dx.doi.org/10.1109/MS.2005.170))
- Diomidis Spinellis.
Outwit: Unix tool-based programming meets the Windows world (http://www.dmst.aueb.gr/dds/pubs/conf/2000-Usenix-outwit/html/utool.html).
In Christopher Small, editor, USENIX 2000 Technical Conference
Proceedings, pages 149–158, Berkeley, CA, June 2000. USENIX
Association.
- Erich Gamma and Kent
Beck.
Contributing to
Eclipse: Principles, Patterns, and Plug-Ins.
Addison-Wesley, Boston, MA, 2004.
- Brian W. Kernighan
and Rob Pike.
The UNIX
Programming Environment.
Prentice Hall, Englewood Cliffs, NJ, 1984.
- Brian W. Kernighan.
Sometimes the Old Ways are Best.
IEEE Software, 25(6), November/December 2008.
- Diomidis Spinellis.
Unix tools as visual programming components in a GUI-builder
environment.
Software: Practice & Experience, 32(1):57–71, January 2002.
(doi:10.1002/spe.428 (http://dx.doi.org/10.1002/spe.428))
Διαδικτυακή διεπαφή αποσφαλματωτή (καταργήθηκε 2016)
Η διεπαφή κειμένου που προσφέρει ο αποσφαλματωτής gdb δεν είναι ιδιαίτερα
εύχρηστη.
Πολλές λειτουργίες, όπως η τοποθέτηση σημείων διακοπής και η παρακολούθηση
ροής του προγράμματος, πραγματοποιούνται με τρόπο που δεν είναι διαισθητικός.
Από την άλλη πλευρά οι περισσότερες γραφικές διεπαφές διορθωτών δεν είναι
μεταφέρσιμες ανάμεσα σε διαφορετικές πλατφόρμες.
Η εργασία περιλαμβάνει το σχεδιασμό και την υλοποίηση μιας διαδικτυακής
διεπαφής στον αποσφαλματωτή gdb,
αντίστοιχης με αυτή που παρέχεται από την εφαρμογή
RStudio (
http://rstudio.org/) για το
έργο R (
http://www.r-project.org/).
Η υλοποίηση θα μπορούσε να βασιστεί στη χρήση της υπάρχουσας
διεπαφής GDB/MI (machine interface),
στη βιβλιοθήκη SWILL και
στη τεχνολογία AJAX (asynchronous Javascript and XML).
Η βιβλιοθήκη SWILL επιτρέπει την λειτουργία εφαρμογών ως
διαδικτυακών εξυπηρετητών.
Έτσι, ο προτεινόμενος συνδυασμός παρέχει μια μεταφέρσιμη γραφική διεπαφή
μέσω ενός οποιουδήποτε φυλλομετρητή,
η οποία μάλιστα έχει ως πρόσθετο
πλεονέκτημα να είναι προσβάσιμη από το διαδίκτυο.
Βιβλιογραφία
- Sotiria Lampoudi and
David M. Beazley.
SWILL: A simple embedded web server library.
In USENIX Technical Conference Proceedings, Monterey, CA, USA,
June 2002. Usenix Association.
FREENIX Track Technical Program.
- Even Adams and
Steven S. Muchnick.
Dbxtool: A window-based symbolic debugger for sun workstations.
Software: Practice & Experience, 16(7):653-669, July 1986.
- Dave Crane, Eric
Pascarello, and Darren James.
Ajax
in Action.
Manning, Greenwich, CT, 2006.
Το πρόβλημα της διαδοχικής τρωτότητας στις υπηρεσίες του παγκοσμίου ιστού (καταργήθηκε 2016)
Το πρόβλημα της διαδοχικής τρωτότητας ανακύπτει όταν πρέπει να εξεταστεί αν
μια ομάδα ασφαλών συστημάτων διασυνδεδεμένων με ασφαλή τρόπο αποτελεί ένα
ασφαλές κατανεμημένο σύστημα.
Το πρόβλημα εμφανίζεται όταν ένας αντίπαλος μπορεί,
εκμεταλλευόμενος τις δικτυακές συνδέσεις,
να έχει πρόσβαση σε πληροφορίες υψηλότερου επίπεδου εμπιστευτικότητας από αυτές
που θα του επιτρεπόταν από το κάθε ένα σύστημα ξεχωριστά.
Στόχος της εργασίας είναι η διερεύνηση του προβλήματος σε πρακτικά σενάρια
που προκύπτουν σήμερα μέσω της διασύνδεσης υπηρεσιών που προσφέρονται στον
παγκόσμιο ιστό.
Διασυνδέσεις που μπορούν να προκαλέσουν πρόβλημα στα σενάρια που θα εξεταστούν
είναι, μεταξύ άλλων οι παρακάτω.
- Η ανάκτηση ξεχασμένων συνθηματικών μέσω διαδικτυακής υπηρεσίας
ηλεκτρονικού ταχυδρομείου (π.χ. GMail).
-
Οι εξουσιοδοτήσεις σε εφαρμογές τρίτων που παρέχονται μεταξύ υπηρεσιών όπως Facebook,
LinkedIn, Twitter.
-
Η δυνατότητα επαναχρησιμοποίησης δεδομένων από τις προσφερόμενες υπηρεσίες για
την πραγματοποίηση επιθέσεων κοινωνικής μηχανικής (social engineering attacks).
Βιβλιογραφία
Αξιολόγηση του έργου της μετάβασης λογισμικού στο πρότυπο IPv6 (καταργήθηκε 2016)
Αργά ή γρήγορα όλο το λογισμικό που έχει διαδικτυακές διεπαφές θα χρειαστεί
να προσαρμοστεί στην επόμενη γενιά του διαδικτυακού πρωτοκόλλου IP, την
έκδοση 6 (IPv6).
Η μετάβαση αυτή βρίσκεται σε εξέλιξη και είναι απαραίτητο να ολοκληρωθεί,
διότι ο αριθμός των διαθέσιμων διευθύνσεων της τρέχουσας έκδοσης IPv4
κοντεύει να εξαντληθεί.
Αυτό έχει ως αποτέλεσμα να τίθενται εμπόδια στη διάδοση του διαδικτύου,
ειδικά στις αναπτυσσόμενες χώρες.
Στόχος της εργασίας είναι η αξιολόγηση του απαιτούμενου έργου,
μέσω της άντλησης εμπειρικών δεδομένων από υπάρχοντα έργα ανοικτού λογισμικού.
Στα πλαίσια της εργασία θα εξεταστούν τα παρακάτω δύο στοιχεία:
- Το ποσοστό των εφαρμογών που είναι συμβατές με το πρότυπο IPv6.
- Το έργο που απαιτήθηκε για την προσαρμογή της κάθε εφαρμογής στο
πρότυπο IPv6.
Βιβλιογραφία
-
Carlos E. Caicedo, James B.D. Joshi, Summit R. Tuladhar, IPv6 Security Challenges, Computer, vol. 42, no. 2, pp. 36-42, Feb. 2009.
-
Chen, A., Chou, E., Wong, J., Yao, A. Y., Zhang, Q.,
Zhang, S., and Michail, A. CVSSearch: Searching through
Source Code using CVS Comments in
Proceedings of IEEE International Conference on Software
Maintenance (ICSM'01) (2001), 364–373.
-
German, D. M. An Empirical Study of Fine-Grained
Software Modifications in Proceedings of 20th IEEE
International Conference on Software Maintenance
(ICSM'04) (2004), 316–25.
-
Zimmermann, T., Zeller, A., Weissgerber, P., and Diehl, S.
Mining Version Histories to Guide Software Changes. IEEE
Transactions on Software Engineering, 31, 6 (2005), 429–445.
-
Van Rysselberghe, F. and Demeyer, S. Mining Version
Control Systems for FACs (Frequently Applied Changes) in
Proceedings of International Workshop on Mining Software
Repositories (MSR'04) (May 25, 2004), 48–52.
-
[6] Dinh-Trong, T. T. and Bieman, J. M. The FreeBSD Project:
a Replication Case Study of Open Source Development.
IEEE Transactions on Software Engineering, 31, 6 (2005),
481–494.
-
Bieman, J. M., Andrews, A. A., and Yang, H. J.
Understanding Change-Proneness in OO Software Through
Visualization in Proceedings of 11th IEEE International
Workshop on Program Comprehension (IWPC'03) (2003),
44–53.
-
Hassan, A. E. and Holt, R. C. Predicting Change
Propagation in Software Systems in Proceedings of 20th
IEEE International Conference on Software Maintenance
(ICSM'04) (2004), 284–93.
Μετρικές ποιότητας λογισμικού κατά τον Christopher Alexander (καταργήθηκε 2016)
O αρχιτέκτων Christopher Alexander έχει ορίσει μια σειρά από σχεδιαστικές
ιδιότητες που περιστρέφονται γύρω από τον ορισμό κέντρων.
Η ικανοποίηση των αντικειμενικών αυτών ιδιοτήτων συνιστά κατά τον
Alexander μια έκφραση
ποιότητας.
Οι ιδιότητες αυτές είναι
η κλίμακα σε διάφορα επίπεδα,
ένα ισχυρό κέντρο,
τα όρια,
η εναλλασσόμενη επανάληψη,
ο θετικός χώρος,
το Καλό σχήμα,
η βαθιά αλληλοσύνδεση,
η αντίθεση,
η κλιμάκωση,
η τραχύτητα,
η ηχώ,
το κενό,
η απλότητα και εσωτερική ηρεμία και
το ένα με τον κόσμο.
Στόχος της εργασίας είναι ο ορισμός και η υλοποίηση μετρικών που θα
βρίσκουν χαρακτηριστικά της ποιότητας σύμφωνα με τους ορισμούς του
Alexander.
Βιβλιογραφία
Η ροή σκέψης της Wikipedia (καταργήθηκε 2016)
H ελεύθερη εγκυκλοπαίδεια
Wikipedia (
http://www.wikipedia.org)
παρέχει στον παγκόσμιο ιστό πάνω από δύο εκατομμύρια άρθρα δομημένα
σε μορφή πλούσιου υπερκειμένου.
Το περιεχόμενο της εγκυκλοπαίδειας είναι διαθέσιμο σε μορφή βάσης
δεδομένων.
Στόχος της εργασίας είναι η ανάλυση των ιδιοτήτων της Wikipedia
ως γράφου και η αποδοτική δημιουργία οπτικοποίησης των συνδέσμων
κάθε λήμματος με τρόπο που να επιτρέπει στο χρήση να πλοηγείται οπτικά
ανάμεσα στα λήμματα.
Για να είναι χρήσιμη η παράσταση αυτή θα πρέπει να φαίνονται όχι μόνο
οι σύνδεσμοι των άμεσα συνδεδεμένων λημμάτων, αλλά και αρκετές επόμενες
σειρές.
Η οπτικοποίηση θα βοηθά το χρήστη να πλοηγείται προς λήμματα-κόμβους
με ικανό αριθμό υπερσυνδέσμων.
Εναλλακτικά, το περιεχόμενο της Wikipedia μπορεί να παρουσιαστεί σε
εικαστική μορφή (π.χ. screen saver).
Άρθρα που περιέχουν εικόνες καλής ποιότητας συνδέονται μεταξύ τους
σε γράφο τον οποίο το πρόγραμμα ακολουθεί, δείχοντας την κάθε εικόνα
στην οθόνη του υπολογιστή.
Παλαιότερες εικόνες θα μπορούσαν να απομακρύνονται και να μικραίνουν
σε μέγεθος, π.χ. κινούμενες σε σχήμα σπείρας προς το κέντρο της
οθόνης.
Βιβλιογραφία
- Wikipedia, the free encyclopedia (http://en.wikipedia.org)
- TouchGraph (http://www.touchgraph.com/TGAmazonBrowser.html)
- Visualizing Everything. Communications of the ACM 44:8 August 2001.
-
Stephen C. North.
Neato User's Guide.
Technical Report 59113-921014-14TM, AT&T
Bell Laboratories, Murray Hill, NJ, 1992.
Available online http://www.research.att.com/sw/tools/graphviz/neatoguide.pdf.
-
Thomas M. J. Fruchterman and Edward M. Reingold. Graph Drawing by
Force-directed Placement.
Software: Practice and Experience, 21(11):1129{1164, November 1991.
-
Emden R. Gansner, Eleftherios Koutsofios, Stephen C. North, and Kiem-Phong Vo.
A Technique for Drawing Directed Graphs.
IEEE Trans. Sofware Eng., 19(3):214{230, May 1993.
- Neal W. Johnston.
Documenting a scientific visualization tool (http://www.acm.org/pubs/articles/proceedings/doc/122778/p83-johnston/p83-johnston.pdf).
In Ninth Annual ACM International Conference on Systems
Documentation, pages 83–87. ACM, ACM Press, October 1991.
Ελέγχος διεπαφών σε προγράμματα Java (καταργήθηκε 2016)
Σύγχρονα προγράμματα όλο και συχνότερα υλοποιούν τη λειτουργικότητά τους
μέσω διεπαφών έτοιμων κλάσεων.
Ο μεγάλος αριθμός των έτοιμων κλάσεων
έχει ως αποτέλεσμα προγράμματα στατικού ελέγχου του κώδικα να
χρειάζονται εξειδικευμένο κώδικα για να βρουν λάθη στις κλήσεις
των μεθόδων τους.
Για το λόγο αυτό προτείνουμε ο έλεγχος διεπαφών να αποτελεί τμήμα
της διεπαφής και όχι του προγράμματος στατικού ελέγχου.
Η δυνατότητα αυτή έχει
ήδη υλοποιηθεί (
http://www.dmst.aueb.gr/dds/sw/api-verify/)
(Spinellis and Louridas)
στο πρόγραμμα
FindBugs (
http://findbugs.sourceforge.net/)
(Hovemeyer and Pugh, 2004).
Η εργασία έχει ως στόχο να προσθέσει ελέγχους σε σημαντικές κλάσεις
της Java και να μετρήσει την αποτελεσματικότητα της μεθόδου με
την εφαρμογή της σε μεγάλες βάσεις ανοικτού κώδικα.
Βιβλιογραφία
- David Hovemeyer and
William Pugh.
Finding bugs is easy.
ACM SIGPLAN Notices, 39(12):92–106, December 2004.
OOPSLA 2004 Onward! Track.
- Diomidis Spinellis and Panagiotis Louridas.
A framework for the static verification of API calls.
The Journal of Systems and Software.
To appear.
Επεκτάσεις 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.
Μερικά διαγράμματα που θα μπορούσαν να υποστηρίζονται είναι:
- Διάγραμμα αντικειμένων
- Διάγραμμα περιπτώσεων χρήσης
- Διαγράμματα συνεργασίας
- Διαγράμματα κατάστασης
- Διαγράμματα δραστηριότητας
- Διαγράμματα υλοποίησης
Βιβλιογραφία
- Diomidis Spinellis.
On the declarative specification of models.
IEEE Software, 20(2):94-96, March/April 2003.
- UMLGraph home page
- Graphviz home page (http://www.research.att.com/sw/tools/graphviz/)
-
Eleftherios Koutsofios and Stephen North.
Drawing graphs with dot.
Technical Report 910904-59113-08TM, AT&T Bell Laboratories, Murray Hill, NJ, September
1991.
Available online http://www.research.att.com/sw/tools/graphviz/leftyguide.pdf.
-
Stephen C. North.
Neato User's Guide.
Technical Report 59113-921014-14TM, AT&T
Bell Laboratories, Murray Hill, NJ, 1992.
Available online http://www.research.att.com/sw/tools/graphviz/neatoguide.pdf.
-
Thomas M. J. Fruchterman and Edward M. Reingold. Graph Drawing by
Force-directed Placement.
Software: Practice and Experience, 21(11):1129{1164, November 1991.
-
Emden R. Gansner, Eleftherios Koutsofios, Stephen C. North, and Kiem-Phong Vo.
A Technique for Drawing Directed Graphs.
IEEE Trans. Sofware Eng., 19(3):214{230, May 1993.
- Grady Booch, James Rumbaugh,
and Ivar Jacobson.
The
Unified Modeling Language User Guide.
Addison-Wesley, 1999.
Υποστήριξη scalable vector graphics στη σουίτα Outwit (καταργήθηκε 2016)
Η σουίτα εργαλείων Outwit επιτρέπει την αλληλεπίδραση
εργαλείων του Unix στο περιβάλλον των Windows.
Περιέχει εργαλεία για πρόσβαση στο πρόχειρο (clipboard),
στο registry, της ιδιότητες εγγράφων και σε σχεσιακές βάσεις
δεδομένων.
Στόχος της εργασίας αυτής είναι η προσθήκη στο πρόγραμμα πρόσβασης
στο πρόχειρο (winclip)
της δυνατότητας αντιγραφής και επικόλλησης διανυσματικών
γραφημάτων με τη μορφή
Windows Metafile και
Scalable Vector Graphics αντίστοιχα.
Βιβλιογραφία
Έλεγχος λαθών σε λογιστικά φύλλα (καταργήθηκε 2016)
Σύμφωνα με στοιχεία ερευνών 21-80% των λογιστικών φύλλων και
1-5% των κελιών τους περιέχουν λάθη.
Η εργασία αυτή αρχικά θα διερευνήσει με εμπειρικό τρόπο
(ερωτηματολόγια) συχνά λάθη που εμφανίζονται σε λογιστικά φύλλα.
Στη συνέχεια θα προταθούν ευρηστικές μέθοδοι και αλγόριθμοι για
τον εντοπισμό των λαθών.
Με βάση τις μεθόδους αυτές θα υλοποιηθεί εργαλείο εντοπισμού λαθών
με βάση τη γλώσσα ενός προγράμματος λογιστικών φύλλων (π.χ. Excel Basic).
Βιβλιογραφία
-
Doug Bell and Mike Parr. Spreadsheets: a research agenda. ACM SIGPLAN
Notices, 28(9):26-28, September 1993.
-
Judith A. Ross. Spreadsheet Risk. Harvard Business Review,
74(5):10-12, September-October 1996.
-
Spreadsheet Research (http://panko.cba.hawaii.edu/ssr/)
- Stephen C. Johnson.
Lint, a C program checker.
Computer Science Technical Report 65, Bell Laboratories, Murray Hill, NJ, USA,
December 1977.
-
Gregg Rothermel, Margaret Burnett, Lixin Li, Christopher Dupuis and Andrei Sheretov
A methodology for testing spreadsheets
ACM Transactions on Software
Engineering and Methodology
Volume 10 (2001)
Pages 110 - 147
Εργαλειοθήκη βελτιστοποίησης (καταργήθηκε 2016)
Οι μη-αιτιοκρατικοί αλγόριθμοι βελτιστοποίησης όπως αυτοί που βασίζονται
στην εξομοιούμενη ανόπτηση (simulated annealing) και τις γενετικές
μεθόδους συχνά απαιτούν πειραματισμό για την εξεύρεση των βέλτιστων
παραμέτρων και τεχνικών υλοποίησης.
Η εργασία αυτή περιλαμβάνει την υλοποίηση μιας εργαλειοθήκης βελτιστοποίησης
η οποία εμπεριέχοντας την υλοποίηση των παραπάνω αλγορίθμων θα επιτρέπει
στο χρήστη την επιλογή και αξιολόγηση διαφορετικών αλγορίθμων, τεχνικών,
και παραμέτρων τους.
Βιβλιογραφία
- Diomidis D. Spinellis and Chrissoleon T.
Papadopoulos.
Production line buffer allocation: Genetic algorithms versus simulated
annealing.
In Second International Aegean Conference on the Analysis and Modelling
of Manufacturing Systems, pages 89-101, Tinos, Greece, May 1999.
University of the Aegean, Department of Business Administration.
- Diomidis Spinellis and Chrissoleon T.
Papadopoulos.
ExPLOre: A modular architecture for production line
optimisation.
In Proceedings of the 5th International Conference of the Decision
Sciences Institute, Athens, Greece, July 1999.
- V. Cerny.
Thermodynamical approach to the traveling salesman problem: an efficient
simulation algorithm.
Journal of Optimization Theory and Applications, 45:41-51,
1985.
- David E. Goldberg.
Genetic Algorithms: In Search of Optimization & Machine Learning.
Addison-Wesley, 1989.
- L. Ingber.
Simulated annealing: Practice versus theory.
Journal of Mathematical Computation Modelling, 18(11):29-57,
1993.
Υλοποίηση του Μηχανισμού των Αντικυθήρων σε τρεις διαστάσεις (καταργήθηκε 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.dmst.aueb.gr/dds/sw/ameso/index.el.html) στο περιβάλλον Squeak EToys.
Παραδοτέο της εργασίας είναι αρχείο στερεολιθογραφίας μορφότυπου
STL (
https://en.wikipedia.org/wiki/STL_%28file_format%29)
για την κατασκευή των γραναζιών καθώς και οδηγίες συναρμολόγησής τους
σε τρεις διαστάσεις.
Η τοποθέτηση των γραναζιών πρέπει να ακολουθεί όσο το δυνατόν τον
αρχαίο μηχανισμό.
Ο σχεδιασμός των γραναζιών και οι οδηγίες συναρμολόγησης θα πρέπει να
υλοποιηθούν αυτόματα από λογισμικό που θα γραφεί για το σκοπό αυτό.
Βιβλιογραφία
- Diomidis Spinellis.
The
Antikythera mechanism: A computer science perspective.
IEEE Computer, 41(5):22–27, May 2008.
(doi:10.1109/MC.2008.166 (http://dx.doi.org/10.1109/MC.2008.166))
- Diomidis Spinellis.
The Antikythera mechanism: Hacking with gears. (http://www.usenix.org/event/usenix09/tech/tech.html#spinellis)
Invited talk, June 2009.
USENIX Annual Technical Conference. San Diego, CA.
- Derek de Solla Price. Gears from the Greeks: The Antikythera Mechanism a calendar computer from ca. 80 B.C. Transactions of the American Philosophical Society New Series, 64(7), November 1974.
- T. Freeth, Y. Bitsakis, X. Moussas, J. H. Seiradakis, A. Tselikas, H. Mangou, M. Zafeiropoulou, R. Hadland, D. Bate, A. Ramsey, M. Allen, A. Crawley, P. Hockley, T. Malzbender, D. Gelb, W. Ambrisco, and M. G. Edmunds. Decoding the ancient Greek astronomical calculator known as the Antikythera Mechanism. Nature, 444(7119):587591, November 2006.
Έλεγχος και βελτιστοποίηση της υλοποίησης 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)
ως πλαίσιο αναφοράς.
Πράγματα που πρέπει να κάνετε είναι τα παρακάτω.
-
Να διορθώστε την εφαρμογή ώστε να παράγει αποτελέσματα κοντά σε αυτά
της αρχικής εφαρμογής.
-
Να βελτιστοποιήστε τον αλγόριθμο με επιθετική χρήση βοηθητικής μνήμης (caching).
-
Να εξετάσετε άλλες μεθόδους για να επιτύχετε καλύτερα αποτελέσματα σε
μικρότερο χρόνο.
Βιβλιογραφία
-
D. Reshef, Y. Reshef, H. Finucane, S. Grossman, G. McVean, P. Turnbaugh, E. Lander, M. Mitzenmacher, P. Sabeti. Detecting novel associations in large datasets. Science 334, 6062 (2011).
Ασφαλής και διαφανής βελτιστοποίηση σκληρού δίσκου (καταργήθηκε 2013)
Τα προγράμματα βελτιστοποίησης σκληρών δίσκων μεταφέρουν τα περιεχόμενα των
αρχείων έτσι ώστε να καταλαμβάνουν συνεχή χώρο στην επιφάνεια του
δίσκου. Ο συνηθισμένος τρόπος υλοποίησης τέτοιων προγραμμάτων είναι με
απευθείας πρόσβαση στα αδόμητα δεδομένα του δίσκου. Ο τρόπος αυτός
εγκυμονεί κινδύνους για την ασφάλεια των δεδομένων στην περίπτωση που η
βελτιστοποίηση διακοπεί από κάποιον απρόβλεπτο εξωτερικό παράγοντα,
εξαρτάται άμεσα από τη δομή του δίσκου και δεν επιτρέπει την εκτέλεση
του προγράμματος παράλληλα με άλλα. Προτείνουμε την υλοποίηση
προγράμματος βελτιστοποίησης το οποίο - σύμφωνα άλλωστε και με την
αρχιτεκτονική λειτουργικών προγραμμάτων μικροπυρήνα - θα εργάζεται
μετακινώντας αρχεία στο παρασκήνιο με βάση ευρηστικές μεθόδους
προσδιορισμού αρχείων που δεν επηρεάζουν τη λειτουργία του συστήματος.
Βιβλιογραφία
-
Chris Ruemmler and John Wilkes, UNIX Disk Access
Patterns. USENIX Technical Conference Proceedings. p.
405-420, winter 1993. USENIX, San Diego, CA.
Μαθηματικοί υπολογισμοί σε δηλωτικά συστήματα διαμόρφωσης κειμένου (καταργήθηκε 2012· βλ. SWeave)
Δηλωτικά συστήματα διαμόρφωσης κειμένου (SGML, TeX, troff) παρέχουν
ευέλικτες και εξελίξιμες πλατφόρμες για τη συγγραφή επιστημονικών και
τεχνικών κειμένων. Ένα στοιχείο που απουσιάζει από τα συστήματα αυτά
είναι η δυνατότητα δηλωτικής εισαγωγής παραμετρικών μαθηματικών
υπολογισμών. Η δυνατότητα αυτή η οποία παρέχεται από τους σύγχρονους
επεξεργαστές κειμένου μέσω της εισαγωγής λογιστικών φύλλων (MS-Word /
Excel) μπορεί να υποστηριχτεί με τον ορισμό κατάλληλης γλώσσας και την
υλοποίηση ενός ανάλογου προ-επεξεργαστή.
Βιβλιογραφία
-
Doug Bell and Mike Parr. Spreadsheets: a research agenda. ACM SIGPLAN
Notices, 28(9):26-28, September 1993.
-
Donald E. Knuth.
The TeXbook. Addisson-Wesley, 1989.
Επεκτάσεις τις γλώσσας D (καταργήθηκε 2011)
Το Dtrace είναι ένα πολύ δυνατό εργαλείο ανάλυσης της απόδοσης
συστημάτων. Βασίζεται σε μια γλώσσα προγραμματισμού ειδικού πεδίου (D),
την οποία και ο χρήστης χρησιμοποιεί για να εισάγει μετρητές απόδοσης
στον κώδικα του προγράμματος προς αξιολόγηση. Η γλώσσα D δανείζεται
στοιχεία από το συντακτικό της γλώσσας C αλλά η εκτέλεσή της βασίζεται
στη λογική της αναγνώρισης προτύπων (pattern matching). Αν και δίνει στο
χρήστη μεγάλη ελευθερία σχετικά με τον καθορισμό σημείων μέτρησης, είναι
περιοριστική αναφορικά με τις δυνατότητες επεξεργασίας των συλλεγόμενων
δεδομένων και της μορφοποίησης της εξόδου των προγραμμάτων. Αυτό έχει ως
αποτέλεσμα τα ποιο εξελιγμένα προγράμματα σε γλώσσα D να αποτελούνται
σε μεγάλο βαθμό από κώδικα κάποιας άλλης γλώσσας, για παράδειγμα Perl
ή Python.
Σκοπός της προτεινόμενης εργασίας είναι ο σχεδιασμός και η υλοποίηση επεκτάσεων της γλώσσας D ώστε να επιτρέπει τουλάχιστο:
-
Την εκτέλεση κατά συνθήκη στο σώμα ενός probe, για παράδειγμα:
pid123::write:entry
{
if / args[2] > 20 /
@totals["writes larger than 20 bytes"] = count();
}
-
Συνένωση δομών συγκέντρωσης (aggregations) και μορφοποίηση εξόδου, για παράδειγμα:
:::END
{
@merged = merge(1, @totals, @total_time);
printa("%s: %d %d", @merged[0], @totals[2], @total_time[2]);
}
Ο κώδικας του 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 και
κωδικούς κυψέλης, προερχόμενους από κινητό τηλέφωνο) για τον αυτόματο
(προσεγγιστικό) υπολογισμό της θέσης μας.
Η παρακάτω εικόνα δείχνει τμήμα μιας καταγεγραμμένης διαδρομής κατά μήκος της
λεωφόρου Κηφισιάς και της Αττικής οδού καθώς και τις αντίστοιχες αλλαγές
κυψελών.
Έρευνα υιοθέτησης λογισμικού ανοικτού κώδικα (καταργήθηκε 2011)
Παρόλο που το λογισμικό ανοικτού κώδικα χρησιμοποιείται σε πολλές εφαρμογές,
η έκταση και το εύρος της χρήσης του δεν έχει τεκμηριωθεί επαρκώς.
Στόχος της εργασίας αυτής είναι η βιβλιογραφική έρευνα για
πληροφοριακά συστήματα ή ενσωματωμένες εφαρμογές στις οποίες χρησιμοποιείται
λογισμικό ανοικτού κώδικα.
Η εργασία περιλαμβάνει την εύρεση, καταχώρηση και συστηματική κατηγοριοποίηση
των εφαρμογών αυτών.
Βιβλιογραφία
Οπτικοποίηση και ανάλυση δυναμικών χρήσης εργαλείων ελέγχου εκδόσεων λογισμικού (καταργήθηκε 2008)
Τα συστήματα ελέγχου εκδόσεως λογισμικού κρατούν λεπτομερή στοιχεία
για όλες τις αλλαγές που γίνονται στο λογισμικό κατά τη διάρκεια της
ανάπτυξής του.
Η post mortem ανάλυση των αλλαγών που έγιναν σε ένα μεγάλο σώμα
λογισμικού σε μακρύ χρονικό διάστημα και από περισσότερα άτομα μπορεί να
προσδιορίσει ενδιαφέροντα στοιχεία για το λογισμικό και την ομάδα που το
ανέπτυξε όπως:
- το διαχωρισμό των αρχείων του συστήματος σε λειτουργικές ομάδες,
- τους ρόλους και τις υπευθυνότητες του προσωπικού που εργάστηκε στο έργο,
- την αλληλοεξάρτηση των αρχείων,
- τον κύκλο ζωής της ανάπτυξης,
- την ποιότητα απαιτήσεων, σχεδιασμού και υλοποίησης για
συγκεκριμένες λειτουργίες, και
- την ποιότητα υλοποίησης για συγκεκριμένα άτομα.
Τα παραπάνω μπορούν να διερευνηθούν σε επίπεδο αρχείου ή, με λίγη πρόσθετη
ανάλυση, σε επίπεδο διαδικασίας ή συνάρτησης.
Υλοποίηση
Η εργασία αυτή δεν προσφέρεται πλέον, μια και έχει υλοποιηθεί παρόμοια
λειτουργικότητα στο έργο code_swarm (http://vis.cs.ucdavis.edu/~ogawa/codeswarm/).
Βιβλιογραφία
- Walter F. Tichy.
Design, implementation, and evaluation of a revision control system,.
In Proceedings of the 6th International Conference on Software
Engineering. IEEE, September 1982.
- Stephen G. Eick, Michael C. Nelson, and Jeffery D. Schmidt
Graphical Analysis of Computer Log Files
Communications of the ACM, 37(12):50-56, December 1994.
- S. G. Eick and J. L. Steffen and E. E. Summer
Seesoft - a tool for visualizing line oriented software statistics
IEEE Transactions on Software Engineering, 18(11):957-968,
November 1992.
Εκτέλεση κρυπτογραφημένου λογισμικού σε έξυπνες κάρτες (καταργήθηκε 2007)
Οι έξυπνες κάρτες (http://en.wikipedia.org/wiki/Smartcard)
επιτρέπουν την εκτέλεση λογισμικού σε περιβάλλον που δυσκολεύει
σημαντικά την πρόσβαση σε μη εξουσιοδοτημένους τρίτους.
Σύγχρονες έξυπνες κάρτες επιτρέπουν την εκτέλεση προγραμμάτων γραμμένων σε Java (http://www.gemplus.com/products/gemxpresso_pro_range/).
Στόχος της εργασίας είναι η προσαρμογή προγραμμάτων Java που εκτελούνται
σε έναν προσωπικό υπολογιστή έτσι ώστε μέρος τους να εκτελείται
κρυπτογραφημένα στο περιβάλλον της έξυπνης κάρτας.
Σημασία στο εγχείρημα αυτό έχουν η αυτοματοποίηση της διαδικασίας,
η ασφάλεια και η απόδοση.
Βιβλιογραφία
- C. Lambrinoudakis.
Smart card technology for deploying a secure information management framework.
Information Management and Computer Security, 8(4):173183, May
2000.
(doi:10.1108/09685220010344925 (http://dx.doi.org/10.1108/09685220010344925))
- Diomidis Spinellis.
Reflection as a mechanism for software integrity verification (http://www.dmst.aueb.gr/dds/pubs/jrnl/1999-TISS-Reflect/html/reflect.html).
ACM Transactions on Information and System Security, 3(1):51–62, February 2000.
(doi:10.1145/353323.353383 (http://dx.doi.org/10.1145/353323.353383))
- Mike Jochen, Lisa
Marvel, and Lori Pollock.
A
framework for tamper detection marking of mobile applications.
In International Symposium on Software Reliability Engineering
(ISSRE), November 2003.
- Mike Jochen, Lori
Pollock, and Lisa Marvel.
Tamper detection marking for object files.
In Military Communications Conference, MILCOM, pages 747751,
October 2003.
Μετατροπή της 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 υπολογίζει βέλτιστες τέτοιες συναρτήσεις
για χρήση στο τμήμα της λεκτικής ανάλυσης μεταγλωττιστών.
Η πληθώρα των δυνατών συναρτήσεων κατακερματισμού και ο εύκολος τρόπος
αξιολόγησής τους επιτρέπουν τη χρήση γενετικών αλγορίθμων για την
"εξέλιξη" μιας βέλτιστης συνάρτησης από έναν πληθυσμό δυνατών συναρτήσεων.
Η εργασία περιλαμβάνει τη χρήση γενετικών αλγορίθμων για τον υπολογισμό
βέλτιστων συναρτήσεων κατακερματισμού.
Η δυναμική αποτίμηση της συνάρτησης μπορεί να οδηγήσει σε αποδοτικό
αλγόριθμο αναζήτησης.
Βιβλιογραφία
- David E. Goldberg.
Genetic Algorithms: In Search of Optimization & Machine Learning.
Addison-Wesley, 1989.
-
Schmidt, Douglas C. GPERF: A Perfect Hash Function Generator
Second USENIX C++ Conference Proceedings, April 1990.
- Χρήστος Κοίλιας
Δομές Δεδομένων και Οργανώσεις Αρχείων. σ. 208-221
Εκδόσεις Νέων Τεχνολογιών, 1993.
- Donald E. Knuth.
The Art of Computer Programming, volume 3 / Searching
and Sorting.
Addison-Wesley, second edition, 1973.
- Andrew Hume.
Grep wars: The strategic search initiative.
In Proceedings of the EUUG Spring 88 Conference, pages 237-245.
European UNIX User Group, 1988.
- Niklaus Wirth.
Algorithms + Datastructures = Programs. p. 169-280.
Prentice-Hall, 1976.
-
Chang, C.C.: A Scheme for Constructing Ordered Minimal Perfect
Hashing Functions Information Sciences 39(1986), 187-195.
-
Cichelli, Richard J. Author's Response to "On Cichelli's Minimal Perfect Hash
Functions Method" Communications of the ACM, 23, 12(December 1980), 729.
-
Cichelli, Richard J. Minimal Perfect Hash Functions Made Simple
Communications of the ACM, 23, 1(January 1980), 17-19.
-
Cook, C. R. and Oldehoeft, R.R. A Letter Oriented Minimal
Perfect Hashing Function SIGPLAN Notices, 17, 9(September 1982), 18-27.
-
Cormack, G. V. and Horspool, R. N. S. and Kaiserwerth, M.
Practical Perfect Hashing Computer Journal, 28, 1(January 1985), 54-58.
-
Jaeschke, G. Reciprocal Hashing: A Method for Generating Minimal
Perfect Hashing Functions Communications of the ACM, 24, 12(December
1981), 829-833.
-
Jaeschke, G. and Osterburg, G. On Cichelli's Minimal Perfect
Hash Functions Method Communications of the ACM, 23, 12(December 1980),
728-729.
-
Sager, Thomas J. A Polynomial Time Generator for Minimal Perfect
Hash Functions Communications of the ACM, 28, 5(December 1985), 523-532
-
Sebesta, R.W. and Taylor, M.A. Minimal Perfect Hash Functions
for Reserved Word Lists SIGPLAN Notices, 20, 12(September 1985), 47-53.
-
Sprugnoli, R. Perfect Hashing Functions: A Single Probe
Retrieving Method for Static Sets Communications of the ACM, 20
11(November 1977), 841-850.
Έλεγχος τύπων μεταξύ αρχείων της 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)
- Χρήστος Κοίλιας
Δομές Δεδομένων και Οργανώσεις Αρχείων. σ. 98-105
Εκδόσεις Νέων Τεχνολογιών, 1993.
- Alfred V. Aho, John E. Hopcroft,
and Jeffrey D. Ullman.
The Design and Analysis of Computer Algorithms, pages 172-309.
Addison-Wesley, 1974.
- Alfred V. Aho, John E. Hopcroft,
and Jeffrey D. Ullman.
Data Structures and Algorithms, pages 198-252.
Addison-Wesley, 1983.
- Donald E. Knuth.
The Art of Computer Programming, volume 1 / Fundamental
Algorithms, pages 362-378.
Addison-Wesley, second edition, 1973.
- Robert Sedgewick.
Algorithms in C, pages 415-508.
Addison-Wesley, 1990.
Ασφαλές περιβάλλον εργασίας Unix σε Perl (καταργήθηκε 2007)
Η γλώσσα Perl
επιτρέπει την εύκολη υλοποίηση προγραμμάτων συστήματος σε χώρο και χρόνο
υποπολλαπλάσιο αυτού που απαιτείται για την υλοποίησή τους σε C. Μια
πρόσθετη δυνατότητα της γλώσσας επιτρέπει την υλοποίηση ασφαλών
προγραμμάτων με δυναμικό έλεγχο ροής δεδομένων ανάμεσα σε προστατευμένα
και μη προστατευμένα πεδία (domain tainting). Ο σχεδιασμός και η
υλοποίηση του φλοιού του Unix καθώς και των βασικών εντολών του σε Perl
μπορούν να δημιουργήσουν ένα περιβάλλον για την ασφαλή ανάπτυξη προγραμμάτων
συστήματος.
Βιβλιογραφία
Προσθήκη καθοριζόμενου τελεστή για πρόσβαση σε μέλη της C++ (καταργήθηκε 2007)
Η γλώσσα C++ δεν επιτρέπει τον καθορισμό του τελεστή . μια και ο δεξιός του
τελεστέος δεν είναι τιμή αλλά μια σταθερά.
Με τη χρήση του καθοριζόμενου τελεστή . μπορεί να αποφευχθεί ο άχρηστος
καθορισμός μεθόδων πρόσβασης (accessor methods) (get* set*) που
συνηθίζεται κατά τον αντικειμενοστρεφή σχεδιασμό.
Η εργασία περιλαμβάνει την προσθήκη στο μεταγλωττιστή gcc του παραπάνω
τελεστή.
Ιδιαίτερο ενδιαφέρον παρουσιάζει ο χειρισμός δεικτών σε μέλη ο οποίος
μπορεί να υλοποιηθεί εύκολα και αποδοτικά.
Βιβλιογραφία
Γλώσσες εξειδεικευμένου πεδίου βασισμένες στην XML (καταργήθηκε 2007)
Υποσυστήματα λογισμικού μπορούν συχνά να σχεδιαστούν και να υλοποιηθούν με καθαρό ευσύνοπτο και αισθητικά άρτιο τρόπο με τη χρήση εξειδικευμένων γλωσσικών φορμαλισμών.
Σε περιπτώσεις όπου ο φορμαλισμός αυτός είναι ασύμβατος με την κύρια γλώσσα υλοποίησης χρησιμοποιούμε εξειδικευμένες "μικρές γλώσσες".
Τις γλώσσες αυτές τις ονομάζουμε γλώσσες εξειδικευμένου πεδίου (ΓΕΠ) - domain-specific languages (DSL).
Τέτοιες περιπτώσεις μπορούν να εμφανιστούν όταν στοιχεία του προγράμματος ή των δεδομένων επαναλαμβάνονται, στην προδιαγραφή σύνθετων σταθερών, στην υποστήριξη μιας περίπλοκης διεργασίας ανάπτυξης, στην υλοποίηση συστημάτων για τα οποία δεν υπάρχει άμεση υποστήριξη από το περιβάλλον ανάπτυξης, στον πολυπαραδειγματικό προγραμματισμό και σε άλλες σύνθετες υλοποιήσεις.
Ένα πρόβλημα με τη χρήση των ΓΕΠ είναι οι εξοικίωση των χρηστών τους
με τη σύνταξη που η κάθε μια χρησιμοποιεί.
Η εργασία αυτή θα διερευνήσει το κατά πόσο η XML μπορεί να χρησιμοποιηθεί ως
μια ΓΕΠ γενικής εφαρμογής.
Στοιχεία που ενδιαφέρουν είναι:
- ο τρόπος ορισμού μιας ΓΕΠ σε XML,
- εργαλεία γραφής της ΓΕΠ βασισμένα σε εργαλεία της XML,
- μεταγλώττιση της ΓΕΠ με τη χρήση βιβλιοθηκών και εργαλείων XML.
Βιβλιογραφία
- Diomidis Spinellis
and V. Guruprasad.
Lightweight languages as software engineering tools.
In [Ramming, 1997], pages 67-76.
- Diomidis Spinellis.
Notable design patterns for domain specific languages.
Journal of Systems and Software, 56(1):91-99, February 2001.
- J. Christopher Ramming, editor.
USENIX Conference on Domain-Specific Languages, Santa Monica, CA, USA,
October 1997. Usenix Association.
-
XML.COM - XML News Feed: All You Can Parse (http://www.xml.com/xml/pub)
- Diomidis Spinellis.
Reliable software implementation using domain specific
languages.
In G. I. Schuëller and P. Kafka, editors, Proceedings ESREL '99 ---
The Tenth European Conference on Safety and Reliability, pages
627-631, Munich-Garching, Germany, September 1999. ESRA, VDI, TUM, A. A.
Balkema.
- Diomidis Spinellis
and Dimitris Gritzalis.
A domain-specific language of intrusion detection.
In Proceedings of the 1st ACM Workshop on Intrusion Detection
Systems. ACM, November 2000.
- Elliotte Rusty Harold and
W. Scott Means.
XML
in a Nutshell.
O'Reilly and Associates, Sebastopol, CA, USA, 2001.
Σχεσιακή πρόσβαση σε δομές δεδομένων (καταργήθηκε 2006)
Οι σύγχρονες γλώσσες, όπως η Java και η C++, επιτρέπουν την
εύκολη δημιουργία τυποποιημένων δομών δεδομένων μέσω
περιεχόντων (containers).
Συχνά όμως θέλουμε μια πιο σύνθετη πρόσβαση σε ένα σύστημα που περιέχει τέτοιες
δομές, για να θέσουμε λ.χ. απαιτητικά ερωτήματα.
Αυτή θα μπορούσε να επιτευχθεί με μια σχεσιακή γλώσσα διεπαφής, όπως η SQL.
Στόχος της εργασίας αυτής είναι η μετατροπή μιας ενσωματωμένης
σχεσιακής βάσης δεδομένων όπως η
HSQLDB (http://www.hsqldb.org/) (Java) ή η
SQLite (http://www.sqlite.org/) (C) έτσι ώστε να μπορεί
να δίνει εύκολα σχεσιακή πρόσβαση σε περιέχοντες.
Ανάλογο παράδειγμα είναι η βιβλιοθήκη SWILL που επιτρέπει εύκολα
σ'ένα πρόγραμμα να δρα ως εξυπηρετητής ιστού.
Βιβλιογραφία
- Sotiria Lampoudi and
David M. Beazley.
SWILL: A simple embedded web server library.
In USENIX Technical Conference Proceedings, Monterey, CA, USA,
June 2002. Usenix Association.
FREENIX Track Technical Program.
Αυτόματη ανίχνευση επιθέσεων ένεσης SQL (καταργήθηκε 2006)
Οι επιθέσεις ένεσης SQL (SQL injection attacks) βασίζονται στην
εισαγωγή δεδομένων που θα προκαλέσουν τη μη εξουσιοδοτημένη
εκτέλεση εντολών SQL.
Η εργασία αυτή περιλαμβάνει το σχεδιασμό και την υλοποίηση ενός
προστατευτικού περιβλήματος για βιβλιοθήκες διασύνδεσης με τη βάση
δεδομένων, όπως αυτές που υποστηρίζουν τα πρωτόκολλα ODBC και JDBC.
Το περίβλημα, θα συνδέει εντολές SQL με αντίστοιχους τόπους κλήσης
τους, έτσι ώστε σε περίπτωση που κληθούν άλλες μη επιτρεπόμενες εντολές να τις
ανιχνεύει και να απογερεύει την εκτέλεσή τους ή να σημαίνει συναγερμό.
Βιβλιογραφία
- Stephen Boyd and
Angelos Keromytis.
SQLrand: Preventing SQL injection attacks.
In Markus Jakobsson, Moti Yung, and Jianying Zhou, editors, Applied
Cryptography and Network Security, Second International Conference, ACNS
2004, Yellow Mountain, China, June 8-11, 2004, Proceedings, volume
3089 of Lecture Notes in Computer Science. Springer, 2004.
- Yves Younan, Wouter
Joosen, and Frank Piessens.
A methodology for
designing countermeasures against current and future code injection
attacks.
In Proceedings of the Third IEEE International Information Assurance
Workshop 2005 (IWIA2005). IEEE, March 2005.
- Mark Graff and Ken van Wyk.
Secure Coding.
O'Reilly and Associates, Sebastopol, CA, 2003.
- Michael Howard and David LeBlanc.
Writing Secure Code.
Microsoft Press, Redmond, WA, second edition, 2003.
- John Viega and Gary McGraw.
Building Secure Software: How to Avoid Security Problems the Right Way.
Addison-Wesley, Boston, MA, 2001.
Νέα Επιχειρησιακά Μοντέλα στην Ανάπτυξη και Διάθεση Λογισμικού - Ανάλυση Διεθνών Πρακτικών και Ανάπτυξη Εργαλείου Υποστήριξης Αποφάσεων (καταργήθηκε 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)
για τη βελτιστοποίηση του παραγώμενου κώδικα.
Βιβλιογραφία
- David Boctor.
Microsoft Office 2000 Visual Basic Fundamentals.
Microsoft Press, Redmond, WA, USA, 1999.
- Alfred V. Aho, Ravi Sethi, and
Jeffrey D. Ullman.
Compilers, Principles, Techniques, and Tools.
Addison-Wesley, 1985.
-
Doug Bell and Mike Parr. Spreadsheets: a research agenda. ACM SIGPLAN
Notices, 28(9):26-28, September 1993.
-
Spreadsheet Research (http://www.cba.hawaii.edu/panko/ssr/)
- Christoph M. Hoffmann,
Michael J. O'Donnel, and Robert I. Strandh.
Implementation of an interpreter for abstract equations.
Software: Practice & Experience, 15(12):1185-1204, December
1985.
Διαμόρφωση προγραμμάτων μέσω 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.
Βιβλιογραφία
- Alfred V. Aho, Ravi Sethi,
and Jeffrey D. Ullman.
Compilers, Principles, Techniques, and Tools.
Addison-Wesley, Reading, MA, 1985.
- Diomidis Spinellis.
Notable design patterns for domain specific languages.
Journal of Systems and Software, 56(1):91-99, February 2001.
- Elliotte Rusty Harold and
W. Scott Means.
XML
in a Nutshell.
O'Reilly and Associates, Sebastopol, CA, USA, 2001.
Δικαιώματα και λίστες ελέγχου πρόσβασης στο Unix (καταργήθηκε 2004)
Το λειτουργικό σύστημα Windows, όπως και ορισμένα άλλα λειτουργικά συστήματα,
ελέγχει την πρόσβαση σε αντικείμενα (λ.χ. αρχεία) με βάση τις
λίστες ελέγχου πρόσβασης (access control lists).
Επίσης, περιορίζει τη χρήση ορισμένων κλήσεων του συστήματος
(π.χ. SetSystemPowerState) σε χρήστες που έχουν τα συγκεκριμένα
δικαιώματα (privileges).
Στόχος της εργασίας είναι η προσθήκη των παραπάνω δυνατοτήτων σε
ένα λειτουργικό σύστημα ανοιχτού πηγαίου κώδικα τύπου Unix,
όπως το FreeBSD, OpenBSD ή το Linux.
Οι λίστες πρόσβασης μπορούν να υλοποιηθούν με βάση την υπάρχουσα
υποστήριξη ομάδων χρηστών και τη δυναμική δημιουργία συνθετικών ομάδων
(π.χ. acl_453).
Τα μέλη των συνθετικών ομάδων θα υπολογίζονται με
λογισμό επί των δικαιωμάτων των αντικειμένων και των υπαρχόντων ομάδων.
Με τον τρόπο αυτό δεν απαιτούνται αλλαγές στον πυρήνα ή σε υπάρχοντα
προγράμματα.
Τα δικαιώματα στις κλήσεις του λειτουργικού συστήματος,
υλοποιούνται με αλλαγές στον πυρήνα.
Ένας παραμετρικός τρόπος προδιορισμού είναι η προσθήκη
αρχείων που καθορίζουν την ομάδα χρηστών που έχει τη συγκεκριμένη δυνατότητα
κλήσης (π.χ. /etc/privileges/acct).
Βιβλιογραφία
- Michael Howard and
David LeBlanc.
Writing Secure Code.
Microsoft Press, Redmond, WA, second edition, 2003.
- Kay A. Robbins and
Steven Robbins.
UNIX Systems Programming: Communication, Concurrency, and
Threads.
Prentice Hall PTR, Upper Saddle River, NJ, 2003.
- Eric Steven Raymond.
The Art of Unix Programming.
Addison-Wesley, 2003.
- Andrew S. Tanenbaum.
Operating Systems: Design and Implementation.
Prentice-Hall, Englewood Cliffs, NJ, 1987.
- Maurice J. Bach.
The
Design of the UNIX Operating System.
Prentice-Hall, Englewood Cliffs, NJ, 1986.
- Samuel J. Leffler,
Marshall Kirk McKusick, Michael J. Karels, and John S. Quarterman.
The
Design and Implementation of the 4.3BSD Unix Operating System.
Addison-Wesley, Reading, MA, 1988.
- W. Richard Stevens.
Advanced Programming in the UNIX Environment.
Addison-Wesley, 1992.
- Gary Fernandez and Larry Allen.
Extending the {UNIX} Protection Model with Access Control Lists.
In Proceedings of the Summer 1988 Technical Conference
pp. 119--132, Usenix Association.
- Steven M. Kramer.
On Incorporating Access Control Lists into the {UNIX} Operating System.
In Proceedings of the Summer 1988 Technical Conference
pp. 38--48, Usenix Association.
Υλοποίηση ασφαλούς ομότιμου δικτύου για την ανταλλαγή μηνυμάτων σχετικά με την δραστηριότητα κακόβουλου λογισμικού (καταργήθηκε 2003)
Η εργασία περιγράφεται στη σελίδα
http://istlab.dmst.aueb.gr/~vbill/topic.htm (http://istlab.dmst.aueb.gr/~vbill/topic.htm)
Μέτρηση συνέπειας στον πηγαίο κώδικα προγραμμάτων (καταργήθηκε 2003)
Η συνέπεια στο πως έχει γραφεί ένα πρόγραμμα είναι συχνά σημαντικός
παράγοντας που είναι πιθανό να μπορεί να χρησιμοποιηθεί για να προβλέψει
άλλα στοιχεία της συμπεριφοράς του προγράμματος, όπως την παρουσία λαθών.
Στόχος της εργασίας αυτής είναι η χρήση στατιστικών τεχνικών για την
ανάλυση της συνέπειας (η ασυνέπειας) που εμφανίζεται στον τρόπο που
έχει γραφεί ο πηγαίος κώδικας.
Η ανάλυση του κώδικα θα γίνει με εργαλείο που θα αναπτυχθεί στα πλαίσια
της εργασίας.
Στοιχεία που θα αναλυθούν μπορεί να είναι:
- Η στοίχιση των γραμμών
- Η χρήση κενών ανάμεσα σε τελεστές
- Το μέγιστο μήκος των γραμμών
- Τα χαρακτηριστικά των ονομάτων των μεταβλητών
Στην εργασία θα μελετηθεί η αλληλοσυσχέτιση των παραπάνω κατηγοριών
καθώς και η σχέση τους με τη χρήση βέλτιστων πρακτικών γραφής κώδικα
και με συχνά εμφανιζόμενα λάθη.
Βιβλιογραφία
Μεταγλωττιστής κανονικών εκφράσεων σε Java bytecodes (καταργήθηκε 2003)
Οι κανονικές εκφράσεις χρησιμοποιούνται σε πολλές εφαρμογές επεξεργασίας
συμβολοσειρών.
Η αποδοτική χρήση τους είναι σημαντική και αντικείμενο έρευνας.
Οι εκφράσεις συχνά μεταγλωττίζονται σε αφηρημένο κώδικα ενός αυτόματου
το οποίο και τις εκτελεί.
Η εργασία αυτή έχει ως στόχο τη μεταγλώττιση κανονικών εκφράσεων στη
γλώσσα της αφηρημένης μηχανής της Java (Java bytecodes) με στόχο
την αποδοτική εκτέλεσή τους.
Βιβλιογραφία
- Ken Arnold and James Gosling. The Java Programming Language.
Addisson-Wesley, 1996.
- Andrew Hume.
Grep wars: The strategic search initiative.
In Proceedings of the EUUG Spring 88 Conference, pages 237-245.
European UNIX User Group, 1988.
- Tim Lindhorn and Frank
Yellin.
The Java
Virtual Machine Specification.
The Java Series. Addison-Wesley, 1997.
Διεπαφή σχεσιακής βάσης δεδομένων πηγαίου κώδικα (καταργήθηκε 2003)
Είναι δυνατό ένα σύνολο από προγράμματα να αναλυθεί και να αποθηκευτεί σε
σχεσιακή βάση δεδομένων με τέτοιο τρόπο ώστε ο πηγαίος κώδικας να μπορεί
να ανασυσταθεί από το περιεχόμενο της βάσης.
Ένα κατάλληλο σχεσιακό σχήμα θα επέτρεπε να γίνονται στη βάση μόνο
μετασχηματισμοί που θα οδηγούσαν πάλι σε ορθά προγράμματα (refactoring).
Στόχος της εργασίας είναι η υλοποίηση διεπαφής για μια τέτοια βάση
δεδομένων.
Το σύστημα θα υλοποιηθεί σε Java με τη χρήση JDBC για επικοινωνία με τη
βάση δεδομένων.
Είναι επίσης δυνατό να χρησιμοποιηθεί η ενσωματωμένη βάση δεδομένων
hsqldb (http://hsqldb.sourceforge.net/).
Η διεπαφή μπορεί να υλοποιηθεί είτε σε περιβάλλον swing ή σε περιβάλλον
web με τη χρήση ενός ενσωματωμένου εξυπηρετητή Web.
Βιβλιογραφία
- Ken Arnold and James Gosling. The Java Programming Language.
Addisson-Wesley, 1996.
- Martin Fowler.
Refactoring: Improving the Design of Existing Code
Addison-Wesley, 2000.
Φλοιός XML (καταργήθηκε - 2002)
Η XML επιτρέπει τον εύκολο προσδιορισμό και την επεξεργασία σύνθετων δομών δεδομένων.
Η επεξεργασία των δεδομένων μπορεί να πραγματοποιηθεί γράφοντας κώδικα,
με τη χρήση γλωσσών μετασχηματισμού,
μέσα από ένα γραφικό περιβάλλον ή
μέσα από έναν φλοιό εντολών (command shell).
Στόχος της εργασίας αυτής είναι ο σχεδιασμός και η υλοποίηση ενός φλοιού εντολών για την
επεξεργασία σύνθετων δομών ορισμένων με XML.
Η εργασία θα εκμεταλλεύεται υπάρχουσες βιβλιοθήκες XML ανοικτού κώδικα.
Βιβλιογραφία
Ποιες βελτιστοποιήσεις υποστηρίζουν οι σύγχρονοι μεταγλωττιστές C++; (καταργήθηκε - 2002)
Ένας μεγάλος αριθμός από συχνά χρησιμοποιούμενες δομές κώδικα της C++
μπορεί εύκολα να βελτιστοποιηθεί έτσι ώστε να μην επιβαρύνει τον τελικό
κώδικα.
Η εργασία αυτή θα ερευνήσει κατά πόσο μεταγλωττιστές παραγωγής όπως
η Microsoft C++ και ο GNU C++ Compiler υλοποιούν τις βελτιστοποιήσεις
αυτές.
Η έρευνα θα γίνει ακολουθώντας τα βήματα που παρουσιάζονται παρακάτω.
- Περιγραφή των τεχνικών βελτιστοποίησης που παρουσιάζονται στη
βιβλιογραφία (κυρίως στο βιβλίο του Stroustrup).
- Κατασκευή μικρών προγραμμάτων που να υλοποιούν την κάθε τεχνική.
- Μεταγλώττιση και ανάγνωση του παραγόμενου κώδικα.
- Συγκέντρωση και σύγκριση των αποτελεσμάτων.
Βιβλιογραφία
Αυτόματη δημιουργία βιβλιογραφικών αναφορών (καταργήθηκε - 2002)
Το πρόγραμμα BibTeX δημιουργεί αυτόματα λίστες για βιβλιογραφικές αναφορές
με βάση τις παραπομπές που υπάρχουν σε ένα κείμενο.
Το BibTeX διαβάζει:
- αρχεία του επεξεργαστή κειμένου LaTeX,
- αρχεία κειμένου που περιέχουν τη βιβλιογραφία σε ένα απλό σχήμα βάσης
δεδομένων και
- αρχεία σε μια απλή γλώσσα επεξεργασίας στοίβας που περιγράφει
τη μορφή που θα έχει η λίστα των βιβλιογραφικών παραπομπών.
Από τα παραπάνω στοιχεία το πρόγραμμα δημιουργεί τη λίστα των βιβλιογραφικών
αναφορών στη γλώσσα του LaTeX.
Σκοπός της εργασίας αυτής είναι η επανυλοποίηση του συστήματος με τη
χρήση νεώτερης τεχνολογίας.
Μερικά από τα χαρακτηριστικά που μπορεί να έχει το νέο σύστημα είναι
τα παρακάτω:
- ο ορισμός των παραπομπών και η λίστα των αναφορών να μπορεί να
οριστεί παραμετρικά σε διαφορετικές
μορφές όπως LaTeX, RTF ή OLE automation (Microsoft Word), HTML,
- η περιορισμένη και απλοϊκή γλώσσα περιγραφής της μορφής της εξόδου να
εκσυγχρονιστεί με τη χρήση μιας έτοιμης ενσωματούμενης
τυποποιημένης γλώσσας όπως Perl, VBScript, Tcl/Tk.
Για το σκοπό αυτό θα πρέπει να γραφτεί και ένα πρόγραμμα μετατροπής των
υπαρχόντων αρχείων στη νέα γλώσσα.
- η βιβλιογραφική βάση να μπορεί να φυλαχτεί και σε σχεσιακή βάση
δεδομένων,
- η διεπαφή με τη βιβλιογραφική βάση να μπορεί να γίνει με τρόπο
φιλικό για τον αδαή χρήστη μέσα από παραθυρικό περιβάλλον.
Βιβλιογραφία
- Leslie Lamport.
LATEX: A
Document Preparation System.
Addisson-Wesley, 1985.
- John Grossman, editor.
The Chicago
Manual of Style.
The University of Chicago Press, Chicago and London, fourteenth edition,
1993.
- Oren Patashnik
BibTeXing: Information for general BibTeX Users
8 February 1988.
Available as part of the BibTeX distribution.
http://www.tex.org (http://www.tex.org)
- Oren Patashnik
Designing BibTeX Styles
8 February 1988.
Available as part of the BibTeX distribution.
http://www.tex.org (http://www.tex.org)
- John K. Ousterhout.
Tcl and the
Tk Toolkit.
Addison-Wesley, 1994.
- Larry Wall and Randal L.
Schwartz.
Programming
Perl.
O'Reilly and Associates, Sebastopol, CA, USA, 1990.
Γραφική παράσταση ψηφιακών υπογραφών (καταργήθηκε - 2002)
Ένα πρόβλημα στην υλοποίηση διεργασιών που βασίζονται σε κρυπτογραφικά πρωτόκολλα είναι
η ταύτιση μιας ψηφιακής υπογραφής με την οντότητα στην οποία αυτή ανήκει.
Η ταύτιση αυτή γίνεται συχνά με τη σύγκριση του "αποτυπώματος" της ψηφιακής
υπογραφής με ένα αποτύπωμα το οποίο είναι γνωστό με κάποιον ασφαλή τρόπο.
Ο άνθρωπος δύσκολα συγκρίνει ακολουθίες αριθμών, ενώ αντίθετα έχει εξελικτικά
αναπτύξει ανεπτυγμένη δυνατότητα αναγνώρισης προσώπων.
Η εργασία αυτή περιλαμβάνει το σχεδιασμό και την υλοποίηση συστήματος που
μετασχηματίζει ψηφιακές υπογραφές σε εικόνες προσώπων και την έρευνα
της απόδοσης του συστήματος αυτού για την ταυτοποίηση των υπογραφών.
Βιβλιογραφία
- C. Ellison and
B. Schneier.
Ten risks of pki: What
you're not being told about public key infrastructure.
Computer Security Journal, 16(1):1-7, 2000.
- R. L. Rivest, A. Shamir,
and L. Adleman.
A method for obtaining digital signatures and public-key cryptosystems.
Communications of the ACM, 21(2), February 1978.
- Dorothy Elizabeth Robling Denning.
Cryptography and Data Security.
Addison-Wesley, 1983.
- Bruce Schneier.
Applied Cryptography.
Wiley, second edition, 1996.
- Bruce Schneier.
Secrets & Lies: Digital Security in a Networked World.
Wiley Computer Publishing, 2000.
Οπτικοποίηση διαδρομών 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 (σύστημα που επιτρέπει την
εύκολη υλοποίηση γραφικών εφαρμογών σε παραθυρικά περιβάλλοντα).
Βιβλιογραφία
-
John K. Ousterhout. Tcl and the Tk
Toolkit. Addison-Wesley, 1994.
Η αξιοπιστία παραπομπών στο Internet σε άρθρα περιοδικών (καταργήθηκε - 1999)
Συχνά σε άρθρα επιστημονικών περιοδικών υπάρχουν παραπομπές σε πηγές
στο Internet.
Οι πηγές αυτές δεν έχουν αρχειακό χαρακτήρα και με την πάροδο του
χρόνου παύουν να είναι επίκαιρες απαξιώνοντας έτσι και τα άρθρα τα
οποία παραπέμπουν σε αυτές.
Οι εργασία περιλαμβάνει την υλοποίηση εργαλείου για την αυτόματη
αξιολόγηση παραπομπών στο Web από άρθρα των ACM, IEEE, Usenix κλπ τα οποία
υπάρχουν και σε ηλεκτρονική μορφή ως προς την επικαιρότητά τους και
την εξαγωγή συμπερασμάτων.
Βιβλιογραφία
- Tim Berners-Lee, Robert
Cailliau, Ari Luotonen, Henrik Frystyk Nielsen, and Arthur Secret.
The World-Wide-Web.
Communications of the ACM, 37(8):76-82, August 1994.
Ασφαλής διαμόρφωση εξυπηρετητή ιστοσελίδων (καταργήθηκε - 1999)
Η εξάπλωση
του Internet και του WWW παρέχει μια διαδεδομένη πλατφόρμα για την
υλοποίηση της επικοινωνίας με το χρήστη διαφόρων εφαρμογών.
Προτείνουμε την ανάλυση θεμάτων
ασφαλείας και την υλοποίηση με τη χρήση τεχνολογίας CGI
φιλικού συστήματος ασφαλούς διαμόρφωσης του εξυπηρετητή του ιστού
Apache.
Η πιστοποίηση του χρήστη θα γίνεται με τη χρήση πιστοποιητικών.
Βιβλιογραφία
- Claus Fritzner, Leif Nilsen,
and Asmund Skomedal.
Protecting security information in distributed systems.
In 1991 IEEE Symposium on Security and Privacy, pages 245-254.
IEEE Computer Society Press, 1991.
- Kraig Meyer, Stuart Schaeffer,
and Dixie Baker.
Addressing threats in World Wide Web technology.
In 11th Annual Computer Security Applications Conference, pages
123-132. IEEE Computer Society Press, 1995.
- Charles Pfleeger.
Security in Computing.
Prentice-Hall, 1996.
- Apache Home Page http://www.apache.org
Η αξιοπιστία των προγραμμάτων του Unix: οκτώ χρόνια αργότερα (καταργήθηκε - 1998)
Το 1990 δημοσιεύτηκε στο περιοδικό Communications of the ACM άρθρο
στο οποίο γινόταν εμπειρικός έλεγχος στην αξιοπιστία αντιπροσωπευτικών
βοηθητικών προγραμμάτων του Unix. Σκοπός της εργασίας αυτής είναι ο
επανέλεγχος των αντίστοιχων προγραμμάτων με παρόμοιες μεθόδους σε
αντιπροσωπευτικά εμπορικά και ερευνητικά συστήματα (λ.χ. AIX, Solaris,
Windows NT, Linux) και η εξαγωγή των αντιστοίχων συμπερασμάτων.
Βιβλιογραφία
-
Barton P. Miller, Lars Fredriksen, and Bryan So. An empirical study of
the reliability of UNIX utilities. Communications of the
ACM, 33(12):32-44, December 1990.
Διορθωτής με δυνατότητα αντίστροφης εκτέλεσης προγραμμάτων (καταργήθηκε - 1998)
Συχνά η επόμενη ενέργεια μετά την ανακάλυψη ενός λάθους στο διορθωτή
είναι η επανεκκίνηση του προγράμματος με σκοπό την ανακάλυψη της αιτίας
που οδήγησε στο λάθος αυτό.
Ιδανικά θα έπρεπε να είναι δυνατή η αντίστροφη εκτέλεση των εντολών
από την εντολή που κατέδειξε το λάθος μέχρι την εντολή που το δημιούργησε.
Λόγω του ότι κατά την εκτέλεση των εντολών χάνονται στοιχεία για να μπορέσει
να γίνει δυνατή η αντίστροφη εκτέλεση των εντολών απαιτείται υποστήριξη από
το μεταγλωττιστή.
Σκοπός της εργασίας αυτής είναι η υλοποίηση ενός μεταγλωττιστή (για
ένα υποσύνολο της C) που για κάθε εντολή θα παράγει και κώδικα για την
αναίρεσή της (undo) καθώς και ενός διορθωτή που θα εκμεταλλεύεται τον
παραπάνω κώδικα για να παρέχει τη δυνατότητα αναίρεσης των εντολών.
Βιβλιογραφία
- M. Ducasse and A-M.
Emde.
Opium+, a meta-debugger for Prolog.
In Proceedings of the European Conference on Artificial
Intelligence, pages 272-277, Munich, August 1988. ECCAI.
- R. Seidner and
N. Tindall.
Interactive debug requirements.
In M.S. Johnson, editor, Proceedings of the Software Engineering
Symposium on High-Level Debugging, pages 9-22. ACM SIGSOFT/SIGPLAN,
March 1983.
- Even Adams and
Steven S. Muchnick.
Dbxtool: A window-based symbolic debugger for sun workstations.
Software: Practice & Experience, 16(7):653-669, July 1986.
Μετατροπή Java bytecodes σε C (καταργήθηκε - 1998)
Η μετατροπή των bytecodes που αποτελούν τις κλάσεις της μεταγλωττισμένης
Java σε κώδικα C και η επαναμεταγλώττισή του θα μπορούσε να προσφέρει
βελτίωση της αποδοτικότητας χωρίς προβλήματα μεταφερσιμότητας.
Η εργασία αυτή περιλαμβάνει την υλοποίηση της μεθόδου αυτής και την
αξιολόγηση της αποδοτικότητας του παραγόμενου κώδικα.
Βιβλιογραφία
- Ken Arnold and James Gosling. The Java Programming Language.
Addisson-Wesley, 1996.
- Tim Lindhorn and Frank
Yellin. The Java Virtual Machine Specification.
The Java Series. Addison-Wesley, 1997.
- Ian Piumarta and Fabio Riccardi.
Optimizing direct threaded code by selective inlining
In proceedings of the 1998 ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI)
SIGPLAN Notices 33(5):291-300. May 1998.
Ασφαλής κατάλογος LDAP (καταργήθηκε - 1998)
Οι υπηρεσίες καταλόγου για την πιστοποίηση εξυπηρετητών και πελατών
πρέπει να προσφέρονται και να ανακτώνται με ασφαλή τρόπο όταν τα στοιχεία
πρόκειται να περάσουν μέσα από ένα ανοικτό δίκτυο.
Η εργασία περιλαμβάνει την προσθήκη σε λογισμικό καταλόγου LDAP
(lightweight directory access protocol)
χαρακτηριστικών ασφαλείας με την υποστήριξη της τεχνολογίας SSL
(secure session layer).
Βιβλιογραφία
- Yeong, W., Howes, T., and S. Kille (1995)
Lightweight Directory Access Protocol, RFC 1777,
Performance Systems International, University of Michigan,
ISODE Consortium. Request for Comments 1777.
Σύνδεση εξυπηρετητή Web με εξυπηρετητή καταλόγου (καταργήθηκε - 1998)
Οι υπηρέτες Web μπορούν να διασφαλίσουν την ταυτότητα του χρήστη τους με
τη χρήση πιστοποιητικών.
Στόχος της εργασίας αυτής είναι η σύνδεση του υπηρέτη Web Apache με
έναν υπηρέτη πιστοποιητικών.
Ο υπηρέτης Apache περιλαμβάνει ένα δομημένο αντικειμενοστρεφές
μοντέλο για την προσθήκη λειτουργιών σε όλα τα στάδια της ανάκτησης
και αποστολής ιστοσελίδων και έτσι επιτρέπει σχετικά εύκολα τη σύνδεση
με άλλες υπηρεσίες.
Βιβλιογραφία
- Yeong, W., Howes, T., and S. Kille (1995)
Lightweight Directory Access Protocol, RFC 1777,
Performance Systems International, University of Michigan,
ISODE Consortium. Request for Comments 1777.
- Apache Home Page http://www.apache.org
Εργαλείο ανάλυσης και διαχείρισης κινδύνων σε πληροφοριακά συστήματα (καταργήθηκε - 1997)
Κατά την ανάπτυξη και τη διαχείριση των πληροφοριακών συστημάτων που
περιέχουν προσωπικά ή ευαίσθητα δεδομένα (σύμφωνα με το Ν. 2472/97
ευαίσθητα δεδομένα είναι αυτά που αφορούν τη
φυλετική ή εθνική προέλευση, τα πολιτικά φρονήματα,
τις θρησκευτικές ή φιλοσοφικές πεποιθήσεις,
τη συμμετοχή σε ένωση, σωματείο και συνδικαλιστική οργάνωση, την υγεία,
την κοινωνική πρόνοια και την ερωτική ζωή, καθώς και τα σχετικά με ποινικές
διώξεις ή καταδίκες) απαιτείται να λαμβάνονται
τα κατάλληλα οργανωτικά και τεχνικά μέτρα για την ασφάλεια
των δεδομένων και την προστασία τους από τυχαία ή αθέμιτη καταστροφή,
τυχαία απώλεια, αλλοίωση, απαγορευμένη διάδοση ή πρόσβαση και κάθε άλλη
μορφή αθέμιτης επεξεργασίας.
Τα μέτρα αυτά πρέπει να εξασφαλίζουν επίπεδο ασφάλειας ανάλογο προς τους
κινδύνους που συνεπάγεται η επεξεργασία και η φύση των δεδομένων που
είναι αντικείμενο της επεξεργασίας.
Στόχος της εργασίας είναι η υλοποίηση ενός εργαλείου το οποίο με τη
χρήση της κατάλληλης μεθόδου (π.χ. της CRAMM: UK Government Risk
Analysis and Management Method) θα βοηθά:
- στην ανάλυση του ρίσκου σε πληροφοριακά συστήματα και δίκτυα,
- στον προσδιορισμό των απαιτήσεων ασφάλειας και πιθανών λύσεων, και
- στον προσδιορισμό των απαιτήσεων αντιμετώπισης
απροβλέπτων γεγονότων και πιθανών λύσεων.
Το εργαλείο θα μπορεί να χρησιμοποιείται σε όλα τα στάδια του κύκλου ζωής
του λογισμικού, από την αρχική μελέτη σκοπιμότητας, το σχεδιασμό και την
υλοποίηση, μέχρι τη συντήρηση.
Βιβλιογραφία
-
Information Technology Security Evaluation Criteria
, published by the Office for Official Publications of the European Communities.
-
A Code of Practice for Information Security Management
, (BS7799), published by the British Standards Institute.
Ιδεατή συσκευή τραπεζικών συναλλαγών στο Internet (καταργήθηκε - 1997)
Η εξάπλωση
του Internet και του WWW παρέχει μια διαδεδομένη πλατφόρμα για την
υλοποίηση δικτυακών εφαρμογών. Προτείνουμε την ανάλυση θεμάτων
ασφαλείας και την υλοποίηση σε γλώσσα Java μιας ιδεατής συσκευής
τραπεζικών συναλλαγών (ATM) η οποία θα επιτρέπει με ασφαλή τρόπο τη
διεκπεραίωση από το σπίτι όλων των συναλλαγών που δεν απαιτούν παρουσία
στην τράπεζα (υπόλοιπο λογαριασμού, μεταφορά μεταξύ λογαριασμών,
εκτύπωση συναλλαγών, πληρωμή λογαριασμών κ.λπ.)
Βιβλιογραφία
-
Ken Arnold and James Gosling. The Java Programming Language.
Addisson-Wesley, 1996.
- Claus Fritzner, Leif Nilsen,
and Asmund Skomedal.
Protecting security information in distributed systems.
In 1991 IEEE Symposium on Security and Privacy, pages 245-254.
IEEE Computer Society Press, 1991.
- Gary McGraw and Edward
Felten.
Java Security Hostile Applets, Holes, and Antidotes.
J. Wiley & Sons, 1996.
- Kraig Meyer, Stuart Schaeffer,
and Dixie Baker.
Addressing threats in World Wide Web technology.
In 11th Annual Computer Security Applications Conference, pages
123-132. IEEE Computer Society Press, 1995.
- Charles Pfleeger.
Security in Computing.
Prentice-Hall, 1996.
Σύστημα διαχείρισης αλλαγών λογισμικού βασισμένο σε σχεσιακή βάση δεδομένων (καταργήθηκε - 1997)
Τα περισσότερα συστήματα διαχείρισης αλλαγών
λογισμικού (Revision Control Systems) υλοποιούν το συντονισμό των
αλλαγών χτίζοντας εξ' αρχής μια ad hoc βάση δεδομένων χρησιμοποιώντας ως
δομικά στοιχεία αρχεία του λειτουργικού συστήματος. Η υλοποίηση των
συναλλαγών, του κλειδώματος και της αποθήκευσης των διαφορετικών
εκδόσεων γίνεται περίπλοκη και δύσκολα μεταφερτή ανάμεσα σε διαφορετικά
λειτουργικά συστήματα ή ακόμα και συστήματα αποθήκευσης (λ.χ. NFS). Η
εργασία περιλαμβάνει την υλοποίηση συστήματος διαχείρισης αλλαγών
λογισμικού βασισμένου σε σχεσιακή βάση δεδομένων (λ.χ. Ingres) καθώς και
την υλοποίηση συστήματος διεπαφής με το χρήστη τεχνικής
πελάτη-εξυπηρετητή (client-server).
Βιβλιογραφία
- Walter F. Tichy.
Design, implementation, and evaluation of a revision control system,.
In Proceedings of the 6th International Conference on Software
Engineering. IEEE, September 1982.
- M. J. Rochkind. The source
code control system. IEEE Transactions on Software
Engineering, SE-1(4):255-265, 1975.
Προσθήκη ελληνικών στον πολυγλωσσικό ορθογραφικό διορθωτή ispell (καταργήθηκε - 1996)
Ο ορθογραφικός διορθωτής ispell είναι εύκολα παραμετροποιήσιμος με
τη χρήση αρχείων λέξεων και καταλήξεων. Η εργασία αυτή περιλαμβάνει την
ελληνοποίηση του διορθωτή με τη δημιουργία αρχείου ελληνικών λέξεων και
αρχείου καταλήξεων. Τα αρχεία αυτά θα προκύψουν από την επεξεργασία
ελληνικών κειμένων μέσω κατάλληλων εργαλείων και υπαρχόντων διορθωτών.
Βιβλιογραφία:
http://hoth.stsci.edu/gnu/ispell/ispell_toc.html
Περιεχόμενα