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.

Aristotelis Mikropoulos

44 views

Published on

Ανάλυση ποιότητας πηγαίου κώδικα σε πολυ-γλωσσικά έργα λογισμικού (multi-language software projects)

Published in: Education
  • Be the first to comment

  • Be the first to like this

Aristotelis Mikropoulos

  1. 1. Ανάλυση ποιότητας πηγαίου κώδικα σε πολυ-γλωσσικά έργα λογισμικού (multi-language software projects) ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ, ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ, ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ & ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ, ΤΟΜΕΑΣ ΗΛΕΚΤΡΟΝΙΚΗΣ & ΥΠΟΛΟΓΙΣΤΩΝ Εγαστήριο Επεξεργασίας Πληροφορίας και Υπολογισμών (ΕΠΥ) Ομάδα Ευφυών Συστημάτων και Τεχνολογίας Λογισμικού (ISSEL) Αριστοτέλης Μικρόπουλος, ΑΕΜ 6977 Επιβλέποντες: Συμεωνίδης Ανδρέας, Αναπληρωτής Καθηγητής Παπαμιχαήλ Μιχαήλ, Υποψήφιος Διδάκτωρ Φεβρουάριος 2019
  2. 2. Σκοπός της διπλωματικής εργασίας  Υλοποίηση ενοποιημένου συστήματος αξιολόγησης ποιότητας πολυγλωσσικού πηγαίου κώδικα  Χρήση ορισμένων έτοιμων εργαλείων  Αυτοματοποίηση  Σφαιρική, λεπτομερής παρουσίαση πληροφορίας  Αντιμετώπιση πολυγλωσσικού παράγοντα Φεβρουάριος 2019 Ανάλυση ποιότητας πηγαίου κώδικα σε πολυ-γλωσσικά έργα λογισμικού (multi-language software projects) 2
  3. 3. Γνώσεις που αποκτήθηκαν Φεβρουάριος 2019 Ανάλυση ποιότητας πηγαίου κώδικα σε πολυ-γλωσσικά έργα λογισμικού (multi-language software projects) 3  Στατική ανάλυση, μετρικές  Χρήση εργαλείων (SourceMeter, PMD, Pylint)  Software quality assurance  Βελτίωση γνώσεων Python  Σχεδιαστικές γνώσεις (Bootstrap, Templates)
  4. 4. Μεθοδολογία Φεβρουάριος 2019 Ανάλυση ποιότητας πηγαίου κώδικα σε πολυ-γλωσσικά έργα λογισμικού (multi-language software projects) 4  Python/Django, SQLite, HTML/CSS, JavaScript/jQuery/Bootstrap  Μεταφόρτωση/αποσυμπίεση πηγαίου κώδικα από GitHub  Εκτέλεση SourceMeter (+PMD/Pylint)  Εκτέλεση evaluator  Υπολογισμός & αποθήκευση μέσων όρων βαθμολογιών και υψηλότερα & χαμηλότερα βαθμολογημένων οντοτήτων  Αναλυτική παρουσίαση μετρικών/βαθμολογιών/παραβιάσεων κανόνων καλής συγγραφής, ανά οντότητα και συνολικά  Δήλωση διαγλωσσικών συνδέσμων & παρουσίαση μεταβολής μετρικών & βαθμολογιών
  5. 5. Αρχιτεκτονική Συστήματος Φεβρουάριος 2019 5 Ανάλυση ποιότητας πηγαίου κώδικα σε πολυ-γλωσσικά έργα λογισμικού (multi-language software projects)
  6. 6. Application Walkthrough  Κεντρική οθόνη  Αποτελέσματα ανά γλώσσα προγραμματισμού  Όνομα, γραμμές κώδικα, γλώσσες προγραμματισμού, βαθμολογία, πλήθος παραβιάσεων  Γράφημα βαθμολογίας έργου λογισμικού ανά κατηγορία μετρικών  Λίστα υψηλότερα και χαμηλότερα βαθμολογημένων πακέτων και κλάσεων, ανά κατηγορία  Λίστα πακέτων και κλάσεων Φεβρουάριος 2019 6 Ανάλυση ποιότητας πηγαίου κώδικα σε πολυ-γλωσσικά έργα λογισμικού (multi-language software projects)
  7. 7. Application Walkthrough Φεβρουάριος 2019 7 Ανάλυση ποιότητας πηγαίου κώδικα σε πολυ-γλωσσικά έργα λογισμικού (multi-language software projects)
  8. 8. Application Walkthrough Φεβρουάριος 2019 8 Ανάλυση ποιότητας πηγαίου κώδικα σε πολυ-γλωσσικά έργα λογισμικού (multi-language software projects)
  9. 9. Application Walkthrough  Λεπτομέρειες οντότητας  Λίστα μετρικών ανά κατηγορία (όνομα, τιμή, χαρακτηρισμός)  Λίστα υπο-οντοτήτων  Μενού πλοήγησης (σε οντότητες-γονείς & στην κεντρική οθόνη) Φεβρουάριος 2019 9 Ανάλυση ποιότητας πηγαίου κώδικα σε πολυ-γλωσσικά έργα λογισμικού (multi-language software projects)
  10. 10. Application Walkthrough Φεβρουάριος 2019 10 Ανάλυση ποιότητας πηγαίου κώδικα σε πολυ-γλωσσικά έργα λογισμικού (multi-language software projects)
  11. 11. Application Walkthrough  Παραβιάσεις κανόνων καλής συγγραφής  Πλήθος παραβιάσεων ανά κατηγορία  Λίστα αρχείων με παραβιάσεις  Εμφάνιση παραβίασης στον πηγαίο κώδικα Φεβρουάριος 2019 11 Ανάλυση ποιότητας πηγαίου κώδικα σε πολυ-γλωσσικά έργα λογισμικού (multi-language software projects)
  12. 12. Application Walkthrough Φεβρουάριος 2019 12 Ανάλυση ποιότητας πηγαίου κώδικα σε πολυ-γλωσσικά έργα λογισμικού (multi-language software projects)
  13. 13. Application Walkthrough Φεβρουάριος 2019 13 Ανάλυση ποιότητας πηγαίου κώδικα σε πολυ-γλωσσικά έργα λογισμικού (multi-language software projects)
  14. 14. Application Walkthrough  Διαγλωσσικές κλήσεις  Επιλογή “καλούσας” και “καλούμενης” μεθόδου  Αρχική και τροποποιημένη βαθμολογία κλάσης  Αρχικές και τροποποιημένες τιμές και βαθμολογίες μετρικών (κλάσης & μεθόδου) Φεβρουάριος 2019 14 Ανάλυση ποιότητας πηγαίου κώδικα σε πολυ-γλωσσικά έργα λογισμικού (multi-language software projects)
  15. 15. Application Walkthrough Φεβρουάριος 2019 15 Ανάλυση ποιότητας πηγαίου κώδικα σε πολυ-γλωσσικά έργα λογισμικού (multi-language software projects)
  16. 16. Application Walkthrough Φεβρουάριος 2019 16 Ανάλυση ποιότητας πηγαίου κώδικα σε πολυ-γλωσσικά έργα λογισμικού (multi-language software projects)
  17. 17. Αποτελέσματα ● Δείγμα 10 έργων λογισμικού ● Έργα διαφορετικού μεγέθους, από 235 – 139,331 γραμμές πηγαίου κώδικα ● Γραμμένα είτε σε Java, είτε σε Python, είτε σε συνδυασμό τους Φεβρουάριος 2019 17 Ανάλυση ποιότητας πηγαίου κώδικα σε πολυ-γλωσσικά έργα λογισμικού (multi-language software projects)
  18. 18. Αποτελέσματα Φεβρουάριος 2019 18 Ανάλυση ποιότητας πηγαίου κώδικα σε πολυ-γλωσσικά έργα λογισμικού (multi-language software projects) Όνομα έργου Γλώσσες προγραμμα τισμού Γραμμές πηγαίου κώδικα Βαθμολογία RBLemmatiz er Java 235 42% python-orc Java, Python 462 39% django- blawg Python 713 35% ASTExtracto r Java, Python 780 45% aes- everywhere Java, Python 1,109 45% AndroidDigit Classifier Java, Python 1,118 29% Serpent Java, Python 7,286 21% py4j Java, Python 29,041 36% log4j Java 59,780 48% knime- python Java, Python 139,331 37%
  19. 19. Αποτελέσματα Πειράματα: ● Χρόνος εκτέλεσης ● Χαμηλότερη & υψηλότερη βαθμολογία πακέτου ● Χαμηλότερη & υψηλότερη βαθμολογία κλάσης ● Πλήθος παραβιάσεων κανόνων καλής συγγραφής πηγαίου κώδικα Τα έργα λογισμικού αναγράφονται ταξινομημένα κατά αύξουσα τάξη, βάσει πλήθους γραμμών πηγαίου κώδικα Φεβρουάριος 2019 19 Ανάλυση ποιότητας πηγαίου κώδικα σε πολυ-γλωσσικά έργα λογισμικού (multi-language software projects)
  20. 20. Αποτελέσματα Φεβρουάριος 2019 20 Ανάλυση ποιότητας πηγαίου κώδικα σε πολυ-γλωσσικά έργα λογισμικού (multi-language software projects) Χρόνος εκτέλεσης (second): SourceMeter, evaluator, total
  21. 21. Αποτελέσματα Φεβρουάριος 2019 21 Ανάλυση ποιότητας πηγαίου κώδικα σε πολυ-γλωσσικά έργα λογισμικού (multi-language software projects) Χαμηλότερη & υψηλότερη βαθμολογία πακέτου
  22. 22. Αποτελέσματα Φεβρουάριος 2019 22 Ανάλυση ποιότητας πηγαίου κώδικα σε πολυ-γλωσσικά έργα λογισμικού (multi-language software projects) Χαμηλότερη & υψηλότερη βαθμολογία κλάσης
  23. 23. Αποτελέσματα Φεβρουάριος 2019 23 Ανάλυση ποιότητας πηγαίου κώδικα σε πολυ-γλωσσικά έργα λογισμικού (multi-language software projects) Πλήθος παραβιάσεων κανόνων καλής συγγραφής
  24. 24. Αποτελέσματα Φεβρουάριος 2019 24 Ανάλυση ποιότητας πηγαίου κώδικα σε πολυ-γλωσσικά έργα λογισμικού (multi-language software projects) Διαγλωσσικές κλήσεις Έργο λογισμικού Γλώσσα “από” Γλώσσα “προς” Μέθοδος “από” Μέθοδος “προς” Αρχική βαθμολογία Τελική βαθμολογία python-orc Java Python getNumber OfColumns next 40% 30% ASTExtract or Python Java parse_strin g visitNode 37% 45% aes- everywhere Python Java encrypt encode 44% 36% AndroidDigi tClassifier Python Java guess_type getPath 23% 20% py4j Java Python Cat add_finaliz er 26% 35% knime- python Java Python Serializer Values 53% 39%
  25. 25. Συμπεράσματα Φεβρουάριος 2019 Ανάλυση ποιότητας πηγαίου κώδικα σε πολυ-γλωσσικά έργα λογισμικού (multi-language software projects) 25 Το σύστημα που υλοποιήθηκε: ● Περιγράφει ποσοτικά ένα έργο λογισμικού (μετρικές, στατιστικά, παραβιάσεις κανόνων καλής συγγραφής) ● Αξιολογεί ποιοτικά το έργο, συνολικά και τμηματικά (βαθμολογίες) ● Δίνει σφαιρική εικόνα της ποιότητας του έργου λογισμικού ● Υποστηρίζει, καθοδηγούμενο από το χρήστη, την ανάλυση διαγλωσσικών συνδέσμων
  26. 26. Μελλοντική Εργασία Φεβρουάριος 2019 Ανάλυση ποιότητας πηγαίου κώδικα σε πολυ-γλωσσικά έργα λογισμικού (multi-language software projects) 26 ● Υποστήριξη περισσότερων γλωσσών προγραμματισμού ● Υποστήριξη περισσότερων εργαλείων στατικής ανάλυσης ● Αυτόματος εντοπισμός διαγλωσσικών συνδέσμων
  27. 27. Ευχαριστίες Φεβρουάριος 2019 Ανάλυση ποιότητας πηγαίου κώδικα σε πολυ-γλωσσικά έργα λογισμικού (multi-language software projects) 27 Ευχαριστώ θερμά  τους επιβλέποντες: ● κ. Συμεωνίδη Ανδρέα, Αναπληρωτή Καθηγητή ● κ. Παπαμιχαήλ Μιχαήλ, Υποψήφιο Διδάκτορα  την οικογένεια και τους φίλους μου
  28. 28. Φεβρουάριος 2019 Ανάλυση ποιότητας πηγαίου κώδικα σε πολυ-γλωσσικά έργα λογισμικού (multi-language software projects) 28 Ευχαριστώ για την προσοχή σας Ερωτήσεις;

×