Περιεχόµενο. Εµπειρικές σχέσεις για το χαρακτηριστικό ύψος. Μετρήσεις και Μετρικές Λογισµικού. Θεωρία µετρήσεων. Θεωρία Μετρήσεων

Σχετικά έγγραφα
Βασικά στάδια τυπικής µέτρησης. Απεικόνιση Μέτρησης. Ρόλος της συνθήκης αναπαράστασης. Κλίµακες µετρήσεων. Ονοµαστική κλίµακα.

Επιχειρηµατικές ιαδικασίες: Εισαγωγικές Έννοιες & Αρχικά στάδια µοντελοποίησης

Έλεγχος Συνένωσης και Διασφάλιση Ποιότητας

Ελεγχος, Αξιοπιστία και Διασφάλιση Ποιότητας Λογισµικού:Γενική Επισκόπηση - επισηµάνσεις

Ελεγχος, Αξιοπιστία και Διασφάλιση Ποιότητας Λογισµικού Πολυπλοκότητα

Ελληνικό Ανοικτό Πανεπιστήµιο Εισαγωγή στη Ενοποιηµένη Προσέγγιση Unified Process (UP) ρ. Πάνος Φιτσιλής

Περιεχόµενα. Ανασκόπηση - Ορισµοί. Ο κύκλος ανάπτυξης προγράµµατος. Γλώσσες Προγραµµατισµού Ασκήσεις

Βαθµοί λειτουργίας. Εύρεση του κατάλληλου µοντέλου. Εκτίµηση της προσπάθειας και του χρόνου. Μέτρηση χρόνου και προσπάθειας

Κεφάλαιο 7 : Είδη, Τεχνικές, και Περιβάλλοντα Προγραµµατισµού

ιδάσκων: ηµήτρης Ζεϊναλιπούρ

Η στοίβα (stack) H στοίβα είναι ένας αποθηκευτικός χώρος οργανωµένος κατά τέτοιο τρόπο ώστε να υποστηρίζει δύο βασικές λειτουργίες:

Ελεγχος, Αξιοπιστία και Διασφάλιση Ποιότητας Λογισµικού - Μετρικές

οκιμασία και πλάνο δοκιμασίας

Εύρεση του κατάλληλου µοντέλου

Λογισµικό (Software SW) Γλώσσες

Ανάπτυξη Μεγάλων Εφαρµογών στη Γλώσσα C (2)

Η ΕΣΩΤΕΡΙΚΗ ΕΠΙΘΕΩΡΗΣΗ ΣΑΝ ΚΙΝΗΤΗΡΙΟΣ ΥΝΑΜΗ ΑΠΟΤΕΛΕΣΜΑΤΙΚΟΤΗΤΑΣ ΕΝΟΣ ΣΥΣΤΗΜΑΤΟΣ ΠΟΙΟΤΗΤΑΣ ISO 9001

ΠΙΝΑΚΑΣ ΠΕΡΙΕΧΟΜΕΝΩΝ

Ανάπτυξη & Σχεδίαση Λογισμικού (ΗΥ420)

Ελληνικό Ανοικτό Πανεπιστήµιο. Η Ανάλυση και ο Σχεδιασµός στην Ενοποιηµένη ιαδικασία. ρ. Πάνος Φιτσιλής

ΠΛΗΡΟΦΟΡΙΚΗ ΣΤΟ ΕΝΙΑΙΟ ΛΥΚΕΙΟ

Διαδικασίες παραγωγής λογισμικού. Βασικές αρχές Τεχνολογίας Λογισμικού, 8η αγγ. έκδοση

Π. Σταθοπούλου ή Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7

Προγραμματισμός και Επιλογή Συστημάτων

Συναρτήσεις. Εισαγωγή

Διαγράμματα UML για την τεκμηρίωση της Αρχιτεκτονικής

Πρώτες ύλες. Πιθανοί κίνδυνοι σε όλα τα στάδια της παραγωγής. Καθορισµός πιθανότητας επιβίωσης µικροοργανισµών. Εκτίµηση επικινδυνότητας

Εισαγωγή στη Χρήση του SPSS for Windows Σελίδα:

ΦΥΣ-151. Ηλεκτρονικοί Υπολογιστές Ι (FORTRAN 77) (Άνοιξη 2004)

Ελεγχος, Αξιοπιστία και Διασφάλιση Ποιότητας Λογισµικού

Τεχνολογίες Υλοποίησης Αλγορίθµων

Ελληνικό Ανοικτό Πανεπιστήµιο. Η Υλοποίηση στην Ενοποιηµένη ιαδικασία. ρ. Πάνος Φιτσιλής

ΕΡΓΑΣΤΗΡΙΟ 1 - ΣΗΜΕΙΩΣΕΙΣ

Προγραμματισμός Η/Υ. Αλγόριθμοι. ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος

Κεφάλαιο 7: Υπορουτίνες

Κεφάλαιο 7: Υποπρογράμματα. Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών

Computing. Νοέμβριος Έκδοση 1.0

Σεμινάριο Τελειοφοίτων. 6- Εμπειρική μέτρηση & ανάλυση

ΑΛΓΟΡΙΘΜΟΙ. Τι είναι αλγόριθμος

Γεωγραφικά Πληροφοριακά Συστήµατα (Geographical Information Systems GIS)

Κεφάλαιο 3.1, : Συναρτήσεις I. ( ιάλεξη 11) ιδάσκων: ηµήτρης Ζεϊναλιπούρ

Κεφάλαιο 5ο: Εντολές Επανάληψης

