ΠΥΞΙΔΑ Ιδρυματικό Αποθετήριο
και Ψηφιακή Βιβλιοθήκη
Συλλογές :

Τίτλος :Αξιολόγηση εργαλείων ανίχνευσης Design Patterns και η πιθανή βελτίωσή τους
Δημιουργός :Κατσιούλη, Ιωάννα
Συντελεστής :Γιακουμάκης, Εμμανουήλ (Επιβλέπων καθηγητής)
Οικονομικό Πανεπιστήμιο Αθηνών, Τμήμα Πληροφορικής (Degree granting institution)
Τύπος :Text
Φυσική περιγραφή :105σ.
Γλώσσα :el
Περίληψη :Η παρούσα διπλωματική εργασία με θέμα «Η αξιολόγηση αλγορίθμων ανίχνευσης Design Patterns και η πιθανή βελτίωσή τους» πραγματοποιήθηκε στα πλαίσια του μεταπτυχιακού προγράμματος Πληροφοριακά Συστήματα του Οικονομικού Πανεπιστημίου Αθηνών.Τα πρότυπα σχεδίασης έχουν υιοθετηθεί από τους μηχανικούς λογισμικού με σκοπό να βρίσκουν λύσεις σε προβλήματα σχεδίασης που συναντώνται συχνά έτσι ώστε ο κώδικάς τους να μπορεί να επαναχρησιμοποιηθεί (reusable). Η χρήση των προτύπων σχεδίασης βοηθούν τον μηχανικό λογισμικού να αποφεύγει λάθη στη σχεδίαση του λογισμικού που δεν είναι προφανή από την αρχή. Μετά την υλοποίηση ενός συστήματος λογισμικού τα πρότυπα σχεδίασης βρίσκονται πλέον «κρυμμένα» στον πηγαίο κώδικα με αποτέλεσμα να μην είναι εύκολο να ανιχνευτούν από έναν μηχανικό λογισμικού και σε πολλές περιπτώσεις ούτε και από το ίδιο το πρόσωπο που το υλοποίησε αρχικά. Η ανίχνευση των προτύπων σχεδίασης από τον πηγαίο κώδικα ή από την αρχιτεκτονική ενός λογισμικού βοηθά σημαντικά στην κατανόηση του συστήματος λογισμικού και στην επαναχρησιμοποίηση – επέκτασή του στο μέλλον. Για το λόγο αυτό υπάρχει ένας μεγάλος αριθμός αλγορίθμων και εργαλείων τα οποία χρησιμοποιούν διάφορες μεθόδους και τεχνικές.Οι αλγόριθμοι αυτοί προσεγγίζουν το θέμα από διάφορες οπτικές. Αρχικά, κάθε πρότυπο σχεδίασης περιγράφεται από διαφορετικές πτυχές όπως η δομή του (structural aspect) και η συμπεριφορά του (behavioral aspect). Για το λόγο αυτό υπάρχουν μεθοδολογίες που προσανατολίζουν την εξόρυξη των προτύπων σχεδίασης βασιζόμενες στη δομή των προτύπων ή τη συμπεριφορά τους ή και στα δύο. Μια άλλη οπτική των μεθοδολογιών αυτών είναι ο τρόπος που παρουσιάζουν τα αποτελέσματά τους, κάποιες παρουσιάζουν τα πρότυπα που ανιχνεύτηκαν, άλλες τον αριθμό των προτύπων που ανιχνεύτηκαν ή τη θέση τους. Ορισμένες μεθοδολογίες χρησιμοποιούν μια ενδιάμεση αναπαράσταση του πηγαίου κώδικα στην οποία βασίζουν την ανίχνευση προτύπων. Επιπλέον ορισμένες μεθοδολογίες εξετάζουν την ύπαρξη κάποιου προτύπου με βάση το ακριβές ή κατά προσέγγιση ταίριασμα ανάμεσα στο σύστημα που εξετάζουν και στο πρότυπο.Στην εργασία αυτή επιλέχθηκαν αρχικά τέσσερα εργαλεία για την εκτέλεση των πειραμάτων:1. Αλγόριθμος Similarity Scoring: χρησιμοποιούνται κατευθυνόμενοι γράφοι ή αλλιώς τετραγωνικοί πίνακες για την αναπαράσταση των πληροφοριών του συστήματος. Στηρίζεται στα δομικά (structural) χαρακτηριστικά των προτύπων και στην ανίχνευση προτύπων σχεδίασης σε πηγαίο κώδικα Java, αναζητώντας τις ομοιότητες του κώδικα με τα πρότυπα σχεδίασης και όχι με ακριβές ταίριασμα. Αν και αποτελεί εργαλείο που ανιχνεύει πρότυπα με βάση τη δομή τους και όχι τη συμπεριφορά τους, είναι ικανό να ανιχνεύσει κάποια πρότυπα σχεδίασης που ανήκουν στην κατηγορία συμπεριφοράς (behavioral) [5].2. PINOT: χρησιμοποιεί έναν πλήρως αυτοματοποιημένο τρόπο για την ανίχνευση προτύπων σχεδίασης. Ανιχνεύει όλα τα πρότυπα GOF που έχουν συγκεκριμένους ορισμούς φτάνοντας εκεί από τη δομή του κώδικα ή τη συμπεριφορά του συστήματος. Όπως αναφέρθηκε παραπάνω, είναι πολύ δύσκολη η διαδικασία ανίχνευσης προτύπων με βάση της συμπεριφορά του συστήματος. Θεωρείται ως ένα γρήγορο, ακριβές εργαλείο που στοχεύει στην ανίχνευση πολλών προτύπων [3].3. FUJABA: αποτελεί ένα από τα πιο ώριμα εργαλεία για ανίχνευση προτύπων σχεδίασης. Διαθέτει πλούσιο γραφικό περιβάλλον και είναι εύκολο στη χρήση του. Χρησιμοποιεί τα χαρακτηριστικά συμπεριφοράς των προτύπων σχεδίασης και συνδυάζει στατική και δυναμική ανάλυση, που αποτελεί διαδικασία δύσκολη για την ανίχνευση προτύπων σχεδίασης. Ένα ακόμη σημαντικό χαρακτηριστικό αυτού του εργαλείου αποτελεί το γεγονός ότι επιτρέπει την παρεμβολή του χρήστη κατά τη διαδικασία ανίχνευσης προτύπων [6][8].4. PTIDEJ: στοχεύει στην υλοποίηση μεθόδων και αλγορίθμων που βελτιώνουν την ποιότητα των object oriented εφαρμογών. Χρησιμοποιεί τα χαρακτηριστικά της δομής των προτύπων σχεδίασης για την ανίχνευση προτύπων και αναζητεί το ακριβές ταίριασμα ανάμεσα στον κώδικα του συστήματος και των προτύπων. Αποτελεί επίσης εργαλείο το οποίο προσπαθεί να ανιχνεύσει τροποποιημένα πρότυπα σχεδίασης, κάτι επίσης δύσκολο στην διαδικασία ανίχνευσης προτύπων [9] [13]. Το εργαλείο αυτό παρουσιάζει σοβαρά προβλήματα κατά την εγκατάστασή του, καθώς πετάει κάποιο exception το οποίο δείχνει να του λείπει κάποιο κομμάτι κλάσεων που δεν υπάρχει κάπου διαθέσιμο, και δε θα χρησιμοποιηθεί για την εκτέλεση των πειραμάτων.Για την εκτέλεση των πειραμάτων επιλέχθηκαν δύο data set JHotDraw και Java IO, open – source συστήματα που χρησιμοποιούνται στη βιβλιογραφία για την εκτέλεση αντίστοιχων πειραμάτων.Η εργασία οργανώνεται σε έξι κεφάλαια. Στο κεφάλαιο 1 γίνεται μία εισαγωγή στα πρότυπα σχεδίασης που υπάρχουν και στις κατηγορίες που οργανώνονται κατά GoF. Στο κεφάλαιο 2 φαίνεται η ανάγκη ανάπτυξης αλγορίθμων και κατ’ επέκταση εργαλείων που ανιχνεύουν τα πρότυπα σχεδίασης και τυχόν παραλλαγές τους στον πηγαίο κώδικα ενός συστήματος λογισμικού καθώς και η επιλογή των αλγορίθμων που θα χρησιμοποιηθούν για την εκτέλεση των πειραμάτων. Στο κεφάλαιο 3 γίνεται η ανάλυση των αλγορίθμων που επιλέχθηκαν ενώ στο κεφάλαιο 4 η επιλογή των data sets που χρησιμοποιήθηκαν στην εκτέλεση των πειραμάτων. Στο κεφάλαιο 5 παρουσιάζονται τα ποσοτικά αποτελέσματα των αλγορίθμων καθώς και η ποσοτική και ποιοτική σύγκριση μεταξύ των εργαλείων αυτών. Τέλος στο κεφάλαιο 6 παρουσιάζονται τα συμπεράσματα πάνω στο πειράματα καθώς και πιθανές προτάσεις βελτίωσης.
This thesis on "Evaluation of detection algorithms, Design Patterns and possible improvement" made in the graduate program of Information Systems Athens University of Economics.Design patterns are adopted by software engineers in order to find solutions to design problems encountered frequently so that their code can be reusable. The use of design patterns help software engineers to avoid mistakes in the software design which are not obvious from the beginning. Following the implementation of a software system design patterns are now “hidden” in the source code so it is not easily detected by a software engineer and in many cases not even by the same engineer who implemented the system initially.The design patterns detection from source code or from software architecture helps greatly in understanding the software system as to be reusable – expanded in the future. For this reason a large number of algorithms and tools that use different methods and techniques exist.The algorithms are approaching the issue from different perspectives. Initially, each design pattern is described by different aspects such as structure and behavior. For this reason there are methodologies which guide the design pattern mining based on structure standards or behavior or both. Another perspective of these methodologies is the way they represent the results, some of them represent the design patterns that they detected, some the number of the design patterns or their position.Some methodologies are based on an intermediate representation of source code in order to detect the design patterns. Moreover some methodologies consider the existence of a design pattern based on exact or approximate match between the system under consideration and the design pattern.In this thesis initially were selected four tools to perform the experiments:1. Similarity Scoring algorithm: uses graphs or otherwise matrices for the representation of the information system. Based on structural characteristics of design patterns and in design pattern detection from Java source code, looking for similarities between code and design patterns and not exact match of them. Although it is a tool that detects design patterns based on their structure and not behavior, is able to detect some behavioral design patterns [5].2. PINOT: uses a fully automated way to detect design patterns. Pinot detects all the GOF patterns which have specific definitions reaching there from the code’s structure or behavior of the system. As mentioned above, the process of design patterns detection based on the behavior of the system is very difficult. Considered as a fast, accurate tool which aims to detect many design patterns.3. FUJABA: is one of the most mature tools for detection of design templates. It features a rich graphical interface and is easy to use. It uses the behavioral characteristics of design templates and combines static and dynamic analysis, a process difficult to detect design templates. Another important feature of this tool is that it allows the user intervention during the scanning process models [6] [8].4. PTIDEJ: aims to develop methods and algorithms that improve the quality of object oriented applications. It uses the characteristics of the structure of design patterns to detect patterns and seek the exact match between the code system and pattern. It is also a tool that tries to detect modified design patterns, which is also difficult in the design pattern detection process [9] [13].This tool presents serious problems during installation, and throws an exception which seems to be missing some libraries, and will not be used to perform experimentsIn order to perform the experiments two data sets were selected, JHotDraw and Java IO, open source systems that are used for this purpose.This thesis is organized into six chapters. Chapter 1 gives an introduction to design patterns based on GOF classification. Chapter 2 shows the need to develop algorithms and thus tools that detect design standards and any variants to the source code of a software system and the choice of algorithms used to perform the experiments. Chapter 3 is the analysis of algorithms selected while Chapter 4, the selection of data sets used in carrying out the experiments. Chapter 5 presents the quantitative results of the algorithms and the quantitative and qualitative comparison between these tools. Finally Chapter 6 presents the conclusions on the experiments and possible suggestions for improvement.
Λέξη κλειδί :Πρότυπα σχεδίασης
Αλγόριθμοι
Datasets
Similarity Scoring
PINOT
FUJABA
PTIDEJ
Design patterns
Ημερομηνία :31-03-2009
Άδεια χρήσης :

Αρχείο: Katsiouli_2009.pdf

Τύπος: application/pdf