SlideShare a Scribd company logo

Applying Data Mining Techniques on Software Repositories to Extract Design and Evolution Patterns

ISSEL
ISSEL

Close collaboration between software developers is considered essential in order to build innovative software projects. For this reason, there are several online program-hosting platforms, which enable their users to watch each other’s changes, recommendations and comments towards the improvement and evolution of code. These platforms also control different versions of the software code so that the developer can revert to previous ones if desired. All the modifications performed at a given time by a member of the software development team are bundled in a commit, where the main reasons behind them are also recorded. As a consequence, it goes without saying that these series of changes include a lot of useful information about the way a software project evolves. Applying data mining techniques on public software repositories and the data we discussed above could unveil some common bug fixes, systematic edits, frequent types of changes in a project’s architecture and frequently-used design patterns either known or unknown ones. An extensive bibliographic research in this domain reveals that the majority of scientific efforts has focused on bug fixes and systematic edits ignoring some more coarse-grained (high-level) code evolution or design patterns. In this context, this dissertation tries to extract the relationships between the classes of an object-oriented program, while also seeking to monitor the way they evolve over time. To achieve these goals, this diploma thesis adapts a Relationship Extractor tool based on the Abstract Syntax Trees analysis of some of the most popular software projects in Github web platform. After analyzing and processing those syntax trees, useful information is extracted concerning the operation, the abstraction level as well as the inheritance of classes. This information is then modeled as graphs (with classes as nodes and the connections between them as edges). These steps are not only executed for the latest version of a project, but also in each and every commit with a view to extracting the difference in relationships between the versions of a project before and after the specific commit. Finally, gSpan, which is a frequent-subgraph mining algorithm, is applied, in order to detect code design and evolution patterns used by the software community worldwide.

1 of 25
Download to read offline
Εφαρμογή Τεχνικών Εξόρυξης Δεδομένων σε Αποθήκες Λογισμικού με
σκοπό την Εξαγωγή Προτύπων Σχεδίασης και Εξέλιξης
ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ
ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ
Τμήμα Ηλεκτρολόγων Μηχανικών και
Μηχανικών Υπολογιστών
Εργαστήριο Επεξεργασίας Πληροφορίας και
Υπολογισμών
Διπλωματική Εργασία
Φοιτητής: Καγιάφας Νικόλαος
Αριθμός Ειδικού Μητρώου (A.E.M.): 8817
Επιβλέποντες:
Συμεωνίδης Ανδρέας,
Αναπληρωτής Καθηγητής
Διαμαντόπουλος Θεμιστοκλής,
Μεταδιδακτορικός Ερευνητής
Ομάδα Ευφυών Συστημάτων και
Τεχνολογίας Λογισμικού
Θεσσαλονίκη, 14 Απριλίου 2021
Διάρθρωση Παρουσίασης
• Εισαγωγή
• Υλοποίηση του Συστήματος – Μεθοδολογία
• Πειράματα και Αποτελέσματα
• Συμπεράσματα
• Μελλοντική Εργασία
2
Εφαρμογή τεχνικών εξόρυξης δεδομένων σε αποθήκες λογισμικού
με σκοπό την εξαγωγή προτύπων σχεδίασης και εξέλιξης
Θεσσαλονίκη, Απρίλιος 2021
Διάρθρωση Παρουσίασης
Εισαγωγή
Υλοποίηση του Συστήματος –
Μεθοδολογία
Πειράματα και
Αποτελέσματα
Συμπεράσματα
Μελλοντική
Εργασία
3
Εφαρμογή τεχνικών εξόρυξης δεδομένων σε αποθήκες λογισμικού
με σκοπό την εξαγωγή προτύπων σχεδίασης και εξέλιξης
Θεσσαλονίκη, Απρίλιος 2021
Κίνητρο – Περιγραφή του Προβλήματος
4
Εφαρμογή τεχνικών εξόρυξης δεδομένων σε αποθήκες λογισμικού
με σκοπό την εξαγωγή προτύπων σχεδίασης και εξέλιξης
Θεσσαλονίκη, Απρίλιος 2021
• Αποθήκες λογισμικού στο Διαδίκτυο, μία
πλούσια πηγή δεδομένων
• Συνεργασία μεταξύ των προγραμματιστών
• Διενέργεια αλλαγών για βελτίωση,
διόρθωση και εξέλιξη ενός έργου
λογισμικού
Εύρεση συχνών τύπων αλλαγών
Εξέταση σχεδιαστικών αρχών για την
οικοδόμηση ενός προγράμματος
Κατανόηση και επίλυση παρόμοιων
προβλημάτων
Μοτίβα
αλλαγών
Διόρθωση λαθών
Συστηματικές
τροποποιήσεις
Βελτίωση χωρίς αλλαγές
στη λειτουργικότητα
Χρήση υπαρχόντων
σχολίων
Αλλαγές στην
αρχιτεκτονική
• Δεν έχουν εξεταστεί σε βάθος
• Δυνατότητα ανίχνευσης προτύπων
σχεδίασης και εξέλιξης λογισμικού
• Τίθενται οι βάσεις για ανάπτυξη
εργαλείων προτάσεων αλλαγών στην
αρχιτεκτονική
Στόχοι της διπλωματικής
5
Εφαρμογή τεχνικών εξόρυξης δεδομένων σε αποθήκες λογισμικού
με σκοπό την εξαγωγή προτύπων σχεδίασης και εξέλιξης
Θεσσαλονίκη, Απρίλιος 2021
Εύρεση συχνών
σχεδιαστικών προτύπων
και προτύπων εξέλιξης
Παρακολούθηση της
εξέλιξης των σχέσεων
μεταξύ των κλάσεων
Υλοποίηση εργαλείου
εξαγωγής των
σχέσεων ανάμεσα
στις διάφορες κλάσεις
ενός προγράμματος
Επιλογή και άντληση
του κατάλληλου
συνόλου δεδομένων
Ανάλυση των εξαγόμενων
προτύπων
Συλλογή στοιχείων σχετικά
με τη σημασιολογία και
τον στόχο τους
Ενίσχυση της δυνατότητας κατανόησης
του προγράμματος στο οποίο
χρησιμοποιούνται (program
comprehension)
Χρησιμοποιούν σήμερα οι προγραμματιστές
πρότυπα, συνειδητά ή μη;
Αν ναι, υπάρχουν και πρότυπα που δεν είναι μέχρι
σήμερα γνωστά;
Διάρθρωση Παρουσίασης
Εισαγωγή
Υλοποίηση του Συστήματος
– Μεθοδολογία
Πειράματα και
Αποτελέσματα
Συμπεράσματα
Μελλοντική
Εργασία
6
Εφαρμογή τεχνικών εξόρυξης δεδομένων σε αποθήκες λογισμικού
με σκοπό την εξαγωγή προτύπων σχεδίασης και εξέλιξης
Θεσσαλονίκη, Απρίλιος 2021

Recommended

Εφαρμογή Τεχνικών Εξόρυξης Δεδομένων σε Αποθήκες Λογισμικού με σκοπό την Εξα...
Εφαρμογή Τεχνικών Εξόρυξης Δεδομένων σε Αποθήκες Λογισμικού με  σκοπό την Εξα...Εφαρμογή Τεχνικών Εξόρυξης Δεδομένων σε Αποθήκες Λογισμικού με  σκοπό την Εξα...
Εφαρμογή Τεχνικών Εξόρυξης Δεδομένων σε Αποθήκες Λογισμικού με σκοπό την Εξα...ISSEL
 
Kagiafas Nikolaos Thesis Presentation
Kagiafas Nikolaos Thesis PresentationKagiafas Nikolaos Thesis Presentation
Kagiafas Nikolaos Thesis PresentationISSEL
 
Theofilos Georgiadis: Library recommendation system for the reuse of software...
Theofilos Georgiadis: Library recommendation system for the reuse of software...Theofilos Georgiadis: Library recommendation system for the reuse of software...
Theofilos Georgiadis: Library recommendation system for the reuse of software...Manos Tsardoulias
 
Pantelidou Eirini: Design and development of a system for incremental static ...
Pantelidou Eirini: Design and development of a system for incremental static ...Pantelidou Eirini: Design and development of a system for incremental static ...
Pantelidou Eirini: Design and development of a system for incremental static ...Manos Tsardoulias
 
