Μιχαήλ Παπαμιχαήλ

ISSEL
ISSELISSEL
Σχεδίαση και ανάπτυξη συστήματος αξιολόγησης ποιότητας κώδικα με
χρήση μετρικών στατικής ανάλυσης και τεχνικών μηχανικής μάθησης
Διπλωματική Εργασία
1
Παπαμιχαήλ Μιχαήλ
ΑΕΜ: 7502
Υπό την επίβλεψη του Επίκουρου Καθηγητή
κ. Συμεωνίδη Ανδρέα
Και του υποψήφιου διδάκτορα
κ. Διαμαντόπουλου Θεμιστοκλή
Σχεδίαση και ανάπτυξη συστήματος αξιολόγησης ποιότητας κώδικα με χρήση μετρικών στατικής ανάλυσης και τεχνικών μηχανικής μάθησης Οκτώβριος 2015
2 H κατάσταση σήμερα…
 Εποχή της πληροφορίας.
 Εύκολα προσβάσιμη
 Τεράστιος Όγκος
 Πολυάριθμες μηχανές αναζήτησης κώδικα (GitHub, Searchcode…)
 Πολυάριθμα έργα ανοιχτού λογισμικού που οργανώνονται σε αποθετήρια.
 GitHub:
 9 εκατομμύρια χρήστες
 21 εκατομμύρια αποθετήρια
Σχεδίαση και ανάπτυξη συστήματος αξιολόγησης ποιότητας κώδικα με χρήση μετρικών στατικής ανάλυσης και τεχνικών μηχανικής μάθησης Οκτώβριος 2015
3
Διαδικασία παραγωγής λογισμικού σήμερα
queries Upload
code
CSEs
Σχεδίαση και ανάπτυξη συστήματος αξιολόγησης ποιότητας κώδικα με χρήση μετρικών στατικής ανάλυσης και τεχνικών μηχανικής μάθησης Οκτώβριος 2015
4
Code Quality Estimation System
Προσέγγιση:
 Χρήση των 100 δημοφιλέστερων αποθετηρίων του GitHub (24930 αρχεία κώδικα
java)
 Στατική ανάλυση
 Κατασκευή μοντέλου με χρήση νευρωνικών δικτύων για την εκτίμηση της
ποιότητας ενός αρχείου κώδικα.
 Κατασκευή ενός one class classifier με τη χρήση SVMs με στόχο να
διαπιστώνεται αν ένα αρχείο κώδικα ανήκει στο χώρο μελέτης.
Σχεδίαση και ανάπτυξη συστήματος αξιολόγησης ποιότητας κώδικα με χρήση μετρικών στατικής ανάλυσης και τεχνικών μηχανικής μάθησης Οκτώβριος 2015
5 PMD Analysis Tool
 Εύρεση “κακών πρακτικών” στη διαδικασία συγγραφής του κώδικα
 Πολυάριθμοι έλεγχοι (Rules) κατηγοριοποιημένοι σε ομάδες (Rulesets) π.χ.
Optimization, Coupling, Design….
 XML Report για κάθε αρχείο με το σύνολο των παραβιάσεων (violations)
Σημείο της
παραβίασης
Κανόνας που
παραβιάστηκε
Σετ κανόνων
Ορθή
αντιμετώπιση
Σημαντικότητα
παραβίασης
Σχεδίαση και ανάπτυξη συστήματος αξιολόγησης ποιότητας κώδικα με χρήση μετρικών στατικής ανάλυσης και τεχνικών μηχανικής μάθησης Οκτώβριος 2015
6 Google Code Pro Analytix
 Εξαγωγή μετρικών στατικής ανάλυσης σε XML report
 LOC (Lines Of Code)
 Average Block Depth
 Average Cyclomatic Complexity
 Abstractness
 Coupling (Afferent, Efferent)
 Distance
 Depth of Inheritance
 Comments Ratio
 Υποστηρίζει και άλλες λειτουργίες όπως Junit Testing, Code Coverage, Similar
Code Analysis
Συνολικά στην ανάλυση χρησιμοποιήθηκαν 73 μετρικές.
Σχεδίαση και ανάπτυξη συστήματος αξιολόγησης ποιότητας κώδικα με χρήση μετρικών στατικής ανάλυσης και τεχνικών μηχανικής μάθησης Οκτώβριος 2015
7
Από την προσέγγιση στην… Υλοποίηση
Training Set
Top 100
Repositories
GitHub
24930
files
Training
Set
 Ποιότητα;
 Target;
 Χρειάζονται
όλες;
Σχεδίαση και ανάπτυξη συστήματος αξιολόγησης ποιότητας κώδικα με χρήση μετρικών στατικής ανάλυσης και τεχνικών μηχανικής μάθησης Οκτώβριος 2015
8 Dataset – Ποιοτικά στοιχεία (1)
0,41%
Σχεδίαση και ανάπτυξη συστήματος αξιολόγησης ποιότητας κώδικα με χρήση μετρικών στατικής ανάλυσης και τεχνικών μηχανικής μάθησης Οκτώβριος 2015
9 Dataset – Ποιοτικά στοιχεία (2)
Ελάχιστο
ποσοστό
αρχείων με
critical
violations
Αναμενόμενη
εμφάνιση
μεγάλων τιμών
Σχεδίαση και ανάπτυξη συστήματος αξιολόγησης ποιότητας κώδικα με χρήση μετρικών στατικής ανάλυσης και τεχνικών μηχανικής μάθησης Οκτώβριος 2015
10
Training Target
 Ta Stars του κάθε αποθετηρίου.
Όμως:
 Αριθμός stars/αποθετήριο και όχι ανά file
 Είναι κάθε αρχείο ενός αποθετηρίου εξίσου σημαντικό;
 Μεγάλες διαφορές στον αριθμό των αρχείων κάθε
αποθετηρίου.
10000
x stars y stars z stars
Dependency
Analysis
Σχεδίαση και ανάπτυξη συστήματος αξιολόγησης ποιότητας κώδικα με χρήση μετρικών στατικής ανάλυσης και τεχνικών μηχανικής μάθησης Οκτώβριος 2015
11
Dependency analysis
Για το αρχείο i του αποθετηρίου j το target είναι:
𝑡𝑎𝑟𝑔𝑒𝑡 𝑖, 𝑗 = log
𝑠𝑡𝑎𝑟𝑠 𝑗
𝑓𝑖𝑙𝑒𝑠 𝑗
+
𝑑𝑒𝑝𝑒𝑛𝑑𝑒𝑛𝑐𝑖𝑒𝑠 𝑖
𝑓𝑖𝑙𝑒𝑠 𝑗
∗ 𝑠𝑡𝑎𝑟𝑠 𝑗
Εξισορρόπηση των
διαφορών στον
αριθμό των
αρχείων κάθε
αποθετηρίου
Αρχική ισάξια
συνεισφορά του κάθε
αρχείου στην
διαμόρφωση των
stars του
αποθετηρίου
Κατανομή των stars με
βάση το ποσοστό των
αρχείων του
αποθετηρίου που
εξαρτώνται από αυτό
Σχεδίαση και ανάπτυξη συστήματος αξιολόγησης ποιότητας κώδικα με χρήση μετρικών στατικής ανάλυσης και τεχνικών μηχανικής μάθησης Οκτώβριος 2015
12
Dependency analysis - Παράδειγμα
Σχεδίαση και ανάπτυξη συστήματος αξιολόγησης ποιότητας κώδικα με χρήση μετρικών στατικής ανάλυσης και τεχνικών μηχανικής μάθησης Οκτώβριος 2015
Αποθετήριο με 2000 αρχεία κώδικα και 10000 stars:
 Αρχείο (f1) από το οποίο εξαρτώνται 150 αρχεία
𝑠𝑡𝑎𝑟𝑠 𝑓1 = log(
10000
2000
+
150
2000
∗ 10000)
𝑠𝑡𝑎𝑟𝑠 𝑓1 = 2.8779
Αποθετήριο με 50 αρχεία κώδικα και 1000 stars:
 Αρχείο (f2) από το οποίο εξαρτώνται 10 αρχεία
