A study on the evolution of software quality and technical debt in open source applications
Authors: Αμανατίδης Θεόδωρος 
Published: September 2021

Σχεδόν όλα τα συστήματα λογισμικού εξελίσσονται συνεχώς για να ικανοποιήσουν νέες ανάγκες και να προσαρμοστούν στις μεταβαλλόμενες απαιτήσεις της εποχής. Η ανάλυση εξέλιξης λογισμικού μπορεί να αποκαλύψει σημαντικές πληροφορίες σχετικά με τις πρακτικές συντήρησης που ακολουθούνται από τις ομάδες προγραμματιστών. Ο στόχος της διδακτορικής διατριβής είναι να μελετήσει την εξέλιξη των εφαρμογών ανοικτού κώδικα διερευνώντας την εξέλιξη της ποιότητας του λογισμικού καθώς και του κόστους συντήρησης, όπως αποτυπώνεται από τη έννοια του Τεχνικού Χρέους (ΤΧ). Το Τεχνικό Χρέος είναι μια έννοια στον προγραμματισμό που αντικατοπτρίζει την επιπλέον προσπάθεια συντήρησης που προκύπτει όταν αναπτύσσεται «μη-βέλτιστος» κώδικας, που είναι εύκολο να παραδοθεί γρήγορα, αντί να εφαρμόζονται οι βέλτιστες πρακτικές. Η διατριβή διερευνά την διαχρονική εξέλιξη ενός μεγάλου αριθμού εφαρμογών ανοιχτού κώδικα. Οι εφαρμογές αναλύθηκαν στο πλαίσιο των οκτώ (8) νόμων του Lehman περί εξέλιξης λογισμικού και ειδικότερα, εξετάστηκε εάν οι νόμοι επιβεβαιώνονται στην πράξη για διαδικτυακές εφαρμογές ανοιχτού κώδικα. Οι οκτώ νόμοι του Lehman αναφορικά είναι: Συνεχής Αλλαγή (Νόμος I), Αυξανόμενη Πολυπλοκότητα (Νόμος II), Αυτορρύθμιση (Νόμος III), Διατήρηση της Οργανωτικής Σταθερότητας (Νόμος IV), Διατήρηση της Eξοικείωσης (Νόμος V), Συνεχής Ανάπτυξη (Νόμος VI) Φθίνουσα Ποιότητα (VII) και Σύστημα Ανατροφοδότησης (VIII). Τα αποτελέσματα παρέχουν ευρήματα ότι η εξέλιξη των διαδικτυακών εφαρμογών συμμορφώνεται με τους περισσότερους νόμους. Τα τελευταία χρόνια, η έννοια του ΤΧ έχει γνωρίσει αυξανόμενη προσοχή από την ερευνητική κοινότητα. Συγκεκριμένα, μεγάλο μέρος των ερευνητικών μελετών επικεντρώθηκε στην έννοια του επιτοκίου Τεχνικού Χρέους, το οποίο αντικατοπτρίζει την πρόσθετη προσπάθεια συντήρησης που προκύπτει λόγω της ύπαρξης μη-βέλτιστου λογισμικού (δηλαδή, λόγω της ύπαρξης τεχνικού χρέους). Ακολουθώντας τις τάσεις της σύγχρονης έρευνας στη διαχείριση του TD, η διατριβή είχε ως στόχο τη διερεύνηση του αντίκτυπου του ΤΧ στη διορθωτική συντήρηση και συγκεκριμένα, σε ποιο βαθμό η παρουσία του ΤΧ καθυστερεί τον ρυθμό ανάπτυξης του λογισμικού αυξάνοντας τον χρόνο και την προσπάθεια που απαιτείται για τη διόρθωση σφαλμάτων. Παρόλο που το ΤΧ εκτιμάται και ποσοτικοποιείται συνήθως είτε σε ολόκληρο το σύστημα είτε σε μεμονωμένες μονάδες λογισμικού (αρχεία ή κλάσεις), η πραγματική αιτία για την συσσώρευση του ΤΧ είναι οι ίδιοι οι προγραμματιστές μέσω των πρακτικών που ακολουθούν κατά την ανάπτυξη κώδικα. Έτσι, η διατριβή επιχειρεί να διερευνήσει τη σχέση μεταξύ των χαρακτηριστικών των προγραμματιστών και της τάσης που έχουν να εισαγάγουν ΤΧ στο λογισμικό. Παρά το γεγονός ότι το ΤΧ έχει καθιερωθεί στην κοινότητα της Τεχνολογίας Λογισμικού, παραμένει μια μεταφορά και όπως όλες οι μεταφορές, αποτελεί μια αφηρημένη έννοια. Αυτό σημαίνει ότι ο τρόπος που ορίζεται και ερμηνεύεται από τους μηχανικούς λογισμικού είναι υποκειμενικός. Κάθε προγραμματιστής έχει τη δική του αντίληψη σχετικά με την σοβαρότητα του ΤΧ που εντοπίζεται στο λογισμικό του. Υπάρχουν πολλές φωνές που αμφισβητούν την εγκυρότητα του τρόπου ανίχνευσης και υπολογισμού του ΤΧ με τη χρήση αυτοματοποιημένων εργαλείων στατικής ανάλυσης (static analysis of source code). Με αφορμή τα παραπάνω, στο πλαίσιο αυτής της διατριβής εστάλη μια έρευνα σε ένα μεγάλο αριθμό προγραμματιστών που εμπλέκονται στην ανάπτυξη διαδικτυακών εφαρμογών ανοιχτού κώδικα. Η έρευνα, που είχε την μορφή online ερωτηματολογίου, στόχο είχε να αντλήσει πληροφορίες σχετικά με τους παράγοντες που οδηγούν τους προγραμματιστές να αποδεχτούν ή να απορρίψουν διορθώσεις που προτείνονται από αυτοματοποιημένα εργαλεία μέτρησης ΤΧ. Τα υπάρχοντα εργαλεία αξιολόγησης ΤΧ ακολουθούν διαφορετική προσέγγιση και κανόνες για την ποσοτικοποίηση του ΤΧ το καθένα. Κατά συνέπεια, το κάθε εργαλείο παράγει διαφορετικά αποτελέσματα από τα άλλα με αποτέλεσμα να μην υπάρχει μία αντικειμενική βάση για τα ποιο εργαλείο παράγει τα πιο ρεαλιστικά αποτελέσματα. Η προτεινόμενη διατριβή, προσπαθώντας να προσφέρει μία λύση στην έλλειψη της αντικειμενικότητας γύρω από την μέτρηση του ΤΧ, επιχειρεί να εντοπίσει σύνολα αρχείων/κλάσεων στα οποία εντοπίστηκε υψηλό ΤΧ ταυτόχρονα από τρία (3) ευρέως χρησιμοποιούμενα εργαλεία ΤΧ (CAST AIP, Squore και SonarQube). Αυτά τα αρχεία/κλάσεις υψηλού ΤΧ μπορούν να αποτελέσουν σημείο αναφοράς επικυρωμένων μονάδων υψηλού ΤΧ και με αυτόν τον τρόπο μπορεί να δημιουργηθεί μια βάση που θα συνδράμει στην κατάρτιση πιο εξελιγμένων τεχνικών αναγνώρισης ΤΧ. Παράλληλα, η διατριβή προτείνει μια στατιστική μεθοδολογία για την έγκυρη εξαγωγή του προαναφερόμενου συνόλου αρχείων/κλάσεων με υψηλό ΤΧ.