Μιλτιάδης Σιάββας 7523

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

Transcript of Μιλτιάδης Σιάββας 7523

Page 1: Μιλτιάδης Σιάββας 7523

Σχεδίαση και ανάπτυξη πλαισίου αξιολόγησης ποιότηταςέργων λογισμικού βασισμένη σε στατική ανάλυση κώδικα και

ασαφείς τεχνικές πολυκριτηριακής λήψης αποφάσεων

Σιάββας ΜιλτιάδηςΥπό την επίβλεψη του κ. Ανδρέα Λ. Συμεωνίδη

Επίκουρου καθηγητή ΤΗΜΜΥ ΑΠΘΚαι του κ. Χατζηδημητρίου Κυριάκου

Μεταδιδακτορικού ερευνητή ΤΗΜΜΥ ΑΠΘ

Θεσσαλονίκη, 2016

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

Εργαστήριο Επεξεργασίας Πληροφορίας και Υπολογιστών (ΕΠΥ)

Page 2: Μιλτιάδης Σιάββας 7523

2

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

Εισαγωγή State of the art Σκοπός της διπλωματικής Ανάλυση του συστήματος Πειράματα/Συμπεράσματα Μελλοντική εργασία

Page 3: Μιλτιάδης Σιάββας 7523

3

Εισαγωγή Ψηφιακή Εποχή Πολλά προϊόντα λογισμικού αναπτύσσονται συνεχώς Ποιότητα λογισμικού βασικό ζήτημα τόσο για τον τελικό χρήστη όσο και για τις εταιρείες. Σημαντικό θέμα έρευνας

Αποσαφήνιση έννοιας Καθολικά αποδεκτός μηχανισμός αξιολόγησης

Αναζήτηση μηχανισμών εξαγωγής μοντέλων ποιότητας τα οποία να ανταποκρίνονται στις ανάγκες/απαιτήσεις των ενδιαφερόμενων.

Page 4: Μιλτιάδης Σιάββας 7523

4

ISO/IEC 25010

Page 5: Μιλτιάδης Σιάββας 7523

5

Ιεραρχική Δομή Μοντέλου Εκτίμησης

Page 6: Μιλτιάδης Σιάββας 7523

6

State of the ArtΠαρόμοια Συστήματα Μειονεκτήματα

Δύο συστήματα με παρόμοια λογική: Το μοντέλο SIG Το Quamoco

Μοντέλο SIG: Κλειστού κώδικα Αξιολόγηση Συντηρισιμότητας Μη αυτοματοποιημένη διαδικασία

σχεδίασης Quamoco:

Μη αξιόπιστος μηχανισμός εξαγωγής βαρών

Εξαιρετικά πολύπλοκα μοντέλα

Page 7: Μιλτιάδης Σιάββας 7523

7

Σκοπός Διπλωματικής Εργασίας

Σχεδίαση και ανάπτυξη ενός συστήματος το οποίο να επιτρέπει την εξαγωγή αξιόπιστων μοντέλων ποιότητας τα οποία να μπορούν να χρησιμοποιηθούν άμεσα για την αξιολόγηση προϊόντων (έργων) λογισμικού.

Το σύστημα βασίζεται: Στη στατική ανάλυση ενός αποθετηρίου αναφοράς Σε πολυκριτηριακές τεχνικές λήψης αποφάσεων

Page 8: Μιλτιάδης Σιάββας 7523

8

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

Page 9: Μιλτιάδης Σιάββας 7523

9

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

Page 10: Μιλτιάδης Σιάββας 7523

10

Quality Model Designer

Το σύστημα χρησιμοποιεί δύο εργαλεία:• CKJM Extended• PMD

Δύο τύποι ιδιοτήτων:• Ιδιότητες Μετρικών• Ιδιότητες Ευρημάτων

Page 11: Μιλτιάδης Σιάββας 7523

11

Quality Model Designer

Ιδιότητες Μετρικών :

Ιδιότητες Ευρημάτων:

Page 12: Μιλτιάδης Σιάββας 7523

12

Quality Model Designer

Page 13: Μιλτιάδης Σιάββας 7523

13

Threshold Calculator

Page 14: Μιλτιάδης Σιάββας 7523

14

Quality Model Designer

Page 15: Μιλτιάδης Σιάββας 7523

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

Έστω τα κριτήρια επιλογής και οι ποσοτικοποιημένες κρίσεις των ζευγών που εκφράζονται μέσω του αμοιβαίου πίνακα :

τότε τα βάρη δίδονται από:

Page 16: Μιλτιάδης Σιάββας 7523

16

Ασαφής Αναλυτική Ιεραρχική Διαδικασία

Ασαφοποιητής

Υπολογισμός Ασαφών Βαρών

Αποασαφοποιητής

w

Page 17: Μιλτιάδης Σιάββας 7523

17

Ασαφής Αναλυτική Ιεραρχική Διαδικασία

