Abstract : | Η ραγδαία ανάπτυξη των τελευταίων χρόνων στον τομέα της Τεχνολογίας Λογισμικού έχει επηρεάσει άμεσα δομικές διαδικασίες όπως την συντήρηση, εξέλιξη, σχεδίαση και ανάπτυξη των συστημάτων λογισμικού. Η υιοθέτηση των Πρότυπων Σχεδίασης [DP] (design patterns) κατά την φάση της ανάπτυξη έχει ως αποτέλεσμα την βελτίωση της ποιότητας των συστημάτων με ταυτόχρονη μείωση του κόστους και της απαιτούμενης προσπάθειας για την συντήρησης τους. Συγκεκριμένα τα πρότυπα σχεδίασης αποτελούν αφηρημένα επαναχρησιμοποιήσιμα σχέδια, που μπορούν να εξατομικευτούν ανάλογα με το ειδικότερο πραγματικό πρόβλημα. Επιπλέον Τα πρότυπα σχεδίασης αφορούν τον συσχετισμό κλάσεων, μεθόδων και αντικειμένων μεταξύ τους, κατά τρόπο ώστε η δομή του παραγόμενου σχεδίου να επιτρέπει την ευκολότερη τροποποίηση και επέκταση του. Για το σκοπό αυτό αξιοποιούν χρήσιμες έννοιες της αντικειμενοστραφούς σχεδίασης, όπως η έννοια της κληρονομικότητας, του Πολυμορφισμού, της ενθυλάκωσης και πολλών άλλων.Εκτός από τα πρότυπα σχεδίασης στη βελτίωση της ποιότητας του σχεδίου του κώδικα συμβάλει και η αναδόμηση (refactoring). Η αναδόμηση συνιστά την κυριότερη ενέργεια μετασχηματισμού του πηγαίου κώδικα, με στόχο τη βελτίωση των ποιοτικών χαρακτηριστικών του, χωρίς παράλληλα να τροποποιείται η εκτελούμενη και εξωτερικά παρατηρούμενη συμπεριφορά του.Σκοπός της παρούσης διπλωματικής εργασίας είναι η συμβολή της στον τομέα της αναδόμησης με πρότυπα σχεδίασης. Συγκεκριμένα μελετάται το πρόβλημα της αυτοματοποιημένης αναδόμησης προς το πρότυπο του Επισκέπτη. Η αυτοματοποίηση απασχολεί την ερευνητική κοινότητα από τότε που πρωτοεμφανίστηκε η έννοια της αναδόμησης, καθώς μειώνει το κόστος της συντήρησης, την απαιτούμενη προσπάθεια και το χρόνο για την εκτέλεση της καθώς και την πιθανότητα εισαγωγής σφαλμάτων. Από την άλλη πλευρά το πρότυπο Επισκέπτης αποτελεί μία κατάλληλη μέθοδο για τον διαχωρισμό της κατάστασης μιας ιεραρχίας αντικειμένων από την συμπεριφορά τους, την προσθήκη πολλών νέων λειτουργιών χωρίς να μολύνει τις κλάσεις τους με μη-σχετιζόμενες λειτουργίες ενώ τέλος συμβάλει στην ομαδοποίηση των σχετιζόμενων λειτουργιών σε μία κοινή κλάση.Η προτεινόμενη μέθοδος ανίχνευσης RTTI (RunTime Type Identification) περιπτώσεων & αναδόμησης τους προς το Πρότυπο του Επισκέπτη χρησιμοποίει ως αφετηρία τις εργασίες των Τσάνταλη και Χατζηγεωργίου [11] καθώς και του Τσολάκου [14]. Πιο αναλυτικά η μέθοδος επικεντρώνεται στην ανίχνευση λανθασμένων υποθετικών δηλώσεων τύπου (if-else if) καθώς και διαδοχικών αμοιβαίως αποκλειόμενων δηλώσεων τύπου (if-if) που συνθέτουν τα RTTI τμήματα κώδικα. Εν συνεχεία ορίζεται ένα ολοκληρωμένο σύνολο προϋποθέσεων που θα πρέπει να τηρούνται για την εκτέλεση μίας αυτόματης αναδόμησης. Τέλος υλοποιείται ο αλγόριθμος της αυτόματης αναδόμησης προς το πρότυπο του Επισκέπτη. The recent rapid growth in software engineering has affected directly the structural procedures such as the maintenance, the involvement, the design and the development of software systems. The adoption of design patterns (DP) during the stage of development has as a result the improvement of system quality with a simultaneous decrease in cost and in required effort for system maintenance. Specifically the design patterns constitute abstract reusable patterns which can be customized accordingly to specific real problem. Additionally the DP refers to the correlation among classes, methods and objects, in such way that the structure of produced design allows its easy modification and extension. For this purpose DP utilize useful concepts of object oriented design, such as the concept of inheritance, polymorphism, encapsulation and many others.In the improvement of code design quality contributes, besides the DP, the refactoring as well. The refactoring constitutes the main modification process of source code, with the aim of improvement of its quality characteristic, without the externally observable and running behavior get modified simultaneously.The aim of this dissertation is the contribution of DP in the field of reconstruction. Specifically this research studies the issue of automated refactoring in the way of the visitor’s pattern. The automation concerns the research community since the concept of refactoring firstly appeared, as it decreases the cost of maintenance, the required effort, the time demanded for the execution of automation and the possibility of introducing errors. On the other side the visitor pattern constitutes a suitable method for separating the state of object hierarchy without polluting the classes with unrelated operations while finally contributes to the grouping of related operations in a common class.The proposed method RTTI (RunTime Type Identification) for detection of refactoring cases in the way of visitor’s pattern uses as a start point the studies conducted by Tsantali and Hajigeorgiou and Tsolakou as well. More analytically this method concentrates on the detection of false conditional statements of type (if-else if) and successive mutually exclusive statements of type (if-if) which constitutes RTTI code parts. Then it is defined an integrated set of preconditions which have to implemented for the execution of an automated refactoring. Finally we present the implementation of algorithm for the automated refactoring.
|
---|