SlideShare une entreprise Scribd logo
1  sur  20
ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ & ΜΗΧΑΝΙΚΩΝ
ΥΠΟΛΟΓΙΣΤΩΝ
ΤΟΜΕΑΣ ΗΛΕΚΤΡΟΝΙΚΗΣ & ΥΠΟΛΟΓΙΣΤΩΝ
ΕΡΓΑΣΤΗΡΙΟ ΕΠΕΞΕΡΓΑΣΙΑΣ ΠΛΗΡΟΦΟΡΙΑΣ ΚΑΙ
ΥΠΟΛΟΓΙΣΜΩΝ
Ανάλυση ποιότητας πηγαίου κώδικα σε
πολύ-γλωσσικά έργα λογισμικού
1
Φεγγομύτης Θωμάς
ΑΕΜ: 8003
Υπό την επίβλεψη του Αναπληρωτή Καθηγητή
κ. Συμεωνίδη Ανδρέα
Και του υποψηφίου διδάκτορα
κ. Παπαμιχαήλ Μιχαήλ
issel
Στη σύγχρονη εποχή
 Διαδικασία ανάπτυξης λογισμικού
 Επαναχρησιμοποίηση τμημάτων κώδικα
 Ανάγκη αξιολόγησης της ποιότητας
 Αυξανόμενες απαιτήσεις χρηστών
 Πολύ-γλωσσικά έργα λογισμικού
 Αύξηση πολυπλοκότητας αξιολόγησης
2
Κίνητρο
 Υπάρχουσες πρακτικές αξιολόγησης
 Ταύτιση έννοιας έργο λογισμικού με γλώσσα
υλοποίησης
 Εργαλεία στατικής ανάλυσης
 Αξιολόγηση ως προς μία γλώσσα
προγραμματισμού
3
Στόχοι
 Σχεδίαση συστήματος αξιολόγησης ποιότητας πολύ-
γλωσσικών έργων λογισμικού
 Συνυπολογισμός κλήσεων μεταξύ των τμημάτων
πηγαίου κώδικα διαφορετικών γλωσσών
προγραμματισμού
4
Μεθοδολογία
 Εφαρμογή στατικής ανάλυσης
 Ανάλυση προγράμματος χωρίς την εκτέλεσή του
 Μελέτη διαφοροποιήσεων των μετρικών
 Proof of Concept
 Python-Java projects
 SourceMeter
5
Αρχείο CSV που παράγεται
από το SourceMeter και
περιέχει τις μετρικές
στατικής ανάλυσης για
κάθε κλάση του έργου
λογισμικού
PYTHON
Παράδειγμα
6
testByteString()
Method
UTFExample
Class
getUTFValue()
Method
CC=2
CC=3
CC=5
JAVA
Δομή Του Συστήματος
7
Downloader
Python
Analyzer
Java
Analyzer
Parser
Final
Evaluator
Final Score
Static
Metrics
Static
Metrics
Modified
Downloader
 Χρήση API του GitHub για τη δημιουργία του Dataset μέσω της λήψης των 100
δημοφιλέστερων projects αναπτυγμένα σε Python και Java
80%
10%
20%
30%
40%
50%
60%
70%
80%
90%
100%
TLLOC (Package Level)
JAVA PYTHON
Parser
1. Εύρεση κλήσεων:
 Jython
 Py4J
9
from [ Java_Class Package ] import [ Java_Class ]
Αρχείο CSV που περιλαμβάνει
τις κλήσεις μεταξύ κλάσεων
“gateway.jvm.py4j”
Parser
2. Επεξεργασία στατικών μετρικών
10
Final Evaluator*
 Μετρικές για τον
υπολογισμό του
Score:
11
Όνομα Μετρικής Συντομογραφία Κατηγορία Μετρικής
Weighted Methods per Class WMC Complexity
McCabe’s Cyclomatic Complexity McCC Complexity
Nesting Level NL Complexity
Number of Incoming Invocations NII Coupling
Response set For Class RFC Coupling
Coupling Between Object classes CBO Coupling
Total Comment Density TCD Documentation
Documentation Lines of Code DLOC Documentation
Total Comment Lines of Code TCLOC Documentation
Depth of Inheritance Tree DIT Inheritance
Number of Children NOC Inheritance
Number of Parameters NUMPAR Size
Total Number of Getters TNG Size
Total Number of Attributes TNA Size
Number of Public Attributes NPA Size
Total Logical Lines of Code TLLOC Size
Total Number of Local Setters TNLS Size
* "Assessing the User-Perceived Quality
of Source Code Components using
Static Analysis Metrics” published by
Valasia Dimaridou, Alexandros-
Charalampos Kyprianidis, Michail
Papamichail, Themistoklis
Diamantopoulos and Andreas
Symeonidis
Final Evaluator
 Scores
 Complexity
 Coupling
 Documentation
 Inheritance
 Size
12
Complexity
Score
WMC McCC NL
Πειράματα
1. Μελέτη επίδρασης των κλήσεων στις μετρικές
2. Μελέτη διαφοροποίησης των scores
3. Εφαρμογή συνολικής μεθοδολογίας σε 3 projects
(case study) και σύγκριση αποτελεσμάτων
13
Μεταβολή Μετρικών – 1ο Πείραμα
 Αύξηση της πολυπλοκότητας στο
