Please use this identifier to cite or link to this item: https://olympias.lib.uoi.gr/jspui/handle/123456789/30815
Full metadata record
DC FieldValueLanguage
dc.contributor.authorTsimakis, Anastasiosen
dc.date.accessioned2021-04-14T11:38:28Z-
dc.date.available2021-04-14T11:38:28Z-
dc.identifier.urihttps://olympias.lib.uoi.gr/jspui/handle/123456789/30815-
dc.identifier.urihttp://dx.doi.org/10.26268/heal.uoi.10653-
dc.rightsAttribution-NonCommercial-NoDerivs 3.0 United States*
dc.rights.urihttp://creativecommons.org/licenses/by-nc-nd/3.0/us/*
dc.subjectDesign pattern specificationen
dc.subjectDesign pattern verificationen
dc.subjectSoftware design patternen
dc.subjectObject-oriented programmingen
dc.subjectΠροσδιορισμός σχεδιαστικών μοτίβωνel
dc.subjectΕπαλήθευση σχεδιαστικών μοτίβωνel
dc.subjectΣχεδιαστικά μοτίβα λογισμικούel
dc.subjectΑντικειμενοστρεφής προγραμματισμόςel
dc.titleJPatternJudgeen
dc.titleJPatternJudgeen
heal.typemasterThesis-
heal.type.enMaster thesisen
heal.type.elΜεταπτυχιακή εργασίαel
heal.secondaryTitlean extensible framework for design pattern specification and verificationesen
heal.secondaryTitleένα επεκτάσιμο πλαίσιο λογισμικού για προσδιορισμό και επαλήθευση σχεδιαστικών μοτίβωνel
heal.classificationSoftware design-
heal.dateAvailable2021-04-14T11:39:28Z-
heal.languageen-
heal.accessfree-
heal.recordProviderΠανεπιστήμιο Ιωαννίνων. Πολυτεχνική Σχολή. Τμήμα Μηχανικών Ηλεκτρονικών Υπολογιστών και Πληροφορικήςel
heal.publicationDate2021-
heal.bibliographicCitationΒιβλιογραφία: σ. 77-79el
heal.abstractDesign Patterns are a staple of software development in object-oriented program ming languages. However, there are multiple reasons for a pattern that has been applied on a piece of code to be erroneous; be it from faulty understanding of its purpose, some mistake in the realization, or even the fact that since systems evolve and change over time, the pattern can be broken inadvertently. To automatically verify the correctness of a pattern, we must first devise a way of specifying it. This thesis presents JPatternJudge, a framework that defines a specifica tion model for design patterns, represented as a collection of roles and constraints, as well as mechanisms for detecting and verifying instances of design patterns in Java source code. JPatternJudge is implemented as an Eclipse plugin, and includes specifi cations of 18 different design patterns. We also present a measure of the framework’s reusability and extensibility, as well as the results of verification of patterns on real Java projects.en
heal.abstractΤα σχεδιαστικά μοτίβα λογισμικού (software design patterns) αποτελούν ένα πολύ βασικό κομμάτι της ανάπτυξης λογισμικού, επιτρέποντας σε προγραμματι στές να υλοποιήσουν πολύπλοκα συστήματα. Κάθε σχεδιαστικό μοτίβο αποτελεί μια γενική λύση σε ένα συχνό πρόβλημα, και αναϕέρονται συνήθως σε αντικειμενο στρεϕείς γλώσσες προγραμματισμού όπως η Java. Παρά την εκτεταμένη χρήση τους όμως, πολλές ϕορές ένα μοτίβο δύναται να είναι λανθασμένο για διάϕορους λόγους: ίσως ο προγραμματιστής δεν κατάλαβε πλήρως τον σκοπό του pattern, ή έκανε κάποιο λάθος στην υλοποίησή του. Μπορεί επίσης το σϕάλμα να προέκυψε λόγω της αναπόϕευκτης εξέλιξης του συστήμα τος, όπου οι αλλαγές στον κώδικα κατέστρεψαν τη δομή του. Αυτό δεν είναι κάτι που είναι πρακτικά εϕικτό να ελεγθεί από ανθρώπους, άρα ένα αυτοματοποιημένο εργαλείο θα ήταν πολύ χρήσιμο. Για να μπορέσει όμως ένα εργαλείο να επαληθεύσει την ορθή υλοποίηση ενός pattern, θα πρέπει πρώτα να έχει έναν συγκεκριμένο ορισμό για αυτό. Σε αυτή την εργασία, παρουσιάζουμε έναν τρόπο να ορίσουμε τα σχεδιαστικά μοτίβα ως ένα σύ νολο από κλάσεις που εξυπηρετούν έναν συγκεκριμένο ρόλο στο μοτίβο, καθώς και ένα σύνολο από δηλωτικούς περιορισμούς (declarational constraints) τους οποίους πρέπει να υπακούν. Οι περιορισμοί αυτοί εκϕράζονται σαν σχέσεις μεταξύ κόμβων του αϕηρημένου συντακτικού δέντρου (Abstract Syntax Tree, AST) του πηγαίο κώδικα. Με βάση αυτό το σύστημα, παραθέτουμε επίσης 18 ορισμούς για design pattern. Τέλος, παρουσιάζουμε το JPatternJudge, ένα framework για το Eclipse IDE, το οποίο χρησιμοποιεί τους ορισμούς αυτούς για αυτόματη επαλήθευση των patterns και εστιάζει ιδιαίτερα στην επεκτασιμότητα. Για αναγώριση των κλάσεων που συμμετέχουν σε ένα pattern και έχουν έναν ρόλο, το JPatternJudge χρησιμοποιεί ένα καινούργιο Annotation το οποίο προσθέσαμε στην Java.el
heal.advisorNameΖάρρας, Απόστολοςel
heal.committeeMemberNameΖάρρας, Απόστολοςel
heal.committeeMemberNameΒασιλειάδης, Παναγιώτηςel
heal.committeeMemberNameΠαπαπέτρου, Ευάγγελοςel
heal.academicPublisherΠανεπιστήμιο Ιωαννίνων. Πολυτεχνική Σχολή. Τμήμα Μηχανικών Ηλεκτρονικών Υπολογιστών και Πληροφορικήςel
heal.academicPublisherIDuoi-
heal.numberOfPages79 σ.-
heal.fullTextAvailabilitytrue-
Appears in Collections:Διατριβές Μεταπτυχιακής Έρευνας (Masters) - ΜΗΥΠ

Files in This Item:
File Description SizeFormat 
M.E. TSIMAKIS ANASTASIOS 2021.pdf484.32 kBAdobe PDFView/Open


This item is licensed under a Creative Commons License Creative Commons