Successfully reported this slideshow.
Your SlideShare is downloading. ×

Aristotelis Mikropoulos

Aristotelis Mikropoulos

Download to read offline

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

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

More Related Content

More from ISSEL

Related Audiobooks

Free with a 30 day trial from Scribd

See all

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 Ευχαριστώ για την προσοχή σας Ερωτήσεις;

×