70% των περιπτώσεων
 Μέση τιμή της μεταβολής ανά
κλάση στο 86%.
14
0
2
4
6
8
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
Class
McCC
McCC McCC'
-100
0
100
200
300
400
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
Μεταβολή (%) της McCC
Μεταβολή Βαθμού Ποιότητας – 2ο Πείραμα
 Αύξηση της πολυπλοκότητας στο
75% των περιπτώσεων
 Μείωση του Complexity Score
κατά μέσο όρο ανά κλάση στο 31%
15
0
0.1
0.2
0.3
0.4
0.5
0.6
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
Class
Complexity Score
SCORE SCORE'
-80
-60
-40
-20
0
20
40
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
%
CLASS
Μεταβολή (%) Complexity Score
Μεταβολή Βαθμού Ποιότητας – 2ο Πείραμα
16
0
0.2
0.4
0.6
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
Class
Coupling Score
SCORE SCORE'
0
0.2
0.4
0.6
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
Class
Documentation Score
SCORE SCORE'
0
0.2
0.4
0.6
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
Class
Inheritance Score
SCORE SCORE'
0
0.5
1
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
Class
Size Score
SCORE SCORE'
 Μείωση κατά
19%
 Αύξηση κατά
30%
 Αύξηση κατά
44%
 Αύξηση κατά
137%
Σύγκριση Μεταβολών – 3ο Πείραμα
 Στα δύο έργα λογισμικού:
 Αύξηση πολυπλοκότητας και
σύζευξης (μείωση score)
 Αύξηση βαθμού ποιότητας στις
υπόλοιπες κατηγορίες 17
 Στο project bartdag:
 Συνολική βελτίωση του
βαθμού ποιότητας
 Όλες οι κατηγορίες
εμφανίζουν ποσοστιαία
αύξηση
Συμπεράσματα
 Το σύστημα είναι ικανό να:
 Εντοπίζει τις κλήσεις μεταξύ κλάσεων της Python και
Java
 Τροποποιεί αξιόπιστα τις στατικές μετρικές
λαμβάνοντας υπόψιν τις προαναφερθείσες κλήσεις
 Παρέχει συνολική και αντιπροσωπευτική αξιολόγηση
ποιότητας σε ένα πολύ-γλωσσικό έργο λογισμικού
18
Ανοικτά Θέματα
 Εφαρμογή για άλλες γλώσσες προγραμματισμού
 Εφαρμογή για επιπλέον τρόπους cross-language links
 Μελέτη περισσότερων έργων λογισμικού στη
μοντελοποίηση
 Επέκταση σε περισσότερα επίπεδα (πακέτο, μέθοδος)
19
Σας ευχαριστώ για την προσοχή σας!
20

Contenu connexe

Similaire à Fengomytis Thomas

Μηχανισμοί αυτοματοποίησης διαδικασιών σχεδίασης, υλοποίησης και ανάπτυξης λο...
Μηχανισμοί αυτοματοποίησης διαδικασιών σχεδίασης, υλοποίησης και ανάπτυξης λο...Μηχανισμοί αυτοματοποίησης διαδικασιών σχεδίασης, υλοποίησης και ανάπτυξης λο...
Μηχανισμοί αυτοματοποίησης διαδικασιών σχεδίασης, υλοποίησης και ανάπτυξης λο...
ISSEL
 
Δημιουργία Πλατφόρμας για τη Διεξαγωγή Online Διαγωνισμών Προγραμματισμού
Δημιουργία Πλατφόρμας για τη Διεξαγωγή Online Διαγωνισμών ΠρογραμματισμούΔημιουργία Πλατφόρμας για τη Διεξαγωγή Online Διαγωνισμών Προγραμματισμού
Δημιουργία Πλατφόρμας για τη Διεξαγωγή Online Διαγωνισμών Προγραμματισμού
Stesia Papavasileiou
 
Εφαρµογή τεχνικών µηχανικής µάθησης και ευφυούς διαχείρισης πληροφορίας για τ...
Εφαρµογή τεχνικών µηχανικής µάθησης και ευφυούς διαχείρισης πληροφορίας για τ...Εφαρµογή τεχνικών µηχανικής µάθησης και ευφυούς διαχείρισης πληροφορίας για τ...
Εφαρµογή τεχνικών µηχανικής µάθησης και ευφυούς διαχείρισης πληροφορίας για τ...
ISSEL
 
Ανίχνευση και Ανάλυση Συναισθήματος Πτυχών Κριτικών
Ανίχνευση και Ανάλυση Συναισθήματος Πτυχών ΚριτικώνΑνίχνευση και Ανάλυση Συναισθήματος Πτυχών Κριτικών
Ανίχνευση και Ανάλυση Συναισθήματος Πτυχών Κριτικών
ISSEL
 
Aspect-Based Sentiment Analysis for Reviews
Aspect-Based Sentiment Analysis for ReviewsAspect-Based Sentiment Analysis for Reviews
Aspect-Based Sentiment Analysis for Reviews
ISSEL
 
Ανάπτυξη Εφαρµογής Προφίλ Μηχανικών Λογισµικού από ∆εδοµένα Αποθετηρίων Λογισ...
Ανάπτυξη Εφαρµογής Προφίλ Μηχανικών Λογισµικού από ∆εδοµένα Αποθετηρίων Λογισ...Ανάπτυξη Εφαρµογής Προφίλ Μηχανικών Λογισµικού από ∆εδοµένα Αποθετηρίων Λογισ...
Ανάπτυξη Εφαρµογής Προφίλ Μηχανικών Λογισµικού από ∆εδοµένα Αποθετηρίων Λογισ...
ISSEL
 
