Βελτίωση της Ποιότητας Λογισμικού με την εφαρμογή μεθόδων μέτρησης των χαρακτηριστικών του λογισμικού και των διαδικασιών ανάπτυξής του.

Σχετικά έγγραφα
Αξιοπιστία και Συντηρησιμότητα Πληροφορικών Συστημάτων

Πληροφορική 2. Τεχνολογία Λογισμικού

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

ΔΙΠΛΩΜΑΤΙΚΕΣ ΕΡΓΑΣΙΕΣ

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

Ποιότητα Λογισμικού και Πιστοποίηση

Κεφάλαιο 7: Τεχνολογία Λογισμικού

Εισαγωγή. Τμήμα Μηχανικών Σχεδίασης Προϊόντων και Συστημάτων, ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ. Παναγιώτης Κουτσαμπάσης

Εισαγωγή, Βασικές Έννοιες, Οφέλη και Κίνδυνοι

ΟΡΟΛΟΓΙΑ. απαιτήσεις αξιοπιστίας, στις απαιτήσεις ασφάλειας, στις απαιτήσεις λειτουργίας κλπ.

Προγραμματισμός Η/Υ. Προτεινόμενα θέματα εξετάσεων Εργαστήριο. Μέρος 1 ό. ΤΕΙ Λάρισας- Σχολή Τεχνολογικών Εφαρμογών Τμήμα Πολιτικών Έργων Υποδομής

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

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

Πίνακας Περιεχομένων. μέρος A 1 Εισαγωγή στην Τεχνολογία Λογισμικού

Πρότυπα Αξιοπιστίας και Συντηρησιμότητας Πληροφορικών Συστημάτων στην Αμυντική Βιομηχανία

Ανάλυση Συστηµάτων και Τεχνολογία Λογισµικού

Συστήματα Πληροφοριών Διοίκησης

ΔΙΟΙΚΗΣΗ ΠΑΡΑΓΩΓΗΣ. ΕΝΟΤΗΤΑ 4η ΠΡΟΒΛΕΨΗ ΖΗΤΗΣΗΣ

Αλληλεπίδραση Ανθρώπου- Υπολογιστή & Ευχρηστία. Ενότητα 11: Αξιολόγηση Σχεδίασης Σαπρίκης Ευάγγελος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Θεωρία του Έργου. Διαχείριση Έργου Κύκλος Ζωής. Μαρίνα Α.Τσιρώνη Πολιτικός Μηχανικός, MSc ΕΔΑ Περιφέρειας Κεντρικής Μακεδονίας.

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Πληροφορική II. Ενότητα 4 : Τεχνολογία λογισμικού. Δρ.

Agile Προσέγγιση στη Διαχείριση Έργων Λογισμικού

Αλληλεπίδραση Ανθρώπου- Υπολογιστή & Ευχρηστία

ΕΝΙΑΙΟ ΠΛΑΙΣΙΟ ΠΡΟΓΡΑΜΜΑΤΟΣ ΣΠΟΥΔΩΝ

Η Τεχνολογία Balanced Information Technology Scorecard (BITS) και τρόποι εφαρμογής της

Μοντέλο συστήματος διαχείρισης της ποιότητας

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

22/2/2014 ΑΡΧΕΣ ΟΡΓΑΝΩΣΗΣ ΚΑΙ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ ΚΑΙ ΥΠΗΡΕΣΙΩΝ. Επιστήμη Διοίκησης Επιχειρήσεων. Πότε εμφανίστηκε η ανάγκη της διοίκησης;

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

Σύστημα Διαχείρισης Παραστατικών Executive Summary

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

Τεχνικές Εκτίμησης Υπολογιστικών Συστημάτων Ενότητα 1: Εισαγωγή. Γαροφαλάκης Ιωάννης Πολυτεχνική Σχολή Τμήμα Μηχ/κών Η/Υ & Πληροφορικής

Ανάλυση Απαιτήσεων Απαιτήσεις Λογισµικού

Εισαγωγή στην Τεχνολογία Λογισμικού

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

ΔΙΟΙΚΗΣΗ ΒΙΟΜΗΧΑΝΙΚΩΝ ΕΠΙΧΕΙΡΗΣΕΩΝ III ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ & ΕΛΕΓΧΟΣ ΠΟΙΟΤΗΤΑΣ

Εισαγωγή στη Δασική Πληροφορική

Συστήματα Διαχείρισης Ποιότητας Το πρότυπο ISO9001:2015 και οι εφαρμογές του

710 -Μάθηση - Απόδοση. Κινητικής Συμπεριφοράς: Προετοιμασία

Εισαγωγή Ιστορική Αναδρομή Μεθοδολογικό Πλαίσιο Προϋποθέσεις εφαρμογής Στόχοι Πρότυπα Αξιολόγησης Κύκλου Ζωής Στάδια

Μεθοδολογίες Παραγωγής Λογισµικού

Βελτιστοποίηση εναλλακτών θερμότητας

ΕΛΟΤ ΕΝ ISO 9000 και 9001

ΕΙΣΑΓΩΓΗ ΣΤΗ ΔΙΑΧΕΙΡΙΣΗ ΚΑΙ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΕΡΓΩΝ

Ενότητα 4: Πληροφοριακά συστήματα για την επιχείρηση

Κεφάλαιο 1. Εισαγωγή στα συστήματα σχεδιομελέτης και παραγωγής με χρήση υπολογιστή computer aided design and manufacture (cad/cam)

Η ΣΗΜΑΣΙΑ ΕΥΧΡΗΣΤΙΑΣ ΣΤΟ ΣΧΕΔΙΑΣΜΟ ΔΙΑΔΙΚΤΥΑΚΩΝ. Κωνσταντίνα Βασιλοπούλου, PhD Department of Computation, UMIST

Γουλή Ευαγγελία. 1. Εισαγωγή. 2. Παρουσίαση και Σχολιασµός των Εργασιών της Συνεδρίας

ΤΕΙ ΘΕΣΣΑΛΙΑΣ ΤΜΗΜΑ ΠΟΛΙΤΙΚΩΝ ΜΗΧΑΝΙΚΩΝ Τ.Ε. Διοίκηση Εργοταξίου

Παραδοτέο Π.1 (Π.1.1) Εκθέσεις για προµήθεια εκπαιδευτικού υλικού

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

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

ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΑΛΓΟΡΙΘΜΩΝ ΚΕΦΑΛΑΙΟ 2 ο ΚΕΦΑΛΑΙΟ 7 ο ΕΡΩΤΗΣΕΙΣ ΓΕΝΙΚΑ ΠΕΡΙ ΑΛΓΟΡΙΘΜΩΝ

Ο ρόλος της Ασφάλειας Πληροφοριών στην ανάπτυξη επιχειρηματικών δραστηριοτήτων και συνεργειών

κεφάλαιο Βασικές Έννοιες Επιστήμη των Υπολογιστών

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

Κύρια σημεία. Η έννοια του μοντέλου. Έρευνα στην εφαρμοσμένη Στατιστική. ΈρευναστηΜαθηματικήΣτατιστική. Αντικείμενο της Μαθηματικής Στατιστικής

Operations Management Διοίκηση Λειτουργιών

Ερωτηµατολόγιο Εσωτερικής Επιθεώρησης

Dynamic Business Systems. Παρουσίαση Εφαρμογής

Το σύστημα ISO9000. Παρουσιάστηκε το 1987, αναθεωρήθηκε το 1994 και το 2000.

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

6/12/2010 ΔΕΛΤΙΟ ΤΥΠΟΥ

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

Σκοπός του μαθήματος