Ανάπτυξη αυτοματοποιημένης διαδικασίας Continuous Integration σε έργα λογισμικού
Ανάπτυξη αυτοματοποιημένης διαδικασίας Continuous Integration σε έργα λογισμικούΑνάπτυξη αυτοματοποιημένης διαδικασίας Continuous Integration σε έργα λογισμικού
Ανάπτυξη αυτοματοποιημένης διαδικασίας Continuous Integration σε έργα λογισμικούISSEL
 
Υλοποίηση εργαλείου πλήρους στοίβας σε περιβάλλον Kubernetes για την αυτοµατο...
Υλοποίηση εργαλείου πλήρους στοίβας σε περιβάλλον Kubernetes για την αυτοµατο...Υλοποίηση εργαλείου πλήρους στοίβας σε περιβάλλον Kubernetes για την αυτοµατο...
Υλοποίηση εργαλείου πλήρους στοίβας σε περιβάλλον Kubernetes για την αυτοµατο...ISSEL
 
Ioannis Loias
Ioannis LoiasIoannis Loias
Ioannis LoiasISSEL
 
Stelios poulakakis daktylidis diploma thesis presentation
Stelios poulakakis daktylidis diploma thesis presentationStelios poulakakis daktylidis diploma thesis presentation
Stelios poulakakis daktylidis diploma thesis presentationISSEL
 

More Related Content

What's hot

Αλεξάνδρα Μπαλτζή 7485
Αλεξάνδρα Μπαλτζή 7485Αλεξάνδρα Μπαλτζή 7485
Αλεξάνδρα Μπαλτζή 7485ISSEL
 
Ανίχνευση Αποκλίνουσας Συμπεριφοράς Χρηστών Διαδικτυακής Εφαρμογής Με Χρήση Τ...
Ανίχνευση Αποκλίνουσας Συμπεριφοράς Χρηστών Διαδικτυακής Εφαρμογής Με Χρήση Τ...Ανίχνευση Αποκλίνουσας Συμπεριφοράς Χρηστών Διαδικτυακής Εφαρμογής Με Χρήση Τ...
Ανίχνευση Αποκλίνουσας Συμπεριφοράς Χρηστών Διαδικτυακής Εφαρμογής Με Χρήση Τ...ISSEL
 
Μαρία Κουιρουκίδου
Μαρία ΚουιρουκίδουΜαρία Κουιρουκίδου
Μαρία ΚουιρουκίδουISSEL
 
Konstantinos Papadopoulos Diploma Thesis presenation
Konstantinos Papadopoulos Diploma Thesis presenationKonstantinos Papadopoulos Diploma Thesis presenation
Konstantinos Papadopoulos Diploma Thesis presenationISSEL
 
Evangelos papathomas diploma thesis presentation
Evangelos papathomas diploma thesis presentationEvangelos papathomas diploma thesis presentation
Evangelos papathomas diploma thesis presentationISSEL
 
Ιωάννη Α. Ζαφειρίου
Ιωάννη Α. ΖαφειρίουΙωάννη Α. Ζαφειρίου
Ιωάννη Α. ΖαφειρίουISSEL
 
Θεμιστοκλής Παπαβασιλείου
Θεμιστοκλής ΠαπαβασιλείουΘεμιστοκλής Παπαβασιλείου
Θεμιστοκλής ΠαπαβασιλείουISSEL
 

What's hot (7)

Αλεξάνδρα Μπαλτζή 7485
Αλεξάνδρα Μπαλτζή 7485Αλεξάνδρα Μπαλτζή 7485
Αλεξάνδρα Μπαλτζή 7485
 
Ανίχνευση Αποκλίνουσας Συμπεριφοράς Χρηστών Διαδικτυακής Εφαρμογής Με Χρήση Τ...
Ανίχνευση Αποκλίνουσας Συμπεριφοράς Χρηστών Διαδικτυακής Εφαρμογής Με Χρήση Τ...Ανίχνευση Αποκλίνουσας Συμπεριφοράς Χρηστών Διαδικτυακής Εφαρμογής Με Χρήση Τ...
Ανίχνευση Αποκλίνουσας Συμπεριφοράς Χρηστών Διαδικτυακής Εφαρμογής Με Χρήση Τ...
 
Μαρία Κουιρουκίδου
Μαρία ΚουιρουκίδουΜαρία Κουιρουκίδου
Μαρία Κουιρουκίδου
 
Konstantinos Papadopoulos Diploma Thesis presenation
Konstantinos Papadopoulos Diploma Thesis presenationKonstantinos Papadopoulos Diploma Thesis presenation
Konstantinos Papadopoulos Diploma Thesis presenation
 
Evangelos papathomas diploma thesis presentation
Evangelos papathomas diploma thesis presentationEvangelos papathomas diploma thesis presentation
Evangelos papathomas diploma thesis presentation
 
Ιωάννη Α. Ζαφειρίου
Ιωάννη Α. ΖαφειρίουΙωάννη Α. Ζαφειρίου
Ιωάννη Α. Ζαφειρίου
 
Θεμιστοκλής Παπαβασιλείου
Θεμιστοκλής ΠαπαβασιλείουΘεμιστοκλής Παπαβασιλείου
Θεμιστοκλής Παπαβασιλείου
 

Similar to Applying Data Mining Techniques on Software Repositories to Extract Design and Evolution Patterns

Ανάπτυξη Εφαρµογής Προφίλ Μηχανικών Λογισµικού από ∆εδοµένα Αποθετηρίων Λογισ...
Ανάπτυξη Εφαρµογής Προφίλ Μηχανικών Λογισµικού από ∆εδοµένα Αποθετηρίων Λογισ...Ανάπτυξη Εφαρµογής Προφίλ Μηχανικών Λογισµικού από ∆εδοµένα Αποθετηρίων Λογισ...
Ανάπτυξη Εφαρµογής Προφίλ Μηχανικών Λογισµικού από ∆εδοµένα Αποθετηρίων Λογισ...ISSEL
 
Ανάλυση και μοντελοποίηση προφίλ προγραμματιστών μέσω τεχνικών εξόρυξης γνώση...
Ανάλυση και μοντελοποίηση προφίλ προγραμματιστών μέσω τεχνικών εξόρυξης γνώση...Ανάλυση και μοντελοποίηση προφίλ προγραμματιστών μέσω τεχνικών εξόρυξης γνώση...
Ανάλυση και μοντελοποίηση προφίλ προγραμματιστών μέσω τεχνικών εξόρυξης γνώση...ISSEL
 
Analysis and profiling of developer profiles using data mining techniques fro...
Analysis and profiling of developer profiles using data mining techniques fro...Analysis and profiling of developer profiles using data mining techniques fro...
Analysis and profiling of developer profiles using data mining techniques fro...ISSEL
 
Εφαρμογή Τεχνικών Εξόρυξης Δεδομένων για την Εξαγωγή Προτύπων Διόρθωσης σε Σφ...
Εφαρμογή Τεχνικών Εξόρυξης Δεδομένων για την Εξαγωγή Προτύπων Διόρθωσης σε Σφ...Εφαρμογή Τεχνικών Εξόρυξης Δεδομένων για την Εξαγωγή Προτύπων Διόρθωσης σε Σφ...
Εφαρμογή Τεχνικών Εξόρυξης Δεδομένων για την Εξαγωγή Προτύπων Διόρθωσης σε Σφ...ISSEL
 
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
 
Εφαρµογή τεχνικών µηχανικής µάθησης και ευφυούς διαχείρισης πληροφορίας για τ...
Εφαρµογή τεχνικών µηχανικής µάθησης και ευφυούς διαχείρισης πληροφορίας για τ...Εφαρµογή τεχνικών µηχανικής µάθησης και ευφυούς διαχείρισης πληροφορίας για τ...
Εφαρµογή τεχνικών µηχανικής µάθησης και ευφυούς διαχείρισης πληροφορίας για τ...ISSEL
 
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 ...ISSEL
 
Παρουσίαση θεμάτων διπλωματικών 2010
Παρουσίαση θεμάτων διπλωματικών 2010Παρουσίαση θεμάτων διπλωματικών 2010
Παρουσίαση θεμάτων διπλωματικών 2010ISSEL
 
