Αλεξάνδρα Μπαλτζή 7485

32
Βελτίωση Τεχνικών Επαναχρησιμοποίησης Κώδικα από Αποθήκες Λογισμικού με χρήση Τεχνικών Ανάπτυξης Λογισμικού Οδηγούμενης από Ελέγχους και Τεχνικών Μετασχηματισμού Κώδικα Μπαλτζή Αλεξάνδρα Υπό την επίβλεψη του Επίκουρου Καθηγητή Ανδρέα Λ. Συμεωνίδη και του υποψήφιου Διδάκτορα Θεμιστοκλή Διαμαντόπουλου ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ & ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΗΛΕΚΤΡΟΝΙΚΗΣ & ΥΠΟΛΟΓΙΣΤΩΝ

Transcript of Αλεξάνδρα Μπαλτζή 7485

Page 1: Αλεξάνδρα Μπαλτζή 7485

Βελτίωση Τεχνικών Επαναχρησιμοποίησης Κώδικα από Αποθήκες Λογισμικού με χρήση Τεχνικών Ανάπτυξης Λογισμικού Οδηγούμενης από Ελέγχους και Τεχνικών

Μετασχηματισμού Κώδικα

Μπαλτζή Αλεξάνδρα Υπό την επίβλεψη του Επίκουρου Καθηγητή

Ανδρέα Λ. Συμεωνίδη και του υποψήφιου Διδάκτορα Θεμιστοκλή Διαμαντόπουλου

ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ & ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ

ΤΟΜΕΑΣ ΗΛΕΚΤΡΟΝΙΚΗΣ & ΥΠΟΛΟΓΙΣΤΩΝ

Page 2: Αλεξάνδρα Μπαλτζή 7485

Εισαγωγή

Ορισμός προβλήματος State of the art Σκοπός της διπλωματικής

Ανάλυση του συστήματοςΠειράματαΣυμπεράσματα – Μελλοντική εργασία

Βελτίωση Τεχνικών Επαναχρησιμοποίησης Κώδικα από Αποθήκες Λογισμικού με χρήση Τεχνικών Ανάπτυξης Λογισμικού Οδηγούμενης από Ελέγχους και Τεχνικών Μετασχηματισμού Κώδικα

Δομή παρουσίασης

2

Page 3: Αλεξάνδρα Μπαλτζή 7485

• Εποχή της Πληροφορίας (Εποχή των Υπολογιστών)• Ελεύθερη ανταλλαγή και μεταφορά πληροφορίας• Επιτάχυνση ροής πληροφοριών μέσω του Διαδικτύου• Επαναχρησιμοποίηση στοιχείων λογισμικού - Τεχνολογία

Λογισμικού• Free Software – Open Source Software• Δημιουργία αποθηκών λογισμικού

Βελτίωση Τεχνικών Επαναχρησιμοποίησης Κώδικα από Αποθήκες Λογισμικού με χρήση Τεχνικών Ανάπτυξης Λογισμικού Οδηγούμενης από Ελέγχους και Τεχνικών Μετασχηματισμού Κώδικα

Εισαγωγή

3

Page 4: Αλεξάνδρα Μπαλτζή 7485

• Μείωση χρόνου συγγραφής - βελτίωση ποιότητας κώδικα • Μηχανές Αναζήτησης Κώδικα (Code Search Engines)

- Προσπάθεια για σχηματισμό ερωτήματος - Προσπάθεια για έλεγχο λειτουργικότητας

• Συστήματα Συστάσεων στην Τεχνολογία Λογισμικού (Recommendation Systems in Software Engineering)

Βελτίωση Τεχνικών Επαναχρησιμοποίησης Κώδικα από Αποθήκες Λογισμικού με χρήση Τεχνικών Ανάπτυξης Λογισμικού Οδηγούμενης από Ελέγχους και Τεχνικών Μετασχηματισμού Κώδικα

Ορισμός προβλήματος

4

Page 5: Αλεξάνδρα Μπαλτζή 7485

State of the art

O κύκλος του Test Driven Reuse Παρόμοια συστήματαCode ConjurerCodeGenie S6 FAST