ΕΙΔΙΚΗ ΕΠΙΣΤΗΜΟΝΙΚΗ ΕΠΙΤΡΟΠΗ ΘΕΜΑΤΩΝ ΤΥΠΟΠΟΙΗΣΗΣ, ΠΙΣΤΟΠΟΙΗΣΗΣ ΚΑΙ ΔΙΑΧΕΙΡΙΣΗΣ ΠΟΙΟΤΗΤΑΣ. Εισηγήτρια: Γκαβέλα Σταματία Δρ. Χημικός Μηχανικός ΕΜΠ

Περιεχόμενα. Πρόλογος... 15

OMICRON SYSTEMS ΕΤΑΙΡΙΚΟ ΠΡΟΦΙΛ. Σεπτέμβριος 2018

ΤΕΙ ΛΑΡΙΣΑΣ - ΛΑΜΙΑΣ. Ενθάρρυνση Επιχειρηματικών Δράσεων, Καινοτομικών Εφαρμογών και Μαθημάτων Επιλογής Φοιτητών ΤΕΙ Λάρισας - Λαμίας PLEASE ENTER

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

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

Κεφάλαιο 1 : Εισαγωγή

Σχεδιαστικά Προγράμματα Επίπλου

Αλληλεπίδραση Ανθρώπου- Υπολογιστή & Ευχρηστία. Ενότητα 7: Κανόνες Σχεδίασης Σαπρίκης Ευάγγελος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Ε.Δ.Ε.Υ.Α ΕΝΩΣΗ ΔΗΜΟΤΙΚΩΝ ΕΠΙΧΕΙΡΗΣΕΩΝ ΥΔΡΕΥΣΗΣ ΑΠΟΧΕΤΕΥΣΗΣ

Το Ευρωπαϊκό Πρόγραμμα. Motor Challenge

Εισαγωγή στην Οικονομική Επιστήμη Ι. Σκέφτομαι ως Οικονομολόγος. Αρ. Διάλεξης: 2

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

Μάθημα «Υπηρεσίες Ηλεκτρονικής Υγείας»

ΕΠΙΣΤΗΜΟΝΙΚΟΙ ΥΠΟΛΟΓΙΣΜΟΙ: Μια ενδιαφέρουσα σταδιοδρομία

ΕΠΙΠΤΩΣΕΙΣ ΤΗΣ ΚΑΙΝΟΤΟΜΙΑΣ ΣΤΑ ΠΡΟΪΟΝΤΑ, ΣΤΙΣ ΔΙΑΔΙΚΑΣΙΕΣ ΚΑΙ ΣΤΟ ΠΕΡΙΒΑΛΛΟΝ. Η ΠΕΡΙΠΤΩΣΗ ΤΩΝ ΕΛΛΗΝΙΚΩΝ ΕΠΙΧΕΙΡΗΣΕΩΝ

Πιο συγκεκριμένα, η χρήση του MATLAB προσφέρει τα ακόλουθα πλεονεκτήματα.

Η οικονομία της γνώσης και η απόδοση της καινοτομίας στην Ελλάδα

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

ΤΕΙ Χαλκίδας Σχολή Διοίκησης και Οικονομίας Τμήμα Διοίκησης Επιχειρήσεων

Γενικό πλαίσιο. Software Evolution Monitor Requirements. Απόστολος Ζάρρας

Φιλίππου Εμμανουήλ, 18/6/2014 9:03 πμ. 18/6/2014 9:03 πμ. Φιλίππου Εμμανουήλ, 18/6/2014 9:03 πμ. 18/6/2014 9:03 πμ

ΙΑ ΟΧΙΚΕΣ ΒΕΛΤΙΩΣΕΙΣ

Αναδιοργάνωση στους Οργανισμούς

5.1. Χωροταξικός Σχεδιασμός Κριτήρια αξιολόγησης Χωροταξικού Σχεδιασμού Δραστηριότητες Χωροταξικού Σχεδιασμού...

Η ΠΡΟΣΦΟΡΑ ΤΩΝ ΑΓΑΘΩΝ

ΕΠΙΧΕΙΡΗΣΙΑΚΗ ΕΡΕΥΝΑ ΘΕΩΡΙΑ ΚΑΙ ΕΦΑΡΜΟΓΗ ΤΟΥ ΓΡΑΜΜΙΚΟΥ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΣΤΗ ΛΗΨΗ ΑΠΟΦΑΣΕΩΝ (1)

Εκπαιδευτική Μονάδα 1.1: Τεχνικές δεξιότητες και προσόντα

Σημαντικότητα της Έρευνας Μάρκετινγκ

Εισαγωγή στα συστήματα σχεδιομελέτης και παραγωγής με χρήση υπολογιστή - Computer aided design and manufacture (cad/cam)

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

Μοντελοποίηση ροών εργασίας

Οργάνωση και Διοίκηση Πωλήσεων

Εισαγωγή στη Δασική Πληροφορική

Ανάλυση και Σχεδιασµός Πληροφοριακών Συστηµάτων

Transcript:

Βελτίωση της Ποιότητας με την εφαρμογή μεθόδων μέτρησης των χαρακτηριστικών του λογισμικού και Μαρκόπουλος Ευάγγελος Σύμβουλοι Στρατηγικής Πληροφορικής Ειδικός Επιστήμων / Σύμβουλος Πληροφορικής Τεχνολογία / Ποιότητα evangelos@markopoulos.gr Το άρθρο αυτό ΔΗΜΟΣΙΕΥΤΗΚΕ στο ειδικό περιοδικό ECO-Q (Περιοδικό της Ποιότητας). Τεύχος 21, Απρίλιος Μάιος 2000. Σελ. 20-27 Το άρθρο αποτελεί πνευματική ιδιοκτησία της εταιρίας EMPROS-SITC. Απαγορεύεται η μερική ή ολική αναπαραγωγή του χωρίς την γραπτή σύμφωνη γνώμη και έκκριση της εταιρίας. Περίληψη: Η διοίκηση και η διαχείριση κάθε διαδικασίας στην ανάπτυξη λογισμικού βασίζεται στην τεκμηριωμένη και εμπεριστατωμένη εικόνα της, η οποία δημιουργείται μετρώντας τα αποτελέσματα της, τα χαρακτηριστικά της, και τον τρόπο διεκπεραίωση της. Αν δεν μπορεί να μετρηθεί κάτι, τότε δεν μπορεί να διοικηθεί / διαχειρισθεί. Στο λογισμικό οι μετρήσεις έχουν σαν στόχο την βελτίωση της παραγωγικότητας και της ποιότητας στην διαδικασία ανάπτυξής του. Οι μετρήσεις λογισμικού κατηγοριοποιούνται αρχικά σε Προϊόντος και σε Διαδικασίας. Οι κατηγορίες αυτές παρουσιάζουν σύνολο άλλων υποκατηγοριών που χαρακτηρίζουν την κάθε μέτρηση βάση των ιδιαιτεροτήτων της και του πεδίου εφαρμογής της. Η επιλογή και η εφαρμογή των μετρήσεων γίνεται μέσα από πρόγραμμα εφαρμογής μετρήσεων που αναπτύσσεται βάση συγκεκριμένων στόχων. Λέξεις Κλειδιά: Μέτρηση, Ποιότητα, Τεχνολογία, Παραγωγικότητα, Μοντέλα. Πρόγραμμα μετρήσεων, Πολυπλοκότητα. 1.0 Εισαγωγή Η μέτρηση αποτελεί θεμελιώδη αρχή στις επιστήμες της Μηχανικής Engineering, και η Τεχνολογία (Software Engineering), δεν θα μπορούσε να αποτελέσει εξαίρεση. Στον τεχνολογικό χώρο οι μετρήσεις είναι συνηθισμένες διαδικασίες αλλά και απαραίτητες. γίνονται στην κατανάλωση ενέργειας, στο βάρος, στη θερμοκρασία, στην ταχύτητα, στις συχνότητες, στις φυσικές διαστάσεις, κλπ. Παρά την αναγκαιότητα των μετρήσεων, η έννοια της μέτρησης δυστυχώς δεν έχει ακόμα την βαρύτητα που της αντιστοιχεί στην ανάπτυξη και διαχείριση λογισμικού. Τα αίτια αυτής της πραγματικότητας είναι κυρίως στις διαφωνίες που υπάρχουν στο τι μετριέται, πως μετριέται και πώς αξιολογούνται τα αποτελέσματα των μετρήσεων. Οι μετρήσεις στο λογισμικού χρησιμοποιούνται κυρίως για την βελτίωση της παραγωγικότητας και της ποιότητας στην διαδικασία ανάπτυξής του, αλλά και για σύνολο άλλων στόχων όπως: Η αναγνώριση της ποιότητας του τελικού προϊόντος (λογισμικού) Η αποτίμηση της παραγωγικότητας της ομάδας ανάπτυξης λογισμικού Η αποτίμηση των οφελών (σε ποιότητα και παραγωγικότητα) που προκύπτουν 1 από 11

