Eυφυής μεθοδολογία αποτίμησης του βαθμού διατηρησιμότητας έργων λογισμικού με τη χρήση τεχνικών εξόρυξης δεδομένων
Authors: Παπαμιχαήλ Μιχαήλ 
Published: April 2022

Οι ολοένα αυξανόμενες απαιτήσεις των σύγχρονων έργων λογισμικού τόσο σε λειτουργικό, όσο και σε μη λειτουργικό επίπεδο έχουν καταστήσει παραπάνω από εμφανή την ανάγκη επόπτευσης της ποιότητάς τους. Το γεγονός αυτό καταδεικνύεται από το μεγάλο ποσοστό των έργων λογισμικού που αποτυγχάνουν, καθώς αδυνατούν να ικανοποιήσουν τις προδιαγραφές που έχουν τεθεί στα πλαίσια ενός σαφούς χρονοδιαγράμματος και εντός προϋπολογισμού. Η απάντηση στην πρόκληση αυτή εντοπίζεται στην ανάπτυξη μεθοδολογιών και τεχνικών αποτίμησης της ποιότητας λογισμικού, διαδικασία που αποτελεί ανοιχτό πεδίο ερευνητικού ενδιαφέροντος και συγκεντρώνει μεγάλη απήχηση εδώ και δεκαετίες.Η αποτίμηση ποιότητας λογισμικού αποτελεί ένα σύνθετο και πολυπαραγοντικό πρόβλημα με δεδομένο ότι περιλαμβάνει πολυάριθμους άξονες που πρέπει να ληφθούν υπόψη. Οι άξονες αυτοί διαφοροποιούνται τόσο από τα ιδιαίτερα χαρακτηριστικά κάθε έργου λογισμικού όσο και από το πεδίο εφαρμογής του. Οι πρώτες ερευνητικές προσπάθειες στο πεδίο ανέδειξαν ως πρωταρχική ανάγκη την εύρεση ενός ορισμού της έννοιας της ποιότητας με τρόπο που να εξασφαλίζει όσο το δυνατόν μεγαλύτερη σαφήνεια στο πεδίο εφαρμογής. Προς την κατεύθυνση αυτή και με γνώμονα την ενιαία και συστηματική προσέγγιση της έννοιας της ποιότητας λογισμικού ανάμεσα στην επιστημονική κοινότητα, προτάθηκαν μια σειρά από πρότυπα, τα οποία στοχεύουν στην ανάλυσή της σε μια σειρά από άξονες/χαρακτηριστικά, τα οποία και αυτά με τη σειρά τους αναλύονται σε μια σειρά από ιδιότητες που συνδέονται με συγκεκριμένες μετρήσιμες ποσότητες. Κατά συνέπεια, δημιουργείται ένα οικοδόμημα, το οποίο αποσαφηνίζει την «γενική» έννοια ενός χαρακτηριστικού, όπως είναι η διατηρησιμότητα, σε μια σειρά από συγκεκριμένα υπο-χαρακτηριστικά από τα οποία επηρεάζεται και τα οποία μπορούν να ποσοτικοποιηθούν μέσω συγκεκριμένων μετρήσιμων ποσοτήτων. Το οικοδόμημα αυτό στο πεδίο της αποτίμησης της διατηρησιμότητας αποτελεί τον κεντρικό άξονα μελέτης στα πλαίσια της παρούσας διδακτορικής διατριβής, η οποία προτείνει ένα ιεραρχικό μοντέλο αποτίμησης της διατηρησιμότητας έργων λογισμικού βασισμένο στα ίδια τα δεδομένα.Στα πλαίσια της παρούσας διδακτορικής διατριβής το προτεινόμενο μοντέλο αποτίμησης του βαθμού διατηρησιμότητας έργων λογισμικού αξιοποιεί την υπάρχουσα γνώση στο πεδίο και την εξελίσσει εστιάζοντας σε μια σειρά από σχεδιαστικούς στόχους. Ο πρώτος στόχος εντοπίζεται στη δυνατότητα πλήρους αυτοματοποίησης της αποτίμησης διατηρησιμότητας, γεγονός που στοχεύει στην εισαγωγή της ως συνεχή μηχανισμό παρακολούθησης της διαδικασίας ανάπτυξης λογισμικού. Η αυτοματοποίηση αποτελεί σημαντική προϋπόθεση καθώς έρχεται σε αντίθεση με πληθώρα παραδοσιακών τεχνικών που βασίζονται σε χειροκίνητη επόπτευση του πηγαίου κώδικα, διαδικασία άκρως δαπανηρή τόσο σε χρόνο, όσο και σε ανθρωποπροσπάθεια (ιδιαίτερα σε έργα λογισμικού με μεγάλο μέγεθος και πολυπλοκότητα). Στον άξονα αυτό, η προτεινόμενη προσέγγιση βασίζεται στην αξιοποίηση πληροφορίας που εντοπίζεται στα ευρέως χρησιμοποιούμενα αποθετήρια κώδικα, με στόχο τη δημιουργία σετ δεδομένων αναφοράς που αποτελούν τη βάση των μοντέλων αποτίμησης διατηρησιμότητας.Με δεδομένες τις αρχές της αντικειμενοστρέφειας, όπου κάθε επίπεδο του κώδικα (μέθοδος, κλάση, πακέτο) σχετίζεται με διαφορετικούς σχεδιαστικούς στόχους, οι οποίοι είναι αλληλένδετοι με την αποτίμηση του βαθμού διατηρησιμότητας, ο δεύτερος σχεδιαστικός στόχος αποτελεί την αποτίμηση του βαθμού διατηρησιμότητας σε πολλαπλά επίπεδα. Προς την κατεύθυνση αυτή, το προτεινόμενο μοντέλο εφαρμόζεται τόσο σε επίπεδο κλάσης, όσο σε επίπεδο μεθόδου, αλλά και πακέτου, παρέχοντας αποτελέσματα που καλύπτουν συνολικά τις ιδιότητες του πηγαίου κώδικα, καθώς και την εξέλιξή τους στο χρόνο.Δύο ακόμα σημαντικοί σχεδιαστικοί στόχοι του προτεινόμενου μοντέλου αποτίμησης διατηρησιμότητας αποτελούν η δυνατότητα πρόβλεψης μη- διατηρησιμότητας σε προγενέστερο επίπεδο και η παροχή ερμηνεύσιμων αποτελεσμάτων. Η δυνατότητα έγκαιρης πρόβλεψης και συνεπώς η διαπίστωση προβλημάτων που σχετίζονται με τη διατηρησιμότητα σε πρωταρχικά στάδια του κύκλου ζωής του έργου είναι εξέχουσας σημασίας, καθώς διαμορφώνει τόσο το πλήθος των αλλαγών που απαιτούνται, όσο και τον χρόνο υλοποίησης και ελέγχου που συνεπάγεται των αλλαγών αυτών. Τέλος, η παροχή ερμηνεύσιμων αποτελεσμάτων στοχεύει στην ευχρηστία του προτεινόμενου μηχανισμού, γεγονός που επιτρέπει την παροχή στοχευμένων συστάσεων αναφορικά με την πηγή των προβλημάτων που έχουν αναγνωριστεί, καθώς και μεγαλύτερη ιχνηλασιμότητα των τμημάτων κώδικα όπου χρειάζονται αλλαγές.Με βάση τα παραπάνω, το προτεινόμενο μοντέλο αποτίμησης του βαθμού διατηρησιμότητας έργων λογισμικού αξιοποιεί δεδομένα τεχνολογίας λογισμικού και χρησιμοποιεί τεχνικές μηχανικής μάθησης με στόχο τη δημιουργία μιας αυτοματοποιημένης λύσης. Η λύση αυτή μπορεί να αποτελέσει αναπόσπαστο κομμάτι της διαδικασίας παραγωγής λογισμικού με στόχο την αποδοτικότερη διαχείριση του τεχνικού χρέους.