Ανάλυση και μοντελοποίηση προφίλ προγραμματιστών μέσω τεχνικών εξόρυξης γνώση...
Ανάλυση και μοντελοποίηση προφίλ προγραμματιστών μέσω τεχνικών εξόρυξης γνώση...Ανάλυση και μοντελοποίηση προφίλ προγραμματιστών μέσω τεχνικών εξόρυξης γνώση...
Ανάλυση και μοντελοποίηση προφίλ προγραμματιστών μέσω τεχνικών εξόρυξης γνώση...
ISSEL
 

Similaire à Fengomytis Thomas (20)

Μηχανισμοί αυτοματοποίησης διαδικασιών σχεδίασης, υλοποίησης και ανάπτυξης λο...
Μηχανισμοί αυτοματοποίησης διαδικασιών σχεδίασης, υλοποίησης και ανάπτυξης λο...Μηχανισμοί αυτοματοποίησης διαδικασιών σχεδίασης, υλοποίησης και ανάπτυξης λο...
Μηχανισμοί αυτοματοποίησης διαδικασιών σχεδίασης, υλοποίησης και ανάπτυξης λο...
 
Βασίλειος Λώλης 5638
Βασίλειος Λώλης 5638Βασίλειος Λώλης 5638
Βασίλειος Λώλης 5638
 
Μιχαήλ Παπαμιχαήλ
Μιχαήλ ΠαπαμιχαήλΜιχαήλ Παπαμιχαήλ
Μιχαήλ Παπαμιχαήλ
 
Anastasios Kakouris
Anastasios KakourisAnastasios Kakouris
Anastasios Kakouris
 
Δημιουργία Πλατφόρμας για τη Διεξαγωγή Online Διαγωνισμών Προγραμματισμού
Δημιουργία Πλατφόρμας για τη Διεξαγωγή Online Διαγωνισμών ΠρογραμματισμούΔημιουργία Πλατφόρμας για τη Διεξαγωγή Online Διαγωνισμών Προγραμματισμού
Δημιουργία Πλατφόρμας για τη Διεξαγωγή Online Διαγωνισμών Προγραμματισμού
 
Elpida Falara
Elpida FalaraElpida Falara
Elpida Falara
 
Εφαρµογή τεχνικών µηχανικής µάθησης και ευφυούς διαχείρισης πληροφορίας για τ...
Εφαρµογή τεχνικών µηχανικής µάθησης και ευφυούς διαχείρισης πληροφορίας για τ...Εφαρµογή τεχνικών µηχανικής µάθησης και ευφυούς διαχείρισης πληροφορίας για τ...
Εφαρµογή τεχνικών µηχανικής µάθησης και ευφυούς διαχείρισης πληροφορίας για τ...
 
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 ...
 
Aristotelis Mikropoulos
Aristotelis MikropoulosAristotelis Mikropoulos
Aristotelis Mikropoulos
 
Charis Eleftheriadis. Towards evaluating Deep Neural Networks’ Robustness to ...
Charis Eleftheriadis. Towards evaluating Deep Neural Networks’ Robustness to ...Charis Eleftheriadis. Towards evaluating Deep Neural Networks’ Robustness to ...
Charis Eleftheriadis. Towards evaluating Deep Neural Networks’ Robustness to ...
 
Ανίχνευση και Ανάλυση Συναισθήματος Πτυχών Κριτικών
Ανίχνευση και Ανάλυση Συναισθήματος Πτυχών ΚριτικώνΑνίχνευση και Ανάλυση Συναισθήματος Πτυχών Κριτικών
Ανίχνευση και Ανάλυση Συναισθήματος Πτυχών Κριτικών
 
Aspect-Based Sentiment Analysis for Reviews
Aspect-Based Sentiment Analysis for ReviewsAspect-Based Sentiment Analysis for Reviews
Aspect-Based Sentiment Analysis for Reviews
 
Αλεξάνδρα Μπαλτζή 7485
Αλεξάνδρα Μπαλτζή 7485Αλεξάνδρα Μπαλτζή 7485
Αλεξάνδρα Μπαλτζή 7485
 
Ανάπτυξη Εφαρµογής Προφίλ Μηχανικών Λογισµικού από ∆εδοµένα Αποθετηρίων Λογισ...
Ανάπτυξη Εφαρµογής Προφίλ Μηχανικών Λογισµικού από ∆εδοµένα Αποθετηρίων Λογισ...Ανάπτυξη Εφαρµογής Προφίλ Μηχανικών Λογισµικού από ∆εδοµένα Αποθετηρίων Λογισ...
Ανάπτυξη Εφαρµογής Προφίλ Μηχανικών Λογισµικού από ∆εδοµένα Αποθετηρίων Λογισ...
 
Asynchronous online learning via moodle (in Greek)
Asynchronous online learning via moodle (in Greek)Asynchronous online learning via moodle (in Greek)
Asynchronous online learning via moodle (in Greek)
 
