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

Post on 05-Apr-2017

55 views 0 download

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

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