Νίνα Ελευθεριάδου

ISSEL
ISSELISSEL
1
Θεσσαλονίκη 2014
2
Ορισμός του Προβλήματος
Στόχος Διπλωματικής
Αλγόριθμοι Πρόβλεψης
Μετρικές Πρόβλεψης
Πειραματικά Αποτελέσματα
Συμπεράσματα
Μελλοντικές Επεκτάσεις
3
Πρόβλεψη Σφαλμάτων σε Λογισμικό Ανοιχτού Κώδικα
4
Μοντέλο ανάπτυξης λογισμικού ανοιχτού κώδικα
volunteer
volunteer
volunteer
volunteer
Project lead
Πρόβλεψη Σφαλμάτων σε Λογισμικό Ανοιχτού Κώδικα
5
Πρόβλεψη Σφαλμάτων σε Λογισμικό Ανοιχτού Κώδικα
6
Πρόβλεψη Σφαλμάτων σε Λογισμικό Ανοιχτού Κώδικα
Πρόβλεψη σφαλμάτων σε επίπεδο
κλάσεων
1. Number Of Bugs
2. Number Of Major
Bugs
3. Number Of Critical
Bugs
4. Number Of High
Priority Bugs
7
Η σύγκριση διαφορετικών
, προκειμένου να διαπιστωθεί ποια από
αυτές είναι πιο αποδοτική στην πρόβλεψη
σφαλμάτων.
Η σύγκριση διαφορετικών
, προκειμένου να διαπιστωθεί ποιος
από αυτούς είναι περισσότερο αποδοτικός όταν
εφαρμόζεται πάνω στις υπό εξέταση
αντικειμενοστρεφείς μετρικές.
Πρόβλεψη Σφαλμάτων σε Λογισμικό Ανοιχτού Κώδικα
8
Πρόβλεψη Σφαλμάτων σε Λογισμικό Ανοιχτού Κώδικα
9
Μοντελοποιεί τη σχέση ανάμεσα σε μία ανεξάρτητη μεταβλητή (μεταβλητή
πρόβλεψης) X και μία εξαρτημένη μεταβλητή (μεταβλητή στόχο) Y,
χρησιμοποιώντας μία σχέση που εκφράζει την Y ως γραμμική συνάρτηση της X.
Γραμμική Παλινδρόμηση
Απλή Γραμμική
Παλινδρόμηση
Πολλαπλή
Γραμμική
Παλινδρόμηση
Πρόβλεψη Σφαλμάτων σε Λογισμικό Ανοιχτού Κώδικα
10
Πολλαπλή
γραμμική
παλινδρόμηση
Υi= (βο+β1Χi + β2Χ2 + …+ βnΧn ) + εi
β1, β2, βn = συντελεστής παλινδρόμησης των μεταβλητών πρόβλεψης
β0= ο σταθερός όρος (δηλ. η τιμή του Υ όταν το Χ=0).
εi= το σφάλμα που αντιστοιχεί στη διαφορά ανάμεσα στην τιμή που προβλέπει η
ευθεία γραμμή για το στιγμιότυπο i και την πραγματική τιμή που έχει το
συγκεκριμένο στιγμιότυπο.
Πρόβλεψη Σφαλμάτων σε Λογισμικό Ανοιχτού Κώδικα
11
Προβλέπει την πιθανότητα εμφάνισης ενός γεγονότος με την τοποθέτηση των
δεδομένων σε μια συνάρτηση logit (λογιστική λειτουργία). Πρόκειται για μία
δημοφιλή μέθοδο ταξινόμησης, της οποίας η συνάρτηση πρόβλεψης αποτελείται
από ένα μετασχηματισμένο γραμμικό συνδυασμό μεταβλητών.
Λογιστική Παλινδρόμηση
)110(
1
1
)( iXbb
e
YP 


)...22110(
1
1
)( inXnbXbXbb
e
YP 


Είναι της μορφής , γνωστή ως
σιγμοειδή συνάρτηση. Απώτερος σκοπός είναι
να χαρτογραφηθεί κάθε πραγματικός αριθμός
που χρησιμοποιείται ως είσοδος στην
πρόβλεψη μας, η οποία θα κυμαίνεται από 0
έως 1.
Πρόβλεψη Σφαλμάτων σε Λογισμικό Ανοιχτού Κώδικα
12
Η πιο διαδεδομένη βιβλιογραφικά έκφραση της λογιστικής παλινδρόμησης είναι
ln(odds) = a+ b1x1 + b2 x2 +………+ bk xk
Οι συντελεστές των ανεξάρτητων μεταβλητών στην εξίσωση παλινδρόμησης
εκτιμώνται με βάση τη . Στην ουσία
προσδιορίζεται η επίδραση της εκάστοτε ανεξάρτητης μεταβλητής στη
διαμόρφωση των τιμών της εξαρτημένης μεταβλητής.
Το δεξί μέρος της εξίσωσης
δημιουργείται από ένα γραμμικό
συνδυασμό των ανεξάρτητων
μεταβλητών που συμμετέχουν στο
μοντέλο παλινδρόμησης.
Το αριστερό μέρος περιέχει τις τιμές της
εξαρτημένης μεταβλητής, με τη μορφή του
λογαρίθμου των odds, δηλαδή του λογαρίθμου
της σχέσης odds = Prob/(1-Prob). To odds
εναλλακτικά ονομάζεται logit και ο όρος Prob
εκφράζει την πιθανότητα του συμβάντος του
γεγονότος.
Πρόβλεψη Σφαλμάτων σε Λογισμικό Ανοιχτού Κώδικα
13
 Αναπαριστούν μια
 Κάθε πιθανό “σημείο απόφασης”
ή κατάσταση
 Κάθε πιθανή επιλογή που μπορεί να γίνει σε ένα σημείο
απόφασης
 Θεωρούνται , το οποίο
χρησιμοποιείται για να ταξινομήσει κλάσεις (classes) με
την που
προκύπτουν από τα χαρακτηριστικά (attributes) της
τάξης.
Πρόβλεψη Σφαλμάτων σε Λογισμικό Ανοιχτού Κώδικα
14
Εκμεταλλεύεται την που παρουσιάζουν
διάφοροι αλγόριθμοι μάθησης.
Βασίζεται στη
από έναν αλγόριθμο μάθησης. Με τον
τρόπο αυτό ο ν-οστός ταξινομητής λαμβάνει υπόψη
την επίδοση των προηγούμενων ν-1 ταξινομητών για
καθένα στιγμιότυπο, επικεντρώνοντας έτσι την
προσπάθειά του στη σωστή πρόβλεψη των δειγμάτων
για τα οποία οι προηγούμενοι απέτυχαν περισσότερο.
Πρόβλεψη Σφαλμάτων σε Λογισμικό Ανοιχτού Κώδικα
15
Data set 1 Data set 2 Data set T
Learner1 Learner2 LearnerT
… ...
… ...
… ...
Πρόβλεψη Σφαλμάτων σε Λογισμικό Ανοιχτού Κώδικα
16
Τα σφάλματα προκαλούνται από
αλλαγές.
Πολύπλοκα κομμάτια κώδικα είναι
πιο δύσκολο να τροποποιηθούν, ως
εκ τούτου είναι περισσότερο
επιρρεπή σε λάθη.
Προηγούμενες ατέλειες του κώδικα
μπορούν να προβλέψουν
μελλοντικές ατέλειες.
Πρόβλεψη Σφαλμάτων σε Λογισμικό Ανοιχτού Κώδικα
Μετρική Επεξήγηση
NR Αριθμός αναθεωρήσεων.
NREF Δείχνει πόσες φορές έχει αλλάξει
ένα αρχείο, με σκοπό τη βελτίωση
της εσωτερικής δομής του, χωρίς να
αλλάξει η εξωτερική συμπεριφορά
του.
NFIX Δείχνει πόσες φορές ένα αρχείο
συμπεριλήφθηκε σε κάποια
επιδιόρθωση σφάλματος.
NAUTH Αριθμός συγγραφέων που έλεγξαν
το αρχείο.
LINES Γραμμές που προστέθηκαν και
διεγράφησαν (άθροισμα, μέγιστο,
μέσος όρος).
CHURN Codechurn (άθροισμα, μέγιστο και
μέσος όρος).
CHGSET Αλλαγή μεγέθους συνόλου (μέγιστο
και μέσος όρος).
AGE Ηλικία και σταθμισμένη ηλικία.
Τύπος μετρικών Μετρική Επεξήγηση
CK WMC Σταθμισμένη μέθοδος
μέτρησης.
CK DIT Βάθος δένδρου
κληρονομικότητας.
CK RFC Απόκριση για κλάση.
CK NOC Αριθμός παιδιών.
CK CBO Σύζευξη μεταξύ αντικειμένων.
CK LCOM Έλλειψη συνοχής στις
μεθόδους.
Τύπος μετρικών Μετρική Επεξήγηση
OO FanIn Αριθμός κλάσεων, που κάνουν
αναφορά στην κλάση.
OO FanOut Αριθμός κλάσεων στις οποίες
αναφέρεται η κλάση.
OO NOA Αριθμός γνωρισμάτων.
OO NOPA Αριθμός δημόσιων
γνωρισμάτων.
OO NOPRA Αριθμός ιδιωτικών
γνωρισμάτων.
OO NOAI Αριθμός γνωρισμάτων που
κληρονομούνται.
OO LOC Αριθμός γραμμών κώδικα.
OO NOM Αριθμός μεθόδων.
OO NOPM Αριθμός δημόσιων μεθόδων.
OO NOPRM Αριθμός ιδιωτικών μεθόδων.
OO NOMI Αριθμός μεθόδων που
κληρονομούνται.
Μετρική Επεξήγηση
Number Of Bugs Συνολικός αριθμός σφαλμάτων.
Number Of Non Trivial Bugs: Σφάλματα τα οποία επηρεάζουν τη
λειτουργικότητα του συστήματος.
Number Of Major Bugs: Σφάλματα τα οποία οδηγούν σε κατάρρευση
του συστήματος.
Number Of Critical Bugs : Σφάλματα τα οποία οδηγούν σε αποτυχία του
συστήματος.
Number Of High Priority Bugs: Σφάλματα τα οποία έχουν κριθεί υψηλής
προτεραιότητας.
17
Πολύπλοκες αλλαγές είναι πολύ πιο
πιθανόν να εισάγουν λάθη σε σχέση
με τις πιο απλές. Όσο πιο διάσπαρτες
είναι οι αλλαγές, τόσο μεγαλύτερη
είναι η τιμή που λαμβάνει η
πολυπλοκότητα.
Η χρήση μετρικών source code (σε
αντιπαράθεση με τις κλασικές CK
τεχνικές) δίνει μια καλύτερη
προσέγγιση του entropy of changes
από ότι η απλή τεχνική entropy of
changes.
Η χρήση μετρικών source code (σε
αντιπαράθεση με τις κλασικές CK
τεχνικές) δίνει μια καλύτερη
προσέγγιση του code churn από ότι η
απλή τεχνική code churn.
Πρόβλεψη Σφαλμάτων σε Λογισμικό Ανοιχτού Κώδικα
Μετρική Επεξήγηση
CvsEntropy Εντροπία συστήματος
CvsWEntropy Σταθμισμένη εκδοχή εντροπίας
CvsLinEntropy Γραμμική εκδοχή εντροπίας
CvsLogEntropy Λογαριθμική εκδοχή εντροπίας
CvsExpEntropy Εκθετική εκδοχή εντροπίας
18
Προ-επεξεργασία
 Επιλογή συνόλου δεδομένων
 Λάβαμε υπόψη προς εξέταση.
 Για κάθε κλάση υπολογίστηκαν οι προαναφερθέντες μετρικές :
 Change metrics: 15
 Previous defects: 5
 Source code metrics: 17
 Entropy of changes: 5
 Churn of source code metrics: 17
 Entropy of source code metrics: 17
Χρήση βιβλιοθήκης
Χωρισμός συνόλου δεδομένων σε .
 Εφαρμογή μεθόδου στο σύνολο
δεδομένων.
Χωρισμός κλάσεων πηγαίου κώδικα σε δύο ομάδες:
 Η ομάδα περιέχει κλάσεις με .
 Η ομάδα περιέχει κλάσεις που .
Πρόβλεψη Σφαλμάτων σε Λογισμικό Ανοιχτού Κώδικα
19
Μετρικές ποιότητας
Από το συνολικό αριθμό των κλάσεων που
δεν περιέχουν σφάλματα, δίνει το ποσοστό
αυτών που έχουν ταξινομηθεί σωστά ως
defect free.
Από το συνολικό αριθμό των κλάσεων που
περιέχουν σφάλματα, δίνει το ποσοστό
αυτών και έχουν ταξινομηθεί σωστά ως
defect prone.
Από το συνολικό αριθμό των κλάσεων που
προβλέφθηκαν ως defect prone, δίνει το
ποσοστό αυτών που πράγματι περιείχαν
σφάλματα.
Πρόβλεψη Σφαλμάτων σε Λογισμικό Ανοιχτού Κώδικα
20
Μετρικές ποιότητας
Δίνει το ποσοστό των ορθά ταξινομημένων
κλάσεων (true positives, true negatives).
Συνεχές γράφημα που ορίζουν τα σημεία (FP,
TP) Όσο μεγαλύτερη κυρτότητα εμφανίζει η
Roc καμπύλη προς την άνω αριστερή γωνία
(οπτική εκτίμηση), και επομένως όσο
μεγαλύτερο είναι το εμβαδόν που ορίζεται
κάτω από αυτή (ποσοτική εκτίμηση), τόσο
μεγαλύτερη θα είναι και η διακριτική
ικανότητα που θα παρουσιάζει.
Πρόβλεψη Σφαλμάτων σε Λογισμικό Ανοιχτού Κώδικα
21
Πρόβλεψη Σφαλμάτων σε Λογισμικό Ανοιχτού Κώδικα
22
Πρόβλεψη Σφαλμάτων σε Λογισμικό Ανοιχτού Κώδικα
23
Πρόβλεψη Σφαλμάτων σε Λογισμικό Ανοιχτού Κώδικα
24
Πρόβλεψη Σφαλμάτων σε Λογισμικό Ανοιχτού Κώδικα
25
Πρόβλεψη Σφαλμάτων σε Λογισμικό Ανοιχτού Κώδικα
26
Πρόβλεψη Σφαλμάτων σε Λογισμικό Ανοιχτού Κώδικα
27
Πρόβλεψη Σφαλμάτων σε Λογισμικό Ανοιχτού Κώδικα
28
Εισάγαμε ένα σημείο αναφοράς, το οποίο μας
επέτρεψε την επίτευξη κοινής σύγκρισης
μετρικών και αλγορίθμων πρόβλεψης. Τα
αποτελέσματα που προέκυψαν έδωσαν ποσοστά
επιτυχούς πρόβλεψης πάνω από 80%.
Entropy of Source Code Metrics και Lin-
Churn Metrics: 81%-83%
Log-Entropy Metrics και Weighted-Churn
Metrics : 81%-84%.
H απόδοση του αλγορίθμου Ενίσχυσης
υπερτερεί έναντι των υπόλοιπων υπό
εξέταση αλγορίθμων.
Log-Churn Metrics: 78% - 79%  84%.
Source Code Metrics: 78%  83%.
Πρόβλεψη Σφαλμάτων σε Λογισμικό Ανοιχτού Κώδικα
29
, πάνω στα οποία θα εφαρμοστούν οι
προσεγγίσεις που έχουν προταθεί στην παρούσα
διπλωματική εργασία, για την πρόβλεψη μελλοντικών
σφαλμάτων.
σε συστήματα
λογισμικού, οι οποίες θα διαμορφωθούν με βάση τις
πηγές δεδομένων που αυτές χρησιμοποιούν και τα
συστήματα στα οποία αυτές επικυρώνονται.
, οι οποίοι
θα ανταποκρίνονται στα ιδιαίτερα χαρακτηριστικά των
υπό μελέτη δεδομένων.
Πρόβλεψη Σφαλμάτων σε Λογισμικό Ανοιχτού Κώδικα
30
Πρόβλεψη Σφαλμάτων σε Λογισμικό Ανοιχτού Κώδικα
1 of 30

More Related Content

Similar to Νίνα Ελευθεριάδου(20)

More from ISSEL(20)

Recently uploaded(20)

amea.pptxamea.pptx
amea.pptx
ssuserf0f53a15 views
Αιολική ΓηΑιολική Γη
Αιολική Γη
Dimitra Mylonaki18 views
ΔΙΑΖΩΜΑ-Γ2.pptxΔΙΑΖΩΜΑ-Γ2.pptx
ΔΙΑΖΩΜΑ-Γ2.pptx
Krokus kokkus42 views
KEΦΑΛΑΙΟ 38KEΦΑΛΑΙΟ 38
KEΦΑΛΑΙΟ 38
ssuser43d27b16 views
Έγκυρη ενημέρωσηΈγκυρη ενημέρωση
Έγκυρη ενημέρωση
ssuser43d27b14 views
τεχ22 23.pptxτεχ22 23.pptx
τεχ22 23.pptx
Ilias Pappas13 views
ΕΓΓΟΝΟΠΟΥΛΟΣ.ΕΓΓΟΝΟΠΟΥΛΟΣ.
ΕΓΓΟΝΟΠΟΥΛΟΣ.
ssuser43d27b16 views
ΠΕΡΙΒΑΛΛΟΝΠΕΡΙΒΑΛΛΟΝ
ΠΕΡΙΒΑΛΛΟΝ
ssuser43d27b38 views
Η ΑσπρούδαΗ Ασπρούδα
Η Ασπρούδα
Dimitra Mylonaki9 views
ATT00004.pdfATT00004.pdf
ATT00004.pdf
2dimkoryd10 views
ΔΙΑΖΩΜΑ - Γ1.pptxΔΙΑΖΩΜΑ - Γ1.pptx
ΔΙΑΖΩΜΑ - Γ1.pptx
Krokus kokkus45 views
17  Νοέμβρη17  Νοέμβρη
17 Νοέμβρη
Εργαστήριο Πληροφορικής45 views

Νίνα Ελευθεριάδου

  • 2. 2
  • 3. Ορισμός του Προβλήματος Στόχος Διπλωματικής Αλγόριθμοι Πρόβλεψης Μετρικές Πρόβλεψης Πειραματικά Αποτελέσματα Συμπεράσματα Μελλοντικές Επεκτάσεις 3 Πρόβλεψη Σφαλμάτων σε Λογισμικό Ανοιχτού Κώδικα
  • 4. 4 Μοντέλο ανάπτυξης λογισμικού ανοιχτού κώδικα volunteer volunteer volunteer volunteer Project lead Πρόβλεψη Σφαλμάτων σε Λογισμικό Ανοιχτού Κώδικα
  • 5. 5 Πρόβλεψη Σφαλμάτων σε Λογισμικό Ανοιχτού Κώδικα
  • 6. 6 Πρόβλεψη Σφαλμάτων σε Λογισμικό Ανοιχτού Κώδικα Πρόβλεψη σφαλμάτων σε επίπεδο κλάσεων 1. Number Of Bugs 2. Number Of Major Bugs 3. Number Of Critical Bugs 4. Number Of High Priority Bugs
  • 7. 7 Η σύγκριση διαφορετικών , προκειμένου να διαπιστωθεί ποια από αυτές είναι πιο αποδοτική στην πρόβλεψη σφαλμάτων. Η σύγκριση διαφορετικών , προκειμένου να διαπιστωθεί ποιος από αυτούς είναι περισσότερο αποδοτικός όταν εφαρμόζεται πάνω στις υπό εξέταση αντικειμενοστρεφείς μετρικές. Πρόβλεψη Σφαλμάτων σε Λογισμικό Ανοιχτού Κώδικα
  • 8. 8 Πρόβλεψη Σφαλμάτων σε Λογισμικό Ανοιχτού Κώδικα
  • 9. 9 Μοντελοποιεί τη σχέση ανάμεσα σε μία ανεξάρτητη μεταβλητή (μεταβλητή πρόβλεψης) X και μία εξαρτημένη μεταβλητή (μεταβλητή στόχο) Y, χρησιμοποιώντας μία σχέση που εκφράζει την Y ως γραμμική συνάρτηση της X. Γραμμική Παλινδρόμηση Απλή Γραμμική Παλινδρόμηση Πολλαπλή Γραμμική Παλινδρόμηση Πρόβλεψη Σφαλμάτων σε Λογισμικό Ανοιχτού Κώδικα
  • 10. 10 Πολλαπλή γραμμική παλινδρόμηση Υi= (βο+β1Χi + β2Χ2 + …+ βnΧn ) + εi β1, β2, βn = συντελεστής παλινδρόμησης των μεταβλητών πρόβλεψης β0= ο σταθερός όρος (δηλ. η τιμή του Υ όταν το Χ=0). εi= το σφάλμα που αντιστοιχεί στη διαφορά ανάμεσα στην τιμή που προβλέπει η ευθεία γραμμή για το στιγμιότυπο i και την πραγματική τιμή που έχει το συγκεκριμένο στιγμιότυπο. Πρόβλεψη Σφαλμάτων σε Λογισμικό Ανοιχτού Κώδικα
  • 11. 11 Προβλέπει την πιθανότητα εμφάνισης ενός γεγονότος με την τοποθέτηση των δεδομένων σε μια συνάρτηση logit (λογιστική λειτουργία). Πρόκειται για μία δημοφιλή μέθοδο ταξινόμησης, της οποίας η συνάρτηση πρόβλεψης αποτελείται από ένα μετασχηματισμένο γραμμικό συνδυασμό μεταβλητών. Λογιστική Παλινδρόμηση )110( 1 1 )( iXbb e YP    )...22110( 1 1 )( inXnbXbXbb e YP    Είναι της μορφής , γνωστή ως σιγμοειδή συνάρτηση. Απώτερος σκοπός είναι να χαρτογραφηθεί κάθε πραγματικός αριθμός που χρησιμοποιείται ως είσοδος στην πρόβλεψη μας, η οποία θα κυμαίνεται από 0 έως 1. Πρόβλεψη Σφαλμάτων σε Λογισμικό Ανοιχτού Κώδικα
  • 12. 12 Η πιο διαδεδομένη βιβλιογραφικά έκφραση της λογιστικής παλινδρόμησης είναι ln(odds) = a+ b1x1 + b2 x2 +………+ bk xk Οι συντελεστές των ανεξάρτητων μεταβλητών στην εξίσωση παλινδρόμησης εκτιμώνται με βάση τη . Στην ουσία προσδιορίζεται η επίδραση της εκάστοτε ανεξάρτητης μεταβλητής στη διαμόρφωση των τιμών της εξαρτημένης μεταβλητής. Το δεξί μέρος της εξίσωσης δημιουργείται από ένα γραμμικό συνδυασμό των ανεξάρτητων μεταβλητών που συμμετέχουν στο μοντέλο παλινδρόμησης. Το αριστερό μέρος περιέχει τις τιμές της εξαρτημένης μεταβλητής, με τη μορφή του λογαρίθμου των odds, δηλαδή του λογαρίθμου της σχέσης odds = Prob/(1-Prob). To odds εναλλακτικά ονομάζεται logit και ο όρος Prob εκφράζει την πιθανότητα του συμβάντος του γεγονότος. Πρόβλεψη Σφαλμάτων σε Λογισμικό Ανοιχτού Κώδικα
  • 13. 13  Αναπαριστούν μια  Κάθε πιθανό “σημείο απόφασης” ή κατάσταση  Κάθε πιθανή επιλογή που μπορεί να γίνει σε ένα σημείο απόφασης  Θεωρούνται , το οποίο χρησιμοποιείται για να ταξινομήσει κλάσεις (classes) με την που προκύπτουν από τα χαρακτηριστικά (attributes) της τάξης. Πρόβλεψη Σφαλμάτων σε Λογισμικό Ανοιχτού Κώδικα
  • 14. 14 Εκμεταλλεύεται την που παρουσιάζουν διάφοροι αλγόριθμοι μάθησης. Βασίζεται στη από έναν αλγόριθμο μάθησης. Με τον τρόπο αυτό ο ν-οστός ταξινομητής λαμβάνει υπόψη την επίδοση των προηγούμενων ν-1 ταξινομητών για καθένα στιγμιότυπο, επικεντρώνοντας έτσι την προσπάθειά του στη σωστή πρόβλεψη των δειγμάτων για τα οποία οι προηγούμενοι απέτυχαν περισσότερο. Πρόβλεψη Σφαλμάτων σε Λογισμικό Ανοιχτού Κώδικα
  • 15. 15 Data set 1 Data set 2 Data set T Learner1 Learner2 LearnerT … ... … ... … ... Πρόβλεψη Σφαλμάτων σε Λογισμικό Ανοιχτού Κώδικα
  • 16. 16 Τα σφάλματα προκαλούνται από αλλαγές. Πολύπλοκα κομμάτια κώδικα είναι πιο δύσκολο να τροποποιηθούν, ως εκ τούτου είναι περισσότερο επιρρεπή σε λάθη. Προηγούμενες ατέλειες του κώδικα μπορούν να προβλέψουν μελλοντικές ατέλειες. Πρόβλεψη Σφαλμάτων σε Λογισμικό Ανοιχτού Κώδικα Μετρική Επεξήγηση NR Αριθμός αναθεωρήσεων. NREF Δείχνει πόσες φορές έχει αλλάξει ένα αρχείο, με σκοπό τη βελτίωση της εσωτερικής δομής του, χωρίς να αλλάξει η εξωτερική συμπεριφορά του. NFIX Δείχνει πόσες φορές ένα αρχείο συμπεριλήφθηκε σε κάποια επιδιόρθωση σφάλματος. NAUTH Αριθμός συγγραφέων που έλεγξαν το αρχείο. LINES Γραμμές που προστέθηκαν και διεγράφησαν (άθροισμα, μέγιστο, μέσος όρος). CHURN Codechurn (άθροισμα, μέγιστο και μέσος όρος). CHGSET Αλλαγή μεγέθους συνόλου (μέγιστο και μέσος όρος). AGE Ηλικία και σταθμισμένη ηλικία. Τύπος μετρικών Μετρική Επεξήγηση CK WMC Σταθμισμένη μέθοδος μέτρησης. CK DIT Βάθος δένδρου κληρονομικότητας. CK RFC Απόκριση για κλάση. CK NOC Αριθμός παιδιών. CK CBO Σύζευξη μεταξύ αντικειμένων. CK LCOM Έλλειψη συνοχής στις μεθόδους. Τύπος μετρικών Μετρική Επεξήγηση OO FanIn Αριθμός κλάσεων, που κάνουν αναφορά στην κλάση. OO FanOut Αριθμός κλάσεων στις οποίες αναφέρεται η κλάση. OO NOA Αριθμός γνωρισμάτων. OO NOPA Αριθμός δημόσιων γνωρισμάτων. OO NOPRA Αριθμός ιδιωτικών γνωρισμάτων. OO NOAI Αριθμός γνωρισμάτων που κληρονομούνται. OO LOC Αριθμός γραμμών κώδικα. OO NOM Αριθμός μεθόδων. OO NOPM Αριθμός δημόσιων μεθόδων. OO NOPRM Αριθμός ιδιωτικών μεθόδων. OO NOMI Αριθμός μεθόδων που κληρονομούνται. Μετρική Επεξήγηση Number Of Bugs Συνολικός αριθμός σφαλμάτων. Number Of Non Trivial Bugs: Σφάλματα τα οποία επηρεάζουν τη λειτουργικότητα του συστήματος. Number Of Major Bugs: Σφάλματα τα οποία οδηγούν σε κατάρρευση του συστήματος. Number Of Critical Bugs : Σφάλματα τα οποία οδηγούν σε αποτυχία του συστήματος. Number Of High Priority Bugs: Σφάλματα τα οποία έχουν κριθεί υψηλής προτεραιότητας.
  • 17. 17 Πολύπλοκες αλλαγές είναι πολύ πιο πιθανόν να εισάγουν λάθη σε σχέση με τις πιο απλές. Όσο πιο διάσπαρτες είναι οι αλλαγές, τόσο μεγαλύτερη είναι η τιμή που λαμβάνει η πολυπλοκότητα. Η χρήση μετρικών source code (σε αντιπαράθεση με τις κλασικές CK τεχνικές) δίνει μια καλύτερη προσέγγιση του entropy of changes από ότι η απλή τεχνική entropy of changes. Η χρήση μετρικών source code (σε αντιπαράθεση με τις κλασικές CK τεχνικές) δίνει μια καλύτερη προσέγγιση του code churn από ότι η απλή τεχνική code churn. Πρόβλεψη Σφαλμάτων σε Λογισμικό Ανοιχτού Κώδικα Μετρική Επεξήγηση CvsEntropy Εντροπία συστήματος CvsWEntropy Σταθμισμένη εκδοχή εντροπίας CvsLinEntropy Γραμμική εκδοχή εντροπίας CvsLogEntropy Λογαριθμική εκδοχή εντροπίας CvsExpEntropy Εκθετική εκδοχή εντροπίας
  • 18. 18 Προ-επεξεργασία  Επιλογή συνόλου δεδομένων  Λάβαμε υπόψη προς εξέταση.  Για κάθε κλάση υπολογίστηκαν οι προαναφερθέντες μετρικές :  Change metrics: 15  Previous defects: 5  Source code metrics: 17  Entropy of changes: 5  Churn of source code metrics: 17  Entropy of source code metrics: 17 Χρήση βιβλιοθήκης Χωρισμός συνόλου δεδομένων σε .  Εφαρμογή μεθόδου στο σύνολο δεδομένων. Χωρισμός κλάσεων πηγαίου κώδικα σε δύο ομάδες:  Η ομάδα περιέχει κλάσεις με .  Η ομάδα περιέχει κλάσεις που . Πρόβλεψη Σφαλμάτων σε Λογισμικό Ανοιχτού Κώδικα
  • 19. 19 Μετρικές ποιότητας Από το συνολικό αριθμό των κλάσεων που δεν περιέχουν σφάλματα, δίνει το ποσοστό αυτών που έχουν ταξινομηθεί σωστά ως defect free. Από το συνολικό αριθμό των κλάσεων που περιέχουν σφάλματα, δίνει το ποσοστό αυτών και έχουν ταξινομηθεί σωστά ως defect prone. Από το συνολικό αριθμό των κλάσεων που προβλέφθηκαν ως defect prone, δίνει το ποσοστό αυτών που πράγματι περιείχαν σφάλματα. Πρόβλεψη Σφαλμάτων σε Λογισμικό Ανοιχτού Κώδικα
  • 20. 20 Μετρικές ποιότητας Δίνει το ποσοστό των ορθά ταξινομημένων κλάσεων (true positives, true negatives). Συνεχές γράφημα που ορίζουν τα σημεία (FP, TP) Όσο μεγαλύτερη κυρτότητα εμφανίζει η Roc καμπύλη προς την άνω αριστερή γωνία (οπτική εκτίμηση), και επομένως όσο μεγαλύτερο είναι το εμβαδόν που ορίζεται κάτω από αυτή (ποσοτική εκτίμηση), τόσο μεγαλύτερη θα είναι και η διακριτική ικανότητα που θα παρουσιάζει. Πρόβλεψη Σφαλμάτων σε Λογισμικό Ανοιχτού Κώδικα
  • 21. 21 Πρόβλεψη Σφαλμάτων σε Λογισμικό Ανοιχτού Κώδικα
  • 22. 22 Πρόβλεψη Σφαλμάτων σε Λογισμικό Ανοιχτού Κώδικα
  • 23. 23 Πρόβλεψη Σφαλμάτων σε Λογισμικό Ανοιχτού Κώδικα
  • 24. 24 Πρόβλεψη Σφαλμάτων σε Λογισμικό Ανοιχτού Κώδικα
  • 25. 25 Πρόβλεψη Σφαλμάτων σε Λογισμικό Ανοιχτού Κώδικα
  • 26. 26 Πρόβλεψη Σφαλμάτων σε Λογισμικό Ανοιχτού Κώδικα
  • 27. 27 Πρόβλεψη Σφαλμάτων σε Λογισμικό Ανοιχτού Κώδικα
  • 28. 28 Εισάγαμε ένα σημείο αναφοράς, το οποίο μας επέτρεψε την επίτευξη κοινής σύγκρισης μετρικών και αλγορίθμων πρόβλεψης. Τα αποτελέσματα που προέκυψαν έδωσαν ποσοστά επιτυχούς πρόβλεψης πάνω από 80%. Entropy of Source Code Metrics και Lin- Churn Metrics: 81%-83% Log-Entropy Metrics και Weighted-Churn Metrics : 81%-84%. H απόδοση του αλγορίθμου Ενίσχυσης υπερτερεί έναντι των υπόλοιπων υπό εξέταση αλγορίθμων. Log-Churn Metrics: 78% - 79%  84%. Source Code Metrics: 78%  83%. Πρόβλεψη Σφαλμάτων σε Λογισμικό Ανοιχτού Κώδικα
  • 29. 29 , πάνω στα οποία θα εφαρμοστούν οι προσεγγίσεις που έχουν προταθεί στην παρούσα διπλωματική εργασία, για την πρόβλεψη μελλοντικών σφαλμάτων. σε συστήματα λογισμικού, οι οποίες θα διαμορφωθούν με βάση τις πηγές δεδομένων που αυτές χρησιμοποιούν και τα συστήματα στα οποία αυτές επικυρώνονται. , οι οποίοι θα ανταποκρίνονται στα ιδιαίτερα χαρακτηριστικά των υπό μελέτη δεδομένων. Πρόβλεψη Σφαλμάτων σε Λογισμικό Ανοιχτού Κώδικα
  • 30. 30 Πρόβλεψη Σφαλμάτων σε Λογισμικό Ανοιχτού Κώδικα