𝑠𝑡𝑎𝑟𝑠 𝑓2 = log(
1000
50
+
10
50
∗ 1000)
𝑠𝑡𝑎𝑟𝑠 𝑓2 = 2.34
𝑠𝑡𝑎𝑟𝑠 𝑓2 = 220
𝑠𝑡𝑎𝑟𝑠 𝑓1 = 755
13
ΑΝΝs model
𝑖=1
𝑁
𝑋𝑖 𝑊𝑖,𝑗
𝑡𝑎𝑛𝑠𝑖𝑔
𝑖=1
𝑁
𝑋𝑖 𝑊𝑖,𝑗 + 𝑏(𝑗)
𝑌 = 𝑡𝑎𝑛𝑠𝑖𝑔
𝑖=1
𝑁
𝐾𝑖 𝑊𝑖 + 𝑏
Σχεδίαση και ανάπτυξη συστήματος αξιολόγησης ποιότητας κώδικα με χρήση μετρικών στατικής ανάλυσης και τεχνικών μηχανικής μάθησης Οκτώβριος 2015
14
ΑΝΝs model
Το μοντέλο είναι σε θέση
να εκτιμήσει το target
set με μέσο σφάλμα 13%
Σχεδίαση και ανάπτυξη συστήματος αξιολόγησης ποιότητας κώδικα με χρήση μετρικών στατικής ανάλυσης και τεχνικών μηχανικής μάθησης Οκτώβριος 2015
15
ΑΝΝs model
Σχεδίαση και ανάπτυξη συστήματος αξιολόγησης ποιότητας κώδικα με χρήση μετρικών στατικής ανάλυσης και τεχνικών μηχανικής μάθησης Οκτώβριος 2015
16
SVMs One Class Classifier
 Ανάγκη οριοθέτησης του χώρου μελέτης ο οποίος αποτελείται από κώδικα που
καλύπτει κάποιες ελάχιστες προδιαγραφές ποιότητας
 Θα χρησιμοποιηθούν όλες οι μετρικές;
 Αν όχι ποιες και ποιο θα είναι το κριτήριο επιλογής;
Principal
Component
Analysis
Σχεδίαση και ανάπτυξη συστήματος αξιολόγησης ποιότητας κώδικα με χρήση μετρικών στατικής ανάλυσης και τεχνικών μηχανικής μάθησης Οκτώβριος 2015
17
PCA – Principal Component Analysis
Component
Initial Eigenvalues
Total % of Variance Cumulative %
1 14.936 20.460 20.460
2 4.821 6.604 27.064
3 4.735 6.486 33.551
4 4.276 5.858 39.408
5 3.930 5.383 44.791
6 3.692 5.057 49.848
7 3.561 4.879 54.727
8 2.816 3.857 58.584
9 2.566 3.516 62.100
10 2.376 3.255 65.354
11 2.154 2.951 68.305
12 2.082 2.852 71.158
13 1.921 2.632 73.789
14 1.791 2.453 76.243
15 1.733 2.374 78.617
16 1.373 1.881 80.498
17 1.249 1.711 82.209
18 1.152 1.578 83.788
19 1.029 1.410 85.198
20 1.002 1.373 86.571
 Average Block Depth
 Average Cyclomatic
Complexity
 Average Depth of
Inheritance Hierarchy
 Average Lines of Code
per Method
 Comments Ratio
 Distance
 Lines of Code
Σχεδίαση και ανάπτυξη συστήματος αξιολόγησης ποιότητας κώδικα με χρήση μετρικών στατικής ανάλυσης και τεχνικών μηχανικής μάθησης Οκτώβριος 2015
18
SVMs One Class Classifier
𝑥, 𝑦 = exp(
− 𝑥 − 𝑦
2
2𝜎2 )
 Χρήση Gaussian radial basis kernel function
 Gamma Parameter (1/σ2) = 0.04
 Tolerance = 0.001
Σχεδίαση και ανάπτυξη συστήματος αξιολόγησης ποιότητας κώδικα με χρήση μετρικών στατικής ανάλυσης και τεχνικών μηχανικής μάθησης Οκτώβριος 2015
19
Τελικό σύστημα
Static
Analysis
Metrics
One class
Classifier
Neural
Networks
Model
Pass
Fail Επανεξέταση
Rating
Σχεδίαση και ανάπτυξη συστήματος αξιολόγησης ποιότητας κώδικα με χρήση μετρικών στατικής ανάλυσης και τεχνικών μηχανικής μάθησης Οκτώβριος 2015
20
Πειράματα
Σχεδίαση και ανάπτυξη συστήματος αξιολόγησης ποιότητας κώδικα με χρήση μετρικών στατικής ανάλυσης και τεχνικών μηχανικής μάθησης Οκτώβριος 2015
21 Πειράματα
Σχεδίαση και ανάπτυξη συστήματος αξιολόγησης ποιότητας κώδικα με χρήση μετρικών στατικής ανάλυσης και τεχνικών μηχανικής μάθησης Οκτώβριος 2015
22 Πειράματα
Σχεδίαση και ανάπτυξη συστήματος αξιολόγησης ποιότητας κώδικα με χρήση μετρικών στατικής ανάλυσης και τεχνικών μηχανικής μάθησης Οκτώβριος 2015
23 Services που υλοποιήθηκαν
 Command Line Tool
 Web Service
Σχεδίαση και ανάπτυξη συστήματος αξιολόγησης ποιότητας κώδικα με χρήση μετρικών στατικής ανάλυσης και τεχνικών μηχανικής μάθησης Οκτώβριος 2015
24
Command Line Tool
Σχεδίαση και ανάπτυξη συστήματος αξιολόγησης ποιότητας κώδικα με χρήση μετρικών στατικής ανάλυσης και τεχνικών μηχανικής μάθησης Οκτώβριος 2015
25 Web Service
Σχεδίαση και ανάπτυξη συστήματος αξιολόγησης ποιότητας κώδικα με χρήση μετρικών στατικής ανάλυσης και τεχνικών μηχανικής μάθησης Οκτώβριος 2015
26 Συμπεράσματα
 Αξιόπιστη μετάφραση μετρικών στατικής ανάλυσης σε εκτίμηση ποιότητας κώδικα.
 Χρήση του συστήματος που υλοποιήθηκε ως αυτόνομο εργαλείο στατικής
ανάλυσης και εντοπισμού κακών πρακτικών συγγραφής κώδικα.
 Δυνατότητα χρήσης του συστήματος ως middleware στη διαδικασία εύρεσης
κώδικα για την αξιολόγηση των αποτελεσμάτων.
 Τα πειράματα έδειξαν ότι το σύστημα είναι σε θέση να εντοπίζει με μικρό
ποσοστό λάθους τα αρχεία κώδικα που αποκλίνουν από τις ενδεικνυόμενες τιμές
στατικής ανάλυσης.
Σχεδίαση και ανάπτυξη συστήματος αξιολόγησης ποιότητας κώδικα με χρήση μετρικών στατικής ανάλυσης και τεχνικών μηχανικής μάθησης Οκτώβριος 2015
27 Ανοιχτά Θέματα
 Προσθήκη μηχανισμού δυναμικής ανάλυσης
 Εφαρμογή και για άλλες γλώσσες προγραμματισμού
 Περιορισμός των μετρικών για γρηγορότερη εκτέλεση
 Δυνατότητα συνδυασμού αποτελεσμάτων
 Δυνατότητα βελτίωσης αποτελεσμάτων
Σχεδίαση και ανάπτυξη συστήματος αξιολόγησης ποιότητας κώδικα με χρήση μετρικών στατικής ανάλυσης και τεχνικών μηχανικής μάθησης Οκτώβριος 2015
28
Σας ευχαριστώ πολύ για την προσοχή σας
Σχεδίαση και ανάπτυξη συστήματος αξιολόγησης ποιότητας κώδικα με χρήση μετρικών στατικής ανάλυσης και τεχνικών μηχανικής μάθησης Οκτώβριος 2015
1 of 28

Recommended