από τα νέα εργαλεία και τεχνολογίες λογισμικού, που εντάσσονται στην διαδικασία ανάπτυξής του. Η δημιουργία μιας βάσεως εκτιμήσεων Η βοήθεια αιτιολόγησης αιτημάτων για νέα εργαλεία τεχνολογίες και εκπαίδευση. Η αποτελεσματική διαχείριση κάθε διαδικασίας απαιτεί ποσοτικές μετρήσεις και μοντελοποίηση. Οι μετρήσεις λογισμικού παρουσιάζουν μια ποσοτική βάση για την ανάπτυξη και επικύρωση μοντέλων στην διαδικασία ανάπτυξης λογισμικού. 1.1 Η κρίση στο λογισμικό Συχνά γίνονται αναφορές για την κρίση στην οποία έχει εισέλθει το σύγχρονο λογισμικό. Η κρίση αυτή χαρακτηρίζεται συνήθως από την αδυναμία των στελεχών πληροφορικής να παράγουν σωστό, αξιόπιστο, συντηρήσιμο, εύχρηστο και τεκμηριωμένο λογισμικό εντός προϋπολογισμού και χρόνου παράδοσης του. Αναμφίβολα, οι περισσότερες αποτυχίες οφείλονται στην πολυπλοκότητα των διαδικασιών ανάπτυξης λογισμικού, οι οποίες στις περισσότερες περιπτώσεις ορίζονται με ασάφεια. Τα προβλήματα αυτά μπορούν να βελτιωθούν, βελτιώνοντας την διαχείριση ανάπτυξης λογισμικού. Οι προσπάθειες αυτές απαιτούν την ανάπτυξη και την εφαρμογή μετρήσεων στον κύκλο ζωής του λογισμικού. Καθώς το κόστος του εξοπλισμού μειώνεται, η ζήτηση για νέο λογισμικό αυξάνεται, και μαζί με αυτό αυξάνεται και η διαδικασία συντήρησής του. Εκτιμήσεις φέρουν πως στην Αμερική σε δύο με τρία χρόνια κάθε Αμερικανός θα πρέπει να ενταχθεί στην συντήρηση και στην ανάπτυξη λογισμικού, για να μπορέσουν να υλοποιηθούν όλες οι σημερινές απαιτήσεις νέου λογισμικού και παράλληλα να συντηρείται το υπάρχον λογισμικό. Η γενικότερη εικόνα της διαδικασίας ανάπτυξης λογισμικού χαρακτηρίζεται σήμερα από Αναξιόπιστες Εκτιμήσεις χρόνου και κόστους Φτωχή ποιότητα λογισμικού Χαμηλός βαθμός παραγωγικότητας σε σχέση με την ζήτηση λογισμικού. 2.0 Η ανάγκη εφαρμογής μετρήσεων λογισμικού. Η εικόνα αυτή οφείλεται σε συγκεκριμένα αίτια, τα οποία θα παραμένουν απροσδιόριστα όσο θα παραμένουν οι μετρήσεις λογισμικού πολυτέλεια στην διαδικασία ανάπτυξής του. Έρευνες σε προγράμματα μετρήσεων που έχουν εφαρμοσθεί, παρουσιάζουν την εικόνα αυτή της διαδικασίας λογισμικού να οφείλεται κυρίως στους πελάτες της πληροφορικής (χαμηλός απαιτούμενος προϋπολογισμός και χρόνος ανάπτυξης, ασαφείς απαιτήσεις, κλπ), και όχι τόσο στους μηχανικούς της. Η κρίση που υπάρχει στο λογισμικό θα μπορούσε να λυθεί με τον προσδιορισμό ορθών εκτιμήσεων χρόνου και κόστους, Πολυπλοκότητας Κατανοητικότητα (Understandability) Συντήρηση Πολυπλοκότητα Διαμορφωσιμότητα (Modifiability) Συντηρισιμότητα (Maintainability) Κόστος & Χρόνος Ανάπτυξης Ελενξιμότητα (Testability) Καθοδήγηση Ανάδραση Μέτρηση Σχήμα 1. Συντηρισιμότητα με στην Διαχείρίση της Πολυπλοκότητας EMPROSS Σύμβουλοι Στρατηγικής Πληροφορικής. Μαρκόπουλος Ε 2 από 11

