Στην παρούσα διπλωματική εργασία αναλύθηκε ο όρος Refactoring, που στα Ελληνικά μεταφράζεται ως αναδόμηση ή ανακατασκευή κώδικα. Η διαδικασία αυτή συνήθως αποτελείται από μια σειρά μικρών βημάτων που ονομάζονται «μικρο-αναδομήσεις». Σε κάθε ένα από αυτά τα βήματα, γίνεται μια μικρή αλλαγή στον πηγαίο κώδικα ενός προγράμματος που έχει ως στόχο να κάνει τον κώδικα απλούστερο και καθαρότερο, ενώ η λειτουργικότητα του συστήματος παραμένει η ίδια.
Η διαδικασία αυτή προσφέρει πολλά πλεονεκτήματα τα οποία μπορούν να εκμεταλλευθούν προς όφελός τους οι προγραμματιστές. Μερικά από αυτά αφορούν την επεκτασιμότητα του κώδικα, δηλαδή το πόσο εύκολα επεκτάσιμο αλλά και συντηρήσιμο είναι ένα πρόγραμμα, την ευκολία στην ενημέρωση του κώδικα και των βιβλιοθηκών που επιλέγονται, αλλά και στην μείωση της πολυπλοκότητας. Αναφορικά με το refactoring, στο σημείο αυτό πρέπει να σημειωθεί ότι υπάρχουν και προγράμματα, όπως το GitHub, που δίνουν την δυνατότητα στους χρήστες να δουν το ιστορικό αλλαγών τους και να συνεργαστούν με την ομάδα και να χτίζουν μαζί τις απαιτήσεις του προγράμματος στον ίδιο κώδικα, μεταξύ άλλων.
Στην παρούσα διπλωματική εργασία αναπτύχθηκε ένα εργαλείο το οποίο μπορεί και οπτικοποιεί όλη αυτή την πληροφορία που λαμβάνει από το Github. Η εφαρμογή φορτώνει ένα repository κώδικα Java από το Github και εμφανίζει μια λίστα με αλλαγές
Διπλωματική Εργασία
4
Ιωάννης Παπαϊωάννου, Γραφικό περιβάλλον για ανάλυση του
ιστορικού αναδομήσεων ενός έργου λογισμικού
από κάθε χρήστη που έγιναν. Με λίγα λόγια εμφανίζει μια λίστα με τα Commits που έχουν πραγματοποιηθεί. Ο χρήστης επιλέγοντας ένα από αυτά βλέπει όλες τις αλλαγές στον κώδικα. Μπορεί να επιλέξει ανάμεσα σε δύο commit και να εμφανίζει τις αλλαγές που έγιναν. Τέλος μπορεί να κάνει analyze ένα commit.
Η υλοποίηση του εργαλείου έγινε με την βοήθεια της βιβλιοθήκης Refactoring Miner.
In the present dissertation the term Refactoring was analyzed, which in Greek translates as Reconstruction or code reconstruction. This process usually consists of a series of small steps called "micro-reconstructions". In each of these steps, a small change is made to the source code of a program that aims to make the code simpler and cleaner, while the functionality of the system remains the same.
This process offers many advantages that developers can take advantage of. Some of these relate to the extensibility of the code, i.e. how easily scalable and maintainable a program is, the ease of updating the code and the libraries selected, but also the reduction of complexity. Regarding refactoring, at this point it should be noted that there are online services, such as GitHub, that allow users to view the change history of a software project and collaborate with the team and build together the requirements of the program in the same code, including.
In this dissertation a tool has been developed which can and does visualize all this information it receives from Github. The application loads a Java code repository from Github and displays a list of changes made by each user. In short, it displays a list of Commits that have been made. By selecting one of them, the user sees all the changes in the code. It can choose between two commits and display the changes made. Finally it can analyze a commit. The tool was implemented with the help of the Refactor Miner library.