Thesis.Net - Training
Thesis.Net - TrainingThesis.Net - Training
Thesis.Net - TrainingAnna Tsolakou
 
Nikolaos Oikonomou
Nikolaos OikonomouNikolaos Oikonomou
Nikolaos OikonomouISSEL
 
Keyword-based software library recommendation in order to bootstrap software ...
Keyword-based software library recommendation in order to bootstrap software ...Keyword-based software library recommendation in order to bootstrap software ...
Keyword-based software library recommendation in order to bootstrap software ...ISSEL
 
Πρόταση Βιβλιοθηκών Σχετικών με Λέξεις-Κλειδιά για Εκκίνηση της Διαδικασίας Α...
Πρόταση Βιβλιοθηκών Σχετικών με Λέξεις-Κλειδιά για Εκκίνηση της Διαδικασίας Α...Πρόταση Βιβλιοθηκών Σχετικών με Λέξεις-Κλειδιά για Εκκίνηση της Διαδικασίας Α...
Πρόταση Βιβλιοθηκών Σχετικών με Λέξεις-Κλειδιά για Εκκίνηση της Διαδικασίας Α...ISSEL
 
Development of an automatic procedure for Continuous Integration
Development of an automatic procedure for Continuous IntegrationDevelopment of an automatic procedure for Continuous Integration
Development of an automatic procedure for Continuous IntegrationISSEL
 
Σχεδίαση και ανάπτυξη Μηχανισμού Αυτοματοποίησης παραγωγής Λογισμικού Ελέγχου...
Σχεδίαση και ανάπτυξη Μηχανισμού Αυτοματοποίησης παραγωγής Λογισμικού Ελέγχου...Σχεδίαση και ανάπτυξη Μηχανισμού Αυτοματοποίησης παραγωγής Λογισμικού Ελέγχου...
Σχεδίαση και ανάπτυξη Μηχανισμού Αυτοματοποίησης παραγωγής Λογισμικού Ελέγχου...ISSEL
 
Design and Implementation of a Mechanism that automates the generation of Sof...
Design and Implementation of a Mechanism that automates the generation of Sof...Design and Implementation of a Mechanism that automates the generation of Sof...
Design and Implementation of a Mechanism that automates the generation of Sof...ISSEL
 
Thesis.Net Framework Training
Thesis.Net Framework TrainingThesis.Net Framework Training
Thesis.Net Framework Trainingpdalianis
 
Εφαρµογή Τεχνικών Μηχανικής Μάθησης για την Ανάλυση Αλλαγών Κώδικα µε στόχο τ...
Εφαρµογή Τεχνικών Μηχανικής Μάθησης για την Ανάλυση Αλλαγών Κώδικα µε στόχο τ...Εφαρµογή Τεχνικών Μηχανικής Μάθησης για την Ανάλυση Αλλαγών Κώδικα µε στόχο τ...
Εφαρµογή Τεχνικών Μηχανικής Μάθησης για την Ανάλυση Αλλαγών Κώδικα µε στόχο τ...ISSEL
 
Ruby On Rails Introduction [Εισαγωγή στο Rails]
Ruby On Rails Introduction [Εισαγωγή στο Rails]Ruby On Rails Introduction [Εισαγωγή στο Rails]
Ruby On Rails Introduction [Εισαγωγή στο Rails]Nikos Dimitrakopoulos
 
Σχεδιασμός και υλοποίηση πλήρους και αυτοματοποιημένου εργαλείου ελέγχων ασφά...
Σχεδιασμός και υλοποίηση πλήρους και αυτοματοποιημένου εργαλείου ελέγχων ασφά...Σχεδιασμός και υλοποίηση πλήρους και αυτοματοποιημένου εργαλείου ελέγχων ασφά...
Σχεδιασμός και υλοποίηση πλήρους και αυτοματοποιημένου εργαλείου ελέγχων ασφά...ISSEL
 

Similar to Applying Data Mining Techniques on Software Repositories to Extract Design and Evolution Patterns (20)

Ανάπτυξη Εφαρµογής Προφίλ Μηχανικών Λογισµικού από ∆εδοµένα Αποθετηρίων Λογισ...
Ανάπτυξη Εφαρµογής Προφίλ Μηχανικών Λογισµικού από ∆εδοµένα Αποθετηρίων Λογισ...Ανάπτυξη Εφαρµογής Προφίλ Μηχανικών Λογισµικού από ∆εδοµένα Αποθετηρίων Λογισ...
Ανάπτυξη Εφαρµογής Προφίλ Μηχανικών Λογισµικού από ∆εδοµένα Αποθετηρίων Λογισ...
 
Ανάλυση και μοντελοποίηση προφίλ προγραμματιστών μέσω τεχνικών εξόρυξης γνώση...
Ανάλυση και μοντελοποίηση προφίλ προγραμματιστών μέσω τεχνικών εξόρυξης γνώση...Ανάλυση και μοντελοποίηση προφίλ προγραμματιστών μέσω τεχνικών εξόρυξης γνώση...
Ανάλυση και μοντελοποίηση προφίλ προγραμματιστών μέσω τεχνικών εξόρυξης γνώση...
 
Analysis and profiling of developer profiles using data mining techniques fro...
Analysis and profiling of developer profiles using data mining techniques fro...Analysis and profiling of developer profiles using data mining techniques fro...
Analysis and profiling of developer profiles using data mining techniques fro...
 
Εφαρμογή Τεχνικών Εξόρυξης Δεδομένων για την Εξαγωγή Προτύπων Διόρθωσης σε Σφ...
Εφαρμογή Τεχνικών Εξόρυξης Δεδομένων για την Εξαγωγή Προτύπων Διόρθωσης σε Σφ...Εφαρμογή Τεχνικών Εξόρυξης Δεδομένων για την Εξαγωγή Προτύπων Διόρθωσης σε Σφ...
Εφαρμογή Τεχνικών Εξόρυξης Δεδομένων για την Εξαγωγή Προτύπων Διόρθωσης σε Σφ...
 
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...
 
Εφαρµογή τεχνικών µηχανικής µάθησης και ευφυούς διαχείρισης πληροφορίας για τ...
Εφαρµογή τεχνικών µηχανικής µάθησης και ευφυούς διαχείρισης πληροφορίας για τ...Εφαρµογή τεχνικών µηχανικής µάθησης και ευφυούς διαχείρισης πληροφορίας για τ...
Εφαρµογή τεχνικών µηχανικής µάθησης και ευφυούς διαχείρισης πληροφορίας για τ...
 
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 ...
 
Παρουσίαση θεμάτων διπλωματικών 2010
Παρουσίαση θεμάτων διπλωματικών 2010Παρουσίαση θεμάτων διπλωματικών 2010
Παρουσίαση θεμάτων διπλωματικών 2010
 
Thesis.Net - Training
Thesis.Net - TrainingThesis.Net - Training
Thesis.Net - Training
 
Nikolaos Oikonomou
Nikolaos OikonomouNikolaos Oikonomou
Nikolaos Oikonomou
 
Keyword-based software library recommendation in order to bootstrap software ...
Keyword-based software library recommendation in order to bootstrap software ...Keyword-based software library recommendation in order to bootstrap software ...
Keyword-based software library recommendation in order to bootstrap software ...
 
Πρόταση Βιβλιοθηκών Σχετικών με Λέξεις-Κλειδιά για Εκκίνηση της Διαδικασίας Α...
Πρόταση Βιβλιοθηκών Σχετικών με Λέξεις-Κλειδιά για Εκκίνηση της Διαδικασίας Α...Πρόταση Βιβλιοθηκών Σχετικών με Λέξεις-Κλειδιά για Εκκίνηση της Διαδικασίας Α...
Πρόταση Βιβλιοθηκών Σχετικών με Λέξεις-Κλειδιά για Εκκίνηση της Διαδικασίας Α...
 
Development of an automatic procedure for Continuous Integration
Development of an automatic procedure for Continuous IntegrationDevelopment of an automatic procedure for Continuous Integration
Development of an automatic procedure for Continuous Integration
 
