Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Μετρικές Λογισμικού για Αντικειμενοστρεφή Συστήματα Object-Oriented Design Metrics Προπτυχιακό Πρόγραμμα Σπουδών, Τμ. Εφ. Πληροφορικής.

Παρόμοιες παρουσιάσεις


Παρουσίαση με θέμα: "Μετρικές Λογισμικού για Αντικειμενοστρεφή Συστήματα Object-Oriented Design Metrics Προπτυχιακό Πρόγραμμα Σπουδών, Τμ. Εφ. Πληροφορικής."— Μεταγράφημα παρουσίασης:

1 Μετρικές Λογισμικού για Αντικειμενοστρεφή Συστήματα Object-Oriented Design Metrics Προπτυχιακό Πρόγραμμα Σπουδών, Τμ. Εφ. Πληροφορικής

2 Μετρικές Λογισμικού Τοm De Marco (1982): "You cannot control what you cannot measure" Για την παρακολούθηση, διαχείριση, ποιοτική μελέτη και βελτίωση ΟΠΟΙΟΥΔΗΠΟΤΕ τεχνικού έργου είναι απαραίτητη η έννοια της μέτρησης Η εξαγωγή μέτρων είναι υποκειμενική (π.χ. αξιολόγηση ελκυστικότητας αυτοκινήτου, πολυπλοκότητας λογισμικού) Μέτρο: Ποσοτική ένδειξη αριθμού, διαστάσεων, χωρητικότητας, όγκου κτλ προϊόντος ή διαδικασίας Μέτρηση: Διαδικασία υπολογισμού του μέτρου Μετρική: Ποσοτική εκτίμηση του βαθμού κατά τον οποίο ένα σύστημα κατέχει ένα χαρακτηριστικό

3 Μετρικές Λογισμικού Αριθμός λαθών σε ένα πρόγραμμα = Μέτρο Συλλογή και καταμέτρηση λαθών = Μέτρηση Συσχετισμός λαθών με κάποιο χαρακτηριστικό, π.χ. ποιότητα (πάνω από 100 λάθη -> κακή ποιότητα, κάτω από 10 λάθη => καλή ποιότητα) = Μετρική

4 Μετρικές Λογισμικού Μετρικές Διαδικασίας (Διαδικασία: Άνθρωποι, Τεχνολογία, Προϊόν) Μετρικές Έργου (Π.χ. εκτίμηση διάρκειας και κόστους του έργου, COCOMO) Μετρικές Προϊόντος Εσωτερικά Χαρακτηριστικά Οι ιδιότητες εκείνες που εκτιμώνται εξετάζοντας το λογισμικό μεμονωμένα Εξωτερικά Χαρακτηριστικά Οι ιδιότητες εκείνες που είναι δυνατόν να εκτιμηθούν μόνο σε σχέση με το περιβάλλον λειτουργίας

5 Μετρικές Λογισμικού Μία διαδικασία μέτρησης περιλαμβάνει τις δραστηριότητες: Διατύπωση (Καθορισμός μετρικών) Συλλογή (Συγκέντρωση δεδομένων) Ανάλυση (Υπολογισμός μετρικών) Ερμηνεία (Αξιολόγηση μετρικών) Ανάδραση (Συστάσεις για βελτίωση)

6 Μετρικές Λογισμικού Αρχές για την διατύπωση κατάλληλων μετρικών: Οι στόχοι των μετρήσεων πρέπει να καθοριστούν πριν από τη συλλογή δεδομένων (Μέγεθος κώδικα, πλήθος δεδομένων, ή πλήθος τελεστών ?) Σαφής ορισμός των μετρικών (NCLOC ή CLOC ?) Χρήση μετρικών προσαρμοσμένων στα προϊόντα και τις διαδικασίες (ΒΔ -> αριθμός δεδομένων, Scient.Progr. -> πολυπλοκότητα)

7 Μετρικές Λογισμικού Αρχές για τη συλλογή και ανάλυση μετρήσεων: Όπου είναι δυνατό η συλλογή και ανάλυση θα πρέπει να αυτοματοποιείται Χρήση αξιόπιστων στατιστικών τεχνικών για διερεύνηση εσωτερικών και εξωτερικών χαρακτηριστικών (π.χ. συσχετισμός πολυπλοκότητας και αριθμού λαθών) Για κάθε μετρική θα πρέπει να επιδιώκεται ο καθορισμός συγκεκριμένων κανόνων ερμηνείας

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

9 Μετρικές Λογισμικού Πρώτο set μετρικών για ΟΟ συστήματα (Chidamber & Kemerer, MIT, 2001) 1. Weighted Methods Per Class (WMC) 2. Depth of Inheritance Tree (DIT) 3. Number of children (NOC) 4. Coupling between objects (CBO) 5. Response For a Class (RFC) 6. Lack of Cohesion in Methods (LCOM)