Μειονεκτήματα• Δεν είναι πλέον λειτουργικά • Δε χρησιμοποιούν αναπτυσσόμενες αποθήκες

λογισμικού• Δεν επεξεργάζονται τα αποτελέσματα και δεν τα

προσαρμόζουν στον κώδικα του προγραμματιστή• Δεν ελέγχουν τη λειτουργικότητα των αποτελεσμάτων• Δεν αντιμετωπίζουν τις διπλοεγγραφές

5

Βελτίωση Τεχνικών Επαναχρησιμοποίησης Κώδικα από Αποθήκες Λογισμικού με χρήση Τεχνικών Ανάπτυξης Λογισμικού Οδηγούμενης από Ελέγχους και Τεχνικών Μετασχηματισμού Κώδικα

Page 6: Αλεξάνδρα Μπαλτζή 7485

Συνεισφορά στον ευρύτερο χώρο της Τεχνολογίας Λογισμικού και των RSSEs:• Αναφορά βιβλιογραφίας• Ανάπτυξη του δικού μας RSSE συστήματος

Το σύστημά μας: Έχει ως βάση το TDD Κάνει χρήση αναπτυσσόμενων αποθηκών λογισμικού Κάνει χρήση ενός μοντέλου mining-scoring Ελέγχει τη λειτουργικότητα των αποτελεσμάτων Πραγματοποιεί μετατροπές στον κώδικα Παρουσιάζει τα αποτελέσματα στο χρήστη

Βελτίωση Τεχνικών Επαναχρησιμοποίησης Κώδικα από Αποθήκες Λογισμικού με χρήση Τεχνικών Ανάπτυξης Λογισμικού Οδηγούμενης από Ελέγχους και Τεχνικών Μετασχηματισμού Κώδικα

Σκοπός της διπλωματικής

6

Page 7: Αλεξάνδρα Μπαλτζή 7485

Βελτίωση Τεχνικών Επαναχρησιμοποίησης Κώδικα από Αποθήκες Λογισμικού με χρήση Τεχνικών Ανάπτυξης Λογισμικού Οδηγούμενης από Ελέγχους και Τεχνικών Μετασχηματισμού Κώδικα

Δομή του συστήματος

7

Page 8: Αλεξάνδρα Μπαλτζή 7485

Βελτίωση Τεχνικών Επαναχρησιμοποίησης Κώδικα από Αποθήκες Λογισμικού με χρήση Τεχνικών Ανάπτυξης Λογισμικού Οδηγούμενης από Ελέγχους και Τεχνικών Μετασχηματισμού Κώδικα

Δομή του συστήματος

8

Page 9: Αλεξάνδρα Μπαλτζή 7485

Βελτίωση Τεχνικών Επαναχρησιμοποίησης Κώδικα από Αποθήκες Λογισμικού με χρήση Τεχνικών Ανάπτυξης Λογισμικού Οδηγούμενης από Ελέγχους και Τεχνικών Μετασχηματισμού Κώδικα

Parser

9

• Εξαγωγή της υπογραφής του ερωτήματος του χρήστη σε xml

• Χρήση του εργαλείου srcML

Page 10: Αλεξάνδρα Μπαλτζή 7485

Βελτίωση Τεχνικών Επαναχρησιμοποίησης Κώδικα από Αποθήκες Λογισμικού με χρήση Τεχνικών Ανάπτυξης Λογισμικού Οδηγούμενης από Ελέγχους και Τεχνικών Μετασχηματισμού Κώδικα

Δομή του συστήματος

10

Page 11: Αλεξάνδρα Μπαλτζή 7485

Βελτίωση Τεχνικών Επαναχρησιμοποίησης Κώδικα από Αποθήκες Λογισμικού με χρήση Τεχνικών Ανάπτυξης Λογισμικού Οδηγούμενης από Ελέγχους και Τεχνικών Μετασχηματισμού Κώδικα

Downloader

11

• Αναζήτηση στη CSE AGORA

• Η AGORA:- Περιλαμβάνει μεγάλο αριθμό από projects του Github- Διαθέτει API και δίνει τη δυνατότητα αναζήτησης με δομημένο ερώτημα- Το API βασίζεται στην πλατφόρμα αναζήτησης Elasticsearch