Konstantinos Papadopoulos Diploma Thesis presenation by
Konstantinos Papadopoulos Diploma Thesis presenationKonstantinos Papadopoulos Diploma Thesis presenation
Konstantinos Papadopoulos Diploma Thesis presenationISSEL
219 views16 slides
Kagiafas Nikolaos Thesis Presentation by
Kagiafas Nikolaos Thesis PresentationKagiafas Nikolaos Thesis Presentation
Kagiafas Nikolaos Thesis PresentationISSEL
88 views25 slides
Ανάλυση και μοντελοποίηση προφίλ προγραμματιστών μέσω τεχνικών εξόρυξης γνώση... by
Ανάλυση και μοντελοποίηση προφίλ προγραμματιστών μέσω τεχνικών εξόρυξης γνώση...Ανάλυση και μοντελοποίηση προφίλ προγραμματιστών μέσω τεχνικών εξόρυξης γνώση...
Ανάλυση και μοντελοποίηση προφίλ προγραμματιστών μέσω τεχνικών εξόρυξης γνώση...ISSEL
8 views20 slides
Analysis and profiling of developer profiles using data mining techniques fro... by
Analysis and profiling of developer profiles using data mining techniques fro...Analysis and profiling of developer profiles using data mining techniques fro...
Analysis and profiling of developer profiles using data mining techniques fro...ISSEL
3 views20 slides
Γκιλίρης Ιωάννης 7419 by
Γκιλίρης Ιωάννης 7419Γκιλίρης Ιωάννης 7419
Γκιλίρης Ιωάννης 7419ISSEL
209 views27 slides
Εφαρµογή τεχνικών µηχανικής µάθησης και ευφυούς διαχείρισης πληροφορίας για τ... by
Εφαρµογή τεχνικών µηχανικής µάθησης και ευφυούς διαχείρισης πληροφορίας για τ...Εφαρµογή τεχνικών µηχανικής µάθησης και ευφυούς διαχείρισης πληροφορίας για τ...
Εφαρµογή τεχνικών µηχανικής µάθησης και ευφυούς διαχείρισης πληροφορίας για τ...ISSEL
168 views27 slides

More Related Content

Similar to Μιχαήλ Παπαμιχαήλ

Ανάπτυξη αυτοματοποιημένης διαδικασίας Continuous Integration σε έργα λογισμικού by
Ανάπτυξη αυτοματοποιημένης διαδικασίας Continuous Integration σε έργα λογισμικούΑνάπτυξη αυτοματοποιημένης διαδικασίας Continuous Integration σε έργα λογισμικού
Ανάπτυξη αυτοματοποιημένης διαδικασίας Continuous Integration σε έργα λογισμικούISSEL
79 views38 slides
Χατζηελευθερίου Ειρήνη by
Χατζηελευθερίου ΕιρήνηΧατζηελευθερίου Ειρήνη
Χατζηελευθερίου ΕιρήνηISSEL
166 views33 slides
Ιωάννης Τσαφαράς by
Ιωάννης ΤσαφαράςΙωάννης Τσαφαράς
Ιωάννης ΤσαφαράςISSEL
235 views36 slides
Βελτίωση Αυτοματοποιημένης Ανάθεσης Εργασιών Λογισμικού με χρήση Commits σε Δ... by
Βελτίωση Αυτοματοποιημένης Ανάθεσης Εργασιών Λογισμικού με χρήση Commits σε Δ...Βελτίωση Αυτοματοποιημένης Ανάθεσης Εργασιών Λογισμικού με χρήση Commits σε Δ...
Βελτίωση Αυτοματοποιημένης Ανάθεσης Εργασιών Λογισμικού με χρήση Commits σε Δ...ISSEL
29 views38 slides
Ανάπτυξη εργαλείου αυτοματοποίησης της παραγωγής σεναρίων για τη δημιουργία ψ... by
Ανάπτυξη εργαλείου αυτοματοποίησης της παραγωγής σεναρίων για τη δημιουργία ψ...Ανάπτυξη εργαλείου αυτοματοποίησης της παραγωγής σεναρίων για τη δημιουργία ψ...
Ανάπτυξη εργαλείου αυτοματοποίησης της παραγωγής σεναρίων για τη δημιουργία ψ...ISSEL
84 views26 slides
Σχεδίαση και ανάπτυξη Μηχανισμού Αυτοματοποίησης παραγωγής Λογισμικού Ελέγχου... by
Σχεδίαση και ανάπτυξη Μηχανισμού Αυτοματοποίησης παραγωγής Λογισμικού Ελέγχου...Σχεδίαση και ανάπτυξη Μηχανισμού Αυτοματοποίησης παραγωγής Λογισμικού Ελέγχου...
Σχεδίαση και ανάπτυξη Μηχανισμού Αυτοματοποίησης παραγωγής Λογισμικού Ελέγχου...ISSEL
73 views18 slides

Similar to Μιχαήλ Παπαμιχαήλ(20)

Ανάπτυξη αυτοματοποιημένης διαδικασίας Continuous Integration σε έργα λογισμικού by ISSEL
Ανάπτυξη αυτοματοποιημένης διαδικασίας Continuous Integration σε έργα λογισμικούΑνάπτυξη αυτοματοποιημένης διαδικασίας Continuous Integration σε έργα λογισμικού
Ανάπτυξη αυτοματοποιημένης διαδικασίας Continuous Integration σε έργα λογισμικού
ISSEL79 views
Χατζηελευθερίου Ειρήνη by ISSEL
Χατζηελευθερίου ΕιρήνηΧατζηελευθερίου Ειρήνη
Χατζηελευθερίου Ειρήνη
ISSEL166 views
Ιωάννης Τσαφαράς by ISSEL
Ιωάννης ΤσαφαράςΙωάννης Τσαφαράς
Ιωάννης Τσαφαράς
ISSEL235 views
Βελτίωση Αυτοματοποιημένης Ανάθεσης Εργασιών Λογισμικού με χρήση Commits σε Δ... by ISSEL
Βελτίωση Αυτοματοποιημένης Ανάθεσης Εργασιών Λογισμικού με χρήση Commits σε Δ...Βελτίωση Αυτοματοποιημένης Ανάθεσης Εργασιών Λογισμικού με χρήση Commits σε Δ...
Βελτίωση Αυτοματοποιημένης Ανάθεσης Εργασιών Λογισμικού με χρήση Commits σε Δ...
ISSEL29 views
Ανάπτυξη εργαλείου αυτοματοποίησης της παραγωγής σεναρίων για τη δημιουργία ψ... by ISSEL
Ανάπτυξη εργαλείου αυτοματοποίησης της παραγωγής σεναρίων για τη δημιουργία ψ...Ανάπτυξη εργαλείου αυτοματοποίησης της παραγωγής σεναρίων για τη δημιουργία ψ...
Ανάπτυξη εργαλείου αυτοματοποίησης της παραγωγής σεναρίων για τη δημιουργία ψ...
ISSEL84 views
Σχεδίαση και ανάπτυξη Μηχανισμού Αυτοματοποίησης παραγωγής Λογισμικού Ελέγχου... by ISSEL
Σχεδίαση και ανάπτυξη Μηχανισμού Αυτοματοποίησης παραγωγής Λογισμικού Ελέγχου...Σχεδίαση και ανάπτυξη Μηχανισμού Αυτοματοποίησης παραγωγής Λογισμικού Ελέγχου...
Σχεδίαση και ανάπτυξη Μηχανισμού Αυτοματοποίησης παραγωγής Λογισμικού Ελέγχου...
ISSEL73 views
Design and Implementation of a Mechanism that automates the generation of Sof... by ISSEL
Design and Implementation of a Mechanism that automates the generation of Sof...Design and Implementation of a Mechanism that automates the generation of Sof...
Design and Implementation of a Mechanism that automates the generation of Sof...
ISSEL132 views
Ιoannis Αgrotis by ISSEL
Ιoannis ΑgrotisΙoannis Αgrotis
Ιoannis Αgrotis
ISSEL113 views
Βασίλειος Λώλης 5638 by ISSEL
Βασίλειος Λώλης 5638Βασίλειος Λώλης 5638
Βασίλειος Λώλης 5638
ISSEL165 views
Bagia Rousopoulou by ISSEL
Bagia RousopoulouBagia Rousopoulou
Bagia Rousopoulou
ISSEL272 views
Παρουσίαση θεμάτων διπλωματικών 2010 by ISSEL
Παρουσίαση θεμάτων διπλωματικών 2010Παρουσίαση θεμάτων διπλωματικών 2010
Παρουσίαση θεμάτων διπλωματικών 2010
ISSEL530 views
Applying Data Mining Techniques on Software Repositories to Extract Design an... by ISSEL
Applying Data Mining Techniques on Software Repositories to Extract Design an...Applying Data Mining Techniques on Software Repositories to Extract Design an...
Applying Data Mining Techniques on Software Repositories to Extract Design an...
ISSEL29 views
Εφαρμογή Τεχνικών Εξόρυξης Δεδομένων σε Αποθήκες Λογισμικού με σκοπό την Εξα... by ISSEL
Εφαρμογή Τεχνικών Εξόρυξης Δεδομένων σε Αποθήκες Λογισμικού με  σκοπό την Εξα...Εφαρμογή Τεχνικών Εξόρυξης Δεδομένων σε Αποθήκες Λογισμικού με  σκοπό την Εξα...
Εφαρμογή Τεχνικών Εξόρυξης Δεδομένων σε Αποθήκες Λογισμικού με σκοπό την Εξα...
ISSEL48 views
Αλεξάνδρα Μπαλτζή 7485 by ISSEL
Αλεξάνδρα Μπαλτζή 7485Αλεξάνδρα Μπαλτζή 7485
Αλεξάνδρα Μπαλτζή 7485
ISSEL194 views
Μιλτιάδης Σιάββας 7523 by ISSEL
Μιλτιάδης Σιάββας 7523Μιλτιάδης Σιάββας 7523
Μιλτιάδης Σιάββας 7523
ISSEL205 views
Θεμιστοκλής Παπαβασιλείου by ISSEL
Θεμιστοκλής ΠαπαβασιλείουΘεμιστοκλής Παπαβασιλείου
Θεμιστοκλής Παπαβασιλείου
ISSEL152 views
Νικόλαος Κατιρτζής 7185 by ISSEL
Νικόλαος Κατιρτζής 7185Νικόλαος Κατιρτζής 7185
Νικόλαος Κατιρτζής 7185
ISSEL134 views
Detection Of Abnormal User Behavior In Web Applications Using Sequence Class... by ISSEL
Detection Of Abnormal User Behavior In Web Applications Using  Sequence Class...Detection Of Abnormal User Behavior In Web Applications Using  Sequence Class...
Detection Of Abnormal User Behavior In Web Applications Using Sequence Class...
ISSEL52 views
Ανίχνευση Αποκλίνουσας Συμπεριφοράς Χρηστών Διαδικτυακής Εφαρμογής Με Χρήση Τ... by ISSEL
Ανίχνευση Αποκλίνουσας Συμπεριφοράς Χρηστών Διαδικτυακής Εφαρμογής Με Χρήση Τ...Ανίχνευση Αποκλίνουσας Συμπεριφοράς Χρηστών Διαδικτυακής Εφαρμογής Με Χρήση Τ...
Ανίχνευση Αποκλίνουσας Συμπεριφοράς Χρηστών Διαδικτυακής Εφαρμογής Με Χρήση Τ...
ISSEL68 views

