Χριστίνα Μποϊδίδου

28
Συσχέτιση χαρακτηριστικών ποιότητας λογισμικού με αναφορές σφαλμάτων μέσα από τη χρήση τεχνικών επεξεργασίας της Φυσικής Γλώσσας και Εξόρυξης Δεδομένων ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ Μποϊδίδου Χριστίνα Επιβλέπων καθηγητής: Ανδρέας Συμεωνίδης Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης Πολυτεχνική Σχολή Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Η/Υ Τομέας Ηλεκτρονικής και Υπολογιστών

Transcript of Χριστίνα Μποϊδίδου

Page 1: Χριστίνα Μποϊδίδου

Συσχέτιση χαρακτηριστικών ποιότητας λογισμικού με αναφορές σφαλμάτων μέσα

από τη χρήση τεχνικών επεξεργασίας της Φυσικής Γλώσσας και Εξόρυξης Δεδομένων

ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ

Μποϊδίδου ΧριστίναΕπιβλέπων καθηγητής: Ανδρέας Συμεωνίδης

Αριστοτέλειο Πανεπιστήμιο ΘεσσαλονίκηςΠολυτεχνική ΣχολήΤμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Η/ΥΤομέας Ηλεκτρονικής και Υπολογιστών

Page 2: Χριστίνα Μποϊδίδου

01/05/2023 2

Δομή παρουσίασης

Αντικείμενο και Στόχοι

Μεθοδολογία

Υλοποίηση

Πειράματα

Συμπεράσματα

Μελλοντική Εργασία

Page 3: Χριστίνα Μποϊδίδου

01/05/2023

Αντικείμενο και στόχοι εργασίας

3

Αντικείμενο

• Εξόρυξη δεδομένων σε αναφορές σφαλμάτων

• Εξαγωγή πληροφορίας από κείμενα αναφορών σφαλμάτων

• Μελέτη του τρόπου περιγραφής προβλημάτων λογισμικού από χρήστες

Στόχοι

• Εξαγωγή συχνών ομάδων λέξεων

• Αντιστοίχιση των ομάδων λέξεων με χαρακτηριστικά ποιότητας λογισμικού

• Συμπεράσματα για το περιεχόμενο των αναφορών σφαλμάτων

Page 4: Χριστίνα Μποϊδίδου

01/05/2023 4

Εφαρμογή

Ruby on RailsΠροϊόν λογισμικού ανοιχτού κώδικα

Πλατφόρμα ανάπτυξης προγραμμάτων

διαδικτύου

Βασισμένο στη γλώσσα προγραμματισμού Ruby

Αριθμός αναφορών (tickets) : 4.598

Page 5: Χριστίνα Μποϊδίδου

01/05/2023 5

Στάδια της μεθοδολογίας

•Εξαγωγή των δεδομένων

•Προεπεξεργασία των δεδομένων

•Επεξεργασία Φυσικής Γλώσσας

•Σημασιολογική ανάλυση

•Εξαγωγή και επεξεργασία των κανόνων

•Σημασιολογική Συσχέτιση

Page 6: Χριστίνα Μποϊδίδου

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

Page 7: Χριστίνα Μποϊδίδου

01/05/2023 7

Προεπεξεργασία των δεδομένων

Απόρριψη άχρηστης πληροφορίας html tags ανεπιθύμητοι χαρακτήρες

body του html

Page 8: Χριστίνα Μποϊδίδου

01/05/2023 8

Επεξεργασία Φυσικής Γλώσσας Natural Language Processing με τον συντακτικό αναλυτή

Stanford Parser Διαδικασία

Εξαγωγή του κειμένου του ticket (original_body_html) Επεξεργασία του κειμένου Δημιουργία Συντακτικού Δένδρου (Parse Tree)

Αρχεία κειμένου

Ουσιαστικά

Διανύσματα λέξεων

Ρήματα

Διανύσματα λέξεων

Stanford Parser

Πακέτο λογισμικού σε Java

Ανάλυση φυσικής γλώσσας

Συντακτικό δέντρο Γραμματικές σχέσεις

Page 9: Χριστίνα Μποϊδίδου

01/05/2023 9

Σημασιολογική Ανάλυση

