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.

Χατζηελευθερίου Ειρήνη

86 views

Published on

Σχεδίαση και Ανάπτυξη Συστήματος
Βελτιστοποίησης Ποιότητας Πηγαίου
Κώδικα μέσω Τεχνικών Ανακατασκευής

Published in: Education
  • Be the first to comment

  • Be the first to like this

Χατζηελευθερίου Ειρήνη

  1. 1. Σχεδίαση και Ανάπτυξη Συστήματος Βελτιστοποίησης Ποιότητας Πηγαίου Κώδικα με χρήση Τεχνικών Ανακατασκευής Δ Ε Ειρήνη Χατζηελευθερίου ΑΕΜ: 7551 Α Π Θ Πολυτεχνική Σχολή Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Επιβλέπων: Ανδρέας Συμεωνίδης, Επίκουρος Καθηγητής Συνεπιβλέπων: Μιχαήλ Παπαμιχαήλ, Υποψήφιος Διδάκτορας 29 Ιουνίου 2017
  2. 2. Περιεχόμενα 1 Σκοπός Διπλωματικής Εργασίας 2 Μεθοδολογία 3 Σύστημα Βελτίωσης Ποιότητας Κώδικα Σύστημα Ανάλυσης Σύστημα Συστάσεων 4 Αποτελέσματα Επίδραση Προτύπων Σχεδίασης Εντοπισμός Σχεδιαστικών Ελαττωμάτων Σύσταση Ρόλων 5 Συμπεράσματα 6 Μελλοντικές Επεκτάσεις
  3. 3. 3/26 Σχεδίαση και Ανάπτυξη Συστήματος Βελτιστοποίησης Ποιότητας Πηγαίου Κώδικα με χρήση Τεχνικών Ανακατασκευής Σκοπός Διπλωματικής Εργασίας Ποιότητα Ολοένα μεγαλύτερα και πιο πολύπλοκα έργα λογισμικού Μοντελοποίηση Ποιότητας σε μια σειρά από χαρακτηριστικά Σύνδεση χαρακτηριστικών ποιότητας με μετρικές Έργο λογισμικού elasticsearch 127 εκδόσεις 56.000.000 γραμμές κώδικα 618.000 κλάσεις
  4. 4. 4/26 Σχεδίαση και Ανάπτυξη Συστήματος Βελτιστοποίησης Ποιότητας Πηγαίου Κώδικα με χρήση Τεχνικών Ανακατασκευής Σκοπός Διπλωματικής Εργασίας Σκοπός Διπλωματικής Εργασίας Βελτίωση Ποιότητας Κώδικα Τεχνικές Ανακατασκευής για αναβάθμιση της εσωτερικής δομής Ποσοτικοποίηση μέσω Μετρικών Ποιότητας Κώδικα Στατική Ανάλυση για εντοπισμό κακών πρακτικών Εφαρμογή Προτύπων Σχεδίασης και αποφυγή Σχεδιαστικών Ελαττωμάτων
  5. 5. 5/26 Σχεδίαση και Ανάπτυξη Συστήματος Βελτιστοποίησης Ποιότητας Πηγαίου Κώδικα με χρήση Τεχνικών Ανακατασκευής Μεθοδολογία Μεθοδολογία Στατική ανάλυση του έργου λογισμικού elasticsearch σε όλο τον κύκλο ζωής του (lifecycle analysis) Υπολογισμός μετρικών και εντοπισμός προτύπων σχεδίασης Εκτίμηση διαφοράς μετρικών κώδικα και προτύπων σχεδίασης σε διαδοχικά ζεύγη εκδόσεων Κατηγοριοποίηση των περιπτώσεων με μεταβολή σε πρότυπο σχεδίασης ανά ρόλο Καθορισμός επίδρασης κάθε ρόλου στη διαφοροποίηση των μετρικών
  6. 6. 6/26 Σχεδίαση και Ανάπτυξη Συστήματος Βελτιστοποίησης Ποιότητας Πηγαίου Κώδικα με χρήση Τεχνικών Ανακατασκευής Σύστημα Βελτίωσης Ποιότητας Κώδικα Σύστημα Βελτίωσης Ποιότητας Κώδικα #1 Σύστημα Ανάλυσης ..
  7. 7. 6/26 Σχεδίαση και Ανάπτυξη Συστήματος Βελτιστοποίησης Ποιότητας Πηγαίου Κώδικα με χρήση Τεχνικών Ανακατασκευής Σύστημα Βελτίωσης Ποιότητας Κώδικα Σύστημα Βελτίωσης Ποιότητας Κώδικα #1 Σύστημα Ανάλυσης ..
  8. 8. 6/26 Σχεδίαση και Ανάπτυξη Συστήματος Βελτιστοποίησης Ποιότητας Πηγαίου Κώδικα με χρήση Τεχνικών Ανακατασκευής Σύστημα Βελτίωσης Ποιότητας Κώδικα Σύστημα Βελτίωσης Ποιότητας Κώδικα #1 Σύστημα Ανάλυσης ..
  9. 9. 6/26 Σχεδίαση και Ανάπτυξη Συστήματος Βελτιστοποίησης Ποιότητας Πηγαίου Κώδικα με χρήση Τεχνικών Ανακατασκευής Σύστημα Βελτίωσης Ποιότητας Κώδικα Σύστημα Βελτίωσης Ποιότητας Κώδικα #1 Σύστημα Ανάλυσης ..
  10. 10. 7/26 Σχεδίαση και Ανάπτυξη Συστήματος Βελτιστοποίησης Ποιότητας Πηγαίου Κώδικα με χρήση Τεχνικών Ανακατασκευής Σύστημα Βελτίωσης Ποιότητας Κώδικα Σύστημα Βελτίωσης Ποιότητας Κώδικα #2 Σύστημα Συστάσεων
  11. 11. 8/26 Σχεδίαση και Ανάπτυξη Συστήματος Βελτιστοποίησης Ποιότητας Πηγαίου Κώδικα με χρήση Τεχνικών Ανακατασκευής Σύστημα Βελτίωσης Ποιότητας Κώδικα Σύστημα Ανάλυσης Περιεχόμενα 1 Σκοπός Διπλωματικής Εργασίας 2 Μεθοδολογία 3 Σύστημα Βελτίωσης Ποιότητας Κώδικα Σύστημα Ανάλυσης Σύστημα Συστάσεων 4 Αποτελέσματα Επίδραση Προτύπων Σχεδίασης Εντοπισμός Σχεδιαστικών Ελαττωμάτων Σύσταση Ρόλων 5 Συμπεράσματα 6 Μελλοντικές Επεκτάσεις
  12. 12. 9/26 Σχεδίαση και Ανάπτυξη Συστήματος Βελτιστοποίησης Ποιότητας Πηγαίου Κώδικα με χρήση Τεχνικών Ανακατασκευής Σύστημα Βελτίωσης Ποιότητας Κώδικα Σύστημα Ανάλυσης Σύστημα Ανάλυσης #1.1 Αναλυτής #1
  13. 13. 10/26 Σχεδίαση και Ανάπτυξη Συστήματος Βελτιστοποίησης Ποιότητας Πηγαίου Κώδικα με χρήση Τεχνικών Ανακατασκευής Σύστημα Βελτίωσης Ποιότητας Κώδικα Σύστημα Ανάλυσης Σύστημα Ανάλυσης #1.2 Αναλυτής #2 Παράδειγμα Προτύπου Σχεδίασης Παράδειγμα Σχεδιαστικού Ελαττώματος (Anti-Pattern)
  14. 14. 11/26 Σχεδίαση και Ανάπτυξη Συστήματος Βελτιστοποίησης Ποιότητας Πηγαίου Κώδικα με χρήση Τεχνικών Ανακατασκευής Σύστημα Βελτίωσης Ποιότητας Κώδικα Σύστημα Ανάλυσης Σύστημα Ανάλυσης #2.1 Προ-επεξεργαστής #1 Σύγκριση σε διαδοχικά ζεύγη εκδόσεων λογισμικού για κάθε κλάση: Μετρικών ποιότητας κώδικα Προτύπων σχεδίασης Σχεδιαστικών ελαττωμάτων
  15. 15. 12/26 Σχεδίαση και Ανάπτυξη Συστήματος Βελτιστοποίησης Ποιότητας Πηγαίου Κώδικα με χρήση Τεχνικών Ανακατασκευής Σύστημα Βελτίωσης Ποιότητας Κώδικα Σύστημα Ανάλυσης Σύστημα Ανάλυσης #2.2 Προ-επεξεργαστής #2 Παράδειγμα εξόδου του Προ-επεξεργαστή
  16. 16. 12/26 Σχεδίαση και Ανάπτυξη Συστήματος Βελτιστοποίησης Ποιότητας Πηγαίου Κώδικα με χρήση Τεχνικών Ανακατασκευής Σύστημα Βελτίωσης Ποιότητας Κώδικα Σύστημα Ανάλυσης Σύστημα Ανάλυσης #2.2 Προ-επεξεργαστής #2 Παράδειγμα εξόδου του Προ-επεξεργαστή .. Μετρικές Πακέτου .
  17. 17. 12/26 Σχεδίαση και Ανάπτυξη Συστήματος Βελτιστοποίησης Ποιότητας Πηγαίου Κώδικα με χρήση Τεχνικών Ανακατασκευής Σύστημα Βελτίωσης Ποιότητας Κώδικα Σύστημα Ανάλυσης Σύστημα Ανάλυσης #2.2 Προ-επεξεργαστής #2 Παράδειγμα εξόδου του Προ-επεξεργαστή .. Πρότυπα Πακέτου .
  18. 18. 12/26 Σχεδίαση και Ανάπτυξη Συστήματος Βελτιστοποίησης Ποιότητας Πηγαίου Κώδικα με χρήση Τεχνικών Ανακατασκευής Σύστημα Βελτίωσης Ποιότητας Κώδικα Σύστημα Ανάλυσης Σύστημα Ανάλυσης #2.2 Προ-επεξεργαστής #2 Παράδειγμα εξόδου του Προ-επεξεργαστή .. Μετρικές Κλάσης .
  19. 19. 12/26 Σχεδίαση και Ανάπτυξη Συστήματος Βελτιστοποίησης Ποιότητας Πηγαίου Κώδικα με χρήση Τεχνικών Ανακατασκευής Σύστημα Βελτίωσης Ποιότητας Κώδικα Σύστημα Ανάλυσης Σύστημα Ανάλυσης #2.2 Προ-επεξεργαστής #2 Παράδειγμα εξόδου του Προ-επεξεργαστή ..Πρότυπα Κλάσης.
  20. 20. 13/26 Σχεδίαση και Ανάπτυξη Συστήματος Βελτιστοποίησης Ποιότητας Πηγαίου Κώδικα με χρήση Τεχνικών Ανακατασκευής Σύστημα Βελτίωσης Ποιότητας Κώδικα Σύστημα Ανάλυσης Σύστημα Ανάλυσης #3.1 Κατασκευαστής Προφίλ #1 Χρήση στοιχείων από κοινές κλάσεις μεταξύ εκδόσεων λογισμικού Εντοπισμός κλάσεων που υφίστανται μεταβολή σε Πρότυπο Σχεδίασης Σχεδιαστικά Ελαττώματα Κατηγοριοποίηση των κλάσεων ανά ρόλο
  21. 21. 14/26 Σχεδίαση και Ανάπτυξη Συστήματος Βελτιστοποίησης Ποιότητας Πηγαίου Κώδικα με χρήση Τεχνικών Ανακατασκευής Σύστημα Βελτίωσης Ποιότητας Κώδικα Σύστημα Ανάλυσης Σύστημα Ανάλυσης #3.2 Κατασκευαστής Προφίλ #2 Παράδειγμα εξόδου του Κατασκευαστής Προφίλ για Πρότυπα Σχεδίασης ..
  22. 22. 15/26 Σχεδίαση και Ανάπτυξη Συστήματος Βελτιστοποίησης Ποιότητας Πηγαίου Κώδικα με χρήση Τεχνικών Ανακατασκευής Σύστημα Βελτίωσης Ποιότητας Κώδικα Σύστημα Συστάσεων Περιεχόμενα 1 Σκοπός Διπλωματικής Εργασίας 2 Μεθοδολογία 3 Σύστημα Βελτίωσης Ποιότητας Κώδικα Σύστημα Ανάλυσης Σύστημα Συστάσεων 4 Αποτελέσματα Επίδραση Προτύπων Σχεδίασης Εντοπισμός Σχεδιαστικών Ελαττωμάτων Σύσταση Ρόλων 5 Συμπεράσματα 6 Μελλοντικές Επεκτάσεις
  23. 23. 16/26 Σχεδίαση και Ανάπτυξη Συστήματος Βελτιστοποίησης Ποιότητας Πηγαίου Κώδικα με χρήση Τεχνικών Ανακατασκευής Σύστημα Βελτίωσης Ποιότητας Κώδικα Σύστημα Συστάσεων Σύστημα Συστάσεων #1 Σύσταση Ρόλου #1 Μοντέλο Προτύπου Σχεδίασης Command Μοντέλα Υπο-Προτύπων Command
  24. 24. 17/26 Σχεδίαση και Ανάπτυξη Συστήματος Βελτιστοποίησης Ποιότητας Πηγαίου Κώδικα με χρήση Τεχνικών Ανακατασκευής Σύστημα Βελτίωσης Ποιότητας Κώδικα Σύστημα Συστάσεων Σύστημα Συστάσεων #2 Σύσταση Ρόλου #2 Στιγμιότυπα Υπο-Προτύπου Command Α Στιγμιότυπα Υπο-Προτύπου Command B Στιγμιότυπα Υπο-Προτύπου Command C Στιγμιότυπα Υπο-Προτύπου Command D
  25. 25. 18/26 Σχεδίαση και Ανάπτυξη Συστήματος Βελτιστοποίησης Ποιότητας Πηγαίου Κώδικα με χρήση Τεχνικών Ανακατασκευής Αποτελέσματα Επίδραση Προτύπων Σχεδίασης Περιεχόμενα 1 Σκοπός Διπλωματικής Εργασίας 2 Μεθοδολογία 3 Σύστημα Βελτίωσης Ποιότητας Κώδικα Σύστημα Ανάλυσης Σύστημα Συστάσεων 4 Αποτελέσματα Επίδραση Προτύπων Σχεδίασης Εντοπισμός Σχεδιαστικών Ελαττωμάτων Σύσταση Ρόλων 5 Συμπεράσματα 6 Μελλοντικές Επεκτάσεις
  26. 26. 19/26 Σχεδίαση και Ανάπτυξη Συστήματος Βελτιστοποίησης Ποιότητας Πηγαίου Κώδικα με χρήση Τεχνικών Ανακατασκευής Αποτελέσματα Επίδραση Προτύπων Σχεδίασης Επίδραση Προτύπων Σχεδίασης Επίδραση Abstract Factory Abstract Factory Roles Abstract Abstract Concrete Product Factory Product Factory Cohesion metrics LCOM5 - 0 - + Complexity metrics NL 0 0 - 0 NLE 0 0 - 0 WMC 0 0 - 0 Coupling metrics CBO - 0 + + CBOI 0 0 0 + NII + - 0 + NOI 0 0 + 0 RFC 0 0 - 0 Clone metrics CC 0 0 + 0 CCL 0 0 - 0 CCO 0 0 - 0
  27. 27. 20/26 Σχεδίαση και Ανάπτυξη Συστήματος Βελτιστοποίησης Ποιότητας Πηγαίου Κώδικα με χρήση Τεχνικών Ανακατασκευής Αποτελέσματα Εντοπισμός Σχεδιαστικών Ελαττωμάτων Περιεχόμενα 1 Σκοπός Διπλωματικής Εργασίας 2 Μεθοδολογία 3 Σύστημα Βελτίωσης Ποιότητας Κώδικα Σύστημα Ανάλυσης Σύστημα Συστάσεων 4 Αποτελέσματα Επίδραση Προτύπων Σχεδίασης Εντοπισμός Σχεδιαστικών Ελαττωμάτων Σύσταση Ρόλων 5 Συμπεράσματα 6 Μελλοντικές Επεκτάσεις
  28. 28. 21/26 Σχεδίαση και Ανάπτυξη Συστήματος Βελτιστοποίησης Ποιότητας Πηγαίου Κώδικα με χρήση Τεχνικών Ανακατασκευής Αποτελέσματα Εντοπισμός Σχεδιαστικών Ελαττωμάτων Εντοπισμός Σχεδιαστικών Ελαττωμάτων Επίδραση Έλλειψης Law of Demeter Law of Demeter Roles Base Friend Stranger Cohesion metrics LCOM5 - 0 0 Complexity metrics NL - + - NLE - + - WMC - + - Coupling metrics CBO - + - CBOI + - - NII - - - NOI - + - RFC - + - Clone metrics CC - 0 - CCL - - - CCO - - -
  29. 29. 22/26 Σχεδίαση και Ανάπτυξη Συστήματος Βελτιστοποίησης Ποιότητας Πηγαίου Κώδικα με χρήση Τεχνικών Ανακατασκευής Αποτελέσματα Σύσταση Ρόλων Περιεχόμενα 1 Σκοπός Διπλωματικής Εργασίας 2 Μεθοδολογία 3 Σύστημα Βελτίωσης Ποιότητας Κώδικα Σύστημα Ανάλυσης Σύστημα Συστάσεων 4 Αποτελέσματα Επίδραση Προτύπων Σχεδίασης Εντοπισμός Σχεδιαστικών Ελαττωμάτων Σύσταση Ρόλων 5 Συμπεράσματα 6 Μελλοντικές Επεκτάσεις
  30. 30. 23/26 Σχεδίαση και Ανάπτυξη Συστήματος Βελτιστοποίησης Ποιότητας Πηγαίου Κώδικα με χρήση Τεχνικών Ανακατασκευής Αποτελέσματα Σύσταση Ρόλων Σύσταση Ρόλων Σύσταση Ρόλων για Πρότυπο Bridge Ρόλος Πρωτότυπο Σύσταση Αντιστοιχία Refined Abstraction LogitechRemoteControl LogitechRemoteControl ✓ Abstraction AbstractRemoteControl AbstractRemoteControl ✓ Concrete Implementor SamsungTV, SonyTV - Implementor ITV ITV ✓
  31. 31. 24/26 Σχεδίαση και Ανάπτυξη Συστήματος Βελτιστοποίησης Ποιότητας Πηγαίου Κώδικα με χρήση Τεχνικών Ανακατασκευής Συμπεράσματα Συμπεράσματα Βελτιστοποίηση μετρικών ποιότητας με χρήση τεχνικών ανακατασκευής Η εφαρμογή προτύπων σχεδίασης μπορεί να χρησιμοποιηθεί για την βελτιστοποίηση χαρακτηριστικών ποιότητας Κάθε πρότυπο και κάθε ρόλος έχει διαφορετικό αντίκτυπο στις μετρικές στατικής ανάλυσης Θετική επιρροή της έλλειψης σχεδιαστικών ελαττωμάτων σε μετρικές κώδικα
  32. 32. 25/26 Σχεδίαση και Ανάπτυξη Συστήματος Βελτιστοποίησης Ποιότητας Πηγαίου Κώδικα με χρήση Τεχνικών Ανακατασκευής Μελλοντικές Επεκτάσεις Μελλοντικές Επεκτάσεις Υποστήριξη περισσότερων προτύπων σχεδίασης Μοντελοποίηση επιπλέον σχεδιαστικών ελαττωμάτων Υπολογισμός μετρικών κώδικα εκτός των υπαρχόντων Ανάλυση του κώδικα με στόχο την μοντελοποίηση των αλλαγών που καθιστούν εφικτή τη συμμετοχή μιας κλάσης σε ένα πρότυπο σχεδίασης
  33. 33. 26/26 Σχεδίαση και Ανάπτυξη Συστήματος Βελτιστοποίησης Ποιότητας Πηγαίου Κώδικα με χρήση Τεχνικών Ανακατασκευής Μελλοντικές Επεκτάσεις Ευχαριστώ για την προσοχή σας!

×