Σχεδίαση και ανάπτυξη Μηχανισμού Αυτοματοποίησης παραγωγής Λογισμικού Ελέγχου...
Σχεδίαση και ανάπτυξη Μηχανισμού Αυτοματοποίησης παραγωγής Λογισμικού Ελέγχου...Σχεδίαση και ανάπτυξη Μηχανισμού Αυτοματοποίησης παραγωγής Λογισμικού Ελέγχου...
Σχεδίαση και ανάπτυξη Μηχανισμού Αυτοματοποίησης παραγωγής Λογισμικού Ελέγχου...
 
Design and Implementation of a Mechanism that automates the generation of Sof...
Design and Implementation of a Mechanism that automates the generation of Sof...Design and Implementation of a Mechanism that automates the generation of Sof...
Design and Implementation of a Mechanism that automates the generation of Sof...
 
Thesis.Net Framework Training
Thesis.Net Framework TrainingThesis.Net Framework Training
Thesis.Net Framework Training
 
Εφαρµογή Τεχνικών Μηχανικής Μάθησης για την Ανάλυση Αλλαγών Κώδικα µε στόχο τ...
Εφαρµογή Τεχνικών Μηχανικής Μάθησης για την Ανάλυση Αλλαγών Κώδικα µε στόχο τ...Εφαρµογή Τεχνικών Μηχανικής Μάθησης για την Ανάλυση Αλλαγών Κώδικα µε στόχο τ...
Εφαρµογή Τεχνικών Μηχανικής Μάθησης για την Ανάλυση Αλλαγών Κώδικα µε στόχο τ...
 
Παρουσίαση Smart
Παρουσίαση SmartΠαρουσίαση Smart
Παρουσίαση Smart
 
Ruby On Rails Introduction [Εισαγωγή στο Rails]
Ruby On Rails Introduction [Εισαγωγή στο Rails]Ruby On Rails Introduction [Εισαγωγή στο Rails]
Ruby On Rails Introduction [Εισαγωγή στο Rails]
 
Σχεδιασμός και υλοποίηση πλήρους και αυτοματοποιημένου εργαλείου ελέγχων ασφά...
Σχεδιασμός και υλοποίηση πλήρους και αυτοματοποιημένου εργαλείου ελέγχων ασφά...Σχεδιασμός και υλοποίηση πλήρους και αυτοματοποιημένου εργαλείου ελέγχων ασφά...
Σχεδιασμός και υλοποίηση πλήρους και αυτοματοποιημένου εργαλείου ελέγχων ασφά...
 

More from ISSEL

Ανίχνευση αντικειµένων από λίγα δείγµατα µε χρήση γραφηµάτων και τεχνικών ΜΕΤ...
Ανίχνευση αντικειµένων από λίγα δείγµατα µε χρήση γραφηµάτων και τεχνικών ΜΕΤ...Ανίχνευση αντικειµένων από λίγα δείγµατα µε χρήση γραφηµάτων και τεχνικών ΜΕΤ...
Ανίχνευση αντικειµένων από λίγα δείγµατα µε χρήση γραφηµάτων και τεχνικών ΜΕΤ...ISSEL
 
Ανάπτυξη ∆υναµικού και Προσωποποιηµένου Συστήµατος Ερωταπαντήσεων µε Πηγή το ...
Ανάπτυξη ∆υναµικού και Προσωποποιηµένου Συστήµατος Ερωταπαντήσεων µε Πηγή το ...Ανάπτυξη ∆υναµικού και Προσωποποιηµένου Συστήµατος Ερωταπαντήσεων µε Πηγή το ...
Ανάπτυξη ∆υναµικού και Προσωποποιηµένου Συστήµατος Ερωταπαντήσεων µε Πηγή το ...ISSEL
 
Ανάπτυξη Φίλτρων Ανεπιθύμητων Μηνυμάτων με Χρήση Τεχνικών Τεχνητής Νοημοσύνης
Ανάπτυξη Φίλτρων Ανεπιθύμητων Μηνυμάτων με Χρήση Τεχνικών Τεχνητής ΝοημοσύνηςΑνάπτυξη Φίλτρων Ανεπιθύμητων Μηνυμάτων με Χρήση Τεχνικών Τεχνητής Νοημοσύνης
Ανάπτυξη Φίλτρων Ανεπιθύμητων Μηνυμάτων με Χρήση Τεχνικών Τεχνητής ΝοημοσύνηςISSEL
 
Ανάπτυξη Ελληνικών Μοντέλων Εντοπισμού Ρητορικής Μίσους.pptx
Ανάπτυξη Ελληνικών Μοντέλων Εντοπισμού Ρητορικής Μίσους.pptxΑνάπτυξη Ελληνικών Μοντέλων Εντοπισμού Ρητορικής Μίσους.pptx
Ανάπτυξη Ελληνικών Μοντέλων Εντοπισμού Ρητορικής Μίσους.pptxISSEL
 
Ανάπτυξη συστήματος ιεραρχικής ομαδοποίησης και διαχείρισης κειμένων για αποκ...
Ανάπτυξη συστήματος ιεραρχικής ομαδοποίησης και διαχείρισης κειμένων για αποκ...Ανάπτυξη συστήματος ιεραρχικής ομαδοποίησης και διαχείρισης κειμένων για αποκ...
Ανάπτυξη συστήματος ιεραρχικής ομαδοποίησης και διαχείρισης κειμένων για αποκ...ISSEL
 
Ανάπτυξη γραφικής διεπαφής σε σύστημα προσομοίωσης ηλεκτρονικών αγορών με στό...
Ανάπτυξη γραφικής διεπαφής σε σύστημα προσομοίωσης ηλεκτρονικών αγορών με στό...Ανάπτυξη γραφικής διεπαφής σε σύστημα προσομοίωσης ηλεκτρονικών αγορών με στό...
Ανάπτυξη γραφικής διεπαφής σε σύστημα προσομοίωσης ηλεκτρονικών αγορών με στό...ISSEL
 
Δημιουργία Ολοκληρωμένου Συστήματος Επαλήθευσης Ορθότητας Ισχυρισμών
Δημιουργία Ολοκληρωμένου Συστήματος Επαλήθευσης Ορθότητας ΙσχυρισμώνΔημιουργία Ολοκληρωμένου Συστήματος Επαλήθευσης Ορθότητας Ισχυρισμών
Δημιουργία Ολοκληρωμένου Συστήματος Επαλήθευσης Ορθότητας ΙσχυρισμώνISSEL
 
Εξόρυξη δεδοµένων για τη δυναµική ενσωµάτωση γνώσης σε πολυπρακτορικά συστήµατα
Εξόρυξη δεδοµένων για τη δυναµική ενσωµάτωση γνώσης σε πολυπρακτορικά συστήµαταΕξόρυξη δεδοµένων για τη δυναµική ενσωµάτωση γνώσης σε πολυπρακτορικά συστήµατα
Εξόρυξη δεδοµένων για τη δυναµική ενσωµάτωση γνώσης σε πολυπρακτορικά συστήµαταISSEL
 
Ανάπτυξη Μηχανισμών Αυτοματοποίησης των διαδικασιών κατασκευής συστημάτων λο...
Ανάπτυξη Μηχανισμών Αυτοματοποίησης των  διαδικασιών κατασκευής συστημάτων λο...Ανάπτυξη Μηχανισμών Αυτοματοποίησης των  διαδικασιών κατασκευής συστημάτων λο...
Ανάπτυξη Μηχανισμών Αυτοματοποίησης των διαδικασιών κατασκευής συστημάτων λο...ISSEL
 