διαχείρισης της πολυπλοκότητας του λογισμικού, ποιοτικά καλύτερα προϊόντα, και μεγαλύτερη παραγωγικότητα. Οι στόχοι αυτοί μπορούν να επιτευχθούν με την εφαρμογή αποτελεσματικής διαχείρισης των διαδικασιών ανάπτυξης η οποία θα βασίζεται στην αποδεδειγμένη χρήση μετρήσεων λογισμικού. Η βελτίωση της διαδικασίας διαχείρισης του λογισμικού βασίζεται στην ικανότητα βελτίωσης της αναγνώρισης, μέτρησης, και ελέγχου σημαντικών παραμέτρων στην διαδικασία ανάπτυξης. Ο στόχος των μετρήσεων λογισμικού είναι η αναγνώριση και μέτρηση των σημαντικών αυτών παραμέτρων που επηρεάζουν την ανάπτυξη του. Η πληροφορία που παράγεται από τις μετρήσεις λογισμικού χρησιμοποιείται στην διαχείριση και έλεγχο της διαδικασίας ανάπτυξης του. Μια μέτρηση χαρακτηρίζεται αποτελεσματική, όταν διευκολύνει την ανάπτυξη μοντέλων που έχουν την δυνατότητα να προβλέπουν την εξέλιξη των παραμέτρων διαδικασιών και προϊόντων. Γενικότερα μία αποτελεσματική μέτρηση πρέπει να πληρεί τα ακόλουθα χαρακτηριστικά: Απλή, με ακρίβεια, και καλά προσδιορισμένη (κατανοητή), έτσι ώστε να είναι ξεκάθαρος ο τρόπος με τον οποίο η μέτρηση θα χρησιμοποιηθεί. Στοχευόμενη, στον μεγαλύτερο δυνατό βαθμό. Εύκολα υλοποιήσιμη, έτσι ώστε να χρησιμοποιείται με χαμηλό κόστος Επαλιθεύσιμη (Valid), ώστε να ελέγχεται η ορθότητα της (αποτέλεσμά της) Εύρωστη, έτσι ώστε να είναι σχετικά αμετάβλητη στις μικρές αλλαγές της διαδικασίας ή του προϊόντος. 3.0 Κατηγοριοποίηση των μετρήσεων Οι μετρήσεις λογισμικού μπορούν αρχικά να χαρακτηρισθούν σε μετρήσεις Προϊόντος (Product) και μετρήσεις Διαδικασιών (Process). Οι μετρήσεις Προϊόντος μετρούν το προϊόν (λογισμικό) σε κάθε στάδιο της ανάπτυξης του (από το στάδιο των απαιτήσεων του λογισμικού, έως την εγκατάστασή του). Χαρακτηριστικά που μετρούν οι μετρήσεις του προϊόντος είναι η πολυπλοκότητα του λογισμικού, ο σχεδιασμός του, το μέγεθος του τελικού προγράμματος (κώδικα), ή τον αριθμό σελίδων τεκμηρίωσης του. Οι μετρήσεις Διαδικασιών μετρούν χαρακτηριστικά στην διαδικασία ανάπτυξης λογισμικού, όπως ο χρόνος ανάπτυξης, την μεθοδολογία που χρησιμοποιείται, ή την εμπειρία των προγραμματιστών. Μια άλλη κατηγοριοποίηση των μετρήσεων, κατατάσσει τις μετρήσεις σε Αντικειμενικές (Objective) και Υποκειμενικές (Subjective). Οι αντικειμενικές μετρήσεις συνήθως παρουσιάζουν το ίδιο τελικό αποτέλεσμα όταν χρησιμοποιούνται από διαφορετικούς παρατηρητές. Παραδείγματα αντικειμενικών μετρήσεων είναι η μέτρηση γραμμών κώδικα, ο αριθμός των σφαλμάτων, το κόστος υλοποίησης ενός τμήματος (module) λογισμικού, κλπ. Οι υποκειμενικές μετρήσεις συνήθως παρουσιάζουν διαφορετικά αποτελέσματα έστω και αν εφαρμοστούν από ειδικούς στις μετρήσεις. Ένα ειδικό παράδειγμα μιας υποκειμενικής μέτρησης είναι ο χαρακτηρισμός ενός τμήματος λογισμικού ως οργανικό (organic), ημι-συνδεδεμένο (semi-attached), ή ενσωματομένo (embedded), όπως απαιτείται από το μοντέλο COCOMO. Άλλα παραδείγματα υποκειμενικών μετρήσεων είναι η λειτουργικότητα, η ποιότητα, η πολυπλοκότητα, η αξιοπιστία του λογισμικού, κλπ. Συνήθως ο χαρακτηρισμός των μετρήσεων δεν είναι ιδιαίτερα δύσκολο θέμα. Παρόλα αυτά υπάρχουν ορισμένες μετρήσεις των οποίων ο χαρακτηρισμός είναι απροσδιόριστος κατά κανόνα. Ένα τέτοιο παράδειγμα είναι ο υπολογισμός της εμπειρίας ενός προγραμματιστή, η οποία μεταβάλλει σημαντικά τον χρόνο και κόστος ανάπτυξης λογισμικού. Μια τρίτη κατηγοριοποίηση των μετρήσεων είναι αυτή που τις ξεχωρίζει σε Πρωτογενείς (Primitive) και Υπολογιστικές (Computed) μετρήσεις. Οι Πρωτογενείς μετρήσεις είναι αυτές που αναγνωρίζονται σχετικά εύκολα, όπως το λεξιλόγιο ενός προγράμματος, ο αριθμός EMPROSS Σύμβουλοι Στρατηγικής Πληροφορικής. Μαρκόπουλος Ε 3 από 11

γραμμών ανά χρονικό διάστημα, ο αριθμός σελίδων τεκμηρίωσης, κλπ. Οι Υπολογιστικές μετρήσεις είναι ποιο σύνθετες μετρήσεις που υπολογίζονται κατά διάφορους τρόπους πολλές φορές μέσα από άλλες μετρήσεις. Τέτοιες μετρήσεις είναι η μέτρηση της παραγωγικότητας (μέτρηση γραμμών κώδικα / μέτρηση άνθρωπομήνες), η ποιότητα του προϊόντος (μέτρηση σφάλματα / μέτρηση γραμμών κώδικα), κλπ. Μια τέταρτη κατηγορία μετρήσεων χαρακτηρίζει τις μετρήσεις σε Δυναμικές (Dynamic) και Στατικές (Static). Τα αποτελέσματα των Δυναμικών μετρήσεων αλλάζουν με τον χρόνο, όπως για παράδειγμα ο αριθμός σφαλμάτων κάθε μήνα. Τα αποτελέσματα των Στατικών μετρήσεων παραμένουν αμετάβλητα όπως ο αριθμός των σφαλμάτων στην ανάπτυξη ενός συστήματος. πριν την ανάπτυξη ενός προϊόντος λογισμικού, ενώ οι Επεξηγηματικές χαρακτηρίζουν το προϊόν μετά την ανάπτυξή του. Οι κατηγορίες Προϊόντος και Διαδικασίας χαρακτηρίζονται ως οι κυριότερες κατηγορίες μετρήσεων. Οι πρώτες μετρήσεις που δημιουργήθηκαν αφορούσαν τα χαρακτηριστικά του προϊόντος. Ήταν ποιο εύκολο στην αρχή να μετριώνται στοιχεία αναγνωρίσιμα, και κοινώς αποδεκτά. Η εμπειρία των πρώτων μετρήσεων χρησιμοποιήθηκε για την ανάπτυξη περισσότερων και σύνθετων μετρήσεων οι οποίες με την σειρά τους διασπάσθηκαν στις κατηγορίες που προαναφέρθηκαν. Μια άλλη ποιο πρακτική κατηγοριοποίηση των μετρήσεων η οποία αποτελεί υποσύνολο των προαναφερόμενων κατηγοριών είναι ο διαχωρισμός των μετρήσεων σε Προϊόντος Διαδικασιών Υποκειμενικές Πρωτογενείς Δυναμικές Προσδιοριστικές Αντικειμενικές Υπολογιστικές Στατικές Επεξηγηματικές Σχήμα 2. Κυριότερες Κατηγορίες Μετρήσεων Μια ακόμη κατηγορία χαρακτηρίζει τις μετρήσεις σε Προσδιοριστικές (Predictive) και Επεξηγηματικές (Explanatory). Οι Προσδιοριστικές μετρήσεις δημιουργούνται Τεχνικές Ποιότητας Παραγωγικότητας Μεγέθους Λειτουργικότητας Ανθρώπινου Παράγοντα Σχήμα 3. Υπο-κατηγοριοποίηση Μετρήσεων Τεχνικές Ποιοτικές Παραγωγικότητας Κάθε από αυτές υπό-κατηγοριοποιείται βάση τους ακόλουθους παράγοντες Μέγεθος Λειτουργικότητα Ανθρώπινος Παράγοντας. Δηλαδή μια μέτρηση όπως η Διαθεσιμότητα ενός συστήματος, θα μπορούσε να χαρακτηρισθεί: Προϊόντος Υποκειμενική Υπολογιστική Δυναμική Επεξηγηματική Παραγωγική Λειτουργικότητας. EMPROSS Σύμβουλοι Στρατηγικής Πληροφορικής. Μαρκόπουλος Ε 4 από 11

