Abstract : | Ένα πρότυπο σχεδίασης λογισμικού περιγράφει μια λύση σε ένα επαναλαμβανόμενο πρόβλημα σχεδίασης. Τα πρότυπα σχεδίασης λογισμικού ενσωματώνουν καλές ιδέες για την επίλυση προβλημάτων υψηλού επιπέδου και χρησιμοποιούνται ευρέως στην ανάπτυξη μεγάλων συστημάτων λογισμικού. Ο αρχικός σχεδιασμός και το τελικό σύστημα μπορεί να εξελίσσονται ανεξάρτητα μεταξύ τους καθιστώντας τα ασυνεπή μεταξύ τους. Η ανίχνευση προτύπων σχεδίασης από ένα σύστημα μπορεί να βοηθήσει σημαντικά στην κατανόηση, στην συντήρηση και στην περαιτέρω βελτίωση του συστήματος και της ποιότητας του. Η ανίχνευση προτύπων σχεδίασης αποτελεί ένα σημαντικό μέρος της διαδικασίας του reverse engineering και για το σκοπό αυτό έχουν αναπτυχθεί διάφορα εργαλεία που αυτοματοποιούν τη διαδικασία. Ωστόσο για την εκτέλεση των πειραμάτων και την αξιολόγηση των εργαλείων χρειάζονται συστήματα λογισμικού που είναι τεκμηριωμένα ως προς τα πρότυπα σχεδίασης που χρησιμοποιούν. Έτσι προκύπτει η ανάγκη δημιουργίας δημόσιων αποθετηρίων – benchmarks που να περιέχουν όλες τις πραγματώσεις προτύπων σχεδίασης σε ένα σύστημα λογισμικού ώστε να χρησιμοποιηθούν ως μέτρο σύγκρισης και υπολογισμού της ακρίβειας και της ανάκλησης των εργαλείων ανίχνευσης προτύπων σχεδίασης. Λόγω όμως των διαφορετικών μορφότυπων που χρησιμοποιούνται για την εμφάνιση των πραγματώσεων προτύπων σχεδίασης, δυσχεραίνεται η αξιολόγηση και η σύγκριση των εργαλείων. Σε αυτή τη διπλωματική εργασία παρουσιάζονται υφιστάμενα εργαλεία ανίχνευσης προτύπων σχεδίασης και δημόσια αποθετήρια – benchmarks πραγματώσεων προτύπων σχεδίασης. Επίσης παρουσιάζονται τα μορφότυπα που χρησιμοποιούν τα παραπάνω για να παρουσιάσουν τις πραγματώσεις προτύπων. Στα πλαίσια της διπλωματικής χρησιμοποιούνται τα εργαλεία ανίχνευσης προτύπων σχεδίασης σε συστήματα λογισμικού ανοιχτού κώδικα με σκοπό τη δημιουργία μιαςβάσης πραγματώσεων προτύπων σχεδίασης που θα είναι χρήσιμη στην αξιολόγηση των εργαλείων ανίχνευσης προτύπων σχεδίασης.Πιο συγκεκριμένα παρουσιάζονται τα εργαλεία Design Pattern Detection using Similarity Scoring, Ptidej, DP-Miner, Reclipse – FUJABA και DPRE και τα δημόσια αποθετήρια – benchmarks DEEBEE και P-MARt. Δοκιμάστηκαν όλα τα προαναφερθέντα εργαλεία σε συστήματα λογισμικού ανοιχτού κώδικα. Με επιτυχία εκτελέστηκαν τα Design Pattern Detection using Similarity Scoring και Ptidej για το σύστημα λογισμικού JUnit 4.8.2. Έγινε επαλήθευση των ανιχνευμένων πραγματώσεων για τα πρότυπα σχεδίασης Factory Method, Decorator, State-Strategy και Template Method, ώστε να απομακρυνθούν οι περιπτώσεις false positive. Για την καταγραφή των πραγματώσεων των προτύπων σχεδίασης σε μία βάση χρησιμοποιήθηκε το μορφότυπο DPDX. Η δημοσιοποίηση αυτής της βάσης πραγματώσεων έγινε στο benchmark DEEBEE.Η διπλωματική εργασία είναι οργανωμένη ως εξής: Κεφάλαιο 1: αποτελεί μια εισαγωγή στον τομέα της ανίχνευσης προτύπων σχεδίασης, παρουσιάζεται η ορολογία του τομέα αποσαφηνίζοντας ορισμένες κεντρικές έννοιες των προτύπων σχεδίασης και περιγράφονται συνοπτικά μερικά από τα πρότυπα σχεδίασης. Κεφάλαιο 2: παρουσιάζεται μια ανασκόπηση των τρεχόντων τεχνικών και εργαλείων για την ανίχνευση προτύπων σχεδίασης και περιγράφονται πιο λεπτομερώς πέντε εργαλεία που επιλέχθηκαν στα πλαίσια αυτής της διπλωματικής εργασίας. Κεφάλαιο 3: καταγράφονται περιπτώσεις δημοσιοποίησης ανιχνευμένων πραγματώσεων προτύπων σχεδίασης σε δημόσια αποθετήρια - benchmark με σκοπό τη χρήση τους στην αξιολόγηση εργαλείων ανίχνευσης προτύπων σχεδίασης. Κεφάλαιο 4: περιγράφονται τα μορφότυπα που χρησιμοποιούνται από τα εργαλεία ανίχνευσης προτύπων σχεδίασης για να εξάγουν τα αποτελέσματα των ανιχνευμένων πραγματώσεων προτύπων σχεδίασης καθώς και τα μορφότυπα που χρησιμοποιούνται από τα δημόσια αποθετήρια - benchmarks για την καταχώρηση και αποθήκευση των πραγματώσεων προτύπων σχεδίασης. Επίσης παρουσιάζονται οι αιτίες ανομοιότητας των αποτελεσμάτων των εργαλείων ανίχνευσης προτύπων σχεδίασης. Κεφάλαιο 5: παρουσιάζεται το DPDX, το κοινό μορφότυπο ανταλλαγής για τα εργαλεία ανίχνευση προτύπων σχεδίασης (common exchange format for DPD tools). Το DPDX αποτελεί πρόταση για το μορφότυπο των ανιχνευμένων πραγματώσεων προτύπων σχεδίασης από τα εργαλεία και των αποθηκευμένων πραγματώσεων στα δημόσια αποθετήρια. Κεφάλαιο 6: περιγράφονται τα βήματα και τα αποτελέσματα της διπλωματικής εργασίας. Μετά την εκτέλεση των εργαλείων σε ένα σύστημα λογισμικού και την επαλήθευση των ανιχνευμένων πραγματώσεων, χρησιμοποιείται το μορφότυπο DPDX για την αποθήκευση των πραγματώσεων. Κεφάλαιο 7: ολοκληρώνει τη διπλωματική εργασία με τον επίλογο. A software design pattern describes a solution to a recurring design problem. Design patterns encapsulate good ideas for solving high level problems and they are widely used in development of large software systems. The initial design and the final system may evolve independent from each other making them inconsistent. The design patterns detection from a system may greatly assist the understanding, the maintenance and the further improvement of the system and the system quality. Design pattern detection is a significant part of the reverse engineering process and to this end several design pattern detection tools have been developed that automate the process. However, for the execution of experiments and the evaluation of tools, software systems that are documented on the used design patterns are necessary. This raises the need for public repositories - benchmarks that contain all the design patterns instances of a software system, in order to be used in comparison and calculation of precision and recall of design pattern detection tools. Though, due to the different formats used for reporting the design patterns instances, it is more difficult to evaluate and compare the tools. In this master thesis presents existing design pattern detection tools and public repositories - benchmarks of design pattern instances. Also presents the formats used by above to show the pattern instances. For the purpose of this thesis, design pattern detection tools are used in open source software systems in order to create a database of design patterns instances that will be useful in the evaluation of design pattern detection tools. In particular, the tools Design Pattern Detection using Similarity Scoring, Ptidej, DP-Miner, Reclipse - FUJABA and DPRE and the public repositories - benchmarks DEEBEE and P-MARt are presented. All the above tools are tried in open source software systems. Design Pattern Detection using Similarity Scoring and Ptidej are successfully executed with input the software system JUnit 4.8.2. The detected design pattern instances for patterns Factory Method, Decorator, State- Strategy and Template Method, are checked to eliminate cases of false positive. For recording of design pattern instances in a database the DPDX format is used. The publication of this database is realized in the benchmark DEEBEE. The thesis is organized as follow: Chapter 1: constitutes an introduction in the field of design pattern detection, presents the terminology of the field clarifying some central notions of design patterns and describes in brief some of the design patterns. Chapter 2: presents a review on the current techniques and tools for design patterns detection and describes in more detail five tools selected for the purpose of this thesis. Chapter 3: records cases of announcement of detected design patterns instances public repositories - benchmark in order to be used in evaluation of design pattern detection tools. Chapter 4: describes the formats used by design pattern detection tools to export the results of detected patterns instances and the formats used by public repositories - benchmarks for registration and storage of patterns instances. Also the causes of disparity of the results of design patterns detection tools is presented. Chapter 5: presents DPDX, a common exchange format for design patterndetection tools. The DPDX is a suggestion for the format of detected design patterns instances from tools and stored instances in public repositories. Chapter 6: describes the steps and results of the thesis. After the execution of tools in a software system and the verification of detected instances, the DPDX format is used to store the instances. Chapter 7: completes the master thesis with the conclusion.
|
---|