More from ISSEL

Camera-based localization of annotated objects in indoor environments by
Camera-based localization of annotated objects in indoor environmentsCamera-based localization of annotated objects in indoor environments
Camera-based localization of annotated objects in indoor environmentsISSEL
12 views38 slides
Εντοπισμός θέσης επισημασμένου αντικειμένου σε εσωτερικό χώρο με χρήση πολλαπ... by
Εντοπισμός θέσης επισημασμένου αντικειμένου σε εσωτερικό χώρο με χρήση πολλαπ...Εντοπισμός θέσης επισημασμένου αντικειμένου σε εσωτερικό χώρο με χρήση πολλαπ...
Εντοπισμός θέσης επισημασμένου αντικειμένου σε εσωτερικό χώρο με χρήση πολλαπ...ISSEL
6 views38 slides
Design and implementation of an automation mechanism to automatically develop... by
Design and implementation of an automation mechanism to automatically develop...Design and implementation of an automation mechanism to automatically develop...
Design and implementation of an automation mechanism to automatically develop...ISSEL
4 views17 slides
ΣΧΕΔΙΑΣΗ ΚΑΙ ΑΝΑΠΤΥΞΗ ΜΗΧΑΝΙΣΜΟΥ ΑΥΤΟΜΑΤΟΠΟΙΗΣΗΣ ΤΗΣ ΑΝΑΠΤΥΞΗΣ ΓΡΑΦΙΚΩΝ ΕΝΤΟΛ... by
ΣΧΕΔΙΑΣΗ ΚΑΙ ΑΝΑΠΤΥΞΗ ΜΗΧΑΝΙΣΜΟΥ ΑΥΤΟΜΑΤΟΠΟΙΗΣΗΣ ΤΗΣ ΑΝΑΠΤΥΞΗΣ ΓΡΑΦΙΚΩΝ ΕΝΤΟΛ...ΣΧΕΔΙΑΣΗ ΚΑΙ ΑΝΑΠΤΥΞΗ ΜΗΧΑΝΙΣΜΟΥ ΑΥΤΟΜΑΤΟΠΟΙΗΣΗΣ ΤΗΣ ΑΝΑΠΤΥΞΗΣ ΓΡΑΦΙΚΩΝ ΕΝΤΟΛ...
ΣΧΕΔΙΑΣΗ ΚΑΙ ΑΝΑΠΤΥΞΗ ΜΗΧΑΝΙΣΜΟΥ ΑΥΤΟΜΑΤΟΠΟΙΗΣΗΣ ΤΗΣ ΑΝΑΠΤΥΞΗΣ ΓΡΑΦΙΚΩΝ ΕΝΤΟΛ...ISSEL
6 views17 slides
Static Analysis of Python code and Identification of Potential Security Vulne... by
Static Analysis of Python code and Identification of Potential Security Vulne...Static Analysis of Python code and Identification of Potential Security Vulne...
Static Analysis of Python code and Identification of Potential Security Vulne...ISSEL
7 views16 slides
Στατική Ανάλυση Κώδικα Python και Αναγνώριση Πιθανών Ευπαθειών Ασφαλείας για ... by
Στατική Ανάλυση Κώδικα Python και Αναγνώριση Πιθανών Ευπαθειών Ασφαλείας για ...Στατική Ανάλυση Κώδικα Python και Αναγνώριση Πιθανών Ευπαθειών Ασφαλείας για ...
Στατική Ανάλυση Κώδικα Python και Αναγνώριση Πιθανών Ευπαθειών Ασφαλείας για ...ISSEL
26 views27 slides

More from ISSEL(20)