Page 12: Αλεξάνδρα Μπαλτζή 7485

Βελτίωση Τεχνικών Επαναχρησιμοποίησης Κώδικα από Αποθήκες Λογισμικού με χρήση Τεχνικών Ανάπτυξης Λογισμικού Οδηγούμενης από Ελέγχους και Τεχνικών Μετασχηματισμού Κώδικα

Δομή του συστήματος

12

Page 13: Αλεξάνδρα Μπαλτζή 7485

Βελτίωση Τεχνικών Επαναχρησιμοποίησης Κώδικα από Αποθήκες Λογισμικού με χρήση Τεχνικών Ανάπτυξης Λογισμικού Οδηγούμενης από Ελέγχους και Τεχνικών Μετασχηματισμού Κώδικα

Miner

13

• O Preprocessor χρησιμοποιείται για την απομάκρυνση των διπλοαρχείων με χρήση του md5 hash

• Ο Scorer χρησιμοποιείται για τη βαθμολόγηση των αρχείων, κατά την οποία:- Δημιουργούνται διανύσματα σε:

Επίπεδο μεθόδου: Επίπεδο κλάσης:

- Για τη δημιουργία των διανυσμάτων: Κάθε συνιστώσα έχει τιμή στο εύρος [0,1] Λεξικό ≈ υπογραφή ερωτήματος Το εκάστοτε διάνυσμα του ερωτήματος χρησιμοποιείται ως βάση κατά τη σύγκριση και όλες οι συνιστώσες του είναι ίσες με 1

Preprocessor Scorer PostprocessorFiles Unique

Files Scores Top Files

Page 14: Αλεξάνδρα Μπαλτζή 7485

Βελτίωση Τεχνικών Επαναχρησιμοποίησης Κώδικα από Αποθήκες Λογισμικού με χρήση Τεχνικών Ανάπτυξης Λογισμικού Οδηγούμενης από Ελέγχους και Τεχνικών Μετασχηματισμού Κώδικα

Miner• Για τη βαθμολόγηση των strings ακολουθείται η παρακάτω διαδικασία:

• Για τη βαθμολόγηση των διανυσμάτων χρησιμοποιείται ο συντελεστής Tanimoto:

14

Tokenizing Stop words removal

Short words removal

StringStemming

Tanimoto similarityScore

[0,1]

String or tokens

Page 15: Αλεξάνδρα Μπαλτζή 7485

Βελτίωση Τεχνικών Επαναχρησιμοποίησης Κώδικα από Αποθήκες Λογισμικού με χρήση Τεχνικών Ανάπτυξης Λογισμικού Οδηγούμενης από Ελέγχους και Τεχνικών Μετασχηματισμού Κώδικα

MinerStable Marriage Problem

• Τα scores του πίνακα:

• Οι λίστες που δημιουργούνται:

15

Page 16: Αλεξάνδρα Μπαλτζή 7485

Βελτίωση Τεχνικών Επαναχρησιμοποίησης Κώδικα από Αποθήκες Λογισμικού με χρήση Τεχνικών Ανάπτυξης Λογισμικού Οδηγούμενης από Ελέγχους και Τεχνικών Μετασχηματισμού Κώδικα

Δομή του συστήματος

16

Page 17: Αλεξάνδρα Μπαλτζή 7485

Βελτίωση Τεχνικών Επαναχρησιμοποίησης Κώδικα από Αποθήκες Λογισμικού με χρήση Τεχνικών Ανάπτυξης Λογισμικού Οδηγούμενης από Ελέγχους και Τεχνικών Μετασχηματισμού Κώδικα

Tester

17

Create projects Copy src/test

filesModify src/test

files

Compile src/test filesRun test cases

Src files

Test file

Results

Page 18: Αλεξάνδρα Μπαλτζή 7485

Βελτίωση Τεχνικών Επαναχρησιμοποίησης Κώδικα από Αποθήκες Λογισμικού με χρήση Τεχνικών Ανάπτυξης Λογισμικού Οδηγούμενης από Ελέγχους και Τεχνικών Μετασχηματισμού Κώδικα

