SlideShare a Scribd company logo
1 of 51
Ανάλυση Δεδομένων Έργων Λογισμικού για
Ανάπτυξη σε Νέα Πεδία Εφαρμογής
Εμμανουήλ Κρασανάκης
Επιβλέπων καθηγητής: Ανδρέας Συμεωνίδης
Διδακτορική διατριβή - 11/2022
Εργαστήριο Επεξεργασίας Πληροφορίας και Υπολογισμών
Πραγματικότητα
Το λογισμικό βρίσκεται παντού
Συνεχώς νέες απαιτήσεις
⇒ Ταχεία ανάπτυξη;
2/42
Ανάλυση Δεδομένων Έργων Λογισμικού για Ανάπτυξη σε Νέα Πεδία Εφαρμογής
Εμμανουήλ Κρασανάκης
Πρόβλημα μηχανικών λογισμικού
• Νέα πεδία εφαρμογής
• Έλλειψη σχετικής εξειδίκευσης
⇒ Χρονοβόρα εξοικείωση + τεχνικό χρέος
⇒ Επιτάχυνση;
3/42
Ανάλυση Δεδομένων Έργων Λογισμικού για Ανάπτυξη σε Νέα Πεδία Εφαρμογής
Εμμανουήλ Κρασανάκης
Διερεύνηση
Κατανόηση
για όλες τις
απαιτήσεις
Μεθοδολογία
«explainable machine learning»
from lime.lime_text import LimeTextExplainer
Τι κάνει η:
«apply LimeTextExplainer on a
LogisticRegression model»
Υλοποίηση
4/42
Ανάλυση Δεδομένων Έργων Λογισμικού για Ανάπτυξη σε Νέα Πεδία Εφαρμογής
Εμμανουήλ Κρασανάκης
Διερεύνηση
Κατανόηση
Υλοποίηση
για όλες τις
απαιτήσεις
Μεθοδολογία: 1ο βήμα
5/42
Ανάλυση Δεδομένων Έργων Λογισμικού για Ανάπτυξη σε Νέα Πεδία Εφαρμογής
Εμμανουήλ Κρασανάκης
Διερεύνηση νέων πεδίων
Διαδικτυακές αναζητήσεις
Μεταφορά εξειδίκευσης
⇒ Δημοφιλείς υπάρχουσες λύσεις
π.χ. από γνωστές εταιρίες
Πρόβλημα
⇒ Καταλληλότερες;
6/42
Ανάλυση Δεδομένων Έργων Λογισμικού για Ανάπτυξη σε Νέα Πεδία Εφαρμογής
Εμμανουήλ Κρασανάκης
Αναζήτηση με μηχανική μάθηση
Αποθετήρια Προτάσεις
Απαιτήσεις Διαλογή
AI
ανεπαρκή δεδομένα εκπαίδευσης
π.χ. 105
ανελυμένες λύσεις /107
έργα αποθετηρίων
συμπλήρωση δεδομένων
π.χ. +100 λύσεις
σχετικές με απαιτήσεις
Συχνά οι απαιτήσεις καθορίζουν δεδομένα εκπαίδευσης
Υπόβαθρο
7/42
Ανάλυση Δεδομένων Έργων Λογισμικού για Ανάπτυξη σε Νέα Πεδία Εφαρμογής
Εμμανουήλ Κρασανάκης
⇒ καθυστερήσεις προτάσεων = χρόνος εκπαίδευσης
numpy
Εφαρμογή σε μηχανές αναζήτησης λογισμικού
Ανάλυση γράφων
π.χ. εξαρτήσεων βιβλιοθηκών, λέξεις-κλειδιών με βιβλιοθήκες
Αναζήτηση με μη μάθηση
⇒ γρήγορη εκτέλεση
…
Κ
keras
Υπόβαθρο
8/42
Ανάλυση Δεδομένων Έργων Λογισμικού για Ανάπτυξη σε Νέα Πεδία Εφαρμογής
Εμμανουήλ Κρασανάκης
tensorflow
scipy
matplotlib
Κ
keras
machine
tensorflow
learning
explain
lime
Γραφική επεξεργασία σήματος
Προτάσεις χωρίς εκπαίδευση
απευθείας ενσωμάτωση νέων δεδομένων
Συσχέτιση με αρχικές κορυφές
π.χ. όρους αναζήτησης
𝑊 κανονικοποιημένος πίνακας γειτνίασης
διάχυση = 𝐻 𝑊 ⋅ είσοδος
⇐ καλές υποθέσεις
Κ
keras
machine
tensorflow
learning
explain
lime keras
machine
tensorflow
learning
explain
lime
Υπόβαθρο
9/42
Εμμανουήλ Κρασανάκης
Ανάλυση Δεδομένων Έργων Λογισμικού για Ανάπτυξη σε Νέα Πεδία Εφαρμογής
Μερικώς απορροφητικοί τυχαίοι περίπατοι
Γενίκευση στοχαστικών τυχαίων περιπάτων με επανεκκίνηση
π.χ. PageRank
Σημαντικότητα απομνημόνευσης για κάθε κορυφή
μνήμη = παρόμοια με αυτοπροσοχή GNN συστημάτων προτάσεων
διάχυση = 𝐼 − 𝑊′ −1p′
𝑊′ εξαρτάται από πίνακα γειτνίασης και απορρόφηση > 0
𝑝′
εξαρτάται από είσοδο και απορρόφηση
= απομνημόνευση
Υπόβαθρο
10/42
Εμμανουήλ Κρασανάκης
Ανάλυση Δεδομένων Έργων Λογισμικού για Ανάπτυξη σε Νέα Πεδία Εφαρμογής
Συμμετρικοί μερικώς απορ/τικοί τυχαίοι περίπατοι
Υπόθεση χαμηλοπερατού φιλτραρίσματος
π.χ. οι μηχανικοί δίνουν προτεραιότητα σε περιοχές γύρω από τους όρους αναζήτησης
⇒ Εγγύηση μόνο για συμμετρικό 𝑊′
μη-αύξηση ιδιοτιμών σε σχέση με 𝑊
⇒ Μοναδική λύση
καμία παράμετρος ή υπερπαράμετρος
πόλωση προς
ισοβαρή σημαντικότητα
δημοτικότητα στον
κανονικοποιημένο
πίνακα γειτνίασης
π.χ. βιβλιοθήκης
Συνεισφορά
Εμμανουήλ Κρασανάκης
Ανάλυση Δεδομένων Έργων Λογισμικού για Ανάπτυξη σε Νέα Πεδία Εφαρμογής
11/42
…
σημαντικότητας απομν/σης κορυφής A =
1
2
+
1
2
1 + 4 𝑣 𝑊 𝐴, 𝑣
Πολλαπλασιαστικό φιλτράρισμα
Σκορ κορυφών 𝑣 για λέξεις-κλειδιά Α ∈ εννοιολογική αναζήτηση
Α 𝐻 𝑊 𝛿Α 𝑣
Πρόταση: Συσχέτιση με όλες τις λέξεις
Α 𝐻 𝑊 𝛿Α 𝑣
γραφικό φιλτράρισμα =
άθροισμα κρουστικών αποκρίσεων
πιθανότητα συσχέτισης με ≥ 1 λέξη
για στατ. ανεξάρτητες λέξεις
∝ Α Prob 𝑣 σχετίζεται με Α
∝ Α Prob 𝑣 σχετίζεται με Α
Συνεισφορά
Εμμανουήλ Κρασανάκης
Ανάλυση Δεδομένων Έργων Λογισμικού για Ανάπτυξη σε Νέα Πεδία Εφαρμογής
12/42
keras
machine
tensorflow
learning
explain
lime
𝐻 𝑊 𝛿𝑒𝑥𝑝𝑙𝑎𝑖𝑛 [tensorflow]
flare: εργαλείο αναζήτησης έργων λογισμικού
+ Αναζήτηση στο αποθετήριο PyPI
>300,000 έργα λογισμικού
+ Χαμηλοπερατά φίλτρα ⇒ τμήμα του αποθετηρίου
+ Εύρεση δημοφιλών βιβλιοθηκών github + περισσότερες
Ανάπτυξη και χρήση βιβλιοθήκης pygrank για γρήγορο γραφικό φιλτράρισμα
Συνεισφορά
Εμμανουήλ Κρασανάκης 13/42
Ανάλυση Δεδομένων Έργων Λογισμικού για Ανάπτυξη σε Νέα Πεδία Εφαρμογής
Πρόταση έργων λογισμικού
Μέθοδος F1 Cov
cos λέξεων 5,7% 22,3%
GNN μη-μάθησης 12,0% 38,5%
φίλτρο pagerank 13,2% 49,8%
flare (συμμετρικό) 17,9% 40,8%
Μέθοδος Recall MAP
cos λέξεων 14,7% 2,7%
απλή Google 20,6% 12,3%
φίλτρο pagerank 27,4% 13,8%
flare (πολ/στικό) 29,4% 16,0%
Μέθοδος F1 Cov
GNN συνεργ. φιλτραρίσματος 48,3% 75%
φίλτρο ισοβαρούς μνήμης 47,6% 69%
φίλτρο pagerank 43,8% 37%
flare (συμμετρικό) 48,4% 69%
ΣΕΝΑΡΙΟ 1
Βιβλιοθήκες → συμπληρωματικές
torch, networkx → pytorch geometric
MaLib, 5 εξαρτήσεις/έργο για έλεγχο PyPI, 20% εξαρτήσεων μόνο για έλεγχο
μάθηση, καθυστερήσεις προτάσεων
> 5 ωρών (έναντι λεπτά μη μάθησης)
PyPI, αναζήτηση με 10% περιγραφής
Αξιολόγηση
14/42
Εμμανουήλ Κρασανάκης
Ανάλυση Δεδομένων Έργων Λογισμικού για Ανάπτυξη σε Νέα Πεδία Εφαρμογής
Ποιότητα 10 κορυφαίων προτάσεων, περισσότερα πειράματα στο κείμενο
ΣΕΝΑΡΙΟ 2
Λέξεις-κλειδιά → έργα
“deep learning” → keras, torch
ΣΕΝΑΡΙΟ 3
Λέξεις-κλειδιά → εξαρτήσεις
“deep learning” → logger, pytest
Διερεύνηση
Κατανόηση
Υλοποίηση
για όλες τις
απαιτήσεις
Μεθοδολογία: 2ο βήμα
Ανάλυση Δεδομένων Έργων Λογισμικού για Ανάπτυξη σε Νέα Πεδία Εφαρμογής
Εμμανουήλ Κρασανάκης 15/42
Γράφος εξαρτήσεων οντοτήτων
οντότητες
συναρτήσεις, κλάσεις, αρχεία
A
class A {
…
}
Ανάλυση Δεδομένων Έργων Λογισμικού για Ανάπτυξη σε Νέα Πεδία Εφαρμογής
Εμμανουήλ Κρασανάκης
Πρόβλημα
16/42
Γράφος εξαρτήσεων οντοτήτων
εξαρτήσεις
κλήσεις, χρήσεις
class A {
…
}
class B {
A member = null;
}
B
A
Ανάλυση Δεδομένων Έργων Λογισμικού για Ανάπτυξη σε Νέα Πεδία Εφαρμογής
Εμμανουήλ Κρασανάκης
Πρόβλημα
16/42
Γράφος εξαρτήσεων οντοτήτων
Πακέτο Α Πακέτο Β Πακέτο Γ
Μακροσκοπική κατανόηση
οργάνωση σε πακέτα = κοινότητες συναφών οντοτήτων για εύκολη αναζήτηση και επέκταση
Ανάλυση Δεδομένων Έργων Λογισμικού για Ανάπτυξη σε Νέα Πεδία Εφαρμογής
Εμμανουήλ Κρασανάκης
Πρόβλημα
16/42
Κατανόηση οντότητας ενδιαφέροντος
Ανάγνωση κώδικα + κατανόηση εξαρτήσεων
⇒ Πότε σταματάμε;
Ανάλυση Δεδομένων Έργων Λογισμικού για Ανάπτυξη σε Νέα Πεδία Εφαρμογής
Εμμανουήλ Κρασανάκης
Πρόβλημα
17/42
Κατανόηση οντότητας ενδιαφέροντος
Ανάγνωση κώδικα + κατανόηση εξαρτήσεων
⇒ Πότε σταματάμε;
Ανάλυση Δεδομένων Έργων Λογισμικού για Ανάπτυξη σε Νέα Πεδία Εφαρμογής
Εμμανουήλ Κρασανάκης
Πρόβλημα
17/42
⇒ Αναγνώριση ροής λειτουργικότητας;
Αγωγιμότητα
Ανάλυση Δεδομένων Έργων Λογισμικού για Ανάπτυξη σε Νέα Πεδία Εφαρμογής
Εμμανουήλ Κρασανάκης
Υπόβαθρο
18/42
Γνωστή από θεωρία δικτύων
Χαμηλή αγωγιμότητα = δομική κοινότητα
• π.χ. πακέτα υψηλής συνοχής και χαλαρής σύζευξης στον κόσμο λογισμικού
• εύρεση με φίλτρα γράφων
Αγωγιμότητα
2 εξερχόμενες ακμές
9 εσωτερικές ακμές
= 0,22
𝜑 =
Ανάλυση Δεδομένων Έργων Λογισμικού για Ανάπτυξη σε Νέα Πεδία Εφαρμογής
Εμμανουήλ Κρασανάκης
Υπόβαθρο
18/42
Γνωστή από θεωρία δικτύων
Χαμηλή αγωγιμότητα = δομική κοινότητα
• π.χ. πακέτα υψηλής συνοχής και χαλαρής σύζευξης στον κόσμο λογισμικού
• εύρεση με φίλτρα γράφων
Ροές λειτουργικότητας
Ανάλυση Δεδομένων Έργων Λογισμικού για Ανάπτυξη σε Νέα Πεδία Εφαρμογής
Εμμανουήλ Κρασανάκης 19/42
Διατρέχουν πολλά πακέτα
αντίθετες των δομικών κοινοτήτων
Πολλές εξαρτήσεις σε απλές οντότητες
σημεία ένωσης/διάχυσης πολλών δεδομένων, δυσανάλογα πολύς κόπος να συνεχίσει η ανάγνωση εξαρτήσεων
⇒ Υψηλή αγωγιμότητα
Συνεισφορά
Αλγόριθμος συρρίκνωσης ιχνών
max εξερχόμενες ακμές – 𝑎 ⋅ εσωτερικές ακμές
εξερχόμενες ακμές
εσωτερικές ακμές
max 𝜑 = ⇔ για κάποιο 𝑎
Προσέγγιση μέγιστης αγωγιμότητας ριζωμένης στην οντότητα ενδιαφέροντος:
μετατροπή σε κατάλληλο
ριζωμένο πρόβλημα Steiner
(προσεγγιστικοί επιλυτές)
διχοτομική αναζήτηση στο
εύρος 0, max degree
Εγγύηση Prob 𝜑 ≥
max 𝜑−Α
1+𝐴
≥ 1 − 𝑒−4𝜀2 2
Σχεδόν γραμμικός χρόνος 𝑂 ακμές ⋅ log2 ακμές
Ανάλυση Δεδομένων Έργων Λογισμικού για Ανάπτυξη σε Νέα Πεδία Εφαρμογής
Εμμανουήλ Κρασανάκης
⇒ Εύρεση κατάλληλου 𝑎 και αντίστοιχου υπογράφου που προκύπτει από επιλυτή Steiner
Συνεισφορά
20/42
𝜑 = 5
Σύγκριση με εναλλακτικές
Υποσχόμενες εναλλακτικές σχεδόν γραμμικού χρόνου
40 έργα λογισμικού, μη κατευθυνόμενες εξαρτήσεις, περισσότερα πειράματα στο κείμενο
• αγωγιμότητα
• ετερογένεια = (πακέτα-1) / (οντότητες-1)
Μέθοδος Αγωγιμότητα
φιλτράρισμα για μικρή αγωγιμότητα [Andersen, 2016] 1
άπληστη βελτιστοποίηση 119
φασματική αραιοποίηση [Spielman, 2011] 9
ελαφρύτατο κόψιμο [Goemans, 1995] 6
συρρίκνωση ιχνών 168
Ετερογένεια
29%
61%
29%
24%
70%
Ανάλυση Δεδομένων Έργων Λογισμικού για Ανάπτυξη σε Νέα Πεδία Εφαρμογής
Εμμανουήλ Κρασανάκης 21/42
Αξιολόγηση
Διερεύνηση
Κατανόηση
Υλοποίηση
για όλες τις
απαιτήσεις
Ανάλυση Δεδομένων Έργων Λογισμικού για Ανάπτυξη σε Νέα Πεδία Εφαρμογής
Εμμανουήλ Κρασανάκης
Μεθοδολογία: 3ο βήμα
22/42
Αυτόματη σύνθεση κώδικα με μηχανική μάθηση
Εκατομμύρια έργα λογισμικού σε αποθετήρια
Υπάρχουσες υλοποιήσεις
⇒ Βαθιά μηχανική μάθηση για πρόταση κώδικα
Μηχανικός
σύνθεση
def func(…):
if A(…):
return B(…)
return D(C(…))
Πηγαίος κώδικας
Προδιαγραφές
Ανάλυση Δεδομένων Έργων Λογισμικού για Ανάπτυξη σε Νέα Πεδία Εφαρμογής
Εμμανουήλ Κρασανάκης 23/42
Υπόβαθρο
Μηχανική μάθηση ή μη;
+ Προδιαγραφές σε φυσική γλώσσα
+ Γρήγορη παραγωγή κώδικα
+ Ενδεικτικές λύσεις σε νέα πεδία εφαρμογής
- Έλλειψη εγγυήσεων
π.χ. κενά ασφαλείας προτεινόμενου κώδικα
- Στατιστικό αντί αιτιοκρατικό μαύρο κουτί
π.χ. τροποποίηση προδιαγραφών για μεταβολή αποτελέσματος;
def func(…):
if A<1: # WRONG
return B(…)
return D(C(…))
Ανάλυση Δεδομένων Έργων Λογισμικού για Ανάπτυξη σε Νέα Πεδία Εφαρμογής
Εμμανουήλ Κρασανάκης 24/42
Υπόβαθρο
σφάλματα πεδιακής γλώσσας
Αυτόματη σύνθεση κώδικα με πεδιακές γλώσσες
Προδιαγραφές σε
πεδιακή γλώσσα
A B
C D
Μηχανικός
def func(…):
if A(…):
return B(…)
return D(C(…))
Πηγαίος κώδικας
μετα/σμός
επεξεργασία
Ανάλυση Δεδομένων Έργων Λογισμικού για Ανάπτυξη σε Νέα Πεδία Εφαρμογής
Εμμανουήλ Κρασανάκης
Υπόβαθρο
25/42
Πεδιακές γλώσσες ή μη;
+ Γρήγορη παραγωγή κώδικα
+ Θεωρητικές εγγυήσεις
π.χ. μαθηματικής ορθότητας
+ Αιτιοκρατικοί
- Συγκεκριμένο πεδίο εφαρμογής
- Κόστος ανάπτυξης νέων γλωσσών
- Περίπλοκες είσοδοι
π.χ. πεδιακές γλώσσες πιο περίπλοκες με γλώσσες προγρ/σμού
A B
C D
Ανάλυση Δεδομένων Έργων Λογισμικού για Ανάπτυξη σε Νέα Πεδία Εφαρμογής
Εμμανουήλ Κρασανάκης
Υπόβαθρο
26/42
αξιολόγηση
Ημι-αυτόματη σύνθεση κώδικα
Μηχανικός Προδιαγραφές Μοντέλο
A B
C D
def func(…):
if A(…):
return B(…)
return D(C(…))
Πηγαίος κώδικας
μετα/σμός
χαλαρά
ορισμένος
μετα/σμός
σύνθεση
μετα/σμός
Λύσεις αναφοράς
def ex(…):
if A(…):
return B(…)
επεξεργασία
( , )
A B
(προδιαγραφές, μοντέλα)
Ανάλυση Δεδομένων Έργων Λογισμικού για Ανάπτυξη σε Νέα Πεδία Εφαρμογής
Εμμανουήλ Κρασανάκης 27/42
Συνεισφορά
Ημι-αυτόματη σύνθεση κώδικα
Μηχανικός Προδιαγραφές
def func(…):
if A(…):
return B(…)
return D(C(…))
Πηγαίος κώδικας
σύνθεση
μετα/σμός
Λύσεις αναφοράς
def ex(…):
if A(…):
return B(…)
( , )
A B
(προδιαγραφές, μοντέλα)
Λογική συνέπεια;
• Μπορούν οι μηχανικοί να μάθουν να γράφουν και να διορθώνουν προδιαγραφές;
• Πιο αυστηρή από βαθιά μάθηση, πιο χαλαρή από μετασχηματισμούς
Ανάλυση Δεδομένων Έργων Λογισμικού για Ανάπτυξη σε Νέα Πεδία Εφαρμογής
Εμμανουήλ Κρασανάκης 27/42
Συνεισφορά
Ανάλυση Δεδομένων Έργων Λογισμικού για Ανάπτυξη σε Νέα Πεδία Εφαρμογής
Εμμανουήλ Κρασανάκης 28/42
Συνεισφορά
Θεώρημα αντικατάστασης
𝑎 ⊖ 𝑏
top of scores
παρόμοιες με 𝑏
PageRank filtering S
προδιαγραφές 𝑏
run PageRank filter on input
∼
∃ εξίσωση μεταβλητών
∃𝑝𝑝𝑟: 𝑝𝑝𝑟 = 𝑆
προδιαγραφές 𝑎
top of PageRank filtering scores S =
𝑎 ⊖ 𝑏
top of scores
υλοποίηση των 𝑏
ppr = pagerank(input)
προδιαγραφές 𝑎
top of PageRank filtering scores S
↔
υλοποίηση των 𝑏
ppr = pagerank(input)
↔
∀ κοινές
μεταβλητές
∀input
Ανάλυση Δεδομένων Έργων Λογισμικού για Ανάπτυξη σε Νέα Πεδία Εφαρμογής
Εμμανουήλ Κρασανάκης
«παρόμοιες»
ισοδυναμία
Συνεισφορά
29/42
Συμπεριφορήσιμες σχέσεις ∼
Σύγκριση μοντέλων:
• μοντέλο = υλοποιήσεις ή/και χαλαρές διατυπώσεις
π.χ. { ppr=pg.PageRank(0.85) , εκτέλεση του ppr για είσοδο 𝑝 }
• σε δακτύλιο σύνθεσης που ορίζει την ισοδυναμία ↔
υποπεδίο της λογικής 2ης τάξης με ισοδυναμία – επακριβής ορισμός στο κείμενο
• «παρόμοια μοντέλα» (𝑎 ∼ 𝑏) = γενίκευση του «για ίδιες εισόδους ίδιες έξοδοι»
Ανάλυση Δεδομένων Έργων Λογισμικού για Ανάπτυξη σε Νέα Πεδία Εφαρμογής
Εμμανουήλ Κρασανάκης
Συνεισφορά
τμήμα κώδικα φυσική γλώσσα
30/42
Συνθήκες συμπεριφορησιμότητας
Έστω πράξη συνδυασμού μοντέλων ⊕
π.χ. 𝑠𝑝𝑒𝑐𝑠1, 𝑐𝑜𝑑𝑒2 ⊕ 𝑠𝑝𝑒𝑐𝑠2, 𝑐𝑜𝑑𝑒2 = 𝑠𝑝𝑒𝑐𝑠1, 𝑠𝑝𝑒𝑐𝑠2, 𝑐𝑜𝑑𝑒1, 𝑐𝑜𝑑𝑒2
και μεταβατική σχέση ∼ ώστε:
Τότε υπάρχει δακτύλιος σύνθεσης στον οποίο είναι συμπεριφορήσιμη
διαίσθηση: ανάλυση μοντέλων σε κλάσεις ισοδύναμων μοντέλων με κοινές μεταβλητές
⇒ Χρήση σε χαλαρούς μετασχηματισμούς για λογικά συνεπή σύνθεση
ο δακτύλιος σύνθεσης είναι ίσως ασθενέστερος από τα
μαθηματικά αλλά μαθεύσιμος χάρη στην ύπαρξη ισοδυναμίας
α) 𝑉 𝑎 ⊕ 𝑏 = 𝑉 𝑎 ∪ 𝑉 𝑏 για 𝑉 ⋅ μεταβλητές μοντέλων
διατηρούνται μεταβλητές
β) αν 𝑎1 ∼ 𝑏1 και 𝑎2 ∼ 𝑏2 τότε 𝑎1 ⊕ 𝑎2 ∼ 𝑏1 ⊕ 𝑏2
συνδυασμός κατά μέλη
Ανάλυση Δεδομένων Έργων Λογισμικού για Ανάπτυξη σε Νέα Πεδία Εφαρμογής
Εμμανουήλ Κρασανάκης
Συνεισφορά
31/42
Θεώρημα αντικατάστασης
𝑎 ⊖ 𝑏
top of scores
παρόμοιες με 𝑏
PageRank filtering S
προδιαγραφές 𝑏
run PageRank filter on input
∼
∃ εξίσωση μεταβλητών
∃𝑝𝑝𝑟: 𝑝𝑝𝑟 = 𝑆
προδιαγραφές 𝑎
top of PageRank filtering scores S =
𝑎 ⊖ 𝑏
top of scores
υλοποίηση των 𝑏
ppr = pagerank(input)
προδιαγραφές 𝑎
top of PageRank filtering scores S
↔
υλοποίηση των 𝑏
ppr = pagerank(input)
↔
∀ κοινές
μεταβλητές
∀input
Ανάλυση Δεδομένων Έργων Λογισμικού για Ανάπτυξη σε Νέα Πεδία Εφαρμογής
Εμμανουήλ Κρασανάκης
«παρόμοιες» = συμπεριφορίσημα ισοδύναμες
ισοδυναμία δακτυλίου σύνθεσης
Συνεισφορά
----
−𝜆
Άπληστη συμπεριφορήσιμη σύνθεση
Επανάληψη σταδιακής αντικατάστασης
Άπληστη επιλογή 𝑏 από λύσεις αναφοράς
max παρόμοιες με 𝑏 υλοποίηση των 𝑏
γραμμική μετρική περιπλοκότητας
(π.χ. πλήθος εκφράσεων μοντέλου)
⇒ Τοπικό ελάχιστο εναπομείνουσες προδιαγραφές − 𝜆 κώδικας
Σύγκλιση σε χρόνο 𝑂( προδιαγραφές ⋅ λύσεις )
Ανάλυση Δεδομένων Έργων Λογισμικού για Ανάπτυξη σε Νέα Πεδία Εφαρμογής
Εμμανουήλ Κρασανάκης
Συνεισφορά
32/42
pysynth: εργαλείο σύνθεσης Python
• Ευριστική συμπεριφορήσιμη σχέση
• Ένωση μπλοκ κώδικα python
• Αντικατάσταση φυσικής γλώσσας με παρόμοια σχολιασμένο κώδικα
• Καλά κλιμακούμενος χρόνος εκτέλεσης
και πειραματική επιβεβαίωση
Ανάλυση Δεδομένων Έργων Λογισμικού για Ανάπτυξη σε Νέα Πεδία Εφαρμογής
Εμμανουήλ Κρασανάκης
Συνεισφορά
33/42
Λογική συνέπεια
normalize data then train and evaluate an SVR model
def train_lr(x_train, y_train, preprocessing="normalize"):
# create a logistic regression model
model = LogisticRegression()
# select preprocessing method
if preprocessing == "normalize":
# Normalize training data
x_train = (x_train - x_train.min(axis=0))
/ (x_train.max(axis=0) - x_train.min(axis=0))
elif preprocessing == "standardize":
# Standardize training data
x_train = (x_train - x_train.mean(axis=0))
/ (x_train.std(axis=0))
# train
model.train(x_train, y_train)
return model
def test(x_train, y_train, x_test, y_test):
model = LogisticRegression()
model.train(x_train, y_train)
# Evaluate using test data
y_hat = model.predict(x_test, probs=True)
return scipy.metrics.auc(y_test, y_hat)
def createSVR(x, y):
svr = SVR()
svr.train(x, y)
return svr
def solution(x_train, y_test):
x_train = (x_train - x_train.min(axis=0))
/ (x_train.max(axis=0) - x_train.min(axis=0))
model = SVR()
model.train(x_train, y_test)
y_hat = model.predict(x_train, probs=True)
return model, scipy.metrics.auc(y_test, y_hat)
Συμπεριφορησιμότητα ⇒
• εφικτή επεξήγηση
• χαλαρή διατύπωση
Ανάλυση Δεδομένων Έργων Λογισμικού για Ανάπτυξη σε Νέα Πεδία Εφαρμογής
Εμμανουήλ Κρασανάκης 34/42
Αξιολόγηση
Διερεύνηση
Κατανόηση
Υλοποίηση
για όλες τις
απαιτήσεις
Ανάλυση Δεδομένων Έργων Λογισμικού για Ανάπτυξη σε Νέα Πεδία Εφαρμογής
Εμμανουήλ Κρασανάκης 35/42
Μεθοδολογία: 3ο βήμα (ακόμη)
Ποιοτική οργάνωση πηγαίου κώδικα
Μετρικές ποιότητας κατά τη συγγραφή κώδικα
⇒επεκτασιμότητα, συντηρησιμότητα κτλ
Επανοργάνωση κώδικα
Δύσκολη επαναχρησιμοποιησιμότητα
> 1.5x το κόστος ανάπτυξης [Morad, 2005]
⇒ Καιροσκοπική επανάχρηση
Ανάλυση Δεδομένων Έργων Λογισμικού για Ανάπτυξη σε Νέα Πεδία Εφαρμογής
Εμμανουήλ Κρασανάκης 36/42
Υπόβαθρο
Προωθητικός προγραμματισμός
forward-oriented programming
Μοντέλο προγραμματισμού για εύκολη επανάχρηση
• Καθυστερημένη εκτέλεση
• Καθορισμός παραμέτρων μετά την προγραμματιστική λογική
Προωθητικός κώδικας
@lazy
@autoaspects
def normalize(x, scale=1):
return x/scale
Διαμοίραση πτυχών
print(GM(scale=2)) # 1
Προγραμματιστική λογική
y1 = normalize(1)
y2 = normalize(4)
GM = (y1*y2)**0.5
Κλήση
y1 = normalize(1, scale=2)
y2 = normalize(4, scale=2)
GM = (y1*y2)**0.5
πτυχή
Κώδικας
def normalize(x, scale=1):
return x/scale
Έξοδος
print(GM) # 1
Ανάλυση Δεδομένων Έργων Λογισμικού για Ανάπτυξη σε Νέα Πεδία Εφαρμογής
Εμμανουήλ Κρασανάκης
Συνεισφορά
37/42
Θεωρητική ανάλυση
+ Κατασκευή συμπεριφορήσιμων βιβλιοθηκών
+ Μείωση πολυπλοκότητας και κόστους συγγραφής επαν/σιμου κώδικα
+ Ελάχιστο κόστος μετατροπής κώδικα
ενσωμάτωση σε άλλα μοντέλα προγραμματισμού
Ανάλυση Δεδομένων Έργων Λογισμικού για Ανάπτυξη σε Νέα Πεδία Εφαρμογής
Εμμανουήλ Κρασανάκης
Αξιολόγηση
38/42
pyfop: Βιβλιοθήκη για προωθητική Python
Μηχανισμός προτεραιότητας για συγκρουόμενες τιμές πτυχών
Μηχανισμοί αποσφαλμάτωσης
@lazy
def normalize(x,
norm=Aspect(2, Priority.LOW)):
return x
/sum(x**norm)**(1./norm)
x = normalize(x)
y = normalize(y)
…
sim_kl = KL(x, y)
sim_dot = dot(x, y)
…
print(sim_kl(eps=0)) # norm=1, eps=0
print(sim_dot()) # norm=2
@lazy
def dot(x, y):
return sum(x*y)
@lazy
@autoaspect
def KL(x, y, norm=1, eps=1.E-12):
assert norm == 1
return sum(x*log(x/(y+eps)+eps))
Ανάλυση Δεδομένων Έργων Λογισμικού για Ανάπτυξη σε Νέα Πεδία Εφαρμογής
Εμμανουήλ Κρασανάκης
Συνεισφορά
39/42
Ενδεικτική σύγκριση
Μοντέλο προγραμματισμού Οντότητες Γραμμές Κυκλ. Πολυπλοκότητα Χρόνος
Συναρτησιακός 7 23 2,4 75 sec
Αντικειμενοστρεφής 15 16 1,5 27 sec
Προωθητικός 7 12 1,3 23 sec
Για βιβλιοθήκη ομοιότητας διανυσμάτων
Ανάλυση Δεδομένων Έργων Λογισμικού για Ανάπτυξη σε Νέα Πεδία Εφαρμογής
Εμμανουήλ Κρασανάκης
Αξιολόγηση
40/42
Συμπεράσματα
Ολοκληρωμένη μεθοδολογία ανάπτυξης σε νέα πεδία
Νέες θεωρίες
 Συμμετρικοί μερικώς απορροφητικοί τυχαίοι περίπατοι
 Πολλαπλασιαστικό φιλτράρισμα
 Μεγιστοποίηση αγωγιμότητας για αναγνώριση υπογράφων λειτουργικότητας
 Συμπεριφορισημότητα
 Προωθητικός προγραμματισμός
