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.

Νικόλαος Κατιρτζής 7185

92 views

Published on

Εξόρυξη Δεδομένων από Αποθήκες Λογισμικού για Επαναχρησιμοποίηση Λογισμικού Οδηγούμενη από Ελέγχους

Published in: Software
  • Be the first to comment

  • Be the first to like this

Νικόλαος Κατιρτζής 7185

  1. 1. Εξόρυξη Δεδομένων από Αποθήκες Λογισμικού για Επαναχρησιμοποίηση Λογισμικού Οδηγούμενη από Ελέγχους Κατιρτζής Νικόλαος Υπό την επίβλεψη του Ανδρέα Λ. Συμεωνίδη Επίκουρου καθηγητή ΤΗΜΜΥ ΑΠΘ Θεσσαλονίκη, 2014 ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ & ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΕΥΦΥΩΝ ΣΥΣΤΗΜΑΤΩΝ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ ΛΟΓΙΣΜΙΚΟΥ
  2. 2.  Εισαγωγή  Ορισμός προβλήματος  State of the art  Σκοπός της διπλωματικής  Ανάλυση του συστήματος  Πειράματα  Συμπεράσματα – Μελλοντική εργασία Εξόρυξη από Αποθήκες Λογισμικού για Επαναχρησιμοποίηση Οδηγούμενη από Ελέγχους Δομή παρουσίασης Κατιρτζής Νικόλαος 15-10-2014 2
  3. 3. Εισαγωγή • Ψηφιακή Εποχή (Εποχή της Πληροφορίας) • Μετάδοση της πληροφορίας μέσω του διαδικτύου • Free software – Open Source software • Δημιουργία αποθηκών λογισμικού • Επαναχρησιμοποίηση κώδικα Εξόρυξη από Αποθήκες Λογισμικού για Επαναχρησιμοποίηση Οδηγούμενη από Ελέγχους Κατιρτζής Νικόλαος 15-10-2014 3
  4. 4. Ορισμός προβλήματος CSE results Εξόρυξη από Αποθήκες Λογισμικού για Επαναχρησιμοποίηση Οδηγούμενη από Ελέγχους Κατιρτζής Νικόλαος 15-10-2014 4
  5. 5. Παρόμοια συστήματα  Code Conjurer  CodeGenie  S6  FAST Μειονεκτήματα ‒ Δε λειτουργούν πλέον! ‒ Δε χρησιμοποιούν ανανεώσιμες αποθήκες λογισμικού ‒ Δεν έχουν υλοποιήσει κάποιο μοντέλο mining, αλλά αναζητούν στις CSEs και εκτελούν τα αποτελέσματα ‒ Δεν αντιμετωπίζουν τις διπλοεγγραφές Εξόρυξη από Αποθήκες Λογισμικού για Επαναχρησιμοποίηση Οδηγούμενη από Ελέγχους State of the art Κατιρτζής Νικόλαος 15-10-2014 5
  6. 6. Σκοπός της διπλωματικής Ενίσχυση του πεδίου των RSSE συστημάτων: – Επισκόπηση της βιβλιογραφίας – Ανάπτυξη δικού μας RSSE συστήματος για την αναζήτηση κώδικα Το σύστημά μας:  Έχει ως βάση το TDD  Κάνει χρήση αναπτυσσόμενων αποθηκών λογισμικού  Κάνει χρήση ενός μοντέλου mining-scoring, επικεντρωμένου στο πρόβλημα που τίθεται ‒ Ανάκτηση Πληροφορίας (IR) ‒ Επεξεργασία Φυσικής Γλώσσας (NLP) Εξόρυξη από Αποθήκες Λογισμικού για Επαναχρησιμοποίηση Οδηγούμενη από Ελέγχους Κατιρτζής Νικόλαος 15-10-2014 6
  7. 7. Δομή του συστήματος Εξόρυξη από Αποθήκες Λογισμικού για Επαναχρησιμοποίηση Οδηγούμενη από Ελέγχους PARSER TESTER Code Test Case Signature DOWNLOADER MINER Files Top files Results Local repo Κατιρτζής Νικόλαος 15-10-2014 7
  8. 8. Δομή του συστήματος Εξόρυξη από Αποθήκες Λογισμικού για Επαναχρησιμοποίηση Οδηγούμενη από Ελέγχους PARSER TESTER Code Test Case Signature DOWNLOADER MINER Files Top files Results Local repo Κατιρτζής Νικόλαος 15-10-2014 8
  9. 9. 1 2 3 4 public class Stack{ public void push(Object o){} public Object pop(){} } 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 <?xml version="1.0" encoding="UTF-8"?> <files> <file> <package /> <imports /> <class> <name>Stack</name> <method> <name>push</name> <block>no</block> <parameters> <type>Object</type> </parameters> <return>void</return> </method> <method> <name>pop</name> <block>no</block> <parameters /> <return>Object</return> </method> </class> </file> </files> • Υλοποίηση με τον Java Compiler του JDK της Oracle • Εξαγωγή υπογραφής σε μορφή xml Parser Εξόρυξη από Αποθήκες Λογισμικού για Επαναχρησιμοποίηση Οδηγούμενη από Ελέγχους Κατιρτζής Νικόλαος 15-10-2014 9
  10. 10. Δομή του συστήματος Εξόρυξη από Αποθήκες Λογισμικού για Επαναχρησιμοποίηση Οδηγούμενη από Ελέγχους PARSER TESTER Code Test Case Signature DOWNLOADER MINER Files Top files Results Local repo Κατιρτζής Νικόλαος 15-10-2014 10
  11. 11. Αναζήτηση στο GitHub Εξόρυξη από Αποθήκες Λογισμικού για Επαναχρησιμοποίηση Οδηγούμενη από Ελέγχους Searchcode 30 users + 870 top Github users Possible queries GitHub Possible queries Top 100 results If no results found, restart search using next query Snippets Miner Snippets If no-valuable results found, restart search using next query Κατιρτζής Νικόλαος 15-10-2014 11
  12. 12. Regex: ([w<>[]]+)?s+(w+)?((.*?))s*(throwss*w+)*{ return type name parameters body existence Snippets Miner Εξόρυξη από Αποθήκες Λογισμικού για Επαναχρησιμοποίηση Οδηγούμενη από Ελέγχους Score fileisDuplicate score>0 file Yes No Yes No Main list Back-up list Κατιρτζής Νικόλαος 15-10-2014 12
  13. 13. • Η AGORA βασίζεται στην πλατφόρμα αναζήτησης Elasticsearch • Περιλαμβάνει ένα μεγάλο αριθμό από projects του GitHub • Διαθέτει API και δίνει τη δυνατότητα αναζήτησης με δομημένο ερώτημα Αναζήτηση στην AGORA Εξόρυξη από Αποθήκες Λογισμικού για Επαναχρησιμοποίηση Οδηγούμενη από Ελέγχους AGORA Query Top 200 results Κατιρτζής Νικόλαος 15-10-2014 13
  14. 14. Δομή του συστήματος Εξόρυξη από Αποθήκες Λογισμικού για Επαναχρησιμοποίηση Οδηγούμενη από Ελέγχους PARSER TESTER Code Test Case Signature DOWNLOADER MINER Files Top files Results Local repo Κατιρτζής Νικόλαος 15-10-2014 14
  15. 15. Preprocessor:  Σκοπός είναι η απομάκρυνση των διπλοαρχείων (duplicates)  Χρήση του md5 hash (exact duplicates) Miner Εξόρυξη από Αποθήκες Λογισμικού για Επαναχρησιμοποίηση Οδηγούμενη από Ελέγχους Preprocessor Files Unique files Scorer Postprocessor Scores Top results Κατιρτζής Νικόλαος 15-10-2014 15
  16. 16. Αρχικά, γίνεται αναπαράσταση των δεδομένων: Ακολουθεί η δημιουργία διανυσμάτων (tf): Έπειτα, γίνεται η βαθμολόγηση των διανυσμάτων, με χρήση μετρικών όπως η ομοιότητα συνημιτόνου Κείμενο Περιεχόμενο 𝒅 𝟏 bag of words of 𝒅 𝟐 items bag 𝒏 𝟏 𝒏 𝟐 𝒏 𝟑 𝒏 𝟒 𝒅 𝟏 1 2 1 0 𝒅 𝟐 1 0 0 1 Κείμενο Διάνυσμα 𝒅 𝟏 1,2,1,0 𝒅 𝟐 1,0,0,1 Μοντέλο Διανυσματικού Χώρου (VSM) Term Term Index(𝑡) bag 1 of 2 words 3 items 4 Εξόρυξη από Αποθήκες Λογισμικού για Επαναχρησιμοποίηση Οδηγούμενη από Ελέγχους Κατιρτζής Νικόλαος 15-10-2014 16
  17. 17. Στη δική μας έκδοση:  Κάθε συνιστώσα έχει τιμή στο εύρος [0,1]  Λεξικό ≈ υπογραφή ερωτήματος  Το εκάστοτε διάνυσμα του ερωτήματος χρησιμοποιείται ως βάση κατά τη σύγκριση και όλες οι συνιστώσες του είναι ίσες με 1 Διάνυσμα σε: • Επίπεδο μεθόδου: 𝑚 = (𝑚𝑛, 𝑟𝑡, 𝑝𝑡) • Επίπεδο κλάσης: 𝑐 = 𝑐𝑛, 𝑚𝑠1, … , 𝑚𝑠 𝑛 Μοντέλο που υλοποιήθηκε Εξόρυξη από Αποθήκες Λογισμικού για Επαναχρησιμοποίηση Οδηγούμενη από Ελέγχους method class file Κατιρτζής Νικόλαος 15-10-2014 17
  18. 18. Βαθμολόγηση strings Εξόρυξη από Αποθήκες Λογισμικού για Επαναχρησιμοποίηση Οδηγούμενη από Ελέγχους Tokenizing Stop words removal Short words removal Stemming Levenshtein similarity N-gram similarity Tanimoto similarity string String or tokens Score [0,1] Κατιρτζής Νικόλαος 15-10-2014 18
  19. 19. Ομοιότητα συνημιτόνου…. Ή μήπως όχι; Συντελεστής Tanimoto: 𝛵 𝑋, 𝑌 = 𝑋 ∗ 𝑌 𝑋 2 + 𝑌 2 − 𝑋 ∗ 𝑌 0.5 1.0 X Y0.5 1.0 Εξόρυξη από Αποθήκες Λογισμικού για Επαναχρησιμοποίηση Οδηγούμενη από Ελέγχους Βαθμολόγηση διανυσμάτων Κατιρτζής Νικόλαος 15-10-2014 19
  20. 20. Μέθοδος ερωτήματος 𝒔𝒎𝒊 Μέθοδος αρχείου αποθήκης 𝒙𝒎𝒊 int add(int i, int j) 0 int add(int i, int j) 0 int subtract(int i, int j) 1 int multiply(int i, int j) 1 int multiply(int i, int j) 2 int divide(int i, int j) 3 𝒔𝒎𝒊 𝒙𝒎𝒊 score 0 0 1.0 1 0.5 1 0 0.5 1 0.5 2 0 0.5 1 1.0 3 0 0.5 1 0.5 𝑢 = [1.0, 0.0, 1.0, 0.0 Stable Marriage Problem Εξόρυξη από Αποθήκες Λογισμικού για Επαναχρησιμοποίηση Οδηγούμενη από Ελέγχους 𝒔𝒎𝒊 𝒙𝒎𝒊 score𝒔𝒎𝒊 𝒙𝒎𝒊 score 0 0 1.0 𝒔𝒎𝒊 𝒙𝒎𝒊 score 0 0 1.0 2 1 1.0 𝒔𝒎𝒊 𝒙𝒎𝒊 score 0 0 1.0 2 1 1.0 0 1 0.5 𝒔𝒎𝒊 𝒙𝒎𝒊 score 0 0 1.0 2 1 1.0 0 1 0.5 1 0 0.5 𝒔𝒎𝒊 𝒙𝒎𝒊 score 0 0 1.0 2 1 1.0 0 1 0.5 1 0 0.5 1 1 0.5 2 0 1.0 2 1 0.5 3 0 0.5 3 1 0.5 Κατιρτζής Νικόλαος 15-10-2014 20
  21. 21. Δομή του συστήματος Εξόρυξη από Αποθήκες Λογισμικού για Επαναχρησιμοποίηση Οδηγούμενη από Ελέγχους PARSER TESTER Code Test Case Signature DOWNLOADER MINER Files Top files Results Local repo Κατιρτζής Νικόλαος 15-10-2014 21
  22. 22. Tester Εξόρυξη από Αποθήκες Λογισμικού για Επαναχρησιμοποίηση Οδηγούμενη από Ελέγχους Create projects Copy src/ test files Modify src/ test files Compile src/ test files Run test cases Src files Test file Results Κατιρτζής Νικόλαος 15-10-2014 22
  23. 23. Μετρικές αξιολόγησης αποτελεσμάτων +Μήκος αναζήτησης (search length): Ο αριθμός των μη σχετικών αποτελεσμάτων που πρέπει να δει ο χρήστης, έως ότου βρει Ν σχετικά. Η σχετικότητα όμως κατά τον Mooney είναι… σχετική! Αν όμως passed ≈ σχετικό αποτέλεσμα; Recall 𝑪 = 𝐶𝑜𝑚𝑝𝑖𝑙𝑎𝑏𝑙𝑒 = 1 𝑁 #𝑐𝑜𝑚𝑝𝑖𝑙𝑎𝑏𝑙𝑒 𝑷 = 𝑃𝑎𝑠𝑠𝑒𝑑 = 1 𝑁 #𝑝𝑎𝑠𝑠𝑒𝑑 Precision % 𝑷 𝑪 = % 𝑃 % 𝐶 ∗ 100% % 𝑷 𝑪 = 1 𝑁 #𝑝𝑎𝑠𝑠𝑒𝑑 #𝑐𝑜𝑚𝑝𝑖𝑙𝑎𝑏𝑙𝑒 ∗ 100% Πειράματα Εξόρυξη από Αποθήκες Λογισμικού για Επαναχρησιμοποίηση Οδηγούμενη από Ελέγχους Κατιρτζής Νικόλαος 15-10-2014 23
  24. 24. Σύστημα Μετρική GitHub AGORA Ohloh RSSE (AGORA) RSSE (GitHub) 𝑪𝒐𝒎𝒑𝒊𝒍𝒂𝒃𝒍𝒆 (% 𝑪) 4.875 (16.25%) 6.06 (20.2%) 4.563 (15.21%) 6.938 (23.1%) 7.125 (23.8%) 𝑷𝒂𝒔𝒔𝒆𝒅 (% 𝑷) 0.875 (2.9%) 2.563 (8.5%) 2.563 (8.5%) 4.5 (15%) 3.938 (13.1%) % 𝑷 𝑪 17.9% 42.3% 56.2% 64.9% 55.3% % 𝑷 𝑪 20.2% 33.1% 41.2% 50.1% 47.5% MSL 21.813 14.563 11.188 10.5 7.563 Εξόρυξη από Αποθήκες Λογισμικού για Επαναχρησιμοποίηση Οδηγούμενη από Ελέγχους Πείραμα 1 – Σύγκριση με CSEs Κατιρτζής Νικόλαος 15-10-2014 24
  25. 25. Εξόρυξη από Αποθήκες Λογισμικού για Επαναχρησιμοποίηση Οδηγούμενη από Ελέγχους Πείραμα 1 – Σύγκριση με CSEs Κατιρτζής Νικόλαος 15-10-2014 25
  26. 26. Εξόρυξη από Αποθήκες Λογισμικού για Επαναχρησιμοποίηση Οδηγούμενη από Ελέγχους Πείραμα 1 – Σύγκριση με CSEs Κατιρτζής Νικόλαος 15-10-2014 26
  27. 27. Εξόρυξη από Αποθήκες Λογισμικού για Επαναχρησιμοποίηση Οδηγούμενη από Ελέγχους Πείραμα 2 – Σύγκριση με το FAST Κατιρτζής Νικόλαος 15-10-2014 27
  28. 28. Εξόρυξη από Αποθήκες Λογισμικού για Επαναχρησιμοποίηση Οδηγούμενη από Ελέγχους Πείραμα 3 – Σύγκριση με το Code Conjurer Κατιρτζής Νικόλαος 15-10-2014 28
  29. 29. Αντιλαμβανόμαστε ότι:  Δεν αρκούν οι Μηχανές Αναζήτησης Κώδικα για το πρόβλημά μας  Δεν αρκεί η απλή εφαρμογή του VSM  Είναι σημαντική η πληροφορία της εκτελεσιμότητας Πιθανές επεκτάσεις:  Προσθήκη άλλων CSEs  Διευκόλυνση του χρήστη στη δημιουργία ερωτήματος (χρήση λέξεων κλειδιών)  Feedback χρήστη  Επέκταση σε άλλες γλώσσες προγραμματισμού Εξόρυξη από Αποθήκες Λογισμικού για Επαναχρησιμοποίηση Οδηγούμενη από Ελέγχους Συμπεράσματα – Μελλοντικές Επεκτάσεις Κατιρτζής Νικόλαος 15-10-2014 29
  30. 30. Εξόρυξη από Αποθήκες Λογισμικού για Επαναχρησιμοποίηση Οδηγούμενη από Ελέγχους Welcome to Mantissa! Κατιρτζής Νικόλαος 15-10-2014 30
  31. 31. Εξόρυξη από Αποθήκες Λογισμικού για Επαναχρησιμοποίηση Οδηγούμενη από Ελέγχους Ερώτημα Κατιρτζής Νικόλαος 15-10-2014 31
  32. 32. Εξόρυξη από Αποθήκες Λογισμικού για Επαναχρησιμοποίηση Οδηγούμενη από Ελέγχους Αποτελέσματα! Κατιρτζής Νικόλαος 15-10-2014 32
  33. 33. Εξόρυξη από Αποθήκες Λογισμικού για Επαναχρησιμοποίηση Οδηγούμενη από Ελέγχους Ερωτήσεις; Κατιρτζής Νικόλαος 15-10-2014 33

×