Πτυχιακές Εαρινού Εξαμήνου 2013

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

Εντοπισμός τμημάτων «Copy-Paste» σε πηγαίο κώδικα

Ένας από τους πιο συνηθισμένους λόγους εμφάνισης λαθών σε μεγάλα έργα λογισμικού είναι η χρήση του «Copy-Paste» όπου ο προγραμματιστής αντιγράφει κομμάτια κώδικα από ένα σημείο του προγράμματος στο άλλο ξεχνώντας όμως παράλληλα είτε να αλλάξει τα ονόματα των μεταβλητών είτε να αρχικοποιήσει τις μεταβλητές στις τιμές που απαιτεί το νέο κομμάτι κώδικα που γράφει.

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

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

Απαραίτητα Προαπαιτούμενα

Άριστη γνώση των παρακάτω:

Τεχνολογία Λογισμικού Ι και Τεχνολογία Λογισμικού ΙΙ, Προγραμματισμός Ι, ΙΙ, Αντικειμενοστραφής Προγραμματισμός, Αγγλικά

Επιθυμητή η γνώση μεταγλωττιστών (Compilers)

Σχετικά άρθρα – βιβλιογραφία

  1. “Detecting Detecting Duplicate Code with PMD’s CPD, http://www.onjava.com/pub/a/onjava/2003/03/12/pmd_cpd.html
  2. Bob Zeidman, “Detecting Source-Code Plagiarism”, DrDobbs, 2004, http://www.drdobbs.com/architecture-and-design/detecting-source-code-plagiarism/184405734
  3. “The Karp-Rabin string matching algorithm”, http://www.nist.gov/dads/HTML/karpRabin.html
  4. Data Compression with the Burrows-Wheeler Transform, http://marknelson.us/1996/09/01/bwt/

Ανάπτυξη προγράμματος-πελάτη με γραφικό περιβάλλον για το πρόγραμμα Git

To Git είναι ένα από τα πιο δημοφιλή προγράμματα διαχείρισης κώδικα. Χαρακτηρίζεται ως «Κατανεμημένο Πρόγραμμα Διαχείρισης Κώδικα». Μεγάλο μέρος της λειτουργίας του μπορεί να γίνει από την κονσόλα, αλλά είναι πάντα χρήσιμη και η οπτική αναπαράσταση των συσχετίσεων που υπάρχουν ανάμεσα στις διάφορες εκδόσεις κώδικα. Για αυτό το λόγο έχουν αναπτυχθεί κατά καιρούς και διάφορα εργαλεία που επιτρέπουν τη διαχείριση των διαφορετικών εκδόσεων μέσα από ένα γραφικό περιβάλλον. Η πτυχιακή αυτή αφορά την ανάπτυξη μιας τέτοιας εφαρμογής.

Σκοπός της εργασίας επομένως είναι να αναπτύξει ένα πρόγραμμα-πελάτη ο οποίος θα επιτρέπει τη διαχείριση του κώδικα μέσα από ένα γραφικό περιβάλλον και την αναπαράσταση και τη διαχείριση του δέντρου εκδόσεων γραφικά. Στην εργασία αυτή θα πρέπει επίσης να παρουσιάζεται όχι μόνο η χρήση του προγράμματος Git αλλά να παρουσιάζονται και πολιτικές χρήσης του ενώ είναι απαραίτητο η ανάπτυξη του κώδικα να γίνει ακολουθώντας τις αρχές του agile development γράφοντας πρώτα tests και μετά τον κώδικα.

Απαραίτητα Προαπαιτούμενα

Άριστη γνώση των παρακάτω:

Τεχνολογία Λογισμικού Ι και Τεχνολογία Λογισμικού ΙΙ, Προγραμματισμός Ι, ΙΙ, Οπτικός Προγραμματισμός, Αντικειμενοστραφής Προγραμματισμός, Αγγλικά

Σχετικά άρθρα – βιβλιογραφία

  1. Scott Chacon, “Pro Git (Expert’s Voice in Software Development)”, APRESS, 2009

  2. JGit, “A Java library for Git”, http://www.eclipse.org/jgit/
Advertisements

Σχολιάστε

Εισάγετε τα παρακάτω στοιχεία ή επιλέξτε ένα εικονίδιο για να συνδεθείτε:

Λογότυπο WordPress.com

Σχολιάζετε χρησιμοποιώντας τον λογαριασμό WordPress.com. Αποσύνδεση / Αλλαγή )

Φωτογραφία Twitter

Σχολιάζετε χρησιμοποιώντας τον λογαριασμό Twitter. Αποσύνδεση / Αλλαγή )

Φωτογραφία Facebook

Σχολιάζετε χρησιμοποιώντας τον λογαριασμό Facebook. Αποσύνδεση / Αλλαγή )

Φωτογραφία Google+

Σχολιάζετε χρησιμοποιώντας τον λογαριασμό Google+. Αποσύνδεση / Αλλαγή )

Σύνδεση με %s

Αρέσει σε %d bloggers: