SlideShare a Scribd company logo
1 of 20
QualBoa: Σύστημα Προτάσεων Κώδικα με
χρήση Μετρικών Επαναχρηστικότητας
Λογισμικού
Κλέαρχος Θωμόπουλος
Ιούλιος 2016
Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης
Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών
Τομέας Ηλεκτρονικής και Υπολογιστών
Εργαστήριο Επεξεργασίας Πληροφορίας και Υπολογισμών
Συστήματα Επανάχρησης Λογισμικού
• Εύρεση χρήσιμων τμημάτων κώδικα
▫ Ποιοτικό Λογισμικό
▫ Αξιόπιστο Λογισμικό
▫ Εξοικονόμηση κόστους, χρόνου και προσπάθειας
• Επιστρέφουν επιτυχώς σχετικά αποτελέσματα,
αλλά είναι επαναχρηστικά;
Επαναχρηστικότητα Λογισμικού
• Αναλύεται σε 4 γενικούς άξονες:
▫ Τμηματοποίηση (Modularity)
▫ Χρηστικότητα (Usability)
▫ Συντηρισιμότητα (Maintainability)
▫ Κατανοησιμότητα (Understandability)
• Μέτρηση της επαναχρηστικότητας με χρήση
μετρικών ποιότητας λογισμικού
Boa: A Language and Infrastructure for Analyzing
Ultra-Large-Scale Software Repositories
• Υποδομή που περιλαμβάνει επεξεργασμένες
πληροφορίες έργων λογισμικού των SourceForge
(700.000) και GitHub (8.000.000)
▫ Metadata
▫ AST (Abstract Syntax Tree)
• Γλώσσα ερωτημάτων
▫ Ειδικού σκοπού για προσπέλαση της υποδομής
• Χρήση της Boa για αναζήτηση σχετικών τμημάτων
κώδικα και υπολογισμό μετρικών ποιότητας
Δομή του συστήματος QualBoa
• Λήψη Σχετικών Τμημάτων Κώδικα και
Μετρικών Ποιότητας
• Αξιολόγηση των Τμημάτων Λογισμικού
• Αξιολόγηση της Ποιότητας του Κώδικα
Δομή του συστήματος QualBoa
• Λήψη Σχετικών Τμημάτων Κώδικα και
Μετρικών Ποιότητας
• Αξιολόγηση των Τμημάτων Λογισμικού
• Αξιολόγηση της Ποιότητας του Κώδικα
Λήψη Σχετικών Τμημάτων Κώδικα και
Μετρικών Ποιότητας
• Δημιουργία της υπογραφής από το ερώτημα του
χρήστη
Class
name: push
returntype: void
paramtype: Object
returntype: Object
name: pop
name: Stack
Method 1
Method 2
Parser
Λήψη Σχετικών Τμημάτων Κώδικα και
Μετρικών Ποιότητας
• Δημιουργία του ερωτήματος στην Boa για τα
σχετικά τμήματα κώδικα
Class
name: push
returntype: void
paramtype: Object
returntype: Object
name: pop
name: Stack
Method 1
Method 2
Λήψη Σχετικών Τμημάτων Κώδικα και
Μετρικών Ποιότητας
• Υπολογισμός των μετρικών ποιότητας
▫ π.χ. ο αριθμός των public πεδίων/μεταβλητών
Προσπέλαση όλων των
πεδίων και όλων των modifier
κάθε πεδίου
Έλεγχος αν ο modifier του
πεδίου είναι “public”
Λήψη Σχετικών Τμημάτων Κώδικα και
Μετρικών Ποιότητας
• Επιστρέφονται τα σχετικά τμήματα κώδικα και
οι αντίστοιχες μετρικές ποιότητας
• Λήψη των σχετικών τμημάτων κώδικα που
βρέθηκαν από το GitHub, μέσω του GitHub API
• Τοπική αποθήκευση των αποτελεσμάτων μαζί με
τις μετρικές ποιότητας για μετέπειτα χρήση
Δομή του συστήματος QualBoa
• Λήψη Σχετικών Τμημάτων Κώδικα και
Μετρικών Ποιότητας
• Αξιολόγηση των Τμημάτων Λογισμικού
• Αξιολόγηση της Ποιότητας του Κώδικα
Αξιολόγηση των Τμημάτων Λογισμικού
• Υπολογισμός λειτουργικής βαθμολογίας
▫ Σχηματισμός μίας λίστας από την υπογραφή
 π.χ [Stack, [push, void, Object], [pop, Object]]
▫ Υπολογισμός της ομοιότητας μεταξύ 2 Strings
 Διαχωρισμός του String (camelCase) και χρήση του
Jaccard Index:
▫ Υπολογισμός της βαθμολογίας μεταξύ 2 λιστών
 Tanimoto Coefficient:
 ,
S T
Jaccard S T
S T



  2 2
,
A B
Tanimoto A B
A B A B


  
r r
r r
r r r r
Αξιολόγηση των Τμημάτων Λογισμικού
• Παράδειγμα σύγκρισης των υπογραφών
Class
name: push
Method 1
returntype: void
paramtype: Object
returntype: Object
Method 2
name: pop
name: Stack
Class
name: pushObject
returntype: void
paramtype: int
returntype: int
name: popObject
name: IntStack
Method 1
Method 2
0.579
0.5
0.545
0.5
1.0
0.0
0.286
0.5
0.0
Δομή του συστήματος QualBoa
• Λήψη Σχετικών Τμημάτων Κώδικα και
Μετρικών Ποιότητας
• Αξιολόγηση των Τμημάτων Λογισμικού
• Αξιολόγηση της Ποιότητας του Κώδικα
Αξιολόγηση της Ποιότητας του Κώδικα
• Μοντέλο Επαναχρηστικότητας
Relevant Quality Characteristics
Quality Metrics
Extreme
Values
Modularity
Maintain
ability
Usability
Understan
dability
Reusability
Average LoC per Method > 30   
Average Cyclomatic Complexity > 8   
Coupling Between Objects > 20   
Lack of Cohesion in Methods > 20  
Average Block Depth > 3  
Efferent Couplings > 20   
Number of Public Fields > 10   
Number of Public Methods > 30   
#Metrics per Quality Characteristic: 3 4 4 3 8
Αξιολόγηση του Συστήματος
• Dataset 7 διαφορετικών ερωτημάτων
Query
#Relevant
Results
Average
Precision
Reusability
Score
Calculator 18 59.27% 70.83%
ComplexNumber 15 86.18% 82.76%
Matrix 10 95.88% 88.68%
MortgageCalculator 7 100.00% 87.17%
ShoppingCart 13 100.00% 100.00%
Spreadsheet 2 100.00% 88.54%
Stack 22 77.59% 100.00%
Average 12.43 88.42% 88.28%
Αξιολόγηση του Συστήματος
• Average Precision
0
20
40
60
80
100
Average Precision
Average Value
Αξιολόγηση του Συστήματος
• Reusability Score
0
20
40
60
80
100
Reusability Score
Average Value
Συμπεράσματα
• Απόλυτα ικανοποιητικά αποτελέσματα
αξιολόγησης
• QualBoa
▫ Εξασφάλιση της λειτουργικής ταύτισης
▫ Πρωτοτυπία με την χρήση της Boa
▫ Σημαντικό πλεονέκτημα η αξιολόγηση της
επαναχρηστικότητας του λογισμικού
Ευχαριστώ !

More Related Content

Viewers also liked

Viewers also liked (15)

Ουζούνης Γεώργιος
Ουζούνης ΓεώργιοςΟυζούνης Γεώργιος
Ουζούνης Γεώργιος
 
Χαρίτων Καραμήτας 5755
Χαρίτων Καραμήτας 5755Χαρίτων Καραμήτας 5755
Χαρίτων Καραμήτας 5755
 
Κασπαρίδου Έλλη
Κασπαρίδου ΈλληΚασπαρίδου Έλλη
Κασπαρίδου Έλλη
 
Κρασανάκης Εμμανουήλ
Κρασανάκης ΕμμανουήλΚρασανάκης Εμμανουήλ
Κρασανάκης Εμμανουήλ
 
Λυκάρτσης Ιωάννης
Λυκάρτσης ΙωάννηςΛυκάρτσης Ιωάννης
Λυκάρτσης Ιωάννης
 
Σωτήριος Αγγελής
Σωτήριος ΑγγελήςΣωτήριος Αγγελής
Σωτήριος Αγγελής
 
Κωνσταντίνος Σιδέρης 7254
Κωνσταντίνος Σιδέρης 7254Κωνσταντίνος Σιδέρης 7254
Κωνσταντίνος Σιδέρης 7254
 
Νούτσος Αντώνης 6992
Νούτσος Αντώνης 6992Νούτσος Αντώνης 6992
Νούτσος Αντώνης 6992
 
Ζακιά Αλαουί Τζαμαλί
Ζακιά Αλαουί ΤζαμαλίΖακιά Αλαουί Τζαμαλί
Ζακιά Αλαουί Τζαμαλί
 
Ιωάννης Αντωνιάδης 7137
Ιωάννης Αντωνιάδης 7137Ιωάννης Αντωνιάδης 7137
Ιωάννης Αντωνιάδης 7137
 
Ναταλία Μιχαηλίδου
Ναταλία ΜιχαηλίδουΝαταλία Μιχαηλίδου
Ναταλία Μιχαηλίδου
 
Κωνσταντίνος Παπαγγέλου 7498
Κωνσταντίνος Παπαγγέλου 7498 Κωνσταντίνος Παπαγγέλου 7498
Κωνσταντίνος Παπαγγέλου 7498
 
Δούμας Οδυσσέας 7168
Δούμας Οδυσσέας 7168Δούμας Οδυσσέας 7168
Δούμας Οδυσσέας 7168
 
Αλεξάνδρα Μπαλτζή 7485
Αλεξάνδρα Μπαλτζή 7485Αλεξάνδρα Μπαλτζή 7485
Αλεξάνδρα Μπαλτζή 7485
 
Βασίλειος Λώλης 5638
Βασίλειος Λώλης 5638Βασίλειος Λώλης 5638
Βασίλειος Λώλης 5638
 

Similar to Κλέαρχος Θωμόπουλος 7435

Εφαρµογή Τεχνικών Μηχανικής Μάθησης για την Ανάλυση Αλλαγών Κώδικα µε στόχο τ...
Εφαρµογή Τεχνικών Μηχανικής Μάθησης για την Ανάλυση Αλλαγών Κώδικα µε στόχο τ...Εφαρµογή Τεχνικών Μηχανικής Μάθησης για την Ανάλυση Αλλαγών Κώδικα µε στόχο τ...
Εφαρµογή Τεχνικών Μηχανικής Μάθησης για την Ανάλυση Αλλαγών Κώδικα µε στόχο τ...
ISSEL
 
Πρόταση Βιβλιοθηκών Σχετικών με Λέξεις-Κλειδιά για Εκκίνηση της Διαδικασίας Α...
Πρόταση Βιβλιοθηκών Σχετικών με Λέξεις-Κλειδιά για Εκκίνηση της Διαδικασίας Α...Πρόταση Βιβλιοθηκών Σχετικών με Λέξεις-Κλειδιά για Εκκίνηση της Διαδικασίας Α...
Πρόταση Βιβλιοθηκών Σχετικών με Λέξεις-Κλειδιά για Εκκίνηση της Διαδικασίας Α...
ISSEL
 
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
 