3D4AUTO_R4_Virtual Seminars GREEK.pptx
3D4AUTO_R4_Virtual Seminars GREEK.pptx3D4AUTO_R4_Virtual Seminars GREEK.pptx
3D4AUTO_R4_Virtual Seminars GREEK.pptx
 
Texnologia a gymnasiou ,τεχνολογία πρώτης γυμνασίου παρουσίαση του μαθήματος
Texnologia a gymnasiou ,τεχνολογία  πρώτης  γυμνασίου παρουσίαση του μαθήματος Texnologia a gymnasiou ,τεχνολογία  πρώτης  γυμνασίου παρουσίαση του μαθήματος
Texnologia a gymnasiou ,τεχνολογία πρώτης γυμνασίου παρουσίαση του μαθήματος
 
Ανάλυση και μοντελοποίηση προφίλ προγραμματιστών μέσω τεχνικών εξόρυξης γνώση...
Ανάλυση και μοντελοποίηση προφίλ προγραμματιστών μέσω τεχνικών εξόρυξης γνώση...Ανάλυση και μοντελοποίηση προφίλ προγραμματιστών μέσω τεχνικών εξόρυξης γνώση...
Ανάλυση και μοντελοποίηση προφίλ προγραμματιστών μέσω τεχνικών εξόρυξης γνώση...
 
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...
 
Ifigeneia Theodoridou
Ifigeneia TheodoridouIfigeneia Theodoridou
Ifigeneia Theodoridou
 

Plus de ISSEL

Implementation of a platform for assessing indoor spaces regarding their frie...
Implementation of a platform for assessing indoor spaces regarding their frie...Implementation of a platform for assessing indoor spaces regarding their frie...
Implementation of a platform for assessing indoor spaces regarding their frie...
ISSEL
 
Autonomous car position calculation with particle filters using traffic data ...
Autonomous car position calculation with particle filters using traffic data ...Autonomous car position calculation with particle filters using traffic data ...
Autonomous car position calculation with particle filters using traffic data ...
ISSEL
 
Ανίχνευση αντικειµένων από λίγα δείγµατα µε χρήση γραφηµάτων και τεχνικών ΜΕΤ...
Ανίχνευση αντικειµένων από λίγα δείγµατα µε χρήση γραφηµάτων και τεχνικών ΜΕΤ...Ανίχνευση αντικειµένων από λίγα δείγµατα µε χρήση γραφηµάτων και τεχνικών ΜΕΤ...
Ανίχνευση αντικειµένων από λίγα δείγµατα µε χρήση γραφηµάτων και τεχνικών ΜΕΤ...
ISSEL
 
Ανάπτυξη ∆υναµικού και Προσωποποιηµένου Συστήµατος Ερωταπαντήσεων µε Πηγή το ...
Ανάπτυξη ∆υναµικού και Προσωποποιηµένου Συστήµατος Ερωταπαντήσεων µε Πηγή το ...Ανάπτυξη ∆υναµικού και Προσωποποιηµένου Συστήµατος Ερωταπαντήσεων µε Πηγή το ...
Ανάπτυξη ∆υναµικού και Προσωποποιηµένου Συστήµατος Ερωταπαντήσεων µε Πηγή το ...
ISSEL
 
Ανάπτυξη Φίλτρων Ανεπιθύμητων Μηνυμάτων με Χρήση Τεχνικών Τεχνητής Νοημοσύνης
Ανάπτυξη Φίλτρων Ανεπιθύμητων Μηνυμάτων με Χρήση Τεχνικών Τεχνητής ΝοημοσύνηςΑνάπτυξη Φίλτρων Ανεπιθύμητων Μηνυμάτων με Χρήση Τεχνικών Τεχνητής Νοημοσύνης
Ανάπτυξη Φίλτρων Ανεπιθύμητων Μηνυμάτων με Χρήση Τεχνικών Τεχνητής Νοημοσύνης
ISSEL
 
Ανάπτυξη Ελληνικών Μοντέλων Εντοπισμού Ρητορικής Μίσους.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
 
ΣΧΕΔΙΑΣΗ ΚΑΙ ΑΝΑΠΤΥΞΗ ΜΗΧΑΝΙΣΜΟΥ ΑΥΤΟΜΑΤΟΠΟΙΗΣΗΣ ΤΗΣ ΑΝΑΠΤΥΞΗΣ ΓΡΑΦΙΚΩΝ ΕΝΤΟΛ...
ΣΧΕΔΙΑΣΗ ΚΑΙ ΑΝΑΠΤΥΞΗ ΜΗΧΑΝΙΣΜΟΥ ΑΥΤΟΜΑΤΟΠΟΙΗΣΗΣ ΤΗΣ ΑΝΑΠΤΥΞΗΣ ΓΡΑΦΙΚΩΝ ΕΝΤΟΛ...ΣΧΕΔΙΑΣΗ ΚΑΙ ΑΝΑΠΤΥΞΗ ΜΗΧΑΝΙΣΜΟΥ ΑΥΤΟΜΑΤΟΠΟΙΗΣΗΣ ΤΗΣ ΑΝΑΠΤΥΞΗΣ ΓΡΑΦΙΚΩΝ ΕΝΤΟΛ...
ΣΧΕΔΙΑΣΗ ΚΑΙ ΑΝΑΠΤΥΞΗ ΜΗΧΑΝΙΣΜΟΥ ΑΥΤΟΜΑΤΟΠΟΙΗΣΗΣ ΤΗΣ ΑΝΑΠΤΥΞΗΣ ΓΡΑΦΙΚΩΝ ΕΝΤΟΛ...
ISSEL
 