Δομή του συστήματος

18

Page 19: Αλεξάνδρα Μπαλτζή 7485

Βελτίωση Τεχνικών Επαναχρησιμοποίησης Κώδικα από Αποθήκες Λογισμικού με χρήση Τεχνικών Ανάπτυξης Λογισμικού Οδηγούμενης από Ελέγχους και Τεχνικών Μετασχηματισμού Κώδικα

Transformer• Μετασχηματισμός τύπου επιστροφής μεθόδων

1η περίπτωση:

2η περίπτωση:

3η περίπτωση:

19

Page 20: Αλεξάνδρα Μπαλτζή 7485

Βελτίωση Τεχνικών Επαναχρησιμοποίησης Κώδικα από Αποθήκες Λογισμικού με χρήση Τεχνικών Ανάπτυξης Λογισμικού Οδηγούμενης από Ελέγχους και Τεχνικών Μετασχηματισμού Κώδικα

Transformer• Μετασχηματισμός παραμέτρων μεθόδου

Μέθοδος ερωτήματος χρήστη:

Μέθοδος xml προς μετασχηματισμό:

Οι τρεις λίστες που δημιουργούνται:

20

Page 21: Αλεξάνδρα Μπαλτζή 7485

Βελτίωση Τεχνικών Επαναχρησιμοποίησης Κώδικα από Αποθήκες Λογισμικού με χρήση Τεχνικών Ανάπτυξης Λογισμικού Οδηγούμενης από Ελέγχους και Τεχνικών Μετασχηματισμού Κώδικα

Transformer• Μετασχηματισμός παραμέτρων μεθόδου

Η μέθοδος του xml μετά από το 1ο βήμα μετασχηματισμού:

Οι τρεις λίστες μετά από το 1ο βήμα μετασχηματισμού:

21

Page 22: Αλεξάνδρα Μπαλτζή 7485

Βελτίωση Τεχνικών Επαναχρησιμοποίησης Κώδικα από Αποθήκες Λογισμικού με χρήση Τεχνικών Ανάπτυξης Λογισμικού Οδηγούμενης από Ελέγχους και Τεχνικών Μετασχηματισμού Κώδικα

Transformer• Μετασχηματισμός παραμέτρων μεθόδου

Η μέθοδος του xml μετά από το 2ο βήμα μετασχηματισμού:

Η μέθοδος του xml μετά από το 3ο βήμα μετασχηματισμού:

4ο βήμα μετασχηματισμού: Μέθοδος ερωτήματος χρήστη:

Μέθοδος xml προς μετασχηματισμό:

H μέθοδος του xml μετά το μετασχηματισμό: 22

Page 23: Αλεξάνδρα Μπαλτζή 7485

Βελτίωση Τεχνικών Επαναχρησιμοποίησης Κώδικα από Αποθήκες Λογισμικού με χρήση Τεχνικών Ανάπτυξης Λογισμικού Οδηγούμενης από Ελέγχους και Τεχνικών Μετασχηματισμού Κώδικα

ΠειράματαΜετρικές αξιολόγησης αποτελεσμάτων

23

Α/Α Τύπος

1

2

3

4

5

6

Page 24: Αλεξάνδρα Μπαλτζή 7485

Βελτίωση Τεχνικών Επαναχρησιμοποίησης Κώδικα από Αποθήκες Λογισμικού με χρήση Τεχνικών Ανάπτυξης Λογισμικού Οδηγούμενης από Ελέγχους και Τεχνικών Μετασχηματισμού Κώδικα

ΠειράματαΠείραμα 1o – Σύγκριση με τη Mantissa

24

Page 25: Αλεξάνδρα Μπαλτζή 7485

Βελτίωση Τεχνικών Επαναχρησιμοποίησης Κώδικα από Αποθήκες Λογισμικού με χρήση Τεχνικών Ανάπτυξης Λογισμικού Οδηγούμενης από Ελέγχους και Τεχνικών Μετασχηματισμού Κώδικα

ΠειράματαΠείραμα 1o – Σύγκριση με τη Mantissa