10 WMC Θεωρούμε μία κλάση C 1 με μεθόδους M 1, M 2,..., M n Αν c 1, c 2,..., c n είναι η στατική πολυπλοκότητα κάθε μεθόδου Συζήτηση: Ο αριθμός των μεθόδων και της πολυπλοκότητάς τους αποτελεί ένδειξη της προσπάθειας και του χρόνου που απαιτείται για την ανάπτυξη και συντήρηση του αντικειμένου Όσο μεγαλύτερος ο αριθμός των μεθόδων, τόσο μεγαλύτερη και η επίπτωση στους απογόνους καθώς οι παράγωγες κλάσεις θα τις κληρονομήσουν

11 DIT DIT = Βάθος κληρονομικότητας στο οποίο βρίσκεται μία κλάση Συζήτηση: Όσο βαθύτερα βρίσκεται μία κλάση, τόσο μεγαλύτερο αριθμό μεθόδων κληρονομεί. Κατά συνέπεια γίνεται πιο πολύπλοκη.

12 NOC NOC = Αριθμός άμεσων απογόνων Συζήτηση: Ο αριθμός των απογόνων αποτελεί ένδειξη της επίδρασης της κλάσης στο σύστημα. Αν μία κλάση έχει μεγάλο αριθμό απογόνων, απαιτείται εξαντλητικότερος έλεγχος των μεθόδων της

13 CBO Η τιμή της μετρικής CBO για μία κλάση είναι ίση με τον αριθμό των άλλων κλάσεων στο σύστημα με τις οποίες υπάρχει σύζευξη (εξαιρώντας την κληρονομικότητα) Συζήτηση: Υπερβολική σύζευξη με άλλες κλάσεις καθιστά την κλάση δυσκολότερα συντηρήσιμη και επαναχρησιμοποιήσιμη.

14 RFC H τιμή RFC ισούται με τον αριθμό των μεθόδων που μπορεί να εκτελεστούν ως απόκριση σε ένα μήνυμα Μ i : μέθοδοι της κλάσης R i : απομακρυσμένες μέθοδοι που μπορούν να κληθούν από μεθόδους της κλάσης Συζήτηση: Αν ο αριθμός των μεθόδων που "ενεργοποιούνται" ως απόκριση σε ένα μήνυμα είναι μεγάλος, ο έλεγχος και η συντήρηση της κλάσης είναι δύσκολη.

15 LCOM Θεωρούμε μία κλάση C 1 με μεθόδους M 1, M 2,..., M n Έστω {I i } το σύνολο των μεταβλητών στιγμιοτύπου που χρησιμοποιούνται από τη μέθοδο M i. Υπάρχουν n τέτοια σύνολα: {Ι 1 }, {Ι 2 },..., {Ι n } Συζήτηση: Όσο περισσότερες είναι οι συνεκτικές μέθοδοι, τόσο μεγαλύτερη η συνεκτικότητα και τόσο χαμηλότερη η τιμή της μετρικής LCOM

16 LCOM Συζήτηση: Η έλλειψη συνεκτικότητας υποδηλώνει ότι η κλάση πιθανόν να πρέπει να διασπαστεί σε περισσότερες κλάσεις Χαμηλή συνεκτικότητα συνεπάγεται πολυπλοκότητα, αυξημένη πιθανότητα εμφάνισης σφαλμάτων, δυσκολία στη συντήρηση, δυσκολία στην επαναχρησιμοποίηση

17 Καταγραφή μετρικών για το έργο λογισμικού Για το έργο λογισμικού που αναπτύσσετε θα καταγράψετε τις τιμές των κάτωθι μετρικών για κάθε κλάση και για το σύστημα ΜετρικήΟνομασία στο CASE toolΣύστημαΣχόλια LOCLOCΆθροισμα αριθμός γραμμών ΝΟΟΝΟΟΆθροισμα αριθμός μεθόδων WMCWMPC1Μ.Ο. πολυπλοκότητα DITDOIHΜέγιστη τιμή βάθος κληρ. NOCNOCCΜ.Ο. αριθμός απογόνων CBOCBOM.O. σύζευξη RFCRFCM.O. αποκρινόμενες μέθοδοι LCOMLCOM1M.O. συνεκτικότητα συνολική διάρκεια του έργου σε ανθρωποώρες Επιπλέον θα πρέπει να σημειώσετε τη συνολική διάρκεια του έργου σε ανθρωποώρες που δαπανήθηκαν για όλες τις φάσεις ανάπτυξης


Κατέβασμα ppt "Μετρικές Λογισμικού για Αντικειμενοστρεφή Συστήματα Object-Oriented Design Metrics Προπτυχιακό Πρόγραμμα Σπουδών, Τμ. Εφ. Πληροφορικής."

Παρόμοιες παρουσιάσεις


Διαφημίσεις Google