4.0 Η υπάρχουσα κατάσταση στις μετρήσεις. Η υπάρχουσα κατάσταση στις μετρήσεις δεν θα μπορούσε να χαρακτηρισθεί ιδιαίτερα ικανοποιητική. Πολλές είναι οι μετρήσεις που συχνά παρουσιάζονται από ερευνητικές ή και πρακτικές (εμπειρικές) εργασίες, λίγες όμως έχουν την απαραίτητη δομή και υποστήριξη ώστε να γίνονται άμεσα εφαρμόσιμες και κοινώς αποδεκτές. Ο χώρος των μετρήσεων δεν έχει να παρουσιάσει μεγάλα σύνολα μετρήσεων με ευρεία χρήση και κοινή αποδοχή των αποτελεσμάτων τους. Πολλοί είναι οι παράγοντες που επηρεάζουν την αποτελεσματικότητα μιας μέτρησης, με κυριότερους αυτούς της ερμηνείας και της τεχνολογίας. Ένα χαρακτηριστικό παράδειγμα είναι οι μετρήσεις στον υπολογισμό των γραμμών κώδικα ενός προγράμματος. Οι μετρήσεις αυτές που χαρακτηρίζονται ως Πρωτογενείς και είναι κοινώς αποδεκτές, μπορεί να μην λειτουργήσουν τόσο αποτελεσματικά αν εφαρμόζονται διαφορετικές μέθοδοι μέτρησης ανάλογα με την γλώσσα που χρησιμοποιείται στην ανάπτυξη. Ένα πρόγραμμα στην γλώσσα C, μπορεί πολύ εύκολα να αποπροσανατολίσει την μέτρηση αυτή, σε σχέση με ένα πρόγραμμα στην ADA και την PASCAL. Επίσης η μέτρηση της παραγωγικότητας ενός προγραμματιστή (γραμμές κώδικά / χρόνο) μπορεί να παρουσιάσει λανθασμένα αποτελέσματα αν δεν ληφθούν επίσης υπόψη και άλλοι παράγοντες όπως η γλώσσα προγραμματισμού, η πολυπλοκότητα της εφαρμογής, κλπ. Δηλαδή ένας προγραμματιστής στην COBOL θα χαρακτηρίζεται πάντα πιο παραγωγικός από έναν στην C. Γενικότερα η ασάφεια που επικρατεί στον τομέα των μετρήσεων οφείλεται κυρίως στη μη εφαρμογή τους από ειδικούς στις μετρήσεις λογισμικού. Οι μετρήσεις όταν εφαρμοσθούν σωστά παρουσιάζουν εντυπωσιακά αποτελέσματα τα οποία μπορούν να βελτιώσουν την διαδικασία ανάπτυξης λογισμικού, καθώς και το ίδιο το προϊον. Οι μετρήσεις δεν είναι ακόμα έτοιμα τυποποιημένα μοντέλα που παίρνοντας τα από το ράφι μπορούν να αποδίδουν μηχανικά (αυτόματα) και αποτελεσματικά. 5.0 Αντιπροσωπευτικό σύνολο μετρήσεων. Το σύνολο των μετρήσεων που ακολουθεί χαρακτηρίζεται αντιπροσωπευτικό σύνολο παρουσιάζοντας ορισμένες από τις κυριότερες και ευρέως διαδεδομένες μετρήσεις. Γραμμές Κώδικα (Lines of Code LOC) Ίσως η πιο διαδεδομένη μέτρηση μεγέθους. Ο πιο αποδεκτός τρόπος εφαρμογής της είναι η μέτρηση των γραμμών κώδικα (εξαιρούνται τα σχόλια, και οι κενές γραμμές) ανεξαιρέτως του αριθμού εντολών σε κάθε μία από αυτές. Λειτουργικά Σημεία (Function Points) Μέτρηση μεγέθους και πολυπλοκότητας, με στόχο την αναγνώριση των γραμμών κώδικα ενός προγράμματος πριν αυτό γραφτεί. Η εφαρμογή του βασίζεται στον υπολογισμό λειτουργικών σημείων όπου το κάθε ένα από αυτά έχει μια συγκεκριμένη βαρύτητα. Εξωτερικά σημεία εισαγωγής δεδομένων (external user inputs) * 4 (βαρύτητα) Παραγόμενα Προϊόντα (outputs) * 5 Αναζητήσεις (inquiries) * 4 Κύρια αρχεία (master files) * 10 Ο τύπος υπολογισμού των λειτουργικών σημείων είναι : 14 FP = count-total * [0,65 + 0.01 * Σ (F i ) ] i=1 όπου F i = τιμή προσαρμογής πολυπλοκότητας Η τελική τιμή των λειτουργικών σημείων είναι το άθροισμα του συνόλου των σημείων επί των συντελεστών τους. Μια προσαρμογή της τάξεως του 25-30% είναι αποδεκτή ανάλογα με την πολυπλοκότητα του λογισμικού. Βάση των λειτουργικών σημείων υπολογίζονται σύνολο άλλων μετρήσεων όπως: Παραγωγικότητα = FP / ανθροπωμήνες Ποιότητα = Σφάλματα / FP Κόστος = Δραχμές / FP Τεκμηρίωση = Σελίδες / FP EMPROSS Σύμβουλοι Στρατηγικής Πληροφορικής. Μαρκόπουλος Ε 5 από 11

Bang - Μέτρηση μεγέθους που αφορά το σύστημα, και μετρά την συνολική λειτουργικότητα του στον χρήστη. Στόχος ενός συστήματος είναι η μεγιστοποίηση της λειτουργικότητας του λογισμικού σε σχέση με το κόστος ανάπτυξης του (Bang per Buck) Bang = Λειτουργικότητα / Δραχμές Κυκλωματική Πολυπλοκότητα (Cyclomatic Complexity) Μέτρηση πολυπλοκότητας λογισμικού βασιζόμενη σε διαγράμματα ροής, όπου κάθε κορυφή (node) αντιστοιχεί σε ένα τμήμα συνεχούς κώδικα και κάθε πλευρά (edge) αντιστοιχεί σε ένα σημείο αποφάσεων μέσα στο πρόγραμμα (decision points, branches, κλπ). Ίσως μία από τις πιο διαδεδομένες μεθόδους σε παγκόσμιο επίπεδο. Ο υπολογισμός της πολυπλοκότητας γίνεται με τον τύπο θεωρίας γραφημάτων: v(g) = e n + 2, όπου e = αριθμός πλευρών (edges), n = αριθμός κορυφών (nodes). Knots Μέτρηση πολυπλοκότητας που εφαρμόζεται στο διάγραμμα ροής ενός προγράμματος με μία κορυφή (node) σε κάθε τμήμα συνεχούς κώδικα. Ως κόμπος (knot) ορίζεται η γραμμή που αναγκαστικά περνά πάνω από μια άλλη αμφίδρομης επικοινωνίας (bi-directional). Η πολυπλοκότητα μιας εφαρμογής αυξάνεται με την αύξηση των κόμπων (knots). Ροή Δεδομένων (Information Flow) Mέτρηση πολυπλοκότητας χρησιμοποιώντας την ροή των πληροφοριών του προγράμματος. Η μέτρηση εφαρμόζεται μετρώντας τον αριθμό σημείων εισερχόμενης και εξερχόμενης ροής πληροφοριών κάθε διαδικασίας (procedure). Ο τύπος υπολογισμού κάθε διαδικασίες ορίζεται ως : IF(C) = fan-in(c) * fan-out(c) 2. όπου fan-in = εισερχόμενα σημεία fan-out = εξερχόμενα σημεία Η συγκεκριμένη μέτρηση χαρακτηρίζεται ως μια από τις πιο χρήσιμες μετρήσεις στην συντήρηση του λογισμικού. Λεξιλόγιο Προγράμματος (Program Vocabulary) Μέτρηση πολυπλοκότητας με στόχο την αναγνώριση των μοναδικών (unique) συμβόλων (tokens) βάση των οποίων ένα πρόγραμμα έχει αναπτυχθεί. Σύμβολο (token) χαρακτηρίζεται ο κάθε operator και operant που χρησιμοποιείται στο πρόγραμμα. Το λεξιλόγιο ενός προγράμματος υπολογίζεται με τον τύπο: PV = n 1 + n 2, όπου n 1 =μοναδικοι τελεστές (operators) n 2 = μοναδικοί τελεστέοι (operants) στο πρόγραμμα. Μήκος Προγράμματος (Program Length) Μέτρηση πολυπλοκότητας και μεγέθους βασιζόμενη στην μέτρηση Λεξιλογίου του Προγράμματος. Έχοντας αναγνωρίσει τα σύμβολα που χρησιμοποιήθηκαν στην ανάπτυξη του προγράμματος, υπολογίζεται το μήκος του αθροίζοντας το σύνολο των συμβόλων. PL = N 1 + N 2, όπου N 1 = σύνολο τελεστών (operators) Ν 2 = σύνολο τελεστέων (operants) στο πρόγραμμα. Σφαλμάτων (Defect Metrics) ποιότητας λογισμικού οι οποίες δεν έχουν συγκεκριμένο τύπο εφαρμογής. Τα σφάλματα στο λογισμικό μπορούν να μετρηθούν βάση των αλλαγών στον σχεδιασμό, βάση σφαλμάτων που αναγνωρίστηκαν κατά την επιθεώρηση του λογισμικού, βάση των σφαλμάτων που αναγνωρίστηκαν στους ελέγχους του προγράμματος, ή και βάση των αλλαγών στον κώδικα ως αποτέλεσμα σφαλμάτων. Γενικότερα η κάθε μορφής παρατήρηση των σφαλμάτων του λογισμικού χαρακτηρίζεται ως μια μέτρηση ποιότητας. Αξιοπιστίας (Reliability Metrics) - ποιότητας που έχουν σαν στόχο να αναγνωρίζουν την πιθανότητα πτώσης του λογισμικού σε συγκεκριμένο χρονικό EMPROSS Σύμβουλοι Στρατηγικής Πληροφορικής. Μαρκόπουλος Ε 6 από 11