Δοµές Δεδοµένων. 9η Διάλεξη Ταξινόµηση - Στοιχειώδεις µέθοδοι. Ε. Μαρκάκης

Κεφάλαιο , 3.2: Συναρτήσεις II. ( ιάλεξη 12) ιδάσκων: ηµήτρης Ζεϊναλιπούρ

Σύστημα. Αντώνης Μαϊργιώτης

(McCabe, 1976) (1/4) C = e n + 2p 29/4/2009

Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών

ΠΛΗ111. Ανοιξη Μάθηµα 3 ο. Συνδεδεµένες Λίστες. Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης

Διαχείριση έργων. Βασικές αρχές Τεχνολογίας Λογισμικού, 8η αγγ. έκδοση

ΛΟΓΙΚΑ ΔΙΑΓΡΑΜΜΑΤΑ. Γ Λυκείου Κατεύθυνσης Mike Trimos

Ποιότητα Λογισμικού. Μετρικές Αντικειμενοστραφούς Σχεδίασης

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

Δοµές Δεδοµένων. 6η Διάλεξη Αναδροµικές Εξισώσεις και Αφηρηµένοι Τύποι Δεδοµένων. Ε. Μαρκάκης

Περιεχόµενα του µαθήµατος 1. στον προγραµµατισµό 2. Λογικά διαγράµµατα 3. Τα βασικά της FORTRAN 4. Μεταβλητές & παράµετροι 5. οµές επανάληψης 6. οµές

8 ΙΑΧΕΙΡΙΣΗ Ε ΟΜΕΝΩΝ ΠΡΟΙΟΝΤΟΣ PRODUCT DATA MANAGEMENT (PDM)

FORTRAN & Αντικειμενοστραφής Προγραμματισμός ΣΝΜΜ 2016

FORTRAN & Αντικειμενοστραφής Προγραμματισμός ΣΝΜΜ 2016

Τι είναι πληροφοριακό σύστημα

Ο Βρόχος Ρύθµισης µε Ανατροφοδότηση

Υλοποιήσεις Ψηφιακών Φίλτρων

Ελληνικό Ανοικτό Πανεπιστήµιο. Η ιαχείριση Απαιτήσεων στην Ενοποιηµένη ιαδικασία. ρ. Πάνος Φιτσιλής

ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΑΝΑΛΥΣΗ Επιχειρηματική Μοντελοποίηση. Ιωάννης Σταμέλος Βάιος Κολοφωτιάς Πληροφορική

ΜΟΝΤΕΛΑ ΙΑΚΡΙΤΩΝΣΥΣΤΗΜΑΤΩΝ

ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΑΝΑΛΥΣΗ Rational Unified Process. Ιωάννης Σταμέλος Βάιος Κολοφωτιάς Πληροφορική

ΓΕΝΙΚ Ι Ο Κ Ο Ε ΠΙ Π Τ Ι Ε Τ Λ Ε ΕΙΟ Ι Ο Ε Θ Ε Ν Θ ΙΚ Ι Η Κ Σ Η Α Μ

Περιεχόµενα. Πληροφοριακά Συστήµατα: Κατηγορίες και Κύκλος Ζωής. Π.Σ. ιαχείρισης Πράξεων. Π.Σ. ιοίκησης. Κατηγορίες Π.Σ. Ο κύκλος ζωής Π.Σ.

Δείκτες σε συναρτήσεις. Προγραμματισμός II 1

Κατευθυντήριες γραµµές

Εισαγωγή στον Προγραμματισμό

ΓΕΝΙΚΟΣ ΚΑΝΟΝΙΣΜΟΣ ΠΙΣΤΟΠΟΙΗΣΗΣ ΠΡΟΣΩΠΩΝ Παράρτηµα 1 Όροι και ορισµοί

Βάσεις εδοµένων. Βασίλειος Βεσκούκης. Ενα παράδειγµα σχεδίασης Β. Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Αγρονόµων Τοπογράφων Μηχανικών

ΓΚΠΠ - Παράρτηµα 1 Όροι και ορισµοί

Σχεδιασµός βασισµένος σε συνιστώσες

Ελεγχος, Αξιοπιστία και Διασφάλιση Ποιότητας Λογισµικού: Εξωτερική Ποιότητα

Χωρική Βάση δεδοµένων Autocad

ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ ΙΟΙΚΗΣΗΣ. Ανάπτυξη Πληροφοριακών Συστηµάτων Επισκόπηση Π.Σ. & τεχνικές για Ανάλυση και Ανάπτυξη. πληροφοριακών συστηµάτων

ΑΝΑΛΥΣΗ Ε ΟΜΕΝΩΝ 1. ΕΙ Η Ε ΟΜΕΝΩΝ, ΣΥΛΛΟΓΗ, ΚΩ ΙΚΟΠΟΙΗΣΗ ΚΑΙ ΕΙΣΑΓΩΓΗ

Πληροφορική ΙΙ Εισαγωγή στις Βάσεις Δεδομένων. Τμήμα Λογιστικής

Δοκιμή και Αποσφαλμάτωση Testing and Debugging

Διοίκηση Ολικής Ποιότητας ΔΙΑΛΕΞΗ 2 η : Εργαλεία και Τεχνικές

Επεξεργασία Αρχείων Κειµένου

Εισαγωγή στην πληροφορική

Κανόνες για ανάπτυξη διαγραµµάτων κλάσεων

Διοίκηση Ολικής Ποιότητας ΔΙΑΛΕΞΗ 8 η : Στατιστικός Έλεγχος Ποιότητας. Δρ. Α. Στεφανή Τμήμα Διοίκησης Επιχειρήσεων ΤΕΙ Δυτικής Ελλάδας - Μεσολόγγι

