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.

Αλεξάνδρα Μπαλτζή 7485

127 views

Published on

Βελτίωση Τεχνικών Επαναχρησιμοποίησης Κώδικα από Αποθήκες Λογισμικού με χρήση Τεχνικών Ανάπτυξης Λογισμικού Οδηγούμενης από Ελέγχους και Τεχνικών Μετασχηματισμού Κώδικα

Published in: Software
  • Be the first to comment

  • Be the first to like this

Αλεξάνδρα Μπαλτζή 7485

  1. 1. Βελτίωση Τεχνικών Επαναχρησιμοποίησης Κώδικα από Αποθήκες Λογισμικού με χρήση Τεχνικών Ανάπτυξης Λογισμικού Οδηγούμενης από Ελέγχους και Τεχνικών Μετασχηματισμού Κώδικα Μπαλτζή Αλεξάνδρα Υπό την επίβλεψη του Επίκουρου Καθηγητή Ανδρέα Λ. Συμεωνίδη και του υποψήφιου Διδάκτορα Θεμιστοκλή Διαμαντόπουλου ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ & ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΗΛΕΚΤΡΟΝΙΚΗΣ & ΥΠΟΛΟΓΙΣΤΩΝ
  2. 2. Εισαγωγή Ορισμός προβλήματος State of the art Σκοπός της διπλωματικής Ανάλυση του συστήματος Πειράματα Συμπεράσματα – Μελλοντική εργασία Βελτίωση Τεχνικών Επαναχρησιμοποίησης Κώδικα από Αποθήκες Λογισμικού με χρήση Τεχνικών Ανάπτυξης Λογισμικού Οδηγούμενης από Ελέγχους και Τεχνικών Μετασχηματισμού Κώδικα Δομή παρουσίασης 2
  3. 3. • Εποχή της Πληροφορίας (Εποχή των Υπολογιστών) • Ελεύθερη ανταλλαγή και μεταφορά πληροφορίας • Επιτάχυνση ροής πληροφοριών μέσω του Διαδικτύου • Επαναχρησιμοποίηση στοιχείων λογισμικού - Τεχνολογία Λογισμικού • Free Software – Open Source Software • Δημιουργία αποθηκών λογισμικού Βελτίωση Τεχνικών Επαναχρησιμοποίησης Κώδικα από Αποθήκες Λογισμικού με χρήση Τεχνικών Ανάπτυξης Λογισμικού Οδηγούμενης από Ελέγχους και Τεχνικών Μετασχηματισμού Κώδικα Εισαγωγή 3
  4. 4. • Μείωση χρόνου συγγραφής - βελτίωση ποιότητας κώδικα • Μηχανές Αναζήτησης Κώδικα (Code Search Engines) - Προσπάθεια για σχηματισμό ερωτήματος - Προσπάθεια για έλεγχο λειτουργικότητας • Συστήματα Συστάσεων στην Τεχνολογία Λογισμικού (Recommendation Systems in Software Engineering) Βελτίωση Τεχνικών Επαναχρησιμοποίησης Κώδικα από Αποθήκες Λογισμικού με χρήση Τεχνικών Ανάπτυξης Λογισμικού Οδηγούμενης από Ελέγχους και Τεχνικών Μετασχηματισμού Κώδικα Ορισμός προβλήματος 4
  5. 5. State of the art O κύκλος του Test Driven Reuse Παρόμοια συστήματα  Code Conjurer  CodeGenie  S6  FAST Μειονεκτήματα • Δεν είναι πλέον λειτουργικά • Δε χρησιμοποιούν αναπτυσσόμενες αποθήκες λογισμικού • Δεν επεξεργάζονται τα αποτελέσματα και δεν τα προσαρμόζουν στον κώδικα του προγραμματιστή • Δεν ελέγχουν τη λειτουργικότητα των αποτελεσμάτων • Δεν αντιμετωπίζουν τις διπλοεγγραφές 5 Βελτίωση Τεχνικών Επαναχρησιμοποίησης Κώδικα από Αποθήκες Λογισμικού με χρήση Τεχνικών Ανάπτυξης Λογισμικού Οδηγούμενης από Ελέγχους και Τεχνικών Μετασχηματισμού Κώδικα
  6. 6. Συνεισφορά στον ευρύτερο χώρο της Τεχνολογίας Λογισμικού και των RSSEs: • Αναφορά βιβλιογραφίας • Ανάπτυξη του δικού μας RSSE συστήματος Το σύστημά μας:  Έχει ως βάση το TDD  Κάνει χρήση αναπτυσσόμενων αποθηκών λογισμικού  Κάνει χρήση ενός μοντέλου mining-scoring  Ελέγχει τη λειτουργικότητα των αποτελεσμάτων  Πραγματοποιεί μετατροπές στον κώδικα  Παρουσιάζει τα αποτελέσματα στο χρήστη Βελτίωση Τεχνικών Επαναχρησιμοποίησης Κώδικα από Αποθήκες Λογισμικού με χρήση Τεχνικών Ανάπτυξης Λογισμικού Οδηγούμενης από Ελέγχους και Τεχνικών Μετασχηματισμού Κώδικα Σκοπός της διπλωματικής 6
  7. 7. Βελτίωση Τεχνικών Επαναχρησιμοποίησης Κώδικα από Αποθήκες Λογισμικού με χρήση Τεχνικών Ανάπτυξης Λογισμικού Οδηγούμενης από Ελέγχους και Τεχνικών Μετασχηματισμού Κώδικα Δομή του συστήματος 7
  8. 8. Βελτίωση Τεχνικών Επαναχρησιμοποίησης Κώδικα από Αποθήκες Λογισμικού με χρήση Τεχνικών Ανάπτυξης Λογισμικού Οδηγούμενης από Ελέγχους και Τεχνικών Μετασχηματισμού Κώδικα Δομή του συστήματος 8
  9. 9. Βελτίωση Τεχνικών Επαναχρησιμοποίησης Κώδικα από Αποθήκες Λογισμικού με χρήση Τεχνικών Ανάπτυξης Λογισμικού Οδηγούμενης από Ελέγχους και Τεχνικών Μετασχηματισμού Κώδικα Parser 9 • Εξαγωγή της υπογραφής του ερωτήματος του χρήστη σε xml • Χρήση του εργαλείου srcML
  10. 10. Βελτίωση Τεχνικών Επαναχρησιμοποίησης Κώδικα από Αποθήκες Λογισμικού με χρήση Τεχνικών Ανάπτυξης Λογισμικού Οδηγούμενης από Ελέγχους και Τεχνικών Μετασχηματισμού Κώδικα Δομή του συστήματος 10
  11. 11. Βελτίωση Τεχνικών Επαναχρησιμοποίησης Κώδικα από Αποθήκες Λογισμικού με χρήση Τεχνικών Ανάπτυξης Λογισμικού Οδηγούμενης από Ελέγχους και Τεχνικών Μετασχηματισμού Κώδικα Downloader 11 • Αναζήτηση στη CSE AGORA • Η AGORA: - Περιλαμβάνει μεγάλο αριθμό από projects του Github - Διαθέτει API και δίνει τη δυνατότητα αναζήτησης με δομημένο ερώτημα - Το API βασίζεται στην πλατφόρμα αναζήτησης Elasticsearch
  12. 12. Βελτίωση Τεχνικών Επαναχρησιμοποίησης Κώδικα από Αποθήκες Λογισμικού με χρήση Τεχνικών Ανάπτυξης Λογισμικού Οδηγούμενης από Ελέγχους και Τεχνικών Μετασχηματισμού Κώδικα Δομή του συστήματος 12
  13. 13. Βελτίωση Τεχνικών Επαναχρησιμοποίησης Κώδικα από Αποθήκες Λογισμικού με χρήση Τεχνικών Ανάπτυξης Λογισμικού Οδηγούμενης από Ελέγχους και Τεχνικών Μετασχηματισμού Κώδικα Miner 13 • O Preprocessor χρησιμοποιείται για την απομάκρυνση των διπλοαρχείων με χρήση του md5 hash • Ο Scorer χρησιμοποιείται για τη βαθμολόγηση των αρχείων, κατά την οποία: - Δημιουργούνται διανύσματα σε:  Επίπεδο μεθόδου: 𝑚 = (𝑚𝑛, 𝑟𝑡, 𝑝𝑡)  Επίπεδο κλάσης: 𝑐 = 𝑐𝑛, 𝑚𝑠1, … , 𝑚𝑠 𝑛 - Για τη δημιουργία των διανυσμάτων:  Κάθε συνιστώσα έχει τιμή στο εύρος [0,1]  Λεξικό ≈ υπογραφή ερωτήματος  Το εκάστοτε διάνυσμα του ερωτήματος χρησιμοποιείται ως βάση κατά τη σύγκριση και όλες οι συνιστώσες του είναι ίσες με 1 Preprocessor Scorer Postprocessor Files Unique Files Scores Top Files
  14. 14. Βελτίωση Τεχνικών Επαναχρησιμοποίησης Κώδικα από Αποθήκες Λογισμικού με χρήση Τεχνικών Ανάπτυξης Λογισμικού Οδηγούμενης από Ελέγχους και Τεχνικών Μετασχηματισμού Κώδικα Miner • Για τη βαθμολόγηση των strings ακολουθείται η παρακάτω διαδικασία: • Για τη βαθμολόγηση των διανυσμάτων χρησιμοποιείται ο συντελεστής Tanimoto: 𝛵 𝑋, 𝑌 = 𝑋∗𝑌 𝑋 2 + 𝑌 2 −𝑋∗𝑌 14 Tokenizing Stop words removal Short words removal String Stemming Tanimoto similarity Score [0,1] String or tokens
  15. 15. Βελτίωση Τεχνικών Επαναχρησιμοποίησης Κώδικα από Αποθήκες Λογισμικού με χρήση Τεχνικών Ανάπτυξης Λογισμικού Οδηγούμενης από Ελέγχους και Τεχνικών Μετασχηματισμού Κώδικα Miner Stable Marriage Problem • Τα scores του πίνακα: • Οι λίστες που δημιουργούνται: 15
  16. 16. Βελτίωση Τεχνικών Επαναχρησιμοποίησης Κώδικα από Αποθήκες Λογισμικού με χρήση Τεχνικών Ανάπτυξης Λογισμικού Οδηγούμενης από Ελέγχους και Τεχνικών Μετασχηματισμού Κώδικα Δομή του συστήματος 16
  17. 17. Βελτίωση Τεχνικών Επαναχρησιμοποίησης Κώδικα από Αποθήκες Λογισμικού με χρήση Τεχνικών Ανάπτυξης Λογισμικού Οδηγούμενης από Ελέγχους και Τεχνικών Μετασχηματισμού Κώδικα Tester 17 Create projects Copy src/test files Modify src/test files Compile src/test files Run test cases Src files Test file Results
  18. 18. Βελτίωση Τεχνικών Επαναχρησιμοποίησης Κώδικα από Αποθήκες Λογισμικού με χρήση Τεχνικών Ανάπτυξης Λογισμικού Οδηγούμενης από Ελέγχους και Τεχνικών Μετασχηματισμού Κώδικα Δομή του συστήματος 18
  19. 19. Βελτίωση Τεχνικών Επαναχρησιμοποίησης Κώδικα από Αποθήκες Λογισμικού με χρήση Τεχνικών Ανάπτυξης Λογισμικού Οδηγούμενης από Ελέγχους και Τεχνικών Μετασχηματισμού Κώδικα Transformer • Μετασχηματισμός τύπου επιστροφής μεθόδων  1η περίπτωση:  2η περίπτωση:  3η περίπτωση: 19
  20. 20. Βελτίωση Τεχνικών Επαναχρησιμοποίησης Κώδικα από Αποθήκες Λογισμικού με χρήση Τεχνικών Ανάπτυξης Λογισμικού Οδηγούμενης από Ελέγχους και Τεχνικών Μετασχηματισμού Κώδικα Transformer • Μετασχηματισμός παραμέτρων μεθόδου  Μέθοδος ερωτήματος χρήστη:  Μέθοδος xml προς μετασχηματισμό:  Οι τρεις λίστες που δημιουργούνται: 20
  21. 21. Βελτίωση Τεχνικών Επαναχρησιμοποίησης Κώδικα από Αποθήκες Λογισμικού με χρήση Τεχνικών Ανάπτυξης Λογισμικού Οδηγούμενης από Ελέγχους και Τεχνικών Μετασχηματισμού Κώδικα Transformer • Μετασχηματισμός παραμέτρων μεθόδου  Η μέθοδος του xml μετά από το 1ο βήμα μετασχηματισμού:  Οι τρεις λίστες μετά από το 1ο βήμα μετασχηματισμού: 21
  22. 22. Βελτίωση Τεχνικών Επαναχρησιμοποίησης Κώδικα από Αποθήκες Λογισμικού με χρήση Τεχνικών Ανάπτυξης Λογισμικού Οδηγούμενης από Ελέγχους και Τεχνικών Μετασχηματισμού Κώδικα Transformer • Μετασχηματισμός παραμέτρων μεθόδου  Η μέθοδος του xml μετά από το 2ο βήμα μετασχηματισμού:  Η μέθοδος του xml μετά από το 3ο βήμα μετασχηματισμού:  4ο βήμα μετασχηματισμού:  Μέθοδος ερωτήματος χρήστη:  Μέθοδος xml προς μετασχηματισμό:  H μέθοδος του xml μετά το μετασχηματισμό: 22
  23. 23. Βελτίωση Τεχνικών Επαναχρησιμοποίησης Κώδικα από Αποθήκες Λογισμικού με χρήση Τεχνικών Ανάπτυξης Λογισμικού Οδηγούμενης από Ελέγχους και Τεχνικών Μετασχηματισμού Κώδικα Πειράματα Μετρικές αξιολόγησης αποτελεσμάτων 23 Α/Α Τύπος 1 𝑪 = 𝐶𝑜𝑚𝑝𝑖𝑙𝑎𝑏𝑙𝑒 = 1 𝑁 #𝑐𝑜𝑚𝑝𝑖𝑙𝑎𝑏𝑙𝑒 2 % 𝑪 = 1 𝑁 #𝑐𝑜𝑚𝑝𝑖𝑙𝑎𝑏𝑙𝑒 𝑀 ∗ 100% = 𝐶 𝑀 ∗ 100% 3 𝑷 = 𝑃𝑎𝑠𝑠𝑒𝑑 = 1 𝑁 #𝑝𝑎𝑠𝑠𝑒𝑑 4 % 𝑷 = 1 𝑁 #𝑝𝑎𝑠𝑠𝑒𝑑 𝑀 ∗ 100% = 𝑃 𝑀 ∗ 100% 5 % 𝑷 𝑪 = % 𝑃 % 𝐶 ∗ 100% 6 % 𝑷 𝑪 = 1 𝑁 #𝑝𝑎𝑠𝑠𝑒𝑑 #𝑐𝑜𝑚𝑝𝑖𝑙𝑎𝑏𝑙𝑒 ∗ 100%
  24. 24. Βελτίωση Τεχνικών Επαναχρησιμοποίησης Κώδικα από Αποθήκες Λογισμικού με χρήση Τεχνικών Ανάπτυξης Λογισμικού Οδηγούμενης από Ελέγχους και Τεχνικών Μετασχηματισμού Κώδικα Πειράματα Πείραμα 1o – Σύγκριση με τη Mantissa 24
  25. 25. Βελτίωση Τεχνικών Επαναχρησιμοποίησης Κώδικα από Αποθήκες Λογισμικού με χρήση Τεχνικών Ανάπτυξης Λογισμικού Οδηγούμενης από Ελέγχους και Τεχνικών Μετασχηματισμού Κώδικα Πειράματα Πείραμα 1o – Σύγκριση με τη Mantissa 25
  26. 26. Βελτίωση Τεχνικών Επαναχρησιμοποίησης Κώδικα από Αποθήκες Λογισμικού με χρήση Τεχνικών Ανάπτυξης Λογισμικού Οδηγούμενης από Ελέγχους και Τεχνικών Μετασχηματισμού Κώδικα Πειράματα Πείραμα 2o – Σύγκριση με το FAST 26
  27. 27. Βελτίωση Τεχνικών Επαναχρησιμοποίησης Κώδικα από Αποθήκες Λογισμικού με χρήση Τεχνικών Ανάπτυξης Λογισμικού Οδηγούμενης από Ελέγχους και Τεχνικών Μετασχηματισμού Κώδικα Πειράματα Πείραμα 3o – Σύγκριση με τον Code Conjurer 27
  28. 28. Βελτίωση Τεχνικών Επαναχρησιμοποίησης Κώδικα από Αποθήκες Λογισμικού με χρήση Τεχνικών Ανάπτυξης Λογισμικού Οδηγούμενης από Ελέγχους και Τεχνικών Μετασχηματισμού Κώδικα Πειράματα Πείραμα 4o – Σύγκριση με τη Mantissa σε δικό μας dataset 28
  29. 29. Βελτίωση Τεχνικών Επαναχρησιμοποίησης Κώδικα από Αποθήκες Λογισμικού με χρήση Τεχνικών Ανάπτυξης Λογισμικού Οδηγούμενης από Ελέγχους και Τεχνικών Μετασχηματισμού Κώδικα Πειράματα Πείραμα 4o – Σύγκριση με τη Mantissa σε δικό μας dataset 29
  30. 30. Βελτίωση Τεχνικών Επαναχρησιμοποίησης Κώδικα από Αποθήκες Λογισμικού με χρήση Τεχνικών Ανάπτυξης Λογισμικού Οδηγούμενης από Ελέγχους και Τεχνικών Μετασχηματισμού Κώδικα Πειράματα Πείραμα 4o – Σύγκριση με τη Mantissa σε δικό μας dataset 30
  31. 31. Βελτίωση Τεχνικών Επαναχρησιμοποίησης Κώδικα από Αποθήκες Λογισμικού με χρήση Τεχνικών Ανάπτυξης Λογισμικού Οδηγούμενης από Ελέγχους και Τεχνικών Μετασχηματισμού Κώδικα Συμπεράσματα – Μελλοντικές Επεκτάσεις • Πλεονεκτήματα του συστήματός μας  Μετατροπή του ερωτήματος του προγραμματιστή σε γλώσσα κατανοητή από τη CSE AGORA  Βαθμολογία και κατάταξη των αποτελεσμάτων που επιστρέφει η AGORA  Έλεγχος λειτουργικότητας των αποτελεσμάτων με χρήση των test cases του προγραμματιστή  Πραγματοποίηση μετασχηματισμών στα αποτελέσματα με σκοπό τη βελτίωσή τους και την αύξηση της πιθανότητας επιτυχίας στην εκτέλεση των test cases  Παρουσίαση αποτελεσμάτων στον προγραμματιστή • Πιθανές επεκτάσεις  Ενσωμάτωση και άλλων μηχανών αναζήτησης κώδικα  Dependency resolution  Αναζήτηση των κατάλληλων test cases για το ερώτημα 31
  32. 32. Βελτίωση Τεχνικών Επαναχρησιμοποίησης Κώδικα από Αποθήκες Λογισμικού με χρήση Τεχνικών Ανάπτυξης Λογισμικού Οδηγούμενης από Ελέγχους και Τεχνικών Μετασχηματισμού Κώδικα Ευχαριστώ για την προσοχή σας! Ερωτήσεις? 32

×