διάστημα (MTTF Mean Time To Failure (Μέσος Χρόνος Μεταξύ Πτώσεως)). Η εφαρμογή των μετρήσεων αυτών δεν είναι και τόσο απλή καθώς υπάρχουν διαφορετικές κατηγορίες λογισμικού σε διαφορετικά περιβάλλοντα. Μια προσέγγιση εφαρμογής των μετρήσεων αυτών βασίζεται στον αριθμό σφαλμάτων που καταγράφθηκαν (δια) το μέγεθος του λογισμικού. Στην περίπτωση που υπάρχουν σύνολο εγκαταστάσεων, ο παρανομαστής διαφοροποιείται αναλόγως. Συντηρισιμότητας (Maintainability Metrics) ποιότητας λογισμικού με στόχο την αναγνώριση του βαθμό συντήρησης του σε συγκεκριμένο χρονικό διάστημα (ενός μηνός για παράδειγμα), λαμβάνοντας υπόψη το μέσο όρο απαιτούμενου χρόνου διόρθωσης ενός σφάλματος, και τον αριθμό των σφαλμάτων. Η συντηρισιμότητα του λογισμικού υπολογίζεται με τον ακόλουθο τύπο: maintainability = t * ( d + n ) όπου t = αριθμός διορθωμένων σφαλμάτων, d = απαιτούμενος χρόνος διόρθωσης ενός σφάλματος, n = αριθμός σφαλμάτων σε εκκρεμότητα (μη διορθωμένων). Διαθεσιμότητας (Availability Metrics) - ποιότητας του λογισμικού με στόχο την πρόβλέψη του ποσοστού χρόνου στον οποίο το σύστημα είναι διαθέσιμο. Η διαθεσιμότητα του λογισμικού δεν υπολογίζεται απευθείας αλλά με την χρήση μετρήσεων πιθανοτήτων όπως η MTTR (Mean Time To Repair) Μέσος Χρόνος Επισκευής και η MTBF (Mean Time Between Failure) Μέσος Χρόνος Πτώσεως. Ένας υπολογισμός της διαθεσιμότητας γίνεται με τον ακόλουθο τύπο: Διαθεσιμότητα = 1 - MTTR MTTR-MTBF * 100 Αν το λογισμικό έχει την δυνατότητα να επανέρχεται σε λειτουργία στην στιγμή, η διαθεσιμότητά του θα είναι σχεδόν 100%, ανεξαρτήτως το αριθμό των πτώσεών του. Ευχρηστίας (Usability) - ποιότητας του λογισμικού με στόχο την αναγνώριση του βαθμού δυσκολίας στην χρήση του. Η ευχρηστία του λογισμικού είναι το αντίστροφο της δυσκολίας του (Μεγάλη δυσκολία Μικρή ευχρηστία και αντίστροφα). Η δυσκολία χρήσης του λογισμικού μετριέται με διάφορους τύπους, βάση συνόλου παραγόντων όπως, τα παράπονα των χρηστών (σε χρήση και λειτουργία), τα τεχνικά προβλήματά του, τα λανθασμένα αποτελέσματά του. Βελτιωσιμότητας (Enhansability) - με στόχο την αναγνώριση της δυνατότητας βελτίωσης ενός τμήματος (module) λογισμικού. Οι μετρήσεις υπολογίζουν τον αριθμό των τμημάτων που επηρεάζονται από μια αλλαγή στο λογισμικό σε σχέση με το σύνολο των τμημάτων του συστήματος. Κάθε τμήμα χαρακτηρίζεται από έναν συντελεστή βελτιωσιμότητας που σχετίζεται με τον αριθμό αλλαγών που έχουν γίνει στο τμήμα αυτό. Ένας τύπος υπολογισμού της βελτιωσημότητας είναι ο ακόλουθος. Βελτιωσιμότητα τμήματος Χ = Α(χ) / Σ(χ) οπου Α = αλλαγές του τμήματος Χ, Σ = σύνολό αλλαγών του συνόλου των τμημάτων. Διαθεσιμότητας / Παραγωγικότητας Προσωπικού με στόχο την αναγνώριση της παραγωγικότητας του προσωπικού ανάπτυξης λογισμικού στην ανάπτυξη νέων εργασιών. Τα αποτελέσματα αυτών των μετρήσεων χαρακτηρίζουν τόσο τους προγραμματιστές όσο και τους χρήστες. Χαμηλά ποσοστά παραγωγικότητας μπορεί να οφείλονται στην κακή τεχνική κατάρτιση των προγραμματιστών, αλλά μπορεί επίσης να οφείλονται και στις κακές προδιαγραφές που εγκλωβίζουν τους προγραμματιστές σε συνεχείς αλλαγές ενώ θα μπορούσαν να συμμετέχουν στην ανάπτυξη νέων εφαρμογών. εκτίμησης του κόστους του λογισμικού - Οι μετρήσεις αυτές βασίζονται σε μοντέλα που περιέχουν σύνολο EMPROSS Σύμβουλοι Στρατηγικής Πληροφορικής. Μαρκόπουλος Ε 7 από 11