Ελεγχος, Αξιοπιστία και Διασφάλιση Ποιότητας Λογισµικού

Αρχιτεκτονική Λογισμικού


ΗΥ-150. Προγραµµατισµός. Εντολές Ελέγχου Ροής

ΕΝΟΤΗΤΑ 2 η ΙΑΧΕΙΡΙΣΗ ΡΟΗΣ ΕΡΓΑΣΙΑΣ (WORKFLOW MANAGEMENT) 2.1 Εισαγωγή

HY118- ιακριτά Μαθηµατικά. Παράδειγµα. Από τα συµπεράσµατα στις υποθέσεις Αποδείξεις - Θεωρία συνόλων. Από τις υποθέσεις στα συµπεράσµατα...

Π. Σταθοπούλου ή Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7

Εργαστήριο Διοίκησης Παραγωγής & Έργων. Εισαγωγή στην προσομοίωση διεργασιών χρησιμοποιώντας το λογισμικό Extend

Τεχνολογία Λογισµικού Ι Κεφάλαιο 6

ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι

Εισαγωγή στην εκτίμηση κόστους Λογισμικού / Μέθοδος COCOMO

ΤρόποςΑξιολόγησης: α) Εργαστήρια (Προαιρετικάµε 20% - 35% βαρύτητα µόνοθετικά) β) Τελική Γραπτή Εξέταση

Α. Ερωτήσεις Ανάπτυξης

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Κεφάλαιο 8 : H γλώσσα προγραµµατισµού Pascal 1 ο Μέρος σηµειώσεων (Ενότητες 8.1 & 8.2 σχολικού βιβλίου)

Μεταγλώττιση και σύνδεση πολλαπλών αρχείων κώδικα. Προγραμματισμός II 1

ΦΥΣ-151. Ηλεκτρονικοί Υπολογιστές Ι (FORTRAN 77) (Άνοιξη 2004)

Transcript:

Περιεχόµενο Μετρήσεις και Μετρικές Λογισµικού Αντώνης Καραγεώργος Τµήµα Μηχανικών Η/Υ και ικτύων Πανεπιστήµιο Θεσσαλίας karageorgos@inf.uth.gr Θεωρία µετρήσεων Μετρικές Λογισµικού: κίνητρα και µοντέλα µετρήσεων Μετρικές προσανατολισµένες στο µέγεθος Μετρικές προσανατολισµένες στη λειτουργία Μετρικές ποιότητας Άλλες µετρικές GQM, GQ(I)M Εµπειρικές σχέσεις για το χαρακτηριστικό ύψος Θεωρία Μετρήσεων Ψηλότερος από Πολύ ψηλότερος από Εµπειρικές σχέσεις: αληθείς ή ψευδείς 16/12/2005 from Fenton pg. 25 4 1

Μέτρηση Συνθήκη αναπαράστασης (representation condition) Εύρος συστήµατος Πεδίο απεικόνισης Για να αξιολογήσουµε σωστά µια εµπειρική σχέση πρέπει να την ποσοτικοποιήσουµε Ηδιαδικασίατηςµέτρησης ορίζεται σαν µια απεικόνιση από τον πραγµατικό κόσµο σε ένα αριθµητικό σύστηµα Θέλουµε η απεικόνιση να διατηρεί την εµπειρική σχέση X ψηλότερος από Y M(X) > M(Y) 16/12/2005 from Fenton pg 31 5 16/12/2005 from Fenton pg 31 6 Απεικόνιση Μέτρησης Βασικά στάδια τυπικής µέτρησης Αφού ορίσουµε τηναπεικόνιση, ορίσουµε ποσοτικά και τις εµπειρικές σχέσεις: A ψηλός M(A) > 70 A ψηλότερος από B M(A) > M(B) A πολύ ψηλότερος από B M(A) > M(B) + 20 16/12/2005 from Fenton pg 32 7 16/12/2005 from Fenton pg 33 8 2

Ρόλος της συνθήκης αναπαράστασης Κλίµακες µετρήσεων R1: καθυστερηµένη απόκριση R2: λανθασµένη έξοδος R3: απώλεια δεδοµένων Ονοµαστική (nominal) (π.χ. φύλο) ιάταξης (ordinal) (p.x. Σειρά αφίξεων) ιαστήµατος (θερµοκρασία σε C) Αναλογίας (ύψος) Απόλυτη (το πλήθος κάποιων αντικειµένων) R1, R2, R3 µοναδιαίες σχέσεις πάνωστοσύνολολαθώνλογισµικού M: {R1,R2,R3} {6,4,69} From Fenton, pag. 34 Όµως για R= είναι πιο κρίσιµο από = (x,y):{(x R3 y R2 y R1) (x R2 y R1)} και > χρειαζόµαστε π.χ.: M (R1) = 3, M (R2) = 4, M (R3) = 69 Για να ισχύει M (R3) > M (R2) > M (R1) Ονοµαστική κλίµακα Language(Program) = 1, if Program is written in Pascal Language(Program) = 2, if Program is written in C Language(Program) = 3, if Program is written in Fortran Μόνο λίγες µαθηµατικές πράξεις µπορούν να εφαρµοστούν (π.χ. ιστογράµµατα) Κλίµακα ιάταξης Difficult(Program) = 1, if Program is easy to read Difficult(Program) = 2, if Program is not hard to read Difficult(Program) = 3, if Program is hard to read Μπορούµε να υπολογίσουµε τηδιάµεσο (τιµή που έχει το ίδιο πλήθος τιµών και πάνω και κάτω όσον αφορά τη σχέση διάταξης) 3

