Συσχέτιση χαρακτηριστικών ποιότητας λογισμικού με αναφορές σφαλμάτων μέσα
από τη χρήση τεχνικών επεξεργασίας της Φυσικής Γλώσσας και Εξόρυξης Δεδομένων
ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ
Μποϊδίδου ΧριστίναΕπιβλέπων καθηγητής: Ανδρέας Συμεωνίδης
Αριστοτέλειο Πανεπιστήμιο ΘεσσαλονίκηςΠολυτεχνική ΣχολήΤμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Η/ΥΤομέας Ηλεκτρονικής και Υπολογιστών
01/05/2023 2
Δομή παρουσίασης
Αντικείμενο και Στόχοι
Μεθοδολογία
Υλοποίηση
Πειράματα
Συμπεράσματα
Μελλοντική Εργασία
01/05/2023
Αντικείμενο και στόχοι εργασίας
3
Αντικείμενο
• Εξόρυξη δεδομένων σε αναφορές σφαλμάτων
• Εξαγωγή πληροφορίας από κείμενα αναφορών σφαλμάτων
• Μελέτη του τρόπου περιγραφής προβλημάτων λογισμικού από χρήστες
Στόχοι
• Εξαγωγή συχνών ομάδων λέξεων
• Αντιστοίχιση των ομάδων λέξεων με χαρακτηριστικά ποιότητας λογισμικού
• Συμπεράσματα για το περιεχόμενο των αναφορών σφαλμάτων
01/05/2023 4
Εφαρμογή
Ruby on RailsΠροϊόν λογισμικού ανοιχτού κώδικα
Πλατφόρμα ανάπτυξης προγραμμάτων
διαδικτύου
Βασισμένο στη γλώσσα προγραμματισμού Ruby
Αριθμός αναφορών (tickets) : 4.598
01/05/2023 5
Στάδια της μεθοδολογίας
•Εξαγωγή των δεδομένων
•Προεπεξεργασία των δεδομένων
•Επεξεργασία Φυσικής Γλώσσας
•Σημασιολογική ανάλυση
•Εξαγωγή και επεξεργασία των κανόνων
•Σημασιολογική Συσχέτιση
01/05/2023 6
Εξαγωγή των δεδομένων
Πρότυπο json : ανοιχτό πρότυπο απεικόνισης για ανταλλαγή πληροφοριών
ticket μορφή jsonσυλλογή αντικειμένων μορφής {name : value}
Ανάπτυξη κλάσης Ticket Κάθε αρχείο json αντιστοιχίζεται
σε ένα αντικείμενο Java τύπου Ticket
Ticket
Original_body_html
Title
Creator_name
Project_id
Updated_at
Closed
User_id
01/05/2023 7
Προεπεξεργασία των δεδομένων
Απόρριψη άχρηστης πληροφορίας html tags ανεπιθύμητοι χαρακτήρες
body του html
01/05/2023 8
Επεξεργασία Φυσικής Γλώσσας Natural Language Processing με τον συντακτικό αναλυτή
Stanford Parser Διαδικασία
Εξαγωγή του κειμένου του ticket (original_body_html) Επεξεργασία του κειμένου Δημιουργία Συντακτικού Δένδρου (Parse Tree)
Αρχεία κειμένου
Ουσιαστικά
Διανύσματα λέξεων
Ρήματα
Διανύσματα λέξεων
Stanford Parser
Πακέτο λογισμικού σε Java
Ανάλυση φυσικής γλώσσας
Συντακτικό δέντρο Γραμματικές σχέσεις
01/05/2023 9
Σημασιολογική Ανάλυση
Προεπεξεργασία αρχείων κειμένου Stemming (εύρεση της ρίζας των λέξεων) Απαλοιφή λέξεων με μικρή συχνότητα εμφάνισης
Εφαρμογή στα δεδομένα Στατιστική Αναγωγή για παραγωγή Θεμάτων (Topics) από
έγγραφα Latent Dirichlet Allocation (LDA) Δειγματοληψία Gibbs
01/05/2023 10
Σημασιολογική Ανάλυση(2)
Παράδειγμα εφαρμογής LDA
Θέμα 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 iterationsAlpha 50/nTopics alphaBeta 0.1 beta
01/05/2023 11
Εξαγωγή και επεξεργασία κανόνων
Κατάλληλη μορφή για κάθε αρχείο κειμένου yes αν η λέξη βρίσκεται σε κάποιο από τα topics σύμβολο ? αν δεν υπάρχει δεδομένα χωρισμένα με κόμμα
Εφαρμογή στα δεδομένα Apriori αλγόριθμος - υλοποίηση WEKA Παράμετροι
01/05/2023 12
Εξαγωγή και επεξεργασία κανόνων(2)
Παράδειγμα εξαγωγής κανόνωνΚανόνες Confidence Κανόνες Confidence
gem→ rb 0.6 problem→ test 0.38
test→ patch 0.6 patch→ method 0.36
option→ patch 0.53 error→ patch 0.36
rail→ rb 0.5 method→ test 0.36
method→ patch 0.49 rb→ test 0.36
patch→ test 0.49 rb→ patch 0.35
code→ patch 0.48 error→ test 0.35
class→ patch 0.46 rb→ rail 0.35
class→ method 0.46 test→ rb 0.33
problem→ patch 0.45 test→ method 0.33
name→ patch 0.44 rb→ error 0.33
error→ rb 0.4 method→ class 0.3
01/05/2023 13
Εξαγωγή και επεξεργασία κανόνων(3)
Δημιουργία ομάδων λέξεων με βάση τους κανόνες παρατήρηση σε ποιες λέξεις οδηγούν οι κανόνες ομαδοποίηση αυτών των λέξεων
ΑποτέλεσμαΛέξη κλειδί Ομάδες λέξεων
rb error test rail method gem
patch error test name class problem method code option rb
test error method problem patch rb
01/05/2023 14
Σημασιολογική Συσχέτιση
Ορισμός:Πόσο συσχετίζονται δύο έννοιες σε σημασιολογικό επίπεδο κατανόηση του νοήματος των ομάδων λέξεων
Συσχέτιση των ομάδων λέξεων με χαρακτηριστικά ποιότητας λογισμικού performance usability
visibility compliance
compatibility accessibility
badness appearance
01/05/2023 15
Σημασιολογική Συσχέτιση(2)
Μετρική Κανονικοποιημένη Google Απόσταση (Normalized Google Distance) Τύπος
Αποτέλεσμα εφαρμογής στις ομάδες λέξεωνΟμάδες λέξεων Χαρακτηριστικά Τιμή
error test rail method gem rb compatibility accessibility
0.62260.6237
error test name class problem method code option rb patch visibility compatibility
0.58370.5848
error method problem patch rb test accessibility visibility
0.48540.5847
01/05/2023 16
Πειράματα Συγκεντρωτικός πίνακας πειραμάτων
Πείραμα Μέρος του λόγου Topics Words/Topic Περιγραφή5.1.1 Ουσιαστικά 3 55.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 55.1.7 Ουσιαστικά 4 5 Λέξεις με συχνότητα μεγαλύτερη του 3
5.1.8 Ουσιαστικά 4 5 Λέξεις με συχνότητα μεγαλύτερη του 7
5.1.9 Ουσιαστικά 7 5 Λέξεις με συχνότητα μεγαλύτερη του 1
5.1.10 Ουσιαστικά 7 5 Λέξεις με συχνότητα μεγαλύτερη του 35.2.1 Ρήματα 3 55.2.2 Ρήματα 3 5 Λέξεις με συχνότητα μεγαλύτερη του 1
5.2.3 Ρήματα 3 5 Λέξεις με συχνότητα μεγαλύτερη του 3
5.2.4 Ρήματα 3 5 Λέξεις με συχνότητα μεγαλύτερη του 75.2.5 Ρήματα 6 45.2.6 Ρήματα 6 4 Λέξεις με συχνότητα μεγαλύτερη του 3
5.2.7 Ρήματα 6 4 Λέξεις με συχνότητα μεγαλύτερη του 75.3.1 Λέξεις-κλειδιά 3 5
01/05/2023 17
Πειράματα(2)
3 θέματα / 5 λέξεις 3 θέματα / 5 λέξεις (συχνότητα>1)
Σύγκριση πειραμάτων για Ουσιαστικά
Ομάδα 1 Ομάδα 2 Ομάδα 30
0.2
0.4
0.6
0.8
1usabilityaccessibilitycompatibilityappearance
Ομάδα 1 Ομάδα 2 Ομάδα 30
0.2
0.4
0.6
0.8
1
accessibilitycompatibilityvisibility
Λέξη κλειδί
Ομάδες λέξεων
rb error test action rail method gem patch
patch error test name class method code option rbaction controller rb
Λέξη κλειδί Ομάδες λέξεωνrb error test rail method gem patch error test name class problem method code option rb test error method problem patch rb
01/05/2023 18
Πειράματα(3)
3 θέματα / 5 λέξεις (συχνότητα>3) 3 θέματα / 5 λέξεις (συχνότητα>7)
Σύγκριση πειραμάτων για Ουσιαστικά
Ομάδα 1 Ομάδα 2 Ομάδα 30
0.2
0.4
0.6
0.8
accessibilitycompatibilityusability
Ομάδα 1 Ομάδα 2 Ομάδα 30
0.2
0.4
0.6
0.8
accessibilitycompatibilityvisibility
Λέξη κλειδί Ομάδες λέξεων
rb test file rail method gem
patch test name class method code example option rbmethod 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
01/05/2023 19
Πειράματα(4)
7 θέματα / 5 λέξεις (συχνότητα>1) 7 θέματα / 5 λέξεις (συχνότητα>3)
Σύγκριση πειραμάτων για Ουσιαστικά
Ομάδα 1 Ομάδα 2 Ομάδα 3 Ομάδα 40
0.10.20.30.40.50.60.7
accessibilitycompatibilityusabilityvisibility
Ομάδα 1
Ομάδα 2
Ομάδα 3
Ομάδα 4
00.10.20.30.40.50.60.7
accessibilitycompatibilityusabilityvisibility
Λέξη κλειδί Ομάδες λέξεων
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
01/05/2023 20
Πειράματα(5)
3 θέματα / 5 λέξεις 3 θέματα / 5 λέξεις (συχνότητα>1)
Σύγκριση πειραμάτων για Ρήματα
Ομάδα 1 Ομάδα 2 Ομάδα 30
0.2
0.4
0.6
0.8
compatibilityperformanceappearance
Ομάδα 1 Ομάδα 2 Ομάδα 3 Ομάδα 40
0.2
0.4
0.6
0.8
compatibilityperformanceappearancevisibilityaccessibility
Λέξη κλειδί Ομάδες λέξεων
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 addseem see use
see call use add run create make seem find try
01/05/2023 21
Πειράματα(6)
3 θέματα / 5 λέξεις (συχνότητα>3) 3 θέματα / 5 λέξεις (συχνότητα>7)
Σύγκριση πειραμάτων για Ρήματα
Ομάδα 1 Ομάδα 20
0.10.20.30.40.50.60.7
compatibilityperformanceappearancevisibility
Ομάδα 1 Ομάδα 20
0.2
0.4
0.6
0.8
compatibilityappearancevisibility
Λέξη κλειδί Ομάδες λέξεων
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
01/05/2023 22
Πειράματα(7)
6 θέματα / 4 λέξεις 6 θέματα / 4 λέξεις (συχνότητα>3)
Σύγκριση πειραμάτων για Ρήματα
Ομάδα 1 Ομάδα 2 Ομάδα 30
0.2
0.4
0.6
0.8
compatibilityperformanceappearancevisibilityaccessibility
Ομάδα 1 Ομάδα 2 Ομάδα 30
0.10.20.30.40.50.60.70.8
compatibilityappearancevisibilityaccessibilityusability
Λέξη κλειδί Ομάδες λέξεων
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
01/05/2023 23
Πειράματα(8)
3 topics/5 words Ουσιαστικά
Ρήματα
Σύγκριση πειραμάτων για Λέξεις-κλειδιά
Ομάδα 1
Ομάδα 2
Ομάδα 3
Ομάδα 4
00.10.20.30.40.5
compatibilityaccessibilityusability
Ομάδα 1 Ομάδα 2 Ομάδα 30
0.20.40.60.8
compatibilityperformanceappearance
Λέξη κλειδί
Ομάδες λέξεων
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
Ομάδα 1 Ομάδα 2 Ομάδα 30
0.2
0.4
0.6
0.8usabilityaccessibilitycompatibilityappearance
01/05/2023 24
Συμπεράσματα
Ο αριθμός των topics δεν επηρεάζει σημαντικά τις ομάδες λέξεων. λιγότερα topics είναι υποομάδες των περισσότερων παρόμοιες συσχετίσεις
Η αύξηση του κάτω ορίου συχνότητας προκαλεί αλλοίωση στις συσχετίσεις πειράματα με συχνότητα μεγαλύτερη του 1 και του 3
εξάγουν παρόμοια αποτελέσματα πείραμα με συχνότητα μεγαλύτερη του 7 αλλοιώνει
Ουσιαστικά
01/05/2023 25
Συμπεράσματα(2)
Παρατηρούνται αλληλοεπικαλύψεις στις ομάδες των ρημάτων υποκειμενική η χρήση των ρημάτων έκφραση πολλών διαφορετικών εννοιών
Ρήματα
Λέξεις-κλειδιά Εμφανίζονται λέξεις από όλα τα μέρη του λόγου
για ίδιο αριθμό topics εμφανίζονται τα αντίστοιχα ουσιαστικά και ρήματα των μεμονωμένων πειραμάτων
γενικότερες ομάδες λέξεων
01/05/2023 26
Συμπεράσματα(3)
Προτιμότερη η προσέγγιση των ουσιαστικών λογικό νόημα μιας αναφοράς σφάλματος ομάδες λέξεων ακριβείς και σαφώς διαχωρισμένες συγκεκριμένες συσχετίσεις με χαρακτηριστικά
Χρήση ρημάτων δεν είναι ξεκάθαρος ο σκοπός χρήσης τους δεν εξάγεται πληροφορία για τα χαρακτηριστικά ποιότητας
01/05/2023 27
Μελλοντική εργασία
• Άλλα σύνολα δεδομένων(π.χ. λογισμικά κλειστού κώδικα)
Εφαρμογή μεθοδολογίας
Ευχαριστώ για την προσοχή σας!
Ερωτήσεις;
Top Related