Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

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

64 views

Published on

Συσχέτιση Χαρακτηριστικών Ποιότητας Λογισμικού με Αναφορές Σφαλμάτων Μέσα από τη Χρήση Τεχνικών Επεξεργασίας της Φυσικής Γλώσσας και Εξόρυξης Δεδομένων

Published in: Software
  • Be the first to comment

  • Be the first to like this

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

  1. 1. Συσχέτιση χαρακτηριστικών ποιότητας λογισμικού με αναφορές σφαλμάτων μέσα από τη χρήση τεχνικών επεξεργασίας της Φυσικής Γλώσσας και Εξόρυξης Δεδομένων ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ Μποϊδίδου Χριστίνα Επιβλέπων καθηγητής: Ανδρέας Συμεωνίδης Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης Πολυτεχνική Σχολή Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Η/Υ Τομέας Ηλεκτρονικής και Υπολογιστών
  2. 2. Δομή παρουσίασης Αντικείμενο και Στόχοι Μεθοδολογία Υλοποίηση Πειράματα Συμπεράσματα Μελλοντική Εργασία 4/1/2017 2
  3. 3. Αντικείμενο και στόχοι εργασίας 4/1/2017 3 Αντικείμενο Στόχοι • Εξόρυξη δεδομένων σε αναφορές σφαλμάτων • Εξαγωγή πληροφορίας από κείμενα αναφορών σφαλμάτων • Μελέτη του τρόπου περιγραφής προβλημάτων λογισμικού από χρήστες • Εξαγωγή συχνών ομάδων λέξεων • Αντιστοίχιση των ομάδων λέξεων με χαρακτηριστικά ποιότητας λογισμικού • Συμπεράσματα για το περιεχόμενο των αναφορών σφαλμάτων
  4. 4. Εφαρμογή Ruby on Rails Προϊόν λογισμικού ανοιχτού κώδικα Πλατφόρμα ανάπτυξης προγραμμάτων διαδικτύου Βασισμένο στη γλώσσα προγραμματισμού Ruby 4/1/2017 4 Αριθμός αναφορών (tickets) : 4.598
  5. 5. Στάδια της μεθοδολογίας 4/1/2017 5 • Εξαγωγή των δεδομένων • Προεπεξεργασία των δεδομένων • Επεξεργασία Φυσικής Γλώσσας • Σημασιολογική ανάλυση • Εξαγωγή και επεξεργασία των κανόνων • Σημασιολογική Συσχέτιση
  6. 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. 7. Προεπεξεργασία των δεδομένων  Απόρριψη άχρηστης πληροφορίας  html tags  ανεπιθύμητοι χαρακτήρες 4/1/2017 7 body του html
  8. 8. Επεξεργασία Φυσικής Γλώσσας  Natural Language Processing με τον συντακτικό αναλυτή Stanford Parser  Διαδικασία  Εξαγωγή του κειμένου του ticket (original_body_html)  Επεξεργασία του κειμένου  Δημιουργία Συντακτικού Δένδρου (Parse Tree) 4/1/2017 8 Αρχεία κειμένου Ουσιαστικά Διανύσματα λέξεων Ρήματα Διανύσματα λέξεων Stanford Parser Πακέτο λογισμικού σε Java Ανάλυση φυσικής γλώσσας Συντακτικό δέντρο Γραμματικές σχέσεις
  9. 9. Σημασιολογική Ανάλυση  Προεπεξεργασία αρχείων κειμένου  Stemming (εύρεση της ρίζας των λέξεων)  Απαλοιφή λέξεων με μικρή συχνότητα εμφάνισης  Εφαρμογή στα δεδομένα  Στατιστική Αναγωγή για παραγωγή Θεμάτων (Topics) από έγγραφα  Latent Dirichlet Allocation (LDA)  Δειγματοληψία Gibbs 4/1/2017 9
  10. 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. 11. Εξαγωγή και επεξεργασία κανόνων  Κατάλληλη μορφή για κάθε αρχείο κειμένου  yes αν η λέξη βρίσκεται σε κάποιο από τα topics  σύμβολο ? αν δεν υπάρχει  δεδομένα χωρισμένα με κόμμα  Εφαρμογή στα δεδομένα  Apriori αλγόριθμος - υλοποίηση WEKA  Παράμετροι 4/1/2017 11
  12. 12. Εξαγωγή και επεξεργασία κανόνων(2)  Παράδειγμα εξαγωγής κανόνων 4/1/2017 12 Κανόνες 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
  13. 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. 14. Σημασιολογική Συσχέτιση  Ορισμός:Πόσο συσχετίζονται δύο έννοιες σε σημασιολογικό επίπεδο  κατανόηση του νοήματος των ομάδων λέξεων  Συσχέτιση των ομάδων λέξεων με χαρακτηριστικά ποιότητας λογισμικού 4/1/2017 14 performance usability visibility compliance compatibility accessibility badness appearance
  15. 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. 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. 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. 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. 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. 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. 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. 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. 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. 24. Συμπεράσματα  Ο αριθμός των topics δεν επηρεάζει σημαντικά τις ομάδες λέξεων.  λιγότερα topics είναι υποομάδες των περισσότερων  παρόμοιες συσχετίσεις  Η αύξηση του κάτω ορίου συχνότητας προκαλεί αλλοίωση στις συσχετίσεις  πειράματα με συχνότητα μεγαλύτερη του 1 και του 3 εξάγουν παρόμοια αποτελέσματα  πείραμα με συχνότητα μεγαλύτερη του 7 αλλοιώνει 4/1/2017 24 Ουσιαστικά
  25. 25. Συμπεράσματα(2)  Παρατηρούνται αλληλοεπικαλύψεις στις ομάδες των ρημάτων  υποκειμενική η χρήση των ρημάτων  έκφραση πολλών διαφορετικών εννοιών 4/1/2017 25 Ρήματα Λέξεις-κλειδιά  Εμφανίζονται λέξεις από όλα τα μέρη του λόγου  για ίδιο αριθμό topics εμφανίζονται τα αντίστοιχα ουσιαστικά και ρήματα των μεμονωμένων πειραμάτων  γενικότερες ομάδες λέξεων
  26. 26. Συμπεράσματα(3)  Προτιμότερη η προσέγγιση των ουσιαστικών  λογικό νόημα μιας αναφοράς σφάλματος  ομάδες λέξεων ακριβείς και σαφώς διαχωρισμένες  συγκεκριμένες συσχετίσεις με χαρακτηριστικά  Χρήση ρημάτων  δεν είναι ξεκάθαρος ο σκοπός χρήσης τους  δεν εξάγεται πληροφορία για τα χαρακτηριστικά ποιότητας 4/1/2017 26
  27. 27. Μελλοντική εργασία 4/1/2017 27 • Άλλα σύνολα δεδομένων(π.χ. λογισμικά κλειστού κώδικα) Εφαρμογή μεθοδολογίας • Ανάπτυξη εργαλείου αυτόματης αναγνώρισης χαρακτηριστικού που ανήκει μια αναφορά Εργαλείο αναγνώρισης • Μελέτη συσχετίσεων των χαρακτηριστικών με άλλα μέρη του λόγου (επίθετα, επιρρήματα, κτλ.) Περαιτέρω μελέτη
  28. 28. 4/1/2017 28 Ευχαριστώ για την προσοχή σας! Ερωτήσεις;

×