SlideShare a Scribd company logo
Εξαγωγή Προτύπων Αλλαγών
Κώδικα από Αποθετήρια Ανοικτού
Λογισμικού
Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης
Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών
Τομέας Ηλεκτρονικής και Υπολογιστών
Ομάδα Ευφυών Συστημάτων και Τεχνολογίας Λογισμικού (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

More Related Content

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

Idioms Extraction from Code Repositories
Idioms Extraction from Code RepositoriesIdioms Extraction from Code Repositories
Idioms Extraction from Code Repositories
ISSEL
 
Εξαγωγή Ιδιωμάτων από Αποθετήρια Κώδικα
Εξαγωγή Ιδιωμάτων από Αποθετήρια ΚώδικαΕξαγωγή Ιδιωμάτων από Αποθετήρια Κώδικα
Εξαγωγή Ιδιωμάτων από Αποθετήρια Κώδικα
ISSEL
 
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 prediction
Martin 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 search
Greg Makowski
 
Galegalidou Christiana Thesis Presentation
Galegalidou Christiana Thesis PresentationGalegalidou Christiana Thesis Presentation
Galegalidou Christiana Thesis Presentation
ISSEL
 
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
BITS
 
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
IRJET 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 SRAM
IJERA 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 C
Susumu 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 Techniques
Nikos Katirtzis
 
A04660105
A04660105A04660105
A04660105
IOSR-JEN
 
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
Markus 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 Resampling
JMP 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-2013
Sheng 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 parameters
University 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 Framework
Akos Hajdu
 

Similar to 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
 

More from 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
Ανάπτυξη Ελληνικών Μοντέλων Εντοπισμού Ρητορικής Μίσους.pptx
ISSEL
 
Σχεδιασμός και υλοποίηση πλήρους και αυτοματοποιημένου εργαλείου ελέγχων ασφά...
Σχεδιασμός και υλοποίηση πλήρους και αυτοματοποιημένου εργαλείου ελέγχων ασφά...Σχεδιασμός και υλοποίηση πλήρους και αυτοματοποιημένου εργαλείου ελέγχων ασφά...
Σχεδιασμός και υλοποίηση πλήρους και αυτοματοποιημένου εργαλείου ελέγχων ασφά...
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 environments
ISSEL
 
Εντοπισμός θέσης επισημασμένου αντικειμένου σε εσωτερικό χώρο με χρήση πολλαπ...
Εντοπισμός θέσης επισημασμένου αντικειμένου σε εσωτερικό χώρο με χρήση πολλαπ...Εντοπισμός θέσης επισημασμένου αντικειμένου σε εσωτερικό χώρο με χρήση πολλαπ...
Εντοπισμός θέσης επισημασμένου αντικειμένου σε εσωτερικό χώρο με χρήση πολλαπ...
ISSEL
 

More from 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
 
Εντοπισμός θέσης επισημασμένου αντικειμένου σε εσωτερικό χώρο με χρήση πολλαπ...
Εντοπισμός θέσης επισημασμένου αντικειμένου σε εσωτερικό χώρο με χρήση πολλαπ...Εντοπισμός θέσης επισημασμένου αντικειμένου σε εσωτερικό χώρο με χρήση πολλαπ...
Εντοπισμός θέσης επισημασμένου αντικειμένου σε εσωτερικό χώρο με χρήση πολλαπ...
 

Recently uploaded

power quality voltage fluctuation UNIT - I.pptx
power quality voltage fluctuation UNIT - I.pptxpower quality voltage fluctuation UNIT - I.pptx
power quality voltage fluctuation UNIT - I.pptx
ViniHema
 
Vaccine management system project report documentation..pdf
Vaccine management system project report documentation..pdfVaccine management system project report documentation..pdf
Vaccine management system project report documentation..pdf
Kamal Acharya
 
addressing modes in computer architecture
addressing modes  in computer architectureaddressing modes  in computer architecture
addressing modes in computer architecture
ShahidSultan24
 
ethical hacking in wireless-hacking1.ppt
ethical hacking in wireless-hacking1.pptethical hacking in wireless-hacking1.ppt
ethical hacking in wireless-hacking1.ppt
Jayaprasanna4
 
Industrial Training at Shahjalal Fertilizer Company Limited (SFCL)
Industrial Training at Shahjalal Fertilizer Company Limited (SFCL)Industrial Training at Shahjalal Fertilizer Company Limited (SFCL)
Industrial Training at Shahjalal Fertilizer Company Limited (SFCL)
MdTanvirMahtab2
 
Railway Signalling Principles Edition 3.pdf
Railway Signalling Principles Edition 3.pdfRailway Signalling Principles Edition 3.pdf
Railway Signalling Principles Edition 3.pdf
TeeVichai
 
TECHNICAL TRAINING MANUAL GENERAL FAMILIARIZATION COURSE
TECHNICAL TRAINING MANUAL   GENERAL FAMILIARIZATION COURSETECHNICAL TRAINING MANUAL   GENERAL FAMILIARIZATION COURSE
TECHNICAL TRAINING MANUAL GENERAL FAMILIARIZATION COURSE
DuvanRamosGarzon1
 
Design and Analysis of Algorithms-DP,Backtracking,Graphs,B&B
Design and Analysis of Algorithms-DP,Backtracking,Graphs,B&BDesign and Analysis of Algorithms-DP,Backtracking,Graphs,B&B
Design and Analysis of Algorithms-DP,Backtracking,Graphs,B&B
Sreedhar Chowdam
 
The role of big data in decision making.
The role of big data in decision making.The role of big data in decision making.
The role of big data in decision making.
ankuprajapati0525
 
AKS UNIVERSITY Satna Final Year Project By OM Hardaha.pdf
AKS UNIVERSITY Satna Final Year Project By OM Hardaha.pdfAKS UNIVERSITY Satna Final Year Project By OM Hardaha.pdf
AKS UNIVERSITY Satna Final Year Project By OM Hardaha.pdf
SamSarthak3
 
Cosmetic shop management system project report.pdf
Cosmetic shop management system project report.pdfCosmetic shop management system project report.pdf
Cosmetic shop management system project report.pdf
Kamal Acharya
 
在线办理(ANU毕业证书)澳洲国立大学毕业证录取通知书一模一样
在线办理(ANU毕业证书)澳洲国立大学毕业证录取通知书一模一样在线办理(ANU毕业证书)澳洲国立大学毕业证录取通知书一模一样
在线办理(ANU毕业证书)澳洲国立大学毕业证录取通知书一模一样
obonagu
 
Immunizing Image Classifiers Against Localized Adversary Attacks
Immunizing Image Classifiers Against Localized Adversary AttacksImmunizing Image Classifiers Against Localized Adversary Attacks
Immunizing Image Classifiers Against Localized Adversary Attacks
gerogepatton
 
CME397 Surface Engineering- Professional Elective
CME397 Surface Engineering- Professional ElectiveCME397 Surface Engineering- Professional Elective
CME397 Surface Engineering- Professional Elective
karthi keyan
 
ethical hacking-mobile hacking methods.ppt
ethical hacking-mobile hacking methods.pptethical hacking-mobile hacking methods.ppt
ethical hacking-mobile hacking methods.ppt
Jayaprasanna4
 
DESIGN A COTTON SEED SEPARATION MACHINE.docx
DESIGN A COTTON SEED SEPARATION MACHINE.docxDESIGN A COTTON SEED SEPARATION MACHINE.docx
DESIGN A COTTON SEED SEPARATION MACHINE.docx
FluxPrime1
 
HYDROPOWER - Hydroelectric power generation
HYDROPOWER - Hydroelectric power generationHYDROPOWER - Hydroelectric power generation
HYDROPOWER - Hydroelectric power generation
Robbie Edward Sayers
 
Final project report on grocery store management system..pdf
Final project report on grocery store management system..pdfFinal project report on grocery store management system..pdf
Final project report on grocery store management system..pdf
Kamal Acharya
 
weather web application report.pdf
weather web application report.pdfweather web application report.pdf
weather web application report.pdf
Pratik Pawar
 
NO1 Uk best vashikaran specialist in delhi vashikaran baba near me online vas...
NO1 Uk best vashikaran specialist in delhi vashikaran baba near me online vas...NO1 Uk best vashikaran specialist in delhi vashikaran baba near me online vas...
NO1 Uk best vashikaran specialist in delhi vashikaran baba near me online vas...
Amil Baba Dawood bangali
 

Recently uploaded (20)

power quality voltage fluctuation UNIT - I.pptx
power quality voltage fluctuation UNIT - I.pptxpower quality voltage fluctuation UNIT - I.pptx
power quality voltage fluctuation UNIT - I.pptx
 
Vaccine management system project report documentation..pdf
Vaccine management system project report documentation..pdfVaccine management system project report documentation..pdf
Vaccine management system project report documentation..pdf
 
addressing modes in computer architecture
addressing modes  in computer architectureaddressing modes  in computer architecture
addressing modes in computer architecture
 
ethical hacking in wireless-hacking1.ppt
ethical hacking in wireless-hacking1.pptethical hacking in wireless-hacking1.ppt
ethical hacking in wireless-hacking1.ppt
 
Industrial Training at Shahjalal Fertilizer Company Limited (SFCL)
Industrial Training at Shahjalal Fertilizer Company Limited (SFCL)Industrial Training at Shahjalal Fertilizer Company Limited (SFCL)
Industrial Training at Shahjalal Fertilizer Company Limited (SFCL)
 
Railway Signalling Principles Edition 3.pdf
Railway Signalling Principles Edition 3.pdfRailway Signalling Principles Edition 3.pdf
Railway Signalling Principles Edition 3.pdf
 
TECHNICAL TRAINING MANUAL GENERAL FAMILIARIZATION COURSE
TECHNICAL TRAINING MANUAL   GENERAL FAMILIARIZATION COURSETECHNICAL TRAINING MANUAL   GENERAL FAMILIARIZATION COURSE
TECHNICAL TRAINING MANUAL GENERAL FAMILIARIZATION COURSE
 
Design and Analysis of Algorithms-DP,Backtracking,Graphs,B&B
Design and Analysis of Algorithms-DP,Backtracking,Graphs,B&BDesign and Analysis of Algorithms-DP,Backtracking,Graphs,B&B
Design and Analysis of Algorithms-DP,Backtracking,Graphs,B&B
 
The role of big data in decision making.
The role of big data in decision making.The role of big data in decision making.
The role of big data in decision making.
 
AKS UNIVERSITY Satna Final Year Project By OM Hardaha.pdf
AKS UNIVERSITY Satna Final Year Project By OM Hardaha.pdfAKS UNIVERSITY Satna Final Year Project By OM Hardaha.pdf
AKS UNIVERSITY Satna Final Year Project By OM Hardaha.pdf
 
Cosmetic shop management system project report.pdf
Cosmetic shop management system project report.pdfCosmetic shop management system project report.pdf
Cosmetic shop management system project report.pdf
 
在线办理(ANU毕业证书)澳洲国立大学毕业证录取通知书一模一样
在线办理(ANU毕业证书)澳洲国立大学毕业证录取通知书一模一样在线办理(ANU毕业证书)澳洲国立大学毕业证录取通知书一模一样
在线办理(ANU毕业证书)澳洲国立大学毕业证录取通知书一模一样
 
Immunizing Image Classifiers Against Localized Adversary Attacks
Immunizing Image Classifiers Against Localized Adversary AttacksImmunizing Image Classifiers Against Localized Adversary Attacks
Immunizing Image Classifiers Against Localized Adversary Attacks
 
CME397 Surface Engineering- Professional Elective
CME397 Surface Engineering- Professional ElectiveCME397 Surface Engineering- Professional Elective
CME397 Surface Engineering- Professional Elective
 
ethical hacking-mobile hacking methods.ppt
ethical hacking-mobile hacking methods.pptethical hacking-mobile hacking methods.ppt
ethical hacking-mobile hacking methods.ppt
 
DESIGN A COTTON SEED SEPARATION MACHINE.docx
DESIGN A COTTON SEED SEPARATION MACHINE.docxDESIGN A COTTON SEED SEPARATION MACHINE.docx
DESIGN A COTTON SEED SEPARATION MACHINE.docx
 
HYDROPOWER - Hydroelectric power generation
HYDROPOWER - Hydroelectric power generationHYDROPOWER - Hydroelectric power generation
HYDROPOWER - Hydroelectric power generation
 
Final project report on grocery store management system..pdf
Final project report on grocery store management system..pdfFinal project report on grocery store management system..pdf
Final project report on grocery store management system..pdf
 
weather web application report.pdf
weather web application report.pdfweather web application report.pdf
weather web application report.pdf
 
NO1 Uk best vashikaran specialist in delhi vashikaran baba near me online vas...
NO1 Uk best vashikaran specialist in delhi vashikaran baba near me online vas...NO1 Uk best vashikaran specialist in delhi vashikaran baba near me online vas...
NO1 Uk best vashikaran specialist in delhi vashikaran baba near me online vas...
 

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