Camera-based localization of annotated objects in indoor environments by ISSEL
Camera-based localization of annotated objects in indoor environmentsCamera-based localization of annotated objects in indoor environments
Camera-based localization of annotated objects in indoor environments
ISSEL12 views
Εντοπισμός θέσης επισημασμένου αντικειμένου σε εσωτερικό χώρο με χρήση πολλαπ... by ISSEL
Εντοπισμός θέσης επισημασμένου αντικειμένου σε εσωτερικό χώρο με χρήση πολλαπ...Εντοπισμός θέσης επισημασμένου αντικειμένου σε εσωτερικό χώρο με χρήση πολλαπ...
Εντοπισμός θέσης επισημασμένου αντικειμένου σε εσωτερικό χώρο με χρήση πολλαπ...
ISSEL6 views
Design and implementation of an automation mechanism to automatically develop... by ISSEL
Design and implementation of an automation mechanism to automatically develop...Design and implementation of an automation mechanism to automatically develop...
Design and implementation of an automation mechanism to automatically develop...
ISSEL4 views
ΣΧΕΔΙΑΣΗ ΚΑΙ ΑΝΑΠΤΥΞΗ ΜΗΧΑΝΙΣΜΟΥ ΑΥΤΟΜΑΤΟΠΟΙΗΣΗΣ ΤΗΣ ΑΝΑΠΤΥΞΗΣ ΓΡΑΦΙΚΩΝ ΕΝΤΟΛ... by ISSEL
ΣΧΕΔΙΑΣΗ ΚΑΙ ΑΝΑΠΤΥΞΗ ΜΗΧΑΝΙΣΜΟΥ ΑΥΤΟΜΑΤΟΠΟΙΗΣΗΣ ΤΗΣ ΑΝΑΠΤΥΞΗΣ ΓΡΑΦΙΚΩΝ ΕΝΤΟΛ...ΣΧΕΔΙΑΣΗ ΚΑΙ ΑΝΑΠΤΥΞΗ ΜΗΧΑΝΙΣΜΟΥ ΑΥΤΟΜΑΤΟΠΟΙΗΣΗΣ ΤΗΣ ΑΝΑΠΤΥΞΗΣ ΓΡΑΦΙΚΩΝ ΕΝΤΟΛ...
ΣΧΕΔΙΑΣΗ ΚΑΙ ΑΝΑΠΤΥΞΗ ΜΗΧΑΝΙΣΜΟΥ ΑΥΤΟΜΑΤΟΠΟΙΗΣΗΣ ΤΗΣ ΑΝΑΠΤΥΞΗΣ ΓΡΑΦΙΚΩΝ ΕΝΤΟΛ...
ISSEL6 views
Static Analysis of Python code and Identification of Potential Security Vulne... by ISSEL
Static Analysis of Python code and Identification of Potential Security Vulne...Static Analysis of Python code and Identification of Potential Security Vulne...
Static Analysis of Python code and Identification of Potential Security Vulne...
ISSEL7 views
Στατική Ανάλυση Κώδικα Python και Αναγνώριση Πιθανών Ευπαθειών Ασφαλείας για ... by ISSEL
Στατική Ανάλυση Κώδικα Python και Αναγνώριση Πιθανών Ευπαθειών Ασφαλείας για ...Στατική Ανάλυση Κώδικα Python και Αναγνώριση Πιθανών Ευπαθειών Ασφαλείας για ...
Στατική Ανάλυση Κώδικα Python και Αναγνώριση Πιθανών Ευπαθειών Ασφαλείας για ...
ISSEL26 views
Design and Development of an Authorization and Access Control Mechanism for C... by ISSEL
Design and Development of an Authorization and Access Control Mechanism for C...Design and Development of an Authorization and Access Control Mechanism for C...
Design and Development of an Authorization and Access Control Mechanism for C...
ISSEL13 views
Σχεδίαση και Ανάπτυξη Μηχανισμού Εξουσιοδότησης και Ελέγχου Πρόσβασης σε Συνο... by ISSEL
Σχεδίαση και Ανάπτυξη Μηχανισμού Εξουσιοδότησης και Ελέγχου Πρόσβασης σε Συνο...Σχεδίαση και Ανάπτυξη Μηχανισμού Εξουσιοδότησης και Ελέγχου Πρόσβασης σε Συνο...
Σχεδίαση και Ανάπτυξη Μηχανισμού Εξουσιοδότησης και Ελέγχου Πρόσβασης σε Συνο...
ISSEL19 views
TOWARDS AN AUTOMATED SOURCE CODE FORMATTING SYSTEM by ISSEL
TOWARDS AN AUTOMATED SOURCE CODE FORMATTING SYSTEMTOWARDS AN AUTOMATED SOURCE CODE FORMATTING SYSTEM
TOWARDS AN AUTOMATED SOURCE CODE FORMATTING SYSTEM
ISSEL3 views
ΔΗΜΙΟΥΡΓΙΑ ΣΥΣΤΗΜΑΤΟΣ ΓΙΑ ΤΗΝ ΠΑΡΟΧΗ ΠΡΟΤΑΣΕΩΝ ΒΕΛΤΙΩΣΗΣ ΤΗΣ ΜΟΡΦΟΠΟΙΗΣΗΣ ΠΗΓ... by ISSEL
ΔΗΜΙΟΥΡΓΙΑ ΣΥΣΤΗΜΑΤΟΣ ΓΙΑ ΤΗΝ ΠΑΡΟΧΗ ΠΡΟΤΑΣΕΩΝ ΒΕΛΤΙΩΣΗΣ ΤΗΣ ΜΟΡΦΟΠΟΙΗΣΗΣ ΠΗΓ...ΔΗΜΙΟΥΡΓΙΑ ΣΥΣΤΗΜΑΤΟΣ ΓΙΑ ΤΗΝ ΠΑΡΟΧΗ ΠΡΟΤΑΣΕΩΝ ΒΕΛΤΙΩΣΗΣ ΤΗΣ ΜΟΡΦΟΠΟΙΗΣΗΣ ΠΗΓ...
ΔΗΜΙΟΥΡΓΙΑ ΣΥΣΤΗΜΑΤΟΣ ΓΙΑ ΤΗΝ ΠΑΡΟΧΗ ΠΡΟΤΑΣΕΩΝ ΒΕΛΤΙΩΣΗΣ ΤΗΣ ΜΟΡΦΟΠΟΙΗΣΗΣ ΠΗΓ...
ISSEL11 views
System Development for Prediction of Static Analysis Metrics of Source Code by ISSEL
System Development for Prediction of Static Analysis Metrics of Source CodeSystem Development for Prediction of Static Analysis Metrics of Source Code
System Development for Prediction of Static Analysis Metrics of Source Code
ISSEL6 views
Ανάπτυξη συστήματος πρόβλεψης της εξέλιξης των μετρικών στατικής ανάλυσης πηγ... by ISSEL
Ανάπτυξη συστήματος πρόβλεψης της εξέλιξης των μετρικών στατικής ανάλυσης πηγ...Ανάπτυξη συστήματος πρόβλεψης της εξέλιξης των μετρικών στατικής ανάλυσης πηγ...
Ανάπτυξη συστήματος πρόβλεψης της εξέλιξης των μετρικών στατικής ανάλυσης πηγ...
ISSEL11 views
Micro Front-ends and Microservices Architecture in Web Application Development by ISSEL
Micro Front-ends and Microservices Architecture in Web Application DevelopmentMicro Front-ends and Microservices Architecture in Web Application Development
Micro Front-ends and Microservices Architecture in Web Application Development
ISSEL8 views
Η αρχιτεκτονική των Microservices και Micro Front-ends στην Ανάπτυξη Εφαρµογώ... by ISSEL
Η αρχιτεκτονική των Microservices και Micro Front-ends στην Ανάπτυξη Εφαρµογώ...Η αρχιτεκτονική των Microservices και Micro Front-ends στην Ανάπτυξη Εφαρµογώ...
Η αρχιτεκτονική των Microservices και Micro Front-ends στην Ανάπτυξη Εφαρµογώ...
ISSEL19 views
Indoor localization using wireless networks by ISSEL
Indoor localization using wireless networksIndoor localization using wireless networks
Indoor localization using wireless networks
ISSEL5 views
Εντοπισμός θέσης σε εσωτερικούς χώρους με χρήση ασύρματων δικτύων by ISSEL
Εντοπισμός θέσης σε εσωτερικούς χώρους με χρήση ασύρματων δικτύωνΕντοπισμός θέσης σε εσωτερικούς χώρους με χρήση ασύρματων δικτύων
Εντοπισμός θέσης σε εσωτερικούς χώρους με χρήση ασύρματων δικτύων
ISSEL10 views
Design and implementation of a big data architecture for storage, real-time p... by ISSEL
Design and implementation of a big data architecture for storage, real-time p...Design and implementation of a big data architecture for storage, real-time p...
Design and implementation of a big data architecture for storage, real-time p...
ISSEL9 views
Σχεδιασµός και υλοποίηση µιας αρχιτεκτονικής µεγάλων δεδοµένων για την αποθήκ... by ISSEL
Σχεδιασµός και υλοποίηση µιας αρχιτεκτονικής µεγάλων δεδοµένων για την αποθήκ...Σχεδιασµός και υλοποίηση µιας αρχιτεκτονικής µεγάλων δεδοµένων για την αποθήκ...
Σχεδιασµός και υλοποίηση µιας αρχιτεκτονικής µεγάλων δεδοµένων για την αποθήκ...
ISSEL16 views
Ανάπτυξη Συστήματος Παραγωγής Ερωτήσεων & Γνωσιακού Γράφου από Πρόσφατα Νέα μ... by ISSEL
Ανάπτυξη Συστήματος Παραγωγής Ερωτήσεων & Γνωσιακού Γράφου από Πρόσφατα Νέα μ...Ανάπτυξη Συστήματος Παραγωγής Ερωτήσεων & Γνωσιακού Γράφου από Πρόσφατα Νέα μ...
Ανάπτυξη Συστήματος Παραγωγής Ερωτήσεων & Γνωσιακού Γράφου από Πρόσφατα Νέα μ...
ISSEL15 views
Development of a system for designing remote digital image processing pipelin... by ISSEL
Development of a system for designing remote digital image processing pipelin...Development of a system for designing remote digital image processing pipelin...
Development of a system for designing remote digital image processing pipelin...
ISSEL5 views

