Μιλτιάδης Σιάββας 7523
Transcript of Μιλτιάδης Σιάββας 7523
Σχεδίαση και ανάπτυξη πλαισίου αξιολόγησης ποιότηταςέργων λογισμικού βασισμένη σε στατική ανάλυση κώδικα και
ασαφείς τεχνικές πολυκριτηριακής λήψης αποφάσεων
Σιάββας ΜιλτιάδηςΥπό την επίβλεψη του κ. Ανδρέα Λ. Συμεωνίδη
Επίκουρου καθηγητή ΤΗΜΜΥ ΑΠΘΚαι του κ. Χατζηδημητρίου Κυριάκου
Μεταδιδακτορικού ερευνητή ΤΗΜΜΥ ΑΠΘ
Θεσσαλονίκη, 2016
ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ & ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ
Εργαστήριο Επεξεργασίας Πληροφορίας και Υπολογιστών (ΕΠΥ)
2
Δομή Παρουσίασης
Εισαγωγή State of the art Σκοπός της διπλωματικής Ανάλυση του συστήματος Πειράματα/Συμπεράσματα Μελλοντική εργασία
3
Εισαγωγή Ψηφιακή Εποχή Πολλά προϊόντα λογισμικού αναπτύσσονται συνεχώς Ποιότητα λογισμικού βασικό ζήτημα τόσο για τον τελικό χρήστη όσο και για τις εταιρείες. Σημαντικό θέμα έρευνας
Αποσαφήνιση έννοιας Καθολικά αποδεκτός μηχανισμός αξιολόγησης
Αναζήτηση μηχανισμών εξαγωγής μοντέλων ποιότητας τα οποία να ανταποκρίνονται στις ανάγκες/απαιτήσεις των ενδιαφερόμενων.
4
ISO/IEC 25010
5
Ιεραρχική Δομή Μοντέλου Εκτίμησης
6
State of the ArtΠαρόμοια Συστήματα Μειονεκτήματα
Δύο συστήματα με παρόμοια λογική: Το μοντέλο SIG Το Quamoco
Μοντέλο SIG: Κλειστού κώδικα Αξιολόγηση Συντηρισιμότητας Μη αυτοματοποιημένη διαδικασία
σχεδίασης Quamoco:
Μη αξιόπιστος μηχανισμός εξαγωγής βαρών
Εξαιρετικά πολύπλοκα μοντέλα
7
Σκοπός Διπλωματικής Εργασίας
Σχεδίαση και ανάπτυξη ενός συστήματος το οποίο να επιτρέπει την εξαγωγή αξιόπιστων μοντέλων ποιότητας τα οποία να μπορούν να χρησιμοποιηθούν άμεσα για την αξιολόγηση προϊόντων (έργων) λογισμικού.
Το σύστημα βασίζεται: Στη στατική ανάλυση ενός αποθετηρίου αναφοράς Σε πολυκριτηριακές τεχνικές λήψης αποφάσεων
8
Δομή του Συστήματος
9
Δομή του Συστήματος
10
Quality Model Designer
Το σύστημα χρησιμοποιεί δύο εργαλεία:• CKJM Extended• PMD
Δύο τύποι ιδιοτήτων:• Ιδιότητες Μετρικών• Ιδιότητες Ευρημάτων
11
Quality Model Designer
Ιδιότητες Μετρικών :
Ιδιότητες Ευρημάτων:
12
Quality Model Designer
13
Threshold Calculator
14
Quality Model Designer
15
Αναλυτική Ιεραρχική ΔιαδικασίαTQI Maintainability Reliability Security Performance
Maintainability - 5/1 9/1 3/2
Reliability - - 5/3 1/2
Security - - - 1/6
Performance - - - -
TQI Maintainability Reliability Security Performance
Maintainability 1 5/1 9/1 3/2
Reliability 1/5 1 5/3 1/2
Security 1/9 3/5 1 1/6
Performance 2/3 2/1 6/1 1
w0.5178
0.1168
0.0588
0.3066
Έστω τα κριτήρια επιλογής και οι ποσοτικοποιημένες κρίσεις των ζευγών που εκφράζονται μέσω του αμοιβαίου πίνακα :
τότε τα βάρη δίδονται από:
16
Ασαφής Αναλυτική Ιεραρχική Διαδικασία
Ασαφοποιητής
Υπολογισμός Ασαφών Βαρών
Αποασαφοποιητής
w
17
Ασαφής Αναλυτική Ιεραρχική Διαδικασία
Ποιοτική Τιμή Κέντρο Τριγώνου (m)Very Low 1
Low 3Moderate 5
High 7Very High 9
Τιμή Αβεβαιότητας σU 0.9D 0.5C 0.1
1. Ασαφοποιητής
18
Ασαφής Αναλυτική Ιεραρχική Διαδικασία2. Υπολογισμός βαρών
3. Αποασαφοποίηση
Χρήση της μεθόδου του κέντρου βάρους
19
Quality Model Designer
20
Quality Model Exporter
21
22
Δομή του Συστήματος
23
Single Project Evaluator
Συνάθροιση πρώτου επιπέδου :• Υπολογισμός βαθμού ποιότητας των ιδιοτήτωνΣυνάθροιση δευτέρου επιπέδου:• Υπολογισμός βαθμού ποιότητας χαρακτηριστικών• Υπολογισμός συνολικού δείκτη ποιότητας
24
Single Project Evaluator
25
Δομή του Συστήματος
26
Δομή του Συστήματος
27
Online Quality Evaluator
28
Λίστα ΠειραμάτωνΠείραμα 1: Εξαγωγή μοντέλου βάσης – Έλεγχος υπόθεσης
Ελάχιστο πλήθος γραμμών κώδικα αποθετηρίου : 1.4 εκατομμύρια LOC (περίπου)Πείραμα 2: Σύγκριση τεχνικών εξαγωγής βαρών
Υψηλή ετεροσυσχέτιση μεταξύ των αποτελεσμάτωνΠείραμα 3: Σύγκριση σειριακής/παράλληλης υλοποίησης
Σημαντική επίσπευση της διαδικασίας μέσω παραλληλοποίησηςΠείραμα 4: Αξιολόγηση ποιότητας έργων λογισμικούΠείραμα 5: Σύγκριση ποιότητας με δημοτικότητα προϊόντων λογισμικού
Σκοπός Πειραμάτων: Επικύρωση λειτουργίας (πειράματα 1 και 2) Βελτίωση επίδοσης (πείραμα 3) Αξιολόγηση Κώδικα (πειράματα 4 και 5)
29
Πείραμα 4 : Αξιολόγηση ΠροϊόντωνΕφαρμογή σε Auto-generated projectsΕφαρμογή σε υπαρκτά προϊόντα λογισμικού
Όνομα Προϊόντος LOC TQI
Annotations_plugin 58 0.8149
Hamcrest 48890 0.79
Apache Commons 24907 0.7465
Javac 120726 0.7425
Joda Converter 6542 0.7158
Findbugs 491 0.6954
Persistence 1422 0.6767
Jpa 3286 0.6705
Maven-Model 35684 0.6702
Google Protobuf 78046 0.6527
Όνομα Προϊόντος LOC TQI
HyperSQL 361948 0.3934
Hamcrest Core 2557 0.3765
bcel 72470 0.3714
Jackson data mapper 69508 0.3590
Jcommander 6231 0.3489
Osgi 18326 0.3249
Compentium 2272 0.3220
Dom4j 38022 0.3217
Jackson 22035 0.3200
Slf4j 2983 0.2912
30
Πείραμα 4 : Αξιολόγηση ΠροϊόντωνΈκδοση Προϊόντος LOC TQI
v0.1 725 0,7341
v0.2 1647 0,6374
v0.3 10853 0,6538
v0.4 10853 0,6538
v0.5 10742 0,6459
v0.6 14298 0,6492
v0.7 17354 0,6446
v1.0 18365 0,6644
v1.1 19519 0,6654
v1.3 12930 0,6438
v1.4 12930 0,7234
v1.5 13159 0,8115
Πείραμα 5 : Σύγκριση Ποιότητας με ΔημοτικότηταΌνομα Προϊόντος Reputation* Quality
JUnit 1 33
Bcel 2 92
Slf4j 3 99
Jaxb-Runtime 4 73
Logback 5 40
Guava 6 43
Commons-IO 7 66
Log4j 8 51
Mockito 9 60
Commons-Lang 10 30
Spearman’s Rank Coefficient:• rho = -0.2616742• p = 0.008708
* Η κατάταξη που είχαν τα προϊόντα λογισμικού στις 29/1/2016
31
32
Μελλοντική Εξέλιξη Επέκταση σε περισσότερες γλώσσες προγραμματισμού. Εφαρμογή πιο προηγμένων τεχνικών παραλληλοποίησης της στατικής ανάλυσης Δημιουργία ολοκληρωμένης διαδικτυακής υπηρεσίας:
Πιστοποίησης ποιότητας Συνεχούς ελέγχου ποιότητας
33
Ερωτήσεις;
34
Πείραμα 1 : Έλεγχος ΥπόθεσηςΈλεγχος υπόθεσης: Δεν υπάρχει στατιστικά σημαντική διαφορά μεταξύ των ορίων
Μέγεθος
Αποθετηρίουp Total
LOC90 0.1704 5,057,20280 0.1482 4,792,34870 0.1124 4,590,83160 0.1392 3,738,61850 0.06411 3,265,83840 0.05925 2,346,76430 0.05687 1,691,15325 0.04859 1,347,99320 0.04719 1,064,10015 0.04981 959,17910 0.03738 414,563Γεν
ικός τ
ύπος
Γενικό
ς τύπος
Γενικό
ς τύπος
Γενικό
ς τύπος
Γενικό
ς τύπος
Γενικό
ς τύπος
Γενικό
ς τύπος
Γενικό
ς τύπος
Γενικό
ς τύπος
Γενικό
ς τύπος
Γενικό
ς τύπος
Γενικό
ς τύπος
Γενικό
ς τύπος
Γενικό
ς τύπος
Γενικός τύπος
Γενικός τύπος
Γενικός τύπος
35
Πείραμα 2 : Σύγκριση Τεχνικών Εξαγωγής Βαρών
36
Πείραμα 2 : Σύγκριση Τεχνικών Εξαγωγής Βαρών
37
Πείραμα 3 : Σύγκριση Σειριακού/Παράλληλου
Μοντέλο Βάσης:• Σειριακή Υλοποίηση : 3.5 – 4
hours (best case)• Παράλληλη υλοποίηση: 1.5
hours (worst case)
38
Αποτελέσματα Πολλαπλής Αξιολόγησης