Προεπεξεργασία αρχείων κειμένου Stemming (εύρεση της ρίζας των λέξεων) Απαλοιφή λέξεων με μικρή συχνότητα εμφάνισης

Εφαρμογή στα δεδομένα Στατιστική Αναγωγή για παραγωγή Θεμάτων (Topics) από

έγγραφα Latent Dirichlet Allocation (LDA) Δειγματοληψία Gibbs

Page 10: Χριστίνα Μποϊδίδου

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

Page 11: Χριστίνα Μποϊδίδου

01/05/2023 11

Εξαγωγή και επεξεργασία κανόνων

Κατάλληλη μορφή για κάθε αρχείο κειμένου yes αν η λέξη βρίσκεται σε κάποιο από τα topics σύμβολο ? αν δεν υπάρχει δεδομένα χωρισμένα με κόμμα

Εφαρμογή στα δεδομένα Apriori αλγόριθμος - υλοποίηση WEKA Παράμετροι

Page 12: Χριστίνα Μποϊδίδου

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

Page 13: Χριστίνα Μποϊδίδου

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

Page 14: Χριστίνα Μποϊδίδου

01/05/2023 14

Σημασιολογική Συσχέτιση

Ορισμός:Πόσο συσχετίζονται δύο έννοιες σε σημασιολογικό επίπεδο κατανόηση του νοήματος των ομάδων λέξεων

Συσχέτιση των ομάδων λέξεων με χαρακτηριστικά ποιότητας λογισμικού performance usability

visibility compliance

compatibility accessibility

badness appearance

Page 15: Χριστίνα Μποϊδίδου

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

Page 16: Χριστίνα Μποϊδίδου

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

Page 17: Χριστίνα Μποϊδίδου

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

Page 18: Χριστίνα Μποϊδίδου

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

Page 19: Χριστίνα Μποϊδίδου

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

Page 20: Χριστίνα Μποϊδίδου

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

Page 21: Χριστίνα Μποϊδίδου

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

Page 22: Χριστίνα Μποϊδίδου

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

Page 23: Χριστίνα Μποϊδίδου

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

Page 24: Χριστίνα Μποϊδίδου

01/05/2023 24

Συμπεράσματα

Ο αριθμός των topics δεν επηρεάζει σημαντικά τις ομάδες λέξεων. λιγότερα topics είναι υποομάδες των περισσότερων παρόμοιες συσχετίσεις

Η αύξηση του κάτω ορίου συχνότητας προκαλεί αλλοίωση στις συσχετίσεις πειράματα με συχνότητα μεγαλύτερη του 1 και του 3

εξάγουν παρόμοια αποτελέσματα πείραμα με συχνότητα μεγαλύτερη του 7 αλλοιώνει

Ουσιαστικά

Page 25: Χριστίνα Μποϊδίδου

01/05/2023 25

Συμπεράσματα(2)

Παρατηρούνται αλληλοεπικαλύψεις στις ομάδες των ρημάτων υποκειμενική η χρήση των ρημάτων έκφραση πολλών διαφορετικών εννοιών

Ρήματα

Λέξεις-κλειδιά Εμφανίζονται λέξεις από όλα τα μέρη του λόγου

για ίδιο αριθμό topics εμφανίζονται τα αντίστοιχα ουσιαστικά και ρήματα των μεμονωμένων πειραμάτων

γενικότερες ομάδες λέξεων

Page 26: Χριστίνα Μποϊδίδου

01/05/2023 26

Συμπεράσματα(3)

Προτιμότερη η προσέγγιση των ουσιαστικών λογικό νόημα μιας αναφοράς σφάλματος ομάδες λέξεων ακριβείς και σαφώς διαχωρισμένες συγκεκριμένες συσχετίσεις με χαρακτηριστικά

Χρήση ρημάτων δεν είναι ξεκάθαρος ο σκοπός χρήσης τους δεν εξάγεται πληροφορία για τα χαρακτηριστικά ποιότητας

Page 27: Χριστίνα Μποϊδίδου

01/05/2023 27

Μελλοντική εργασία

• Άλλα σύνολα δεδομένων(π.χ. λογισμικά κλειστού κώδικα)

Εφαρμογή μεθοδολογίας

Page 28: Χριστίνα Μποϊδίδου

Ευχαριστώ για την προσοχή σας!

Ερωτήσεις;