Κλίµακες διαστήµατος αναλογίας, και απόλυτες Οι κλίµακες διαστήµατος διατηρούν τις διαφορές αλλά όχι τις αναλογίες. Π.χ. τον απόλυτο χρόνο που συνέβη ένα γεγονός (υπάρχουν πολλά ηµερολόγια) Οι κλίµακες αναλογίας διατηρούν επίσης την αναλογία µεταξύ των οντοτήτων, π.χ. µετράµε ένα πρόγραµµα σεγραµµές πηγαίου κώδικα (LOC) και το µήκος ενός δαπέδου σε µέτρα. Όλες οι µαθηµατικές πράξεις εφαρµόζονται. Οι απόλυτες µετρήσεις είναι απόλυτοι αριθµοί, π.χ. ο αριθµός των if σε ένα πρόγραµµα. Μέθοδος Στόχου-Ερώτησης- Μετρικής Πλαίσιο για µετρήσεις Τι µετρήσεις πρέπει να κάνουµε? Πρέπει να τα µετρήσουµε όλα? Πως θα γνωρίζουµε οτιέχουµε κάνει αρκετές µετρήσεις? Χρειαζόµαστε ένα πλαίσιο για να οδηγεί τις µετρήσεις ώστε αυτές να έχουν νόηµα Στόχος-Ερώτηση-Μετρική Στόχος: Ποιοί είναι οι κύριοι στόχοι της µέτρησης? Ερώτηση: Τί ερωτήσεις πρέπει να απαντήσουµε για να προσδιορίσουµε ανοιστόχοιέχουνεπιτευχθεί? Μετρική: Τι µετράµε ώστε να απαντήσουµε ικανοποιητικά στις ερωτήσεις? Προσέγγιση από πάνω προς τα κάτω 4

Πρότυπο για τους στόχους Τρία συστατικά: Σκοπός της µέτρησης Προοπτική της µέτρησης Περιβάλλον που θα λάβει χώρα η µέτρηση Πρότυπο για τους στόχους (συνέχεια) Σκοπός: {να χαρακτηρίσουµε, αξιολογήσουµε, προβλέψουµε, δώσουµε κίνητρακλπ} την/το {διεργασία, προϊόν, µοντέλο, µετρική κλπ} ώστε να την/το {κατανοήσουµε αξιολογήσουµε, κατασκευάσουµε, διαχειριστούµε, βελτιώσουµε κλπ} Προοπτική: Εξετάζουµε το/την/τα {κόστος, αποτελεσµατικότητα, ορθότητα, λάθη, αλλαγές µετρήσεις προιόντων κλπ} Περιβάλλον: <προσδιορίζουµε τους παράγοντες του περιβάλλοντος που αφορούν διεργασίες, ανθρώπους, προβλήµατα, µεθόδους περιορισµούς κλπ Παράδειγµα στόχων Σκοπός: Να αξιολογήσουµε τη διεργασία συντήρησης λογισµικού ώστε να τη βελτιώσουµε Προοπτική: Εξετάζουµε το κόστος από την πλευρά του διαχειριστή Περιβάλλον:Το προσωπικό συντήρησης είναι προγραµµατιστές µε χαµηλά κίνητρα που έχουν περιορισµένη πρόσβαση στα απαιτούµενα εργαλεία Χρειάζεται κοινός νούς και συστηµατική οργάνωση 5

Μετρήσεις και Μετρικές... Η συλλογή µετρικών είναι κοπιαστική... χρονοβόρα...... εν θα αποδείξει τίποτα... Μετρικές Λογισµικού Κίνητρα και µοντέλα Οτιδήποτε χρειάζεται να ποσοτικοποιηθεί µπορεί να µετρηθεί µε κάποιο τρόπο που είναι καλύτερος από το να µη µετρηθεί καθόλου... Tom Gilb Pressman 2000 16/12/2005 22 ιεργασία συλλογής µετρικών λογισµικού Τύποι Μετρικών Software Software Engineering Engineering Process Process Software Software Project Project Software Software Product Product Data Collection measures Metrics Computation metrics Metrics Evaluation indicators Pressman 2000 16/12/2005 23 Αντικειµενικές µετρικές: Μια µετρική είναι αντικειµενική αν µπορεί να ληφθεί από µια αυτόµατη συσκευή. Σε αντίθετη περίπτωση καλείται υποκειµενική Οι γραµµές κώδικα είναι αντικειµενικές µετρικές, ενώ οι βαθµοί λειτουργίας είναι υποκειµενικοί. Μια µετρική καλείται άµεση (direct) αν µπορεί να υπολογιστεί απευθείας, και έµµεση αν είναι το αποτέλεσµα µιας µαθηµατικής επεξεργασίας σε άλλες µετρικές Γραµµές κώδικα, αριθµός λαθών και βαθµοί λειτουργίας είναι άµεσες Αριθµός λαθών ανα γραµµή κώδικα(πυκνότητα λαθών) είναι έµµεση 6