Plus de ISSEL (20)

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

Dernier

5ο Κεφάλαιο - Το Λογισμικό του Υπολογιστή.pptx
5ο Κεφάλαιο - Το Λογισμικό του Υπολογιστή.pptx5ο Κεφάλαιο - Το Λογισμικό του Υπολογιστή.pptx
5ο Κεφάλαιο - Το Λογισμικό του Υπολογιστή.pptx
Athina Tziaki
 

Dernier (10)

Σουρεαλιστικά ταξίδια μέσα από την τέχνη
Σουρεαλιστικά ταξίδια μέσα από την τέχνηΣουρεαλιστικά ταξίδια μέσα από την τέχνη
Σουρεαλιστικά ταξίδια μέσα από την τέχνη
 
ΙΣΤΟΡΙΑ Α΄ΓΥΜΝΑΣΙΟΥ : ΕΠΑΝΑΛΗΨΗ 2024
ΙΣΤΟΡΙΑ Α΄ΓΥΜΝΑΣΙΟΥ  : ΕΠΑΝΑΛΗΨΗ 2024ΙΣΤΟΡΙΑ Α΄ΓΥΜΝΑΣΙΟΥ  : ΕΠΑΝΑΛΗΨΗ 2024
ΙΣΤΟΡΙΑ Α΄ΓΥΜΝΑΣΙΟΥ : ΕΠΑΝΑΛΗΨΗ 2024
 
Σεβασμός .
Σεβασμός                                   .Σεβασμός                                   .
Σεβασμός .
 
ΙΣΤΟΡΙΑ Α' ΓΥΜΝΑΣΙΟΥ : ΕΠΑΝΑΛΗΠΤΙΚΕΣ ΑΣΚΗΣΕΙΣ ΜΕΡΟΣ 2ο
ΙΣΤΟΡΙΑ Α' ΓΥΜΝΑΣΙΟΥ : ΕΠΑΝΑΛΗΠΤΙΚΕΣ ΑΣΚΗΣΕΙΣ ΜΕΡΟΣ 2οΙΣΤΟΡΙΑ Α' ΓΥΜΝΑΣΙΟΥ : ΕΠΑΝΑΛΗΠΤΙΚΕΣ ΑΣΚΗΣΕΙΣ ΜΕΡΟΣ 2ο
ΙΣΤΟΡΙΑ Α' ΓΥΜΝΑΣΙΟΥ : ΕΠΑΝΑΛΗΠΤΙΚΕΣ ΑΣΚΗΣΕΙΣ ΜΕΡΟΣ 2ο
 
ΙΣΤΟΡΙΑ Α' ΓΥΜΝΑΣΙΟΥ : ΕΠΑΝΑΛΗΠΤΙΚΕΣ ΑΣΚΗΣΕΙΣ ΜΕΡΟΣ 1ο
ΙΣΤΟΡΙΑ Α' ΓΥΜΝΑΣΙΟΥ : ΕΠΑΝΑΛΗΠΤΙΚΕΣ ΑΣΚΗΣΕΙΣ  ΜΕΡΟΣ 1ο ΙΣΤΟΡΙΑ Α' ΓΥΜΝΑΣΙΟΥ : ΕΠΑΝΑΛΗΠΤΙΚΕΣ ΑΣΚΗΣΕΙΣ  ΜΕΡΟΣ 1ο
ΙΣΤΟΡΙΑ Α' ΓΥΜΝΑΣΙΟΥ : ΕΠΑΝΑΛΗΠΤΙΚΕΣ ΑΣΚΗΣΕΙΣ ΜΕΡΟΣ 1ο
 
5ο Κεφάλαιο - Το Λογισμικό του Υπολογιστή.pptx
5ο Κεφάλαιο - Το Λογισμικό του Υπολογιστή.pptx5ο Κεφάλαιο - Το Λογισμικό του Υπολογιστή.pptx
5ο Κεφάλαιο - Το Λογισμικό του Υπολογιστή.pptx
 
Η ΑΔΙΚΕΙΑ ΤΟΥ ΔΙΑΓΩΝΙΣΜΟΥ ΑΣΕΠ 2008 ΓΙΑ ΕΚΠΑΙΔΕΥΤΙΚΟΥΣ
Η ΑΔΙΚΕΙΑ ΤΟΥ ΔΙΑΓΩΝΙΣΜΟΥ ΑΣΕΠ 2008 ΓΙΑ ΕΚΠΑΙΔΕΥΤΙΚΟΥΣΗ ΑΔΙΚΕΙΑ ΤΟΥ ΔΙΑΓΩΝΙΣΜΟΥ ΑΣΕΠ 2008 ΓΙΑ ΕΚΠΑΙΔΕΥΤΙΚΟΥΣ
Η ΑΔΙΚΕΙΑ ΤΟΥ ΔΙΑΓΩΝΙΣΜΟΥ ΑΣΕΠ 2008 ΓΙΑ ΕΚΠΑΙΔΕΥΤΙΚΟΥΣ
 
Μαθητικές καταλήψεις
Μαθητικές                                  καταλήψειςΜαθητικές                                  καταλήψεις
Μαθητικές καταλήψεις
 