Evangelos Papathomas: Semantic Code Search in Software Repositories using Neu...
Evangelos Papathomas: Semantic Code Search in Software Repositories using Neu...Evangelos Papathomas: Semantic Code Search in Software Repositories using Neu...
Evangelos Papathomas: Semantic Code Search in Software Repositories using Neu...
Manos Tsardoulias
 
Επανοργάνωση πηγαίου κώδικα από γράφους εξαρτήσεων οντοτήτων µε βάση παραδείγ...
Επανοργάνωση πηγαίου κώδικα από γράφους εξαρτήσεων οντοτήτων µε βάση παραδείγ...Επανοργάνωση πηγαίου κώδικα από γράφους εξαρτήσεων οντοτήτων µε βάση παραδείγ...
Επανοργάνωση πηγαίου κώδικα από γράφους εξαρτήσεων οντοτήτων µε βάση παραδείγ...
ISSEL
 
Source code remodularization based on component dependency graphs
Source code remodularization based on component dependency graphsSource code remodularization based on component dependency graphs
Source code remodularization based on component dependency graphs
ISSEL
 
Ανάπτυξη Εφαρµογής Προφίλ Μηχανικών Λογισµικού από ∆εδοµένα Αποθετηρίων Λογισ...
Ανάπτυξη Εφαρµογής Προφίλ Μηχανικών Λογισµικού από ∆εδοµένα Αποθετηρίων Λογισ...Ανάπτυξη Εφαρµογής Προφίλ Μηχανικών Λογισµικού από ∆εδοµένα Αποθετηρίων Λογισ...
Ανάπτυξη Εφαρµογής Προφίλ Μηχανικών Λογισµικού από ∆εδοµένα Αποθετηρίων Λογισ...
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
 

Similar to Κλέαρχος Θωμόπουλος 7435 (20)

Εφαρµογή Τεχνικών Μηχανικής Μάθησης για την Ανάλυση Αλλαγών Κώδικα µε στόχο τ...
Εφαρµογή Τεχνικών Μηχανικής Μάθησης για την Ανάλυση Αλλαγών Κώδικα µε στόχο τ...Εφαρµογή Τεχνικών Μηχανικής Μάθησης για την Ανάλυση Αλλαγών Κώδικα µε στόχο τ...
Εφαρµογή Τεχνικών Μηχανικής Μάθησης για την Ανάλυση Αλλαγών Κώδικα µε στόχο τ...
 
Thessaloniki rb-24
Thessaloniki rb-24Thessaloniki rb-24
Thessaloniki rb-24
 
Επικοινωνία & συγχρονισμός, αλληλεπίδραση με το χρήστη, παράλληλος προγραμματ...
Επικοινωνία & συγχρονισμός, αλληλεπίδραση με το χρήστη, παράλληλος προγραμματ...Επικοινωνία & συγχρονισμός, αλληλεπίδραση με το χρήστη, παράλληλος προγραμματ...
Επικοινωνία & συγχρονισμός, αλληλεπίδραση με το χρήστη, παράλληλος προγραμματ...
 
Θεμιστοκλής Παπαβασιλείου
Θεμιστοκλής ΠαπαβασιλείουΘεμιστοκλής Παπαβασιλείου
Θεμιστοκλής Παπαβασιλείου
 
Ιωάννη Α. Ζαφειρίου
Ιωάννη Α. ΖαφειρίουΙωάννη Α. Ζαφειρίου
Ιωάννη Α. Ζαφειρίου
 
Stelios poulakakis daktylidis diploma thesis presentation
Stelios poulakakis daktylidis diploma thesis presentationStelios poulakakis daktylidis diploma thesis presentation
Stelios poulakakis daktylidis diploma thesis presentation
 
Εισαγωγή καινοτομιών στον Πανελλήνιο Διαγωνισμό Εκπαιδευτικής Ρομποτικής | Αν...
Εισαγωγή καινοτομιών στον Πανελλήνιο Διαγωνισμό Εκπαιδευτικής Ρομποτικής | Αν...Εισαγωγή καινοτομιών στον Πανελλήνιο Διαγωνισμό Εκπαιδευτικής Ρομποτικής | Αν...
Εισαγωγή καινοτομιών στον Πανελλήνιο Διαγωνισμό Εκπαιδευτικής Ρομποτικής | Αν...
 