υπολογισμών πάνω σε γνωστά και άγνωστα δεδομένα. Κυριότερα μοντέλα που υποστηρίζουν αυτές τις μετρήσεις είναι το COCOMΟ (COnstructive COst MOdel) και το SPQR (Software Productivity Quality and Reliability) Το μοντέλο COCOMO παρουσιάζει τρία επίπεδα υπολογισμού, το βασικό, το ενδιάμεσο και το λεπτομερές. Το συγκεκριμένο μοντέλο χαρακτηρίζεται ως το ποιο διαδεδομένο καθώς υποστηρίζεται από αξιόλογη τεκμηρίωση. Γενικότερα, οι μετρήσεις δεν πρέπει απαραίτητα να αποτελούν αποτέλεσμα επιστημονικής μελέτης ή ερευνητικής εργασίας η οποία καταλήγει σε κάποιον συγκεκριμένο τύπο ή μοντέλο υπολογισμού. δημιουργούνται και από την εμπειρία των μηχανικών πληροφορικής οι οποίες μπορούν να προσεγγίσουν σε ικανοποιητικό βαθμό ενδεικτικές τιμές, χωρίς να εμβαθύνουν σε σύνθετες αξιολογήσεις πολλαπλών παραμέτρων και την εφαρμογή πολύπλοκων μαθηματικών μοντέλων. Οι μετρήσεις που ακολουθούν προσεγγίζουν συγκεκριμένες έννοιες ενώ παράλληλα χαρακτηρίζονται από την απλότητά τους Παραγωγικότητα = KLOC (γραμμές κώδικα σε χιλιάδες) / ανθρωπο-μήνα Ποιότητα = Σφάλματα / KLOC Κόστος = Δραχμές / KLOC Τεκμηρίωση = Σελίδες / KLOC 6.0 Διαδικασία Υλοποίησης Προγράμματος Μετρήσεων Η διαδικασία υλοποίησης ενός προγράμματος μετρήσεων στον κύκλο ανάπτυξης και ζωής λογισμικού είναι μια διαδικασία που χαρακτηρίζεται από την συνεχή βελτίωσή της. Διαδικασία Προγραμματισμού (Planning Process) Η βελτίωση άλλωστε είναι και το χαρακτηριστικό ενός ποιοτικού προγράμματος, και οι μετρήσεις λογισμικού ανήκουν στον τομέα της ποιότητας λογισμικού. Ένα πρόγραμμα μετρήσεων εφαρμόζεται μέσα από τα ακόλουθα πέντε στάδια: Συγκεκριμένα: 1. Διαδικασία Προγραμματισμού (Planning Process) Ο προγραμματισμός εφαρμογής μετρήσεων βασίζεται στην αναγνώριση του στόχου του προγράμματος μετρήσεων και στις αρχικές εκτιμήσεις του κόστους και της προσπάθειας που απαιτείται για την υλοποίηση του. Ορίζοντας τους στόχους του προγράμματος μετρήσεων πρέπει να αναγνωρισθούν οι προσδοκίες του προγράμματος, το ποθητό αποτέλεσμα, και η διαδικασία επίτευξής του. Το κόστος ενός προγράμματος μετρήσεων χαρακτηρίζεται σε αρχικό και συνεχιζόμενο κόστος. Το αρχικό κόστος σχετίζεται με τον προγραμματισμό εκκίνησης του προγράμματος (προσωπικό, εκπαίδευση, μελέτες υπάρχουσας κατάστασης, κλπ). Το συνεχιζόμενο κόστος αφορά την συντήρηση του προγράμματος μετρήσεων. Ο χρόνος και η συνεχή λειτουργία ενός προγράμματος μετρήσεων παρουσιάζει πιο ποιοτικά και αξιόπιστα αποτελέσματα. 2. Επιλογή μετρήσεων Η επιλογή των μετρήσεων που θα ενταχθούν στο πρόγραμμα βασίζεται στους στόχους του προγράμματος (όπως αυτοί έχουν ορισθεί Επιλογή μετρήσεων Απαιτήσεις και Συντήρηση Βάσεως Δεδομένων Σχήμα 4. Στάδια Ανάπτυξης Προγράμματος Μετρήσεων Αρχική Υλοποίηση και Εφαρμογή του Προγράμματος Συνεχιζόμενη Χρήση και Βελτίωση (refinement) EMPROSS Σύμβουλοι Στρατηγικής Πληροφορικής. Μαρκόπουλος Ε 8 από 11

στο πρώτο στάδιο). Ορισμένοι σημαντικοί παράγοντες στην επιλογή των μετρήσεων είναι οι ακόλουθοι: Δυνατότητα επίτευξης των στόχων του προγράμματος. Εκτιμώμενο κόστος εφαρμογής κάθε μέτρησης, καθώς και των απαιτούμενων δεδομένων για την εφαρμογή της. Πολυπλοκότητα εφαρμογής της μέτρησης. Διαθεσιμότητα τεκμηρίωσης της μέτρησης. 3. Απαιτήσεις και Συντήρηση Βάσεως Δεδομένων Οι απαιτήσεις σε δεδομένα που χρειάζεται ένα πρόγραμμα μετρήσεων είναι καθοριστικός παράγοντας τόσο στην ποιότητα του όσο και στην εφαρμογή του. Παράλληλα με τα δεδομένα που συλλέγονται σε ένα πρόγραμμα μετρήσεων οφείλεται να καθοριστεί και ο βαθμός αυτών που τηρούνται στις ειδικές βάσεις δεδομένων για περαιτέρω επεξεργασία. Στο στάδια αυτό υπάρχει ο κίνδυνος να συλλέγονται και να καταχωρούνται στις βάσεις δεδομένων περισσότερα από τα δεδομένα που απαιτεί το πρόγραμμα, με αποτέλεσμα να πολλαπλασιάζεται ο χρόνος η πολυπλοκότητα και η ποιότητα παρουσίασης αποτελεσμάτων. Ορισμένες κατευθύνσεις για την ορθολογική συλλογή και διαχείριση των δεδομένων είναι οι ακόλουθες: Τα δεδομένα πρέπει να συλλέγονται με στόχο κατά την διάρκεια κάθε φάσης του κύκλου ζωής λογισμικού. Οδηγίες από υπεύθυνα (εκπαιδευμένα) άτομα πρέπει να δίνονται για την αναγνώριση των κατηγοριών των δεδομένων και των τρόπων συλλογής τους. Η συντήρηση της βάσης δεδομένων στην οποία καταχωρούνται τα δεδομένων των μετρήσεων, γίνεται με συγκεκριμένες διαδικασίες από συγκεκριμένα άτομα. Η ασφάλεια και η σωστή ενημέρωση της βάσης δεδομένων χαρακτηρίζονται ιδιαίτερα σημαντικές διαδικασίες στο πρόγραμμα των μετρήσεων. Σύγκριση του κόστους, και των προσπαθειών που απαιτούνται για την εφαρμογή του προγράμματος μεταξύ των αρχικών υπολογισμών (πρώτο στάδιο) και των νέων υπολογισμών που υποστηρίζονται από το πρώτο σύνολο δεδομένων, με στόχο την αναπροσαρμογή τους. 4. Αρχική Υλοποίηση και Εφαρμογή του Προγράμματος Έχοντας αναπροσαρμόσει το εκτιμώμενο κόστος και την προσπάθεια που απαιτείται για την υλοποίηση του προγράμματος μετρήσεων, ξεκινά η εφαρμογή του λαμβάνοντας υπόψη δύο παράγοντες: Ο στόχος του προγράμματος μετρήσεων πρέπει να είναι προσδιορισμένος (καθώς η υλοποίηση των τριών πρώτων σταδίων του προγράμματος μετρήσεων μπορεί να επηρεάσει / μεταβάλλει τους στόχους του). Να έχει ορισθεί προσωπικό υπεύθυνο για τις εργασίες του προγράμματος (ανάλυση, συντήρηση, και διαχείριση των πληροφοριών των μετρήσεων) 5. Συνεχιζόμενη Χρήση και Βελτίωση (refinement) Η επιτυχία ενός προγράμματος μετρήσεων βελτιώνεται με τον χρόνο. Το πρόγραμμα πρέπει να εφαρμόζεται συνεχώς, και συνεχώς να ενημερώνει τα δεδομένα του Διαδικασία Ανάπτυξης Συλλογή Δεδομένων Λογισμικό Υπολογισμοί Μετρήσεων Αξιολόγηση Δεδομένων Διευθυντές (Managers) Πρακτικοί (Practitioners) Σχήμα 5. Διαδικασία Συλλογής Μετρήσεων EMPROSS Σύμβουλοι Στρατηγικής Πληροφορικής. Μαρκόπουλος Ε 9 από 11