Νέα εργαλεία
 flare: Αναζήτηση έργων λογισμικού στο PyPI
 Αλγόριθμος συρρίκνωση ιχνών
 Αλγόριθμοι άπληστη συμπεριφορήσιμη σύνθεση
 pysynth: Σύνθεση προγραμμάτων Python
 pyfop: Προωθητικός προγραμματισμός σε Python
Ανάλυση Δεδομένων Έργων Λογισμικού για Ανάπτυξη σε Νέα Πεδία Εφαρμογής
Εμμανουήλ Κρασανάκης 41/42
Μελλοντική εργασία
Αναζήτηση λύσεων
 Νέοι αλγόριθμοι
 Άλλα αποθετήρια
Μη μάθηση γενικά σε συστήματα προτάσεων
Βελτίωση συρρίκνωσης ιχνών
ενσωμάτωση μελλοντικών επιλυτών Steiner
Εφαρμογές συμπεριφορισημότητας
 Θεωρητικές εγγυήσεις για σύνθεση από τεχνητή νοημοσύνη
 Μαθευσιμότητα προγραμματιστικών εργαλείων
 Theorem proving σε μαθηματικά συστήματα με μετρικές πολυπλοκότητας
Επέκταση εργαλείων σε άλλες γλώσσες προγραμματισμού
Ανάλυση Δεδομένων Έργων Λογισμικού για Ανάπτυξη σε Νέα Πεδία Εφαρμογής
Εμμανουήλ Κρασανάκης 42/42
Δημοσιεύσεις & προδημοσιεύσεις
1. E. Krasanakis, A. Symeonidis (2022) Forward oriented Programming: A Meta-DSL for Fast Development of Component Libraries
2. E. Krasanakis, A. Symeonidis (2022) Extracting High-Conductance Dependency Trees to Understand Source Code Artifacts
3. E. Krasanakis, S. Papadopoulos, I. Kompatsiaris, A. Symeonidis (2022) pygrank: A python package for graph node ranking. SoftwareX.
4. E. Krasanakis, A. Symeonidis (2022) Fast Library Recommendation in Software Dependency Graphs with Symmetric Partially Absorbing
Random Walks. Future Internet 14, no. 5 (2022): 124.
5. E. Krasanakis, A. Symeonidis (2021) Defining behaviorizeable relations to enable inference in semi-automatic program synthesis. Journal
of Logical and Algebraic Methods in Programming, 123
6. E. Krasanakis, E. Schinas, Papadopoulos, I. Kompatsiaris, A. Symeonidis (2020) Boosted seed oversampling for local community ranking.
Information Processing & Management, 57(2), 102053.
Σχετικές δημοσιεύσεις
7. E. Krasanakis, S. Papadopoulos, I. Kompatsiaris (2020) Unsupervised evaluation of multiple node ranks by reconstructing local
structures. Applied Network Science, 5(1) (pp.1-32).
Ευχαριστώ για την προσοχή σας!
Ανάλυση Δεδομένων Έργων Λογισμικού για Ανάπτυξη σε Νέα Πεδία Εφαρμογής
Εμμανουήλ Κρασανάκης
Ανάλυση ∆εδοµένων ΄Εργων Λογισµικού για Ανάπτυξη σε Νέα Πεδία Εφαρµογής