Πρόταση Βιβλιοθηκών Σχετικών με Λέξεις-Κλειδιά για Εκκίνηση της Διαδικασίας Α...
Πρόταση Βιβλιοθηκών Σχετικών με Λέξεις-Κλειδιά για Εκκίνηση της Διαδικασίας Α...Πρόταση Βιβλιοθηκών Σχετικών με Λέξεις-Κλειδιά για Εκκίνηση της Διαδικασίας Α...
Πρόταση Βιβλιοθηκών Σχετικών με Λέξεις-Κλειδιά για Εκκίνηση της Διαδικασίας Α...
 
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 ...
 
Evangelos Papathomas: Semantic Code Search in Software Repositories using Neu...
Evangelos Papathomas: Semantic Code Search in Software Repositories using Neu...Evangelos Papathomas: Semantic Code Search in Software Repositories using Neu...
Evangelos Papathomas: Semantic Code Search in Software Repositories using Neu...
 
Evangelos papathomas diploma thesis presentation
Evangelos papathomas diploma thesis presentationEvangelos papathomas diploma thesis presentation
Evangelos papathomas diploma thesis presentation
 
Χατζηελευθερίου Ειρήνη
Χατζηελευθερίου ΕιρήνηΧατζηελευθερίου Ειρήνη
Χατζηελευθερίου Ειρήνη
 
Επανοργάνωση πηγαίου κώδικα από γράφους εξαρτήσεων οντοτήτων µε βάση παραδείγ...
Επανοργάνωση πηγαίου κώδικα από γράφους εξαρτήσεων οντοτήτων µε βάση παραδείγ...Επανοργάνωση πηγαίου κώδικα από γράφους εξαρτήσεων οντοτήτων µε βάση παραδείγ...
Επανοργάνωση πηγαίου κώδικα από γράφους εξαρτήσεων οντοτήτων µε βάση παραδείγ...
 
Source code remodularization based on component dependency graphs
Source code remodularization based on component dependency graphsSource code remodularization based on component dependency graphs
Source code remodularization based on component dependency graphs
 
Dontsios Dimitris
Dontsios DimitrisDontsios Dimitris
Dontsios Dimitris
 
Ανάπτυξη Εφαρµογής Προφίλ Μηχανικών Λογισµικού από ∆εδοµένα Αποθετηρίων Λογισ...
Ανάπτυξη Εφαρµογής Προφίλ Μηχανικών Λογισµικού από ∆εδοµένα Αποθετηρίων Λογισ...Ανάπτυξη Εφαρµογής Προφίλ Μηχανικών Λογισµικού από ∆εδοµένα Αποθετηρίων Λογισ...
Ανάπτυξη Εφαρµογής Προφίλ Μηχανικών Λογισµικού από ∆εδοµένα Αποθετηρίων Λογισ...
 
Ifigeneia Theodoridou
Ifigeneia TheodoridouIfigeneia Theodoridou
Ifigeneia Theodoridou
 
ΑΕΠΠ ΚΕΦ 2
ΑΕΠΠ ΚΕΦ 2ΑΕΠΠ ΚΕΦ 2
ΑΕΠΠ ΚΕΦ 2
 
Εφαρμογή Τεχνικών Εξόρυξης Δεδομένων για την Εξαγωγή Προτύπων Διόρθωσης σε Σφ...
Εφαρμογή Τεχνικών Εξόρυξης Δεδομένων για την Εξαγωγή Προτύπων Διόρθωσης σε Σφ...Εφαρμογή Τεχνικών Εξόρυξης Δεδομένων για την Εξαγωγή Προτύπων Διόρθωσης σε Σφ...
Εφαρμογή Τεχνικών Εξόρυξης Δεδομένων για την Εξαγωγή Προτύπων Διόρθωσης σε Σφ...
 
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...
 