25

Page 26: Αλεξάνδρα Μπαλτζή 7485

Βελτίωση Τεχνικών Επαναχρησιμοποίησης Κώδικα από Αποθήκες Λογισμικού με χρήση Τεχνικών Ανάπτυξης Λογισμικού Οδηγούμενης από Ελέγχους και Τεχνικών Μετασχηματισμού Κώδικα

ΠειράματαΠείραμα 2o – Σύγκριση με το FAST

26

Page 27: Αλεξάνδρα Μπαλτζή 7485

Βελτίωση Τεχνικών Επαναχρησιμοποίησης Κώδικα από Αποθήκες Λογισμικού με χρήση Τεχνικών Ανάπτυξης Λογισμικού Οδηγούμενης από Ελέγχους και Τεχνικών Μετασχηματισμού Κώδικα

ΠειράματαΠείραμα 3o – Σύγκριση με τον Code Conjurer

27

Page 28: Αλεξάνδρα Μπαλτζή 7485

Βελτίωση Τεχνικών Επαναχρησιμοποίησης Κώδικα από Αποθήκες Λογισμικού με χρήση Τεχνικών Ανάπτυξης Λογισμικού Οδηγούμενης από Ελέγχους και Τεχνικών Μετασχηματισμού Κώδικα

ΠειράματαΠείραμα 4o – Σύγκριση με τη Mantissa σε δικό μας dataset

28

Page 29: Αλεξάνδρα Μπαλτζή 7485

Βελτίωση Τεχνικών Επαναχρησιμοποίησης Κώδικα από Αποθήκες Λογισμικού με χρήση Τεχνικών Ανάπτυξης Λογισμικού Οδηγούμενης από Ελέγχους και Τεχνικών Μετασχηματισμού Κώδικα

ΠειράματαΠείραμα 4o – Σύγκριση με τη Mantissa σε δικό μας dataset

29

Page 30: Αλεξάνδρα Μπαλτζή 7485

Βελτίωση Τεχνικών Επαναχρησιμοποίησης Κώδικα από Αποθήκες Λογισμικού με χρήση Τεχνικών Ανάπτυξης Λογισμικού Οδηγούμενης από Ελέγχους και Τεχνικών Μετασχηματισμού Κώδικα

ΠειράματαΠείραμα 4o – Σύγκριση με τη Mantissa σε δικό μας dataset

30

Page 31: Αλεξάνδρα Μπαλτζή 7485

Βελτίωση Τεχνικών Επαναχρησιμοποίησης Κώδικα από Αποθήκες Λογισμικού με χρήση Τεχνικών Ανάπτυξης Λογισμικού Οδηγούμενης από Ελέγχους και Τεχνικών Μετασχηματισμού Κώδικα

Συμπεράσματα – Μελλοντικές Επεκτάσεις• Πλεονεκτήματα του συστήματός μας

Μετατροπή του ερωτήματος του προγραμματιστή σε γλώσσα κατανοητή από τη CSE AGORA Βαθμολογία και κατάταξη των αποτελεσμάτων που επιστρέφει η AGORA Έλεγχος λειτουργικότητας των αποτελεσμάτων με χρήση των test cases του προγραμματιστή Πραγματοποίηση μετασχηματισμών στα αποτελέσματα με σκοπό τη βελτίωσή τους και την αύξηση της πιθανότητας επιτυχίας στην

εκτέλεση των test cases Παρουσίαση αποτελεσμάτων στον προγραμματιστή

• Πιθανές επεκτάσεις Ενσωμάτωση και άλλων μηχανών αναζήτησης κώδικα Dependency resolution Αναζήτηση των κατάλληλων test cases για το ερώτημα

31

Page 32: Αλεξάνδρα Μπαλτζή 7485

Βελτίωση Τεχνικών Επαναχρησιμοποίησης Κώδικα από Αποθήκες Λογισμικού με χρήση Τεχνικών Ανάπτυξης Λογισμικού Οδηγούμενης από Ελέγχους και Τεχνικών Μετασχηματισμού Κώδικα

Ευχαριστώ για την προσοχή σας!

Ερωτήσεις?

32