dc.contributor.advisor | Ξένος, Μιχάλης | |
dc.contributor.author | Φιλιππόπουλος, Χρήστος | |
dc.contributor.other | Philipopoulos, Christos | |
dc.coverage.spatial | Κύπρος | el_GR |
dc.date.accessioned | 2012-11-06 | |
dc.date.accessioned | 2012-11-06T09:33:58Z | |
dc.date.available | 2012-11-06T09:33:58Z | |
dc.date.copyright | 2012-08 | |
dc.date.issued | 2012-11-06 | |
dc.identifier.other | ΠΛΗ/2012/00048 | el_GR |
dc.identifier.uri | http://hdl.handle.net/11128/1088 | |
dc.description | Περιέχει βιβλιογραφικές παραπομπές. | el_GR |
dc.description.abstract | Η παρούσα μεταπτυχιακή διατριβή εντάσσεται στην ευρύτερη περιοχή της Τεχνολογίας
Λογισμικού και πιο συγκεκριμένα καταπιάνεται με το περισπούδαστο θέμα της Ποιότητας
Λογισμικού. Το λογισμικό ανοικτού κώδικα τα τελευταία χρόνια έχει γίνει απαραίτητο τόσο στην
καθημερινότητα εκατομμυρίων χρηστών όσο και στις εταιρίες που επενδύουν όλο και
περισσότερο σε έργα ανοικτού κώδικα. Το μοντέλο ανάπτυξης του λογισμικού ανοικτού κώδικα
έχει μεγάλες διαφορές σε σχέση με τις παραδοσιακές μεθόδους ανάπτυξης εμπορικού
λογισμικού, αφού στηρίζεται κυρίως στη συμμετοχή εθελοντών. Έτσι, προκύπτει άμεσα η
ανάγκη να μελετηθεί η ποιότητα του πηγαίου κώδικά τους και να αναζητηθούν τρόποι για τη
βελτίωσή της. Πολύ σημαντικός παράγοντας που μπορεί να επηρεάσει αρνητικά την ποιότητα
ενός λογισμικού είναι η ύπαρξη σφαλμάτων. Επιπρόσθετα, ο αντικειμενοστρεφής τρόπος
ανάλυσης και σχεδίασης είναι πλέον στις ημέρες μας ο κυρίαρχος τρόπος ανάπτυξης εφαρμογών
με τη συντριπτική πλειοψηφία των έργων ανοικτού κώδικα να τον εφαρμόζουν. Προκύπτει
λοιπόν το ερώτημα: υπάρχει τρόπος να προβλέψουμε τα σφάλματα σε λογισμικό ανοικτού κώδικα
που ακολουθεί το αντικειμενοστρεφές παράδειγμα;
Σκοπός της έρευνάς μας είναι η διερεύνηση της απάντησης στο παραπάνω ερώτημα
αποτιμώντας εμπειρικά την καταλληλότητα της χρήσης αντικειμενοστρεφών μετρικών για τη
δημιουργία μοντέλων πρόβλεψης σφαλμάτων. Με τη βοήθεια του εργαλείου ckjm
υπολογίστηκαν δεκαεπτά αντικειμενοστρεφείς μετρικές σε επίπεδο κλάσης για τον πηγαίο
κώδικα του λογισμικού ανοικτού κώδικα jEdit. Στη συνέχεια έγινε αντιστοίχιση των σφαλμάτων
του με τις κλάσεις του πηγαίου κώδικα που χρειάστηκαν διόρθωση. Τα παραπάνω δεδομένα
αποτέλεσαν την είσοδο σε μοντέλα πρόβλεψης σφαλμάτων που κατασκευάστηκαν με τη χρήση
τόσο παραδοσιακών στατιστικών τεχνικών στο R (γραμμική και λογιστική παλινδρόμηση), όσο
και των νεότερων αλλά πολλά υποσχόμενων τεχνικών μηχανικής μάθησης στο WEKA (δέντρο
απόφασης και τεχνητό νευρωνικό δίκτυο). Η αποτίμηση κάθε μοντέλου έγινε με χρήση της
διασταυρωμένης επικύρωσης σε 10 μέρη και περιλάμβανε μεταξύ άλλων την αναλογία σωστών
θετικών προβλέψεων, την ακρίβεια, την ανάκληση και την περιοχή κάτω από την καμπύλη ROC.
Το μοντέλο που προέκυψε από την εφαρμογή της δυαδικής πολλαπλής λογιστικής
παλινδρόμησης με επιλογή προς τα εμπρός είχε την καλύτερη επίδοση, ενώ του τεχνητού
νευρωνικού δικτύου ακολούθησε δεύτερο με μικρή όμως διαφορά. | el_GR |
dc.format.extent | xi, 127 σ. πιν., 30 εκ. | el_GR |
dc.language | gr | el_GR |
dc.language.iso | gr | el_GR |
dc.subject | Ποιότητα λογισμικού | el_GR |
dc.subject | Τεχνολογία λογισμικού | el_GR |
dc.subject | Λογισμικά Ανοικτού Κώδικα | el_GR |
dc.subject | Software quality | el_GR |
dc.subject | Software engineering | el_GR |
dc.subject | Open Source Software | el_GR |
dc.title | Αποτίμηση της καταλληλότητας χρήσης αντικειμενοστρεφών μετρικών για τη δημιουργία μοντέλων πρόβλεψης σφαλμάτων σε λογισμικό ανοικτού κώδικα | el_GR |
dc.type | Μεταπτυχιακή Διατριβή | el_GR |
dc.description.translatedabstract | This thesis refers to the scientific field of Software Engineering and more specifically is dealing
with the profound issue of Software Quality. Open source software has become necessary in every
day life for millions of users but also for companies that keep investing resources in open source
projects. The development model for open source software has great differences compared to the
traditional development methods of commercial software, as it mainly depends on volunteers'
contribution. That's the reason we need to focus extensively on the quality of its source code, as
well as it's essential to seek methods for improving its software quality. A major factor that could
negatively affect the software quality is the presence of faults. Object oriented analysis and design
is nowadays the main method for applications' development, a method that most of the open
source projects are currently using. So an important question arises: Can faults be predicted in
object-oriented open source projects?
The main intention of this research is to examine the above matter, empirically assessing the
suitability of using object oriented metrics in order to create fault predicting models. Using the
tool ckjm, we calculated seventeen object oriented metrics on class level, for the source code of the
open source software jEdit. Afterwards, the faults were corresponded with the source code
classes that needed to be corrected. The above data constituted the input in fault prediction
models constructed by using traditional statistical techniques in R (linear and logistic regression),
and the more modern and promising machine learning algorithms in WEKA (decision tree and
artificial neural network). Each model was validated by using 10-fold cross-validation technique
and among others we calculated the true positive rate, the precision, the recall and the area under
the ROC curve (AUC). The model created by applying binary multiple logistic regression with
stepwise forward selection provided the best performance, while artificial neural network
followed second with a slight distance | el_GR |
dc.format.type | pdf | el_GR |