Recently uploaded

Το σκιάχτρο by
Το σκιάχτροΤο σκιάχτρο
Το σκιάχτροDimitra Mylonaki
15 views14 slides
tmimata2711112.pdf by
tmimata2711112.pdftmimata2711112.pdf
tmimata2711112.pdfckyriakou
10 views14 slides
Γ.2.1.pptx by
Γ.2.1.pptxΓ.2.1.pptx
Γ.2.1.pptxsidiropo
5 views46 slides
Η Ασπρούδα by
Η ΑσπρούδαΗ Ασπρούδα
Η ΑσπρούδαDimitra Mylonaki
12 views19 slides
ζωα υπο εξαφάνιση.pptx by
ζωα υπο εξαφάνιση.pptxζωα υπο εξαφάνιση.pptx
ζωα υπο εξαφάνιση.pptxStella Mpezantakou
67 views11 slides
Η σύνθεση Χριστιανισμού και Ελληνισμού αποτυπώνεται στην τέχνη.pptx by
Η σύνθεση Χριστιανισμού και Ελληνισμού αποτυπώνεται στην τέχνη.pptxΗ σύνθεση Χριστιανισμού και Ελληνισμού αποτυπώνεται στην τέχνη.pptx
Η σύνθεση Χριστιανισμού και Ελληνισμού αποτυπώνεται στην τέχνη.pptxΔήμητρα Τζίνου
59 views33 slides

Recently uploaded(20)

tmimata2711112.pdf by ckyriakou
tmimata2711112.pdftmimata2711112.pdf
tmimata2711112.pdf
ckyriakou10 views
Γ.2.1.pptx by sidiropo
Γ.2.1.pptxΓ.2.1.pptx
Γ.2.1.pptx
sidiropo5 views
Η σύνθεση Χριστιανισμού και Ελληνισμού αποτυπώνεται στην τέχνη.pptx by Δήμητρα Τζίνου
Η σύνθεση Χριστιανισμού και Ελληνισμού αποτυπώνεται στην τέχνη.pptxΗ σύνθεση Χριστιανισμού και Ελληνισμού αποτυπώνεται στην τέχνη.pptx
Η σύνθεση Χριστιανισμού και Ελληνισμού αποτυπώνεται στην τέχνη.pptx
Veroia in Autumn.pdf by dpavlidou
Veroia in Autumn.pdfVeroia in Autumn.pdf
Veroia in Autumn.pdf
dpavlidou9 views
Zoologiko_Nov_2023.pptx by 36dimperist
Zoologiko_Nov_2023.pptxZoologiko_Nov_2023.pptx
Zoologiko_Nov_2023.pptx
36dimperist37 views
Από τον ηλεκτρισμό στον μαγνητισμό by Dimitra Mylonaki
Από τον ηλεκτρισμό στον μαγνητισμόΑπό τον ηλεκτρισμό στον μαγνητισμό
Από τον ηλεκτρισμό στον μαγνητισμό
Dimitra Mylonaki14 views
2023_11_29_Φ_251_136784_Α5_ΥΠΟΒΟΛΗ_ΔΙΚΑΙΟΛΟΓΗΤΙΚΩΝ_ΥΠΟΨΗΦΙΩΝ_ΜΕ_ΕΙΔΙΚΕΣ_ΕΚΠΑΙ... by ssuser9e6212
2023_11_29_Φ_251_136784_Α5_ΥΠΟΒΟΛΗ_ΔΙΚΑΙΟΛΟΓΗΤΙΚΩΝ_ΥΠΟΨΗΦΙΩΝ_ΜΕ_ΕΙΔΙΚΕΣ_ΕΚΠΑΙ...2023_11_29_Φ_251_136784_Α5_ΥΠΟΒΟΛΗ_ΔΙΚΑΙΟΛΟΓΗΤΙΚΩΝ_ΥΠΟΨΗΦΙΩΝ_ΜΕ_ΕΙΔΙΚΕΣ_ΕΚΠΑΙ...
2023_11_29_Φ_251_136784_Α5_ΥΠΟΒΟΛΗ_ΔΙΚΑΙΟΛΟΓΗΤΙΚΩΝ_ΥΠΟΨΗΦΙΩΝ_ΜΕ_ΕΙΔΙΚΕΣ_ΕΚΠΑΙ...
ssuser9e6212498 views
Η δική μου Παναγιά by hrisgiou
Η δική μου ΠαναγιάΗ δική μου Παναγιά
Η δική μου Παναγιά
hrisgiou 37 views
ΠΡΩΤΕΣ ΒΟΗΘΕΙΕΣ ΣΤΟ ΣΧΟΛΙΚΟ ΠΕΡΙΒΑΛΛΟΝ.pdf by Theresa Giakoumatou
ΠΡΩΤΕΣ ΒΟΗΘΕΙΕΣ ΣΤΟ ΣΧΟΛΙΚΟ ΠΕΡΙΒΑΛΛΟΝ.pdfΠΡΩΤΕΣ ΒΟΗΘΕΙΕΣ ΣΤΟ ΣΧΟΛΙΚΟ ΠΕΡΙΒΑΛΛΟΝ.pdf
ΠΡΩΤΕΣ ΒΟΗΘΕΙΕΣ ΣΤΟ ΣΧΟΛΙΚΟ ΠΕΡΙΒΑΛΛΟΝ.pdf
2023_11_29_Φ_152_136804_Α5_ΕΓΚΥΚΛΙΟΣ_ΑΙΤΗΣΗ_ΔΗΛΩΣΗ_ΕΠΑΛ_2024.pdf by ssuser9e6212
2023_11_29_Φ_152_136804_Α5_ΕΓΚΥΚΛΙΟΣ_ΑΙΤΗΣΗ_ΔΗΛΩΣΗ_ΕΠΑΛ_2024.pdf2023_11_29_Φ_152_136804_Α5_ΕΓΚΥΚΛΙΟΣ_ΑΙΤΗΣΗ_ΔΗΛΩΣΗ_ΕΠΑΛ_2024.pdf
2023_11_29_Φ_152_136804_Α5_ΕΓΚΥΚΛΙΟΣ_ΑΙΤΗΣΗ_ΔΗΛΩΣΗ_ΕΠΑΛ_2024.pdf
ssuser9e6212539 views
Triti_Hlikia_2023.pptx by 36dimperist
Triti_Hlikia_2023.pptxTriti_Hlikia_2023.pptx
Triti_Hlikia_2023.pptx
36dimperist32 views
Ολική καταστροφή στις καλλιέργειες by Dimitra Mylonaki
Ολική καταστροφή στις καλλιέργειεςΟλική καταστροφή στις καλλιέργειες
Ολική καταστροφή στις καλλιέργειες
Dimitra Mylonaki19 views
Τριάντα εννιά καφενεία και ένα κουρείο by Dimitra Mylonaki
Τριάντα εννιά καφενεία και ένα κουρείοΤριάντα εννιά καφενεία και ένα κουρείο
Τριάντα εννιά καφενεία και ένα κουρείο
Dimitra Mylonaki11 views
ATT00004.pdf by 2dimkoryd
ATT00004.pdfATT00004.pdf
ATT00004.pdf
2dimkoryd105 views
ΠΑΝΕΠΙΣΤΗΜΙΟ ΔΥΤΙΚΗΣ ΑΤΤΙΚΗΣ. by ssuser43d27b
ΠΑΝΕΠΙΣΤΗΜΙΟ ΔΥΤΙΚΗΣ ΑΤΤΙΚΗΣ.ΠΑΝΕΠΙΣΤΗΜΙΟ ΔΥΤΙΚΗΣ ΑΤΤΙΚΗΣ.
ΠΑΝΕΠΙΣΤΗΜΙΟ ΔΥΤΙΚΗΣ ΑΤΤΙΚΗΣ.
ssuser43d27b7 views