ΕΥΦΥΗΣ ΜΕΘΟΔΟΛΟΓΙΑ ΑΠΟΤΙΜΗΣΗΣ ΤΟΥ ΒΑΘΜΟΥ ΔΙΑΤΗΡΗΣΙΜΟΤΗΤΑΣ ΕΡΓΩΝ ΛΟΓΙΣΜΙΚΟΥ ΜΕ...
ΕΥΦΥΗΣ ΜΕΘΟΔΟΛΟΓΙΑ ΑΠΟΤΙΜΗΣΗΣ ΤΟΥ ΒΑΘΜΟΥ ΔΙΑΤΗΡΗΣΙΜΟΤΗΤΑΣ ΕΡΓΩΝ ΛΟΓΙΣΜΙΚΟΥ ΜΕ...ΕΥΦΥΗΣ ΜΕΘΟΔΟΛΟΓΙΑ ΑΠΟΤΙΜΗΣΗΣ ΤΟΥ ΒΑΘΜΟΥ ΔΙΑΤΗΡΗΣΙΜΟΤΗΤΑΣ ΕΡΓΩΝ ΛΟΓΙΣΜΙΚΟΥ ΜΕ...
ΕΥΦΥΗΣ ΜΕΘΟΔΟΛΟΓΙΑ ΑΠΟΤΙΜΗΣΗΣ ΤΟΥ ΒΑΘΜΟΥ ΔΙΑΤΗΡΗΣΙΜΟΤΗΤΑΣ ΕΡΓΩΝ ΛΟΓΙΣΜΙΚΟΥ ΜΕ...ISSEL
 
Μηχανισμοί αυτοματοποίησης διαδικασιών σχεδίασης, υλοποίησης και ανάπτυξης λο...
Μηχανισμοί αυτοματοποίησης διαδικασιών σχεδίασης, υλοποίησης και ανάπτυξης λο...Μηχανισμοί αυτοματοποίησης διαδικασιών σχεδίασης, υλοποίησης και ανάπτυξης λο...
Μηχανισμοί αυτοματοποίησης διαδικασιών σχεδίασης, υλοποίησης και ανάπτυξης λο...ISSEL
 
Εξόρυξη δεδομένων τεχνολογίας λογισμικού για επαναχρησιμοποίηση λογισμικού
Εξόρυξη δεδομένων τεχνολογίας λογισμικού για επαναχρησιμοποίηση λογισμικούΕξόρυξη δεδομένων τεχνολογίας λογισμικού για επαναχρησιμοποίηση λογισμικού
Εξόρυξη δεδομένων τεχνολογίας λογισμικού για επαναχρησιμοποίηση λογισμικούISSEL
 
Ανάλυση ∆εδοµένων ΄Εργων Λογισµικού για Ανάπτυξη σε Νέα Πεδία Εφαρµογής
Ανάλυση ∆εδοµένων ΄Εργων Λογισµικού για Ανάπτυξη σε Νέα Πεδία ΕφαρµογήςΑνάλυση ∆εδοµένων ΄Εργων Λογισµικού για Ανάπτυξη σε Νέα Πεδία Εφαρµογής
Ανάλυση ∆εδοµένων ΄Εργων Λογισµικού για Ανάπτυξη σε Νέα Πεδία ΕφαρµογήςISSEL
 
Camera-based localization of annotated objects in indoor environments
Camera-based localization of annotated objects in indoor environmentsCamera-based localization of annotated objects in indoor environments
Camera-based localization of annotated objects in indoor environmentsISSEL
 
Εντοπισμός θέσης επισημασμένου αντικειμένου σε εσωτερικό χώρο με χρήση πολλαπ...
Εντοπισμός θέσης επισημασμένου αντικειμένου σε εσωτερικό χώρο με χρήση πολλαπ...Εντοπισμός θέσης επισημασμένου αντικειμένου σε εσωτερικό χώρο με χρήση πολλαπ...
Εντοπισμός θέσης επισημασμένου αντικειμένου σε εσωτερικό χώρο με χρήση πολλαπ...ISSEL
 
Design and implementation of an automation mechanism to automatically develop...
Design and implementation of an automation mechanism to automatically develop...Design and implementation of an automation mechanism to automatically develop...
Design and implementation of an automation mechanism to automatically develop...ISSEL
 
ΣΧΕΔΙΑΣΗ ΚΑΙ ΑΝΑΠΤΥΞΗ ΜΗΧΑΝΙΣΜΟΥ ΑΥΤΟΜΑΤΟΠΟΙΗΣΗΣ ΤΗΣ ΑΝΑΠΤΥΞΗΣ ΓΡΑΦΙΚΩΝ ΕΝΤΟΛ...
ΣΧΕΔΙΑΣΗ ΚΑΙ ΑΝΑΠΤΥΞΗ ΜΗΧΑΝΙΣΜΟΥ ΑΥΤΟΜΑΤΟΠΟΙΗΣΗΣ ΤΗΣ ΑΝΑΠΤΥΞΗΣ ΓΡΑΦΙΚΩΝ ΕΝΤΟΛ...ΣΧΕΔΙΑΣΗ ΚΑΙ ΑΝΑΠΤΥΞΗ ΜΗΧΑΝΙΣΜΟΥ ΑΥΤΟΜΑΤΟΠΟΙΗΣΗΣ ΤΗΣ ΑΝΑΠΤΥΞΗΣ ΓΡΑΦΙΚΩΝ ΕΝΤΟΛ...
ΣΧΕΔΙΑΣΗ ΚΑΙ ΑΝΑΠΤΥΞΗ ΜΗΧΑΝΙΣΜΟΥ ΑΥΤΟΜΑΤΟΠΟΙΗΣΗΣ ΤΗΣ ΑΝΑΠΤΥΞΗΣ ΓΡΑΦΙΚΩΝ ΕΝΤΟΛ...ISSEL
 
Static Analysis of Python code and Identification of Potential Security Vulne...
Static Analysis of Python code and Identification of Potential Security Vulne...Static Analysis of Python code and Identification of Potential Security Vulne...
Static Analysis of Python code and Identification of Potential Security Vulne...ISSEL
 
Στατική Ανάλυση Κώδικα Python και Αναγνώριση Πιθανών Ευπαθειών Ασφαλείας για ...
Στατική Ανάλυση Κώδικα Python και Αναγνώριση Πιθανών Ευπαθειών Ασφαλείας για ...Στατική Ανάλυση Κώδικα Python και Αναγνώριση Πιθανών Ευπαθειών Ασφαλείας για ...
Στατική Ανάλυση Κώδικα Python και Αναγνώριση Πιθανών Ευπαθειών Ασφαλείας για ...ISSEL
 
Design and Development of an Authorization and Access Control Mechanism for C...
Design and Development of an Authorization and Access Control Mechanism for C...Design and Development of an Authorization and Access Control Mechanism for C...
Design and Development of an Authorization and Access Control Mechanism for C...ISSEL
 

More from ISSEL (20)

Ανίχνευση αντικειµένων από λίγα δείγµατα µε χρήση γραφηµάτων και τεχνικών ΜΕΤ...
Ανίχνευση αντικειµένων από λίγα δείγµατα µε χρήση γραφηµάτων και τεχνικών ΜΕΤ...Ανίχνευση αντικειµένων από λίγα δείγµατα µε χρήση γραφηµάτων και τεχνικών ΜΕΤ...
Ανίχνευση αντικειµένων από λίγα δείγµατα µε χρήση γραφηµάτων και τεχνικών ΜΕΤ...
 
Ανάπτυξη ∆υναµικού και Προσωποποιηµένου Συστήµατος Ερωταπαντήσεων µε Πηγή το ...
Ανάπτυξη ∆υναµικού και Προσωποποιηµένου Συστήµατος Ερωταπαντήσεων µε Πηγή το ...Ανάπτυξη ∆υναµικού και Προσωποποιηµένου Συστήµατος Ερωταπαντήσεων µε Πηγή το ...
Ανάπτυξη ∆υναµικού και Προσωποποιηµένου Συστήµατος Ερωταπαντήσεων µε Πηγή το ...
 
Ανάπτυξη Φίλτρων Ανεπιθύμητων Μηνυμάτων με Χρήση Τεχνικών Τεχνητής Νοημοσύνης
Ανάπτυξη Φίλτρων Ανεπιθύμητων Μηνυμάτων με Χρήση Τεχνικών Τεχνητής ΝοημοσύνηςΑνάπτυξη Φίλτρων Ανεπιθύμητων Μηνυμάτων με Χρήση Τεχνικών Τεχνητής Νοημοσύνης
Ανάπτυξη Φίλτρων Ανεπιθύμητων Μηνυμάτων με Χρήση Τεχνικών Τεχνητής Νοημοσύνης
 
Ανάπτυξη Ελληνικών Μοντέλων Εντοπισμού Ρητορικής Μίσους.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...
 
