Please use this identifier to cite or link to this item: https://olympias.lib.uoi.gr/jspui/handle/123456789/29169
Full metadata record
DC FieldValueLanguage
dc.contributor.authorΠαπαμιχαήλ, Άγγελοςel
dc.date.accessioned2018-10-23T10:15:21Z-
dc.date.available2018-10-23T10:15:21Z-
dc.identifier.urihttps://olympias.lib.uoi.gr/jspui/handle/123456789/29169-
dc.identifier.urihttp://dx.doi.org/10.26268/heal.uoi.2879-
dc.rightsDefault License-
dc.subjectSoftware engineeringen
dc.subjectSQLen
dc.titleAn empirical study on the usage of conventions and rules for SQL programming in FoSSen
dc.titleΕμπειρική μελέτη σχετικά με τη χρήση συμβάσεων και κανόνων SQL σε ελεύθερο και ανοιχτό λογισμικόel
heal.typemasterThesis-
heal.type.enMaster thesisen
heal.type.elΜεταπτυχιακή εργασίαel
heal.classificationSoftware engineeringen
heal.dateAvailable2018-10-23T10:16:22Z-
heal.languageen-
heal.accessfree-
heal.recordProviderΠανεπιστήμιο Ιωαννίνων. Πολυτεχνική Σχολή. Τμήμα Μηχανικών Ηλεκτρονικών Υπολογιστών και Πληροφορικήςel
heal.publicationDate2018-
heal.bibliographicCitationΒιβλιογραφία: σ. 83-85el
heal.abstractSoftware evolution is one of the most important aspects of software engineering with maintenance requiring about half of a project’s resources. The software engineering community has made massive improvements in coding quality with the adoption of good practices, coding conventions and styles that optimize software development and maintenance. In this Thesis we focus on SQL programming. Our main objective is to investigate the extent to which developers employ coding conventions and styles in the definition of an SQL schema. To this end, we introduce a SQL style that consists of a set of style rules found in the state of the art. This style covers various aspects of the SQL schema quality. To assess schema quality we propose a style checking tool that allows developers to check the adherence to the rules of the defined style. We conduct a large scale case study consisting of 21 well-known FoSS projects. In our case study we check whether the SQL schemas of the examined projects adhere to the rules. Moreover, we investigate the evolution of the style that is followed by each schema. Taking a step further, we identify evolution patterns that describe the adherence to the rules over the lifetime of the examined schemas. Then, we perform a detailed analysis of the individual rules and we identify respective rule adherence and violation patterns. Based on the aforementioned patterns, we identify a weighted SQL style that reflects the extent to which the examined rules are employed in practice. Finally, we evaluate the distance of the examined schemas from the style we defined and the weighted style.en
heal.abstractΗ εξέλιξη του λογισμικού είναι μία από τις σημαντικότερες πλευρές του software engineering με τη συντήρη, να απαιτεί τους μισούς από τους συνολικά διαθέσιμους πόρους. Η κοινότητα του software engineering έχει κάνει σημαντική πρόοδο ως προς την ποιότητα κώδικα μέσω της δημιουργίας και αξιοποίησης τεχνικών που βελτιστοποιούν την ανάπτυξη και συντήρησή του αλλά και της ανάπτυξης τεχνικών διαχείρισης πόρων. Πιο συγκεκριμένα, για την πλειονότητα των γλωσσών αντικειμενοστρεφούς προγραμματισμού υπάρχει ένα σύνολο κανόνων γραφής12 που εξασφαλίζουν την ύπαρξη ομοιογένειας και αναγνωσιμότητας στο κώδικα. Παράλληλα ορίστηκαν μοτίβα γραφής κώδικα που ενισχύουν άμεσα την επεκτασιμότητά3 και εξασφαλίζουν την χρήση αντικειμενοστρεφούς αρχών σχεδίασης4. Είναι γνωστό, ειδικά σε μεγάλης κλίμακας προγράμματα, ότι η ύπαρξη λογισμικού προϋποθέτει την ύπαρξη μιας ή περισσότερων βάσεων δεδομένων και το αντίστροφο, ενώ ακόμη πολλές φορές το ίδιο το λογισμικό δημιουργείται και εξελίσεται γύρω από μια βάση δεδομένων. Η πραγματικότητα λοιπόν ορίζει ως ίσα μέρη το λογισμικό και τις βάσεις. Εύλογα θα περιμένε κανείς την ύπαρξη πλούσιας και σε βάθος βιβλιογραφία για τις βάσεις αντίστοιχη αυτής του λογισμικού, όσον αφορά την δημιουργία και ανάπτυξή τους. Δυστυχώς όμως η βιβλιογραφία είναι σαφώς πιο περιορισμένη και αυτό μας ώθησε στο να ερευνήσουμε και να συνεισφέρουμε στο τομέα της ποιότητας των βάσεων δεδομένων. Σε αυτή την εργασία επικεντρωνόμαστε στον προγραμματισμό SQL. Ο κύριος στόχος μας είναι να διευρενήσουμε το βαθμό στον οποίο οι προγραμματιστές αξιοποιούν συμβάσεις και στυλ γραφής κώδικα κατά τον ορισμό SQL σχημάτων. Για αυτό το λόγο, εισάγουμε ένα ιδανικό SQL στυλ που αποτελείται από ένα σύνολο κανόνων που προέρχονται από ό,τι καλύτερο υπάρχει στη σχετική βιβλιογραφία. Το ιδανικό στυλ καλύπτει ποικίλες πλευρές όσον αφόρα τη ποιότητα ενός SQL σχήματος. Για να ελέγξουμε την ποιότητα του σχήματος προτείνουμε ένα εργαλείο που επιτρέπει στους προγραμματιστές να ελέγξουν την ικανοποίηση των κανόνων του ιδανικού στυλ. Το εργαλείο αυτοματοποιεί πλήρως τον έλεγχο ικανοποίησης των κανόνων στην ιστορία ενός σχήματος, όπου ως ιστορία ορίζονται οι διαφορετικές εκδόσεις ενός σχήματος από την αρχή της ύπαρξής του ως την τελευταία γνωστή έκδοση σε εμάς. Παράλληλα με το βαθμό ικανοποίησης των κανόνων για την κάθε έκδοση, εξάγει στατιστικά στοιχεία που περιγράφουν το εύρος τιμών της ικανοποίησης (τυπική απόκλιση, μέσος όρος κ.α.) καθώς και τη συσχέτιση μεταξύ του μεγέθους του σχήματος και του βαθμού ικανοποίησης. Αξιοποιούμε τις δυνατότητες που μας παρέχει το εργαλείο διεξάγοντας μια μεγάλης κλίμακας μελέτη αποτελούμενη από 21 γνώστα, ανοιχτού κώδικα, προγράμματα (FoSS). Στη μελέτη ελέγχουμε αν τα SQL σχήματα των προγραμμάτων που συμμετέχουν σε αυτήν ακολουθούν τους κανόνες. Ακόμα, εξετάζουμε την εξέλιξη των στυλ που ακολουθούντε από το κάθε σχήμα. Παράλληλα, αναγνωρίζουμε μοτίβα εξέλιξης που περιγράφουν την ικανοποίηση των κανόνων κατά τη διάρκεια ζωής των σχημάτων. Συνεχίζοντας, διεξάγουμε μια λεπτομερή ανάλυση του κάθε κανόνα και αναγνωρίζουμε τα αντίστοιχα μοτίβα ικανοποίησης ή παραβίασής τους. Βασιζόμενοι στα παραπάνω μοτίβα, ορίζουμε ένα σταθμισμένο (weight) στυλ που αντικατοπτρίζει το εύρος χρήσης των κανόνων από τους προγραμματιστές στην πράξη. Τέλος, αξιολογούμε την απόσταση των ελεγθέντων σχήματων από το ιδεατό και σταθμισμένο στυλ. Συγκεκριμένα, αποδείξαμε ότι ικανοποιούνται αρκετοί κανόνες στυλ γραφής SQL ενώ ο βαθμός ικανοποίησης επηρεάζεται από το σχήμα, την SQL οντότητα που ελέγχουμε (πίνακας ή κολώνα) αλλά και από τον ίδιο το κανόνα. Μελετώντας την εξέλιξη των σχημάτων, βρήκαμε ότι για τους πίνακες το πλήθος των κανόνων που αλλάζει κυμαίνεται από 0 έως 7 και για τις κολώνες από 0 έως 8. Επίσης, οι αλλαγές μεγάλης κλίμακας συμβαίνουν σε μικρά χρονικά διάστηματα ως προς τη συνολική διάρκεια ζωής του σχήματος και ότι τα διαστήματα αυτά είναι συνεχή. Ο έλεγχος της διαφοράς του βαθμού ικανοποιήσης των κανόνων μεταξύ πρώτης και τελευταίας έκδοσης έδειξε την φύση των αλλαγών. Οι περισσότεροι κανόνες παραμένουν σταθεροί (13 για πίνακες, 14 για κολώνες), ορισμένοι εξελίσσονται αρνητικά (2 κανόνες πινάκων, 1 κολώνων) και τέλος ελάχιστοι εξελίσσονται θετικά (2 για τις κολώνες). Διερευνόντας τον βαθμό ικανοποίησης στην τελευταία γνωστή έκδοση βρήκαμε ότι οι κανόνες που ικανοποιούνται σε μεγάλο βαθμό είναι 11 για τους πίνακες 14 για τις κολώνες. Οι κανόνες που ικανοποιούνται σε μικρότερο βαθμό είναι 2 για τους πίνακες και 1 για τις κολώνες. Οι κανόνες που παραβιάζονται σε μεγάλο βαθμό είναι 2 για τους πίνακες και αυτοί που παραβιάζονται σε μικρότερο βαθμό είναι 2 και αφορούν τις κολώνες. Τέλος μέσω της κατάταξης των κανόνων με βάση τη ικανοποίησή τους από τους προγραμματιστές προσδιορίσαμε της αξία του κάθε κανόνα, όπως την αντιλαμβάνεται ο ίδιος ο προγραμματιστής.el
heal.advisorNameΖάρρας, Απόστολοςel
heal.committeeMemberNameΖάρρας, Απόστολοςel
heal.committeeMemberNameΒασιλειάδης, Παναγιώτηςel
heal.committeeMemberNameΜαμουλής, Νικόλαοςel
heal.academicPublisherΠανεπιστήμιο Ιωαννίνων. Πολυτεχνική Σχολή. Τμήμα Μηχανικών Ηλεκτρονικών Υπολογιστών και Πληροφορικήςel
heal.academicPublisherIDuoi-
heal.numberOfPages110 σ.-
heal.fullTextAvailabilitytrue-
Appears in Collections:Διατριβές Μεταπτυχιακής Έρευνας (Masters) - ΜΥ

Files in This Item:
File Description SizeFormat 
Μ.Ε. ΠΑΠΑΜΙΧΑΗΛ ΆΓΓΕΛΟΣ 2018.pdf4.53 MBAdobe PDFView/Open


This item is licensed under a Creative Commons License Creative Commons