Μιχαήλ Παπαμιχαήλ

  • 1. Σχεδίαση και ανάπτυξη συστήματος αξιολόγησης ποιότητας κώδικα με χρήση μετρικών στατικής ανάλυσης και τεχνικών μηχανικής μάθησης Διπλωματική Εργασία 1 Παπαμιχαήλ Μιχαήλ ΑΕΜ: 7502 Υπό την επίβλεψη του Επίκουρου Καθηγητή κ. Συμεωνίδη Ανδρέα Και του υποψήφιου διδάκτορα κ. Διαμαντόπουλου Θεμιστοκλή Σχεδίαση και ανάπτυξη συστήματος αξιολόγησης ποιότητας κώδικα με χρήση μετρικών στατικής ανάλυσης και τεχνικών μηχανικής μάθησης Οκτώβριος 2015
  • 2. 2 H κατάσταση σήμερα…  Εποχή της πληροφορίας.  Εύκολα προσβάσιμη  Τεράστιος Όγκος  Πολυάριθμες μηχανές αναζήτησης κώδικα (GitHub, Searchcode…)  Πολυάριθμα έργα ανοιχτού λογισμικού που οργανώνονται σε αποθετήρια.  GitHub:  9 εκατομμύρια χρήστες  21 εκατομμύρια αποθετήρια Σχεδίαση και ανάπτυξη συστήματος αξιολόγησης ποιότητας κώδικα με χρήση μετρικών στατικής ανάλυσης και τεχνικών μηχανικής μάθησης Οκτώβριος 2015
  • 3. 3 Διαδικασία παραγωγής λογισμικού σήμερα queries Upload code CSEs Σχεδίαση και ανάπτυξη συστήματος αξιολόγησης ποιότητας κώδικα με χρήση μετρικών στατικής ανάλυσης και τεχνικών μηχανικής μάθησης Οκτώβριος 2015
  • 4. 4 Code Quality Estimation System Προσέγγιση:  Χρήση των 100 δημοφιλέστερων αποθετηρίων του GitHub (24930 αρχεία κώδικα java)  Στατική ανάλυση  Κατασκευή μοντέλου με χρήση νευρωνικών δικτύων για την εκτίμηση της ποιότητας ενός αρχείου κώδικα.  Κατασκευή ενός one class classifier με τη χρήση SVMs με στόχο να διαπιστώνεται αν ένα αρχείο κώδικα ανήκει στο χώρο μελέτης. Σχεδίαση και ανάπτυξη συστήματος αξιολόγησης ποιότητας κώδικα με χρήση μετρικών στατικής ανάλυσης και τεχνικών μηχανικής μάθησης Οκτώβριος 2015
  • 5. 5 PMD Analysis Tool  Εύρεση “κακών πρακτικών” στη διαδικασία συγγραφής του κώδικα  Πολυάριθμοι έλεγχοι (Rules) κατηγοριοποιημένοι σε ομάδες (Rulesets) π.χ. Optimization, Coupling, Design….  XML Report για κάθε αρχείο με το σύνολο των παραβιάσεων (violations) Σημείο της παραβίασης Κανόνας που παραβιάστηκε Σετ κανόνων Ορθή αντιμετώπιση Σημαντικότητα παραβίασης Σχεδίαση και ανάπτυξη συστήματος αξιολόγησης ποιότητας κώδικα με χρήση μετρικών στατικής ανάλυσης και τεχνικών μηχανικής μάθησης Οκτώβριος 2015
  • 6. 6 Google Code Pro Analytix  Εξαγωγή μετρικών στατικής ανάλυσης σε XML report  LOC (Lines Of Code)  Average Block Depth  Average Cyclomatic Complexity  Abstractness  Coupling (Afferent, Efferent)  Distance  Depth of Inheritance  Comments Ratio  Υποστηρίζει και άλλες λειτουργίες όπως Junit Testing, Code Coverage, Similar Code Analysis Συνολικά στην ανάλυση χρησιμοποιήθηκαν 73 μετρικές. Σχεδίαση και ανάπτυξη συστήματος αξιολόγησης ποιότητας κώδικα με χρήση μετρικών στατικής ανάλυσης και τεχνικών μηχανικής μάθησης Οκτώβριος 2015
  • 7. 7 Από την προσέγγιση στην… Υλοποίηση Training Set Top 100 Repositories GitHub 24930 files Training Set  Ποιότητα;  Target;  Χρειάζονται όλες; Σχεδίαση και ανάπτυξη συστήματος αξιολόγησης ποιότητας κώδικα με χρήση μετρικών στατικής ανάλυσης και τεχνικών μηχανικής μάθησης Οκτώβριος 2015
  • 8. 8 Dataset – Ποιοτικά στοιχεία (1) 0,41% Σχεδίαση και ανάπτυξη συστήματος αξιολόγησης ποιότητας κώδικα με χρήση μετρικών στατικής ανάλυσης και τεχνικών μηχανικής μάθησης Οκτώβριος 2015
  • 9. 9 Dataset – Ποιοτικά στοιχεία (2) Ελάχιστο ποσοστό αρχείων με critical violations Αναμενόμενη εμφάνιση μεγάλων τιμών Σχεδίαση και ανάπτυξη συστήματος αξιολόγησης ποιότητας κώδικα με χρήση μετρικών στατικής ανάλυσης και τεχνικών μηχανικής μάθησης Οκτώβριος 2015
  • 10. 10 Training Target  Ta Stars του κάθε αποθετηρίου. Όμως:  Αριθμός stars/αποθετήριο και όχι ανά file  Είναι κάθε αρχείο ενός αποθετηρίου εξίσου σημαντικό;  Μεγάλες διαφορές στον αριθμό των αρχείων κάθε αποθετηρίου. 10000 x stars y stars z stars Dependency Analysis Σχεδίαση και ανάπτυξη συστήματος αξιολόγησης ποιότητας κώδικα με χρήση μετρικών στατικής ανάλυσης και τεχνικών μηχανικής μάθησης Οκτώβριος 2015
  • 11. 11 Dependency analysis Για το αρχείο i του αποθετηρίου j το target είναι: 𝑡𝑎𝑟𝑔𝑒𝑡 𝑖, 𝑗 = log 𝑠𝑡𝑎𝑟𝑠 𝑗 𝑓𝑖𝑙𝑒𝑠 𝑗 + 𝑑𝑒𝑝𝑒𝑛𝑑𝑒𝑛𝑐𝑖𝑒𝑠 𝑖 𝑓𝑖𝑙𝑒𝑠 𝑗 ∗ 𝑠𝑡𝑎𝑟𝑠 𝑗 Εξισορρόπηση των διαφορών στον αριθμό των αρχείων κάθε αποθετηρίου Αρχική ισάξια συνεισφορά του κάθε αρχείου στην διαμόρφωση των stars του αποθετηρίου Κατανομή των stars με βάση το ποσοστό των αρχείων του αποθετηρίου που εξαρτώνται από αυτό Σχεδίαση και ανάπτυξη συστήματος αξιολόγησης ποιότητας κώδικα με χρήση μετρικών στατικής ανάλυσης και τεχνικών μηχανικής μάθησης Οκτώβριος 2015
  • 12. 12 Dependency analysis - Παράδειγμα Σχεδίαση και ανάπτυξη συστήματος αξιολόγησης ποιότητας κώδικα με χρήση μετρικών στατικής ανάλυσης και τεχνικών μηχανικής μάθησης Οκτώβριος 2015 Αποθετήριο με 2000 αρχεία κώδικα και 10000 stars:  Αρχείο (f1) από το οποίο εξαρτώνται 150 αρχεία 𝑠𝑡𝑎𝑟𝑠 𝑓1 = log( 10000 2000 + 150 2000 ∗ 10000) 𝑠𝑡𝑎𝑟𝑠 𝑓1 = 2.8779 Αποθετήριο με 50 αρχεία κώδικα και 1000 stars:  Αρχείο (f2) από το οποίο εξαρτώνται 10 αρχεία 𝑠𝑡𝑎𝑟𝑠 𝑓2 = log( 1000 50 + 10 50 ∗ 1000) 𝑠𝑡𝑎𝑟𝑠 𝑓2 = 2.34 𝑠𝑡𝑎𝑟𝑠 𝑓2 = 220 𝑠𝑡𝑎𝑟𝑠 𝑓1 = 755
  • 13. 13 ΑΝΝs model 𝑖=1 𝑁 𝑋𝑖 𝑊𝑖,𝑗 𝑡𝑎𝑛𝑠𝑖𝑔 𝑖=1 𝑁 𝑋𝑖 𝑊𝑖,𝑗 + 𝑏(𝑗) 𝑌 = 𝑡𝑎𝑛𝑠𝑖𝑔 𝑖=1 𝑁 𝐾𝑖 𝑊𝑖 + 𝑏 Σχεδίαση και ανάπτυξη συστήματος αξιολόγησης ποιότητας κώδικα με χρήση μετρικών στατικής ανάλυσης και τεχνικών μηχανικής μάθησης Οκτώβριος 2015
  • 14. 14 ΑΝΝs model Το μοντέλο είναι σε θέση να εκτιμήσει το target set με μέσο σφάλμα 13% Σχεδίαση και ανάπτυξη συστήματος αξιολόγησης ποιότητας κώδικα με χρήση μετρικών στατικής ανάλυσης και τεχνικών μηχανικής μάθησης Οκτώβριος 2015
  • 15. 15 ΑΝΝs model Σχεδίαση και ανάπτυξη συστήματος αξιολόγησης ποιότητας κώδικα με χρήση μετρικών στατικής ανάλυσης και τεχνικών μηχανικής μάθησης Οκτώβριος 2015
  • 16. 16 SVMs One Class Classifier  Ανάγκη οριοθέτησης του χώρου μελέτης ο οποίος αποτελείται από κώδικα που καλύπτει κάποιες ελάχιστες προδιαγραφές ποιότητας  Θα χρησιμοποιηθούν όλες οι μετρικές;  Αν όχι ποιες και ποιο θα είναι το κριτήριο επιλογής; Principal Component Analysis Σχεδίαση και ανάπτυξη συστήματος αξιολόγησης ποιότητας κώδικα με χρήση μετρικών στατικής ανάλυσης και τεχνικών μηχανικής μάθησης Οκτώβριος 2015
  • 17. 17 PCA – Principal Component Analysis Component Initial Eigenvalues Total % of Variance Cumulative % 1 14.936 20.460 20.460 2 4.821 6.604 27.064 3 4.735 6.486 33.551 4 4.276 5.858 39.408 5 3.930 5.383 44.791 6 3.692 5.057 49.848 7 3.561 4.879 54.727 8 2.816 3.857 58.584 9 2.566 3.516 62.100 10 2.376 3.255 65.354 11 2.154 2.951 68.305 12 2.082 2.852 71.158 13 1.921 2.632 73.789 14 1.791 2.453 76.243 15 1.733 2.374 78.617 16 1.373 1.881 80.498 17 1.249 1.711 82.209 18 1.152 1.578 83.788 19 1.029 1.410 85.198 20 1.002 1.373 86.571  Average Block Depth  Average Cyclomatic Complexity  Average Depth of Inheritance Hierarchy  Average Lines of Code per Method  Comments Ratio  Distance  Lines of Code Σχεδίαση και ανάπτυξη συστήματος αξιολόγησης ποιότητας κώδικα με χρήση μετρικών στατικής ανάλυσης και τεχνικών μηχανικής μάθησης Οκτώβριος 2015
  • 18. 18 SVMs One Class Classifier 𝑥, 𝑦 = exp( − 𝑥 − 𝑦 2 2𝜎2 )  Χρήση Gaussian radial basis kernel function  Gamma Parameter (1/σ2) = 0.04  Tolerance = 0.001 Σχεδίαση και ανάπτυξη συστήματος αξιολόγησης ποιότητας κώδικα με χρήση μετρικών στατικής ανάλυσης και τεχνικών μηχανικής μάθησης Οκτώβριος 2015
  • 19. 19 Τελικό σύστημα Static Analysis Metrics One class Classifier Neural Networks Model Pass Fail Επανεξέταση Rating Σχεδίαση και ανάπτυξη συστήματος αξιολόγησης ποιότητας κώδικα με χρήση μετρικών στατικής ανάλυσης και τεχνικών μηχανικής μάθησης Οκτώβριος 2015
  • 20. 20 Πειράματα Σχεδίαση και ανάπτυξη συστήματος αξιολόγησης ποιότητας κώδικα με χρήση μετρικών στατικής ανάλυσης και τεχνικών μηχανικής μάθησης Οκτώβριος 2015
  • 21. 21 Πειράματα Σχεδίαση και ανάπτυξη συστήματος αξιολόγησης ποιότητας κώδικα με χρήση μετρικών στατικής ανάλυσης και τεχνικών μηχανικής μάθησης Οκτώβριος 2015
  • 22. 22 Πειράματα Σχεδίαση και ανάπτυξη συστήματος αξιολόγησης ποιότητας κώδικα με χρήση μετρικών στατικής ανάλυσης και τεχνικών μηχανικής μάθησης Οκτώβριος 2015
  • 23. 23 Services που υλοποιήθηκαν  Command Line Tool  Web Service Σχεδίαση και ανάπτυξη συστήματος αξιολόγησης ποιότητας κώδικα με χρήση μετρικών στατικής ανάλυσης και τεχνικών μηχανικής μάθησης Οκτώβριος 2015
  • 24. 24 Command Line Tool Σχεδίαση και ανάπτυξη συστήματος αξιολόγησης ποιότητας κώδικα με χρήση μετρικών στατικής ανάλυσης και τεχνικών μηχανικής μάθησης Οκτώβριος 2015
  • 25. 25 Web Service Σχεδίαση και ανάπτυξη συστήματος αξιολόγησης ποιότητας κώδικα με χρήση μετρικών στατικής ανάλυσης και τεχνικών μηχανικής μάθησης Οκτώβριος 2015
  • 26. 26 Συμπεράσματα  Αξιόπιστη μετάφραση μετρικών στατικής ανάλυσης σε εκτίμηση ποιότητας κώδικα.  Χρήση του συστήματος που υλοποιήθηκε ως αυτόνομο εργαλείο στατικής ανάλυσης και εντοπισμού κακών πρακτικών συγγραφής κώδικα.  Δυνατότητα χρήσης του συστήματος ως middleware στη διαδικασία εύρεσης κώδικα για την αξιολόγηση των αποτελεσμάτων.  Τα πειράματα έδειξαν ότι το σύστημα είναι σε θέση να εντοπίζει με μικρό ποσοστό λάθους τα αρχεία κώδικα που αποκλίνουν από τις ενδεικνυόμενες τιμές στατικής ανάλυσης. Σχεδίαση και ανάπτυξη συστήματος αξιολόγησης ποιότητας κώδικα με χρήση μετρικών στατικής ανάλυσης και τεχνικών μηχανικής μάθησης Οκτώβριος 2015
  • 27. 27 Ανοιχτά Θέματα  Προσθήκη μηχανισμού δυναμικής ανάλυσης  Εφαρμογή και για άλλες γλώσσες προγραμματισμού  Περιορισμός των μετρικών για γρηγορότερη εκτέλεση  Δυνατότητα συνδυασμού αποτελεσμάτων  Δυνατότητα βελτίωσης αποτελεσμάτων Σχεδίαση και ανάπτυξη συστήματος αξιολόγησης ποιότητας κώδικα με χρήση μετρικών στατικής ανάλυσης και τεχνικών μηχανικής μάθησης Οκτώβριος 2015
  • 28. 28 Σας ευχαριστώ πολύ για την προσοχή σας Σχεδίαση και ανάπτυξη συστήματος αξιολόγησης ποιότητας κώδικα με χρήση μετρικών στατικής ανάλυσης και τεχνικών μηχανικής μάθησης Οκτώβριος 2015