More Related Content

Similar to Ανάλυση ∆εδοµένων ΄Εργων Λογισµικού για Ανάπτυξη σε Νέα Πεδία Εφαρµογής

Applying Data Mining Techniques to Extract Fix Patterns for Static Analysis V...
Applying Data Mining Techniques to Extract Fix Patterns for Static Analysis V...Applying Data Mining Techniques to Extract Fix Patterns for Static Analysis V...
Applying Data Mining Techniques to Extract Fix Patterns for Static Analysis V...
ISSEL
 
Anastasiadis manosmsc2014present
Anastasiadis manosmsc2014presentAnastasiadis manosmsc2014present
Anastasiadis manosmsc2014present
Manos Anastasiadis
 
Evangelos Papathomas: Semantic Code Search in Software Repositories using Neu...
Evangelos Papathomas: Semantic Code Search in Software Repositories using Neu...Evangelos Papathomas: Semantic Code Search in Software Repositories using Neu...
Evangelos Papathomas: Semantic Code Search in Software Repositories using Neu...
Manos Tsardoulias
 
Εφαρµογή τεχνικών µηχανικής µάθησης και ευφυούς διαχείρισης πληροφορίας για τ...
Εφαρµογή τεχνικών µηχανικής µάθησης και ευφυούς διαχείρισης πληροφορίας για τ...Εφαρµογή τεχνικών µηχανικής µάθησης και ευφυούς διαχείρισης πληροφορίας για τ...
Εφαρµογή τεχνικών µηχανικής µάθησης και ευφυούς διαχείρισης πληροφορίας για τ...
ISSEL
 