-Διψήφιοι αριθμοί-δεκαδες μονάδες-θέση ψηφίου Α- Β τάξη
-Διψήφιοι  αριθμοί-δεκαδες μονάδες-θέση ψηφίου Α- Β τάξη-Διψήφιοι  αριθμοί-δεκαδες μονάδες-θέση ψηφίου Α- Β τάξη
-Διψήφιοι αριθμοί-δεκαδες μονάδες-θέση ψηφίου Α- Β τάξη
 
Μαθητικά συμβούλια .
Μαθητικά συμβούλια                                  .Μαθητικά συμβούλια                                  .
Μαθητικά συμβούλια .
 

Fengomytis Thomas

  • 1. ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ & ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΗΛΕΚΤΡΟΝΙΚΗΣ & ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΕΠΕΞΕΡΓΑΣΙΑΣ ΠΛΗΡΟΦΟΡΙΑΣ ΚΑΙ ΥΠΟΛΟΓΙΣΜΩΝ Ανάλυση ποιότητας πηγαίου κώδικα σε πολύ-γλωσσικά έργα λογισμικού 1 Φεγγομύτης Θωμάς ΑΕΜ: 8003 Υπό την επίβλεψη του Αναπληρωτή Καθηγητή κ. Συμεωνίδη Ανδρέα Και του υποψηφίου διδάκτορα κ. Παπαμιχαήλ Μιχαήλ issel
  • 2. Στη σύγχρονη εποχή  Διαδικασία ανάπτυξης λογισμικού  Επαναχρησιμοποίηση τμημάτων κώδικα  Ανάγκη αξιολόγησης της ποιότητας  Αυξανόμενες απαιτήσεις χρηστών  Πολύ-γλωσσικά έργα λογισμικού  Αύξηση πολυπλοκότητας αξιολόγησης 2
  • 3. Κίνητρο  Υπάρχουσες πρακτικές αξιολόγησης  Ταύτιση έννοιας έργο λογισμικού με γλώσσα υλοποίησης  Εργαλεία στατικής ανάλυσης  Αξιολόγηση ως προς μία γλώσσα προγραμματισμού 3
  • 4. Στόχοι  Σχεδίαση συστήματος αξιολόγησης ποιότητας πολύ- γλωσσικών έργων λογισμικού  Συνυπολογισμός κλήσεων μεταξύ των τμημάτων πηγαίου κώδικα διαφορετικών γλωσσών προγραμματισμού 4
  • 5. Μεθοδολογία  Εφαρμογή στατικής ανάλυσης  Ανάλυση προγράμματος χωρίς την εκτέλεσή του  Μελέτη διαφοροποιήσεων των μετρικών  Proof of Concept  Python-Java projects  SourceMeter 5 Αρχείο CSV που παράγεται από το SourceMeter και περιέχει τις μετρικές στατικής ανάλυσης για κάθε κλάση του έργου λογισμικού
  • 8. Downloader  Χρήση API του GitHub για τη δημιουργία του Dataset μέσω της λήψης των 100 δημοφιλέστερων projects αναπτυγμένα σε Python και Java 80% 10% 20% 30% 40% 50% 60% 70% 80% 90% 100% TLLOC (Package Level) JAVA PYTHON
  • 9. Parser 1. Εύρεση κλήσεων:  Jython  Py4J 9 from [ Java_Class Package ] import [ Java_Class ] Αρχείο CSV που περιλαμβάνει τις κλήσεις μεταξύ κλάσεων “gateway.jvm.py4j”
  • 11. Final Evaluator*  Μετρικές για τον υπολογισμό του Score: 11 Όνομα Μετρικής Συντομογραφία Κατηγορία Μετρικής Weighted Methods per Class WMC Complexity McCabe’s Cyclomatic Complexity McCC Complexity Nesting Level NL Complexity Number of Incoming Invocations NII Coupling Response set For Class RFC Coupling Coupling Between Object classes CBO Coupling Total Comment Density TCD Documentation Documentation Lines of Code DLOC Documentation Total Comment Lines of Code TCLOC Documentation Depth of Inheritance Tree DIT Inheritance Number of Children NOC Inheritance Number of Parameters NUMPAR Size Total Number of Getters TNG Size Total Number of Attributes TNA Size Number of Public Attributes NPA Size Total Logical Lines of Code TLLOC Size Total Number of Local Setters TNLS Size * "Assessing the User-Perceived Quality of Source Code Components using Static Analysis Metrics” published by Valasia Dimaridou, Alexandros- Charalampos Kyprianidis, Michail Papamichail, Themistoklis Diamantopoulos and Andreas Symeonidis
  • 12. Final Evaluator  Scores  Complexity  Coupling  Documentation  Inheritance  Size 12 Complexity Score WMC McCC NL
  • 13. Πειράματα 1. Μελέτη επίδρασης των κλήσεων στις μετρικές 2. Μελέτη διαφοροποίησης των scores 3. Εφαρμογή συνολικής μεθοδολογίας σε 3 projects (case study) και σύγκριση αποτελεσμάτων 13
  • 14. Μεταβολή Μετρικών – 1ο Πείραμα  Αύξηση της πολυπλοκότητας στο 70% των περιπτώσεων  Μέση τιμή της μεταβολής ανά κλάση στο 86%. 14 0 2 4 6 8 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 Class McCC McCC McCC' -100 0 100 200 300 400 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 Μεταβολή (%) της McCC
  • 15. Μεταβολή Βαθμού Ποιότητας – 2ο Πείραμα  Αύξηση της πολυπλοκότητας στο 75% των περιπτώσεων  Μείωση του Complexity Score κατά μέσο όρο ανά κλάση στο 31% 15 0 0.1 0.2 0.3 0.4 0.5 0.6 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 Class Complexity Score SCORE SCORE' -80 -60 -40 -20 0 20 40 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 % CLASS Μεταβολή (%) Complexity Score
  • 16. Μεταβολή Βαθμού Ποιότητας – 2ο Πείραμα 16 0 0.2 0.4 0.6 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 Class Coupling Score SCORE SCORE' 0 0.2 0.4 0.6 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 Class Documentation Score SCORE SCORE' 0 0.2 0.4 0.6 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 Class Inheritance Score SCORE SCORE' 0 0.5 1 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 Class Size Score SCORE SCORE'  Μείωση κατά 19%  Αύξηση κατά 30%  Αύξηση κατά 44%  Αύξηση κατά 137%
  • 17. Σύγκριση Μεταβολών – 3ο Πείραμα  Στα δύο έργα λογισμικού:  Αύξηση πολυπλοκότητας και σύζευξης (μείωση score)  Αύξηση βαθμού ποιότητας στις υπόλοιπες κατηγορίες 17  Στο project bartdag:  Συνολική βελτίωση του βαθμού ποιότητας  Όλες οι κατηγορίες εμφανίζουν ποσοστιαία αύξηση
  • 18. Συμπεράσματα  Το σύστημα είναι ικανό να:  Εντοπίζει τις κλήσεις μεταξύ κλάσεων της Python και Java  Τροποποιεί αξιόπιστα τις στατικές μετρικές λαμβάνοντας υπόψιν τις προαναφερθείσες κλήσεις  Παρέχει συνολική και αντιπροσωπευτική αξιολόγηση ποιότητας σε ένα πολύ-γλωσσικό έργο λογισμικού 18
  • 19. Ανοικτά Θέματα  Εφαρμογή για άλλες γλώσσες προγραμματισμού  Εφαρμογή για επιπλέον τρόπους cross-language links  Μελέτη περισσότερων έργων λογισμικού στη μοντελοποίηση  Επέκταση σε περισσότερα επίπεδα (πακέτο, μέθοδος) 19
  • 20. Σας ευχαριστώ για την προσοχή σας! 20