ΣΧΕΔΙΑΣΗ ΚΑΙ ΑΝΑΠΤΥΞΗ ΜΗΧΑΝΙΣΜΟΥ ΑΥΤΟΜΑΤΟΠΟΙΗΣΗΣ ΤΗΣ ΑΝΑΠΤΥΞΗΣ ΓΡΑΦΙΚΩΝ ΕΝΤΟΛ...
ΣΧΕΔΙΑΣΗ ΚΑΙ ΑΝΑΠΤΥΞΗ ΜΗΧΑΝΙΣΜΟΥ ΑΥΤΟΜΑΤΟΠΟΙΗΣΗΣ ΤΗΣ ΑΝΑΠΤΥΞΗΣ ΓΡΑΦΙΚΩΝ ΕΝΤΟΛ...ΣΧΕΔΙΑΣΗ ΚΑΙ ΑΝΑΠΤΥΞΗ ΜΗΧΑΝΙΣΜΟΥ ΑΥΤΟΜΑΤΟΠΟΙΗΣΗΣ ΤΗΣ ΑΝΑΠΤΥΞΗΣ ΓΡΑΦΙΚΩΝ ΕΝΤΟΛ...
ΣΧΕΔΙΑΣΗ ΚΑΙ ΑΝΑΠΤΥΞΗ ΜΗΧΑΝΙΣΜΟΥ ΑΥΤΟΜΑΤΟΠΟΙΗΣΗΣ ΤΗΣ ΑΝΑΠΤΥΞΗΣ ΓΡΑΦΙΚΩΝ ΕΝΤΟΛ...
 
Static Analysis of Python code and Identification of Potential Security Vulne...
Static Analysis of Python code and Identification of Potential Security Vulne...Static Analysis of Python code and Identification of Potential Security Vulne...
Static Analysis of Python code and Identification of Potential Security Vulne...
 
Στατική Ανάλυση Κώδικα Python και Αναγνώριση Πιθανών Ευπαθειών Ασφαλείας για ...
Στατική Ανάλυση Κώδικα Python και Αναγνώριση Πιθανών Ευπαθειών Ασφαλείας για ...Στατική Ανάλυση Κώδικα Python και Αναγνώριση Πιθανών Ευπαθειών Ασφαλείας για ...
Στατική Ανάλυση Κώδικα Python και Αναγνώριση Πιθανών Ευπαθειών Ασφαλείας για ...
 
Design and Development of an Authorization and Access Control Mechanism for C...
Design and Development of an Authorization and Access Control Mechanism for C...Design and Development of an Authorization and Access Control Mechanism for C...
Design and Development of an Authorization and Access Control Mechanism for C...
 

