SlideShare una empresa de Scribd logo
1 de 22
1
Αξιολόγηση μοντέλων αναγνωσιμότητας κώδικα σε μικρές μεταβολές και κατασκευή νέου μοντέλου
Ιούλιος 2022
Αξιολόγηση μοντέλων
αναγνωσιμότητας κώδικα
σε μικρές μεταβολές και
κατασκευή νέου μοντέλου
Διπλωματική Εργασία
Εκπόνηση:
Ανέστης Βαρσαμίδης
ΑΕΜ 9112
Επίβλεψη:
Καθηγητής Ανδρέας Συμεωνίδης
Υποψήφιος διδάκτωρ
Θωμάς Καρανικιώτης
2
Αξιολόγηση μοντέλων αναγνωσιμότητας κώδικα σε μικρές μεταβολές και κατασκευή νέου μοντέλου
Ιούλιος 2022
Μοντέλα αναγνωσιμότητας κώδικα
Είναι συνάρτηση διαφόρων μετρικών,
όπως αριθμός γραμμών, μέσο μήκος
γραμμών, μέσο μήκος identifiers,
DFT της στοίχισης του κώδικα, κα.
Τα μοντέλα που θα αξιολογήσουμε:
● Buse&Weimer
● Posnett
● Dorn (προσέγγιση)
● Scalabrino
● Καρανικιώτης (ISSEL)
Μοντέλο
αναγνωσιμότητας
Αρχείο
κώδικα
Σκορ
3
Αξιολόγηση μοντέλων αναγνωσιμότητας κώδικα σε μικρές μεταβολές και κατασκευή νέου μοντέλου
Ιούλιος 2022
Στόχος της διπλωματικής
Να εξετάσουμε εάν τα σκορ αναγνωσιμότητας κώδικα βελτιώνονται μετά
από commit που υποστηρίζουν ότι βελτιώνουν την αναγνωσιμότητα
Να βρούμε ποιες μετρικές μεταβάλλονται σημαντικά στα
commits αναγνωσιμότητας,
και άρα θα μπορούσαν να χρησιμοποιηθούν σε ένα νέο μοντέλο;
Να φτιάξουμε ένα μοντέλο αναγνωσιμότητας με αυτές τις μετρικές
4
Αξιολόγηση μοντέλων αναγνωσιμότητας κώδικα σε μικρές μεταβολές και κατασκευή νέου μοντέλου
Ιούλιος 2022
Υπολογισμός των
μετρικών και σκορ
5
Αξιολόγηση μοντέλων αναγνωσιμότητας κώδικα σε μικρές μεταβολές και κατασκευή νέου μοντέλου
Ιούλιος 2022
Επιλογή repositories: από τα δημοφιλέστερα του GitHub σε Java
Γιατί Java? Όλα τα μοντέλα υποστηρίζουν κώδικες Java
Επιλογή readability commits:
- Αρχικά αναζήτηση στα μηνύματα των commit με λέξεις-κλειδιά, πχ
readable, readability, easier to read, comprehensible, understandable
- Έπειτα, έλεγχος των μηνυμάτων για επαλήθευση ότι το commit έχει σκοπό
τη βελτίωση της αναγνωσιμότητας. Περίπου τα μισά ήταν ψευδώς θετικά
Επιλογή non-readability commits, για σύγκριση: τυχαία
6
Αξιολόγηση μοντέλων αναγνωσιμότητας κώδικα σε μικρές μεταβολές και κατασκευή νέου μοντέλου
Ιούλιος 2022
“Υλοποίηση” των μοντέλων
● Μοντέλα Buse-Weimer, Scalabrino, Issel: Χρήση έτοιμων εκτελέσιμων,
εκπαιδευμένων μοντέλων
○ στο Buse-Weimer, σαν είσοδος δινόταν snippets 8 γραμμών
● Μοντέλο Posnett: Χρήση του τύπου λογιστικής παλινδρόμησης που
περιέχει στο paper: logistic(8.87 − 0.033 V + 0.40 Lines −1.5 Entropy)
● Dorn: προσπάθεια ανακατασκευής μοντέλου από τα δεδομένα και το paper
○ κατώφλι για Long lines? Επιλέξαμε Q3 +1.5 IQR του μήκους των μη κενών γραμμών από
τα αρχεία Java του dataset. = 113 χαρακτήρες
○ Σταθερά +c ? Για ελάχιστο MSE μεταξύ αναγν. από ερωτηματολόγια, και του σκορ.
c=1.4
○ Τελικά, σκορ = logistic(-0.0388 * Dorn DFT Spaces - 0.0349 * long lines - 0.0114 *
lines_per_identifier + 0.004 * keywords + 1.4)
7
Αξιολόγηση μοντέλων αναγνωσιμότητας κώδικα σε μικρές μεταβολές και κατασκευή νέου μοντέλου
Ιούλιος 2022
Τα ερωτήματα που μελετάμε
Από το metric generation καταλήγουμε με 2 τιμές για κάθε μετρική (ή μοντέλο)
για κάθε αρχείο Java που τροποποιήθηκε σε κάποιο commit: την μετρική πριν το
commit και μετά
Q1a: σε ποιες μετρικές ή μοντέλα παρατηρείται αύξηση της μέσης τιμής μετά
από readability commits
Δηλαδή για κάθε μετρική συγκρίνουμε τα 2 σύνολα: {η μετρική για κάθε αρχείο
πριν το commit} {η μετρική για κάθε αρχείο μετά το commit}
Q1b: το ίδιο για τα non-readability commits
8
Αξιολόγηση μοντέλων αναγνωσιμότητας κώδικα σε μικρές μεταβολές και κατασκευή νέου μοντέλου
Ιούλιος 2022
Τα ερωτήματα που μελετάμε (2)
Q2: ποιες μετρικές ή μοντέλα μεταβάλλονται στα readability commits
διαφορετικά από ότι στα non-readability
Δηλαδή για κάθε μετρική συγκρίνουμε τα 2 σύνολα: {οι διαφορές μετά-πριν για
κάθε αρχείο σε readability commits} {οι διαφορές για κάθε αρχείο σε non-
readability commits}
Q3: μπορεί να κατασκευαστεί ένα μοντέλο αναγνωσιμότητας
ώστε το σκορ να βελτιώνεται μετά από readability commits;
9
Αξιολόγηση μοντέλων αναγνωσιμότητας κώδικα σε μικρές μεταβολές και κατασκευή νέου μοντέλου
Ιούλιος 2022
Πώς εξετάζουμε τα ερωτήματα
Cohen’s delta
για interval δεδομένα
d = (μ1 - μ2) / σ
t-test για διαφορά μέσων τιμών
Τ = d √N >? Tthreshold
Cliff’s Delta
για ordinal δεδομένα
Πόσο συχνά οι τιμές του ενός συνόλου
είναι μεγαλύτερες από του δεύτερου
Mann–Whitney U statistic
U = (d+1)*mn / 2 >? Uthreshold
Effect size |d|
Very small 0.01
Small 0.20
Medium 0.50
Large 0.80
10
Αξιολόγηση μοντέλων αναγνωσιμότητας κώδικα σε μικρές μεταβολές και κατασκευή νέου μοντέλου
Ιούλιος 2022
Κριτήρια
Για το t-test και το Mann-Whitney U, το κατώφλια υπολογίζονται με βάση την
μηδενική υπόθεση, ότι δεν υπάρχει διαφορά στις δύο κατανομές, και ότι είναι
κανονικές. Επιλέγουμε κριτήριο p-value < 0.05
Για το Cohen’s d:
- στο Q1, όλες οι μετρικές είχαν λιγότερο από μικρό |d| < 0.1
Αναμενόμενο, αφού μεσολαβεί μόνο ένα commit. Βάζουμε όριο |d| > 0.01
- στο Q2 βάζουμε όριο |d|>0.14, δηλαδή σχεδόν μικρό effect size
11
Αξιολόγηση μοντέλων αναγνωσιμότητας κώδικα σε μικρές μεταβολές και κατασκευή νέου μοντέλου
Ιούλιος 2022
Ομαδοποίηση ανά commit
Τα ερωτήματα εξετάζονται 2 φορές:
όταν τα Cliff’s, Cohen’s d κλπ υπολογίζονται για μία μετρική στα διάφορα
αρχεία,
και όταν, πριν υπολογίσουμε τα Cliff’s, Cohen’s d κλπ, ομαδοποιούμε τα
δεδομένα ανά commit. Δηλαδή, λέμε ότι πριν το commit x, η μετρική Α είναι ίση
με το μέσο όρο των τιμών της Α στα αρχεία που μεταβάλλονται στο commit x.
Αυτό τον τρόπο θα τον ονομάζουμε per-commit
12
Αξιολόγηση μοντέλων αναγνωσιμότητας κώδικα σε μικρές μεταβολές και κατασκευή νέου μοντέλου
Ιούλιος 2022
Κατασκευή μοντέλου και επιλογή χαρακτηριστικών εισόδου
Ακολουθιακή
οπισθοδρομική επιλογή
13
Αξιολόγηση μοντέλων αναγνωσιμότητας κώδικα σε μικρές μεταβολές και κατασκευή νέου μοντέλου
Ιούλιος 2022
Αποτελέσματα:
Q1a
πριν vs μετά
σε επίπεδο αρχείου
14
Αξιολόγηση μοντέλων αναγνωσιμότητας κώδικα σε μικρές μεταβολές και κατασκευή νέου μοντέλου
Ιούλιος 2022
Αποτελέσματα:
Q1a
πριν vs μετά
σε επίπεδο commit
15
Αξιολόγηση μοντέλων αναγνωσιμότητας κώδικα σε μικρές μεταβολές και κατασκευή νέου μοντέλου
Ιούλιος 2022
Μετρική
(σε επίπεδο αρχείου)
q1a
cohen
q1a cliff q1a ttest
pval
q1a wilcoxon
pval
q1b
cohen
q1b cliff q1b ttest
pval
q1b wilcoxon
pval
BW Avg blank lines 0.03795 0.01712 0.000003 0.014149 -0.01029 -0.55715 0.005039 0.000000
CC (Clone Coverage) -0.04800 -0.99747 0.000009 0.000000 0.00203 -0.97974 0.750903 0.000000
BW Avg Assignment -0.03325 -0.01731 0.000013 0.000000 0.00904 0.01767 0.016432 0.675391
CLLC (Cl. Log. Line Cov.) -0.04944 -0.99747 0.000020 0.000000 0.00087 -0.98043 0.933312 0.000000
Dorn Visual X Numbers -0.02632 -0.01055 0.000045 0.036398 0.01728 0.01213 0.000027 0.000537
NLE (Nesting Lvl Else-If) -0.03021 -0.99747 0.000049 0.000000 0.00813 -0.95911 0.011213 0.000000
BW Avg loops -0.02086 -0.00791 0.000154 0.000000 0.01436 0.00882 0.004245 0.000000
CLC (Clone Line Cov.) -0.04269 -0.99747 0.000217 0.000000 0.00474 -0.98043 0.383319 0.000000
NA (Number of Attributes) -0.02529 -0.97351 0.000264 0.000000 0.00570 -0.75052 0.000000 0.000000
NL (Nesting Level) -0.02957 -0.99747 0.000858 0.000000 0.00586 -0.75046 0.023617 0.000000
BW Avg conditionals -0.02414 -0.01458 0.001004 0.000011 0.00224 0.00349 0.461382 0.000001
BW Avg commas -0.01957 -0.00880 0.001965 0.023494 0.00602 -0.64362 0.012068 0.156621
TNA (Total # Attributes) -0.01938 -0.65000 0.002735 0.000000 0.00632 -0.71834 0.000000 0.000000
BW Max keywords -0.01687 -0.01357 0.004874 0.005659 -0.00124 0.01731 0.706635 0.364976
NLA (# Local Attributes) -0.01057 -0.34891 0.006834 0.000000 0.00537 -0.74814 0.000000 0.000000
NS (Number of Setters) -0.01385 -0.99747 0.010056 0.000000 0.00276 -0.88871 0.000002 0.000000
BW Avg spaces -0.02144 -0.01080 0.011362 0.000099 0.00647 -0.77531 0.012598 0.000003
BW Avg parenthesis -0.01320 -0.00655 0.017536 0.002476 0.00534 -0.55999 0.021778 0.690260
issel_r_cmplx 0.02476 -0.92892 0.019222 0.004127 0.00943 -0.75445 0.140701 0.000008
BW Avg indentation length -0.02039 -0.00958 0.021713 0.000081 0.00482 -0.75455 0.069441 0.008891
Dorn score 0.01716 0.00258 0.024127 0.000060 -0.02144 -0.58388 0.000001 0.000000
Issel score 0.02051 -0.76760 0.024438 0.017263 0.00650 -0.88910 0.213736 0.000017
Dorn Areas Identifiers 0.01175 0.00428 0.034597 0.000158 0.01341 -0.56156 0.000000 0.000000
Posnett entropy 0.01784 0.00629 0.035151 0.000041 0.01036 -0.77064 0.000575 0.000001
16
Αξιολόγηση μοντέλων αναγνωσιμότητας κώδικα σε μικρές μεταβολές και κατασκευή νέου μοντέλου
Ιούλιος 2022
Αποτελέσματα: Q2 readability vs non-read. commits
σε επίπεδο αρχείου
17
Αξιολόγηση μοντέλων αναγνωσιμότητας κώδικα σε μικρές μεταβολές και κατασκευή νέου μοντέλου
Ιούλιος 2022
Αποτελέσματα: Q2 readability vs non-read. commits
σε επίπεδο commit
18
Αξιολόγηση μοντέλων αναγνωσιμότητας κώδικα σε μικρές μεταβολές και κατασκευή νέου μοντέλου
Ιούλιος 2022
Μετρική (σε επίπεδο αρχείου) Cohen Cliff t-test p-
value
mann-whitn p-
value
BW Max Identifiers Length -0.25118 -0.30673 1.50E-15 7.10E-14
BW Avg blank lines 0.19745 -0.71919 3.44E-10 1.05E-09
Dorn Visual X Numbers -0.19099 -0.88854 1.25E-09 5.87E-03
NA (Number of Attributes) -0.19437 -0.83025 1.49E-09 5.31E-14
Dorn DFT Operators -0.17844 -0.45594 1.38E-08 1.79E-16
NLA (Number of Local Attributes) -0.18101 -0.94814 1.66E-08 2.42E-11
TNLA (Total Number of Local Attributes) -0.17606 -0.94689 4.00E-08 1.63E-13
BW Avg Assignment -0.17256 -0.92510 4.03E-08 1.63E-04
NLE (Nesting Level Else-If) -0.17345 -0.98602 6.16E-08 3.99E-13
TNA (Total Number of Attributes) -0.17147 -0.82821 9.47E-08 3.67E-15
Dorn DFT Conditionals -0.16216 -0.44446 2.48E-07 5.82E-16
New Semantic Text Coherence Standard -0.16161 -0.45523 2.72E-07 2.56E-17
Posnett volume -0.15455 -0.46492 8.75E-07 1.57E-29
Dorn score 0.14697 -0.91512 2.90E-06 3.05E-10
NS (Number of Setters) -0.14851 -0.99301 3.70E-06 1.79E-08
NL (Nesting Level) -0.14682 -0.98818 4.58E-06 4.26E-11
Dorn DFT Numbers -0.14345 -0.40272 4.98E-06 1.98E-14
Dorn Visual Y Numbers -0.14235 -0.42903 5.88E-06 2.95E-13
Dorn DFT Spaces -0.14078 -0.46292 7.44E-06 4.58E-16
Dorn Visual X Identifiers -0.14073 -0.85257 7.47E-06 3.88E-05
Dorn Visual X Operators -0.14040 -0.84311 7.85E-06 4.30E-05
Dorn Visual X Keywords -0.14034 -0.84780 7.92E-06 3.36E-06
19
Αξιολόγηση μοντέλων αναγνωσιμότητας κώδικα σε μικρές μεταβολές και κατασκευή νέου μοντέλου
Ιούλιος 2022
Αρχικό σύνολο features μοντέλων
Μετρικές που μεταβάλλονται μετά από readability commits και:
είτε μεταβάλλονται αντίθετα μετά από non-readability commits, είτε καθόλου
BW Avg Assignment BW Avg loops CC (Clone Coverage) NL (Nesting Level)
BW Avg blank lines BW Avg
parenthesis
CLC (Clone Line
Coverage)
NLA (Number of Local
Attributes)
BW Avg commas BW Avg spaces CLLC (Clone Logical
Line Coverage)
NLE (Nesting Level
Else-If )
BW Avg conditionals BW Max keywords karanikiotis_r_cmplx NS (Number of Setters)
BW Avg indentation
length
Dorn Visual X
Numbers
NA (Number of
Attributes)
TNA (Total Number of
Attributes)
20
Αξιολόγηση μοντέλων αναγνωσιμότητας κώδικα σε μικρές μεταβολές και κατασκευή νέου μοντέλου
Ιούλιος 2022
Παράμετροι υποψήφιων μοντέλων
● Γραμμικό πυρήνα με τις προεπιλεγμένες υπερπαραμέτρους
● Γραμμικό πυρήνα με παράμετρο κανονικοποποίησης C = 0,2 ή C = 3.
(προεπιλογή: C = 1). Και στις δύο περιπτώσεις, χειρότερη απόδοση από C = 1
● Πολυωνυμικό πυρήνα, με συντελεστή γάμμα = 1/(nfeatures ⋅ Var( X ))
(“scale”, η προεπιλογή), ή γάμμα = 1/nfeatures (“auto”).
● Πυρήνα radial basis function (rbf), με συντελεστή γάμμα “scale” ή “auto”.
21
Αξιολόγηση μοντέλων αναγνωσιμότητας κώδικα σε μικρές μεταβολές και κατασκευή νέου μοντέλου
Ιούλιος 2022
Επιλογή features του μοντέλου
RBF πυρήνας Γραμμικός πυρήνας
Μέσο τετραγωνικό σφάλμα vs Αριθμός χαρακτηριστικών εισόδου
22
Αξιολόγηση μοντέλων αναγνωσιμότητας κώδικα σε μικρές μεταβολές και κατασκευή νέου μοντέλου
Ιούλιος 2022

Más contenido relacionado

Más de ISSEL

Autonomous car position calculation with particle filters using traffic data ...
Autonomous car position calculation with particle filters using traffic data ...Autonomous car position calculation with particle filters using traffic data ...
Autonomous car position calculation with particle filters using traffic data ...ISSEL
 
Ανίχνευση αντικειµένων από λίγα δείγµατα µε χρήση γραφηµάτων και τεχνικών ΜΕΤ...
Ανίχνευση αντικειµένων από λίγα δείγµατα µε χρήση γραφηµάτων και τεχνικών ΜΕΤ...Ανίχνευση αντικειµένων από λίγα δείγµατα µε χρήση γραφηµάτων και τεχνικών ΜΕΤ...
Ανίχνευση αντικειµένων από λίγα δείγµατα µε χρήση γραφηµάτων και τεχνικών ΜΕΤ...ISSEL
 
Ανάπτυξη ∆υναµικού και Προσωποποιηµένου Συστήµατος Ερωταπαντήσεων µε Πηγή το ...
Ανάπτυξη ∆υναµικού και Προσωποποιηµένου Συστήµατος Ερωταπαντήσεων µε Πηγή το ...Ανάπτυξη ∆υναµικού και Προσωποποιηµένου Συστήµατος Ερωταπαντήσεων µε Πηγή το ...
Ανάπτυξη ∆υναµικού και Προσωποποιηµένου Συστήµατος Ερωταπαντήσεων µε Πηγή το ...ISSEL
 
Ανάπτυξη Φίλτρων Ανεπιθύμητων Μηνυμάτων με Χρήση Τεχνικών Τεχνητής Νοημοσύνης
Ανάπτυξη Φίλτρων Ανεπιθύμητων Μηνυμάτων με Χρήση Τεχνικών Τεχνητής ΝοημοσύνηςΑνάπτυξη Φίλτρων Ανεπιθύμητων Μηνυμάτων με Χρήση Τεχνικών Τεχνητής Νοημοσύνης
Ανάπτυξη Φίλτρων Ανεπιθύμητων Μηνυμάτων με Χρήση Τεχνικών Τεχνητής ΝοημοσύνηςISSEL
 
Ανάπτυξη Ελληνικών Μοντέλων Εντοπισμού Ρητορικής Μίσους.pptx
Ανάπτυξη Ελληνικών Μοντέλων Εντοπισμού Ρητορικής Μίσους.pptxΑνάπτυξη Ελληνικών Μοντέλων Εντοπισμού Ρητορικής Μίσους.pptx
Ανάπτυξη Ελληνικών Μοντέλων Εντοπισμού Ρητορικής Μίσους.pptxISSEL
 
Σχεδιασμός και υλοποίηση πλήρους και αυτοματοποιημένου εργαλείου ελέγχων ασφά...
Σχεδιασμός και υλοποίηση πλήρους και αυτοματοποιημένου εργαλείου ελέγχων ασφά...Σχεδιασμός και υλοποίηση πλήρους και αυτοματοποιημένου εργαλείου ελέγχων ασφά...
Σχεδιασμός και υλοποίηση πλήρους και αυτοματοποιημένου εργαλείου ελέγχων ασφά...ISSEL
 
Εφαρµογή Τεχνικών Μηχανικής Μάθησης για την Ανάλυση Αλλαγών Κώδικα µε στόχο τ...
Εφαρµογή Τεχνικών Μηχανικής Μάθησης για την Ανάλυση Αλλαγών Κώδικα µε στόχο τ...Εφαρµογή Τεχνικών Μηχανικής Μάθησης για την Ανάλυση Αλλαγών Κώδικα µε στόχο τ...
Εφαρµογή Τεχνικών Μηχανικής Μάθησης για την Ανάλυση Αλλαγών Κώδικα µε στόχο τ...ISSEL
 
Ανάπτυξη συστήματος ιεραρχικής ομαδοποίησης και διαχείρισης κειμένων για αποκ...
Ανάπτυξη συστήματος ιεραρχικής ομαδοποίησης και διαχείρισης κειμένων για αποκ...Ανάπτυξη συστήματος ιεραρχικής ομαδοποίησης και διαχείρισης κειμένων για αποκ...
Ανάπτυξη συστήματος ιεραρχικής ομαδοποίησης και διαχείρισης κειμένων για αποκ...ISSEL
 
Ανάπτυξη γραφικής διεπαφής σε σύστημα προσομοίωσης ηλεκτρονικών αγορών με στό...
Ανάπτυξη γραφικής διεπαφής σε σύστημα προσομοίωσης ηλεκτρονικών αγορών με στό...Ανάπτυξη γραφικής διεπαφής σε σύστημα προσομοίωσης ηλεκτρονικών αγορών με στό...
Ανάπτυξη γραφικής διεπαφής σε σύστημα προσομοίωσης ηλεκτρονικών αγορών με στό...ISSEL
 
Δημιουργία Ολοκληρωμένου Συστήματος Επαλήθευσης Ορθότητας Ισχυρισμών
Δημιουργία Ολοκληρωμένου Συστήματος Επαλήθευσης Ορθότητας ΙσχυρισμώνΔημιουργία Ολοκληρωμένου Συστήματος Επαλήθευσης Ορθότητας Ισχυρισμών
Δημιουργία Ολοκληρωμένου Συστήματος Επαλήθευσης Ορθότητας ΙσχυρισμώνISSEL
 
Εξόρυξη δεδοµένων για τη δυναµική ενσωµάτωση γνώσης σε πολυπρακτορικά συστήµατα
Εξόρυξη δεδοµένων για τη δυναµική ενσωµάτωση γνώσης σε πολυπρακτορικά συστήµαταΕξόρυξη δεδοµένων για τη δυναµική ενσωµάτωση γνώσης σε πολυπρακτορικά συστήµατα
Εξόρυξη δεδοµένων για τη δυναµική ενσωµάτωση γνώσης σε πολυπρακτορικά συστήµαταISSEL
 
Ανάπτυξη Μηχανισμών Αυτοματοποίησης των διαδικασιών κατασκευής συστημάτων λο...
Ανάπτυξη Μηχανισμών Αυτοματοποίησης των  διαδικασιών κατασκευής συστημάτων λο...Ανάπτυξη Μηχανισμών Αυτοματοποίησης των  διαδικασιών κατασκευής συστημάτων λο...
Ανάπτυξη Μηχανισμών Αυτοματοποίησης των διαδικασιών κατασκευής συστημάτων λο...ISSEL
 
ΕΥΦΥΗΣ ΜΕΘΟΔΟΛΟΓΙΑ ΑΠΟΤΙΜΗΣΗΣ ΤΟΥ ΒΑΘΜΟΥ ΔΙΑΤΗΡΗΣΙΜΟΤΗΤΑΣ ΕΡΓΩΝ ΛΟΓΙΣΜΙΚΟΥ ΜΕ...
ΕΥΦΥΗΣ ΜΕΘΟΔΟΛΟΓΙΑ ΑΠΟΤΙΜΗΣΗΣ ΤΟΥ ΒΑΘΜΟΥ ΔΙΑΤΗΡΗΣΙΜΟΤΗΤΑΣ ΕΡΓΩΝ ΛΟΓΙΣΜΙΚΟΥ ΜΕ...ΕΥΦΥΗΣ ΜΕΘΟΔΟΛΟΓΙΑ ΑΠΟΤΙΜΗΣΗΣ ΤΟΥ ΒΑΘΜΟΥ ΔΙΑΤΗΡΗΣΙΜΟΤΗΤΑΣ ΕΡΓΩΝ ΛΟΓΙΣΜΙΚΟΥ ΜΕ...
ΕΥΦΥΗΣ ΜΕΘΟΔΟΛΟΓΙΑ ΑΠΟΤΙΜΗΣΗΣ ΤΟΥ ΒΑΘΜΟΥ ΔΙΑΤΗΡΗΣΙΜΟΤΗΤΑΣ ΕΡΓΩΝ ΛΟΓΙΣΜΙΚΟΥ ΜΕ...ISSEL
 
Μηχανισμοί αυτοματοποίησης διαδικασιών σχεδίασης, υλοποίησης και ανάπτυξης λο...
Μηχανισμοί αυτοματοποίησης διαδικασιών σχεδίασης, υλοποίησης και ανάπτυξης λο...Μηχανισμοί αυτοματοποίησης διαδικασιών σχεδίασης, υλοποίησης και ανάπτυξης λο...
Μηχανισμοί αυτοματοποίησης διαδικασιών σχεδίασης, υλοποίησης και ανάπτυξης λο...ISSEL
 
Εξόρυξη δεδομένων τεχνολογίας λογισμικού για επαναχρησιμοποίηση λογισμικού
Εξόρυξη δεδομένων τεχνολογίας λογισμικού για επαναχρησιμοποίηση λογισμικούΕξόρυξη δεδομένων τεχνολογίας λογισμικού για επαναχρησιμοποίηση λογισμικού
Εξόρυξη δεδομένων τεχνολογίας λογισμικού για επαναχρησιμοποίηση λογισμικούISSEL
 
Ανάλυση ∆εδοµένων ΄Εργων Λογισµικού για Ανάπτυξη σε Νέα Πεδία Εφαρµογής
Ανάλυση ∆εδοµένων ΄Εργων Λογισµικού για Ανάπτυξη σε Νέα Πεδία ΕφαρµογήςΑνάλυση ∆εδοµένων ΄Εργων Λογισµικού για Ανάπτυξη σε Νέα Πεδία Εφαρµογής
Ανάλυση ∆εδοµένων ΄Εργων Λογισµικού για Ανάπτυξη σε Νέα Πεδία ΕφαρµογήςISSEL
 
Camera-based localization of annotated objects in indoor environments
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
 
Εντοπισμός θέσης επισημασμένου αντικειμένου σε εσωτερικό χώρο με χρήση πολλαπ...
Εντοπισμός θέσης επισημασμένου αντικειμένου σε εσωτερικό χώρο με χρήση πολλαπ...Εντοπισμός θέσης επισημασμένου αντικειμένου σε εσωτερικό χώρο με χρήση πολλαπ...
Εντοπισμός θέσης επισημασμένου αντικειμένου σε εσωτερικό χώρο με χρήση πολλαπ...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...
Design and implementation of an automation mechanism to automatically develop...ISSEL
 
ΣΧΕΔΙΑΣΗ ΚΑΙ ΑΝΑΠΤΥΞΗ ΜΗΧΑΝΙΣΜΟΥ ΑΥΤΟΜΑΤΟΠΟΙΗΣΗΣ ΤΗΣ ΑΝΑΠΤΥΞΗΣ ΓΡΑΦΙΚΩΝ ΕΝΤΟΛ...
ΣΧΕΔΙΑΣΗ ΚΑΙ ΑΝΑΠΤΥΞΗ ΜΗΧΑΝΙΣΜΟΥ ΑΥΤΟΜΑΤΟΠΟΙΗΣΗΣ ΤΗΣ ΑΝΑΠΤΥΞΗΣ ΓΡΑΦΙΚΩΝ ΕΝΤΟΛ...ΣΧΕΔΙΑΣΗ ΚΑΙ ΑΝΑΠΤΥΞΗ ΜΗΧΑΝΙΣΜΟΥ ΑΥΤΟΜΑΤΟΠΟΙΗΣΗΣ ΤΗΣ ΑΝΑΠΤΥΞΗΣ ΓΡΑΦΙΚΩΝ ΕΝΤΟΛ...
ΣΧΕΔΙΑΣΗ ΚΑΙ ΑΝΑΠΤΥΞΗ ΜΗΧΑΝΙΣΜΟΥ ΑΥΤΟΜΑΤΟΠΟΙΗΣΗΣ ΤΗΣ ΑΝΑΠΤΥΞΗΣ ΓΡΑΦΙΚΩΝ ΕΝΤΟΛ...ISSEL
 

Más de ISSEL (20)

Autonomous car position calculation with particle filters using traffic data ...
Autonomous car position calculation with particle filters using traffic data ...Autonomous car position calculation with particle filters using traffic data ...
Autonomous car position calculation with particle filters using traffic data ...
 
Ανίχνευση αντικειµένων από λίγα δείγµατα µε χρήση γραφηµάτων και τεχνικών ΜΕΤ...
Ανίχνευση αντικειµένων από λίγα δείγµατα µε χρήση γραφηµάτων και τεχνικών ΜΕΤ...Ανίχνευση αντικειµένων από λίγα δείγµατα µε χρήση γραφηµάτων και τεχνικών ΜΕΤ...
Ανίχνευση αντικειµένων από λίγα δείγµατα µε χρήση γραφηµάτων και τεχνικών ΜΕΤ...
 
Ανάπτυξη ∆υναµικού και Προσωποποιηµένου Συστήµατος Ερωταπαντήσεων µε Πηγή το ...
Ανάπτυξη ∆υναµικού και Προσωποποιηµένου Συστήµατος Ερωταπαντήσεων µε Πηγή το ...Ανάπτυξη ∆υναµικού και Προσωποποιηµένου Συστήµατος Ερωταπαντήσεων µε Πηγή το ...
Ανάπτυξη ∆υναµικού και Προσωποποιηµένου Συστήµατος Ερωταπαντήσεων µε Πηγή το ...
 
Ανάπτυξη Φίλτρων Ανεπιθύμητων Μηνυμάτων με Χρήση Τεχνικών Τεχνητής Νοημοσύνης
Ανάπτυξη Φίλτρων Ανεπιθύμητων Μηνυμάτων με Χρήση Τεχνικών Τεχνητής ΝοημοσύνηςΑνάπτυξη Φίλτρων Ανεπιθύμητων Μηνυμάτων με Χρήση Τεχνικών Τεχνητής Νοημοσύνης
Ανάπτυξη Φίλτρων Ανεπιθύμητων Μηνυμάτων με Χρήση Τεχνικών Τεχνητής Νοημοσύνης
 
Ανάπτυξη Ελληνικών Μοντέλων Εντοπισμού Ρητορικής Μίσους.pptx
Ανάπτυξη Ελληνικών Μοντέλων Εντοπισμού Ρητορικής Μίσους.pptxΑνάπτυξη Ελληνικών Μοντέλων Εντοπισμού Ρητορικής Μίσους.pptx
Ανάπτυξη Ελληνικών Μοντέλων Εντοπισμού Ρητορικής Μίσους.pptx
 
Σχεδιασμός και υλοποίηση πλήρους και αυτοματοποιημένου εργαλείου ελέγχων ασφά...
Σχεδιασμός και υλοποίηση πλήρους και αυτοματοποιημένου εργαλείου ελέγχων ασφά...Σχεδιασμός και υλοποίηση πλήρους και αυτοματοποιημένου εργαλείου ελέγχων ασφά...
Σχεδιασμός και υλοποίηση πλήρους και αυτοματοποιημένου εργαλείου ελέγχων ασφά...
 
Εφαρµογή Τεχνικών Μηχανικής Μάθησης για την Ανάλυση Αλλαγών Κώδικα µε στόχο τ...
Εφαρµογή Τεχνικών Μηχανικής Μάθησης για την Ανάλυση Αλλαγών Κώδικα µε στόχο τ...Εφαρµογή Τεχνικών Μηχανικής Μάθησης για την Ανάλυση Αλλαγών Κώδικα µε στόχο τ...
Εφαρµογή Τεχνικών Μηχανικής Μάθησης για την Ανάλυση Αλλαγών Κώδικα µε στόχο τ...
 
Ανάπτυξη συστήματος ιεραρχικής ομαδοποίησης και διαχείρισης κειμένων για αποκ...
Ανάπτυξη συστήματος ιεραρχικής ομαδοποίησης και διαχείρισης κειμένων για αποκ...Ανάπτυξη συστήματος ιεραρχικής ομαδοποίησης και διαχείρισης κειμένων για αποκ...
Ανάπτυξη συστήματος ιεραρχικής ομαδοποίησης και διαχείρισης κειμένων για αποκ...
 
Ανάπτυξη γραφικής διεπαφής σε σύστημα προσομοίωσης ηλεκτρονικών αγορών με στό...
Ανάπτυξη γραφικής διεπαφής σε σύστημα προσομοίωσης ηλεκτρονικών αγορών με στό...Ανάπτυξη γραφικής διεπαφής σε σύστημα προσομοίωσης ηλεκτρονικών αγορών με στό...
Ανάπτυξη γραφικής διεπαφής σε σύστημα προσομοίωσης ηλεκτρονικών αγορών με στό...
 
Δημιουργία Ολοκληρωμένου Συστήματος Επαλήθευσης Ορθότητας Ισχυρισμών
Δημιουργία Ολοκληρωμένου Συστήματος Επαλήθευσης Ορθότητας ΙσχυρισμώνΔημιουργία Ολοκληρωμένου Συστήματος Επαλήθευσης Ορθότητας Ισχυρισμών
Δημιουργία Ολοκληρωμένου Συστήματος Επαλήθευσης Ορθότητας Ισχυρισμών
 
Εξόρυξη δεδοµένων για τη δυναµική ενσωµάτωση γνώσης σε πολυπρακτορικά συστήµατα
Εξόρυξη δεδοµένων για τη δυναµική ενσωµάτωση γνώσης σε πολυπρακτορικά συστήµαταΕξόρυξη δεδοµένων για τη δυναµική ενσωµάτωση γνώσης σε πολυπρακτορικά συστήµατα
Εξόρυξη δεδοµένων για τη δυναµική ενσωµάτωση γνώσης σε πολυπρακτορικά συστήµατα
 
Ανάπτυξη Μηχανισμών Αυτοματοποίησης των διαδικασιών κατασκευής συστημάτων λο...
Ανάπτυξη Μηχανισμών Αυτοματοποίησης των  διαδικασιών κατασκευής συστημάτων λο...Ανάπτυξη Μηχανισμών Αυτοματοποίησης των  διαδικασιών κατασκευής συστημάτων λο...
Ανάπτυξη Μηχανισμών Αυτοματοποίησης των διαδικασιών κατασκευής συστημάτων λο...
 
ΕΥΦΥΗΣ ΜΕΘΟΔΟΛΟΓΙΑ ΑΠΟΤΙΜΗΣΗΣ ΤΟΥ ΒΑΘΜΟΥ ΔΙΑΤΗΡΗΣΙΜΟΤΗΤΑΣ ΕΡΓΩΝ ΛΟΓΙΣΜΙΚΟΥ ΜΕ...
ΕΥΦΥΗΣ ΜΕΘΟΔΟΛΟΓΙΑ ΑΠΟΤΙΜΗΣΗΣ ΤΟΥ ΒΑΘΜΟΥ ΔΙΑΤΗΡΗΣΙΜΟΤΗΤΑΣ ΕΡΓΩΝ ΛΟΓΙΣΜΙΚΟΥ ΜΕ...ΕΥΦΥΗΣ ΜΕΘΟΔΟΛΟΓΙΑ ΑΠΟΤΙΜΗΣΗΣ ΤΟΥ ΒΑΘΜΟΥ ΔΙΑΤΗΡΗΣΙΜΟΤΗΤΑΣ ΕΡΓΩΝ ΛΟΓΙΣΜΙΚΟΥ ΜΕ...
ΕΥΦΥΗΣ ΜΕΘΟΔΟΛΟΓΙΑ ΑΠΟΤΙΜΗΣΗΣ ΤΟΥ ΒΑΘΜΟΥ ΔΙΑΤΗΡΗΣΙΜΟΤΗΤΑΣ ΕΡΓΩΝ ΛΟΓΙΣΜΙΚΟΥ ΜΕ...
 
Μηχανισμοί αυτοματοποίησης διαδικασιών σχεδίασης, υλοποίησης και ανάπτυξης λο...
Μηχανισμοί αυτοματοποίησης διαδικασιών σχεδίασης, υλοποίησης και ανάπτυξης λο...Μηχανισμοί αυτοματοποίησης διαδικασιών σχεδίασης, υλοποίησης και ανάπτυξης λο...
Μηχανισμοί αυτοματοποίησης διαδικασιών σχεδίασης, υλοποίησης και ανάπτυξης λο...
 
Εξόρυξη δεδομένων τεχνολογίας λογισμικού για επαναχρησιμοποίηση λογισμικού
Εξόρυξη δεδομένων τεχνολογίας λογισμικού για επαναχρησιμοποίηση λογισμικούΕξόρυξη δεδομένων τεχνολογίας λογισμικού για επαναχρησιμοποίηση λογισμικού
Εξόρυξη δεδομένων τεχνολογίας λογισμικού για επαναχρησιμοποίηση λογισμικού
 
Ανάλυση ∆εδοµένων ΄Εργων Λογισµικού για Ανάπτυξη σε Νέα Πεδία Εφαρµογής
Ανάλυση ∆εδοµένων ΄Εργων Λογισµικού για Ανάπτυξη σε Νέα Πεδία ΕφαρµογήςΑνάλυση ∆εδοµένων ΄Εργων Λογισµικού για Ανάπτυξη σε Νέα Πεδία Εφαρµογής
Ανάλυση ∆εδοµένων ΄Εργων Λογισµικού για Ανάπτυξη σε Νέα Πεδία Εφαρµογής
 
Camera-based localization of annotated objects in indoor environments
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
 
Εντοπισμός θέσης επισημασμένου αντικειμένου σε εσωτερικό χώρο με χρήση πολλαπ...
Εντοπισμός θέσης επισημασμένου αντικειμένου σε εσωτερικό χώρο με χρήση πολλαπ...Εντοπισμός θέσης επισημασμένου αντικειμένου σε εσωτερικό χώρο με χρήση πολλαπ...
Εντοπισμός θέσης επισημασμένου αντικειμένου σε εσωτερικό χώρο με χρήση πολλαπ...
 
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...
Design and implementation of an automation mechanism to automatically develop...
 
ΣΧΕΔΙΑΣΗ ΚΑΙ ΑΝΑΠΤΥΞΗ ΜΗΧΑΝΙΣΜΟΥ ΑΥΤΟΜΑΤΟΠΟΙΗΣΗΣ ΤΗΣ ΑΝΑΠΤΥΞΗΣ ΓΡΑΦΙΚΩΝ ΕΝΤΟΛ...
ΣΧΕΔΙΑΣΗ ΚΑΙ ΑΝΑΠΤΥΞΗ ΜΗΧΑΝΙΣΜΟΥ ΑΥΤΟΜΑΤΟΠΟΙΗΣΗΣ ΤΗΣ ΑΝΑΠΤΥΞΗΣ ΓΡΑΦΙΚΩΝ ΕΝΤΟΛ...ΣΧΕΔΙΑΣΗ ΚΑΙ ΑΝΑΠΤΥΞΗ ΜΗΧΑΝΙΣΜΟΥ ΑΥΤΟΜΑΤΟΠΟΙΗΣΗΣ ΤΗΣ ΑΝΑΠΤΥΞΗΣ ΓΡΑΦΙΚΩΝ ΕΝΤΟΛ...
ΣΧΕΔΙΑΣΗ ΚΑΙ ΑΝΑΠΤΥΞΗ ΜΗΧΑΝΙΣΜΟΥ ΑΥΤΟΜΑΤΟΠΟΙΗΣΗΣ ΤΗΣ ΑΝΑΠΤΥΞΗΣ ΓΡΑΦΙΚΩΝ ΕΝΤΟΛ...
 

Evaluating code readability models in incremental changes and developing a new model

  • 1. 1 Αξιολόγηση μοντέλων αναγνωσιμότητας κώδικα σε μικρές μεταβολές και κατασκευή νέου μοντέλου Ιούλιος 2022 Αξιολόγηση μοντέλων αναγνωσιμότητας κώδικα σε μικρές μεταβολές και κατασκευή νέου μοντέλου Διπλωματική Εργασία Εκπόνηση: Ανέστης Βαρσαμίδης ΑΕΜ 9112 Επίβλεψη: Καθηγητής Ανδρέας Συμεωνίδης Υποψήφιος διδάκτωρ Θωμάς Καρανικιώτης
  • 2. 2 Αξιολόγηση μοντέλων αναγνωσιμότητας κώδικα σε μικρές μεταβολές και κατασκευή νέου μοντέλου Ιούλιος 2022 Μοντέλα αναγνωσιμότητας κώδικα Είναι συνάρτηση διαφόρων μετρικών, όπως αριθμός γραμμών, μέσο μήκος γραμμών, μέσο μήκος identifiers, DFT της στοίχισης του κώδικα, κα. Τα μοντέλα που θα αξιολογήσουμε: ● Buse&Weimer ● Posnett ● Dorn (προσέγγιση) ● Scalabrino ● Καρανικιώτης (ISSEL) Μοντέλο αναγνωσιμότητας Αρχείο κώδικα Σκορ
  • 3. 3 Αξιολόγηση μοντέλων αναγνωσιμότητας κώδικα σε μικρές μεταβολές και κατασκευή νέου μοντέλου Ιούλιος 2022 Στόχος της διπλωματικής Να εξετάσουμε εάν τα σκορ αναγνωσιμότητας κώδικα βελτιώνονται μετά από commit που υποστηρίζουν ότι βελτιώνουν την αναγνωσιμότητα Να βρούμε ποιες μετρικές μεταβάλλονται σημαντικά στα commits αναγνωσιμότητας, και άρα θα μπορούσαν να χρησιμοποιηθούν σε ένα νέο μοντέλο; Να φτιάξουμε ένα μοντέλο αναγνωσιμότητας με αυτές τις μετρικές
  • 4. 4 Αξιολόγηση μοντέλων αναγνωσιμότητας κώδικα σε μικρές μεταβολές και κατασκευή νέου μοντέλου Ιούλιος 2022 Υπολογισμός των μετρικών και σκορ
  • 5. 5 Αξιολόγηση μοντέλων αναγνωσιμότητας κώδικα σε μικρές μεταβολές και κατασκευή νέου μοντέλου Ιούλιος 2022 Επιλογή repositories: από τα δημοφιλέστερα του GitHub σε Java Γιατί Java? Όλα τα μοντέλα υποστηρίζουν κώδικες Java Επιλογή readability commits: - Αρχικά αναζήτηση στα μηνύματα των commit με λέξεις-κλειδιά, πχ readable, readability, easier to read, comprehensible, understandable - Έπειτα, έλεγχος των μηνυμάτων για επαλήθευση ότι το commit έχει σκοπό τη βελτίωση της αναγνωσιμότητας. Περίπου τα μισά ήταν ψευδώς θετικά Επιλογή non-readability commits, για σύγκριση: τυχαία
  • 6. 6 Αξιολόγηση μοντέλων αναγνωσιμότητας κώδικα σε μικρές μεταβολές και κατασκευή νέου μοντέλου Ιούλιος 2022 “Υλοποίηση” των μοντέλων ● Μοντέλα Buse-Weimer, Scalabrino, Issel: Χρήση έτοιμων εκτελέσιμων, εκπαιδευμένων μοντέλων ○ στο Buse-Weimer, σαν είσοδος δινόταν snippets 8 γραμμών ● Μοντέλο Posnett: Χρήση του τύπου λογιστικής παλινδρόμησης που περιέχει στο paper: logistic(8.87 − 0.033 V + 0.40 Lines −1.5 Entropy) ● Dorn: προσπάθεια ανακατασκευής μοντέλου από τα δεδομένα και το paper ○ κατώφλι για Long lines? Επιλέξαμε Q3 +1.5 IQR του μήκους των μη κενών γραμμών από τα αρχεία Java του dataset. = 113 χαρακτήρες ○ Σταθερά +c ? Για ελάχιστο MSE μεταξύ αναγν. από ερωτηματολόγια, και του σκορ. c=1.4 ○ Τελικά, σκορ = logistic(-0.0388 * Dorn DFT Spaces - 0.0349 * long lines - 0.0114 * lines_per_identifier + 0.004 * keywords + 1.4)
  • 7. 7 Αξιολόγηση μοντέλων αναγνωσιμότητας κώδικα σε μικρές μεταβολές και κατασκευή νέου μοντέλου Ιούλιος 2022 Τα ερωτήματα που μελετάμε Από το metric generation καταλήγουμε με 2 τιμές για κάθε μετρική (ή μοντέλο) για κάθε αρχείο Java που τροποποιήθηκε σε κάποιο commit: την μετρική πριν το commit και μετά Q1a: σε ποιες μετρικές ή μοντέλα παρατηρείται αύξηση της μέσης τιμής μετά από readability commits Δηλαδή για κάθε μετρική συγκρίνουμε τα 2 σύνολα: {η μετρική για κάθε αρχείο πριν το commit} {η μετρική για κάθε αρχείο μετά το commit} Q1b: το ίδιο για τα non-readability commits
  • 8. 8 Αξιολόγηση μοντέλων αναγνωσιμότητας κώδικα σε μικρές μεταβολές και κατασκευή νέου μοντέλου Ιούλιος 2022 Τα ερωτήματα που μελετάμε (2) Q2: ποιες μετρικές ή μοντέλα μεταβάλλονται στα readability commits διαφορετικά από ότι στα non-readability Δηλαδή για κάθε μετρική συγκρίνουμε τα 2 σύνολα: {οι διαφορές μετά-πριν για κάθε αρχείο σε readability commits} {οι διαφορές για κάθε αρχείο σε non- readability commits} Q3: μπορεί να κατασκευαστεί ένα μοντέλο αναγνωσιμότητας ώστε το σκορ να βελτιώνεται μετά από readability commits;
  • 9. 9 Αξιολόγηση μοντέλων αναγνωσιμότητας κώδικα σε μικρές μεταβολές και κατασκευή νέου μοντέλου Ιούλιος 2022 Πώς εξετάζουμε τα ερωτήματα Cohen’s delta για interval δεδομένα d = (μ1 - μ2) / σ t-test για διαφορά μέσων τιμών Τ = d √N >? Tthreshold Cliff’s Delta για ordinal δεδομένα Πόσο συχνά οι τιμές του ενός συνόλου είναι μεγαλύτερες από του δεύτερου Mann–Whitney U statistic U = (d+1)*mn / 2 >? Uthreshold Effect size |d| Very small 0.01 Small 0.20 Medium 0.50 Large 0.80
  • 10. 10 Αξιολόγηση μοντέλων αναγνωσιμότητας κώδικα σε μικρές μεταβολές και κατασκευή νέου μοντέλου Ιούλιος 2022 Κριτήρια Για το t-test και το Mann-Whitney U, το κατώφλια υπολογίζονται με βάση την μηδενική υπόθεση, ότι δεν υπάρχει διαφορά στις δύο κατανομές, και ότι είναι κανονικές. Επιλέγουμε κριτήριο p-value < 0.05 Για το Cohen’s d: - στο Q1, όλες οι μετρικές είχαν λιγότερο από μικρό |d| < 0.1 Αναμενόμενο, αφού μεσολαβεί μόνο ένα commit. Βάζουμε όριο |d| > 0.01 - στο Q2 βάζουμε όριο |d|>0.14, δηλαδή σχεδόν μικρό effect size
  • 11. 11 Αξιολόγηση μοντέλων αναγνωσιμότητας κώδικα σε μικρές μεταβολές και κατασκευή νέου μοντέλου Ιούλιος 2022 Ομαδοποίηση ανά commit Τα ερωτήματα εξετάζονται 2 φορές: όταν τα Cliff’s, Cohen’s d κλπ υπολογίζονται για μία μετρική στα διάφορα αρχεία, και όταν, πριν υπολογίσουμε τα Cliff’s, Cohen’s d κλπ, ομαδοποιούμε τα δεδομένα ανά commit. Δηλαδή, λέμε ότι πριν το commit x, η μετρική Α είναι ίση με το μέσο όρο των τιμών της Α στα αρχεία που μεταβάλλονται στο commit x. Αυτό τον τρόπο θα τον ονομάζουμε per-commit
  • 12. 12 Αξιολόγηση μοντέλων αναγνωσιμότητας κώδικα σε μικρές μεταβολές και κατασκευή νέου μοντέλου Ιούλιος 2022 Κατασκευή μοντέλου και επιλογή χαρακτηριστικών εισόδου Ακολουθιακή οπισθοδρομική επιλογή
  • 13. 13 Αξιολόγηση μοντέλων αναγνωσιμότητας κώδικα σε μικρές μεταβολές και κατασκευή νέου μοντέλου Ιούλιος 2022 Αποτελέσματα: Q1a πριν vs μετά σε επίπεδο αρχείου
  • 14. 14 Αξιολόγηση μοντέλων αναγνωσιμότητας κώδικα σε μικρές μεταβολές και κατασκευή νέου μοντέλου Ιούλιος 2022 Αποτελέσματα: Q1a πριν vs μετά σε επίπεδο commit
  • 15. 15 Αξιολόγηση μοντέλων αναγνωσιμότητας κώδικα σε μικρές μεταβολές και κατασκευή νέου μοντέλου Ιούλιος 2022 Μετρική (σε επίπεδο αρχείου) q1a cohen q1a cliff q1a ttest pval q1a wilcoxon pval q1b cohen q1b cliff q1b ttest pval q1b wilcoxon pval BW Avg blank lines 0.03795 0.01712 0.000003 0.014149 -0.01029 -0.55715 0.005039 0.000000 CC (Clone Coverage) -0.04800 -0.99747 0.000009 0.000000 0.00203 -0.97974 0.750903 0.000000 BW Avg Assignment -0.03325 -0.01731 0.000013 0.000000 0.00904 0.01767 0.016432 0.675391 CLLC (Cl. Log. Line Cov.) -0.04944 -0.99747 0.000020 0.000000 0.00087 -0.98043 0.933312 0.000000 Dorn Visual X Numbers -0.02632 -0.01055 0.000045 0.036398 0.01728 0.01213 0.000027 0.000537 NLE (Nesting Lvl Else-If) -0.03021 -0.99747 0.000049 0.000000 0.00813 -0.95911 0.011213 0.000000 BW Avg loops -0.02086 -0.00791 0.000154 0.000000 0.01436 0.00882 0.004245 0.000000 CLC (Clone Line Cov.) -0.04269 -0.99747 0.000217 0.000000 0.00474 -0.98043 0.383319 0.000000 NA (Number of Attributes) -0.02529 -0.97351 0.000264 0.000000 0.00570 -0.75052 0.000000 0.000000 NL (Nesting Level) -0.02957 -0.99747 0.000858 0.000000 0.00586 -0.75046 0.023617 0.000000 BW Avg conditionals -0.02414 -0.01458 0.001004 0.000011 0.00224 0.00349 0.461382 0.000001 BW Avg commas -0.01957 -0.00880 0.001965 0.023494 0.00602 -0.64362 0.012068 0.156621 TNA (Total # Attributes) -0.01938 -0.65000 0.002735 0.000000 0.00632 -0.71834 0.000000 0.000000 BW Max keywords -0.01687 -0.01357 0.004874 0.005659 -0.00124 0.01731 0.706635 0.364976 NLA (# Local Attributes) -0.01057 -0.34891 0.006834 0.000000 0.00537 -0.74814 0.000000 0.000000 NS (Number of Setters) -0.01385 -0.99747 0.010056 0.000000 0.00276 -0.88871 0.000002 0.000000 BW Avg spaces -0.02144 -0.01080 0.011362 0.000099 0.00647 -0.77531 0.012598 0.000003 BW Avg parenthesis -0.01320 -0.00655 0.017536 0.002476 0.00534 -0.55999 0.021778 0.690260 issel_r_cmplx 0.02476 -0.92892 0.019222 0.004127 0.00943 -0.75445 0.140701 0.000008 BW Avg indentation length -0.02039 -0.00958 0.021713 0.000081 0.00482 -0.75455 0.069441 0.008891 Dorn score 0.01716 0.00258 0.024127 0.000060 -0.02144 -0.58388 0.000001 0.000000 Issel score 0.02051 -0.76760 0.024438 0.017263 0.00650 -0.88910 0.213736 0.000017 Dorn Areas Identifiers 0.01175 0.00428 0.034597 0.000158 0.01341 -0.56156 0.000000 0.000000 Posnett entropy 0.01784 0.00629 0.035151 0.000041 0.01036 -0.77064 0.000575 0.000001
  • 16. 16 Αξιολόγηση μοντέλων αναγνωσιμότητας κώδικα σε μικρές μεταβολές και κατασκευή νέου μοντέλου Ιούλιος 2022 Αποτελέσματα: Q2 readability vs non-read. commits σε επίπεδο αρχείου
  • 17. 17 Αξιολόγηση μοντέλων αναγνωσιμότητας κώδικα σε μικρές μεταβολές και κατασκευή νέου μοντέλου Ιούλιος 2022 Αποτελέσματα: Q2 readability vs non-read. commits σε επίπεδο commit
  • 18. 18 Αξιολόγηση μοντέλων αναγνωσιμότητας κώδικα σε μικρές μεταβολές και κατασκευή νέου μοντέλου Ιούλιος 2022 Μετρική (σε επίπεδο αρχείου) Cohen Cliff t-test p- value mann-whitn p- value BW Max Identifiers Length -0.25118 -0.30673 1.50E-15 7.10E-14 BW Avg blank lines 0.19745 -0.71919 3.44E-10 1.05E-09 Dorn Visual X Numbers -0.19099 -0.88854 1.25E-09 5.87E-03 NA (Number of Attributes) -0.19437 -0.83025 1.49E-09 5.31E-14 Dorn DFT Operators -0.17844 -0.45594 1.38E-08 1.79E-16 NLA (Number of Local Attributes) -0.18101 -0.94814 1.66E-08 2.42E-11 TNLA (Total Number of Local Attributes) -0.17606 -0.94689 4.00E-08 1.63E-13 BW Avg Assignment -0.17256 -0.92510 4.03E-08 1.63E-04 NLE (Nesting Level Else-If) -0.17345 -0.98602 6.16E-08 3.99E-13 TNA (Total Number of Attributes) -0.17147 -0.82821 9.47E-08 3.67E-15 Dorn DFT Conditionals -0.16216 -0.44446 2.48E-07 5.82E-16 New Semantic Text Coherence Standard -0.16161 -0.45523 2.72E-07 2.56E-17 Posnett volume -0.15455 -0.46492 8.75E-07 1.57E-29 Dorn score 0.14697 -0.91512 2.90E-06 3.05E-10 NS (Number of Setters) -0.14851 -0.99301 3.70E-06 1.79E-08 NL (Nesting Level) -0.14682 -0.98818 4.58E-06 4.26E-11 Dorn DFT Numbers -0.14345 -0.40272 4.98E-06 1.98E-14 Dorn Visual Y Numbers -0.14235 -0.42903 5.88E-06 2.95E-13 Dorn DFT Spaces -0.14078 -0.46292 7.44E-06 4.58E-16 Dorn Visual X Identifiers -0.14073 -0.85257 7.47E-06 3.88E-05 Dorn Visual X Operators -0.14040 -0.84311 7.85E-06 4.30E-05 Dorn Visual X Keywords -0.14034 -0.84780 7.92E-06 3.36E-06
  • 19. 19 Αξιολόγηση μοντέλων αναγνωσιμότητας κώδικα σε μικρές μεταβολές και κατασκευή νέου μοντέλου Ιούλιος 2022 Αρχικό σύνολο features μοντέλων Μετρικές που μεταβάλλονται μετά από readability commits και: είτε μεταβάλλονται αντίθετα μετά από non-readability commits, είτε καθόλου BW Avg Assignment BW Avg loops CC (Clone Coverage) NL (Nesting Level) BW Avg blank lines BW Avg parenthesis CLC (Clone Line Coverage) NLA (Number of Local Attributes) BW Avg commas BW Avg spaces CLLC (Clone Logical Line Coverage) NLE (Nesting Level Else-If ) BW Avg conditionals BW Max keywords karanikiotis_r_cmplx NS (Number of Setters) BW Avg indentation length Dorn Visual X Numbers NA (Number of Attributes) TNA (Total Number of Attributes)
  • 20. 20 Αξιολόγηση μοντέλων αναγνωσιμότητας κώδικα σε μικρές μεταβολές και κατασκευή νέου μοντέλου Ιούλιος 2022 Παράμετροι υποψήφιων μοντέλων ● Γραμμικό πυρήνα με τις προεπιλεγμένες υπερπαραμέτρους ● Γραμμικό πυρήνα με παράμετρο κανονικοποποίησης C = 0,2 ή C = 3. (προεπιλογή: C = 1). Και στις δύο περιπτώσεις, χειρότερη απόδοση από C = 1 ● Πολυωνυμικό πυρήνα, με συντελεστή γάμμα = 1/(nfeatures ⋅ Var( X )) (“scale”, η προεπιλογή), ή γάμμα = 1/nfeatures (“auto”). ● Πυρήνα radial basis function (rbf), με συντελεστή γάμμα “scale” ή “auto”.
  • 21. 21 Αξιολόγηση μοντέλων αναγνωσιμότητας κώδικα σε μικρές μεταβολές και κατασκευή νέου μοντέλου Ιούλιος 2022 Επιλογή features του μοντέλου RBF πυρήνας Γραμμικός πυρήνας Μέσο τετραγωνικό σφάλμα vs Αριθμός χαρακτηριστικών εισόδου
  • 22. 22 Αξιολόγηση μοντέλων αναγνωσιμότητας κώδικα σε μικρές μεταβολές και κατασκευή νέου μοντέλου Ιούλιος 2022