Συσχέτιση Χαρακτηριστικών Ποιότητας Λογισμικού με Αναφορές Σφαλμάτων Μέσα από τη Χρήση Τεχνικών Επεξεργασίας της Φυσικής Γλώσσας και Εξόρυξης Δεδομένων
1. Συσχέτιση χαρακτηριστικών ποιότητας
λογισμικού με αναφορές σφαλμάτων μέσα
από τη χρήση τεχνικών επεξεργασίας της
Φυσικής Γλώσσας και Εξόρυξης Δεδομένων
ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ
Μποϊδίδου Χριστίνα
Επιβλέπων καθηγητής: Ανδρέας Συμεωνίδης
Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης
Πολυτεχνική Σχολή
Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Η/Υ
Τομέας Ηλεκτρονικής και Υπολογιστών
3. Αντικείμενο και στόχοι εργασίας
4/1/2017 3
Αντικείμενο
Στόχοι
• Εξόρυξη δεδομένων σε
αναφορές σφαλμάτων
• Εξαγωγή πληροφορίας από
κείμενα αναφορών
σφαλμάτων
• Μελέτη του τρόπου
περιγραφής προβλημάτων
λογισμικού από χρήστες
• Εξαγωγή συχνών ομάδων
λέξεων
• Αντιστοίχιση των ομάδων
λέξεων με χαρακτηριστικά
ποιότητας λογισμικού
• Συμπεράσματα για το
περιεχόμενο των
αναφορών σφαλμάτων
4. Εφαρμογή
Ruby on Rails
Προϊόν λογισμικού
ανοιχτού κώδικα
Πλατφόρμα
ανάπτυξης
προγραμμάτων
διαδικτύου
Βασισμένο στη
γλώσσα
προγραμματισμού
Ruby
4/1/2017 4
Αριθμός αναφορών (tickets) : 4.598
5. Στάδια της μεθοδολογίας
4/1/2017 5
• Εξαγωγή των δεδομένων
• Προεπεξεργασία των δεδομένων
• Επεξεργασία Φυσικής Γλώσσας
• Σημασιολογική ανάλυση
• Εξαγωγή και επεξεργασία των κανόνων
• Σημασιολογική Συσχέτιση
6. Εξαγωγή των δεδομένων
4/1/2017 6
Πρότυπο json : ανοιχτό πρότυπο
απεικόνισης για ανταλλαγή
πληροφοριών
ticket μορφή json
συλλογή αντικειμένων μορφής
{name : value}
Ανάπτυξη κλάσης Ticket
Κάθε αρχείο json αντιστοιχίζεται
σε ένα αντικείμενο Java
τύπου Ticket
Ticket
Origina
l_body
_html
Title
Creator
_name
Project
_id
Update
d_at
Closed
User_i
d
7. Προεπεξεργασία των δεδομένων
Απόρριψη άχρηστης πληροφορίας
html tags
ανεπιθύμητοι χαρακτήρες
4/1/2017 7
body του html
8. Επεξεργασία Φυσικής Γλώσσας
Natural Language Processing με τον συντακτικό αναλυτή
Stanford Parser
Διαδικασία
Εξαγωγή του κειμένου του ticket (original_body_html)
Επεξεργασία του κειμένου
Δημιουργία Συντακτικού Δένδρου (Parse Tree)
4/1/2017 8
Αρχεία
κειμένου
Ουσιαστικά
Διανύσματα
λέξεων
Ρήματα
Διανύσματα
λέξεων
Stanford Parser
Πακέτο
λογισμικού σε
Java
Ανάλυση φυσικής γλώσσας
Συντακτικό
δέντρο
Γραμματικές
σχέσεις
9. Σημασιολογική Ανάλυση
Προεπεξεργασία αρχείων κειμένου
Stemming (εύρεση της ρίζας των λέξεων)
Απαλοιφή λέξεων με μικρή συχνότητα εμφάνισης
Εφαρμογή στα δεδομένα
Στατιστική Αναγωγή για παραγωγή Θεμάτων (Topics) από
έγγραφα
Latent Dirichlet Allocation (LDA)
Δειγματοληψία Gibbs
4/1/2017 9
10. Σημασιολογική Ανάλυση(2)
Παράδειγμα εφαρμογής LDA
4/1/2017 10
Θέμα 1ο Θέμα 2ο Θέμα 3ο
Λέξη Πιθανότητα Λέξη Πιθανότητα Λέξη Πιθανότητα
method 0.0339 patch 0.0653 test 0.0507
class 0.0264 option 0.0268 error 0.0362
name 0.0242 code 0.0215 rb 0.0353
example 0.0239 controller 0.0211 rail 0.0308
model 0.0231 action 0.0188 gem 0.0219
Παράμετρος Τιμή Μεταβλητή
Αριθμός topics Από το χρήστη nTopics
Αριθμός λέξεων ανά topic Από το χρήστη nWords
Αρχείο - file
Αριθμός επαναλήψεων 500 iterations
Alpha 50/nTopics alpha
Beta 0.1 beta
11. Εξαγωγή και επεξεργασία κανόνων
Κατάλληλη μορφή για κάθε αρχείο κειμένου
yes αν η λέξη βρίσκεται σε κάποιο από τα topics
σύμβολο ? αν δεν υπάρχει
δεδομένα χωρισμένα με κόμμα
Εφαρμογή στα δεδομένα
Apriori αλγόριθμος - υλοποίηση WEKA
Παράμετροι
4/1/2017 11
13. Εξαγωγή και επεξεργασία κανόνων(3)
Δημιουργία ομάδων λέξεων με βάση τους κανόνες
παρατήρηση σε ποιες λέξεις οδηγούν οι κανόνες
ομαδοποίηση αυτών των λέξεων
Αποτέλεσμα
4/1/2017 13
Λέξη κλειδί Ομάδες λέξεων
rb error test rail method gem
patch error test name class problem method code option rb
test error method problem patch rb
14. Σημασιολογική Συσχέτιση
Ορισμός:Πόσο συσχετίζονται δύο έννοιες σε
σημασιολογικό επίπεδο
κατανόηση του νοήματος των ομάδων λέξεων
Συσχέτιση των ομάδων λέξεων με χαρακτηριστικά
ποιότητας λογισμικού
4/1/2017 14
performance usability
visibility compliance
compatibility accessibility
badness appearance
15. Σημασιολογική Συσχέτιση(2)
Μετρική Κανονικοποιημένη Google Απόσταση
(Normalized Google Distance)
Τύπος
Αποτέλεσμα εφαρμογής στις ομάδες λέξεων
4/1/2017 15
Ομάδες λέξεων Χαρακτηριστικά Τιμή
error test rail method gem rb
compatibility
accessibility
0.6226
0.6237
error test name class problem method code option rb patch
visibility
compatibility
0.5837
0.5848
error method problem patch rb test
accessibility
visibility
0.4854
0.5847
16. Πειράματα
Συγκεντρωτικός πίνακας πειραμάτων
4/1/2017 16
Πείραμα Μέρος του λόγου Topics Words/Topic Περιγραφή
5.1.1 Ουσιαστικά 3 5
5.1.2 Ουσιαστικά 3 5 Λέξεις με συχνότητα μεγαλύτερη του 1
5.1.3 Ουσιαστικά 3 5 Λέξεις με συχνότητα μεγαλύτερη του 3
5.1.4 Ουσιαστικά 3 5 Λέξεις με συχνότητα μεγαλύτερη του 7
5.1.5 Ουσιαστικά 3 5
Λέξεις με συχνότητα μεγαλύτερη του 3 και
μικρότερη του 600
5.1.6 Ουσιαστικά 4 5
5.1.7 Ουσιαστικά 4 5 Λέξεις με συχνότητα μεγαλύτερη του 3
5.1.8 Ουσιαστικά 4 5 Λέξεις με συχνότητα μεγαλύτερη του 7
5.1.9 Ουσιαστικά 7 5 Λέξεις με συχνότητα μεγαλύτερη του 1
5.1.10 Ουσιαστικά 7 5 Λέξεις με συχνότητα μεγαλύτερη του 3
5.2.1 Ρήματα 3 5
5.2.2 Ρήματα 3 5 Λέξεις με συχνότητα μεγαλύτερη του 1
5.2.3 Ρήματα 3 5 Λέξεις με συχνότητα μεγαλύτερη του 3
5.2.4 Ρήματα 3 5 Λέξεις με συχνότητα μεγαλύτερη του 7
5.2.5 Ρήματα 6 4
5.2.6 Ρήματα 6 4 Λέξεις με συχνότητα μεγαλύτερη του 3
5.2.7 Ρήματα 6 4 Λέξεις με συχνότητα μεγαλύτερη του 7
5.3.1 Λέξεις-κλειδιά 3 5
17. Πειράματα(2)
3 θέματα / 5 λέξεις 3 θέματα / 5 λέξεις (συχνότητα>1)
4/1/2017 17
Σύγκριση πειραμάτων για Ουσιαστικά
0
0.2
0.4
0.6
0.8
1
Ομάδα 1 Ομάδα 2 Ομάδα 3
usability
accessibility
compatibility
appearance
0
0.2
0.4
0.6
0.8
1
Ομάδα 1 Ομάδα 2 Ομάδα 3
accessibility
compatibility
visibility
Λέξη κλειδί Ομάδες λέξεων
rb error test action rail method gem patch
patch error test name class method code option rb
action controller rb
Λέξη κλειδί Ομάδες λέξεων
rb error test rail method gem
patch error test name class problem method code option rb
test error method problem patch rb
18. Πειράματα(3)
3 θέματα / 5 λέξεις (συχνότητα>3) 3 θέματα / 5 λέξεις (συχνότητα>7)
4/1/2017 18
Σύγκριση πειραμάτων για Ουσιαστικά
0
0.2
0.4
0.6
0.8
Ομάδα 1 Ομάδα 2 Ομάδα 3
accessibility
compatibility
usability
0
0.2
0.4
0.6
0.8
Ομάδα 1 Ομάδα 2 Ομάδα 3
accessibility
compatibility
visibility
Λέξη κλειδί Ομάδες λέξεων
rb test file rail method gem
patch test name class method code example option rb
method test name class code patch rb
Λέξη κλειδί Ομάδες λέξεων
rb test file rail method problem patch
patch test name class problem method example option
rb
test rail method problem patch rb
19. Πειράματα(4)
7 θέματα / 5 λέξεις (συχνότητα>1) 7 θέματα / 5 λέξεις (συχνότητα>3)
4/1/2017 19
Σύγκριση πειραμάτων για Ουσιαστικά
0
0.2
0.4
0.6
0.8
Ομάδα
1
Ομάδα
2
Ομάδα
3
Ομάδα
4
accessibility
compatibility
usability
visibility
0
0.2
0.4
0.6
0.8
Ομάδα
1
Ομάδα
2
Ομάδα
3
Ομάδα
4
accessibility
compatibility
usability
visibility
Λέξη κλειδί Ομάδες λέξεων
rb lib error test name rail action class method problem
code controller gem end
action lib controller
patch default error fix test name class method problem
code example case end option
test error name rail problem method code case patch rb
Λέξη κλειδί Ομάδες λέξεων
rb error test class problem code lib file name rail action
method controller gem patch
action lib controller
patch error fix test name class problem method code
example case rb
test error name rail problem method code case patch rb
20. Πειράματα(5)
3 θέματα / 5 λέξεις 3 θέματα / 5 λέξεις (συχνότητα>1)
4/1/2017 20
Σύγκριση πειραμάτων για Ρήματα
0
0.2
0.4
0.6
0.8
Ομάδα 1 Ομάδα 2 Ομάδα 3
compatibility
performance
appearance
0
0.2
0.4
0.6
0.8
Ομάδα 1 Ομάδα 2 Ομάδα 3 Ομάδα 4
compatibility
performanc
e
appearance
Λέξη κλειδί Ομάδες λέξεων
use call get fail set add run create make seem try find
include
create get use add try
get use add create find try
Λέξη κλειδί Ομάδες λέξεων
use call see fail set add run seem create make try find
include
create see use add
seem see use
see call use add run create make seem find try
21. Πειράματα(6)
3 θέματα / 5 λέξεις (συχνότητα>3) 3 θέματα / 5 λέξεις (συχνότητα>7)
4/1/2017 21
Σύγκριση πειραμάτων για Ρήματα
0
0.2
0.4
0.6
0.8
Ομάδα 1 Ομάδα 2
compatibility
performance
appearance
visibility
0
0.2
0.4
0.6
0.8
Ομάδα 1 Ομάδα 2
compatibility
appearance
visibility
Λέξη κλειδί Ομάδες λέξεων
use
call get fail change set add run create make try find
include
get use add create try
Λέξη κλειδί Ομάδες λέξεων
use call get fail set add run create make seem try find
include
get use add create find try
22. Πειράματα(7)
6 θέματα / 4 λέξεις 6 θέματα / 4 λέξεις (συχνότητα>3)
4/1/2017 22
Σύγκριση πειραμάτων για Ρήματα
0
0.2
0.4
0.6
0.8
Ομάδα 1 Ομάδα 2 Ομάδα 3
compatibility
performance
appearance
visibility
accessibility 0
0.2
0.4
0.6
0.8
Ομάδα 1 Ομάδα 2 Ομάδα 3
compatibility
appearance
visibility
accessibility
usability
Λέξη κλειδί Ομάδες λέξεων
use allow generate get change set create include expect
see load make try find want
see call get use run create make find try
add get use create make try find include
Λέξη κλειδί Ομάδες λέξεων
use work call generate get change set return add run
create pass include fail see fix load make try find
see work call get set use add run create make find try
work call see get use add create make find try
23. Πειράματα(8)
3 topics/5 words Ουσιαστικά
Ρήματα
4/1/2017 23
Σύγκριση πειραμάτων για Λέξεις-κλειδιά
0
0.1
0.2
0.3
0.4
0.5
Ομάδα
1
Ομάδα
2
Ομάδα
3
Ομάδα
4
compatibility
accessibility
usability
0
0.2
0.4
0.6
0.8
Ομάδα 1 Ομάδα 2 Ομάδα 3
compatibility
performance
appearance
Λέξη
κλειδί
Ομάδες λέξεων
patch error have fix test set add option
have error fix test set file code add run patch
test have fix add run patch
add have test patch
0
0.2
0.4
0.6
0.8
Ομάδα 1 Ομάδα 2 Ομάδα 3
usability
accessibility
compatibility
appearance
24. Συμπεράσματα
Ο αριθμός των topics δεν επηρεάζει σημαντικά τις
ομάδες λέξεων.
λιγότερα topics είναι υποομάδες των περισσότερων
παρόμοιες συσχετίσεις
Η αύξηση του κάτω ορίου συχνότητας προκαλεί
αλλοίωση στις συσχετίσεις
πειράματα με συχνότητα μεγαλύτερη του 1 και του 3
εξάγουν παρόμοια αποτελέσματα
πείραμα με συχνότητα μεγαλύτερη του 7 αλλοιώνει
4/1/2017 24
Ουσιαστικά
25. Συμπεράσματα(2)
Παρατηρούνται αλληλοεπικαλύψεις στις ομάδες των
ρημάτων
υποκειμενική η χρήση των ρημάτων
έκφραση πολλών διαφορετικών εννοιών
4/1/2017 25
Ρήματα
Λέξεις-κλειδιά
Εμφανίζονται λέξεις από όλα τα μέρη του λόγου
για ίδιο αριθμό topics εμφανίζονται τα αντίστοιχα
ουσιαστικά και ρήματα των μεμονωμένων πειραμάτων
γενικότερες ομάδες λέξεων
26. Συμπεράσματα(3)
Προτιμότερη η προσέγγιση των ουσιαστικών
λογικό νόημα μιας αναφοράς σφάλματος
ομάδες λέξεων ακριβείς και σαφώς διαχωρισμένες
συγκεκριμένες συσχετίσεις με χαρακτηριστικά
Χρήση ρημάτων
δεν είναι ξεκάθαρος ο σκοπός χρήσης τους
δεν εξάγεται πληροφορία για τα χαρακτηριστικά ποιότητας
4/1/2017 26
27. Μελλοντική εργασία
4/1/2017 27
• Άλλα σύνολα
δεδομένων(π.χ.
λογισμικά
κλειστού κώδικα)
Εφαρμογή
μεθοδολογίας
• Ανάπτυξη εργαλείου
αυτόματης
αναγνώρισης
χαρακτηριστικού που
ανήκει μια αναφορά
Εργαλείο
αναγνώρισης • Μελέτη συσχετίσεων
των χαρακτηριστικών
με άλλα μέρη του
λόγου (επίθετα,
επιρρήματα, κτλ.)
Περαιτέρω
μελέτη