Notes de l'éditeur

  1. Όπου η εξέλιξη της - θεωρείται δεδομένη Κυρίαρχο ρόλο έχει η επαναχρησιμοποίηση τμημάτων για την εξοικονόμηση χρόνου και χρήματος από την πλευρά του προγραμματιστή Έτσι λοιπόν δημιουργείται η – για την ταξινόμηση των υποψήφιων προς χρήση τμημάτων κώδικα Ακόμα οι αυξανόμενες - έχουν οδηγήσει στην εμφάνιση Βέλτιστη αξιοποίηση των δυνατοτήτων της εκάστοτε γλώσσας Γεγονός που οδηγεί στην επιπλέον
  2. Παρατηρήθηκε ότι οι – ταυτίζουν την έννοια Έτσι - εφαρμόζουν
  3. Στόχος της παρούσας διπλωματικής εργασίας είναι η – που θα
  4. Η υλοποίηση του συστήματος βασίζεται στην – δηλαδή Ώστε να μελετηθούν οι διαφ Όταν συνυπολογίζονται οι κλήσεις μεταξύ των κλάσεων διαφορετικών γλωσσών Θα επιχειρήσουμε να επαληθεύσουμε τους ισχυρισμούς μας σε πολύ-γλωσσικά έργα Να σημειωθεί ότι υπάρχουν πολλοί συνδυασμοί γλωσσών στα πολύ-γλ, αναλύσαμε τον πιο διαδεδομένο συνδυασμό Το βασικό εργαλείο στατικής ανάλυσης που θα χρησιμοποιήσουμε Διαθέσιμο για πολλές γλώσσες προγραμματισμού
  5. Ας μελετήσουμε το παρακάτω παράδειγμα για την ορθότερη κατανόηση του προβλήματος Κυκλωματική πολυπλοκότητα σύμφωνα με τη στατική ανάλυση Η μέθοδος περιέχεται σε αρχείο πηγαίου κώδικα ανεπτυγμένου σε Python Στην πραγματική CC θα έπρεπε να έχει αθροιστεί η CC της getUTFValue
  6. Λήψη των έργων λογισμικού Προωθούνται – Εισέρχονται – Δίνονται ως είσοδος Παραγωγή των μετρικών στατικής ανάλυσης Εύρεση κλήσεων μεταξύ των γλωσσών προγραμματισμού & τροποποίηση των στατικών μετρικών Αποτιμά τις τροποποιημένες στατικές μετρικές με την έννοια του υπολογισμού ενός τελικού score ποιότητας για κάθε κλάση
  7. Ας μελετήσουμε ορισμένα σημαντικά χαρακτηριστικά των υποσυστημάτων του συστήματός μας ξεκινώντας από τον Έτσι, στο παρακάτω διάγραμμα παρουσιάζεται για κάθε project του Dataset το ποσοστό των γραμμών του πηγαίου κώδικα που είναι γραμμένο σε Java & Python αντίστοιχα Παρατηρούμε κυριαρχία της Java. Τα έργα αποτελούνται από μερικές εκατοντάδες γραμμές κώδικα έως και αρκετές χιλιάδες TLLOC: Συνολικές λογικές γραμμές κώδικα (ο αριθμός των μη-κενών και μη-σχολιασμένων γραμμών κώδικα του πακέτου)
  8. Συνεχίζοντας ο Parser αποτελεί το σημαντικότερο κομμάτι του συστήματος, υπεύθυνος για 2 λειτουργίες Προφανώς υπάρχουν πολλοί τρόποι κλήσης μίας άλλης γλώσσας όμως στα πλαίσια της αυτοματοποίησης εστιάσαμε στους πιο διαδεδομένους Παρατηρήθηκε ότι στην πλειοψηφία των περιπτώσεων οι κλήσεις γινόταν από Python προς Java με δύο τρόπους Εγκατεστημένη στο σύστημα του developer Έτσι λοιπόν καταγράφει σε ένα CSV αρχείο τις κλήσεις ώστε να γίνουν εκμεταλλεύσιμες από το υπόλοιπο σύστημα
  9. Η 2η λειτουργία του Ο παραπάνω πίνακας απαριθμεί τις στατικές μετρικές που χρησιμοποιεί το σύστημά μας καθώς και το επίπεδο στο οποίο ορίζονται Είναι υπεύθυνος για την αναγωγή όλων αυτών των μετρικών στο επίπεδο της κλάσης και για την κατάλληλη τροποποίησή τους σύμφωνα με τις δοθείσες κλήσεις Για παράδειγμα η μετρική
  10. Σύστημα που αναπτύχθηκε από τον κ. Συμεωνίδη και την ομάδα του Το οποίο με βάση αυτές τις μετρικές, που χωρίζονται σε 5 κατηγορίες, υπολογίζει ένα score ποιότητας
  11. Αναλυτικότερα υπολογίζει και καταγράφει τους βαθμούς ποιότητας που σχετίζονται με την Η καταγραφή των τιμών των μετρικών (τροποποιημένων και μη) και των score ανά κατηγορία γίνεται σε ένα αρχείο TXT Βαθμός επαρκούς σχολιασμού Τα επιμέρους scores υπολογίζονται με βάση τις μετρικές και έχουν δενδρική δομή, για παράδειγμα Weighted Methods per Class , Nesting Level , βάρος συμμετοχή τελικό δείκτη
  12. Για την δοκιμή του συστήματός μας διενεργήθηκαν 3 πειράματα με πρώτο αυτό της Τα πρώτα 2 πειράματα διενεργήθηκαν στο project με τις περισσότερες κλήσεις μεταξύ των γλωσσών προγραμματισμού
  13. Εφαρμόζοντας το σύστημα στο project που επιλέξαμε μελετήσαμε τη μεταβολή των στατικών μετρικών και συγκεκριμένα το διάγραμμα παρουσιάζει τη McCC. Με την μπλε μπάρα δείχνει την τιμή της μετρικής πριν την εφαρμογή του συστήματος και την πορτοκαλί μετά την εφαρμογή Οι υπόλοιπες μετρικές παρουσιάζονται αναλυτικά στην έντυπη μορφή
  14. Έπειτα στο 2ο πείραμα παρουσιάζουμε τη μεταβολή του βαθμού ποιότητας της πολυπλοκότητας
  15. Αντίστοιχα παρουσιάζουμε τις μεταβολές των υπολοίπων βαθμών ποιότητας ξεκινώντας από τον βαθμό σύζευξης στον οποίον παρατηρείται ποσοστιαία Η μεγάλη αύξηση οφείλεται όπως είδαμε και σε προηγούμενη διαφάνεια στις πολύ περισσότερες γραμμές κώδικα της Java σε σχέση με αυτές της Python
  16. Το 3ο πείραμα επικεντρώθηκε στη σύγκριση των μεταβολών μεταξύ των 3 έργων λογισμικών με τις περισσότερες κλήσεις μεταξύ των γλωσσών Το πείραμα λοιπόν αποδεικνύει ότι ο βαθμός της αξιολόγησης διαφέρει όταν δεν λαμβάνεται υπόψιν η πολύγλωσσικότητα του έργου και ότι δεν μπορούμε να εξάγουμε ένα γενικό συμπέρασμα για όλα τα πολύ-γλωσσικά έργα λογισμικού καθώς η μεταβολή των μετρικών τους εξαρτάται από το κάθε έργο ξεχωριστά Τέλος, τα Size & Doc Scores είναι μικρότερης σημασίας από τα υπόλοιπα έτσι οι μεγάλες μεταβολές τους δεν επηρεάζουν σε μεγάλο βαθμό την ποιότητα του συστήματος
  17. Έτσι λοιπόν μπορούμε να συμπεράνουμε ότι Μπορεί να γίνει χρήσιμο στον προγραμματιστή
  18. Φυσικά υπάρχουν περιθώρια βελτίωσης του συστήματος Κάποιες ιδέες για μελλοντική ανάπτυξη μπορεί να είναι η
  19. Και ανυπομονώ να ακούσω τις τυχόν ερωτήσεις σας