Κατασκευή µοντέλων µε βάση τις µετρικές Κίνδυνοι στην κατασκευή µοντέλων από µετρικές Ένα µωρό πρέπει να διπλασιάζει το βάρος του όταν γίνεται έξι µηνών Πραγµατικός κόσµος Αφαίρεση Επεξεργασία Μαθηµατική Αφαίρεση εν είναι σωστό να µετράµε τηνεξυπνάδα ενός σκύλου µ αυτόν τον τρόπο Συµπέρασµα Fenton, pag. 38 Τι µετράµε στο λογισµικό Μετρικές διεργασίας ιεργασία προϊόν µέτρηση Τι χρησιµοποιούµε σαν βάση? µέγεθος? λειτουργία? Μετρικές διεργασίας Μετρικές έργου Μετρικές προϊόντος Η πλειοψηφία επικεντρώνεται στην ποιότητα που είναι αποτέλεσµα µιας επαναλαµβανόµενης ή διαχειριζόµενης διεργασίας Στατιστική βελτίωση διεργασιών ανάπτυξης λογισµικού (SSPI) Κατηγοριοποίηση και ανάλυση σφαλµάτων Αποτελεσµατικότητα διόρθωσης λαθών Πολλαπλασιασµός από φάση σε φάση Επαναχρησιµοποίηση δεδοµένων 7

Μετρικές έργου Προσπάθεια/χρόνος ανά δραστηριότητα κατασκευής λογισµικού Αριθµός σφαλµάτων που ανακαλύπτονται ανα ώρα Υπολογισµός καθυστέρησης (ηµεροµηνίες προγραµµατισµένων και πραγµατικών ορόσηµων) Αριθµός αλλαγών και τα χαρακτηριστικά τους Κατανοµή της προσπάθειας στις δραστηριότητες ανάπτυξης λογισµικού Μετρικές προϊόντος Επικεντρώνονται στην ποιότητα των παραδοτέων Μετρήσεις στα µοντέλα ανάλυσης Πολυπλοκότητα σχεδιασµού Εσωτερική αλγοριθµική πολυπλοκότητα Πολυπλοκότητα αρχιτεκτοικής Πολυπλοκότητα ροής δεδοµένων Μετρήσεις πάνω στον κώδικα π.χ. Halstead Μετρήσεις της αποτελεσµατικότητας της διεργασίας Π.χ. αποτελεσµατικότητα διόρθωσης λαθών Οδηγίες χρήσης µετρικών Κοινός νούς και ευαισθησία στους κανόνες τις επιχείρησης όταν διερµηνεύονται οι τιµές των µετρικών Παροχή σχολίων (feedback) σ αυτούς που συλλέγουν τις µετρήσεις και υπολογίζουν τις µετρικές Οι µετρικές δεν πρέπει να χρησιµοποιούνται για να επαινείται η εργασία µεµονωµένων ατόµων Οι µετρικές δεν πρέπει να χρησιµοποιούνται εκφοβισµό µεµονωµένων ατόµων ή οµάδων Οι αντίθετες τιµές των µετρικών πρέπει να αντιµετωπίζονται ώς ενδείξεις για βελτίωση της διεργασίας που ακολουθείται Πρέπει να λαµβάνονται υπ όψει όλες οι συναφείς µετρικές και να µην επικεντρωνόµαστε µόνο σε µια Μετρικές προσανατολισµένες στο µέγεθος 8

