A study of schema & software co-evolution for relational databases in free open-source projects

Φόρτωση...
Μικρογραφία εικόνας

Ημερομηνία

Συγγραφείς

Shehaj, Fation

Τίτλος Εφημερίδας

Περιοδικό ISSN

Τίτλος τόμου

Εκδότης

Πανεπιστήμιο Ιωαννίνων. Πολυτεχνική Σχολή. Τμήμα Μηχανικών Ηλεκτρονικών Υπολογιστών και Πληροφορικής

Περίληψη

Τύπος

Είδος δημοσίευσης σε συνέδριο

Είδος περιοδικού

Είδος εκπαιδευτικού υλικού

Όνομα συνεδρίου

Όνομα περιοδικού

Όνομα βιβλίου

Σειρά βιβλίου

Έκδοση βιβλίου

Συμπληρωματικός/δευτερεύων τίτλος

Περιγραφή

In this dissertation, we attempt to study and make an analysis on the co-evolution of the database schema and source code. Studying the co-evolution is especially important as it can identify patterns on how the code development can impact the schema evolution, with the purpose to help designers and developers spend less time modifying the storage and processing system for the provided information. Also, through this study, the potential effects on software maintenance that would emerge from the dependence of the source code and the database schema can be reduced or even improve the performance of the software and potentially the development time. The key question of this thesis is: Is there a correlation on how the evolution of a software source code affects the evolution of the database schema, and if so, can we categorize them? To answer this question, we used data from the commit history of three hundred and fifty (350) projects, collected with the help of the GitHub platform. The projects were divided into six categories, these categories are: frozen, almost frozen, focused shot & frozen, moderate, focused shot & low and active. First, we made an extensive, manually (non-automated) analysis of six randomly selected projects. We tried to understand how the code and the database schema evolve simultaneously and find possible patterns. We also developed software that uses the data files from GitHub to visualize the code and database changes in real-time using bar charts to help us identify possible patterns. Finally, to draw more derailed conclusions, as we are not interested in all types of changes in a SQL file, but only those that affect the schema of the database, we used files that contained more information about the history of changes in the database, to export diagrams with the cumulative changes for each program. This tool, incorporated in the previous one, is made to the standards of the Heraclitus tool (GitHub: HeraclitusFire) and has also the ability to export these graphs into a web format to better summarize the information.
Σε αυτή την διπλωματική εργασία επιχειρούμε να κάνουμε μια μελέτη και ανάλυση στην συν-εξέλιξη του σχήματος της βάσης δεδομένων και του πηγαίου κώδικα. Η μελέτη αυτής της συν-εξέλιξης είναι ιδιαίτερα σημαντική καθώς μπορεί να εντοπίσει μοτίβα στον τρόπο με τον οποίο η ανάπτυξη του κώδικα μπορεί να επηρεάσει την εξέλιξη του σχήματος, με σκοπό να βοηθήσει τους σχεδιαστές και προγραμματιστές να αφιερώνουν λιγότερο χρόνο για την τροποποίηση του τρόπου αποθήκευσης και επεξεργασίας της παρεχόμενης πληροφορίας. Επίσης, μέσω αυτής της μελέτης μπορούν να μειωθούν οι πιθανές συνέπειες στην συντήρηση του λογισμικού που θα προκύπταν λόγο της εξάρτηση του κώδικα και του σχήματος της βάσης δεδομένων ή ακόμα και να βελτιωθεί η απόδοση του λογισμικού και ενδεχομένως του χρόνου ανάπτυξης του. Το βασικό ερώτημα αυτής της διπλωματικής εργασίας είναι: Υπάρχει κάποια συσχέτιση στον τρόπο που η εξέλιξη του πηγαίου κώδικα ενός λογισμικού επηρεάζει την εξέλιξη της βάσης δεδομένων, και αν ναι, μπορούμε να τα κατηγοριοποιήσουμε; Για να απαντήσουμε την συγκεκριμένη ερώτηση, χρησιμοποιήσαμε δεδομένα από το ιστορικό των αλλαγών από τριακόσια πενήντα (350) προγράμματα (projects), που συλλέχθηκαν με την βοήθεια της πλατφόρμας του GitHub. Τα έργα (προγράμματα) χωρίστηκαν σε έξι κατηγορίες, συγκεκριμένα: frozen, almost frozen, focused shot & frozen, moderate, focused shot & low and active. Αρχικά, κάνουμε μια εκτεταμένη, μη αυτοματοποιημένη ανάλυση σε έξι τυχαία επιλεγμένα προγράμματα, προσπαθώντας να καταλάβουμε τον τρόπο που εξελίσσεται ο κώδικας και το σχήμα βάσης ταυτόχρονα και να βρούμε πιθανά μοτίβα. Επίσης, αναπτύξαμε ένα λογισμικό που χρησιμοποιεί τα αρχεία με το ιστορικό δεδομένων από το GitHub, για να οπτικοποιήσουμε σε διαγράμματα μπάρας τις αλλαγές στον κώδικα και τη βάση στον χρόνο, ώστε να μας βοηθήσει να εντοπίσουμε πιθανά μοτίβα. Στην συνέχεια, για να εξάγουμε πιο λεπτομερή συμπεράσματα, καθώς δεν μας ενδιαφέρουν όλες οι αλλαγές σε ένα SQL αρχείο, αλλά μόνο όσες επηρεάζουν το σχήμα της βάσης, χρησιμοποιήσαμε αρχεία που περιείχαν περισσότερη πληροφορία για το ιστορικό αλλαγών στην βάση δεδομένων, για να εξάγουμε διαγράμματα με τις σωρευτικές αλλαγές για κάθε πρόγραμμα. Το εργαλείο αυτό, ενσωματώθηκε στο προηγούμενο, έγινε στα πρότυπα του εργαλείου Ηράκλειτος (GitHub: HeraclitusFire) και έχει την δυνατότητα να εξάγει τα γραφήματα αυτά σε διαδικτυακή μορφή για καλύτερη σύνοψη της πληροφορίας.

Περιγραφή

Λέξεις-κλειδιά

Relational databases, Free open-source projects

Θεματική κατηγορία

Relational databases

Παραπομπή

Σύνδεσμος

Γλώσσα

en

Εκδίδον τμήμα/τομέας

Πανεπιστήμιο Ιωαννίνων. Πολυτεχνική Σχολή. Τμήμα Μηχανικών Ηλεκτρονικών Υπολογιστών και Πληροφορικής

Όνομα επιβλέποντος

Βασιλειάδης, Παναγιώτης

Εξεταστική επιτροπή

Βασιλειάδης, Παναγιώτης
Ζάρρας, Απόστολος
Μαμουλής, Νικόλαος

Γενική Περιγραφή / Σχόλια

Ίδρυμα και Σχολή/Τμήμα του υποβάλλοντος

Πανεπιστήμιο Ιωαννίνων. Πολυτεχνική Σχολή. Τμήμα Μηχανικών Ηλεκτρονικών Υπολογιστών και Πληροφορικής

Πίνακας περιεχομένων

Χορηγός

Βιβλιογραφική αναφορά

Βιβλιογραφία: σ. 81

Ονόματα συντελεστών

Αριθμός σελίδων

83 σ.

Λεπτομέρειες μαθήματος

item.page.endorsement

item.page.review

item.page.supplemented

item.page.referenced

Άδεια Creative Commons

Άδεια χρήσης της εγγραφής: Attribution-NonCommercial-NoDerivs 3.0 United States