Ελληνικό Στατιστικό Ινστιτούτο Πρακτικά 7 ου Πανελληνίου Συνεδρίου Στατιστικής (2004), σελ. 5-58 ΕΚΤΙΜΗΣΗ ΚΟΣΤΟΥΣ ΛΟΓΙΣΜΙΚΟΥ: ΠΕΡΙΓΡΑΦΗ ΑΝΑ ΕΙΓΜΑΤΟΛΗΠΤΙΚΩΝ ΤΕΧΝΙΚΩΝ ΓΙΑ ΤΗ ΜΕΘΟ Ο ΤΩΝ ΑΝΑΛΟΓΙΩΝ Ελευθέριος Αγγελής και Μαρκέλλα Μούτσα Τµήµα Πληροφορικής Αριστοτέλειο Πανεπιστήµιο Θεσσαλονίκης ΠΕΡΙΛΗΨΗ Η εκτίµηση του κόστους λογισµικού είναι µια κρίσιµη δραστηριότητα στα πρώτα στάδια της διαδικασίας παραγωγής λογισµικού και αφορά την πρόβλεψη είτε της προσπάθειας που καταβάλλεται είτε του χρηµατικού κόστους που απαιτείται για την ολοκλήρωση του έργου. Η διαδικασία πρόβλεψης κόστους είναι ιδιαίτερα δύσκολη, λόγω της αβεβαιότητας των διαθέσιµων δεδοµένων στην έναρξη του έργου και της ακρίβειας της µεθόδου που χρησιµοποιείται. Η µέθοδος των αναλογιών είναι µια από τις πλέον γνωστές µεθόδους εκτίµησης κόστους λογισµικού. Αν και πρόκειται για απλή και εύκολα εφαρµόσιµη µέθοδο, το θεωρητικό της µέρος είναι αρκετά περίπλοκο. Η εργασία αυτή αποτελεί µέρος µιας προκαταρκτικής µελέτης που έχει στόχο την διερεύνηση της σχέσης της µεθόδου των αναλογιών µε τη µη-παραµετρική παλινδρόµηση κοντινότερων γειτόνων. Σκοπός µας είναι η εµβάθυνση στη µελέτη της µεθόδου και ο έλεγχος του σφάλµατος πρόβλεψης µε τεχνικές επαναληπτικής δειγµατοληψίας που είναι γνωστό ότι έχουν αποτελέσµατα στη µη-παραµετρική παλινδρόµηση.. ΕΙΣΑΓΩΓΗ Η εκτίµηση του κόστους λογισµικού (Sofware Cos Esmao) είναι µια ιδιαίτερα κρίσιµη δραστηριότητα που πρέπει να ολοκληρωθεί στα πρώτα στάδια της διαδικασίας παραγωγής λογισµικού. Το αντικείµενό της είναι η πρόβλεψη είτε της ανθρώπινης προσπάθειας που καταβάλλεται (effor) είτε του χρηµατικού κόστους που απαιτείται για την ολοκλήρωση του έργου (projec). Σε πολλές περιπτώσεις υπάρχει ενδιαφέρον και για την πρόβλεψη της παραγωγικότητας (producvy), δηλαδή του λόγου του µεγέθους του παραγόµενου κώδικα προς την προσπάθεια που καταβάλλεται (sze/effor). Η πρόβλεψη του κόστους, από τις προδιαγραφές του λογισµικού που πρόκειται να αναπτυχθεί, είναι ιδιαίτερα δύσκολη διαδικασία κυρίως λόγω της 5
αβεβαιότητας των διαθέσιµων δεδοµένων κατά την έναρξη του έργου αλλά και της ακρίβειας της µεθόδου που χρησιµοποιείται. Η διεθνής εµπειρία έχει δείξει ότι τα περισσότερα έργα εφαρµογής πληροφορικής τεχνολογίας, σε επιχειρήσεις και οργανισµούς, που περιλαµβάνουν ανάπτυξη λογισµικού πάσχουν από υπερβάσεις στον προϋπολογισµό και στον χρονοπρογραµµατισµό (βλ. Charee, 989 και Pfleeger, 200). Οι υπερβάσεις αυτές οφείλονται σε µεγάλο βαθµό στις ανεπαρκείς αρχικές εκτιµήσεις. Η σωστή πρόβλεψη βοηθά τον οργανισµό που αναλαµβάνει την ανάπτυξη αλλά και τον πελάτη να καταρτίσει ακριβείς προϋπολογισµούς, να παρακολουθεί την πορεία του έργου και να λαµβάνει σωστές διοικητικές αποφάσεις. Η εκτίµηση κόστους αποτελεί ερευνητικό αντικείµενο που εντάσσεται στην ευρύτερη περιοχή της Στατιστικής Τεχνολογίας Λογισµικού (Sascal Sofware Egeerg). Οι διάφορες µέθοδοι που έχουν προταθεί στη βιβλιογραφία κατατάσσονται σε τρεις µεγάλες κατηγορίες (Boehm, 98): Η κρίση των ειδικών (Exper Judgme) Τα αλγοριθµικά µοντέλα (Algorhmc models) Η εκτίµηση µε αναλογίες (Esmao by Aalogy - EbA) 2. Η ΚΡΙΣΗ ΤΩΝ ΕΙ ΙΚΩΝ Πρόκειται για την πλέον συνηθισµένη προσέγγιση και βασίζεται στην εµπειρία οµάδας εµπειρογνωµόνων οι οποίοι γνωµοδοτούν σχετικά µε το κόστος του έργου. Αποτελεί τη µόνη λύση σε περιπτώσεις όπου είτε έχουµε εφαρµογή νέων τεχνολογιών είτε δεν υπάρχουν καθόλου ιστορικά δεδοµένα από µετρήσεις ολοκληρωµένων έργων. Για περιγραφή και µελέτη της ακρίβειας της µεθόδου αναφερόµαστε στους Jørgese, Tege ad Moløkke (2004). Η έρευνα στην περιοχή αυτή εστιάζεται στην κατασκευή αυτοµατοποιηµένων εργαλείων υποστήριξης των εµπειρογνωµόνων στη λήψη αποφάσεων. Για παράδειγµα, τα µοντέλα που συνδυάζουν γραφήµατα και πιθανότητες για την περιγραφή των σχέσεων ανάµεσα στις µεταβλητές και είναι γνωστά ως Bayesa Belef Neworks (BBNs) µπορούν να βοηθήσουν στη λήψη αποφάσεων (Samelos, Agels, Dmou & Sakellars, 2003). 3. ΤΑ ΑΛΓΟΡΙΘΜΙΚΑ ΜΟΝΤΕΛΑ Πρόκειται για στατιστικές µεθόδους οι οποίες προϋποθέτουν την ύπαρξη διαθέσιµης βάσης δεδοµένων µε ολοκληρωµένα έργα. Η εφαρµογή µιας τέτοιας µεθόδου περιλαµβάνει την κατασκευή και εφαρµογή ενός ή περισσότερων µαθηµατικών µοντέλων τα οποία προκύπτουν από στατιστική ανάλυση των δεδοµένων (Boehm, 98, Boehm e al, 995). Τυπική µέθοδος πρόβλεψης σε αυτή την κατηγορία είναι η γραµµική παλινδρόµηση (Maxwell, 2002). 52
Η έρευνα στην περιοχή αυτή ασχολείται κυρίως µε την κατασκευή αποδοτικών µοντέλων πρόβλεψης. Ένα σηµαντικό πρόβληµα είναι η ύπαρξη πολλών ποιοτικών µεταβλητών (χαρακτηριστικά των έργων λογισµικού) οπότε τα µοντέλα πρέπει να είναι προσαρµοσµένα στο γεγονός αυτό. Ως παραδείγµατα διαδικασιών που έχουν προταθεί µπορούµε να αναφέρουµε την επαναληπτική εφαρµογή µοντέλων ανάλυσης διασποράς (Kcheham, 998) και τη µετατροπή των ποιοτικών µεταβλητών σε ποσοτικές µε τη µέθοδο της κατηγορικής παλινδρόµησης (Agels, Samelos & Morso, 200). 4. Η ΕΚΤΙΜΗΣΗ ΜΕ ΑΝΑΛΟΓΙΕΣ (EbA) Θεωρείται τεχνική «ενδιάµεση» στην κρίση των ειδικών και στα αλγοριθµικά µοντέλα. Είναι από τις πλέον συνήθεις µεθόδους εκτίµησης κόστους µε ολοκληρωµένη µεθοδολογία και διαθέσιµα εργαλεία αυτοµατοποίησής της. Έχει εφαρµοστεί και αξιολογηθεί σε γνωστά σύνολα δεδοµένων µε πολύ καλά αποτελέσµατα (Shepperd & Schofeld, 997). Τα κύρια χαρακτηριστικά της µεθόδου είναι: Η χρήση βάσης δεδοµένων που αποτελείται από ολοκληρωµένα έργα µε γνωστό κόστος. Η περιγραφή του νέου έργου µε χαρακτηριστικά παρόµοια των ολοκληρωµένων έργων (π.χ. µετρικές κώδικα, γλώσσα προγραµµατισµού, εµπειρία των προγραµµατιστών, πεδίο εφαρµογής). Ο ορισµός της έννοιας της απόστασης ανάµεσα σε δύο έργα και η χρήση µέτρων απόστασης και ανοµοιότητας που υπολογίζονται από τα χαρακτηριστικά των έργων. Ο υπολογισµός της απόστασης του νέου έργου από κάθε έργο της βάσης. Ο εντοπισµός των κοντινότερων έργων (γειτονικά ή ανάλογα). Η πρόβλεψη του κόστους συνδυάζοντας τα κόστη των γειτονικών έργων (συνήθως παίρνουµε το µέσο όρο τους, αλλά η επιλογή αυτή δεν είναι πάντα η καλύτερη δυνατή). Ένα σηµαντικό θέµα στην εφαρµογή της µεθόδου είναι η ρύθµιση (calbrao) των διαφόρων παραµέτρων (αριθµός γειτόνων, µέτρο απόστασης κλπ) στα τοπικά δεδοµένα. Γενικά η µέθοδος είναι πολύ δηµοφιλής (Heemsra, 992) γιατί συνδυάζει ποικίλα πλεονεκτήµατα: Είναι εύκολη στην εφαρµογή. Η διαδικασία και τα αποτελέσµατά της ερµηνεύονται εύκολα αφού ουσιαστικά προσοµοιώνει τη λήψη αποφάσεων µε αναζήτηση όµοιων καταστάσεων. Είναι εφαρµόσιµη σε όλους τους τύπους δεδοµένων. 53
εν βασίζεται σε υποθέσεις για την κατανοµή των δεδοµένων. Το πρόβληµα της µεθόδου είναι ότι παρουσιάζει δυσκολίες στη θεωρητική µελέτη του σφάλµατος πρόβλεψης (predco error). Σχετικά µε την έρευνα στην περιοχή αυτή, αξίζει να αναφέρουµε την εκτεταµένη εφαρµογή της µεθόδου των αναλογιών σε πραγµατικά δεδοµένα, τη σύγκρισή της µε τη γραµµική παλινδρόµηση και την ανάπτυξη σχετικού λογισµικού (Shepperd & Schofeld, 997). Επίσης, µεγάλο ενδιαφέρον παρουσιάζει η έρευνα για τη µελέτη του σφάλµατος και τη βελτίωση της µεθόδου έτσι ώστε να δίνει ακριβέστερες προβλέψεις. Συγκεκριµένα, έχει προταθεί η χρήση boosrap τεχνικών για την ρύθµιση της µεθόδου και για την εύρεση διαστηµάτων εµπιστοσύνης των προβλέψεων (Agels & Samelos, 2000) και η διόρθωση του σφάλµατος εκτίµησης για ακραίες αναλογίες (Jorgese, Idahl & Sjoberg, 2003). 5. ΣΧΕΣΗ ΤΗΣ EbA ΜΕ ΤΗΝ ΠΑΛΙΝ ΡΟΜΗΣΗ Παρόλο που η µέθοδος EbA διαφοροποιείται γενικά στη βιβλιογραφία από την παλινδρόµηση, έχει µεγάλη σχέση µε το στατιστικό µοντέλο που είναι γνωστό ως µη-παραµετρική παλινδρόµηση κοντινότερων γειτόνων (eares eghbor oparamerc regresso). Πράγµατι, αν συµβολίσουµε µε Υ την τυχαία µεταβλητή που παριστά το κόστος (εκφρασµένο σε προσπάθεια ή παραγωγικότητα) και µε Χ το τυχαίο d-διάστατο διάνυσµα µε συνιστώσες τις µεταβλητές που παριστούν τα χαρακτηριστικά των έργων λογισµικού, τα δεδοµένα που θα χρησιµοποιήσουµε για την εκτίµηση (rag daa) έχουν τη µορφή: D = {( X, Y ),( X2, Y2 ),...,( X, Y )} Υποθέτουµε ότι η σχέση ανάµεσα στις µεταβλητές είναι της µορφής Y = f (X) + ε όπου f είναι άγνωστη συνάρτηση, η κατανοµή των σφαλµάτων είναι επίσης άγνωστη και ισχύει: f ( x ) = E{ Y / X = x} Στην περίπτωση των µη-παραµετρικών µοντέλων δεν υποθέτουµε καµία µορφή για την άγνωστη συνάρτηση και προσπαθούµε να την προσεγγίσουµε µε διάφορες µεθόδους (parog esmae, kerel esmae, k-eares eghbor esmae, κλπ) (Hardle, 990). Η εκτίµηση της συνάρτησης δίνεται από τον γενικό τύπο f ( x) = W ( x) Y όπου W (x) συναρτήσεις στάθµισης των παρατηρήσεων. Ειδικά για τη µέθοδο εκτίµησης των k-κοντινότερων γειτόνων (k-eares eghbor esmae) η οποία = 54
σχετίζεται µε τη µέθοδο των αναλογιών, ισχύει: W ( x ) = / k αν X είναι ένα από τα k γειτονικά διανύσµατα του x και W ( x) = 0 για τα µη-γειτονικά. Η ειδική περίπτωση k =, ονοµάζεται εκτίµηση του πρώτου κοντινότερου γείτονα ή της πρώτης αναλογίας (frs eares eghbor esmao -closes aalogy). Η σχέση αυτή της EbA µε τη µη-παραµετρική παλινδρόµηση µας βοηθά να εφαρµόσουµε µεθόδους που έχουν προταθεί στη βιβλιογραφία για τη βελτίωση της ακρίβειας πρόβλεψης. Οι προτεινόµενες µέθοδοι χρησιµοποιούν τεχνικές boosrap (Efro & Tbshra, 993). Συγκεκριµένα, η µη-παραµετρική boosrap διαδικασία περιλαµβάνει δειγµατοληψία µε επανάθεση από το σύνολο D. Οι δύο µέθοδοι βελτίωσης του σφάλµατος πρόβλεψης που βασίζονται σε παραλλαγές της µη-παραµετρικής boosrap ονοµάζονται Baggg και Boosg και έχουν εφαρµοστεί µε επιτυχία τόσο σε προβλήµατα ταξινόµησης στη µηχανική µάθηση (Brema, 996) όσο και σε άλλα µοντέλα µη-παραµετρικής παλινδρόµησης (Borra & D Cacco, 2002). Baggg Αν υποθέσουµε ότι x είναι ένα διάνυσµα µε τα χαρακτηριστικά του νέου έργου που θέλουµε να εκτιµήσουµε, η µέθοδος περιλαµβάνει εξαγωγή µεγάλου αριθµού (Τ) boosrap δειγµάτων από το αρχικό σύνολο δεδοµένων και στη συνέχεια εκτίµηση του f(x) από κάθε δείγµα µε EbA. Αν οι εκτιµήσεις αυτές ( ) είναι f ( x), =,, T, τότε ο Baggg εκτιµητής του x είναι: f ( ( x) T ( ) bagg x) = f T = Boosg Συµβολίζοντας και πάλι µε x το διάνυσµα µε τα χαρακτηριστικά του νέου έργου, ακολουθούµε την παρακάτω διαδικασία: Σε κάθε έργο του D αντιστοιχεί το ίδιο αρχικό «βάρος» 0 w =, =,..., Για =,,T εκτελούνται τα βήµατα:. ειγµατοληψία µε επανάθεση από το D. Κάθε έργο έχει πιθανότητα επιλογής p = w / j= 2. Εκτίµηση του f(x) από κάθε boosrap δείγµα µε EbA. Συµβολίζουµε: f (x) y 3. Εκτίµηση όλων των έργων του D από το boosrap δείγµα και υπολογισµός των σχετικών απόλυτων υπολοίπων 55 w j
Y f ( X ) r = =,..., max Y f ( X ) 4. Υπολογισµός τιµών της συνάρτησης απώλειας (loss fuco - δίνονται 3 τύποι) και της «µέσης απώλειας»: r 2 L = L( r ) = ( r ) και L = p L = exp( r ) 5. Υπολογισµός του συντελστή για την τιµή f (x) (cofdece coeffce): L β = L 6. Ανανέωση των βαρών: w + = w β L 7. Υπολογισµός boosg εκτιµητή του x ως σταθµισµένη διάµεσο των Τ προβλέψεων: f boos ( x) = f y { y,..., yt }: log(/ β ) log(/ β ) : f ( x) y 2 6. ΕΦΑΡΜΟΓΗ ΣΥΜΠΕΡΑΣΜΑΤΑ ΜΕΛΛΟΝΤΙΚΗ ΕΡΕΥΝΑ Για να µπορέσουµε να διερευνήσουµε την αποτελεσµατικότητα των µεθόδων baggg και boosg, χρησιµοποιούµε τη διαδικασία jackkfe, δηλαδή από τα δεδοµένα αφαιρούµε κάθε φορά ένα έργο και προβλέπουµε το κόστος του από τα υπόλοιπα. Στο τέλος της διαδικασίας µπορούµε να υπολογίσουµε διάφορα µέτρα που εκφράζουν το συνολικό σφάλµα πρόβλεψης, όπως: Y Yˆ Y Yˆ MMRE =, MdMRE = meda, =,, = Y Y Y Yˆ PRED( 25) = * < 0.25, =,,, Y MMER = Y Yˆ, = Yˆ SD = = ( Y Yˆ ) 2 Εφαρµόζοντας τις τεχνικές σε µερικά µικρά σύνολα δεδοµένων από τη βιβλιογραφία (για παράδειγµα από Albrech & Gaffey, 983 και Maxwell, 2002), διαπιστώθηκαν βελτιώσεις όλων των µέτρων ιδίως σε περιπτώσεις όπου η 56
απλή EbA δίνει µεγάλα σφάλµατα. Συγκεκριµένα, από τη µέθοδο baggg προέκυψε βελτίωση έως και 25% ενώ από τη µέθοδο boosg βελτίωση έως 50%. Μια γενική παρατήρηση που αξίζει να διερευνηθεί περαιτέρω είναι ότι η απόδοση των µεθόδων εξαρτάται από τις τιµές των παραµέτρων των µεθόδων. Το συµπέρασµα που εξάγεται από την αρχική αυτή έρευνα είναι ότι µπορούµε να επωφεληθούµε από την σχέση της EbA µε τη µη-παραµετρική παλινδρόµηση και να χρησιµοποιήσουµε διάφορες αλγοριθµικές µεθόδους για τη βελτίωση της απόδοσής της. Στο µέλλον οπωσδήποτε απαιτείται συστηµατική µελέτη των τεχνικών και ιδιαίτερα της boosg για τον καθορισµό των παραµέτρων και συναρτήσεων που χρησιµοποιεί. Είναι επίσης αναγκαία η εφαρµογή και η µελέτη των µεθόδων σε µεγάλα σύνολα δεδοµένων, προσοµοιώσεις µε τεχνητά δεδοµένα για εξαγωγή συµπερασµάτων σχετικά µε την αποδοτικότητα των µεθόδων και ακόµα τροποποίηση των µεθόδων και τρόποι ρύθµισης στα διαθέσιµα δεδοµένα (local daa). Τέλος, ένα άλλο σηµαντικό θέµα είναι η αυτοµατοποίηση των µεθόδων αυτών και η ενσωµάτωσή τους στο υπάρχον λογισµικό. ABSTRACT Sofware cos esmao s a crcal acvy durg he frs sages of he sofware produco process ad s cocered wh he predco of he effor or he moeary cos requred for he compleo of a sofware projec. The process of cos predco s especally dffcul due o he uceray of he avalable daa ad he precso of he mehod used. The mehod of aaloges s oe of he mos kow for sofware cos esmao. Alhough he mehod s smple, he heorecal sudy s complcaed. Ths paper s a par of a prelmary sudy amg o explore he relao of esmao by aalogy wh he eares eghbor oparamerc regresso. Our purpose s o sudy deph he mehod ad o corol he predco error wh resamplg echques ha have already bee used wh success o-paramerc regresso. ΑΝΑΦΟΡΕΣ Albrech, A.J. ad Gaffey, J.E. (983): Sofware fuco, source les of code, ad developme effor predco: a sofware scece valdao. IEEE Tras. 6, 639-648. Agels, L. ad Samelos, I. (2000): A smulao ool for effce aalogy based cos esmao. Emprcal Sofware Egeerg, 5, 35-68. Agels, L., Samelos, I. ad Morso, M. (200): Buldg a Sofware Cos Esmao Model Based o Caegorcal Daa. Proc. of he 8 h IEEE Ieraoal Symposum o Sofware Mercs, 4-5 Boehm, B (98): Sofware Egeerg Ecoomcs, Prece-Hall Boehm, B., Clark, B., Horowz, E., Weslad, C., Madachy R. ad Selby R. (995). Cos Models for Fuure Sofware Lfe Cycle Processes: COCOMO 2.0. Aals of Sofware Egeerg, Specal Volume o Sofware Process ad Produc 57
Measureme, J. D. Arhur ad S.M. Hery (Eds.) J.C. Balzer AG, Scece Publshers, Amserdam, The Neherlads, Vol. pp. 45-60. Borra, S. ad D Cacco, A. (2002): Improvg oparamerc regresso mehods by baggg ad boosg. Compuaoal Sascs ad Daa Aalyss 38, 407-420. Brema, L. (996): Baggg predcors. Mache Learg 24, 95-22. Charee, R. (989). Sofware Egeerg Rsk Aalyss ad Maageme. McGraw- Hll, New York. Efro, B., ad Tbshra, R. (993): A Iroduco o he Boosrap. Chapma ad Hall, New York. Hardle, W. (990): Appled oparamerc regresso. Cambrdge Uversy Press. Heemsra, F. J. (992): Sofware cos esmao. Iformao ad Sofware Techology, 34 (0), 627-639. Jorgese, M., Idahl, U. ad Sjoberg D. (2003): A Sofware effor esmao by aalogy ad "regresso oward he mea". Joural of Sysems ad Sofware, Vol. 68, 3, 253-262 Jørgese M, Tege, K.H. ad Moløkke K. (2004). Beer sure ha safe? Overcofdece judgeme based sofware developme effor predco ervals. Joural of Sysems ad Sofware, 70, 79-93. Kcheham, B. (998): A Procedure for Aalyzg Ubalaced Daases. IEEE Tras. o Sofware Egeerg, Vol. 24, No 4., 278-30. Maxwell, K. (2002): Appled Sascs for Sofware Maagers. Prece-Hall. Pfleeger, S. (200). Sofware Egeerg, Theory ad Pracce. Prece-Hall, Upper Saddle Rver, NJ,. Shepperd, M. J. & Schofeld, C. (997): Esmag sofware projec effor usg aaloges. IEEE Trasacos o Sofware Egeerg 23 (2): 736 743. Samelos, I., Agels, L., Dmou, P., Sakellars, E. (2003). O he use of Bayesa belef eworks for he predco of sofware developme producvy. Iformao ad Sofware Techology, 45,, 5-60. 58