Model-driven software architectural design based on software evolution modeling and simulation and design pattern analysis for design space exploration towards maintainability
Authors: Καρανικόλας Χρήστος 
Published: March 2023

Στην αρχιτεκτονική σχεδίαση λογισμικού και κατά την διάρκεια του πρόωρου σταδίου σχεδίασης, προκύπτουν κρίσιμες αποφάσεις μεταξύ εναλλακτικών σχεδίασης αναφορικά με την συντηρησιμότητά τους. Οι υπάρχουσες διερευνητικές προσεγγίσεις δεν είναι προσανατολισμένες στα σχεδιαστικά πρότυπα ούτε επαρκώς τυπικές. Τέτοιου είδους προσεγγίσεις δεν είναι επαναχρησιμοποιήσιμες, έχουν περιορισμένο πεδίο εφαρμογής και συνήθως καταλήγουν σε μη βέλτιστα αποτελέσματα. Περεταίρω, η αποτελεσματικότητα των υπαρχόντων τεχνικών και μοντέλων αναφορικά με την πρόβλεψη της προσπάθειας συντήρησης, συνήθως επιβεβαιώνεται από ένα περιορισμένο αριθμό περιπτωσιολογικών μελετών υπό το πρίσμα ετερογενών μετρικών και συνθηκών. Συμβατικά, οι προγραμματιστές χρησιμοποιούν την διαίσθησή, την εμπειρία ή την στιγμιαία κρίση τους προκειμένου να λάβουν τέτοιου είδους αποφάσεις, γεγονός που οδηγεί σε συσσώρευση τεχνικού χρέους (αστοχιών), υψηλό ρίσκο και μη βέλτιστα αποτελέσματα αναφορικά με την ποιότητα του κώδικα. Λόγω της επιβεβαιωμένης έλλειψης αρχιτεκτονικής συνείδησης, οι προγραμματιστές υποτιμούν τον αρνητικό αντίκτυπο τέτοιου είδους πρόωρων και κρίσιμων σχεδιαστικών αποφάσεων. Η επιλογή ανάμεσα σε διαφορετικές σχεδιαστικές εκδοχές είναι μια κρίσιμη απόφαση για τους προγραμματιστές του αντικειμενοστραφούς λογισμικού που επηρεάζει σημαντικά ποιοτικά χαρακτηριστικά του κώδικα όπως η συντηρησιμότητά του. Σε αυτή την διατριβή εισάγεται μια συστηματική μέθοδος μοντελοποίησης για την άντληση τυπικών μοντέλων σύγκρισης για την αποτελεσματική αξιολόγηση αντικειμενοστραφών εναλλακτικών σχεδίασης, υπό όρους συντηρησιμότητας, κατά το πρόωρο στάδιο σχεδίασης του λογισμικού. Η μέθοδος είναι κατάλληλη για την μοντελοποίηση σημαντικών, γενικών και συχνά εμφανιζόμενων σχεδιαστικών προβλημάτων τα οποία έχουν κυρίαρχο αντίκτυπο στη συνολική συντηρησιμότητα του συστήματος, όπου διαφορετικές σχεδιαστικές προσεγγίσεις ανταγωνίζονται για την αντιμετώπιση κοινών απαιτήσεων. Τα προκύπτοντα επίσημα μοντέλα παρέχουν πρόωρες εκτιμήσεις της απαιτούμενης προσπάθειας ανά εναλλακτική σχεδίασης υπό όρους αναλογικά ισοδύναμων εκτιμήσεων προσπάθειας, κυρίως για σκοπούς σύγκρισης. Η προτεινόμενη προσέγγιση λαμβάνει υπόψη την τάση επέκτασης του λογισμικού μέσω της δομικής εξέλιξης των εμπλεκόμενων σχεδιαστικών προτύπων. Αυτό επιτυγχάνεται διαμέσου των ρυθμών αλλαγής μεμονωμένων χαρακτηριστικών σχεδιασμού για βασικά σενάρια συντήρησης και για τις πιθανότητές τους υπό τη μορφή συνεχών διαφορικών εξισώσεων προκειμένου να προβλέψουν την απαιτούμενη προσπάθεια συντήρησης. Εναλλακτικά, η απαιτούμενη προσπάθεια εκτιμάται δια της μέτρησης του αντικτύπου αλλαγής των επαναλαμβανόμενα εφαρμοζόμενων σεναρίων σε σχέση με τις μεταβαλλόμενες ιδιότητες σχεδίασης υπό το πρίσμα μιας βαθμιαίας (με βάση τα γεγονότα) ποσοτικής ανάλυσης. Η προτεινόμενη μέθοδος αξιολογήθηκε για το σημαντικό και γενικό πρόβλημα σχεδίασης των αναδρομικών ιεραρχιών συναθροίσεων (μέρους-όλου). Τα παραγόμενα τυπικά μοντέλα σύγκρισης αντιμετωπίζουν την επιλογή ανάμεσα στο συνδυασμό των σχεδιαστικών προτύπων «Visitor» και «Composite» και στην άμεση προσέγγιση που βασίζεται στην κληρονομικότητα του «Composite» σχεδιαστικού προτύπου. Τα παραγόμενα μοντέλα καταγράφουν την συντηρησιμότητα ως μια μετρική της ποιότητας λογισμικού και παρέχουν αξιόπιστες εκτιμήσεις για κάθε εναλλακτική υλοποίηση. Περεταίρω, η προτεινόμενη μέθοδος εισαγάγει την μετρική του δομικού κόστους συντήρησης με βάση την οποία παρουσιάζεται η προοδευτική ανάλυση της διαδικασίας συντήρησης. Η προτεινόμενη μέθοδος μέτρησης εφαρμόστηκε σε πολλές δοκιμαστικές περιπτώσεις για διαφορετικές μετρικές ποιότητας. Τα αποτελέσματα αποδεικνύουν ότι η προτεινόμενη μέθοδος μοντελοποίησης εξάγει τυπικά μοντέλα τα οποία παρέχουν αξιόπιστες εκτιμήσεις προσπάθειας κυρίως για σκοπούς σύγκρισης. Έτσι, η προτεινόμενη μέθοδος μπορεί να χρησιμοποιηθεί για την σύγκριση διαφορετικών εναλλακτικών υλοποιήσεων έναντι διαφόρων μετρικών και παραγόντων ποιότητας, πριν το στάδιο ανάπτυξης του κώδικα, οδηγώντας στη μείωση της προσπάθειας και του κόστους συντήρησης του λογισμικού.Περεταίρω, η εισαγόμενη μέθοδος μοντελοποίησης εφαρμόστηκε σε τρις διαφορετικές επεκτάσεις του γενικού προβλήματος επιλογής, αξιολογώντας έτσι την ευκολία εφαρμογής της σε ακόμη πιο ρεαλιστικές συνθήκες. Τα σχεδιαστικά πρότυπα “Decorator”, “Mediator”, “Observer”, “Abstract Factory”, και “Prototype” μοντελοποιήθηκαν για το σκοπό αυτό. Τα παραγόμενα τυπικά μοντέλα δοκιμάστηκαν σε ένα δείγμα πολλαπλών στιγμιότυπων που αναπαριστούν το σύνολο του σχεδιαστικού χώρου του εκάστοτε γενικού προβλήματος. Τα αποτελέσματα αποδεικνύουν ότι τα εξαγόμενα τυπικά μοντέλα είναι αξιόπιστα και μπορούν να υποστηρίζουν αποδοτικά τη λήψη σχεδιαστικών αποφάσεων μεταξύ εναλλακτικών σχεδίασης κατά το πρόωρο στάδιο σχεδίασης, προσφέροντας σημαντικά οφέλη υπό όρους χρόνου και προσπάθειας συντήρησης. Επίσης, τα αποτελέσματα υποδεικνύουν ότι η μέθοδος μπορεί να μοντελοποιήσει γενικά προβλήματα καθώς και να υποστηρίξει τη λήψη αποφάσεων ακόμη και στο στάδιο της (υψηλού επιπέδου) αρχιτεκτονικής σχεδίασης συστημάτων. Επιπρόσθετα, παρουσιάζεται ένα πολύ παραμετρικό μοντέλο εξομοίωσης για τον έλεγχο της αξιοπιστίας λήψης αποφάσεων της προτεινόμενης θεωρίας μοντελοποίησης και των παραγόμενων τυπικών μοντέλων σύγκρισης, αναφερόμενο στο σημαντικό σχεδιαστικό πρόβλημα των αναδρομικών ιεραρχιών των συναθροίσεων μέρους-όλου. Το προτεινόμενο μοντέλο εξομοίωσης υλοποιήθηκε στις μορφές της συναρτησιακής και αρθρωτής αναπαράστασης. Εν’ απουσία ενός αυστηρού ελέγχου έναντι πραγματικών παρατηρήσεων, το μοντέλο εξομοίωσης βαθμονομήθηκε διεξοδικά αναφορικά με την ακρίβεια του στη λήψη αποφάσεων με βάση εμπειρικά στοιχεία από την ανάλυση χρονοσειρών, προσεγγίζοντας έτσι την εξαιρετικά αβέβαιη φύση της πραγματικής διαδικασίας συντήρησης. Η αξιοπιστία των αποφάσεων των τυπικών μοντέλων ελέγχθηκαν στατιστικά σε ένα δείγμα χιλίων πιθανών περιπτώσεων των σχεδιαστικών ιδιοτήτων, αναπαριστώντας ολόκληρο το σχεδιαστικό χώρο του υπό ανάλυση προβλήματος. Παρά την περιορισμένη ακρίβεια των μετρήσεων, τα αποτελέσματα έδειξαν ότι τα τυπικά μοντέλα επιδεικνύουν μια αυξανόμενη αξιοπιστία λήψης αποφάσεων σε μια μακροπρόθεσμη προοπτική ακόμη και υπό υποθέσεις αυξημένης μεταβλητότητας. Έτσι, η προτεινόμενη θεωρία μοντελοποίησης προσφέρει αξιόπιστα τυπικά μοντέλα σύγκρισης τα οποία μειώνουν σημαντικά τον κίνδυνο λήψης λανθασμένων αποφάσεων, την προσπάθεα συντήρησης, και το σχετικό κόστος. Μέθοδοι που αποδίδουν τέτοια τυπικά, γενικά και επαναχρησιμοποιήσιμα μοντέλα μπορούν να φέρουν τους μηχανικούς λογισμικού πιο κοντά σε τεκμηριωμένες αποφάσεις σχεδιασμού και έτσι να αναπτύξουν πιο συντηρήσιμο λογισμικό υψηλότερης ποιότητας.