Gougousis Dimitris: Development of an automated machine learning system for p...
Gougousis Dimitris: Development of an automated machine learning system for p...Gougousis Dimitris: Development of an automated machine learning system for p...
Gougousis Dimitris: Development of an automated machine learning system for p...
Manos Tsardoulias
 
Παρουσίαση θεμάτων διπλωματικών 2010
Παρουσίαση θεμάτων διπλωματικών 2010Παρουσίαση θεμάτων διπλωματικών 2010
Παρουσίαση θεμάτων διπλωματικών 2010
ISSEL
 
κεφάλαιο 02 anaptixi-2
κεφάλαιο 02 anaptixi-2κεφάλαιο 02 anaptixi-2
κεφάλαιο 02 anaptixi-2
evaplyta
 
Προσομοίωση με απλά μέσα: μια εισαγωγή στην Ανάπτυξη Εφαρμογών
Προσομοίωση με απλά μέσα: μια εισαγωγή στην Ανάπτυξη ΕφαρμογώνΠροσομοίωση με απλά μέσα: μια εισαγωγή στην Ανάπτυξη Εφαρμογών
Προσομοίωση με απλά μέσα: μια εισαγωγή στην Ανάπτυξη Εφαρμογών
Periklis Georgiadis
 

Similar to Ανάλυση ∆εδοµένων ΄Εργων Λογισµικού για Ανάπτυξη σε Νέα Πεδία Εφαρµογής (20)

Applying Data Mining Techniques to Extract Fix Patterns for Static Analysis V...
Applying Data Mining Techniques to Extract Fix Patterns for Static Analysis V...Applying Data Mining Techniques to Extract Fix Patterns for Static Analysis V...
Applying Data Mining Techniques to Extract Fix Patterns for Static Analysis V...
 
Ioannis Loias
Ioannis LoiasIoannis Loias
Ioannis Loias
 
Αλεξάνδρα Μπαλτζή 7485
Αλεξάνδρα Μπαλτζή 7485Αλεξάνδρα Μπαλτζή 7485
Αλεξάνδρα Μπαλτζή 7485
 
Anastasiadis manosmsc2014present
Anastasiadis manosmsc2014presentAnastasiadis manosmsc2014present
Anastasiadis manosmsc2014present
 
Ελένη Νησιώτη
Ελένη ΝησιώτηΕλένη Νησιώτη
Ελένη Νησιώτη
 
Evangelos Papathomas: Semantic Code Search in Software Repositories using Neu...
Evangelos Papathomas: Semantic Code Search in Software Repositories using Neu...Evangelos Papathomas: Semantic Code Search in Software Repositories using Neu...
Evangelos Papathomas: Semantic Code Search in Software Repositories using Neu...
 