Applying Data Mining Techniques on Software Repositories to Extract Design and Evolution Patterns

  • 1. Εφαρμογή Τεχνικών Εξόρυξης Δεδομένων σε Αποθήκες Λογισμικού με σκοπό την Εξαγωγή Προτύπων Σχεδίασης και Εξέλιξης ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εργαστήριο Επεξεργασίας Πληροφορίας και Υπολογισμών Διπλωματική Εργασία Φοιτητής: Καγιάφας Νικόλαος Αριθμός Ειδικού Μητρώου (A.E.M.): 8817 Επιβλέποντες: Συμεωνίδης Ανδρέας, Αναπληρωτής Καθηγητής Διαμαντόπουλος Θεμιστοκλής, Μεταδιδακτορικός Ερευνητής Ομάδα Ευφυών Συστημάτων και Τεχνολογίας Λογισμικού Θεσσαλονίκη, 14 Απριλίου 2021
  • 2. Διάρθρωση Παρουσίασης • Εισαγωγή • Υλοποίηση του Συστήματος – Μεθοδολογία • Πειράματα και Αποτελέσματα • Συμπεράσματα • Μελλοντική Εργασία 2 Εφαρμογή τεχνικών εξόρυξης δεδομένων σε αποθήκες λογισμικού με σκοπό την εξαγωγή προτύπων σχεδίασης και εξέλιξης Θεσσαλονίκη, Απρίλιος 2021
  • 3. Διάρθρωση Παρουσίασης Εισαγωγή Υλοποίηση του Συστήματος – Μεθοδολογία Πειράματα και Αποτελέσματα Συμπεράσματα Μελλοντική Εργασία 3 Εφαρμογή τεχνικών εξόρυξης δεδομένων σε αποθήκες λογισμικού με σκοπό την εξαγωγή προτύπων σχεδίασης και εξέλιξης Θεσσαλονίκη, Απρίλιος 2021
  • 4. Κίνητρο – Περιγραφή του Προβλήματος 4 Εφαρμογή τεχνικών εξόρυξης δεδομένων σε αποθήκες λογισμικού με σκοπό την εξαγωγή προτύπων σχεδίασης και εξέλιξης Θεσσαλονίκη, Απρίλιος 2021 • Αποθήκες λογισμικού στο Διαδίκτυο, μία πλούσια πηγή δεδομένων • Συνεργασία μεταξύ των προγραμματιστών • Διενέργεια αλλαγών για βελτίωση, διόρθωση και εξέλιξη ενός έργου λογισμικού Εύρεση συχνών τύπων αλλαγών Εξέταση σχεδιαστικών αρχών για την οικοδόμηση ενός προγράμματος Κατανόηση και επίλυση παρόμοιων προβλημάτων Μοτίβα αλλαγών Διόρθωση λαθών Συστηματικές τροποποιήσεις Βελτίωση χωρίς αλλαγές στη λειτουργικότητα Χρήση υπαρχόντων σχολίων Αλλαγές στην αρχιτεκτονική • Δεν έχουν εξεταστεί σε βάθος • Δυνατότητα ανίχνευσης προτύπων σχεδίασης και εξέλιξης λογισμικού • Τίθενται οι βάσεις για ανάπτυξη εργαλείων προτάσεων αλλαγών στην αρχιτεκτονική
  • 5. Στόχοι της διπλωματικής 5 Εφαρμογή τεχνικών εξόρυξης δεδομένων σε αποθήκες λογισμικού με σκοπό την εξαγωγή προτύπων σχεδίασης και εξέλιξης Θεσσαλονίκη, Απρίλιος 2021 Εύρεση συχνών σχεδιαστικών προτύπων και προτύπων εξέλιξης Παρακολούθηση της εξέλιξης των σχέσεων μεταξύ των κλάσεων Υλοποίηση εργαλείου εξαγωγής των σχέσεων ανάμεσα στις διάφορες κλάσεις ενός προγράμματος Επιλογή και άντληση του κατάλληλου συνόλου δεδομένων Ανάλυση των εξαγόμενων προτύπων Συλλογή στοιχείων σχετικά με τη σημασιολογία και τον στόχο τους Ενίσχυση της δυνατότητας κατανόησης του προγράμματος στο οποίο χρησιμοποιούνται (program comprehension) Χρησιμοποιούν σήμερα οι προγραμματιστές πρότυπα, συνειδητά ή μη; Αν ναι, υπάρχουν και πρότυπα που δεν είναι μέχρι σήμερα γνωστά;
  • 6. Διάρθρωση Παρουσίασης Εισαγωγή Υλοποίηση του Συστήματος – Μεθοδολογία Πειράματα και Αποτελέσματα Συμπεράσματα Μελλοντική Εργασία 6 Εφαρμογή τεχνικών εξόρυξης δεδομένων σε αποθήκες λογισμικού με σκοπό την εξαγωγή προτύπων σχεδίασης και εξέλιξης Θεσσαλονίκη, Απρίλιος 2021
  • 7. Αρχιτεκτονική του Συστήματος 7 Εφαρμογή τεχνικών εξόρυξης δεδομένων σε αποθήκες λογισμικού με σκοπό την εξαγωγή προτύπων σχεδίασης και εξέλιξης Θεσσαλονίκη, Απρίλιος 2021
  • 8. Επιλογή και άντληση των κατάλληλων δεδομένων 8 Εφαρμογή τεχνικών εξόρυξης δεδομένων σε αποθήκες λογισμικού με σκοπό την εξαγωγή προτύπων σχεδίασης και εξέλιξης Θεσσαλονίκη, Απρίλιος 2021 Δημοφιλέστερη πλατφόρμα φιλοξενίας κώδικα με παραπάνω από 56M χρήστες και 100M αποθετήρια 3000 πιο δημοφιλή έργα λογισμικού Καλά σχεδιασμένη δομή, σωστές τεχνικές, αποτελεσματικότητα Γραμμένα κατά κύριο λόγο στην Java GitHub, GitLab, Assembla, SourceForge επιλογή εκείνων με 15 έως 80 commits Επεξεργασία και αρχειοθέτηση των αλλαγών κάθε έργου
  • 9. Το εργαλείο εξαγωγής σχέσεων 9 Εφαρμογή τεχνικών εξόρυξης δεδομένων σε αποθήκες λογισμικού με σκοπό την εξαγωγή προτύπων σχεδίασης και εξέλιξης Θεσσαλονίκη, Απρίλιος 2021 Abstract Syntax Tree Επίπεδο αφαιρετικότητας κλάσεων (Abstraction level of classes): Normal, Abstract, Interface, Unknown • Εξαγωγή σχέσεων ανάμεσα στις ενδογενείς κλάσεις ενός προγράμματος • Δυνατότητα επιλογής να συμπεριληφθούν και εκείνες ανάμεσα στις ενδογενείς και τις εξωγενείς κλάσεις (προέρχονται από εξωτερικές βιβλιοθήκες) Κατευθυνόμενοι γράφοι με ετικέτες σε κόμβους και ακμές…??
  • 10. Γραφική απεικόνιση των εξαγόμενων σχέσεων 10 Εφαρμογή τεχνικών εξόρυξης δεδομένων σε αποθήκες λογισμικού με σκοπό την εξαγωγή προτύπων σχεδίασης και εξέλιξης Θεσσαλονίκη, Απρίλιος 2021 • Χρήση του εργαλείου Graphviz • Ενδεικτική απεικόνιση των σχέσεων μεταξύ των ενδογενών κλάσεων του προγράμματος kikoso/android- stackblur • Εξαγωγή στοιχείων σχετικά με την αρχιτεκτονική του
  • 11. Παρακολούθηση της εξέλιξης των σχέσεων - 1 11 Εφαρμογή τεχνικών εξόρυξης δεδομένων σε αποθήκες λογισμικού με σκοπό την εξαγωγή προτύπων σχεδίασης και εξέλιξης Θεσσαλονίκη, Απρίλιος 2021 Στιγμιότυπο του προγράμματος πριν το commit i Στιγμιότυπο του προγράμματος μετά το commit i commit i Σχέσεις πριν το commit i Σχέσεις μετά το commit i Σχέσεις που δεν υπάρχουν μετά Σχέσεις που δεν υπάρχουν πριν Αφαιρούμενες (-) Προστιθέμενες (+) • Λαμβάνονται υπ’ όψιν μόνο τα αρχεία των commits του κυρίου βρόχου (main branch) • Αλλαγή ενός ή περισσότερων αρχείων Java σε ένα commit • Χρήση του εργαλείου pydriller
  • 12. Παρακολούθηση της εξέλιξης των σχέσεων - 2 12 Εφαρμογή τεχνικών εξόρυξης δεδομένων σε αποθήκες λογισμικού με σκοπό την εξαγωγή προτύπων σχεδίασης και εξέλιξης Θεσσαλονίκη, Απρίλιος 2021 Τύποι τροποποιήσεων • Delete: Διαγραφή του εν λόγω αρχείου από το πρόγραμμα • Modify: Διαφοροποίηση ορισμένων τμημάτων του κώδικα • Rename: Αλλαγή της θέσης ή/και του ονόματος του συγκεκριμένου αρχείου ή/και ορισμένων τμημάτων του κώδικα σε αυτό • Add: Προσθήκη νέου αρχείου στο πρόγραμμα Στη διαφορά των σχέσεων δε λαμβάνονται υπ’ όψιν εκείνες που προέρχονται από Add ή Delete Δεν μας ενδιαφέρουν σχέσεις που δεν περνούν από το στάδιο της εξέλιξης Σημαντικές μόνο για αλλαγή της μορφής του προγράμματος ανά commit
  • 13. Εξόρυξη δεδομένων με τη βοήθεια του gSpan - 1 13 Εφαρμογή τεχνικών εξόρυξης δεδομένων σε αποθήκες λογισμικού με σκοπό την εξαγωγή προτύπων σχεδίασης και εξέλιξης Θεσσαλονίκη, Απρίλιος 2021 • gSpan (graph-based Substructure pattern mining) • D: ένα σύνολο γράφων • support(g): ο αριθμός των γράφων του D, στους οποίους ο g εμφανίζεται ως υπογράφος • minSup: ένα κάτω όριο συχνότητας που επιλέγεται από τον χρήστη στην είσοδο • Ανίχνευση μόνο των συχνών υπογράφων που είναι συνδεδεμένοι • Δεν υπάρχει πρόβλημα, όταν ένας γράφος του D είναι μη συνδεδεμένος • Μείωση του χρόνου εκτέλεσης σε σχέση με προγενέστερους αλγορίθμους ακόμα και κατά μία τάξη μεγέθους • Σε ποιες τεχνικές όμως στηρίζει την καινοτομία του, δεδομένης της δυσκολίας του προβλήματος; Πρόβλημα Εύρεση όλων των υπογράφων g, έτσι ώστε support(g) ≥ minSup Όσο το minSup ↓, τόσο ο χρόνος εκτέλεσης ↑ • Κάθε γράφος αντιστοιχεί σε έναν κωδικό DFS (Depth-First Search) • Λεξικογραφική ταξινόμηση όλων των παραπάνω κωδικών • Με βάση αυτήν τη σειρά, κατασκευάζεται ένα δέντρο αναζήτησης
  • 14. Εξόρυξη δεδομένων με τη βοήθεια του gSpan - 2 14 Εφαρμογή τεχνικών εξόρυξης δεδομένων σε αποθήκες λογισμικού με σκοπό την εξαγωγή προτύπων σχεδίασης και εξέλιξης Θεσσαλονίκη, Απρίλιος 2021 Ds το σύνολο όλων των γράφων που περιέχουν τον s ως υπογράφο Αναδρομική κλήση για εύρεση όλων των συχνών υπογράφων Μείωση μεγέθους του συνόλου γράφων S το σύνολο των αποτελεσμάτων D το σύνολο όλων των γράφων Αρχικά βήματα του αλγορίθμου
  • 15. Διάρθρωση Παρουσίασης Εισαγωγή Υλοποίηση του Συστήματος – Μεθοδολογία Πειράματα και Αποτελέσματα Συμπεράσματα Μελλοντική Εργασία 15 Εφαρμογή τεχνικών εξόρυξης δεδομένων σε αποθήκες λογισμικού με σκοπό την εξαγωγή προτύπων σχεδίασης και εξέλιξης Θεσσαλονίκη, Απρίλιος 2021
  • 16. Εύρεση συχνών σχεδιαστικών προτύπων 16 Εφαρμογή τεχνικών εξόρυξης δεδομένων σε αποθήκες λογισμικού με σκοπό την εξαγωγή προτύπων σχεδίασης και εξέλιξης Θεσσαλονίκη, Απρίλιος 2021 Σύνολο δεδομένων 576 έργα λογισμικού 576 γράφοι 576 ομάδες σχέσεων μεταξύ ενδογενών κλάσεων • Εφαρμογή του gSpan για διάφορα επίπεδα υποστήριξης • Για χαμηλές τιμές υποστήριξης ο αλγόριθμος δεσμεύει αρκετή μνήμη και καθυστερεί • Ανάγκη διαμόρφωσης του συνόλου δεδομένων → προγράμματα με 100 έως και 400 σχέσεις • Προκύπτουν κυρίως πρότυπα με χαρακτηρισμούς κλάσεων “Normal” • Θεώρηση ότι οι χαρακτηρισμοί Abstract και Interface ταυτίζονται • Προκύπτουν πρότυπα με Abstracted ( Abstract or Interface) χαρακτηρισμούς …
  • 17. Ανάλυση των εξαγόμενων σχεδιαστικών προτύπων - 1 17 Εφαρμογή τεχνικών εξόρυξης δεδομένων σε αποθήκες λογισμικού με σκοπό την εξαγωγή προτύπων σχεδίασης και εξέλιξης Θεσσαλονίκη, Απρίλιος 2021 • Δενδροειδές σχεδιαστικό πρότυπο, 162 από 576 έργα λογισμικού • Κεντρική κλάση (Α) → επίτευξη στόχων του προγράμματος • Χρήση αντικειμένων δύο άλλων κλάσεων (Β και D) → πιο ειδικοί στόχοι • Οι B και D επικαλούνται δύο ακόμη με τη σειρά τους (C και E) Παράδειγμα Διαχείριση πληροφοριών για την πρόσβαση υπαλλήλων εταιρίας σε έγγραφα Πληροφορίες για τους υπαλλήλους Αφαίρεση δικαιωμάτων πρόσβασης με κάποια κριτήρια
  • 18. Ανάλυση των εξαγόμενων σχεδιαστικών προτύπων - 2 18 Εφαρμογή τεχνικών εξόρυξης δεδομένων σε αποθήκες λογισμικού με σκοπό την εξαγωγή προτύπων σχεδίασης και εξέλιξης Θεσσαλονίκη, Απρίλιος 2021 Παράδειγμα • Εφαρμογή σε πρόγραμμα γραφικής επεξεργασίας • Υλοποίηση κλάσης για την απεικόνιση αντικειμένων ή κειμένου • Δημιουργία αντικειμένων όπως πλαίσιο κειμένου, γραμμές ή σχήματα • Κλάση ευθείας γραμμής κληρονομεί στοιχεία από μία αφηρημένη κλάση → γραμμή Ομοιότητα με γνωστό πρότυπο • Δημιουργικό πρότυπο Factory Method • Κλάση D → Creator • Κλάση C → ConcreteCreator • Κλάση E → ConcreteProduct • Κλάση F → Product 25 από 105 προγράμματα με 100-400 σχέσεις
  • 19. Ανάλυση των εξαγόμενων σχεδιαστικών προτύπων - 3 19 Εφαρμογή τεχνικών εξόρυξης δεδομένων σε αποθήκες λογισμικού με σκοπό την εξαγωγή προτύπων σχεδίασης και εξέλιξης Θεσσαλονίκη, Απρίλιος 2021 Ομοιότητα με γνωστό πρότυπο • Δομικό πρότυπο Façade • 35 από 105 έργα λογισμικού με αριθμό σχέσεων από 100 έως και 400 • Κλάση Α ένας δίαυλος επικοινωνίας με όλες τις υπόλοιπες κλάσεις (B, C, D, E, F) • B, C, D, E, F → ένα υποσύστημα που επικοινωνεί με τον υπόλοιπο κόσμο μέσω της Α • Ο υπόλοιπος κόσμος δεν χρειάζεται πληροφορίες για το υποσύστημα, τον ενδιαφέρουν μόνο τα αποτελέσματα • Διαχωρισμός συστήματος σε υποσυστήματα → μείωση της πολυπλοκότητας
  • 20. Εύρεση συχνών προτύπων εξέλιξης σχέσεων 20 Εφαρμογή τεχνικών εξόρυξης δεδομένων σε αποθήκες λογισμικού με σκοπό την εξαγωγή προτύπων σχεδίασης και εξέλιξης Θεσσαλονίκη, Απρίλιος 2021 Σύνολο δεδομένων 2693 commits με αλλαγές σχέσεων 2693 γράφοι 2693 ομάδες προσθαφαιρούμενων σχέσεων • Εφαρμογή του αλγορίθμου gSpan για διάφορα επίπεδα υποστήριξης • Ανάγκη για εντοπισμό μεγαλύτερων προτύπων → μείωση του επιπέδου υποστήριξης • Προσαρμογή του συνόλου δεδομένων • Φιλτράρισμα ως προς τον αριθμό των διαφοροποιημένων σχέσεων • Έλλειψη προτύπων εξέλιξης με Abstracted (Abstract ή Interface) χαρακτηρισμούς • Η θεώρηση Abstract = Interface δεν προσφέρει ιδιαίτερη βοήθεια
  • 21. Ανάλυση των εξαγόμενων προτύπων εξέλιξης 21 Εφαρμογή τεχνικών εξόρυξης δεδομένων σε αποθήκες λογισμικού με σκοπό την εξαγωγή προτύπων σχεδίασης και εξέλιξης Θεσσαλονίκη, Απρίλιος 2021 • Κινήσεις από τους προγραμματιστές για δημιουργία κάποιων από τα πρότυπα που αναλύθηκαν προηγουμένως • Στόχος ο σχηματισμός κάποιων δομών ή η απαλλαγή από αυτές • Διεύρυνση δυνατοτήτων μίας κλάσης ή περιορισμός τους 188 commits από 2693 43 από 683 commits με αριθμό διαφοροποιημένων σχέσεων 8-40 14 από 683 commits με αριθμό διαφοροποιημένων σχέσεων 8-40 Δενδροειδής σχεδιαστική δομή Χρήση λανθασμένου αντικειμένου, διαγραφή, χρήση του σωστού
  • 22. Διάρθρωση Παρουσίασης Εισαγωγή Υλοποίηση του Συστήματος – Μεθοδολογία Πειράματα και Αποτελέσματα Συμπεράσματα Μελλοντική Εργασία 22 Εφαρμογή τεχνικών εξόρυξης δεδομένων σε αποθήκες λογισμικού με σκοπό την εξαγωγή προτύπων σχεδίασης και εξέλιξης Θεσσαλονίκη, Απρίλιος 2021
  • 23. Συμπεράσματα 23 Εφαρμογή τεχνικών εξόρυξης δεδομένων σε αποθήκες λογισμικού με σκοπό την εξαγωγή προτύπων σχεδίασης και εξέλιξης Θεσσαλονίκη, Απρίλιος 2021 • Εντοπισμός συχνών σχεδιαστικών λύσεων και μοτίβων εξέλιξης πηγαίου κώδικα • Ανακάλυψη μοτίβων σχεδίασης που δεν ήταν μέχρι σήμερα γνωστά • Ύπαρξη προτύπων σχεδίασης που χρησιμοποιούν οι προγραμματιστές, χωρίς να το συνειδητοποιούν • Προκύπτουν χρήσιμα πρότυπα, τόσο στον τομέα της σχεδίασης όσο και της εξέλιξης • Η χρηστικότητά τους είναι εμφανής από τον πολύ συχνό βαθμό εμφάνισής τους • Η ανάλυση των προτύπων που εντοπίζονται διευκολύνει την κατανόηση του προγράμματος στο οποίο συναντώνται (program comprehension)
  • 24. Διάρθρωση Παρουσίασης Εισαγωγή Υλοποίηση του Συστήματος – Μεθοδολογία Πειράματα και Αποτελέσματα Συμπεράσματα Μελλοντική Εργασία 24 Εφαρμογή τεχνικών εξόρυξης δεδομένων σε αποθήκες λογισμικού με σκοπό την εξαγωγή προτύπων σχεδίασης και εξέλιξης Θεσσαλονίκη, Απρίλιος 2021
  • 25. Μελλοντική εργασία 25 Εφαρμογή τεχνικών εξόρυξης δεδομένων σε αποθήκες λογισμικού με σκοπό την εξαγωγή προτύπων σχεδίασης και εξέλιξης Θεσσαλονίκη, Απρίλιος 2021 • Εκπαίδευση του συστήματος, ώστε να προτείνει μόνο του αλλαγές στις σχέσεις κλάσεων που δίνονται στην είσοδό του • Εκμετάλλευση περισσότερων σημασιολογικών στοιχείων • Προσθήκη δεδομένων σχετιζόμενων με τη συντακτική δομή μίας κλάσης • Ενσωμάτωση της γνώσης και της εμπειρίας προγραμματιστών (human-like way of thinking) • Χρήση των προτύπων για την κατανόηση ενός προγράμματος που δίνεται στην είσοδο • Ανακάλυψη περισσότερων μοτίβων εξέλιξης με χαρακτηρισμούς πέρα από τον Normal • Επέκταση του συστήματος και σε άλλες αντικειμενοστραφείς γλώσσες πέραν της Java Βασικός στόχος της περιοχής η αυτοματοποιημένη δημιουργία σχεδιαστικών προτάσεων