Please use this identifier to cite or link to this item:
Full metadata record
DC FieldValueLanguage
dc.contributor.authorΜανούσης, Πέτροςel
dc.rightsDefault License-
dc.subjectAutomated representationen
dc.subjectQuality assessmenten
dc.subjectAdaptation to changeen
dc.subjectData intensive ecosystemsen
dc.subjectΑυτοματοποιημένη αναπαράστασηel
dc.subjectΑξιολόγηση ποιότηταςel
dc.subjectΠροσαουονή στις αλλανέςel
dc.subjectΟικοσυστήματα βάσεων δεδομένωνel
dc.titleAutomated representation, quality assessment, visualization, and adaptation to change for data intensive ecosystemsen
dc.titleΑυτοματοποιημένη αναπαράσταση, αξιολόγηση ποιότητας, οπτικοποίηση και προσαρμογή στις αλλαγές για οικοσυστήματα βάσεων δεδομένωνel
heal.type.enDoctoral thesisen
heal.type.elΔιδακτορική διατριβήel
heal.recordProviderΠανεπιστήμιο Ιωαννίνων. Πολυτεχνική Σχολή. Τμήμα Μηχανικών Ηλεκτρονικών Υπολογιστών και Πληροφορικήςel
heal.bibliographicCitationΒιβλιογραφία: σ. 223-234el
heal.abstractSoftware evolution is the most demanding part of software development, since the 60% of the resources (time, money, etc.) of a company is consumed in order to evolve its software so as to meet the new requirements of its users. Database-related software also needs to evolve, but since a database is a software part that many other parts rely on it, the difficulty of evolving a database-related project increases because changing a small part of the database schema could result in failures in many different parts of the application’s code. Additionally, the problem becomes even more difficult due to the scarcity of tools that help the developers evolve the database in sync with the software. In this research, we introduce principles, constructs, algorithms and metrics that help the database administrators and the software developers write easier to comprehend, adapt and maintain database related code. To achieve ail that, we introduce a mapping between the software code of the projects that are related to a database, with the database schema. Initially, we locate the database queries in the software. Since the queries are embedded in a hosting language (PHP, C++, Java, etc.), we produce every possible variant of a query, based on the branches and loops of the hosting language providing abstract representations for each of the queries. Then, we come up with a language-independent representation of the queries and based on it, we translate the queries to concrete ones in more than one query languages (e.g. SQL, MongoDb). Second, to describe how well constructed a data-intensive ecosystem is, we propose a metric that describes the quality of the written query in the code of the project regarding the database schema of the project. Our experiments reveal that our metric is in sync with the Lehman’s low of evolution. Whenever it is possible to propose a better way to use the database schema, we propose the introduction of views along with the rewriting of queries over them, so as to achieve better metric values and less developer effort for future schema evolution maintenance. Third, we employ a rigorous formal modelling of host code queries, tables and views in the form of a graph, called Architecture Graph, to facilitate diverse tasks related to the management of a Data intensive Ecosystems. The first task facilitated by Architecture Graph is the identification of the impact that a schema change can have. We introduce algorithms to (a) identify and (b) adapt (via the appropriate rewritings) the impacted queries. We employ a regulation of the propagation of changes in the Architecture Graph via appropriate policies. Finally, the Architecture Graph can be exploited for visualizing the Data Intensive Ecosystems. We explore alternative ways of visualization, and we extend them via proposing a “what-if” visualization method, and we conduct a user study for all the visualizing algorithms.en
heal.abstractΗ εξέλιξη των εφαρμογών είναι ένα από τα πιο απαιτητικά ζητήματα στην ανάπτυξη λογισμικού, μια και οι περισσότεροι πόροι των εταιριών (κοντά 60% των χρημάτων, του χρόνου και άλλων πηγών) δαπανούνται για την εξέλιξη του λογισμικού ώστε αυτό να συνεχίζει να ικανοποιεί της εξελισσόμενες ανάγκες των χρηστών του. Το ίδιο συμβαίνει και με τις εφαρμογές που σχετίζονται με βάσης δεδομένων, όπου η δυσκολία της εξέλιξης είναι ακόμη μεγαλύτερη διότι πολλά τμήματα λογισμικού χρησιμοποιούν της βάσης δεδομένων για να αποθηκεύουν, να ενημερώνουν και να ρωτούν για δεδομένα. Αυτοί λοιπόν οι λόγοι, δύναται να προκαλέσουν την κατάρρευση του λογισμικού σε μια ενδεχόμενη αλλαγή στο σχήμα της βάσης δεδομένων μιας εφαρμογής. Επιπλέον το γεγονός ότι δεν υπάρχουν πολλά εργαλεία που να μπορούν να κάνουν ταυτόχρονα εξέλιξη και στα δύο κομμάτια (κώδικας εφαρμογής και βάση δεδομένων) αυτών των εφαρμογών, κάνει το έργο της εξέλιξης των εφαρμογών που σχετίζονται με βάσεις δεδομένων ακόμη δυσκολότερο. Στη διατριβή αυτή μελετούμε εφαρμογές που σχετίζονται με βάσεις δεδομένων και παρουσιάζουμε μια σειρά αλγορίθμων και μετρικών που μπορούν να βοηθήσουν τους προγραμματιστές αυτού του είδους των εφαρμογών καθώς επίσης και τους διαχειριστές των βάσεων δεδομένων, ώστε να δημιουργήσουν πιο κατανοητό, πιο εύκολο να αναπτυχθεί και να συντηρηθεί κώδικα. Για να το επιτύχουμε αυτό, χρειαζόμαστε μια διασύνδεση μεταξύ της βάσης δεδομένων και των εφαρμογών που τη χρησιμοποιούν. Έχοντας αυτή τη διασύνδεση, μπορούμε να μετρήσουμε το πόσο καλός είναι ο κώδικας μιας εφαρμογής σε σχέση με τη βάση δεδομένων, να εξελίξουμε τη βάση αλλά και τον κώδικα της εφαρμογής κ.ά. Το αρχικό ζήτημα που θα ασχοληθούμε είναι η εύρεση των ερωτήσεων που χρησιμοποιούν τη βάση δεδομένων στον πηγαίο κώδικα. Δοθέντος ότι οι ερωτήσεις γράφονται σε μια προγραμματιστική γλώσσα υποδοχής, που έχει διακλαδώσεις και επαναλήψεις, προτείνουμε ένα τρόπο ώστε να έχουμε κάθε διαφορετική εκδοχή της συγκεκριμένης ερώτησης, σε μια πιο αφαιρετική αναπαράσταση που στη συνέχεια μπορούμε να την εξάγουμε σε πολλές συγκεκριμένες μορφές γλωσσών ερωτήσεων. Στη συνέχεια, προτείνουμε μια μετρική που περιγράφει το πόσο καλά είναι δομημένος ο κώδικας σε σχέση με το σχήμα της βάσης δεδομένων και εξετάζουμε το κατά πόσον η μετρική αυτή εξελίσσεται με βάση τις αλλαγές που συμβαίνουν στον πηγαίο κώδικα. Επιπλέον προτείνουμε, εφόσον είναι δυνατό, αλλαγές στη δομή των ερωτήσεων και της βάσης δεδομένων ώστε να επιτυγχάνεται καλύτερη χρήση του σχήματος της βάσης από τον πηγαίο κώδικα. Έπειτα, εξετάζουμε τη δομημένη εξέλιξη εφαρμογών που σχετίζονται με βάσεις δεδομένων. Για το λόγο αυτό προτείνουμε μια δομή συσχέτισης των δύο κομματιών και χρησιμοποιούμε κανόνες για κάθε πιθανή αλλαγή που μπορεί να συμβεί στα κομμάτια αυτής της δομής συσχέτισης. Κλείνοντας, χρησιμοποιούμε αλγορίθμους οπτικοποίησης ώστε να δούμε τα αποτελέσματα των αλλαγών μας στο σύνολο αλλά και στο επιμέρους κομμάτι που αφορά τις αλλαγές ενός προγράμματος και της συσχετιζόμενης βάσης δεδομένων και διερευνούμε κατά πόσο αυτές οι μορφές οπτικοποίησης είναι αρεστές μέσω μιας μελέτης χρηστών.el
heal.advisorNameΒασιλειάδης, Παναγιώτηςel
heal.committeeMemberNameΒασιλειάδης, Παναγιώτηςel
heal.committeeMemberNameΠιτουρά, Ευαγγελίαel
heal.committeeMemberNameΖάρρας, Απόστολοςel
heal.committeeMemberNameΜαμουλής, Νικόλαοςel
heal.committeeMemberNameΣπινέλλης, Διομήδηςel
heal.committeeMemberNameΣκιαδόπουλος, Σπυρίδωνel
heal.committeeMemberNameΣιμιτσής, Αλκιβιάδηςel
heal.academicPublisherΠανεπιστήμιο Ιωαννίνων. Πολυτεχνική Σχολή. Τμήμα Μηχανικών Ηλεκτρονικών Υπολογιστών και Πληροφορικήςel
heal.numberOfPages234 σ.-
Appears in Collections:Διδακτορικές Διατριβές

Files in This Item:
File Description SizeFormat 
Δ.Δ. ΜΑΝΟΥΣΗΣ ΠΕΤΡΟΣ 2019.pdf4.52 MBAdobe PDFView/Open

This item is licensed under a Creative Commons License Creative Commons