Evangelos papathomas diploma thesis presentation
Evangelos papathomas diploma thesis presentationEvangelos papathomas diploma thesis presentation
Evangelos papathomas diploma thesis presentation
 
Εφαρµογή τεχνικών µηχανικής µάθησης και ευφυούς διαχείρισης πληροφορίας για τ...
Εφαρµογή τεχνικών µηχανικής µάθησης και ευφυούς διαχείρισης πληροφορίας για τ...Εφαρµογή τεχνικών µηχανικής µάθησης και ευφυούς διαχείρισης πληροφορίας για τ...
Εφαρµογή τεχνικών µηχανικής µάθησης και ευφυούς διαχείρισης πληροφορίας για τ...
 
Employing Machine Learning and Intelligent Information Management Techniques ...
Employing Machine Learning and Intelligent Information Management Techniques ...Employing Machine Learning and Intelligent Information Management Techniques ...
Employing Machine Learning and Intelligent Information Management Techniques ...
 
A rule-based approach for the real-time semantic annotation in context-aware ...
A rule-based approach for the real-time semantic annotation in context-aware ...A rule-based approach for the real-time semantic annotation in context-aware ...
A rule-based approach for the real-time semantic annotation in context-aware ...
 
Οικονόμου Ναπολέων – Χρήστος
Οικονόμου Ναπολέων – ΧρήστοςΟικονόμου Ναπολέων – Χρήστος
Οικονόμου Ναπολέων – Χρήστος
 
Gougousis Dimitris: Development of an automated machine learning system for p...
Gougousis Dimitris: Development of an automated machine learning system for p...Gougousis Dimitris: Development of an automated machine learning system for p...
Gougousis Dimitris: Development of an automated machine learning system for p...
 
diafanies.ppt
diafanies.pptdiafanies.ppt
diafanies.ppt
 
Nikolaos Oikonomou
Nikolaos OikonomouNikolaos Oikonomou
Nikolaos Oikonomou
 
DATAMANAGEMENT.GR - DIGITAL TRANSFORMATION AND STRATEGY
DATAMANAGEMENT.GR - DIGITAL TRANSFORMATION AND STRATEGYDATAMANAGEMENT.GR - DIGITAL TRANSFORMATION AND STRATEGY
DATAMANAGEMENT.GR - DIGITAL TRANSFORMATION AND STRATEGY
 
Ιωάννη Α. Ζαφειρίου
Ιωάννη Α. ΖαφειρίουΙωάννη Α. Ζαφειρίου
Ιωάννη Α. Ζαφειρίου
 
Παρουσίαση θεμάτων διπλωματικών 2010
Παρουσίαση θεμάτων διπλωματικών 2010Παρουσίαση θεμάτων διπλωματικών 2010
Παρουσίαση θεμάτων διπλωματικών 2010
 
κεφάλαιο 02 anaptixi-2
κεφάλαιο 02 anaptixi-2κεφάλαιο 02 anaptixi-2
κεφάλαιο 02 anaptixi-2
 
Προσομοίωση με απλά μέσα: μια εισαγωγή στην Ανάπτυξη Εφαρμογών
Προσομοίωση με απλά μέσα: μια εισαγωγή στην Ανάπτυξη ΕφαρμογώνΠροσομοίωση με απλά μέσα: μια εισαγωγή στην Ανάπτυξη Εφαρμογών
Προσομοίωση με απλά μέσα: μια εισαγωγή στην Ανάπτυξη Εφαρμογών
 
Λογισμικά γενικής χρήσης: Διδακτικές Προσεγγίσεις
Λογισμικά γενικής χρήσης: Διδακτικές ΠροσεγγίσειςΛογισμικά γενικής χρήσης: Διδακτικές Προσεγγίσεις
Λογισμικά γενικής χρήσης: Διδακτικές Προσεγγίσεις
 

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
 
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
 
Design and implementation of an automation mechanism to automatically develop...
Design and implementation of an automation mechanism to automatically develop...Design and implementation of an automation mechanism to automatically develop...
Design and implementation of an automation mechanism to automatically develop...
ISSEL
 

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
 
Εντοπισμός θέσης επισημασμένου αντικειμένου σε εσωτερικό χώρο με χρήση πολλαπ...
Εντοπισμός θέσης επισημασμένου αντικειμένου σε εσωτερικό χώρο με χρήση πολλαπ...Εντοπισμός θέσης επισημασμένου αντικειμένου σε εσωτερικό χώρο με χρήση πολλαπ...
Εντοπισμός θέσης επισημασμένου αντικειμένου σε εσωτερικό χώρο με χρήση πολλαπ...
 
Design and implementation of an automation mechanism to automatically develop...
Design and implementation of an automation mechanism to automatically develop...Design and implementation of an automation mechanism to automatically develop...
Design and implementation of an automation mechanism to automatically develop...
 

