Περίληψη:
Αν και στις μέρες μας είναι αρκετά διαδεδομένες προγραμματιστικές προσεγγίσεις όπου μεγάλο κομμάτι της εφαρμογής αναπτύσσεται στο μεσαίο επίπεδο, σε γλώσσες όπως Java, php, C#, με τις βάσεις να παίζουν μονάχα το ρόλο αποθήκευσης δεδομένων, εντούτοις μια μεγάλη μερίδα ρεαλιστικών εφαρμογών χρησιμοποιούν τη βάση για περισσότερα πράγματα. Τέτοια προγράμματα συνήθως αποτελούνται από χιλιάδες stored procedures τα οποία είναι δύσκολο να κατανοήσει και να παρακολουθήσει κανείς χωρίς τη χρήση κατάλληλων εργαλείων. Στην εργασία αυτή παρουσιάζεται ένα εργαλείο το οποίο σκοπεύει να βοηθήσει στην κατανόηση τέτοιου κώδικα, γραμμένο σε PL/SQL, μέσω της αυτόματης αναγνώρισης των υποσυστημάτων του. Η αναγνώριση βασίζεται σε αλγόριθμους ομαδοποίησης (clustering algorithms) που χρησιμοποιούν το γράφο κλήσεων των συναρτήσεων για να εξάγουν το αποτέλεσμα. Η οπτικοποίηση του αποτελέσματος γίνεται με τη χρήση του εργαλείου Gephi.