8 research outputs found

    On Preserving the Behavior in Software Refactoring: A Systematic Mapping Study

    Get PDF
    Context: Refactoring is the art of modifying the design of a system without altering its behavior. The idea is to reorganize variables, classes and methods to facilitate their future adaptations and comprehension. As the concept of behavior preservation is fundamental for refactoring, several studies, using formal verification, language transformation and dynamic analysis, have been proposed to monitor the execution of refactoring operations and their impact on the program semantics. However, there is no existing study that examines the available behavior preservation strategies for each refactoring operation. Objective: This paper identifies behavior preservation approaches in the research literature. Method: We conduct, in this paper, a systematic mapping study, to capture all existing behavior preservation approaches that we classify based on several criteria including their methodology, applicability, and their degree of automation. Results: The results indicate that several behavior preservation approaches have been proposed in the literature. The approaches vary between using formalisms and techniques, developing automatic refactoring safety tools, and performing a manual analysis of the source code. Conclusion: Our taxonomy reveals that there exist some types of refactoring operations whose behavior preservation is under-researched. Our classification also indicates that several possible strategies can be combined to better detect any violation of the program semantics

    Διερεύνηση ιστορικών δεδομένων αναφορικά με προβλήματα σχεδίασης σε αντικειμενοστρεφή συστήματα λογισμικού

    Get PDF
    Διπλωματική εργασία--Πανεπιστήμιο Μακεδονίας, Θεσσαλονίκη, 2010.Τα προβλήματα σχεδίασης, σε αντίθεση με τα πρότυπα, αποτελούν συμπτώματα κακής ποιότητας της σχεδίασης ενός συστήματος λογισμικού και στην Τεχνολογία Λογισμικού εμφανίζονται υπό διαφορετικά ονόματα αλλά και οπτική γωνία θεώρησης. Ο εντοπισμός και εξάλειψη τους, δηλαδή η εφαρμογή της ευρέως γνωστής διαδικασίας της αναδόμησης, είναι μείζονος σημασίας εφόσον οδηγεί σε πηγαίο κώδικα του συστήματος που είναι πιο εύκολος στην κατανόηση, την τροποποίηση, την επαναχρησιμοποίηση και τον έλεγχο. Η παρούσα διπλωματική εργασία διερευνά την εξέλιξη των προβλημάτων σχεδίασης, αξιοποιώντας εργαλεία-CASE tools που υποστηρίζουν τον αυτόματο εντοπισμό τους, σε πολλαπλές διαδοχικές γενιές επιλεγμένων έργων λογισμικού ανοιχτού κώδικα, υλοποιημένα στη γλώσσα προγραμματισμού Java. Η αξιολόγηση των ευρημάτων, αναμένεται να παράσχει σημαντικές πληροφορίες και να απαντήσει σε αρκετά ερωτήματα όπως για παράδειγμα: α) εάν ο αριθμός των προβλημάτων σχεδίασης αυξάνεται με τη πάροδο των γενεών ενός έργου β) εάν τα προβλήματα σχεδίασης εξαλείφονται λόγω κατάλληλων στοχευόμενων ανθρώπινων παρεμβάσεων κάθε φορά γ) εάν τα προβλήματα σχεδίασης εμφανίζονται κατά την εξέλιξη των σχετικών τμημάτων του πηγαίου κώδικα ή ενυπάρχουν ήδη από τη στιγμή της εισαγωγής τους στο σύστημα, και δ) κατά πόσο συχνά εκτελούνται οι κατάλληλες ενέργειες αναδόμησης από τους σχεδιαστές των υπό εξέταση συστημάτων λογισμικού ανοιχτού κώδικα για την εξάλειψη των εντοπιζόμενων προβλημάτων σχεδίασης. Σε αντίθεση με προηγούμενες ερευνητικές προσεγγίσεις που έχουν διερευνήσει την εφαρμογή των αναδομήσεων κατά τη διάρκεια εξέλιξης ενός έργου λογισμικού, στα πλαίσια της παρούσας διπλωματικής εργασίας, θα επιχειρηθεί η εξέταση του θέματος από την οπτική γωνία των ίδιων των προβλημάτων σχεδίασης διαχωρίζοντας τις σκόπιμες ενέργειες αναδόμησης από τις ακούσιες ενέργειες αφαίρεσης των προβλημάτων που προκύπτουν λόγω της διορθωτικής ή της προσαρμοστικής συντήρησης του συστήματος λογισμικού. Η εμπειρική μελέτη πραγματοποιείται εξετάζοντας δυο έργα λογισμικού ανοιχτού κώδικα αναζητώντας τέσσερα προβλήματα σχεδίασης που θεωρούνται τα περισσότερο σημαντικά μεταξύ των προβλημάτων που εμφανίζονται σε έργα λογισμικού μεγάλης κλίμακας μιας και σχετίζονται με τη διανομή της λειτουργικότητας μεταξύ των κλάσεων και των μεθόδων του συστήματος. Επιπλέον, η εξάλειψή αυτών επιτυγχάνεται κατόπιν στοχευόμενων ενεργειών από πλευράς των σχεδιαστών

    CMS-järjestelmien suorituskyvyn optimointi ja parantaminen

    Get PDF
    Web-pohjaisten CMS-järjestelmien suorituskyvyn merkitys on erittäin suuri. Sivuston suorituskyky vaikuttaa muun muassa käyttökokemukseen ja asiakastyytyväisyyteen sekä syntyvään laatuvaikutelmaan. Joskus suorituskyvyn ongelmien taustalla voi olla myös järjestelmässä piileviä laatuongelmia, kuten runsaasti teknistä velkaa tai rappeutunut kokonaisarkkitehtuuri. Tässä tutkielmassa tehdään katsaus CMS-järjestelmiin sekä ohjelmistojen laatuun, laadun arviointiin ja metriikoihin. Tutkielman tapaustutkimuksen kohteena on erään IT-alalla toimivan yrityksen kehittämä ja markkinoima web CMS -järjestelmä. Suorituskyky on muodostunut tässä järjestelmässä ongelmalliseksi. Tutkielmassa pyritään löytämään keinoja, joilla web CMS -järjestelmien suorituskykyä voidaan parantaa ja optimoida yleisellä tasolla. Löydettyjä keinoja pyritään soveltamaan tapaustutkimuksen kohdejärjestelmään sen suorituskyvyn parantamiseksi ja optimoimiseksi. Tapaustutkimuksen kohteena olevan web CMS -järjestelmän suorituskykyä onnistuttiin parantamaan ja optimoimaan löydetyillä keinoilla merkittävästi. Erityisesti keskeisiksi keinoiksi nousivat datan käytön parantaminen, toiston purkaminen, kapselointi, abstraktointi ja keskeisten funktioiden parantaminen. Tutkielman yhteydessä tehtiin myös havainto tapaustutkimuksen kohteena olevan web CMS -järjestelmän laatuongelmista ja annetaan ehdotuksia laatutason parantamiseksi myös jatkoss

    Οπτικοποίηση προβλημάτων σχεδίασης και σχετικών αναδομήσεων (Visualization of bad smells and corresponding refactorings)

    Get PDF
    Διπλωματική εργασία--Πανεπιστήμιο Μακεδονίας, Θεσσαλονίκη, 2011.Η εργασία πραγματεύεται την οπτικοποίηση προβλημάτων σχεδίασης και σχετικών αναδομήσεων. Για την υλοποίηση των οπτικοποιήσεων χρησιμοποιήθηκαν τα εργαλεία EMF (Eclipse Modeling Framework), MDT/UML2 (Model Development Tools/ Unified Modeling Language) και GEF (Graphical Modeling Framework). Πιο αναλυτικά, σε πρώτη φάση παρέχεται μια επισκόπηση του Eclipse και του EMF ενώ γίνεται λόγος για την UML2 και τις τεχνικές επέκτασής της. Ακολουθεί μια συνοπτική περιγραφή του Draw2D , το οποίο αποτελεί το σχετικό με την κατασκευή δισδιάστατων γραφικών τμήμα του GEF. Στη συνέχεια, παρουσιάζεται η αρχιτεκτονική του GEF, οι χρησιμοποιούμενοι μηχανισμοί για την γραφική αναπαράσταση και επεξεργασία ενός μοντέλου αλλά και ο τρόπος με τον οποίο τα διαγράμματα του GEF ενσωματώνονται στο περιβάλλον του Eclipse. Ακόμη, γίνεται αναφορά στο GEF3D που αποτελεί επέκταση του GEF με στόχο την δημιουργία τρισδιάστατων οπτικοποιήσεων αλλά και το GMF(Graphical Modeling Framework) το οποίο αποσκοπεί στο να διευκολύνει τη χρησιμοποίηση του GEF σε συνδυασμό με το EMF. Ακολούθως, παρατίθενται ορισμένες από τις προσεγγίσεις που έχουν προταθεί στην βιβλιογραφία σχετικά με την οπτικοποίηση προβλημάτων σχεδίασης και αναδομήσεων. Τέλος, περιγράφονται οι οπτικοποιήσεις που κατασκευάστηκαν για το εργαλείο εντοπισμού προβλημάτων σχεδίασης, JDeodorant. Ειδικότερα, στα πλαίσια της εργασίας, οπτικοποιούνται οι αναδομήσεις που επιλύουν προβλήματα σχεδίασης της κατηγορίας Ζήλια Ιδιοτήτων(Feature Envy) και Έλεγχος Τύπου(Type Checking). Επιπλέον, παρέχεται μια συνολική άποψη του τρόπου με τον οποίο κατανέμονται τα προβλήματα σχεδίασης της κατηγορίας Μεγάλη Μέθοδος(Long Method) στις κλάσεις που ανήκουν στο ίδιο πακέτο λογισμικού

    TOWARDS AN INTEGRATED METAMODEL BASED APPROACH TO SOFTWARE REFACTORING

    Get PDF
    corecore