More from ISSEL

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

More from ISSEL (20)

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

Κλέαρχος Θωμόπουλος 7435

  • 1. QualBoa: Σύστημα Προτάσεων Κώδικα με χρήση Μετρικών Επαναχρηστικότητας Λογισμικού Κλέαρχος Θωμόπουλος Ιούλιος 2016 Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Τομέας Ηλεκτρονικής και Υπολογιστών Εργαστήριο Επεξεργασίας Πληροφορίας και Υπολογισμών
  • 2. Συστήματα Επανάχρησης Λογισμικού • Εύρεση χρήσιμων τμημάτων κώδικα ▫ Ποιοτικό Λογισμικό ▫ Αξιόπιστο Λογισμικό ▫ Εξοικονόμηση κόστους, χρόνου και προσπάθειας • Επιστρέφουν επιτυχώς σχετικά αποτελέσματα, αλλά είναι επαναχρηστικά;
  • 3. Επαναχρηστικότητα Λογισμικού • Αναλύεται σε 4 γενικούς άξονες: ▫ Τμηματοποίηση (Modularity) ▫ Χρηστικότητα (Usability) ▫ Συντηρισιμότητα (Maintainability) ▫ Κατανοησιμότητα (Understandability) • Μέτρηση της επαναχρηστικότητας με χρήση μετρικών ποιότητας λογισμικού
  • 4. Boa: A Language and Infrastructure for Analyzing Ultra-Large-Scale Software Repositories • Υποδομή που περιλαμβάνει επεξεργασμένες πληροφορίες έργων λογισμικού των SourceForge (700.000) και GitHub (8.000.000) ▫ Metadata ▫ AST (Abstract Syntax Tree) • Γλώσσα ερωτημάτων ▫ Ειδικού σκοπού για προσπέλαση της υποδομής • Χρήση της Boa για αναζήτηση σχετικών τμημάτων κώδικα και υπολογισμό μετρικών ποιότητας
  • 5. Δομή του συστήματος QualBoa • Λήψη Σχετικών Τμημάτων Κώδικα και Μετρικών Ποιότητας • Αξιολόγηση των Τμημάτων Λογισμικού • Αξιολόγηση της Ποιότητας του Κώδικα
  • 6. Δομή του συστήματος QualBoa • Λήψη Σχετικών Τμημάτων Κώδικα και Μετρικών Ποιότητας • Αξιολόγηση των Τμημάτων Λογισμικού • Αξιολόγηση της Ποιότητας του Κώδικα
  • 7. Λήψη Σχετικών Τμημάτων Κώδικα και Μετρικών Ποιότητας • Δημιουργία της υπογραφής από το ερώτημα του χρήστη Class name: push returntype: void paramtype: Object returntype: Object name: pop name: Stack Method 1 Method 2 Parser
  • 8. Λήψη Σχετικών Τμημάτων Κώδικα και Μετρικών Ποιότητας • Δημιουργία του ερωτήματος στην Boa για τα σχετικά τμήματα κώδικα Class name: push returntype: void paramtype: Object returntype: Object name: pop name: Stack Method 1 Method 2
  • 9. Λήψη Σχετικών Τμημάτων Κώδικα και Μετρικών Ποιότητας • Υπολογισμός των μετρικών ποιότητας ▫ π.χ. ο αριθμός των public πεδίων/μεταβλητών Προσπέλαση όλων των πεδίων και όλων των modifier κάθε πεδίου Έλεγχος αν ο modifier του πεδίου είναι “public”
  • 10. Λήψη Σχετικών Τμημάτων Κώδικα και Μετρικών Ποιότητας • Επιστρέφονται τα σχετικά τμήματα κώδικα και οι αντίστοιχες μετρικές ποιότητας • Λήψη των σχετικών τμημάτων κώδικα που βρέθηκαν από το GitHub, μέσω του GitHub API • Τοπική αποθήκευση των αποτελεσμάτων μαζί με τις μετρικές ποιότητας για μετέπειτα χρήση
  • 11. Δομή του συστήματος QualBoa • Λήψη Σχετικών Τμημάτων Κώδικα και Μετρικών Ποιότητας • Αξιολόγηση των Τμημάτων Λογισμικού • Αξιολόγηση της Ποιότητας του Κώδικα
  • 12. Αξιολόγηση των Τμημάτων Λογισμικού • Υπολογισμός λειτουργικής βαθμολογίας ▫ Σχηματισμός μίας λίστας από την υπογραφή  π.χ [Stack, [push, void, Object], [pop, Object]] ▫ Υπολογισμός της ομοιότητας μεταξύ 2 Strings  Διαχωρισμός του String (camelCase) και χρήση του Jaccard Index: ▫ Υπολογισμός της βαθμολογίας μεταξύ 2 λιστών  Tanimoto Coefficient:  , S T Jaccard S T S T      2 2 , A B Tanimoto A B A B A B      r r r r r r r r
  • 13. Αξιολόγηση των Τμημάτων Λογισμικού • Παράδειγμα σύγκρισης των υπογραφών Class name: push Method 1 returntype: void paramtype: Object returntype: Object Method 2 name: pop name: Stack Class name: pushObject returntype: void paramtype: int returntype: int name: popObject name: IntStack Method 1 Method 2 0.579 0.5 0.545 0.5 1.0 0.0 0.286 0.5 0.0
  • 14. Δομή του συστήματος QualBoa • Λήψη Σχετικών Τμημάτων Κώδικα και Μετρικών Ποιότητας • Αξιολόγηση των Τμημάτων Λογισμικού • Αξιολόγηση της Ποιότητας του Κώδικα
  • 15. Αξιολόγηση της Ποιότητας του Κώδικα • Μοντέλο Επαναχρηστικότητας Relevant Quality Characteristics Quality Metrics Extreme Values Modularity Maintain ability Usability Understan dability Reusability Average LoC per Method > 30    Average Cyclomatic Complexity > 8    Coupling Between Objects > 20    Lack of Cohesion in Methods > 20   Average Block Depth > 3   Efferent Couplings > 20    Number of Public Fields > 10    Number of Public Methods > 30    #Metrics per Quality Characteristic: 3 4 4 3 8
  • 16. Αξιολόγηση του Συστήματος • Dataset 7 διαφορετικών ερωτημάτων Query #Relevant Results Average Precision Reusability Score Calculator 18 59.27% 70.83% ComplexNumber 15 86.18% 82.76% Matrix 10 95.88% 88.68% MortgageCalculator 7 100.00% 87.17% ShoppingCart 13 100.00% 100.00% Spreadsheet 2 100.00% 88.54% Stack 22 77.59% 100.00% Average 12.43 88.42% 88.28%
  • 17. Αξιολόγηση του Συστήματος • Average Precision 0 20 40 60 80 100 Average Precision Average Value
  • 18. Αξιολόγηση του Συστήματος • Reusability Score 0 20 40 60 80 100 Reusability Score Average Value
  • 19. Συμπεράσματα • Απόλυτα ικανοποιητικά αποτελέσματα αξιολόγησης • QualBoa ▫ Εξασφάλιση της λειτουργικής ταύτισης ▫ Πρωτοτυπία με την χρήση της Boa ▫ Σημαντικό πλεονέκτημα η αξιολόγηση της επαναχρηστικότητας του λογισμικού

Editor's Notes

  1. Τμηματοποίηση: συνοχή, φορητότητα Χρηστικότητα: κατάλληλο για χρήση: μέγεθος, εξαρτήσεις Συντηρισιμότητα: εύκολο να συντηρηθεί: μέγεθος, πολυπλοκότητα Κατανοησιμότητα: «καλογραμμένο», η λειτουργία πλήρως κατανοητή