Abstract : | Στην διπλωματική αυτή εργασία αναπτύχθηκε ένα Eclipse Plugin το οποίο αναδομεί JavaScript κώδικα. Η αναδόμηση κώδικα ορίζεται ως η διαδικασία τροποποίησης της εσωτερικής δομής του κώδικα με τέτοιο τρόπο, ώστε να μένει αμετάβλητη η εξωτερική συμπεριφορά του. Στόχος του εργαλείου που αναπτύχθηκε είναι η αυτοματοποίηση της διαδικασίας της αναδόμησης για τη JavaScript και η ενημέρωση του λογισμικού προς εξέταση στην τελευταία έκδοση της JavaScript, στο ECMAScript 6. Σε αυτό το σημείο λύνει το πρόβλημα που παρουσιάζεται στο πρότυπο «Ενότητα», μελλοντικά μπορεί να αναπτυχθεί περεταίρω ώστε να λύνει παραπάνω προβλήματα. Tο plugin είναι γραμμένο σε Java και σε JavaScript, η δομή του αποτελείται από δύο κύρια μέρη το back-end και το front-end. Το back-end εκτελεί την αναζήτηση και μελέτη σε ένα λογισμικό για εύρεση σημείων στα οποία απαιτείται η εφαρμογή αναδόμησης, χρησιμοποιώντας το WALA. Το front-end εφαρμόζει αυτά τα σημεία, χρησιμοποιώντας κατάλληλες δομές, και παρουσιάζει τις αλλαγές στο χρήστη. Για την εφαρμογή αυτών των αναδομήσεων χρησιμοποιήθηκε το λογισμικό JSCodeShift το οποίο είναι γραμμένο σε JavaScript. Το υπόλοιπο plugin είναι γραμμένο σε Java, έτσι για να μπορέσει να χρησιμοποιηθεί το JSCodeShift χρησιμοποιήθηκε σαν ενδιάμεσος κρίκος το λογισμικό J2V8. Μετέπειτα, υπάρχει η επιλογή παρουσίασης και σύγκρισης των αρχείων δίνοντας την επιλογή στον χρήστη για εφαρμογή ή μη των αλλαγών. Η παρούσα διπλωματική εκτελεί το front-end μέρος του plugin, το οποίο αναπτύχθηκε με στόχο να είναι εύκολα επεκτάσιμο και συντηρήσιμο. Επίσης η διαδικασία παρουσίασης και σύγκρισης των αρχείων υλοποιήθηκε με τέτοιο τρόπο ώστε να μην απαιτείται η αλλαγή του κώδικα μετά από πιθανή επέκταση του back-end. This diploma thesis has developed an Eclipse Plugin that perfoms refactoring on JavaScript code. Refactoring is defined as the process of modifying the internal structure of the code in such a way that its external behavior remains unchanged. The goal of the tool developed is to automate the JavaScript refactoring process and update the software to the latest version of JavaScript, which is ECMAScript 6. At this point it solves the problem presented in the Module model, further developed to solve more problems. The plugin is written in Java and JavaScript, its structure consists of two main parts of the back-end and front-end. The back-end performs search and study of a software for finding points requiring a refactoring application using WALA. The front-end applies these points, using appropriate structures, and presents changes to the user. The JSCodeShift software, which is written in JavaScript, was used to refactor the software. The rest of the plugin is written in Java, so in order to be able to use JSCodeShift, J2V8 software as the middle link between Java and JavaScript. Thereafter, there is the option of presenting and comparing files by giving the user the option to apply, or not, a change.This diploma performs the front-end part of the plugin, which was developed in order to be easily expandable and maintainable. Also, the process of presenting and comparing files was implemented in such a way, that no change of the code is required after a possible back-end extension.
|
---|