SlideShare una empresa de Scribd logo
1 de 26
Εξαγωγή Προτύπων Αλλαγών
Κώδικα από Αποθετήρια Ανοικτού
Λογισμικού
Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης
Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών
Τομέας Ηλεκτρονικής και Υπολογιστών
Ομάδα Ευφυών Συστημάτων και Τεχνολογίας Λογισμικού (ISSEL)
Επίβλεψη:
Αν. Καθηγητής, Ανδρέας Συμεωνίδης
Υπ. Διδάκτωρ, Θωμάς Καρανικιώτης
Εκπόνηση:
Οδυσσέας Κυπαρίσσης
Α.Ε.Μ: 8955
Διάρθρωση Παρουσίασης
• Εισαγωγή
• Μεθοδολογία
• Αξιολόγηση & Αποτελέσματα
• Συμπεράσματα
• Μελλοντική Εργασία
• Ευχαριστίες
12/8/2021 2
Εξαγωγή Προτύπων Αλλαγών Κώδικα από Αποθετήρια Ανοικτού Λογισμικού
Εισαγωγή
Περιγραφή Προβλήματος:
• Επανειλημμένη αντιμετώπιση παρόμοιων σφαλμάτων πηγαίου κώδικα από διαφορετικές ομάδες
προγραμματιστών.
• Ελάχιστη προσπάθεια για ανάπτυξη επαναχρησιμοποιήσιμου λογισμικού.
• Αυξανόμενη ανάγκη για γρήγορη και αποτελεσματική ανάπτυξη πηγαίου κώδικα.
12/8/2021 3
Εξαγωγή Προτύπων Αλλαγών Κώδικα από Αποθετήρια Ανοικτού Λογισμικού
Εισαγωγή
12/8/2021 4
Εξαγωγή Προτύπων Αλλαγών Κώδικα από Αποθετήρια Ανοικτού Λογισμικού
Σκοπός Διπλωματικής:
Ανάπτυξη αυτοματοποιημένου συστήματος εξόρυξης προτύπων αλλαγών από αποθετήρια
ανοικτού λογισμικού.
• Αξιοποίηση της διαθέσιμης πληροφορίας από την πλατφόρμα του GitHub.
• Μελέτη εξέλιξης τμημάτων πηγαίου κώδικα μεγάλων έργων λογισμικού.
• Εξαγωγή και πρόταση γενικευμένων προτύπων αλλαγών πηγαίου κώδικα με στόχο:
o Την αποσφαλμάτωση λογισμικού.
o Την μείωση του χρόνου αποσφαλμάτωσης κατά την ανάπτυξη λογισμικού.
o Την επαναχρησιμοποίηση πηγαίου κώδικα.
Εισαγωγή
Βασική Μονάδα Ανάλυσης - GitHub Commit:
12/8/2021 Εξαγωγή Προτύπων Αλλαγών Κώδικα από Αποθετήρια Ανοικτού Λογισμικού 5
Commit Message Commit SHA
Code Diff
Μεθοδολογία
12/8/2021 6
Εξαγωγή Προτύπων Αλλαγών Κώδικα από Αποθετήρια Ανοικτού Λογισμικού
Μεθοδολογία
Δημιουργία & Προεπεξεργασία Συνόλου Δεδομένων
• 900 δημοφιλέστερα Java αποθετήρια του GitHub:
o 600  Training Set
o 300  Test Set
• Επιλογή αποθετηρίων με < 2500 commits.
• Επιλογή commits μόνο του main κλάδου.
• Απόρριψη commits ⇒ message ≠:
o fix, improve, change, bug, add, remove, support.
• Διαχωρισμός των code changes σε 3 κατηγορίες.
o Both, Only Additions, Only Deletions.
12/8/2021 Εξαγωγή Προτύπων Αλλαγών Κώδικα από Αποθετήρια Ανοικτού Λογισμικού 7
Διάσπαση Commits
Πολλαπλών Αρχείων
Διαγραφή Αλλαγών
Κύριου Τμήματος
(main)
Διαγραφή
Διπλοεγγραφών
Ίδιου Commit
187.441 Code Changes
730.320 Code Changes
- 453.257 Code Changes
- 62%
- 89.622 Duplicates
- 12.3%
137.112 – 73.15%
35.490 – 18.93%
14.839 – 7.92%
Μεθοδολογία
Τελικά Χαρακτηριστικά
• Μετατροπή πηγαίου κώδικα σε Αφηρημένο Συντακτικό Δέντρο (AST).
• Τελικά Χαρακτηριστικά του Συνόλου Δεδομένων:
12/8/2021 Εξαγωγή Προτύπων Αλλαγών Κώδικα από Αποθετήρια Ανοικτού Λογισμικού 8
Cleaned Dataset
SHA Message Code Diff Method
Code
Before
Method
Code
After
Method
Code
Before
AST
Method
Code
After
AST
Code
Additions
Code
Deletions
Code
Additions
AST
Code
Deletions
AST
Μεθοδολογία
Εξαγωγή & Ανάλυση Χαρακτηριστικών
12/8/2021 Εξαγωγή Προτύπων Αλλαγών Κώδικα από Αποθετήρια Ανοικτού Λογισμικού 9
Χαρακτηριστικά (#) :
Lines Changed Variable Statements
Cyclomatic Complexity Switch Statements
Unique Operators Simple Names
AST Children Class Instance Creations
Conditional Expressions While Statements
Method Invocations For Statements
If Statements Try Statements
Return Statements Qualified Names
Single Variable Declaration
Μεθοδολογία
• Εφαρμογή Αλγορίθμου Μείωσης
Διαστασιμότητας
o Principal Component Analysis – PCA.
o Μετασχηματισμός των δεδομένων από 22
διαστάσεις σε 10.
o Περιλαμβάνουν το 95% της συνολικής
πληροφορίας και για τις τρείς κατηγορίες.
12/8/2021 Εξαγωγή Προτύπων Αλλαγών Κώδικα από Αποθετήρια Ανοικτού Λογισμικού 10
Category Size Before Filtered Percentage
Both 137.112 18.647 13,6%
Only Additions 35.490 4,950 13,95%
Only Deletions 14.839 1.700 11,46%
Φιλτράρισμα & Μείωση Διαστασιμότητας
Box Plot – Number of Lines – Both Category
Feature Code Changes Category
Both Only Additions & Deletions
Number of lines > 16 8
Number of AST children > 14 6
Number of names > 41 20
Μεθοδολογία
• Εφαρμογή Αλγορίθμου Ομαδοποίησης k-
means ++.
• Υπολογισμός του αθροίσματος τετραγωνικού
σφάλματος για την επιλογή του k.
𝑺𝑺𝑬 =
𝑖=1
𝑘
𝑥∊𝐶𝑖
𝑑𝑖𝑠𝑡2(𝑚𝑖, 𝑥)
12/8/2021 Εξαγωγή Προτύπων Αλλαγών Κώδικα από Αποθετήρια Ανοικτού Λογισμικού 11
Αρχική Ομαδοποίηση
Data Category Number of Clusters
Both 9
Only Additions 5
Only Deletions 5
Μεθοδολογία
Ομοιότητα αλγοριθμικής δομής των αλλαγών.
• Χρήση αλγορίθμου TED (Tree Edit Distance) – pq-
grams.
• Βασίζεται σε δύο παραμέτρους 𝒑, 𝒒.
• Για κάθε ένα AST σχηματίζεται ένα Ordered Labeled
Tree.
o (𝑝 − 1) null κόμβοι εισάγονται στη ρίζα.
o (𝑞 − 1) null κόμβοι εισάγονται, πριν το πρώτο και
μετά το τελευταίο παιδί, κάθε ενδιάμεσου κόμβου
(non-leaf node).
o 𝑞 παιδιά εισάγονται σε κάθε φύλλο του δέντρου.
12/8/2021 Εξαγωγή Προτύπων Αλλαγών Κώδικα από Αποθετήρια Ανοικτού Λογισμικού 12
Υπολογισμός Πινάκων Ομοιότητας Αρχικών Ομάδων
Μεθοδολογία
12/8/2021 Εξαγωγή Προτύπων Αλλαγών Κώδικα από Αποθετήρια Ανοικτού Λογισμικού 13
Υπολογισμός Πινάκων Ομοιότητας Αρχικών Ομάδων
• Για κάθε extended tree υπολογίζονται τα pq-grams trees.
• Ως pq-grams tree ορίζεται το δέντρο που περιέχει έναν κόμβο με (𝑝 − 1) προγόνους και 𝑞
παιδιά.
• Όλα τα pq-grams ενός δέντρου αποτελούν το προφίλ του δέντρου 𝐏𝒑,𝒒 𝑻 .
• Η απόσταση μεταξύ δύο δέντρων ορίζεται ως εξής:
d𝑝,𝑞
𝑇1, 𝑇2 = 1 − 2
|𝑃𝑝,𝑞 𝑇1 ∩ 𝑃𝑝,𝑞 𝑇2 |
|𝑃𝑝,𝑞 𝑇1 ∪ 𝑃𝑝,𝑞 𝑇2 |
Μεθοδολογία
12/8/2021 Εξαγωγή Προτύπων Αλλαγών Κώδικα από Αποθετήρια Ανοικτού Λογισμικού 14
Βήματα Επεξεργασίας Περιγραφή Βήματος Κείμενο Αλλαγής
Αρχική Κατάσταση - “If (isSorted()) { sortDescending();}”
1ο Βήμα Punctuation Removal “If isSorted sortDescending”
2ο Βήμα Tokenization [“if”, “isSorted”, “sortDescending”]
3ο Βήμα Split Camel Case [“If”, “is”, “Sorted”, “sort”, “Descending”]
4ο Βήμα Removal of Stop Words [“Sorted”, “sort”, “Descending”]
5ο Βήμα Lowercase [“sorted”, ”sort” ,”descending”]
Υπολογισμός Πινάκων Ομοιότητας Αρχικών Ομάδων
Λεξιλογική ομοιότητα των αλλαγών.
• Προεπεξεργασία κειμένου των αλλαγών πηγαίου κώδικα.
Μεθοδολογία
12/8/2021 Εξαγωγή Προτύπων Αλλαγών Κώδικα από Αποθετήρια Ανοικτού Λογισμικού 15
Υπολογισμός Πινάκων Ομοιότητας Αρχικών Ομάδων
• Διανυσματοποίηση των code changes – Vector
Space Modelling.
• Χρήση του αλγορίθμου Term Frequency – Inverse
Document Frequency.
cos. sim 𝑐𝑐1, 𝑐𝑐2 =
𝑐𝑐1 ⋅ 𝑐𝑐2
(||𝑐𝑐1|| ∗ | 𝑐𝑐2 |)
=
𝑖=1
𝑁
𝑡𝑓𝑖 𝑤𝑖, 𝑐𝑐1 ∗ 𝑡𝑓𝑖 𝑤𝑖, 𝑐𝑐2
𝑖=1
𝑁
𝑡𝑓𝑖2( 𝑤𝑖, 𝑐𝑐1) 𝑖=1
𝑁
𝑡𝑓𝑖2( 𝑤𝑖, 𝑐𝑐2)
𝑇𝐹. 𝐼𝐷𝐹 𝑤, 𝑐𝑐 = 𝑇𝐹 𝑤, 𝑐𝑐 ∗ 𝐼𝐷𝐹 𝑤 = 𝑇𝐹 𝑤, 𝑐𝑐 ∗ log(
𝑇𝐶
𝐷𝐹(𝑤)
)
o 𝑻𝑭 𝒘, 𝒄𝒄 η συνάρτηση εμφάνισης του όρου w στο cc.
o 𝑻𝑪 ο συνολικός αριθμός των code changes
o 𝑫𝑭 𝒘 το πλήθος των code changes που περιλαμβάνουν το w.
• Χρήση της μετρικής ομοιότητας cosine similarity:
Μεθοδολογία
12/8/2021 Εξαγωγή Προτύπων Αλλαγών Κώδικα από Αποθετήρια Ανοικτού Λογισμικού 16
Τελική Ομαδοποίηση
• Χρήση αλγορίθμου Agglomerative Hierarchical Clustering.
• Υπολογισμός απόστασης ομάδων με τη μέθοδο Average Linkage.
𝑑 𝑟, 𝑠 =
1
𝑛𝑟 ∙ 𝑛𝑠
𝑖
𝑛𝑟
𝑗
𝑛𝑠
𝑑(𝑟𝑖, 𝑠𝑗)
• Επιλογή βέλτιστου αριθμού ομάδων με τη χρήση της μετρικής
Average Silhouette.
𝑠 𝑖 =
𝑏 𝑖 − 𝑎(𝑖)
max{𝑎 𝑖 , 𝑏 𝑖 }
𝒂 𝒊 =
1
𝐶𝑖 −1 𝑗∊𝐶𝑖
𝑗≠𝑖
𝑑(𝑖, 𝑗) και 𝒃 𝒊 = 𝑚𝑖𝑛
1
𝐶𝑘
𝑗∊𝐶𝑘
𝑑(𝑖, 𝑗)
• Βέλτιστη τιμή αριθμού ομάδων:
𝑘𝑜𝑝𝑡 = {𝑘: max(𝑠(𝑘))}
Μεθοδολογία
• Επιλογή βέλτιστων ομάδων με τη χρήση τριών
παραμέτρων:
o Μέγεθος Ομάδας
o Συνοχή της Ομάδας:
𝑐𝑜ℎ𝑒𝑠𝑖𝑜𝑛 = 1 −
1
𝐶 − 1
𝑥∊𝐶
𝑑(𝑥, 𝑐𝑒𝑛𝑡𝑟𝑜𝑖𝑑)
o Αριθμός διαφορετικών αποθετηρίων
• Tα centroids των ομάδων αποτελούν τα τελικά
πρότυπα.
𝑐𝑒𝑛𝑡𝑟𝑜𝑖𝑑 = min(
1
𝐶 − 1
)
𝑗∊𝐶
𝑗≠𝑖
𝑑(𝑖, 𝑗)
12/8/2021 Εξαγωγή Προτύπων Αλλαγών Κώδικα από Αποθετήρια Ανοικτού Λογισμικού 17
Επιλογή Ομάδων & Εξαγωγή Προτύπων Αλλαγών Πηγαίου Κώδικα
Cluster Name Size
Threshold
Cohesion
Threshold
Repositories
Threshold
Only additions 1 10 0,75 7
Only deletions 3 10 0,75 7
Both 1 10 0,75 7
Αξιολόγηση & Αποτελέσματα
Κύριος Στόχος Αξιολόγησης:
o Ανίχνευση και καταμέτρηση των προτύπων (centroids) στα Code Diffs του συνόλου αξιολόγησης.
Σύνολο Δεδομένων Αξιολόγησης:
o 300 GitHub Αποθετήρια
o 114.386 Code Diffs
Κριτήρια Ανίχνευσης:
• 𝑆𝑒𝑞𝑢𝑒𝑛𝑐𝑒𝑀𝑎𝑡𝑐ℎ𝑒𝑟. 𝑟𝑎𝑡𝑖𝑜 𝑠𝑒𝑞𝑢𝑒𝑛𝑐𝑒1, 𝑠𝑒𝑞𝑢𝑒𝑛𝑐𝑒2 = 2.0∗𝑀
𝑇
o Τ  Συνολικός αριθμός στοιχείων των δύο ακολουθιών.
o Μ  Αριθμός των Matches.
o Κατώτατο όριο ομοιότητας ακολουθιών: 0.8
Πρότυπα Αλλαγών Πηγαίου Κώδικα
o Συνολικά 27 Πρότυπα Αλλαγών Πηγαίου Κώδικα
12/8/2021 Εξαγωγή Προτύπων Αλλαγών Κώδικα από Αποθετήρια Ανοικτού Λογισμικού 18
Αξιολόγηση & Αποτελέσματα
12/8/2021 Εξαγωγή Προτύπων Αλλαγών Κώδικα από Αποθετήρια Ανοικτού Λογισμικού 19
13.1 13.54 12.75
42.50
32.77
26.50
0
10
20
30
40
50
Both Only Additions Only Deletions
Average
Patterns Summary
Mean of Number of Different Test Repositories
Mean of Number of Occurrences in Testing Code Diffs
Σύνοψη Αξιολόγησης
• Μέσος όρος εμφάνισης προτύπων σε
διαφορετικά αποθετήρια λογισμικού.
• Μέσος όρος εμφάνισης προτύπων στο
σύνολο των αλλαγών του συνόλου
δεδομένων αξιολόγησης.
Αξιολόγηση & Αποτελέσματα
Both Code Changes Patterns
12/8/2021 Εξαγωγή Προτύπων Αλλαγών Κώδικα από Αποθετήρια Ανοικτού Λογισμικού 20
Code Deletions Code Additions Repositories OTCD*
public String name () { public String getName() { 18 144
StringBuffer buffer = new StringBuffer (); StringBuilder buffer = new StringBuilder (); 14 51
} catch (IOException e) { } catch (Exception e) { 26 94
e.printStackTrace(); logger.error("", e); 6 10
out.close(); if (out!= null) {
out.close();
}
27 46
*OTCD = Occurrences in Testing Code Diffs
Αξιολόγηση & Αποτελέσματα
Only Additions Code Changes Patterns
12/8/2021 Εξαγωγή Προτύπων Αλλαγών Κώδικα από Αποθετήρια Ανοικτού Λογισμικού 21
Code Additions Repositories OTCD
if ($Variable == null) {
throw new NullPointerException("$Variable can’t be null");
}
6 14
@Override 30 68
this.$Variable = $Variable; 20 35
file.close(); 19 32
Αξιολόγηση & Αποτελέσματα
Only Deletions Code Changes Patterns
12/8/2021 Εξαγωγή Προτύπων Αλλαγών Κώδικα από Αποθετήρια Ανοικτού Λογισμικού 22
Code Deletions Repositories OTCD
System.out.println(); 20 50
e.printStackTrace(); 20 39
} catch (Exception e) {
throw e;
}
5 7
long time = System.currentTimeMillis(); 6 10
Συμπεράσματα
Περιγραφή Προβλήματος
o Επανειλημμένη αντιμετώπιση παρόμοιων σφαλμάτων κατά την ανάπτυξη λογισμικού.
Ανάγκη Δημιουργίας Συστήματος που:
o Βοηθά στη γρήγορη και αποδοτική συγγραφή επαναχρησιμοποιήσιμου πηγαίου κώδικα.
Η Υλοποίηση του Συστήματος:
o Οδηγεί στην εύρεση συχνών αλλαγών που χρησιμοποιούνται ευρέως στα πιο δημοφιλή αποθετήρια
λογισμικού και άρα μπορούν να θεωρηθούν πρότυπα.
o Βοηθά στην αποσφαλμάτωση και την βελτίωση επαναχρησιμοποιήσιμου πηγαίου κώδικα.
12/8/2021 Εξαγωγή Προτύπων Αλλαγών Κώδικα από Αποθετήρια Ανοικτού Λογισμικού 23
Μελλοντική Εργασία
Επεκτάσεις & Μελλοντική Εργασία
• Επέκταση του συνόλου δεδομένων εκπαίδευσης περιλαμβάνοντας αλλαγές πηγαίου κώδικα από
πολλαπλές γλώσσες προγραμματισμού.
• Χρήση βάσης δεδομένων για πιο αποτελεσματική αποθήκευση και ανάκτηση της πληροφορίας.
• Χρήση της κάρτας γραφικών κατά τον υπολογισμό των πινάκων ομοιότητας.
12/8/2021 Εξαγωγή Προτύπων Αλλαγών Κώδικα από Αποθετήρια Ανοικτού Λογισμικού 24
Ευχαριστίες
Θα ήθελα να ευχαριστήσω θερμά:
• Τον κ. Ανδρέα Συμεωνίδη
• Τον Θωμά Καρανικιώτη
• Όλους εσάς για την προσοχή σας!
12/8/2021 Εξαγωγή Προτύπων Αλλαγών Κώδικα από Αποθετήρια Ανοικτού Λογισμικού 25
12/8/2021 Εξαγωγή Προτύπων Αλλαγών Κώδικα από Αποθετήρια Ανοικτού Λογισμικού 26
Q&A

Más contenido relacionado

Similar a Abstract - Mining Source Code Change Patterns from Open-Source Repositories

Εξαγωγή Ιδιωμάτων από Αποθετήρια Κώδικα
Εξαγωγή Ιδιωμάτων από Αποθετήρια ΚώδικαΕξαγωγή Ιδιωμάτων από Αποθετήρια Κώδικα
Εξαγωγή Ιδιωμάτων από Αποθετήρια ΚώδικαISSEL
 
Idioms Extraction from Code Repositories
Idioms Extraction from Code RepositoriesIdioms Extraction from Code Repositories
Idioms Extraction from Code RepositoriesISSEL
 
A tale of bug prediction in software development
A tale of bug prediction in software developmentA tale of bug prediction in software development
A tale of bug prediction in software developmentMartin Pinzger
 
A tale of experiments on bug prediction
A tale of experiments on bug predictionA tale of experiments on bug prediction
A tale of experiments on bug predictionMartin Pinzger
 
Heuristic design of experiments w meta gradient search
Heuristic design of experiments w meta gradient searchHeuristic design of experiments w meta gradient search
Heuristic design of experiments w meta gradient searchGreg Makowski
 
Galegalidou Christiana Thesis Presentation
Galegalidou Christiana Thesis PresentationGalegalidou Christiana Thesis Presentation
Galegalidou Christiana Thesis PresentationISSEL
 
RNA-seq for DE analysis: extracting counts and QC - part 4
RNA-seq for DE analysis: extracting counts and QC - part 4RNA-seq for DE analysis: extracting counts and QC - part 4
RNA-seq for DE analysis: extracting counts and QC - part 4BITS
 
CCC-Bicluster Analysis for Time Series Gene Expression Data
CCC-Bicluster Analysis for Time Series Gene Expression DataCCC-Bicluster Analysis for Time Series Gene Expression Data
CCC-Bicluster Analysis for Time Series Gene Expression DataIRJET Journal
 
Optimization of Test Pattern Using Genetic Algorithm for Testing SRAM
Optimization of Test Pattern Using Genetic Algorithm for Testing SRAMOptimization of Test Pattern Using Genetic Algorithm for Testing SRAM
Optimization of Test Pattern Using Genetic Algorithm for Testing SRAMIJERA Editor
 
MuVM: Higher Order Mutation Analysis Virtual Machine for C
MuVM: Higher Order Mutation Analysis Virtual Machine for CMuVM: Higher Order Mutation Analysis Virtual Machine for C
MuVM: Higher Order Mutation Analysis Virtual Machine for CSusumu Tokumoto
 
Summarizing Software API Usage Examples Using Clustering Techniques
Summarizing Software API Usage Examples Using Clustering TechniquesSummarizing Software API Usage Examples Using Clustering Techniques
Summarizing Software API Usage Examples Using Clustering TechniquesNikos Katirtzis
 
Generation of Random EMF Models for Benchmarks
Generation of Random EMF Models for BenchmarksGeneration of Random EMF Models for Benchmarks
Generation of Random EMF Models for BenchmarksMarkus Scheidgen
 
The Bootstrap and Beyond: Using JSL for Resampling
The Bootstrap and Beyond: Using JSL for ResamplingThe Bootstrap and Beyond: Using JSL for Resampling
The Bootstrap and Beyond: Using JSL for ResamplingJMP software from SAS
 
Protein threading using context specific alignment potential ismb-2013
Protein threading using context specific alignment potential ismb-2013Protein threading using context specific alignment potential ismb-2013
Protein threading using context specific alignment potential ismb-2013Sheng Wang
 
Svd filtered temporal usage clustering
Svd filtered temporal usage clusteringSvd filtered temporal usage clustering
Svd filtered temporal usage clusteringLiang Xie, PhD
 
A new CPXR Based Logistic Regression Method and Clinical Prognostic Modeling ...
A new CPXR Based Logistic Regression Method and Clinical Prognostic Modeling ...A new CPXR Based Logistic Regression Method and Clinical Prognostic Modeling ...
A new CPXR Based Logistic Regression Method and Clinical Prognostic Modeling ...Vahid Taslimitehrani
 
Two methods for optimising cognitive model parameters
Two methods for optimising cognitive model parametersTwo methods for optimising cognitive model parameters
Two methods for optimising cognitive model parametersUniversity of Huddersfield
 
A Preliminary Analysis on the Effect of Randomness in a CEGAR Framework
 A Preliminary Analysis on the Effect of Randomness in a CEGAR Framework A Preliminary Analysis on the Effect of Randomness in a CEGAR Framework
A Preliminary Analysis on the Effect of Randomness in a CEGAR FrameworkAkos Hajdu
 

Similar a Abstract - Mining Source Code Change Patterns from Open-Source Repositories (20)

Εξαγωγή Ιδιωμάτων από Αποθετήρια Κώδικα
Εξαγωγή Ιδιωμάτων από Αποθετήρια ΚώδικαΕξαγωγή Ιδιωμάτων από Αποθετήρια Κώδικα
Εξαγωγή Ιδιωμάτων από Αποθετήρια Κώδικα
 
Idioms Extraction from Code Repositories
Idioms Extraction from Code RepositoriesIdioms Extraction from Code Repositories
Idioms Extraction from Code Repositories
 
A tale of bug prediction in software development
A tale of bug prediction in software developmentA tale of bug prediction in software development
A tale of bug prediction in software development
 
A tale of experiments on bug prediction
A tale of experiments on bug predictionA tale of experiments on bug prediction
A tale of experiments on bug prediction
 
Heuristic design of experiments w meta gradient search
Heuristic design of experiments w meta gradient searchHeuristic design of experiments w meta gradient search
Heuristic design of experiments w meta gradient search
 
Galegalidou Christiana Thesis Presentation
Galegalidou Christiana Thesis PresentationGalegalidou Christiana Thesis Presentation
Galegalidou Christiana Thesis Presentation
 
RCIM 2008 - Modello Generale
RCIM 2008 - Modello GeneraleRCIM 2008 - Modello Generale
RCIM 2008 - Modello Generale
 
RNA-seq for DE analysis: extracting counts and QC - part 4
RNA-seq for DE analysis: extracting counts and QC - part 4RNA-seq for DE analysis: extracting counts and QC - part 4
RNA-seq for DE analysis: extracting counts and QC - part 4
 
CCC-Bicluster Analysis for Time Series Gene Expression Data
CCC-Bicluster Analysis for Time Series Gene Expression DataCCC-Bicluster Analysis for Time Series Gene Expression Data
CCC-Bicluster Analysis for Time Series Gene Expression Data
 
Optimization of Test Pattern Using Genetic Algorithm for Testing SRAM
Optimization of Test Pattern Using Genetic Algorithm for Testing SRAMOptimization of Test Pattern Using Genetic Algorithm for Testing SRAM
Optimization of Test Pattern Using Genetic Algorithm for Testing SRAM
 
MuVM: Higher Order Mutation Analysis Virtual Machine for C
MuVM: Higher Order Mutation Analysis Virtual Machine for CMuVM: Higher Order Mutation Analysis Virtual Machine for C
MuVM: Higher Order Mutation Analysis Virtual Machine for C
 
Summarizing Software API Usage Examples Using Clustering Techniques
Summarizing Software API Usage Examples Using Clustering TechniquesSummarizing Software API Usage Examples Using Clustering Techniques
Summarizing Software API Usage Examples Using Clustering Techniques
 
A04660105
A04660105A04660105
A04660105
 
Generation of Random EMF Models for Benchmarks
Generation of Random EMF Models for BenchmarksGeneration of Random EMF Models for Benchmarks
Generation of Random EMF Models for Benchmarks
 
The Bootstrap and Beyond: Using JSL for Resampling
The Bootstrap and Beyond: Using JSL for ResamplingThe Bootstrap and Beyond: Using JSL for Resampling
The Bootstrap and Beyond: Using JSL for Resampling
 
Protein threading using context specific alignment potential ismb-2013
Protein threading using context specific alignment potential ismb-2013Protein threading using context specific alignment potential ismb-2013
Protein threading using context specific alignment potential ismb-2013
 
Svd filtered temporal usage clustering
Svd filtered temporal usage clusteringSvd filtered temporal usage clustering
Svd filtered temporal usage clustering
 
A new CPXR Based Logistic Regression Method and Clinical Prognostic Modeling ...
A new CPXR Based Logistic Regression Method and Clinical Prognostic Modeling ...A new CPXR Based Logistic Regression Method and Clinical Prognostic Modeling ...
A new CPXR Based Logistic Regression Method and Clinical Prognostic Modeling ...
 
Two methods for optimising cognitive model parameters
Two methods for optimising cognitive model parametersTwo methods for optimising cognitive model parameters
Two methods for optimising cognitive model parameters
 
A Preliminary Analysis on the Effect of Randomness in a CEGAR Framework
 A Preliminary Analysis on the Effect of Randomness in a CEGAR Framework A Preliminary Analysis on the Effect of Randomness in a CEGAR Framework
A Preliminary Analysis on the Effect of Randomness in a CEGAR Framework
 

Más de ISSEL

Implementation of a platform for assessing indoor spaces regarding their frie...
Implementation of a platform for assessing indoor spaces regarding their frie...Implementation of a platform for assessing indoor spaces regarding their frie...
Implementation of a platform for assessing indoor spaces regarding their frie...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
 
Ανάπτυξη Φίλτρων Ανεπιθύμητων Μηνυμάτων με Χρήση Τεχνικών Τεχνητής Νοημοσύνης
Ανάπτυξη Φίλτρων Ανεπιθύμητων Μηνυμάτων με Χρήση Τεχνικών Τεχνητής ΝοημοσύνηςΑνάπτυξη Φίλτρων Ανεπιθύμητων Μηνυμάτων με Χρήση Τεχνικών Τεχνητής Νοημοσύνης
Ανάπτυξη Φίλτρων Ανεπιθύμητων Μηνυμάτων με Χρήση Τεχνικών Τεχνητής Νοημοσύνης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
 

Más de ISSEL (20)

Implementation of a platform for assessing indoor spaces regarding their frie...
Implementation of a platform for assessing indoor spaces regarding their frie...Implementation of a platform for assessing indoor spaces regarding their frie...
Implementation of a platform for assessing indoor spaces regarding their frie...
 
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
 
Εντοπισμός θέσης επισημασμένου αντικειμένου σε εσωτερικό χώρο με χρήση πολλαπ...
Εντοπισμός θέσης επισημασμένου αντικειμένου σε εσωτερικό χώρο με χρήση πολλαπ...Εντοπισμός θέσης επισημασμένου αντικειμένου σε εσωτερικό χώρο με χρήση πολλαπ...
Εντοπισμός θέσης επισημασμένου αντικειμένου σε εσωτερικό χώρο με χρήση πολλαπ...
 

Último

Intze Overhead Water Tank Design by Working Stress - IS Method.pdf
Intze Overhead Water Tank  Design by Working Stress - IS Method.pdfIntze Overhead Water Tank  Design by Working Stress - IS Method.pdf
Intze Overhead Water Tank Design by Working Stress - IS Method.pdfSuman Jyoti
 
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...ranjana rawat
 
chapter 5.pptx: drainage and irrigation engineering
chapter 5.pptx: drainage and irrigation engineeringchapter 5.pptx: drainage and irrigation engineering
chapter 5.pptx: drainage and irrigation engineeringmulugeta48
 
University management System project report..pdf
University management System project report..pdfUniversity management System project report..pdf
University management System project report..pdfKamal Acharya
 
Thermal Engineering-R & A / C - unit - V
Thermal Engineering-R & A / C - unit - VThermal Engineering-R & A / C - unit - V
Thermal Engineering-R & A / C - unit - VDineshKumar4165
 
Double rodded leveling 1 pdf activity 01
Double rodded leveling 1 pdf activity 01Double rodded leveling 1 pdf activity 01
Double rodded leveling 1 pdf activity 01KreezheaRecto
 
Online banking management system project.pdf
Online banking management system project.pdfOnline banking management system project.pdf
Online banking management system project.pdfKamal Acharya
 
Top Rated Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
Top Rated  Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...Top Rated  Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
Top Rated Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...Call Girls in Nagpur High Profile
 
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...Christo Ananth
 
BSides Seattle 2024 - Stopping Ethan Hunt From Taking Your Data.pptx
BSides Seattle 2024 - Stopping Ethan Hunt From Taking Your Data.pptxBSides Seattle 2024 - Stopping Ethan Hunt From Taking Your Data.pptx
BSides Seattle 2024 - Stopping Ethan Hunt From Taking Your Data.pptxfenichawla
 
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdfONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdfKamal Acharya
 
The Most Attractive Pune Call Girls Manchar 8250192130 Will You Miss This Cha...
The Most Attractive Pune Call Girls Manchar 8250192130 Will You Miss This Cha...The Most Attractive Pune Call Girls Manchar 8250192130 Will You Miss This Cha...
The Most Attractive Pune Call Girls Manchar 8250192130 Will You Miss This Cha...ranjana rawat
 
PVC VS. FIBERGLASS (FRP) GRAVITY SEWER - UNI BELL
PVC VS. FIBERGLASS (FRP) GRAVITY SEWER - UNI BELLPVC VS. FIBERGLASS (FRP) GRAVITY SEWER - UNI BELL
PVC VS. FIBERGLASS (FRP) GRAVITY SEWER - UNI BELLManishPatel169454
 
Extrusion Processes and Their Limitations
Extrusion Processes and Their LimitationsExtrusion Processes and Their Limitations
Extrusion Processes and Their Limitations120cr0395
 
UNIT-II FMM-Flow Through Circular Conduits
UNIT-II FMM-Flow Through Circular ConduitsUNIT-II FMM-Flow Through Circular Conduits
UNIT-II FMM-Flow Through Circular Conduitsrknatarajan
 
Vivazz, Mieres Social Housing Design Spain
Vivazz, Mieres Social Housing Design SpainVivazz, Mieres Social Housing Design Spain
Vivazz, Mieres Social Housing Design Spaintimesproduction05
 
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...roncy bisnoi
 

Último (20)

Intze Overhead Water Tank Design by Working Stress - IS Method.pdf
Intze Overhead Water Tank  Design by Working Stress - IS Method.pdfIntze Overhead Water Tank  Design by Working Stress - IS Method.pdf
Intze Overhead Water Tank Design by Working Stress - IS Method.pdf
 
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
 
chapter 5.pptx: drainage and irrigation engineering
chapter 5.pptx: drainage and irrigation engineeringchapter 5.pptx: drainage and irrigation engineering
chapter 5.pptx: drainage and irrigation engineering
 
Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar ≼🔝 Delhi door step de...
Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar  ≼🔝 Delhi door step de...Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar  ≼🔝 Delhi door step de...
Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar ≼🔝 Delhi door step de...
 
University management System project report..pdf
University management System project report..pdfUniversity management System project report..pdf
University management System project report..pdf
 
Thermal Engineering-R & A / C - unit - V
Thermal Engineering-R & A / C - unit - VThermal Engineering-R & A / C - unit - V
Thermal Engineering-R & A / C - unit - V
 
Double rodded leveling 1 pdf activity 01
Double rodded leveling 1 pdf activity 01Double rodded leveling 1 pdf activity 01
Double rodded leveling 1 pdf activity 01
 
Online banking management system project.pdf
Online banking management system project.pdfOnline banking management system project.pdf
Online banking management system project.pdf
 
Top Rated Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
Top Rated  Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...Top Rated  Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
Top Rated Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
 
(INDIRA) Call Girl Aurangabad Call Now 8617697112 Aurangabad Escorts 24x7
(INDIRA) Call Girl Aurangabad Call Now 8617697112 Aurangabad Escorts 24x7(INDIRA) Call Girl Aurangabad Call Now 8617697112 Aurangabad Escorts 24x7
(INDIRA) Call Girl Aurangabad Call Now 8617697112 Aurangabad Escorts 24x7
 
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
 
BSides Seattle 2024 - Stopping Ethan Hunt From Taking Your Data.pptx
BSides Seattle 2024 - Stopping Ethan Hunt From Taking Your Data.pptxBSides Seattle 2024 - Stopping Ethan Hunt From Taking Your Data.pptx
BSides Seattle 2024 - Stopping Ethan Hunt From Taking Your Data.pptx
 
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdfONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
 
The Most Attractive Pune Call Girls Manchar 8250192130 Will You Miss This Cha...
The Most Attractive Pune Call Girls Manchar 8250192130 Will You Miss This Cha...The Most Attractive Pune Call Girls Manchar 8250192130 Will You Miss This Cha...
The Most Attractive Pune Call Girls Manchar 8250192130 Will You Miss This Cha...
 
PVC VS. FIBERGLASS (FRP) GRAVITY SEWER - UNI BELL
PVC VS. FIBERGLASS (FRP) GRAVITY SEWER - UNI BELLPVC VS. FIBERGLASS (FRP) GRAVITY SEWER - UNI BELL
PVC VS. FIBERGLASS (FRP) GRAVITY SEWER - UNI BELL
 
Extrusion Processes and Their Limitations
Extrusion Processes and Their LimitationsExtrusion Processes and Their Limitations
Extrusion Processes and Their Limitations
 
UNIT-II FMM-Flow Through Circular Conduits
UNIT-II FMM-Flow Through Circular ConduitsUNIT-II FMM-Flow Through Circular Conduits
UNIT-II FMM-Flow Through Circular Conduits
 
(INDIRA) Call Girl Meerut Call Now 8617697112 Meerut Escorts 24x7
(INDIRA) Call Girl Meerut Call Now 8617697112 Meerut Escorts 24x7(INDIRA) Call Girl Meerut Call Now 8617697112 Meerut Escorts 24x7
(INDIRA) Call Girl Meerut Call Now 8617697112 Meerut Escorts 24x7
 
Vivazz, Mieres Social Housing Design Spain
Vivazz, Mieres Social Housing Design SpainVivazz, Mieres Social Housing Design Spain
Vivazz, Mieres Social Housing Design Spain
 
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
 

Abstract - Mining Source Code Change Patterns from Open-Source Repositories

  • 1. Εξαγωγή Προτύπων Αλλαγών Κώδικα από Αποθετήρια Ανοικτού Λογισμικού Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Τομέας Ηλεκτρονικής και Υπολογιστών Ομάδα Ευφυών Συστημάτων και Τεχνολογίας Λογισμικού (ISSEL) Επίβλεψη: Αν. Καθηγητής, Ανδρέας Συμεωνίδης Υπ. Διδάκτωρ, Θωμάς Καρανικιώτης Εκπόνηση: Οδυσσέας Κυπαρίσσης Α.Ε.Μ: 8955
  • 2. Διάρθρωση Παρουσίασης • Εισαγωγή • Μεθοδολογία • Αξιολόγηση & Αποτελέσματα • Συμπεράσματα • Μελλοντική Εργασία • Ευχαριστίες 12/8/2021 2 Εξαγωγή Προτύπων Αλλαγών Κώδικα από Αποθετήρια Ανοικτού Λογισμικού
  • 3. Εισαγωγή Περιγραφή Προβλήματος: • Επανειλημμένη αντιμετώπιση παρόμοιων σφαλμάτων πηγαίου κώδικα από διαφορετικές ομάδες προγραμματιστών. • Ελάχιστη προσπάθεια για ανάπτυξη επαναχρησιμοποιήσιμου λογισμικού. • Αυξανόμενη ανάγκη για γρήγορη και αποτελεσματική ανάπτυξη πηγαίου κώδικα. 12/8/2021 3 Εξαγωγή Προτύπων Αλλαγών Κώδικα από Αποθετήρια Ανοικτού Λογισμικού
  • 4. Εισαγωγή 12/8/2021 4 Εξαγωγή Προτύπων Αλλαγών Κώδικα από Αποθετήρια Ανοικτού Λογισμικού Σκοπός Διπλωματικής: Ανάπτυξη αυτοματοποιημένου συστήματος εξόρυξης προτύπων αλλαγών από αποθετήρια ανοικτού λογισμικού. • Αξιοποίηση της διαθέσιμης πληροφορίας από την πλατφόρμα του GitHub. • Μελέτη εξέλιξης τμημάτων πηγαίου κώδικα μεγάλων έργων λογισμικού. • Εξαγωγή και πρόταση γενικευμένων προτύπων αλλαγών πηγαίου κώδικα με στόχο: o Την αποσφαλμάτωση λογισμικού. o Την μείωση του χρόνου αποσφαλμάτωσης κατά την ανάπτυξη λογισμικού. o Την επαναχρησιμοποίηση πηγαίου κώδικα.
  • 5. Εισαγωγή Βασική Μονάδα Ανάλυσης - GitHub Commit: 12/8/2021 Εξαγωγή Προτύπων Αλλαγών Κώδικα από Αποθετήρια Ανοικτού Λογισμικού 5 Commit Message Commit SHA Code Diff
  • 6. Μεθοδολογία 12/8/2021 6 Εξαγωγή Προτύπων Αλλαγών Κώδικα από Αποθετήρια Ανοικτού Λογισμικού
  • 7. Μεθοδολογία Δημιουργία & Προεπεξεργασία Συνόλου Δεδομένων • 900 δημοφιλέστερα Java αποθετήρια του GitHub: o 600  Training Set o 300  Test Set • Επιλογή αποθετηρίων με < 2500 commits. • Επιλογή commits μόνο του main κλάδου. • Απόρριψη commits ⇒ message ≠: o fix, improve, change, bug, add, remove, support. • Διαχωρισμός των code changes σε 3 κατηγορίες. o Both, Only Additions, Only Deletions. 12/8/2021 Εξαγωγή Προτύπων Αλλαγών Κώδικα από Αποθετήρια Ανοικτού Λογισμικού 7 Διάσπαση Commits Πολλαπλών Αρχείων Διαγραφή Αλλαγών Κύριου Τμήματος (main) Διαγραφή Διπλοεγγραφών Ίδιου Commit 187.441 Code Changes 730.320 Code Changes - 453.257 Code Changes - 62% - 89.622 Duplicates - 12.3% 137.112 – 73.15% 35.490 – 18.93% 14.839 – 7.92%
  • 8. Μεθοδολογία Τελικά Χαρακτηριστικά • Μετατροπή πηγαίου κώδικα σε Αφηρημένο Συντακτικό Δέντρο (AST). • Τελικά Χαρακτηριστικά του Συνόλου Δεδομένων: 12/8/2021 Εξαγωγή Προτύπων Αλλαγών Κώδικα από Αποθετήρια Ανοικτού Λογισμικού 8 Cleaned Dataset SHA Message Code Diff Method Code Before Method Code After Method Code Before AST Method Code After AST Code Additions Code Deletions Code Additions AST Code Deletions AST
  • 9. Μεθοδολογία Εξαγωγή & Ανάλυση Χαρακτηριστικών 12/8/2021 Εξαγωγή Προτύπων Αλλαγών Κώδικα από Αποθετήρια Ανοικτού Λογισμικού 9 Χαρακτηριστικά (#) : Lines Changed Variable Statements Cyclomatic Complexity Switch Statements Unique Operators Simple Names AST Children Class Instance Creations Conditional Expressions While Statements Method Invocations For Statements If Statements Try Statements Return Statements Qualified Names Single Variable Declaration
  • 10. Μεθοδολογία • Εφαρμογή Αλγορίθμου Μείωσης Διαστασιμότητας o Principal Component Analysis – PCA. o Μετασχηματισμός των δεδομένων από 22 διαστάσεις σε 10. o Περιλαμβάνουν το 95% της συνολικής πληροφορίας και για τις τρείς κατηγορίες. 12/8/2021 Εξαγωγή Προτύπων Αλλαγών Κώδικα από Αποθετήρια Ανοικτού Λογισμικού 10 Category Size Before Filtered Percentage Both 137.112 18.647 13,6% Only Additions 35.490 4,950 13,95% Only Deletions 14.839 1.700 11,46% Φιλτράρισμα & Μείωση Διαστασιμότητας Box Plot – Number of Lines – Both Category Feature Code Changes Category Both Only Additions & Deletions Number of lines > 16 8 Number of AST children > 14 6 Number of names > 41 20
  • 11. Μεθοδολογία • Εφαρμογή Αλγορίθμου Ομαδοποίησης k- means ++. • Υπολογισμός του αθροίσματος τετραγωνικού σφάλματος για την επιλογή του k. 𝑺𝑺𝑬 = 𝑖=1 𝑘 𝑥∊𝐶𝑖 𝑑𝑖𝑠𝑡2(𝑚𝑖, 𝑥) 12/8/2021 Εξαγωγή Προτύπων Αλλαγών Κώδικα από Αποθετήρια Ανοικτού Λογισμικού 11 Αρχική Ομαδοποίηση Data Category Number of Clusters Both 9 Only Additions 5 Only Deletions 5
  • 12. Μεθοδολογία Ομοιότητα αλγοριθμικής δομής των αλλαγών. • Χρήση αλγορίθμου TED (Tree Edit Distance) – pq- grams. • Βασίζεται σε δύο παραμέτρους 𝒑, 𝒒. • Για κάθε ένα AST σχηματίζεται ένα Ordered Labeled Tree. o (𝑝 − 1) null κόμβοι εισάγονται στη ρίζα. o (𝑞 − 1) null κόμβοι εισάγονται, πριν το πρώτο και μετά το τελευταίο παιδί, κάθε ενδιάμεσου κόμβου (non-leaf node). o 𝑞 παιδιά εισάγονται σε κάθε φύλλο του δέντρου. 12/8/2021 Εξαγωγή Προτύπων Αλλαγών Κώδικα από Αποθετήρια Ανοικτού Λογισμικού 12 Υπολογισμός Πινάκων Ομοιότητας Αρχικών Ομάδων
  • 13. Μεθοδολογία 12/8/2021 Εξαγωγή Προτύπων Αλλαγών Κώδικα από Αποθετήρια Ανοικτού Λογισμικού 13 Υπολογισμός Πινάκων Ομοιότητας Αρχικών Ομάδων • Για κάθε extended tree υπολογίζονται τα pq-grams trees. • Ως pq-grams tree ορίζεται το δέντρο που περιέχει έναν κόμβο με (𝑝 − 1) προγόνους και 𝑞 παιδιά. • Όλα τα pq-grams ενός δέντρου αποτελούν το προφίλ του δέντρου 𝐏𝒑,𝒒 𝑻 . • Η απόσταση μεταξύ δύο δέντρων ορίζεται ως εξής: d𝑝,𝑞 𝑇1, 𝑇2 = 1 − 2 |𝑃𝑝,𝑞 𝑇1 ∩ 𝑃𝑝,𝑞 𝑇2 | |𝑃𝑝,𝑞 𝑇1 ∪ 𝑃𝑝,𝑞 𝑇2 |
  • 14. Μεθοδολογία 12/8/2021 Εξαγωγή Προτύπων Αλλαγών Κώδικα από Αποθετήρια Ανοικτού Λογισμικού 14 Βήματα Επεξεργασίας Περιγραφή Βήματος Κείμενο Αλλαγής Αρχική Κατάσταση - “If (isSorted()) { sortDescending();}” 1ο Βήμα Punctuation Removal “If isSorted sortDescending” 2ο Βήμα Tokenization [“if”, “isSorted”, “sortDescending”] 3ο Βήμα Split Camel Case [“If”, “is”, “Sorted”, “sort”, “Descending”] 4ο Βήμα Removal of Stop Words [“Sorted”, “sort”, “Descending”] 5ο Βήμα Lowercase [“sorted”, ”sort” ,”descending”] Υπολογισμός Πινάκων Ομοιότητας Αρχικών Ομάδων Λεξιλογική ομοιότητα των αλλαγών. • Προεπεξεργασία κειμένου των αλλαγών πηγαίου κώδικα.
  • 15. Μεθοδολογία 12/8/2021 Εξαγωγή Προτύπων Αλλαγών Κώδικα από Αποθετήρια Ανοικτού Λογισμικού 15 Υπολογισμός Πινάκων Ομοιότητας Αρχικών Ομάδων • Διανυσματοποίηση των code changes – Vector Space Modelling. • Χρήση του αλγορίθμου Term Frequency – Inverse Document Frequency. cos. sim 𝑐𝑐1, 𝑐𝑐2 = 𝑐𝑐1 ⋅ 𝑐𝑐2 (||𝑐𝑐1|| ∗ | 𝑐𝑐2 |) = 𝑖=1 𝑁 𝑡𝑓𝑖 𝑤𝑖, 𝑐𝑐1 ∗ 𝑡𝑓𝑖 𝑤𝑖, 𝑐𝑐2 𝑖=1 𝑁 𝑡𝑓𝑖2( 𝑤𝑖, 𝑐𝑐1) 𝑖=1 𝑁 𝑡𝑓𝑖2( 𝑤𝑖, 𝑐𝑐2) 𝑇𝐹. 𝐼𝐷𝐹 𝑤, 𝑐𝑐 = 𝑇𝐹 𝑤, 𝑐𝑐 ∗ 𝐼𝐷𝐹 𝑤 = 𝑇𝐹 𝑤, 𝑐𝑐 ∗ log( 𝑇𝐶 𝐷𝐹(𝑤) ) o 𝑻𝑭 𝒘, 𝒄𝒄 η συνάρτηση εμφάνισης του όρου w στο cc. o 𝑻𝑪 ο συνολικός αριθμός των code changes o 𝑫𝑭 𝒘 το πλήθος των code changes που περιλαμβάνουν το w. • Χρήση της μετρικής ομοιότητας cosine similarity:
  • 16. Μεθοδολογία 12/8/2021 Εξαγωγή Προτύπων Αλλαγών Κώδικα από Αποθετήρια Ανοικτού Λογισμικού 16 Τελική Ομαδοποίηση • Χρήση αλγορίθμου Agglomerative Hierarchical Clustering. • Υπολογισμός απόστασης ομάδων με τη μέθοδο Average Linkage. 𝑑 𝑟, 𝑠 = 1 𝑛𝑟 ∙ 𝑛𝑠 𝑖 𝑛𝑟 𝑗 𝑛𝑠 𝑑(𝑟𝑖, 𝑠𝑗) • Επιλογή βέλτιστου αριθμού ομάδων με τη χρήση της μετρικής Average Silhouette. 𝑠 𝑖 = 𝑏 𝑖 − 𝑎(𝑖) max{𝑎 𝑖 , 𝑏 𝑖 } 𝒂 𝒊 = 1 𝐶𝑖 −1 𝑗∊𝐶𝑖 𝑗≠𝑖 𝑑(𝑖, 𝑗) και 𝒃 𝒊 = 𝑚𝑖𝑛 1 𝐶𝑘 𝑗∊𝐶𝑘 𝑑(𝑖, 𝑗) • Βέλτιστη τιμή αριθμού ομάδων: 𝑘𝑜𝑝𝑡 = {𝑘: max(𝑠(𝑘))}
  • 17. Μεθοδολογία • Επιλογή βέλτιστων ομάδων με τη χρήση τριών παραμέτρων: o Μέγεθος Ομάδας o Συνοχή της Ομάδας: 𝑐𝑜ℎ𝑒𝑠𝑖𝑜𝑛 = 1 − 1 𝐶 − 1 𝑥∊𝐶 𝑑(𝑥, 𝑐𝑒𝑛𝑡𝑟𝑜𝑖𝑑) o Αριθμός διαφορετικών αποθετηρίων • Tα centroids των ομάδων αποτελούν τα τελικά πρότυπα. 𝑐𝑒𝑛𝑡𝑟𝑜𝑖𝑑 = min( 1 𝐶 − 1 ) 𝑗∊𝐶 𝑗≠𝑖 𝑑(𝑖, 𝑗) 12/8/2021 Εξαγωγή Προτύπων Αλλαγών Κώδικα από Αποθετήρια Ανοικτού Λογισμικού 17 Επιλογή Ομάδων & Εξαγωγή Προτύπων Αλλαγών Πηγαίου Κώδικα Cluster Name Size Threshold Cohesion Threshold Repositories Threshold Only additions 1 10 0,75 7 Only deletions 3 10 0,75 7 Both 1 10 0,75 7
  • 18. Αξιολόγηση & Αποτελέσματα Κύριος Στόχος Αξιολόγησης: o Ανίχνευση και καταμέτρηση των προτύπων (centroids) στα Code Diffs του συνόλου αξιολόγησης. Σύνολο Δεδομένων Αξιολόγησης: o 300 GitHub Αποθετήρια o 114.386 Code Diffs Κριτήρια Ανίχνευσης: • 𝑆𝑒𝑞𝑢𝑒𝑛𝑐𝑒𝑀𝑎𝑡𝑐ℎ𝑒𝑟. 𝑟𝑎𝑡𝑖𝑜 𝑠𝑒𝑞𝑢𝑒𝑛𝑐𝑒1, 𝑠𝑒𝑞𝑢𝑒𝑛𝑐𝑒2 = 2.0∗𝑀 𝑇 o Τ  Συνολικός αριθμός στοιχείων των δύο ακολουθιών. o Μ  Αριθμός των Matches. o Κατώτατο όριο ομοιότητας ακολουθιών: 0.8 Πρότυπα Αλλαγών Πηγαίου Κώδικα o Συνολικά 27 Πρότυπα Αλλαγών Πηγαίου Κώδικα 12/8/2021 Εξαγωγή Προτύπων Αλλαγών Κώδικα από Αποθετήρια Ανοικτού Λογισμικού 18
  • 19. Αξιολόγηση & Αποτελέσματα 12/8/2021 Εξαγωγή Προτύπων Αλλαγών Κώδικα από Αποθετήρια Ανοικτού Λογισμικού 19 13.1 13.54 12.75 42.50 32.77 26.50 0 10 20 30 40 50 Both Only Additions Only Deletions Average Patterns Summary Mean of Number of Different Test Repositories Mean of Number of Occurrences in Testing Code Diffs Σύνοψη Αξιολόγησης • Μέσος όρος εμφάνισης προτύπων σε διαφορετικά αποθετήρια λογισμικού. • Μέσος όρος εμφάνισης προτύπων στο σύνολο των αλλαγών του συνόλου δεδομένων αξιολόγησης.
  • 20. Αξιολόγηση & Αποτελέσματα Both Code Changes Patterns 12/8/2021 Εξαγωγή Προτύπων Αλλαγών Κώδικα από Αποθετήρια Ανοικτού Λογισμικού 20 Code Deletions Code Additions Repositories OTCD* public String name () { public String getName() { 18 144 StringBuffer buffer = new StringBuffer (); StringBuilder buffer = new StringBuilder (); 14 51 } catch (IOException e) { } catch (Exception e) { 26 94 e.printStackTrace(); logger.error("", e); 6 10 out.close(); if (out!= null) { out.close(); } 27 46 *OTCD = Occurrences in Testing Code Diffs
  • 21. Αξιολόγηση & Αποτελέσματα Only Additions Code Changes Patterns 12/8/2021 Εξαγωγή Προτύπων Αλλαγών Κώδικα από Αποθετήρια Ανοικτού Λογισμικού 21 Code Additions Repositories OTCD if ($Variable == null) { throw new NullPointerException("$Variable can’t be null"); } 6 14 @Override 30 68 this.$Variable = $Variable; 20 35 file.close(); 19 32
  • 22. Αξιολόγηση & Αποτελέσματα Only Deletions Code Changes Patterns 12/8/2021 Εξαγωγή Προτύπων Αλλαγών Κώδικα από Αποθετήρια Ανοικτού Λογισμικού 22 Code Deletions Repositories OTCD System.out.println(); 20 50 e.printStackTrace(); 20 39 } catch (Exception e) { throw e; } 5 7 long time = System.currentTimeMillis(); 6 10
  • 23. Συμπεράσματα Περιγραφή Προβλήματος o Επανειλημμένη αντιμετώπιση παρόμοιων σφαλμάτων κατά την ανάπτυξη λογισμικού. Ανάγκη Δημιουργίας Συστήματος που: o Βοηθά στη γρήγορη και αποδοτική συγγραφή επαναχρησιμοποιήσιμου πηγαίου κώδικα. Η Υλοποίηση του Συστήματος: o Οδηγεί στην εύρεση συχνών αλλαγών που χρησιμοποιούνται ευρέως στα πιο δημοφιλή αποθετήρια λογισμικού και άρα μπορούν να θεωρηθούν πρότυπα. o Βοηθά στην αποσφαλμάτωση και την βελτίωση επαναχρησιμοποιήσιμου πηγαίου κώδικα. 12/8/2021 Εξαγωγή Προτύπων Αλλαγών Κώδικα από Αποθετήρια Ανοικτού Λογισμικού 23
  • 24. Μελλοντική Εργασία Επεκτάσεις & Μελλοντική Εργασία • Επέκταση του συνόλου δεδομένων εκπαίδευσης περιλαμβάνοντας αλλαγές πηγαίου κώδικα από πολλαπλές γλώσσες προγραμματισμού. • Χρήση βάσης δεδομένων για πιο αποτελεσματική αποθήκευση και ανάκτηση της πληροφορίας. • Χρήση της κάρτας γραφικών κατά τον υπολογισμό των πινάκων ομοιότητας. 12/8/2021 Εξαγωγή Προτύπων Αλλαγών Κώδικα από Αποθετήρια Ανοικτού Λογισμικού 24
  • 25. Ευχαριστίες Θα ήθελα να ευχαριστήσω θερμά: • Τον κ. Ανδρέα Συμεωνίδη • Τον Θωμά Καρανικιώτη • Όλους εσάς για την προσοχή σας! 12/8/2021 Εξαγωγή Προτύπων Αλλαγών Κώδικα από Αποθετήρια Ανοικτού Λογισμικού 25
  • 26. 12/8/2021 Εξαγωγή Προτύπων Αλλαγών Κώδικα από Αποθετήρια Ανοικτού Λογισμικού 26 Q&A