Please use this identifier to cite or link to this item: https://olympias.lib.uoi.gr/jspui/handle/123456789/30258
Full metadata record
DC FieldValueLanguage
dc.contributor.authorΒαρτζιώτης, Θεοφάνηςel
dc.date.accessioned2020-11-11T11:39:34Z-
dc.date.available2020-11-11T11:39:34Z-
dc.identifier.urihttps://olympias.lib.uoi.gr/jspui/handle/123456789/30258-
dc.identifier.urihttp://dx.doi.org/10.26268/heal.uoi.10146-
dc.rightsAttribution-NonCommercial-NoDerivs 3.0 United States*
dc.rights.urihttp://creativecommons.org/licenses/by-nc-nd/3.0/us/*
dc.subjectΛογισμικό - ποιότηταel
dc.subjectSoftware - qualityen
dc.titleRefactoring trip advisoren
dc.titleRefactoring trip advisoren
heal.typemasterThesis-
heal.type.enMaster thesisen
heal.type.elΜεταπτυχιακή εργασίαel
heal.secondaryTitleυποβοήθηση συγκροτημένης ανακατασκευής κώδικαel
heal.secondaryTitlean aid to structured code refactoringen
heal.classificationΛογισμικό -- Ποιότητα-
heal.dateAvailable2020-11-11T11:40:35Z-
heal.languageel-
heal.accessfree-
heal.recordProviderΠανεπιστήμιο Ιωαννίνων. Σχολή Θετικών Επιστημών. Τμήμα Μηχανικών Η/Υ & Πληροφορικήςel
heal.publicationDate2016-
heal.bibliographicCitationΒιβλιογραφία: σ. 103-106el
heal.abstractΗ εργασία αυτή εντάσσεται στα πλαίσια της τεχνολογίας λογισμικού και συγκεκριμένα στην αξιολόγηση της ποιότητας αυτού. Η αξιολόγηση του λογισμικού είναι αρκετά αναγκαία καθώς αυτή συμβάλει σημαντικά στην ποιοτική του βελτίωση. Η εργασία επικεντρώνεται σε κάποια συγκεκριμένη κατηγορία βελτιώσεων του λογισμικού. Συγκεκριμένα, στις βελτιώσεις που μεταβάλλουν την εσωτερική δομή του πηγαίου κώδικα χωρίς όμως να επηρεάζουν την λειτουργικότητα του, γνωστό και ως ανακατασκευή κώδικα. Περιγράφονται οι 68 τεχνικές ανακατασκευής που περιέχονται στον κατάλογο του Martin Fowler και ομαδοποιούνται σε 6 κατηγορίες. Η πληθώρα αυτή των τεχνικών σε συνδυασμό με το γεγονός ότι οι προγραμματιστές αποφεύγουν την χρήση των αυτοματοποιημένων εργαλείων οδηγεί στην μη αποτελεσματική διαδικασία ανακατασκευής κώδικα. Στηριζόμενοι σε αυτό, προτείνουμε μια νέα μέθοδο συγκροτημένης ανακατασκευής κώδικα η οποία βασίζεται στον Χάρτη Ανακατασκευών. Ο Χάρτης Ανακατασκευών είναι ένα γράφημα στο οποίο κάθε κόμβος αποτελεί μια από τις 68 τεχνικές ανακατασκευής και κάθε ακμή ένα είδος συσχέτισης μεταξύ αυτών. Τα τρία είδη συσχέτισης που προτείνουμε, προέρχονται από την μελέτη του καταλόγου του Fowler και είναι τα εξής: Σχέση Διαδοχής, Σχέση “Μέρος από” και Σχέση “Αντί για”. Η μελέτη του Χάρτη έδειξε πως οι τεχνικές Extract Method και Move Method αποτελούν τις βασικότερες στην διαδικασία ανακατασκευής ενώ οι τεχνικές Extract Superclass και Extract Subclass είναι οι πιο πολύπλοκές. Για την οπτικοποιήση του Χάρτη Ανακατασκευών και για την αξιοποίηση του από τον προγραμματιστή, αναπτύσσεται μια επέκταση του Eclipse με το όνομα Refactoring Trip Advisor. Το εργαλείο αυτό επίσης παρέχει χρήσιμες πληροφορίες για κάθε τεχνική ανακατασκευής και για μερικές από αυτές προσφέρει την δυνατότητα του αυτόματου εντοπισμού ευκαιριών ανακατασκευής στον κώδικα του χρήστη. Για την αξιολόγηση του Refactoring Trip Advisor δώσαμε τον κώδικα δύο μεθόδων σε έναν αριθμό από προγραμματιστές και τους ζητήσαμε να ανακατασκευάσουν τον έναν χειροκίνητα και τον άλλον με την βοήθεια του εργαλείου. Τα αποτελέσματα έδειξαν ότι η πλειοψηφία των χρηστών, τουλάχιστον διπλασίασε το πλήθος των ανακατασκευών που εφάρμοσε χρησιμοποιώντας τον Refactoring Trip Advisor. Επίσης παρατηρήθηκε ότι ο χρόνος εκτέλεσης της διαδικασίας ανακατασκευής με τον Refactoring Trip Advisor, για μερικούς χρήστες μειώθηκε και για κάποιους άλλους αυξήθηκε. Τέλος οι χρήστες ανέφεραν γενικά θετικά σχόλια από την εμπειρία τους με τη χρήση του εργαλείου.el
heal.abstractThis work’s general theme is part of software engineering and more specifically of the evaluation of its quality. Software evaluation is quite necessary as it contributes significantly to its quality improvement. The work focuses on a particular category of software improvements. Specifically, the improvements which modify the internal structure of the source code without affecting its functionality, better known as code refactoring. We describe the 68 refactoring techniques contained in Martin Fowler’s catalog of refactorings and we group them into 6 distinct categories: Method Composition, Method Call Improvement, Conditional Expression Simplification, Generalization Improvement, Data Organization and Feature Movement Between Objects. The large number of those techniques in combination with the fact that programmers avoid the use of automated tools leads to an inefficient code refactoring process. In regards to this, we propose a new method of structured code refactoring based on the Map of refactorings. The Map of refactorings is a graph in which each node is represented by one of the 68 refactoring techniques and each edge represents a relationship between them. The three types of relationships that we propose derive from the study of Fowler’s catalog of refactorings and are as follows: Succession Relationship, "Part of" Relationship and "Instead of" Relationship. The study of the Map of refactorings showed that the Extract Method and Move Method techniques are the most basic ones in the refactoring process while the Extract Superclass and Extract Subclass are the most complex. For the visualization of the Map of Refactorings and so as to make it available to the developer, we developed an Eclipse plug-in named Refactoring Trip Advisor. In addition this tool provides useful information for every refactoring technique as well as the feature of automatic identification of refactoring opportunities for some of them. For the evaluation of Refactoring Trip Advisor we provided the source code of two methods in a number of developers and asked them to refactor one of them manually and the other one with the help of our tool. The results showed that the majority of users, at least doubled the number of the refactorings they implemented while using Refactoring Trip Advisor. We also observed that the refactoring process’ duration while using Refactoring Trip Advisor, increased for some users and decreased for some others. Finally, the users generally reported positive feedback from their experience using our tool.en
heal.advisorNameΖάρρας, Απόστολοςel
heal.committeeMemberNameΖάρρας, Απόστολοςel
heal.committeeMemberNameΓιαννάκος, Χρήστοςel
heal.committeeMemberNameΣυμεωνίδης, Στέφανοςel
heal.academicPublisherΠανεπιστήμιο Ιωαννίνων. Σχολή Θετικών Επιστημών. Τμήμα Μηχανικών Η/Υ & Πληροφορικήςel
heal.academicPublisherIDuoi-
heal.numberOfPages124 σ.-
heal.fullTextAvailabilityfalse-
Appears in Collections:Διατριβές Μεταπτυχιακής Έρευνας (Masters) - ΜΥ

Files in This Item:
There are no files associated with this item.


This item is licensed under a Creative Commons License Creative Commons