παρουσιάζοντας όλο και ποιο συγκεκριμένα και ακριβείς αποτελέσματα μέσα από την εμπειρία του. Ο στόχος του σταδίου αυτού είναι: Αξιολόγηση των αποτελεσμάτων του προγράμματος μετρήσεων και η δημιουργία συνοπτικών εκθέσεων που παρουσιάζουν τα αποτελέσματα του προγράμματος. Προσαρμογή του προγράμματος μετρήσεων στα αποτελέσματά του και στους στόχους που μπορεί να αλλάξει βάση αυτών. Οι στόχοι ενός προγράμματος μετρήσεων αλλάζουν συνεχώς, καθώς τα αποτελέσματά του, αποτελούν την βάση για νέους προβληματισμούς. 7.0 Επίλογος Η διοίκηση και η διαχείριση κάθε διαδικασίας στην ανάπτυξη λογισμικού βασίζεται στην τεκμηριωμένη και εμπεριστατωμένη εικόνα της, η οποία δημιουργείται μετρώντας τα αποτελέσματα της, τα χαρακτηριστικά της, και τον τρόπο διεκπεραίωση της. Κάθε κρίση και αξιολόγηση βασίζεται σε αποτελέσματα μετρήσεων. Κάθε εμπεριστατωμένη δράση διαμόρφωσης, προσαρμογής και βελτιστοποίησης των διαδικασιών ανάπτυξης βασίζεται επίσης σε αποτελέσματα μετρήσεων. Αν δεν μπορεί να μετρηθεί κάτι, τότε δεν μπορεί να διοικηθεί / διαχειρισθεί (If it cannot be measured, it cannot be managed). Οι μετρήσεις, και τα προγράμματα μετρήσεων γενικότερα, έχουν σαν στόχο την ποιότητα του τελικού προϊόντος. Η βελτίωση της παραγωγικότητας, της διαθεσιμότητας, του χρόνου και του κόστους ανάπτυξης λογισμικού, καθώς και άλλοι στόχοι των μετρήσεων καταλήγουν στην ποιότητα του λογισμικού. Ένα σύστημα που αναπτύσσεται με στόχο την υψηλή διαθεσιμότητα του είναι εν μέρη ποιοτικό, όπως ποιοτικό είναι και ένα σύστημα που έχει υψηλή συντηρισημότα, ή που αναπτύχθηκε εντός προγραμματισμού, προϋπολογισμού και στόχων. Όλα τα αποτελέσματα των μετρήσεων καταλήγουν στην ποιότητα του λογισμικού. Καθώς τα αποτελέσματα και η φιλοσοφία των μετρήσεων είναι κοινώς αποδεκτή, η ένταξη τους σε προγράμματα διασφάλισης ποιότητας, ή και στις διαδικασίες ανάπτυξης του λογισμικού είναι περιορισμένη. Η κατάσταση αυτή συνήθως υποστηρίζεται από αιτιολογίες που βασίζονται στην έλλειψη χρόνου, αλλά και στην έλλειψη εξειδικευμένου προσωπικού στην εφαρμογή μετρήσεων. Στην συνείδηση των περισσοτέρων επαγγελματιών η Τεχνολογία δεν έχει πλήρως ενταχθεί στην φιλοσοφία της Μηχανικής. Αντιθέτως δεν νοείται σχέδιο ανέγερσης οικοδομήματος αν αυτό δεν έχει τεκμηριωθεί με τις κατάλληλες μετρήσεις. Η ανάπτυξη λογισμικού είναι Μηχανική (Engineering), και όπως κάθε Μηχανική βασίζει την ποιότητά της σε μετρήσεις ανάπτυξης και διαχείρισης των έργων της. Η τεχνολογία είναι μια νέα διάσταση της πληροφορικής, η οποία υπόσχεται κατανόηση και αναγνώριση των διαδικασιών ανάπτυξης και παραγωγής λογισμικού. Οι μετρήσεις λογισμικού τεκμηριώνουν την διάσταση αυτή. Βιβλιογραφία: Albrecht A. J., Measuring Application Development Productivity, Proceedings Joint SHARE/GUIDE Symposium, 1979 Basili V. R., Weiss D. M., A Methodology for Collecting Valid Software Engineering Data, IEEE Transactions on Software Engineering, SE-10, 6, November 1984, pg 728-738 Capers J. Applied Software Measurement, McGraw Hill, 1991 Cote V.., Bourque P., Oligny S., Rivard N., Software Metrics: An overview of recent results, Journal of Systems and Software 8, 2, March 1988 pg 121-131 Frakes W., Terry C. Software Reuse. Metrics & Models, ACM Computing Surveys, Vol 28, No2 g 415-435, June 1996 Grable R., Jemigan J., Pogue C., Divis D. Metrics for Small Projects, IEEE Software, Vol 16, no2, April 1999 EMPROSS Σύμβουλοι Στρατηγικής Πληροφορικής. Μαρκόπουλος Ε 10 από 11

Levitin A. V., How to measure Software Size and How Not To, Proceedings COMPSAC 86, Washington D.C., IEEE Computer Society Press. October 1986, pg 314-318 Li. H. F., Cheung W. K., An Empirical Study of Software Metrics, IEEE Transactions on Software Engineering, SE- 13, 6, March 1987, pg 697-708 McCabe T. J., A Complexity Measure, IEEE Transactions of Software Engineering, SE-2, 4, December 1976, pg 308-320 IMPROVE, καθώς και το Πρόγραμμα Διασφάλισης Ποιότητας IMPROVE. Η IMPROVE έχει παρουσιαστεί και εφαρμοσθεί σε Ελληνικές επιχειρήσεις με ιδιαίτερη επιτυχία, κυρίως λόγω της αποτελεσματικής ευελιξίας στον τρόπο προσαρμογή της. Στην Ελλάδα επέστρεψε μόνιμα πριν πέντε χρόνια και εργάζεται κυρίως ως Σύμβουλος Πληροφορικής σε θέματα Τεχνολογίας και Ποιότητας. Pressman R. S., Software Engineering - A practitioner s approach, McGraw Hill, 1987 Rodgers P., Customer Satisfaction Metrics, in QA Forum Presentation, Leeds University, UK, January 1990 Rombach, D, Basili V, Benefits of goal oriented measurement, in Tutorial CSR 7th Annual Conference of Software Reliability and Metrics, September 1990 Rosenberg L., Applying Object Oriented Metrics, Proceedings of the 6 th International Symposium on Software Metrics, 1999 Troy D. A., Zweben S. H. Measuring the Quality of Structured Design, Journal of Systems and Software 2, 2, June 1981 pg 113-120 Σύντομο Βιογραφικό Ο Ευάγγελος Μαρκόπουλος έχει ολοκληρώσεις της πτυχιακές και μεταπτυχιακές του σπουδές στην Επιστήμη των Ηλεκτρονικών Υπολογιστών (Computer Science) στις ΗΠΑ. Επαγγελματικά έχει εργαστεί ως επιστήμων πληροφορικής κυρίως στην ΙΒΜ, στην Siemens και στα ερευνητικά εργαστήρια Bell Laboratories της AT&T. Ακαδημαϊκά έχει διδακτική και ερευνητική συνεργασία ως Adjunct (Εντ). Καθηγητής, Επιστημονικός Συνεργάτης και Ερευνητής σε Πανεπιστήμια και Ινστιτούτα της Ελλάδος και του Εξωτερικού (ΗΠΑ, Γερμανία, Ισπανία). Έχει σύνολο διαλέξεων και δημοσιεύσεων σε Ελληνικό και Διεθνές επίπεδο. Επίσης έχει δημιουργήσει τη Μεθοδολογία Ανάπτυξης EMPROSS Σύμβουλοι Στρατηγικής Πληροφορικής. Μαρκόπουλος Ε 11 από 11