1. Σχεδίαση και Ανάπτυξη Συστήματος
Βελτιστοποίησης Ποιότητας Πηγαίου Κώδικα
με χρήση Τεχνικών Ανακατασκευής
Δ Ε
Ειρήνη Χατζηελευθερίου
ΑΕΜ: 7551
Α Π Θ
Πολυτεχνική Σχολή
Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών
Επιβλέπων: Ανδρέας Συμεωνίδης, Επίκουρος Καθηγητής
Συνεπιβλέπων: Μιχαήλ Παπαμιχαήλ, Υποψήφιος Διδάκτορας
29 Ιουνίου 2017
3. 3/26
Σχεδίαση και Ανάπτυξη Συστήματος Βελτιστοποίησης Ποιότητας Πηγαίου Κώδικα με χρήση Τεχνικών Ανακατασκευής
Σκοπός Διπλωματικής Εργασίας
Ποιότητα
Ολοένα μεγαλύτερα και πιο πολύπλοκα έργα λογισμικού
Μοντελοποίηση Ποιότητας σε μια σειρά από χαρακτηριστικά
Σύνδεση χαρακτηριστικών ποιότητας με μετρικές
Έργο λογισμικού elasticsearch
127 εκδόσεις
56.000.000 γραμμές κώδικα
618.000 κλάσεις
4. 4/26
Σχεδίαση και Ανάπτυξη Συστήματος Βελτιστοποίησης Ποιότητας Πηγαίου Κώδικα με χρήση Τεχνικών Ανακατασκευής
Σκοπός Διπλωματικής Εργασίας
Σκοπός Διπλωματικής Εργασίας
Βελτίωση Ποιότητας Κώδικα
Τεχνικές Ανακατασκευής για αναβάθμιση της εσωτερικής δομής
Ποσοτικοποίηση μέσω Μετρικών Ποιότητας Κώδικα
Στατική Ανάλυση για εντοπισμό κακών πρακτικών
Εφαρμογή Προτύπων Σχεδίασης και αποφυγή Σχεδιαστικών
Ελαττωμάτων
5. 5/26
Σχεδίαση και Ανάπτυξη Συστήματος Βελτιστοποίησης Ποιότητας Πηγαίου Κώδικα με χρήση Τεχνικών Ανακατασκευής
Μεθοδολογία
Μεθοδολογία
Στατική ανάλυση του έργου λογισμικού elasticsearch σε όλο τον
κύκλο ζωής του (lifecycle analysis)
Υπολογισμός μετρικών και εντοπισμός προτύπων σχεδίασης
Εκτίμηση διαφοράς μετρικών κώδικα και προτύπων σχεδίασης
σε διαδοχικά ζεύγη εκδόσεων
Κατηγοριοποίηση των περιπτώσεων με μεταβολή σε πρότυπο
σχεδίασης ανά ρόλο
Καθορισμός επίδρασης κάθε ρόλου στη διαφοροποίηση των
μετρικών
6. 6/26
Σχεδίαση και Ανάπτυξη Συστήματος Βελτιστοποίησης Ποιότητας Πηγαίου Κώδικα με χρήση Τεχνικών Ανακατασκευής
Σύστημα Βελτίωσης Ποιότητας Κώδικα
Σύστημα Βελτίωσης Ποιότητας Κώδικα #1
Σύστημα Ανάλυσης
..
7. 6/26
Σχεδίαση και Ανάπτυξη Συστήματος Βελτιστοποίησης Ποιότητας Πηγαίου Κώδικα με χρήση Τεχνικών Ανακατασκευής
Σύστημα Βελτίωσης Ποιότητας Κώδικα
Σύστημα Βελτίωσης Ποιότητας Κώδικα #1
Σύστημα Ανάλυσης
..
8. 6/26
Σχεδίαση και Ανάπτυξη Συστήματος Βελτιστοποίησης Ποιότητας Πηγαίου Κώδικα με χρήση Τεχνικών Ανακατασκευής
Σύστημα Βελτίωσης Ποιότητας Κώδικα
Σύστημα Βελτίωσης Ποιότητας Κώδικα #1
Σύστημα Ανάλυσης
..
9. 6/26
Σχεδίαση και Ανάπτυξη Συστήματος Βελτιστοποίησης Ποιότητας Πηγαίου Κώδικα με χρήση Τεχνικών Ανακατασκευής
Σύστημα Βελτίωσης Ποιότητας Κώδικα
Σύστημα Βελτίωσης Ποιότητας Κώδικα #1
Σύστημα Ανάλυσης
..
10. 7/26
Σχεδίαση και Ανάπτυξη Συστήματος Βελτιστοποίησης Ποιότητας Πηγαίου Κώδικα με χρήση Τεχνικών Ανακατασκευής
Σύστημα Βελτίωσης Ποιότητας Κώδικα
Σύστημα Βελτίωσης Ποιότητας Κώδικα #2
Σύστημα Συστάσεων
11. 8/26
Σχεδίαση και Ανάπτυξη Συστήματος Βελτιστοποίησης Ποιότητας Πηγαίου Κώδικα με χρήση Τεχνικών Ανακατασκευής
Σύστημα Βελτίωσης Ποιότητας Κώδικα
Σύστημα Ανάλυσης
Περιεχόμενα
1 Σκοπός Διπλωματικής Εργασίας
2 Μεθοδολογία
3 Σύστημα Βελτίωσης Ποιότητας Κώδικα
Σύστημα Ανάλυσης
Σύστημα Συστάσεων
4 Αποτελέσματα
Επίδραση Προτύπων Σχεδίασης
Εντοπισμός Σχεδιαστικών Ελαττωμάτων
Σύσταση Ρόλων
5 Συμπεράσματα
6 Μελλοντικές Επεκτάσεις
12. 9/26
Σχεδίαση και Ανάπτυξη Συστήματος Βελτιστοποίησης Ποιότητας Πηγαίου Κώδικα με χρήση Τεχνικών Ανακατασκευής
Σύστημα Βελτίωσης Ποιότητας Κώδικα
Σύστημα Ανάλυσης
Σύστημα Ανάλυσης #1.1
Αναλυτής #1
13. 10/26
Σχεδίαση και Ανάπτυξη Συστήματος Βελτιστοποίησης Ποιότητας Πηγαίου Κώδικα με χρήση Τεχνικών Ανακατασκευής
Σύστημα Βελτίωσης Ποιότητας Κώδικα
Σύστημα Ανάλυσης
Σύστημα Ανάλυσης #1.2
Αναλυτής #2
Παράδειγμα Προτύπου
Σχεδίασης Παράδειγμα Σχεδιαστικού
Ελαττώματος (Anti-Pattern)
14. 11/26
Σχεδίαση και Ανάπτυξη Συστήματος Βελτιστοποίησης Ποιότητας Πηγαίου Κώδικα με χρήση Τεχνικών Ανακατασκευής
Σύστημα Βελτίωσης Ποιότητας Κώδικα
Σύστημα Ανάλυσης
Σύστημα Ανάλυσης #2.1
Προ-επεξεργαστής #1
Σύγκριση σε διαδοχικά ζεύγη εκδόσεων λογισμικού για κάθε κλάση:
Μετρικών ποιότητας κώδικα
Προτύπων σχεδίασης
Σχεδιαστικών ελαττωμάτων
15. 12/26
Σχεδίαση και Ανάπτυξη Συστήματος Βελτιστοποίησης Ποιότητας Πηγαίου Κώδικα με χρήση Τεχνικών Ανακατασκευής
Σύστημα Βελτίωσης Ποιότητας Κώδικα
Σύστημα Ανάλυσης
Σύστημα Ανάλυσης #2.2
Προ-επεξεργαστής #2
Παράδειγμα εξόδου του Προ-επεξεργαστή
16. 12/26
Σχεδίαση και Ανάπτυξη Συστήματος Βελτιστοποίησης Ποιότητας Πηγαίου Κώδικα με χρήση Τεχνικών Ανακατασκευής
Σύστημα Βελτίωσης Ποιότητας Κώδικα
Σύστημα Ανάλυσης
Σύστημα Ανάλυσης #2.2
Προ-επεξεργαστής #2
Παράδειγμα εξόδου του Προ-επεξεργαστή
..
Μετρικές Πακέτου
.
17. 12/26
Σχεδίαση και Ανάπτυξη Συστήματος Βελτιστοποίησης Ποιότητας Πηγαίου Κώδικα με χρήση Τεχνικών Ανακατασκευής
Σύστημα Βελτίωσης Ποιότητας Κώδικα
Σύστημα Ανάλυσης
Σύστημα Ανάλυσης #2.2
Προ-επεξεργαστής #2
Παράδειγμα εξόδου του Προ-επεξεργαστή
..
Πρότυπα Πακέτου
.
18. 12/26
Σχεδίαση και Ανάπτυξη Συστήματος Βελτιστοποίησης Ποιότητας Πηγαίου Κώδικα με χρήση Τεχνικών Ανακατασκευής
Σύστημα Βελτίωσης Ποιότητας Κώδικα
Σύστημα Ανάλυσης
Σύστημα Ανάλυσης #2.2
Προ-επεξεργαστής #2
Παράδειγμα εξόδου του Προ-επεξεργαστή
..
Μετρικές Κλάσης
.
19. 12/26
Σχεδίαση και Ανάπτυξη Συστήματος Βελτιστοποίησης Ποιότητας Πηγαίου Κώδικα με χρήση Τεχνικών Ανακατασκευής
Σύστημα Βελτίωσης Ποιότητας Κώδικα
Σύστημα Ανάλυσης
Σύστημα Ανάλυσης #2.2
Προ-επεξεργαστής #2
Παράδειγμα εξόδου του Προ-επεξεργαστή
..Πρότυπα Κλάσης.
20. 13/26
Σχεδίαση και Ανάπτυξη Συστήματος Βελτιστοποίησης Ποιότητας Πηγαίου Κώδικα με χρήση Τεχνικών Ανακατασκευής
Σύστημα Βελτίωσης Ποιότητας Κώδικα
Σύστημα Ανάλυσης
Σύστημα Ανάλυσης #3.1
Κατασκευαστής Προφίλ #1
Χρήση στοιχείων από κοινές κλάσεις μεταξύ εκδόσεων
λογισμικού
Εντοπισμός κλάσεων που υφίστανται μεταβολή σε
Πρότυπο Σχεδίασης
Σχεδιαστικά Ελαττώματα
Κατηγοριοποίηση των κλάσεων ανά ρόλο
21. 14/26
Σχεδίαση και Ανάπτυξη Συστήματος Βελτιστοποίησης Ποιότητας Πηγαίου Κώδικα με χρήση Τεχνικών Ανακατασκευής
Σύστημα Βελτίωσης Ποιότητας Κώδικα
Σύστημα Ανάλυσης
Σύστημα Ανάλυσης #3.2
Κατασκευαστής Προφίλ #2
Παράδειγμα εξόδου του Κατασκευαστής Προφίλ για Πρότυπα
Σχεδίασης
..
22. 15/26
Σχεδίαση και Ανάπτυξη Συστήματος Βελτιστοποίησης Ποιότητας Πηγαίου Κώδικα με χρήση Τεχνικών Ανακατασκευής
Σύστημα Βελτίωσης Ποιότητας Κώδικα
Σύστημα Συστάσεων
Περιεχόμενα
1 Σκοπός Διπλωματικής Εργασίας
2 Μεθοδολογία
3 Σύστημα Βελτίωσης Ποιότητας Κώδικα
Σύστημα Ανάλυσης
Σύστημα Συστάσεων
4 Αποτελέσματα
Επίδραση Προτύπων Σχεδίασης
Εντοπισμός Σχεδιαστικών Ελαττωμάτων
Σύσταση Ρόλων
5 Συμπεράσματα
6 Μελλοντικές Επεκτάσεις
23. 16/26
Σχεδίαση και Ανάπτυξη Συστήματος Βελτιστοποίησης Ποιότητας Πηγαίου Κώδικα με χρήση Τεχνικών Ανακατασκευής
Σύστημα Βελτίωσης Ποιότητας Κώδικα
Σύστημα Συστάσεων
Σύστημα Συστάσεων #1
Σύσταση Ρόλου #1
Μοντέλο Προτύπου Σχεδίασης
Command
Μοντέλα Υπο-Προτύπων
Command
24. 17/26
Σχεδίαση και Ανάπτυξη Συστήματος Βελτιστοποίησης Ποιότητας Πηγαίου Κώδικα με χρήση Τεχνικών Ανακατασκευής
Σύστημα Βελτίωσης Ποιότητας Κώδικα
Σύστημα Συστάσεων
Σύστημα Συστάσεων #2
Σύσταση Ρόλου #2
Στιγμιότυπα Υπο-Προτύπου
Command Α
Στιγμιότυπα Υπο-Προτύπου
Command B
Στιγμιότυπα Υπο-Προτύπου
Command C
Στιγμιότυπα Υπο-Προτύπου
Command D
25. 18/26
Σχεδίαση και Ανάπτυξη Συστήματος Βελτιστοποίησης Ποιότητας Πηγαίου Κώδικα με χρήση Τεχνικών Ανακατασκευής
Αποτελέσματα
Επίδραση Προτύπων Σχεδίασης
Περιεχόμενα
1 Σκοπός Διπλωματικής Εργασίας
2 Μεθοδολογία
3 Σύστημα Βελτίωσης Ποιότητας Κώδικα
Σύστημα Ανάλυσης
Σύστημα Συστάσεων
4 Αποτελέσματα
Επίδραση Προτύπων Σχεδίασης
Εντοπισμός Σχεδιαστικών Ελαττωμάτων
Σύσταση Ρόλων
5 Συμπεράσματα
6 Μελλοντικές Επεκτάσεις
27. 20/26
Σχεδίαση και Ανάπτυξη Συστήματος Βελτιστοποίησης Ποιότητας Πηγαίου Κώδικα με χρήση Τεχνικών Ανακατασκευής
Αποτελέσματα
Εντοπισμός Σχεδιαστικών Ελαττωμάτων
Περιεχόμενα
1 Σκοπός Διπλωματικής Εργασίας
2 Μεθοδολογία
3 Σύστημα Βελτίωσης Ποιότητας Κώδικα
Σύστημα Ανάλυσης
Σύστημα Συστάσεων
4 Αποτελέσματα
Επίδραση Προτύπων Σχεδίασης
Εντοπισμός Σχεδιαστικών Ελαττωμάτων
Σύσταση Ρόλων
5 Συμπεράσματα
6 Μελλοντικές Επεκτάσεις
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. 22/26
Σχεδίαση και Ανάπτυξη Συστήματος Βελτιστοποίησης Ποιότητας Πηγαίου Κώδικα με χρήση Τεχνικών Ανακατασκευής
Αποτελέσματα
Σύσταση Ρόλων
Περιεχόμενα
1 Σκοπός Διπλωματικής Εργασίας
2 Μεθοδολογία
3 Σύστημα Βελτίωσης Ποιότητας Κώδικα
Σύστημα Ανάλυσης
Σύστημα Συστάσεων
4 Αποτελέσματα
Επίδραση Προτύπων Σχεδίασης
Εντοπισμός Σχεδιαστικών Ελαττωμάτων
Σύσταση Ρόλων
5 Συμπεράσματα
6 Μελλοντικές Επεκτάσεις
30. 23/26
Σχεδίαση και Ανάπτυξη Συστήματος Βελτιστοποίησης Ποιότητας Πηγαίου Κώδικα με χρήση Τεχνικών Ανακατασκευής
Αποτελέσματα
Σύσταση Ρόλων
Σύσταση Ρόλων
Σύσταση Ρόλων για Πρότυπο Bridge
Ρόλος Πρωτότυπο Σύσταση Αντιστοιχία
Refined Abstraction LogitechRemoteControl LogitechRemoteControl ✓
Abstraction AbstractRemoteControl AbstractRemoteControl ✓
Concrete Implementor SamsungTV, SonyTV -
Implementor ITV ITV ✓
31. 24/26
Σχεδίαση και Ανάπτυξη Συστήματος Βελτιστοποίησης Ποιότητας Πηγαίου Κώδικα με χρήση Τεχνικών Ανακατασκευής
Συμπεράσματα
Συμπεράσματα
Βελτιστοποίηση μετρικών ποιότητας με χρήση τεχνικών
ανακατασκευής
Η εφαρμογή προτύπων σχεδίασης μπορεί να χρησιμοποιηθεί
για την βελτιστοποίηση χαρακτηριστικών ποιότητας
Κάθε πρότυπο και κάθε ρόλος έχει διαφορετικό αντίκτυπο στις
μετρικές στατικής ανάλυσης
Θετική επιρροή της έλλειψης σχεδιαστικών ελαττωμάτων σε
μετρικές κώδικα
32. 25/26
Σχεδίαση και Ανάπτυξη Συστήματος Βελτιστοποίησης Ποιότητας Πηγαίου Κώδικα με χρήση Τεχνικών Ανακατασκευής
Μελλοντικές Επεκτάσεις
Μελλοντικές Επεκτάσεις
Υποστήριξη περισσότερων προτύπων σχεδίασης
Μοντελοποίηση επιπλέον σχεδιαστικών ελαττωμάτων
Υπολογισμός μετρικών κώδικα εκτός των υπαρχόντων
Ανάλυση του κώδικα με στόχο την μοντελοποίηση των
αλλαγών που καθιστούν εφικτή τη συμμετοχή μιας κλάσης σε
ένα πρότυπο σχεδίασης
33. 26/26
Σχεδίαση και Ανάπτυξη Συστήματος Βελτιστοποίησης Ποιότητας Πηγαίου Κώδικα με χρήση Τεχνικών Ανακατασκευής
Μελλοντικές Επεκτάσεις
Ευχαριστώ για την προσοχή σας!