Ποιοτική Τιμή Κέντρο Τριγώνου (m)Very Low 1

Low 3Moderate 5

High 7Very High 9

Τιμή Αβεβαιότητας σU 0.9D 0.5C 0.1

1. Ασαφοποιητής

Page 18: Μιλτιάδης Σιάββας 7523

18

Ασαφής Αναλυτική Ιεραρχική Διαδικασία2. Υπολογισμός βαρών

3. Αποασαφοποίηση

Χρήση της μεθόδου του κέντρου βάρους

Page 19: Μιλτιάδης Σιάββας 7523

19

Quality Model Designer

Page 20: Μιλτιάδης Σιάββας 7523

20

Quality Model Exporter

Page 21: Μιλτιάδης Σιάββας 7523

21

Page 22: Μιλτιάδης Σιάββας 7523

22

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

Page 23: Μιλτιάδης Σιάββας 7523

23

Single Project Evaluator

Συνάθροιση πρώτου επιπέδου :• Υπολογισμός βαθμού ποιότητας των ιδιοτήτωνΣυνάθροιση δευτέρου επιπέδου:• Υπολογισμός βαθμού ποιότητας χαρακτηριστικών• Υπολογισμός συνολικού δείκτη ποιότητας

Page 24: Μιλτιάδης Σιάββας 7523

24

Single Project Evaluator

Page 25: Μιλτιάδης Σιάββας 7523

25

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

Page 26: Μιλτιάδης Σιάββας 7523

26

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

Page 27: Μιλτιάδης Σιάββας 7523

27

Online Quality Evaluator

Page 28: Μιλτιάδης Σιάββας 7523

28

Λίστα ΠειραμάτωνΠείραμα 1: Εξαγωγή μοντέλου βάσης – Έλεγχος υπόθεσης

Ελάχιστο πλήθος γραμμών κώδικα αποθετηρίου : 1.4 εκατομμύρια LOC (περίπου)Πείραμα 2: Σύγκριση τεχνικών εξαγωγής βαρών

Υψηλή ετεροσυσχέτιση μεταξύ των αποτελεσμάτωνΠείραμα 3: Σύγκριση σειριακής/παράλληλης υλοποίησης

Σημαντική επίσπευση της διαδικασίας μέσω παραλληλοποίησηςΠείραμα 4: Αξιολόγηση ποιότητας έργων λογισμικούΠείραμα 5: Σύγκριση ποιότητας με δημοτικότητα προϊόντων λογισμικού

Σκοπός Πειραμάτων: Επικύρωση λειτουργίας (πειράματα 1 και 2) Βελτίωση επίδοσης (πείραμα 3) Αξιολόγηση Κώδικα (πειράματα 4 και 5)

Page 29: Μιλτιάδης Σιάββας 7523

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

Page 30: Μιλτιάδης Σιάββας 7523

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

Page 31: Μιλτιάδης Σιάββας 7523

Πείραμα 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

Page 32: Μιλτιάδης Σιάββας 7523

32

Μελλοντική Εξέλιξη Επέκταση σε περισσότερες γλώσσες προγραμματισμού. Εφαρμογή πιο προηγμένων τεχνικών παραλληλοποίησης της στατικής ανάλυσης Δημιουργία ολοκληρωμένης διαδικτυακής υπηρεσίας:

Πιστοποίησης ποιότητας Συνεχούς ελέγχου ποιότητας

Page 33: Μιλτιάδης Σιάββας 7523

33

Ερωτήσεις;

Page 34: Μιλτιάδης Σιάββας 7523

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Γεν

ικός τ

ύπος

Γενικό

ς τύπος

Γενικό

ς τύπος

Γενικό

ς τύπος

Γενικό

ς τύπος

Γενικό

ς τύπος

Γενικό

ς τύπος

Γενικό

ς τύπος

Γενικό

ς τύπος

Γενικό

ς τύπος

Γενικό

ς τύπος

Γενικό

ς τύπος

Γενικό

ς τύπος

Γενικό

ς τύπος

Γενικός τύπος

Γενικός τύπος

Γενικός τύπος

Page 35: Μιλτιάδης Σιάββας 7523

35

Πείραμα 2 : Σύγκριση Τεχνικών Εξαγωγής Βαρών

Page 36: Μιλτιάδης Σιάββας 7523

36

Πείραμα 2 : Σύγκριση Τεχνικών Εξαγωγής Βαρών

Page 37: Μιλτιάδης Σιάββας 7523

37

Πείραμα 3 : Σύγκριση Σειριακού/Παράλληλου

Μοντέλο Βάσης:• Σειριακή Υλοποίηση : 3.5 – 4

hours (best case)• Παράλληλη υλοποίηση: 1.5

hours (worst case)

Page 38: Μιλτιάδης Σιάββας 7523

38

Αποτελέσματα Πολλαπλής Αξιολόγησης