Ανάλυση ∆εδοµένων ΄Εργων Λογισµικού για Ανάπτυξη σε Νέα Πεδία Εφαρµογής

  • 1. Ανάλυση Δεδομένων Έργων Λογισμικού για Ανάπτυξη σε Νέα Πεδία Εφαρμογής Εμμανουήλ Κρασανάκης Επιβλέπων καθηγητής: Ανδρέας Συμεωνίδης Διδακτορική διατριβή - 11/2022 Εργαστήριο Επεξεργασίας Πληροφορίας και Υπολογισμών
  • 2. Πραγματικότητα Το λογισμικό βρίσκεται παντού Συνεχώς νέες απαιτήσεις ⇒ Ταχεία ανάπτυξη; 2/42 Ανάλυση Δεδομένων Έργων Λογισμικού για Ανάπτυξη σε Νέα Πεδία Εφαρμογής Εμμανουήλ Κρασανάκης
  • 3. Πρόβλημα μηχανικών λογισμικού • Νέα πεδία εφαρμογής • Έλλειψη σχετικής εξειδίκευσης ⇒ Χρονοβόρα εξοικείωση + τεχνικό χρέος ⇒ Επιτάχυνση; 3/42 Ανάλυση Δεδομένων Έργων Λογισμικού για Ανάπτυξη σε Νέα Πεδία Εφαρμογής Εμμανουήλ Κρασανάκης
  • 4. Διερεύνηση Κατανόηση για όλες τις απαιτήσεις Μεθοδολογία «explainable machine learning» from lime.lime_text import LimeTextExplainer Τι κάνει η: «apply LimeTextExplainer on a LogisticRegression model» Υλοποίηση 4/42 Ανάλυση Δεδομένων Έργων Λογισμικού για Ανάπτυξη σε Νέα Πεδία Εφαρμογής Εμμανουήλ Κρασανάκης
  • 5. Διερεύνηση Κατανόηση Υλοποίηση για όλες τις απαιτήσεις Μεθοδολογία: 1ο βήμα 5/42 Ανάλυση Δεδομένων Έργων Λογισμικού για Ανάπτυξη σε Νέα Πεδία Εφαρμογής Εμμανουήλ Κρασανάκης
  • 6. Διερεύνηση νέων πεδίων Διαδικτυακές αναζητήσεις Μεταφορά εξειδίκευσης ⇒ Δημοφιλείς υπάρχουσες λύσεις π.χ. από γνωστές εταιρίες Πρόβλημα ⇒ Καταλληλότερες; 6/42 Ανάλυση Δεδομένων Έργων Λογισμικού για Ανάπτυξη σε Νέα Πεδία Εφαρμογής Εμμανουήλ Κρασανάκης
  • 7. Αναζήτηση με μηχανική μάθηση Αποθετήρια Προτάσεις Απαιτήσεις Διαλογή AI ανεπαρκή δεδομένα εκπαίδευσης π.χ. 105 ανελυμένες λύσεις /107 έργα αποθετηρίων συμπλήρωση δεδομένων π.χ. +100 λύσεις σχετικές με απαιτήσεις Συχνά οι απαιτήσεις καθορίζουν δεδομένα εκπαίδευσης Υπόβαθρο 7/42 Ανάλυση Δεδομένων Έργων Λογισμικού για Ανάπτυξη σε Νέα Πεδία Εφαρμογής Εμμανουήλ Κρασανάκης ⇒ καθυστερήσεις προτάσεων = χρόνος εκπαίδευσης
  • 8. numpy Εφαρμογή σε μηχανές αναζήτησης λογισμικού Ανάλυση γράφων π.χ. εξαρτήσεων βιβλιοθηκών, λέξεις-κλειδιών με βιβλιοθήκες Αναζήτηση με μη μάθηση ⇒ γρήγορη εκτέλεση … Κ keras Υπόβαθρο 8/42 Ανάλυση Δεδομένων Έργων Λογισμικού για Ανάπτυξη σε Νέα Πεδία Εφαρμογής Εμμανουήλ Κρασανάκης tensorflow scipy matplotlib Κ keras machine tensorflow learning explain lime
  • 9. Γραφική επεξεργασία σήματος Προτάσεις χωρίς εκπαίδευση απευθείας ενσωμάτωση νέων δεδομένων Συσχέτιση με αρχικές κορυφές π.χ. όρους αναζήτησης 𝑊 κανονικοποιημένος πίνακας γειτνίασης διάχυση = 𝐻 𝑊 ⋅ είσοδος ⇐ καλές υποθέσεις Κ keras machine tensorflow learning explain lime keras machine tensorflow learning explain lime Υπόβαθρο 9/42 Εμμανουήλ Κρασανάκης Ανάλυση Δεδομένων Έργων Λογισμικού για Ανάπτυξη σε Νέα Πεδία Εφαρμογής
  • 10. Μερικώς απορροφητικοί τυχαίοι περίπατοι Γενίκευση στοχαστικών τυχαίων περιπάτων με επανεκκίνηση π.χ. PageRank Σημαντικότητα απομνημόνευσης για κάθε κορυφή μνήμη = παρόμοια με αυτοπροσοχή GNN συστημάτων προτάσεων διάχυση = 𝐼 − 𝑊′ −1p′ 𝑊′ εξαρτάται από πίνακα γειτνίασης και απορρόφηση > 0 𝑝′ εξαρτάται από είσοδο και απορρόφηση = απομνημόνευση Υπόβαθρο 10/42 Εμμανουήλ Κρασανάκης Ανάλυση Δεδομένων Έργων Λογισμικού για Ανάπτυξη σε Νέα Πεδία Εφαρμογής
  • 11. Συμμετρικοί μερικώς απορ/τικοί τυχαίοι περίπατοι Υπόθεση χαμηλοπερατού φιλτραρίσματος π.χ. οι μηχανικοί δίνουν προτεραιότητα σε περιοχές γύρω από τους όρους αναζήτησης ⇒ Εγγύηση μόνο για συμμετρικό 𝑊′ μη-αύξηση ιδιοτιμών σε σχέση με 𝑊 ⇒ Μοναδική λύση καμία παράμετρος ή υπερπαράμετρος πόλωση προς ισοβαρή σημαντικότητα δημοτικότητα στον κανονικοποιημένο πίνακα γειτνίασης π.χ. βιβλιοθήκης Συνεισφορά Εμμανουήλ Κρασανάκης Ανάλυση Δεδομένων Έργων Λογισμικού για Ανάπτυξη σε Νέα Πεδία Εφαρμογής 11/42 … σημαντικότητας απομν/σης κορυφής A = 1 2 + 1 2 1 + 4 𝑣 𝑊 𝐴, 𝑣
  • 12. Πολλαπλασιαστικό φιλτράρισμα Σκορ κορυφών 𝑣 για λέξεις-κλειδιά Α ∈ εννοιολογική αναζήτηση Α 𝐻 𝑊 𝛿Α 𝑣 Πρόταση: Συσχέτιση με όλες τις λέξεις Α 𝐻 𝑊 𝛿Α 𝑣 γραφικό φιλτράρισμα = άθροισμα κρουστικών αποκρίσεων πιθανότητα συσχέτισης με ≥ 1 λέξη για στατ. ανεξάρτητες λέξεις ∝ Α Prob 𝑣 σχετίζεται με Α ∝ Α Prob 𝑣 σχετίζεται με Α Συνεισφορά Εμμανουήλ Κρασανάκης Ανάλυση Δεδομένων Έργων Λογισμικού για Ανάπτυξη σε Νέα Πεδία Εφαρμογής 12/42 keras machine tensorflow learning explain lime 𝐻 𝑊 𝛿𝑒𝑥𝑝𝑙𝑎𝑖𝑛 [tensorflow]
  • 13. flare: εργαλείο αναζήτησης έργων λογισμικού + Αναζήτηση στο αποθετήριο PyPI >300,000 έργα λογισμικού + Χαμηλοπερατά φίλτρα ⇒ τμήμα του αποθετηρίου + Εύρεση δημοφιλών βιβλιοθηκών github + περισσότερες Ανάπτυξη και χρήση βιβλιοθήκης pygrank για γρήγορο γραφικό φιλτράρισμα Συνεισφορά Εμμανουήλ Κρασανάκης 13/42 Ανάλυση Δεδομένων Έργων Λογισμικού για Ανάπτυξη σε Νέα Πεδία Εφαρμογής
  • 14. Πρόταση έργων λογισμικού Μέθοδος F1 Cov cos λέξεων 5,7% 22,3% GNN μη-μάθησης 12,0% 38,5% φίλτρο pagerank 13,2% 49,8% flare (συμμετρικό) 17,9% 40,8% Μέθοδος Recall MAP cos λέξεων 14,7% 2,7% απλή Google 20,6% 12,3% φίλτρο pagerank 27,4% 13,8% flare (πολ/στικό) 29,4% 16,0% Μέθοδος F1 Cov GNN συνεργ. φιλτραρίσματος 48,3% 75% φίλτρο ισοβαρούς μνήμης 47,6% 69% φίλτρο pagerank 43,8% 37% flare (συμμετρικό) 48,4% 69% ΣΕΝΑΡΙΟ 1 Βιβλιοθήκες → συμπληρωματικές torch, networkx → pytorch geometric MaLib, 5 εξαρτήσεις/έργο για έλεγχο PyPI, 20% εξαρτήσεων μόνο για έλεγχο μάθηση, καθυστερήσεις προτάσεων > 5 ωρών (έναντι λεπτά μη μάθησης) PyPI, αναζήτηση με 10% περιγραφής Αξιολόγηση 14/42 Εμμανουήλ Κρασανάκης Ανάλυση Δεδομένων Έργων Λογισμικού για Ανάπτυξη σε Νέα Πεδία Εφαρμογής Ποιότητα 10 κορυφαίων προτάσεων, περισσότερα πειράματα στο κείμενο ΣΕΝΑΡΙΟ 2 Λέξεις-κλειδιά → έργα “deep learning” → keras, torch ΣΕΝΑΡΙΟ 3 Λέξεις-κλειδιά → εξαρτήσεις “deep learning” → logger, pytest
  • 15. Διερεύνηση Κατανόηση Υλοποίηση για όλες τις απαιτήσεις Μεθοδολογία: 2ο βήμα Ανάλυση Δεδομένων Έργων Λογισμικού για Ανάπτυξη σε Νέα Πεδία Εφαρμογής Εμμανουήλ Κρασανάκης 15/42
  • 16. Γράφος εξαρτήσεων οντοτήτων οντότητες συναρτήσεις, κλάσεις, αρχεία A class A { … } Ανάλυση Δεδομένων Έργων Λογισμικού για Ανάπτυξη σε Νέα Πεδία Εφαρμογής Εμμανουήλ Κρασανάκης Πρόβλημα 16/42
  • 17. Γράφος εξαρτήσεων οντοτήτων εξαρτήσεις κλήσεις, χρήσεις class A { … } class B { A member = null; } B A Ανάλυση Δεδομένων Έργων Λογισμικού για Ανάπτυξη σε Νέα Πεδία Εφαρμογής Εμμανουήλ Κρασανάκης Πρόβλημα 16/42
  • 18. Γράφος εξαρτήσεων οντοτήτων Πακέτο Α Πακέτο Β Πακέτο Γ Μακροσκοπική κατανόηση οργάνωση σε πακέτα = κοινότητες συναφών οντοτήτων για εύκολη αναζήτηση και επέκταση Ανάλυση Δεδομένων Έργων Λογισμικού για Ανάπτυξη σε Νέα Πεδία Εφαρμογής Εμμανουήλ Κρασανάκης Πρόβλημα 16/42
  • 19. Κατανόηση οντότητας ενδιαφέροντος Ανάγνωση κώδικα + κατανόηση εξαρτήσεων ⇒ Πότε σταματάμε; Ανάλυση Δεδομένων Έργων Λογισμικού για Ανάπτυξη σε Νέα Πεδία Εφαρμογής Εμμανουήλ Κρασανάκης Πρόβλημα 17/42
  • 20. Κατανόηση οντότητας ενδιαφέροντος Ανάγνωση κώδικα + κατανόηση εξαρτήσεων ⇒ Πότε σταματάμε; Ανάλυση Δεδομένων Έργων Λογισμικού για Ανάπτυξη σε Νέα Πεδία Εφαρμογής Εμμανουήλ Κρασανάκης Πρόβλημα 17/42 ⇒ Αναγνώριση ροής λειτουργικότητας;
  • 21. Αγωγιμότητα Ανάλυση Δεδομένων Έργων Λογισμικού για Ανάπτυξη σε Νέα Πεδία Εφαρμογής Εμμανουήλ Κρασανάκης Υπόβαθρο 18/42 Γνωστή από θεωρία δικτύων Χαμηλή αγωγιμότητα = δομική κοινότητα • π.χ. πακέτα υψηλής συνοχής και χαλαρής σύζευξης στον κόσμο λογισμικού • εύρεση με φίλτρα γράφων
  • 22. Αγωγιμότητα 2 εξερχόμενες ακμές 9 εσωτερικές ακμές = 0,22 𝜑 = Ανάλυση Δεδομένων Έργων Λογισμικού για Ανάπτυξη σε Νέα Πεδία Εφαρμογής Εμμανουήλ Κρασανάκης Υπόβαθρο 18/42 Γνωστή από θεωρία δικτύων Χαμηλή αγωγιμότητα = δομική κοινότητα • π.χ. πακέτα υψηλής συνοχής και χαλαρής σύζευξης στον κόσμο λογισμικού • εύρεση με φίλτρα γράφων
  • 23. Ροές λειτουργικότητας Ανάλυση Δεδομένων Έργων Λογισμικού για Ανάπτυξη σε Νέα Πεδία Εφαρμογής Εμμανουήλ Κρασανάκης 19/42 Διατρέχουν πολλά πακέτα αντίθετες των δομικών κοινοτήτων Πολλές εξαρτήσεις σε απλές οντότητες σημεία ένωσης/διάχυσης πολλών δεδομένων, δυσανάλογα πολύς κόπος να συνεχίσει η ανάγνωση εξαρτήσεων ⇒ Υψηλή αγωγιμότητα Συνεισφορά
  • 24. Αλγόριθμος συρρίκνωσης ιχνών max εξερχόμενες ακμές – 𝑎 ⋅ εσωτερικές ακμές εξερχόμενες ακμές εσωτερικές ακμές max 𝜑 = ⇔ για κάποιο 𝑎 Προσέγγιση μέγιστης αγωγιμότητας ριζωμένης στην οντότητα ενδιαφέροντος: μετατροπή σε κατάλληλο ριζωμένο πρόβλημα Steiner (προσεγγιστικοί επιλυτές) διχοτομική αναζήτηση στο εύρος 0, max degree Εγγύηση Prob 𝜑 ≥ max 𝜑−Α 1+𝐴 ≥ 1 − 𝑒−4𝜀2 2 Σχεδόν γραμμικός χρόνος 𝑂 ακμές ⋅ log2 ακμές Ανάλυση Δεδομένων Έργων Λογισμικού για Ανάπτυξη σε Νέα Πεδία Εφαρμογής Εμμανουήλ Κρασανάκης ⇒ Εύρεση κατάλληλου 𝑎 και αντίστοιχου υπογράφου που προκύπτει από επιλυτή Steiner Συνεισφορά 20/42 𝜑 = 5
  • 25. Σύγκριση με εναλλακτικές Υποσχόμενες εναλλακτικές σχεδόν γραμμικού χρόνου 40 έργα λογισμικού, μη κατευθυνόμενες εξαρτήσεις, περισσότερα πειράματα στο κείμενο • αγωγιμότητα • ετερογένεια = (πακέτα-1) / (οντότητες-1) Μέθοδος Αγωγιμότητα φιλτράρισμα για μικρή αγωγιμότητα [Andersen, 2016] 1 άπληστη βελτιστοποίηση 119 φασματική αραιοποίηση [Spielman, 2011] 9 ελαφρύτατο κόψιμο [Goemans, 1995] 6 συρρίκνωση ιχνών 168 Ετερογένεια 29% 61% 29% 24% 70% Ανάλυση Δεδομένων Έργων Λογισμικού για Ανάπτυξη σε Νέα Πεδία Εφαρμογής Εμμανουήλ Κρασανάκης 21/42 Αξιολόγηση
  • 26.
  • 27. Διερεύνηση Κατανόηση Υλοποίηση για όλες τις απαιτήσεις Ανάλυση Δεδομένων Έργων Λογισμικού για Ανάπτυξη σε Νέα Πεδία Εφαρμογής Εμμανουήλ Κρασανάκης Μεθοδολογία: 3ο βήμα 22/42
  • 28. Αυτόματη σύνθεση κώδικα με μηχανική μάθηση Εκατομμύρια έργα λογισμικού σε αποθετήρια Υπάρχουσες υλοποιήσεις ⇒ Βαθιά μηχανική μάθηση για πρόταση κώδικα Μηχανικός σύνθεση def func(…): if A(…): return B(…) return D(C(…)) Πηγαίος κώδικας Προδιαγραφές Ανάλυση Δεδομένων Έργων Λογισμικού για Ανάπτυξη σε Νέα Πεδία Εφαρμογής Εμμανουήλ Κρασανάκης 23/42 Υπόβαθρο
  • 29. Μηχανική μάθηση ή μη; + Προδιαγραφές σε φυσική γλώσσα + Γρήγορη παραγωγή κώδικα + Ενδεικτικές λύσεις σε νέα πεδία εφαρμογής - Έλλειψη εγγυήσεων π.χ. κενά ασφαλείας προτεινόμενου κώδικα - Στατιστικό αντί αιτιοκρατικό μαύρο κουτί π.χ. τροποποίηση προδιαγραφών για μεταβολή αποτελέσματος; def func(…): if A<1: # WRONG return B(…) return D(C(…)) Ανάλυση Δεδομένων Έργων Λογισμικού για Ανάπτυξη σε Νέα Πεδία Εφαρμογής Εμμανουήλ Κρασανάκης 24/42 Υπόβαθρο
  • 30. σφάλματα πεδιακής γλώσσας Αυτόματη σύνθεση κώδικα με πεδιακές γλώσσες Προδιαγραφές σε πεδιακή γλώσσα A B C D Μηχανικός def func(…): if A(…): return B(…) return D(C(…)) Πηγαίος κώδικας μετα/σμός επεξεργασία Ανάλυση Δεδομένων Έργων Λογισμικού για Ανάπτυξη σε Νέα Πεδία Εφαρμογής Εμμανουήλ Κρασανάκης Υπόβαθρο 25/42
  • 31. Πεδιακές γλώσσες ή μη; + Γρήγορη παραγωγή κώδικα + Θεωρητικές εγγυήσεις π.χ. μαθηματικής ορθότητας + Αιτιοκρατικοί - Συγκεκριμένο πεδίο εφαρμογής - Κόστος ανάπτυξης νέων γλωσσών - Περίπλοκες είσοδοι π.χ. πεδιακές γλώσσες πιο περίπλοκες με γλώσσες προγρ/σμού A B C D Ανάλυση Δεδομένων Έργων Λογισμικού για Ανάπτυξη σε Νέα Πεδία Εφαρμογής Εμμανουήλ Κρασανάκης Υπόβαθρο 26/42
  • 32. αξιολόγηση Ημι-αυτόματη σύνθεση κώδικα Μηχανικός Προδιαγραφές Μοντέλο A B C D def func(…): if A(…): return B(…) return D(C(…)) Πηγαίος κώδικας μετα/σμός χαλαρά ορισμένος μετα/σμός σύνθεση μετα/σμός Λύσεις αναφοράς def ex(…): if A(…): return B(…) επεξεργασία ( , ) A B (προδιαγραφές, μοντέλα) Ανάλυση Δεδομένων Έργων Λογισμικού για Ανάπτυξη σε Νέα Πεδία Εφαρμογής Εμμανουήλ Κρασανάκης 27/42 Συνεισφορά
  • 33. Ημι-αυτόματη σύνθεση κώδικα Μηχανικός Προδιαγραφές def func(…): if A(…): return B(…) return D(C(…)) Πηγαίος κώδικας σύνθεση μετα/σμός Λύσεις αναφοράς def ex(…): if A(…): return B(…) ( , ) A B (προδιαγραφές, μοντέλα) Λογική συνέπεια; • Μπορούν οι μηχανικοί να μάθουν να γράφουν και να διορθώνουν προδιαγραφές; • Πιο αυστηρή από βαθιά μάθηση, πιο χαλαρή από μετασχηματισμούς Ανάλυση Δεδομένων Έργων Λογισμικού για Ανάπτυξη σε Νέα Πεδία Εφαρμογής Εμμανουήλ Κρασανάκης 27/42 Συνεισφορά
  • 34. Ανάλυση Δεδομένων Έργων Λογισμικού για Ανάπτυξη σε Νέα Πεδία Εφαρμογής Εμμανουήλ Κρασανάκης 28/42 Συνεισφορά
  • 35. Θεώρημα αντικατάστασης 𝑎 ⊖ 𝑏 top of scores παρόμοιες με 𝑏 PageRank filtering S προδιαγραφές 𝑏 run PageRank filter on input ∼ ∃ εξίσωση μεταβλητών ∃𝑝𝑝𝑟: 𝑝𝑝𝑟 = 𝑆 προδιαγραφές 𝑎 top of PageRank filtering scores S = 𝑎 ⊖ 𝑏 top of scores υλοποίηση των 𝑏 ppr = pagerank(input) προδιαγραφές 𝑎 top of PageRank filtering scores S ↔ υλοποίηση των 𝑏 ppr = pagerank(input) ↔ ∀ κοινές μεταβλητές ∀input Ανάλυση Δεδομένων Έργων Λογισμικού για Ανάπτυξη σε Νέα Πεδία Εφαρμογής Εμμανουήλ Κρασανάκης «παρόμοιες» ισοδυναμία Συνεισφορά 29/42
  • 36. Συμπεριφορήσιμες σχέσεις ∼ Σύγκριση μοντέλων: • μοντέλο = υλοποιήσεις ή/και χαλαρές διατυπώσεις π.χ. { ppr=pg.PageRank(0.85) , εκτέλεση του ppr για είσοδο 𝑝 } • σε δακτύλιο σύνθεσης που ορίζει την ισοδυναμία ↔ υποπεδίο της λογικής 2ης τάξης με ισοδυναμία – επακριβής ορισμός στο κείμενο • «παρόμοια μοντέλα» (𝑎 ∼ 𝑏) = γενίκευση του «για ίδιες εισόδους ίδιες έξοδοι» Ανάλυση Δεδομένων Έργων Λογισμικού για Ανάπτυξη σε Νέα Πεδία Εφαρμογής Εμμανουήλ Κρασανάκης Συνεισφορά τμήμα κώδικα φυσική γλώσσα 30/42
  • 37. Συνθήκες συμπεριφορησιμότητας Έστω πράξη συνδυασμού μοντέλων ⊕ π.χ. 𝑠𝑝𝑒𝑐𝑠1, 𝑐𝑜𝑑𝑒2 ⊕ 𝑠𝑝𝑒𝑐𝑠2, 𝑐𝑜𝑑𝑒2 = 𝑠𝑝𝑒𝑐𝑠1, 𝑠𝑝𝑒𝑐𝑠2, 𝑐𝑜𝑑𝑒1, 𝑐𝑜𝑑𝑒2 και μεταβατική σχέση ∼ ώστε: Τότε υπάρχει δακτύλιος σύνθεσης στον οποίο είναι συμπεριφορήσιμη διαίσθηση: ανάλυση μοντέλων σε κλάσεις ισοδύναμων μοντέλων με κοινές μεταβλητές ⇒ Χρήση σε χαλαρούς μετασχηματισμούς για λογικά συνεπή σύνθεση ο δακτύλιος σύνθεσης είναι ίσως ασθενέστερος από τα μαθηματικά αλλά μαθεύσιμος χάρη στην ύπαρξη ισοδυναμίας α) 𝑉 𝑎 ⊕ 𝑏 = 𝑉 𝑎 ∪ 𝑉 𝑏 για 𝑉 ⋅ μεταβλητές μοντέλων διατηρούνται μεταβλητές β) αν 𝑎1 ∼ 𝑏1 και 𝑎2 ∼ 𝑏2 τότε 𝑎1 ⊕ 𝑎2 ∼ 𝑏1 ⊕ 𝑏2 συνδυασμός κατά μέλη Ανάλυση Δεδομένων Έργων Λογισμικού για Ανάπτυξη σε Νέα Πεδία Εφαρμογής Εμμανουήλ Κρασανάκης Συνεισφορά 31/42
  • 38. Θεώρημα αντικατάστασης 𝑎 ⊖ 𝑏 top of scores παρόμοιες με 𝑏 PageRank filtering S προδιαγραφές 𝑏 run PageRank filter on input ∼ ∃ εξίσωση μεταβλητών ∃𝑝𝑝𝑟: 𝑝𝑝𝑟 = 𝑆 προδιαγραφές 𝑎 top of PageRank filtering scores S = 𝑎 ⊖ 𝑏 top of scores υλοποίηση των 𝑏 ppr = pagerank(input) προδιαγραφές 𝑎 top of PageRank filtering scores S ↔ υλοποίηση των 𝑏 ppr = pagerank(input) ↔ ∀ κοινές μεταβλητές ∀input Ανάλυση Δεδομένων Έργων Λογισμικού για Ανάπτυξη σε Νέα Πεδία Εφαρμογής Εμμανουήλ Κρασανάκης «παρόμοιες» = συμπεριφορίσημα ισοδύναμες ισοδυναμία δακτυλίου σύνθεσης Συνεισφορά ----
  • 39. −𝜆 Άπληστη συμπεριφορήσιμη σύνθεση Επανάληψη σταδιακής αντικατάστασης Άπληστη επιλογή 𝑏 από λύσεις αναφοράς max παρόμοιες με 𝑏 υλοποίηση των 𝑏 γραμμική μετρική περιπλοκότητας (π.χ. πλήθος εκφράσεων μοντέλου) ⇒ Τοπικό ελάχιστο εναπομείνουσες προδιαγραφές − 𝜆 κώδικας Σύγκλιση σε χρόνο 𝑂( προδιαγραφές ⋅ λύσεις ) Ανάλυση Δεδομένων Έργων Λογισμικού για Ανάπτυξη σε Νέα Πεδία Εφαρμογής Εμμανουήλ Κρασανάκης Συνεισφορά 32/42
  • 40. pysynth: εργαλείο σύνθεσης Python • Ευριστική συμπεριφορήσιμη σχέση • Ένωση μπλοκ κώδικα python • Αντικατάσταση φυσικής γλώσσας με παρόμοια σχολιασμένο κώδικα • Καλά κλιμακούμενος χρόνος εκτέλεσης και πειραματική επιβεβαίωση Ανάλυση Δεδομένων Έργων Λογισμικού για Ανάπτυξη σε Νέα Πεδία Εφαρμογής Εμμανουήλ Κρασανάκης Συνεισφορά 33/42
  • 41. Λογική συνέπεια normalize data then train and evaluate an SVR model def train_lr(x_train, y_train, preprocessing="normalize"): # create a logistic regression model model = LogisticRegression() # select preprocessing method if preprocessing == "normalize": # Normalize training data x_train = (x_train - x_train.min(axis=0)) / (x_train.max(axis=0) - x_train.min(axis=0)) elif preprocessing == "standardize": # Standardize training data x_train = (x_train - x_train.mean(axis=0)) / (x_train.std(axis=0)) # train model.train(x_train, y_train) return model def test(x_train, y_train, x_test, y_test): model = LogisticRegression() model.train(x_train, y_train) # Evaluate using test data y_hat = model.predict(x_test, probs=True) return scipy.metrics.auc(y_test, y_hat) def createSVR(x, y): svr = SVR() svr.train(x, y) return svr def solution(x_train, y_test): x_train = (x_train - x_train.min(axis=0)) / (x_train.max(axis=0) - x_train.min(axis=0)) model = SVR() model.train(x_train, y_test) y_hat = model.predict(x_train, probs=True) return model, scipy.metrics.auc(y_test, y_hat) Συμπεριφορησιμότητα ⇒ • εφικτή επεξήγηση • χαλαρή διατύπωση Ανάλυση Δεδομένων Έργων Λογισμικού για Ανάπτυξη σε Νέα Πεδία Εφαρμογής Εμμανουήλ Κρασανάκης 34/42 Αξιολόγηση
  • 42. Διερεύνηση Κατανόηση Υλοποίηση για όλες τις απαιτήσεις Ανάλυση Δεδομένων Έργων Λογισμικού για Ανάπτυξη σε Νέα Πεδία Εφαρμογής Εμμανουήλ Κρασανάκης 35/42 Μεθοδολογία: 3ο βήμα (ακόμη)
  • 43. Ποιοτική οργάνωση πηγαίου κώδικα Μετρικές ποιότητας κατά τη συγγραφή κώδικα ⇒επεκτασιμότητα, συντηρησιμότητα κτλ Επανοργάνωση κώδικα Δύσκολη επαναχρησιμοποιησιμότητα > 1.5x το κόστος ανάπτυξης [Morad, 2005] ⇒ Καιροσκοπική επανάχρηση Ανάλυση Δεδομένων Έργων Λογισμικού για Ανάπτυξη σε Νέα Πεδία Εφαρμογής Εμμανουήλ Κρασανάκης 36/42 Υπόβαθρο
  • 44. Προωθητικός προγραμματισμός forward-oriented programming Μοντέλο προγραμματισμού για εύκολη επανάχρηση • Καθυστερημένη εκτέλεση • Καθορισμός παραμέτρων μετά την προγραμματιστική λογική Προωθητικός κώδικας @lazy @autoaspects def normalize(x, scale=1): return x/scale Διαμοίραση πτυχών print(GM(scale=2)) # 1 Προγραμματιστική λογική y1 = normalize(1) y2 = normalize(4) GM = (y1*y2)**0.5 Κλήση y1 = normalize(1, scale=2) y2 = normalize(4, scale=2) GM = (y1*y2)**0.5 πτυχή Κώδικας def normalize(x, scale=1): return x/scale Έξοδος print(GM) # 1 Ανάλυση Δεδομένων Έργων Λογισμικού για Ανάπτυξη σε Νέα Πεδία Εφαρμογής Εμμανουήλ Κρασανάκης Συνεισφορά 37/42
  • 45. Θεωρητική ανάλυση + Κατασκευή συμπεριφορήσιμων βιβλιοθηκών + Μείωση πολυπλοκότητας και κόστους συγγραφής επαν/σιμου κώδικα + Ελάχιστο κόστος μετατροπής κώδικα ενσωμάτωση σε άλλα μοντέλα προγραμματισμού Ανάλυση Δεδομένων Έργων Λογισμικού για Ανάπτυξη σε Νέα Πεδία Εφαρμογής Εμμανουήλ Κρασανάκης Αξιολόγηση 38/42
  • 46. pyfop: Βιβλιοθήκη για προωθητική Python Μηχανισμός προτεραιότητας για συγκρουόμενες τιμές πτυχών Μηχανισμοί αποσφαλμάτωσης @lazy def normalize(x, norm=Aspect(2, Priority.LOW)): return x /sum(x**norm)**(1./norm) x = normalize(x) y = normalize(y) … sim_kl = KL(x, y) sim_dot = dot(x, y) … print(sim_kl(eps=0)) # norm=1, eps=0 print(sim_dot()) # norm=2 @lazy def dot(x, y): return sum(x*y) @lazy @autoaspect def KL(x, y, norm=1, eps=1.E-12): assert norm == 1 return sum(x*log(x/(y+eps)+eps)) Ανάλυση Δεδομένων Έργων Λογισμικού για Ανάπτυξη σε Νέα Πεδία Εφαρμογής Εμμανουήλ Κρασανάκης Συνεισφορά 39/42
  • 47. Ενδεικτική σύγκριση Μοντέλο προγραμματισμού Οντότητες Γραμμές Κυκλ. Πολυπλοκότητα Χρόνος Συναρτησιακός 7 23 2,4 75 sec Αντικειμενοστρεφής 15 16 1,5 27 sec Προωθητικός 7 12 1,3 23 sec Για βιβλιοθήκη ομοιότητας διανυσμάτων Ανάλυση Δεδομένων Έργων Λογισμικού για Ανάπτυξη σε Νέα Πεδία Εφαρμογής Εμμανουήλ Κρασανάκης Αξιολόγηση 40/42
  • 48. Συμπεράσματα Ολοκληρωμένη μεθοδολογία ανάπτυξης σε νέα πεδία Νέες θεωρίες  Συμμετρικοί μερικώς απορροφητικοί τυχαίοι περίπατοι  Πολλαπλασιαστικό φιλτράρισμα  Μεγιστοποίηση αγωγιμότητας για αναγνώριση υπογράφων λειτουργικότητας  Συμπεριφορισημότητα  Προωθητικός προγραμματισμός Νέα εργαλεία  flare: Αναζήτηση έργων λογισμικού στο PyPI  Αλγόριθμος συρρίκνωση ιχνών  Αλγόριθμοι άπληστη συμπεριφορήσιμη σύνθεση  pysynth: Σύνθεση προγραμμάτων Python  pyfop: Προωθητικός προγραμματισμός σε Python Ανάλυση Δεδομένων Έργων Λογισμικού για Ανάπτυξη σε Νέα Πεδία Εφαρμογής Εμμανουήλ Κρασανάκης 41/42
  • 49. Μελλοντική εργασία Αναζήτηση λύσεων  Νέοι αλγόριθμοι  Άλλα αποθετήρια Μη μάθηση γενικά σε συστήματα προτάσεων Βελτίωση συρρίκνωσης ιχνών ενσωμάτωση μελλοντικών επιλυτών Steiner Εφαρμογές συμπεριφορισημότητας  Θεωρητικές εγγυήσεις για σύνθεση από τεχνητή νοημοσύνη  Μαθευσιμότητα προγραμματιστικών εργαλείων  Theorem proving σε μαθηματικά συστήματα με μετρικές πολυπλοκότητας Επέκταση εργαλείων σε άλλες γλώσσες προγραμματισμού Ανάλυση Δεδομένων Έργων Λογισμικού για Ανάπτυξη σε Νέα Πεδία Εφαρμογής Εμμανουήλ Κρασανάκης 42/42
  • 50. Δημοσιεύσεις & προδημοσιεύσεις 1. E. Krasanakis, A. Symeonidis (2022) Forward oriented Programming: A Meta-DSL for Fast Development of Component Libraries 2. E. Krasanakis, A. Symeonidis (2022) Extracting High-Conductance Dependency Trees to Understand Source Code Artifacts 3. E. Krasanakis, S. Papadopoulos, I. Kompatsiaris, A. Symeonidis (2022) pygrank: A python package for graph node ranking. SoftwareX. 4. E. Krasanakis, A. Symeonidis (2022) Fast Library Recommendation in Software Dependency Graphs with Symmetric Partially Absorbing Random Walks. Future Internet 14, no. 5 (2022): 124. 5. E. Krasanakis, A. Symeonidis (2021) Defining behaviorizeable relations to enable inference in semi-automatic program synthesis. Journal of Logical and Algebraic Methods in Programming, 123 6. E. Krasanakis, E. Schinas, Papadopoulos, I. Kompatsiaris, A. Symeonidis (2020) Boosted seed oversampling for local community ranking. Information Processing & Management, 57(2), 102053. Σχετικές δημοσιεύσεις 7. E. Krasanakis, S. Papadopoulos, I. Kompatsiaris (2020) Unsupervised evaluation of multiple node ranks by reconstructing local structures. Applied Network Science, 5(1) (pp.1-32). Ευχαριστώ για την προσοχή σας! Ανάλυση Δεδομένων Έργων Λογισμικού για Ανάπτυξη σε Νέα Πεδία Εφαρμογής Εμμανουήλ Κρασανάκης