29
Οι ερωτήσεις που θα θέλαμε να απαντήσουμε πριν την έναρξη ενός έργου λογισμικού συνήθως είναι : πόσο μεγάλο θα είναι ? πόσο θα κοστίσει ? πόσο θα διαρκέσει η ανάπτυξή του ? πόσοι άνθρωποι απαιτούνται ? ποιοι παράγοντες καθορίζουν τα ανωτέρω ? τι ρόλο παίζει ο κάθε παράγοντας ? Κοστολόγηση Έργων Λογισμικού

Κοστολόγηση Έργων Λογισμικού

  • Upload
    yannis

  • View
    39

  • Download
    0

Embed Size (px)

DESCRIPTION

Κοστολόγηση Έργων Λογισμικού. Οι ερωτήσεις που θα θέλαμε να απαντήσουμε πριν την έναρξη ενός έργου λογισμικού συνήθως είναι : πόσο μεγάλο θα είναι ? πόσο θα κοστίσει ? πόσο θα διαρκέσει η ανάπτυξή του ? πόσοι άνθρωποι απαιτούνται ? ποιοι παράγοντες καθορίζουν τα ανωτέρω ? - PowerPoint PPT Presentation

Citation preview

Page 1: Κοστολόγηση Έργων Λογισμικού

• Οι ερωτήσεις που θα θέλαμε να απαντήσουμε πριν την έναρξη ενός έργου λογισμικού συνήθως είναι :

• πόσο μεγάλο θα είναι ?

• πόσο θα κοστίσει ?

• πόσο θα διαρκέσει η ανάπτυξή του ?

• πόσοι άνθρωποι απαιτούνται ?

• ποιοι παράγοντες καθορίζουν τα ανωτέρω ?

• τι ρόλο παίζει ο κάθε παράγοντας ?

Κοστολόγηση Έργων Λογισμικού

Page 2: Κοστολόγηση Έργων Λογισμικού

Συχνοί λόγοι αστοχίας στην εκτίμηση του κόστουςΣυχνοί λόγοι αστοχίας στην εκτίμηση του κόστους:

(35/115 εταιρείες αναφέρουν ότι το αποτέλεσμα της εκτίμησης κόστους ήταν ‘’σχετικά ανεπαρκές’’ και ‘’πλήρως ανεπαρκές’’

• Συχνές αιτήσεις για αλλαγές από τους χρήστες

• Δραστηριότητες που παραβλέφθηκαν

• Έλλειψη κατανόησης απαιτήσεων από τους χρήστες

• Ανεπαρκής ανάλυση κατά την εκτίμηση του κόστους

• Έλλειψη συντονισμού μεταξύ ομάδων

• Έλλειψη μεθόδων εκτίμησης

Κοστολόγηση Έργων Λογισμικού

Page 3: Κοστολόγηση Έργων Λογισμικού

Παράγοντες που επηρεάζουν την εκτίμηση κόστουςΠαράγοντες που επηρεάζουν την εκτίμηση κόστους:

• Πολυπλοκότητα του συστήματος

• Ολοκλήρωση με υπάρχοντα συστήματα

• Μέγεθος του συστήματος (αριθμός λειτουργιών)

• Ικανότητα ομάδας ανάπτυξης

• Εμπειρία σε παρόμοιες εφαρμογές

• Αναμενόμενη συχνότητα αλλαγών στις απαιτήσεις

• Εμπειρία με τη γλώσσα προγραμματισμού

• Αριθμός ατόμων στην ομάδα ανάπτυξης

• Αναγκαιότητα συμμόρφωσης με πρότυπα

• Διαθεσιμότητα εργαλείων

Κοστολόγηση Έργων Λογισμικού

Page 4: Κοστολόγηση Έργων Λογισμικού

• Απλή Εκτίμηση από τον διαχειριστή του έργου

• Εκτίμηση ειδικών (κατανομή Βήτα)

• Τεχνική Δελφών

• Wolverton (1974)

Μη Αλγοριθμικές Τεχνικές

ΟΕΟΕ ΟΜΟΜ ΟΗΟΗ ΝΕΝΕ ΝΜΝΜ ΝΗΝΗ

Control 21 27 30 33 40 49IO 17 24 27 28 35 43

Algorithm 15 20 22 25 30 35Data

Manag. 24 31 35 37 46 57

Time-Crit 75 75 75 75 75 75

Πρόβλημα: Πρόβλημα: 100100άρι - Μαραθώνιοςάρι - Μαραθώνιος

Pfleeger

Page 5: Κοστολόγηση Έργων Λογισμικού

• (COnstructive COst MOdel)

• Πρώτο σημαντικό άλμα στον τρόπο υπολογισμού κόστους έργων λογισμικού

•Αλγοριθμικό μοντέλο κοστολόγησης

• Αναπτύχθηκε από τον Barry Boehm το 1981

• Περιγράφεται στο βιβλίο Software Engineering Economics (βιβλιοθήκη)

• Είναι από τα 2 πιο ευρέως χρησιμοποιούμενα μοντέλα

• Βασικά, το μοντέλο COCOMO υπολογίζει μία εκτίμηση της διάρκειας και του κόστους ενός έργου λογισμικού, βασιζόμενο στο μέγεθος του προϊόντος και την ποιότητα της ομάδος ανάπτυξης

Tεχνική κοστολόγηση COCOMO

Page 6: Κοστολόγηση Έργων Λογισμικού

• Θεωρούμε 152 ώρες εργασίας ανά εργατο-μήνα

• Θεωρούμε ικανό management

• Θεωρούμε ότι το έγγραφο περιγραφής απαιτήσεων δεν τροποποιείται μετά την έγκρισή του

• Θεωρούμε ότι ο σημαντικότερος παράγοντας κόστους είναι το μέγεθος του έργου λογισμικού

• Το μέγεθος του έργου προσδιορίζεται σε χιλιάδες γραμμές παραδοτέου κώδικα (KDeliveredSourceInstructions - KDSI)

Τρία μοντέλα:

• Βασικό μοντέλο

• Ενδιάμεσο μοντέλο

• Λεπτομερειακό μοντέλο

Απλουστευτικές Υποθέσεις

Page 7: Κοστολόγηση Έργων Λογισμικού

Βασικό Mοντέλο

• Απαιτούμενη προσπάθεια σε ανθρωπομήνες :

ΜΜ = 2.4 (KDSI)1.05

• Απαιτούμενος χρόνος ανάπτυξης του έργου

Τ = 2.5 (MM)0.38

• Ενδιαφέροντα σημεία: ο εκθέτης του KDSI είναι σχεδόν ίσος με τη μονάδα, άρα η προσπάθεια ανάπτυξης είναι γραμμική συνάρτηση του μεγέθους του κώδικα

• Ο αριθμός των ατόμων θεωρείται ‘’βέλτιστος’’ για κάθε στάδιο του έργου. Π.χ. στο μέσο του έργου απασχολούνται περισσότεροι από ότι στη φάση καθορισμού των απαιτήσεων

Page 8: Κοστολόγηση Έργων Λογισμικού

• Στο ενδιάμεσο μοντέλο εισάγονται δύο κύριες τροποποιήσεις:

• Πρώτον, τα έργα λογισμικού διακρίνονται σε τρείς κατηγορίες: οργανικά, ημιαποσπασμένα και ενσωματωμένα

• Δεύτερον, αναγνωρίζονται συγκεκριμένοι παράγοντες που επηρρεάζουν το κόστος (αφορούν το προϊόν, τη διαδικασία και το προσωπικό)

COCOMO – Ενδιάμεσο Μοντέλο

Page 9: Κοστολόγηση Έργων Λογισμικού

Οργανικά

Το πρόγραμμα είναι σχετικά ανεξάρτητο και έχει μικρή διασύνδεση με το περιβάλλον

Ημιαποσπασμένα

Υπάρχουν συνδέσεις με το περιβάλλον, αλλά όχι κρίσιμες χρονικές εξαρτήσεις

Ενσωματωμένα

Κάθε συναλλαγή με το σύστημα είναι κρίσιμη από πλευράς χρόνου και ακρίβειας. Υπάρχουν αρκετοί περιορισμοί που εισάγονται από το περιβάλλον

COCOMO – Κατηγορίες Έργων

Page 10: Κοστολόγηση Έργων Λογισμικού

Οργανικά

Σύστημα ανάλυσης πληροφοριών πτήσης, που επεξεργάζεται τα δεδομένα μετά το τέλος της πτήσης

Ημιαποσπασμένα

Προσομοιωτής πτήσης αεροσκαφών

Ενσωματωμένα

Λογισμικό Αεροσκάφους για την αποφυγή συγκρούσεων με άλλα αεροσκάφη κατά τη διάρκεια της πτήσης

Κατηγορίες Έργων - Παράδειγμα

Page 11: Κοστολόγηση Έργων Λογισμικού

• Εξίσωση υπολογισμού απαιτούμενης ονομαστικής προσπάθειας

ΜΜΝΟΜ = C (KDSI)K

C, Κ: παράμετροι, KDSI: thousands of delivered source lines

MMNOM: ονομαστική προσπάθεια σε ανθρωπομήνες

COCOMO (Εξισώσεις)

Page 12: Κοστολόγηση Έργων Λογισμικού

• Ένα σύνολο από 15 χαρακτηριστικά (‘’παράγοντες κόστους’’) που θεωρούνται ότι συνεισφέρουν στο κόστος.

• Σε κάθε παράγοντα κόστους αντιστοιχεί ένας ‘’πολλαπλασιαστής προσπάθειας’’ (q1, q2, … , q15)

• Εξίσωση υπολογισμού παράγοντα προσαρμογής προσπάθειας

q = q1 q2, … q15

COCOMO (Εξισώσεις)

Page 13: Κοστολόγηση Έργων Λογισμικού

COCOMO (Πίνακες)Παράγοντες κόστους

1. RELY Απαιτούμενη αξιοπιστία λογισμικού προϊόν 2. DATA Μέγεθος βάσης δεδομένων προϊόν3. CPLX Πολυπλοκότητα προϊόντος προϊόν4. ΤΙΜΕ Περιορισμός στο χρόνο εκτέλεσης Η/Υ5. STOR Περιορισμός στην κύρια μνήμη Η/Υ6. VIRT Αλλαγές στο σύστημα HW/SW H/Y7. TURN Χρόνος απόκρισης υπολογιστή (απηρχειωμένο) Η/Υ8. ΑCAP Ικανότητα αναλυτών προσωπ9. ΑΕΧP Εμπειρία αναλυτών σε εφαρμογές προσωπ10. PCAP Ικανότητα προγραμματιστών προσωπ11. VEXP Εμπειρία με το σύστημα HW/SW (OS etc) προσωπ12. LEXP Εμπειρία με τη γλώσσα προγραμματισμού προσωπ13. ΜΟDP Χρήση μοντέρνων πρακτικών προγραμματ. έργο14. TOOL Χρήση εργαλείων προγραμματισμού έργο15. SCED Πίεση από χρονοδιάγραμμα ανάπτυξης έργο

Page 14: Κοστολόγηση Έργων Λογισμικού

• Εξίσωση υπολογισμού προσπάθειας ανάπτυξης

ΜΜDEV = q MMNOM

• Εξίσωση υπολογισμού κόστους

Ct = p MMDEV

p: αξία σε χρήμα ενός ανθρωπομήνα

• Εξίσωση υπολογισμού διάρκειας του έργου

ΤDEV = R (MMDEV)m

R, m: παράμετροι

COCOMO (Εξισώσεις)

Page 15: Κοστολόγηση Έργων Λογισμικού

• Δεδομένα εισόδου: Μέγεθος ενός έργου λογισμικού (KDSI)

παράγοντες κόστους

τιμή του ανθρωπομήνα εργασίας

• Για να λειτουργήσει το μοντέλο απαιτείται βαθμονόμηση (calibration) για την καταχώρηση τιμών στις παραμέτρους του μοντέλου

• Ο Boehm βαθμονόμησε το μοντέλο χρησιμοποιώντας δεδομένα από 63 διαφορετικά έργα λογισμικού

COCOMO

Page 16: Κοστολόγηση Έργων Λογισμικού

ΚατηγορίαΧαρακτηριστικά οργανική ημιαποσπασμένη ενσωματωμένηΚατανόηση από όλους των αντι- λεπτομερής λεπτομερής γενικήκειμενικών σκοπών του προϊόντος

Εμπειρία σε σχετικά έργα λογισμικού εκτενής σημαντική μέτρια

Ανάγκη για συμμόρφωση με προκα- βασική σημαντική πλήρηςτασκευασμένες απαιτήσεις

Ανάγκη για συμμόρφωση με προκατα- βασική σημαντική πλήρηςσκευασμένο εξωτερικό Interface

Ταυτόχρονη ανάπτυξη νέων λειτουργι- μερική μέτρια πλήρηςκών διαδικασιών και υλικού

Ανάγκη για νεωτεριστικές αρχιτεκτονι- ελάχιστη μερική σημαντική κές, νέους αλγόριθμους

Bonus για γρήγορη αποπεράτωση χαμηλό μέτριο υψηλό

Μέγεθος προϊόντος <50 KDSI <300 KDSI όλαΠαραδείγματα Επιστημονικά Καινούργια ΛΣ, Σύνθετα

μοντέλα, Συστήματα ΒΔ συστ Δοσοληψ Συστήματα ελέγχου παραγωγής, Φιλόδοξα ΛΣ Compilers

Κατηγορίες έργων λογισμικού

Page 17: Κοστολόγηση Έργων Λογισμικού

Κατηγορία ονομαστική προσπάθεια διάρκεια ανάπτυξης

οργανική ΜΜΝΟΜ = 3.2(ΚDSI)1.05 TDEV = 2.5 (MMDEV)0.38

ημιαποσπ. ΜΜΝΟΜ = 3.0(ΚDSI)1.12 TDEV = 2.5 (MMDEV)0.35

ενσωματωμ ΜΜΝΟΜ = 2.8(ΚDSI)1.20 TDEV = 2.5 (MMDEV)0.32

Κατηγορίες έργων λογισμικού

Page 18: Κοστολόγηση Έργων Λογισμικού

Πολλαπλασιαστές Προσπάθειας Κατάταξη χαμηλότερη χαμηλή ονομαστική υψηλή υψηλότερη υψηλότατη

RELY 0.75 0.88 1.00 1.15 1.40DATA 0.94 1.00 1.08 1.18CPLX 0.70 0.85 1.00 1.15 1.30 1.65ΤΙΜΕ 1.00 1.11 1.30 1.66STOR 1.00 1.06 1.21 1.56VIRT 0.87 1.00 1.15 1.30TURN 0.87 1.00 1.07 1.15ΑCAP 1.46 1.19 1.00 0.86 0.71ΑΕΧP 1.29 1.13 1.00 0.91 0.82PCAP 1.42 1.17 1.00 0.86 0.70VEXP 1.21 1.10 1.00 0.90LEXP 1.14 1.07 1.00 0.95ΜΟDP 1.24 1.10 1.00 0.91 0.82TOOL 1.24 1.10 1.00 0.91 0.83SCED 1.23 1.08 1.00 1.04 1.10

Page 19: Κοστολόγηση Έργων Λογισμικού

Κατάταξη Παραγόντων κόστους Κατάταξη χαμηλότερη χαμηλή ονομαστική υψηλή υψηλότερη υψηλότατη

RELY Μικρή Εύκολα Μέτρια Μεγάλες Κίνδυνος για ενόχληση ανακτήσιμες ανακτήσιμ οικονομ, ανθρώπινες

απώλειες απώλειες απώλειες ζωές

DATA L<10 10<L<100 100<L<1000 L>1000 L=Bytes/DSI

ΑΕΧP <4 μήνες 1 έτος 3 έτη 6 έτη 12 έτη

PCAP 15 % 35 % 55 % 75 % 90 %

Page 20: Κοστολόγηση Έργων Λογισμικού

Κατάταξη ‘’Πολυπλοκότητας’’ CPLX

• Για λειτουργίες υπολογισμού :Χαμηλότερη Αποτίμηση απλών εκφράσεων π.χ. Α=Β*C+(D-E)

Χαμηλή Αποτίμηση μετρίου επιπέδου εκφράσεων π.χ. D=SQRT(B**2-4*A*C)

Ονομαστική Χρήση προτύπων μαθηματικών και στατιστικών ρουτινών, Λειτουργίες μητρών

Υψηλή Βασική Αριθμητική Ανάλυση, Κοινές διαφορικές εξισώσεις

Υψηλότερη Συστήματα γραμμικών εξισώσεων, διαφορικές εξισώσεις με μερικές παραγώγους

Υψηλότατη Ανάλυση στοχαστικών δεδομένων, δύσκολοι αλγόριθμοι αριθμητικής ανάλυσης

Page 21: Κοστολόγηση Έργων Λογισμικού

Παράδειγμα

• Ανάπτυξη λογισμικού επικοινωνίας βασισμένου σε μικροϋπολογιστή για φιλόδοξο δίκτυο μεταφοράς κεφαλαίων με ηλεκτρονικό τρόπο. Απαιτήσεις: Υψηλή αξιοπιστία, υψηλή επίδοση, αυστηρό χρονοδιάγραμμα ανάπτυξης, καλό interface

• Υποτιθέμενο μέγεθος κώδικα 10 KDSI

Page 22: Κοστολόγηση Έργων Λογισμικού

ΚατηγορίαΧαρακτηριστικά οργανική ημιαποσπασμένη ενσωματωμένηΚατανόηση από όλους των αντι- λεπτομερής λεπτομερής γενικήκειμενικών σκοπών του προϊόντος

Εμπειρία σε σχετικά έργα λογισμικού εκτενής σημαντική μέτρια

Ανάγκη για συμμόρφωση με προκα- βασική σημαντική πλήρηςτασκευασμένες απαιτήσεις

Ανάγκη για συμμόρφωση με προκατα- βασική σημαντική πλήρηςσκευασμένο εξωτερικό Interface

Ταυτόχρονη ανάπτυξη νέων λειτουργι- μερική μέτρια πλήρηςκών διαδικασιών και υλικού

Ανάγκη για νεωτεριστικές αρχιτεκτονι- ελάχιστη μερική σημαντική κές, νέους αλγόριθμους

Bonus για γρήγορη αποπεράτωση χαμηλό μέτριο υψηλό

Μέγεθος προϊόντος <50 KDSI <300 KDSI όλα

Κατηγορίες έργων λογισμικού

φιλόδοξο νέο δίκτυο

καλό interface

δίκτυο = επικοινωνίες

υπάρχοντες κανόνες μεταφοράς κεφαλαίων

Page 23: Κοστολόγηση Έργων Λογισμικού

Κατηγορία ονομαστική προσπάθεια διάρκεια ανάπτυξης

οργανική ΜΜΝΟΜ = 3.2(ΚDSI)1.05 TDEV = 2.5 (MMDEV)0.38

ημιαποσπ. ΜΜΝΟΜ = 3.0(ΚDSI)1.12 TDEV = 2.5 (MMDEV)0.35

ενσωματωμ ΜΜΝΟΜ = 2.8(ΚDSI)1.20 TDEV = 2.5 (MMDEV)0.32

Υπολογισμός ονομαστικής προσπάθειας

ΜΜΝΟΜ = 2.8(10)1.20 = 44 ανθρωπομήνες

Page 24: Κοστολόγηση Έργων Λογισμικού

Παράγοντες κόστους - ταξινόμηση1. RELY Σοβαρές οικονομ. επιπτώσεις υψηλή 1.15 2. DATA 20000 bytes χαμηλή 0.943. CPLX Επεξεργασία επικοινωνιών υψηλότατ 1.304. ΤΙΜΕ 70% χρήση του διαθέσιμου χρόνου υψηλή 1.115. STOR 70% χρήση της διαθέσιμης μνήμης υψηλή 1.066. VIRT Θα βασισθεί σε υπάρχον H/Y σύστημα ονομαστ. 1.007. TURN Χρόνος απόκρισης ονομαστ. 1.008. ΑCAP Καλοί ηλικιωμένοι αναλυτές υψηλή 0.859. ΑΕΧP Τρία έτη ονομαστ. 1.0010. PCAP Καλοί προγραμματιστές (75 %) υψηλή 0.8611. VEXP Έξι μήνες χαμηλή 1.1012. LEXP Δώδεκα μήνες ονομαστ. 1.0013. ΜΟDP Οι περισσότερες τεχνικές είναι γνωστές υψηλή 0.9114. TOOL Βασικά εργαλεία Η/Υ χαμηλή 1.1015. SCED Εννέα μήνες ονομαστ 1.00

Page 25: Κοστολόγηση Έργων Λογισμικού

• Υπολογισμός παράγοντα προσαρμογής προσπάθειας

q = q1 q2, … q15 = 1.35

• Υπολογισμός προσπάθειας ανάπτυξης

ΜΜDEV = q MMNOM = 1.35 * 44 = 59 ανθρωπομήνες

• Υπολογισμός κόστους, θεωρώντας κόστος ανθρωπομήνα 1000 €

Ct = 59.000 €

Παράδειγμα (συνέχεια)

Page 26: Κοστολόγηση Έργων Λογισμικού

• Υπολογισμός διάρκειας ανάπτυξης

ΤDEV = R (MMDEV)m = 2.5 (59)0.32 = 9 μήνες

Παράδειγμα (συνέχεια)

Page 27: Κοστολόγηση Έργων Λογισμικού

• Σε έργα όπου συμμετέχει μικρός αριθμός ατόμων, υπάρχει μεγάλη εξάρτηση του τελικού κόστους από τις ικανότητες του κάθε ατόμου. Για περισσότερα άτομα, η συνολική ικανότητα εκφράζεται από το μέσο όρο

• Δεδομένου του μεγέθους, η ποιότητα της ομάδος ανάπτυξης είναι ο κυριότερος παράγοντας που επηρεάζει το χρόνο και το κόστος (……άρα οι καλοί προγραμματιστές πρέπει να αξίζουν καλύτερης οικονομικής μεταχείρισης)

• Το κόστος διόρθωσης λαθών αυξάνει σημαντικά όσο το χρονικό σημείο εντοπισμού τους πλησιάζει το τέλος του project (και πολύ περισσότερο όταν το ξεπερνά). Αξίζει να επενδύσει κανείς σε εργαλεία ανίχνευσης λαθών σε πρώιμα στάδια

Συμπεράσματα

Page 28: Κοστολόγηση Έργων Λογισμικού

• Έστω κόστος λαθών ανά φάση του έργου :

Απαιτήσεις: 0.01 €

Σχεδίαση : 0.1 €

Κωδικοποίηση: 1 €

Έλεγχος κώδικα: 10 €

Έλεγχος συστήμ: 100 €

Μετά παράδοση: 1000 €

Συμπεράσματα

Έστω κόστος έργου: 100.000 €

Έστω κόστος εργαλείου ανίχνευσης λαθών στη φάση των απαιτήσεων (ιδιαίτερα ακριβό) : 50.000 €

Συνολικό κόστος : 150.000 € (Οοοps !!!)

Έστω λάθη στον κώδικα: 150,λάθη στον έλεγχο συστήματος: 95λάθη που βρίσκει ο χρήστης: 77Συνολικό κόστος: 100.000 € + 86.650 € = 186.650 €

Και μας μένει και το πρόγραμμα για μελλοντικά έργα

Page 29: Κοστολόγηση Έργων Λογισμικού

• Τα μοντέλα δείχνουν ότι το συνολικό κόστος αυξάνει δραματικά όταν επιδιώκεται η επιτάχυνση του έργου ώστε να τελειώσει πριν από το προγραμματισμένο ορόσημο (αυτό είναι αναμενόμενο)

• Αυτό που προκαλεί έκπληξη, είναι ότι η εμπειρία δείχνει, ότι το έργο δεν μπορεί να ολοκληρωθεί σε χρόνο μικρότερο από 75 % του ονομαστικού, ανεξαρτήτως του ποσού που διατίθεται για το έργο

• Το μοντέλο COCOMO έχει σημαντική απήχηση και αποδοχή. Αυτό που απαιτείται είναι η τροποποίηση των τιμών των παραγόντων κόστους και ενδεχομένως η εύρεση νέων παραγόντων με την πρόοδο της τεχνολογίας

Συμπεράσματα