Τυπικές µετρικές προσανατολισµένες στο µέγεθος Σφάλµατα ανά χιλιάδες γραµµές κώδικα Αστοχίες ανά χιλιάδες γραµµές κώδικα Κόστος ανά γραµµή κώδικα Σελίδες τεκµηρίωσης ανά χιλιάδες γραµµές κώδικα Σφάλµατα ανά ανθρωποµήνα Γραµµές κώδικα ανά ανθρωποµήνα Κόστοςανάσελίδατεκµηρίωσης Τυπικές µετρικές προσανατολισµένες στη λειτουργία Σφάλµατα ανά βαθµό λειτουργίας Αστοχίες ανά βαθµό λειτουργίας Κόστος ανά βαθµό λειτουργίας Σελίδες τεκµηρίωσης ανά βαθµό λειτουργίας Βαθµοί λειτουργίας ανά ανθρωποµήνα Pressman 2000 16/12/2005 33 Pressman 2000 16/12/2005 34 Γραµµές κώδικα Παράδειγµα Χρειαζόµαστε ένα πρότυπο (µια κανονικοποίηση) Για παράδειγµα µπορούµε να χρησιµοποιήσουµε τον αριθµό των ; Κατόπιν µπορούν να υπολογιστούν αυτόµατα (αντικειµενικές µετρικές) εν πρέπει να χρησιµοποιούνται για να αξιολογούν την παραγωγικότητα των ανθρώπων (είναι εύκολο να τροποποιηθούν!!!) Όταν χρησιµοποιούνται σωστά, έχουν αποτελέσµατα void f() { while (!done){ count++; if(count > 10){ fixed_count = fixed_count + count; done = 1; } else if(count >5){ fixed_count --; } else { fixed_count = count * 4; } } // while } LOC = 5 9

εν αντιπροσωπεύουν την παραγωγικότητα ιάγραµµα ροής Με πόσους τρόπους µπορούµε να γράψουµε µια σειρά από 10 sqrt()s??? Συνήθως η παραγωγικότητα ορίζεται σαν Output/Input Αλλά ποιό είναι το input και ποιο το output στην κατασκευή λογισµικού? Η ποσότητα γραµµές κώδικα/προσπάθεια υπολογίζει την προσπάθεια ανα γραµµή κώδικα αλλά δεν είναι αντιπροσωπευτική της παραγωγικότητας if (a) { X(); } else { Y(); } Predicate Nodes X a Y 16/12/2005 38 Κυκλωµατική πολυπλοκότητα void f() { while (!done){ count++; if(count > 10){ fixed_count = fixed_count + count; done = 1; } else if(count >5){ fixed_count --; } else { fixed_count = count * 4; } } // while } Αναπαράσταση διαγράµµατος ροής Κυκλωµατική πολυπλοκότητα 66 7 8 99 Flow Chart 22 33 10 44 55 Edges 77 66 R1 R1 99 Flow Graph 2,3 R2 R2 88 10 4,5 R3 R3 Nodes R4 R4 Regions 16/12/2005 Pressman 2000 40 10

Υπολογισµός κυκλωµατικής πολυπλοκότητας V(G) = #περιοχών στο γράφο Υπολογισµός της ΚΠ V(G) = #ανεξάρτητες διαδροµές στο γράφο V(G) = E - N + 2 όπου E = αριθµός ακµών (#edges) και N = αριθµός κόµβων (#nodes) V(G) = P + 1 P = αρθµός κατηγορηµατικών κόµβων (π.χ., if, case, while, for, do) 77 66 R1 99 2,3 R2 88 10 4,5 4 περιοχές!!! R3 R4 Regions 77 66 99 2,3 88 10 4,5 4 ανεξάρτητες διαδροµές!!! 16/12/2005 41 Ακµές Υπολογισµός ΚΠ (µε τύπους) 77 66 99 2,3 88 10 4,5 ακµές, 9 κόµβους -9+2 = 4!!! Κόµβοι 66 7 8 99 22 33 10 3+1 = 4!!!! 44 55 Είσοδοι (Fan In) και Έξοδοι (Fan Out) Οι είσοδοι ενός συστατικού είναι ο αριθµός των πληροφοριών που µπαίνουν στο συστατικό Οι έξοδοι ενός συστατικού είναι ο αριθµός των πληροφοριών που βγαίνουν από το συστατικό Υποθέτουµε όλα τα τµήµατα των πληροφοριών οτι έχουν το ίδιο µέγεθος Τα Fan In και Fan Out µπορούν να υπολογιστούν για συναρτήσεις, συστατικά, αντικείµενα καθώς και για άλλες δοµικές µονάδες λογισµικού

Υπολογισµός Fan In και Fan Out Συνήθως: Οι παράµετροι που παιρνούν κατ αξία µετρώνται σαν Fan In Οι εξωτερικές µεταβλητές που χρησιµοποιούνται πριν τροποποιηθούν µετρώνται σαν Fan In Οι εξωτερικές µεταβλητές που τροποποιούνται µέσα στον κώδικα µετρώνται σαν Fan Out Οι επιστρεφόµενες τιµές µετρώνται σαν Fan Out Οι παράµετροι που περνούν κατ αναφορά εξαρτάται απότηχρήσητους #define<stdio.h> #define<math.h> fan-in fan-out int globalinvar = 9; int globaloutvar; Απλό παράδειγµα Fan In / Fan Out float Simple(float x, float y){ 2 int a; float z; z = sqrt( x + y + globalinvar); 1 globaloutvar = int(z+2); 1 return z; 1 } -------------------------- 3 2 #define<stdio.h> #define<math.h> int globalvara = 0; int globalvarb = 3; float global VarC = 7.0; Πιο σύνθετο παράδειγµα fan-in fan-out float chechvalue( float x, float y){ 2 int a; float z; z = sqrt( x + y + globalvarc ); 1 globalvara ++; 1 a = globalvarb; 1 globalvarc = z + (float)globalvara; 1 1 return z; 1 } -------------------------- 5 3 Primitive Measures: Tokens // Length: Volume: Volume Ratio: Ηεπιστήµη λογισµικού του Halstead Types: n = n1 + n2 Program Level: Software Science Effort: Time for testing: n 1 number of distinct operators n 2 number of distinct operands N 1 total number of operator occurrences N 2 total number of operand occurrences N = N 1 + N 2 V = Nlog 2 (n) L = (2/ n 1 ) x (n 2 /N2) PL = 1/[(n 1 /2)x(N2/ n 2 )] E = V/PL T = E/18 in seconds. 12

Μετρικές Halstead (παράδειγµα) #define<stdio.h> #define<math.h> int globalvara = 0; int globalvarb = 3; float global VarC = 7.0; float chechvalue( float x, float y){ int a; float z; z = sqrt( x + y + globalvarc ); globalvara ++; a = globalvarb; globalvarc = z + (float)globalvara; return z; } N = 44; n = 16 V = 176; PL =0.09 E = 1923.42 = 32 Operators: Count: ( ) 3 {} 1 = 6 + 5 int 3 float 6 sqrt 1 checkvalue 1 return 1 n 1 = 9 N 1 =27 Operands: Count: globalvara 3 globalvarb 2 globalvarc 3 x 2 y 2 a 2 z 3 n 2 = 7 N 2 =17 Μετρικές προσανατολισµένες στις λειτουργίες Βαθµοί λειτουργίας Ένα µέτρο του πόσο µεγάλο είναι το πρόγραµµα, ανεξάρτητα από το φυσικό του µέγεθος Είναι µια σταθµισµένη µέτρηση που συµπεριλαµβάνει αρκετά χαρακτηριστικά του προγράµµατος Οι αντίθετοι στη χρήση των βαθµών λειτουργίας ισχυρίζονται οτι δεν έχουν νόηµα όσοναφοράτη θεωρία aαναπαράστασης Όµως χρησιµοποιούνται εκτενώς στη βιοµηχανία Βαθµοί λειτουργίας (συνέχεια) Ανάλυση του πεδίου πληροφοριών της εφαρµογής και προσδιορισµός Τωνπαραγόντωνπουθαµετρηθούν Στάθµιση του κάθε παράγοντα µε βάση την πολυπλοκότητά του Αξιολόγηση της επιρροής καθολικών παραγόντων που επηρεάζουν την εφαρµογή Υπολογισµός των βαθµών λειτουργίας Προσδιορισµός του τι θα µετρηθεί (ποιοι παράγοντες) από τα πεδία εισόδου και τις διασυνδέσεις του συστήµατος Απόδοση βαρύτητας (weight) σε κάθε παράγοντα Κατάταξη εξωτερικών παραγόντων, όπως επαναχρησιµοποίηση και ταυτοχρονισµός µε σειρά προτεραιότητας Βαθµοί λειτουργίας = (παράγοντες x βαρύτητα) x C όπου: Πολλαπλασιαστής πολυπλοκότητας: C = (0.65 + 0.01 x N) i Βαθµός επίδρασης: N = F i 16/12/2005 52 13

Ανάλυση του πεδίου πληροφοριών measurement parameter number of user inputs number of user outputs number of user inquiries count weighting factor simple avg. complex number of files X 7 10 15 = Unadjusted Function Points: number Assuming of ext.interfaces all inputs with the same weight, Xall output 5 with 7 the 10 same weight, = count-total Complete complexity Formula multiplier for the Unadjusted Function Points: function points Wi + Wo + Win + Wif + Inputs Output Inquiry InternalFiles Wei ExternalInterfaces 16/12/2005 53 X X X 3 4 3 4 5 4 6 7 6 = = = Formula: Συµπερίληψη της πολυπλοκότητας Οι παράγοντες κατατάσσονται σε κλίµακα από 0 (λιγότερο σηµαντικός) σε 5 (πολύ σηµαντικός): data communications distributed functions heavily used configuration transaction rate on-line data entry end user efficiency CM = on-line update complex processing installation ease operational ease multiple sites facilitate change F ComplexityMultiplier Complexity Multiplier 16/12/2005 54 measurement parameter number of user inputs number of user outputs number of user inquiries number of files number of ext.interfaces Unadjusted count-total Function Points: complexity multiplier Function function Points: points Πολυπλοκότητα count weighting factor simple avg. complex 16/12/2005 55 X X X X X 3 4 3 7 5 4 5 4 10 FP = UFPx(0.65+0.01xCM) 7 6 7 6 15 10 = = = = = Input User File password Παράδειγµα Inquiry zone inquiry SafeHome SafeHome sensor inquiry User User panic button Interaction Interaction Function activate/deactivate Function password, sensors... Interfaces test sensor messages alarm alert System configuration data data sensor status Sensors zone setting Output User activate/deactivate Monitoring & Response Subsystem Pressman 2000 16/12/2005 56 D:\my D:\my document\safehome.ppt 14

Παράδειγµα (συνέχεια) Weighting Factor measurement parameter count simple average complex number of user inputs 3 x 3 4 6 = 9 number of user outputs 2 x 4 5 7 = 8 number of user inquiries 2 x 3 4 6 = 6 number of files 1 x 7 10 15 = 7 number of external interfaces 4 x 5 7 10 = 20 count-total 50 Μετρήσεις βασισµένες σε στόχους Using FP = count total x [0.65 + 0.01 x F i ] where F i = 46, we get FP = 50 x [0.65 + 0.01 x 46] FP = 56 16/12/2005 57 D:\my D:\my document\safehome.ppt ιεργασία Μετρήσεων Βασισµένη σε στόχους Goal Driven Measurement Process ( ιεργασία Μετρήσεων Βασισµένη σε στόχους) Οι στόχοι των µετρήσεων βασίζονται στους στόχους της επιχείρησης ιαφέρει απο την GQM (χρησιµοποιεί το GQ(I)M. Η GQ(I)M αντιστοιχεί άτυπους στόχους σε συγκεκριµένες µετρήσιµες ποσότητες Τα διαγράµµατα στις παρακάτω διαφάνειες προέρχονται απο Park, R.E., W.B. Goethert, and W.A. Florac, Goal-Driven Software Measurement A Guidebook. 1996, Βήµατα ιεργασίας Μετρήσεων 1. Προσδιορισµός των επιχειρηµατικών στόχων, π.χ αύξηση κέρδους 2. Προσδιορισµόςτουτιθαπρέπειναεξεταστείοσοναφοράτους επιχειρηµατικούς στόχους, π.χ. ποια είναι τα κέντρα κόστους. 3. Προσδιορισµός τυχόν υποστόχων, π.χ. µείωση του κόστους αποθήκευσης 4. Προσδιορισµός των οντοτήτων και των χαρακτηριστικών που σχετίζονται µε τους υποστόχους 5. Τυποποίηση των στόχων µέτρησης 6. Καθορισµός ερωτήσεων και των σχετικών δεικτών που θα βοηθήσουν στην επίτευξη των στόχων 7. Καθορισµός των δεδοµένων που θα πρέπει να συλλεχθούν για να υπολογιστούν οι δείκτες που θα βοηθήσουν στην απάντηση των ερωτήσεων 8. Ορισµός των µετρήσεων που θα χρησιµοποιηθούν 9. Ορισµός των ενεργειών που θα πρέπει να γίνουν για να υλοποιηθούν οι µετρήσεις 10. Προετοιµασία σχεδίου για την υλοποίηση των µετρήσεων 15

1. Προσδιορισµός επιχειρηµατικών στόχων 1 π.χ. ικανοποίηση πελάτη (customer satisfaction) 2. Προσδιορισµός του τι θα πρέπει να εξεταστεί Λίστα οντοτήτων και ερωτήσεων 1. Ξεκινάµε απότουςεπιχειρηµατικούς στόχους, π.χ. ικανοποίηση του πελάτη 2. Προσδιορίζουµε ταάτοµα ή οµάδες στους οποίους απευθύνεται η µέτρηση (π.χ. διευθυντές τµηµάτων) 3. ηµιουργούµε διαγράµµατα των διεργασιών στις οποίες συµµετέχουν τα παραπάνω άτοµα ήοµάδες, π.χ. διάγραµµα ροής πληροφοριών εργασίας (workflow diagram) 4. Καταγράφουµε τιςοντότητες (αντικείµενα) των διεργασιών που τα παραπάνω άτοµα διαχειρίζονται ή επηρεάζουν. 1. Είσοδοι και πόροι (inputs and resources) 2. Προϊόντα και παράγωγα (products and by-products) 3. Εσωτερικά προϊόντα (internal artifacts), π.χ. κατάλογος διαθεσίµων 4. ραστηριότητες (activities) και διαδροµές ροής δεδοµένων (flowpaths) 16

Λίστα οντοτήτων και ερωτήσεων (συνέχεια) 6. Γιακάθεοντότηταπαραθέτουµε ένα σύνολο ερωτήσεων που η απάντησή τους βοηθάει στην επιτυχία των προαναφερθέντων στόχων, π.χ. Πόσο διαρκεί? Πόσο κοστίζει? 7. Παραθέτουµε ερωτήσεις που αναφέρονται στην διεργασία συνολικά, π.χ. Τι περιορίζει την απόδοση της διεργασίας? 8. Επαναλαµβάνουµε για τους άλλους στόχους Λίστα οντοτήτων ερωτήσεων για εισόδους και πόρους Λίστα οντοτήτων-ερωτήσεων (συνέχεια) Λίστα οντοτήτων-ερωτήσεων (συνέχεια) 17

3. Καθορισµός υποστόχων Καθορισµός υποστόχων (συνέχεια) #1 #2 Οµαδοποιούµε τις σχετικές ερωτήσεις Καθορισµός υποστόχων (συνέχεια) Καθορισµός υποστόχων (συνέχεια) #2 Σαρώνουµε τη λίστα και βρίσκουµε τις ερωτήσεις που σχετίζονται µε τις οµάδες που δηµιουργήθηκαν Αναδιατάσσουµε τις ερωτήσεις µε βάσητιςοµάδες που δηµιουργήθηκαν 18

Καθορισµός υποστόχων (συνέχεια) 4. Καθορισµός οντοτήτων και των χαρακτηριστικών τους Οι υποστόχοι δηµιουργούνται άµεσα µε βάση τις υποοµάδες Χρησιµοποιούµε τις ερωτήσεις που σχετίζονται µε κάθευποστόχο για να προσδιορίσουµε τις οντότητες και τα χαρακτηριστικά τους Καθορισµός οντοτήτων και των χαρακτηριστικών τους (συνέχεια) 5. ηµιουργία τυπικών στόχων µέτρησης Για κάθε ερώτηση: - Προσδιορίζουµε τις οντότητες (entities) που περιλαµβάνει - Προσδιορίζουµε τασυναφή χαρακτηριστικά των οντοτήτων (pertinent attributes) 19

Ενεργητικοί και παθητικοί στόχοι Συστατικά τυπικών στόχων µέτρησης - Οντότητα (entity) (αντικείµενο ενδιαφέροντος) - Σκοπός (purpose) - Προοπτική (perspective) - Περιβάλλον (environment) Ενεργητικοί στόχοι µέτρησης: αποσκοπούν στον έλεγχο διεργασιών ή στην αλλαγή προϊόντων, διεργασιών και πόρων Παθητικοί στόχοι µέτρησης: στοχεύουν στην κατανόηση και µάθηση Ιχνηλασιµότητα στόχων µέτρησης 6. Προσδιορισµός ερωτήσεων και δεικτών των στόχων µέτρησης Προσπαθούµε ναδιατηρούµε τη σχέση µεταξύ στόχων µέτρησης και επιχειρηµατικών στόχων ή υποστόχων 20

Προσδιορισµός ερωτήσεων και δεικτών των στόχων µέτρησης (συνέχεια) 7. Καθορισµός µετρικών είκτες Ερωτήσεις Απαριθµούµε τις ποσότητες που µας χρειάζονται για να κατασκευάσουµε τους δείκτες Αντιστοιχίζουµε κάθε ποσότητα στον αντίστοιχο δείκτη Καθορισµός µετρικών (συνέχεια) 8. Ορισµός µετρικών Ορίζουµε επακριβώς πως θα αποκτηθούν οι τιµές των µετρικών ώστε να µπορεί κανείς Α) να κατανοήσει τη σηµασία τους και Β) να επαναλάβει τις µετρήσεις µε πανοµοιότυπο τρόπο 21

Λίστες προσδιορισµού µετρικών 9. Ενέργειες για συλλογή µετρικών Ανάλυση: Περιγραφή των µετρικών που χρησιµοποιούνται ήδη καθώς και του τρόπου που υπολογίζονται/ µετρούνται ιάγνωση: Αξιολόγηση των υπαρχόντων µετρικών σχετικά µε το αν πληρούν τις ανάγκες των στόχων µέτρησης Ενέργειες: Συγκεκριµένες ενέργειες που συνεισφέρουν στη διεξαγωγή των µετρήσεων, π.χ. καθορισµός της προέλευσης των δεδοµένων 10. Πλάνο δράσης µετρήσεων 22