1 / 29

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

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

yannis
Download Presentation

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

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. Κοστολόγηση Έργων Λογισμικού • Συχνοί λόγοι αστοχίας στην εκτίμηση του κόστους: • (35/115 εταιρείες αναφέρουν ότι το αποτέλεσμα της εκτίμησης κόστους ήταν ‘’σχετικά ανεπαρκές’’ και ‘’πλήρως ανεπαρκές’’ • Συχνές αιτήσεις για αλλαγές από τους χρήστες • Δραστηριότητες που παραβλέφθηκαν • Έλλειψη κατανόησης απαιτήσεων από τους χρήστες • Ανεπαρκής ανάλυση κατά την εκτίμηση του κόστους • Έλλειψη συντονισμού μεταξύ ομάδων • Έλλειψη μεθόδων εκτίμησης

  3. Κοστολόγηση Έργων Λογισμικού • Παράγοντες που επηρεάζουν την εκτίμηση κόστους: • Πολυπλοκότητα του συστήματος • Ολοκλήρωση με υπάρχοντα συστήματα • Μέγεθος του συστήματος (αριθμός λειτουργιών) • Ικανότητα ομάδας ανάπτυξης • Εμπειρία σε παρόμοιες εφαρμογές • Αναμενόμενη συχνότητα αλλαγών στις απαιτήσεις • Εμπειρία με τη γλώσσα προγραμματισμού • Αριθμός ατόμων στην ομάδα ανάπτυξης • Αναγκαιότητα συμμόρφωσης με πρότυπα • Διαθεσιμότητα εργαλείων

  4. Μη Αλγοριθμικές Τεχνικές • Απλή Εκτίμηση από τον διαχειριστή του έργου • Εκτίμηση ειδικών (κατανομή Βήτα) • Τεχνική Δελφών • Wolverton (1974) Πρόβλημα: 100άρι - Μαραθώνιος Pfleeger

  5. Tεχνική κοστολόγηση COCOMO • (COnstructive COst MOdel) • Πρώτο σημαντικό άλμα στον τρόπο υπολογισμού κόστους έργων λογισμικού • Αλγοριθμικό μοντέλο κοστολόγησης • Αναπτύχθηκε από τον Barry Boehm το 1981 • Περιγράφεται στο βιβλίο Software Engineering Economics (βιβλιοθήκη) • Είναι από τα 2 πιο ευρέως χρησιμοποιούμενα μοντέλα • Βασικά, το μοντέλο COCOMO υπολογίζει μία εκτίμηση της διάρκειας και του κόστους ενός έργου λογισμικού, βασιζόμενο στο μέγεθος του προϊόντος και την ποιότητα της ομάδος ανάπτυξης

  6. Απλουστευτικές Υποθέσεις • Θεωρούμε 152 ώρες εργασίας ανά εργατο-μήνα • Θεωρούμε ικανό management • Θεωρούμε ότι το έγγραφο περιγραφής απαιτήσεων δεν τροποποιείται μετά την έγκρισή του • Θεωρούμε ότι ο σημαντικότερος παράγοντας κόστους είναι το μέγεθος του έργου λογισμικού • Το μέγεθος του έργου προσδιορίζεται σε χιλιάδες γραμμές παραδοτέου κώδικα (KDeliveredSourceInstructions - KDSI) • Τρία μοντέλα: • Βασικό μοντέλο • Ενδιάμεσο μοντέλο • Λεπτομερειακό μοντέλο

  7. Βασικό Mοντέλο • Απαιτούμενη προσπάθεια σε ανθρωπομήνες : • ΜΜ = 2.4 (KDSI)1.05 • Απαιτούμενος χρόνος ανάπτυξης του έργου • Τ = 2.5 (MM)0.38 • Ενδιαφέροντα σημεία: ο εκθέτης του KDSI είναι σχεδόν ίσος με τη μονάδα, άρα η προσπάθεια ανάπτυξης είναι γραμμική συνάρτηση του μεγέθους του κώδικα • Ο αριθμός των ατόμων θεωρείται ‘’βέλτιστος’’ για κάθε στάδιο του έργου. Π.χ. στο μέσο του έργου απασχολούνται περισσότεροι από ότι στη φάση καθορισμού των απαιτήσεων

  8. COCOMO – Ενδιάμεσο Μοντέλο • Στο ενδιάμεσο μοντέλο εισάγονται δύο κύριες τροποποιήσεις: • Πρώτον, τα έργα λογισμικού διακρίνονται σε τρείς κατηγορίες: οργανικά, ημιαποσπασμένα και ενσωματωμένα • Δεύτερον, αναγνωρίζονται συγκεκριμένοι παράγοντες που επηρρεάζουν το κόστος (αφορούν το προϊόν, τη διαδικασία και το προσωπικό)

  9. COCOMO – Κατηγορίες Έργων Οργανικά Το πρόγραμμα είναι σχετικά ανεξάρτητο και έχει μικρή διασύνδεση με το περιβάλλον Ημιαποσπασμένα Υπάρχουν συνδέσεις με το περιβάλλον, αλλά όχι κρίσιμες χρονικές εξαρτήσεις Ενσωματωμένα Κάθε συναλλαγή με το σύστημα είναι κρίσιμη από πλευράς χρόνου και ακρίβειας. Υπάρχουν αρκετοί περιορισμοί που εισάγονται από το περιβάλλον

  10. Κατηγορίες Έργων - Παράδειγμα Οργανικά Σύστημα ανάλυσης πληροφοριών πτήσης, που επεξεργάζεται τα δεδομένα μετά το τέλος της πτήσης Ημιαποσπασμένα Προσομοιωτής πτήσης αεροσκαφών Ενσωματωμένα Λογισμικό Αεροσκάφους για την αποφυγή συγκρούσεων με άλλα αεροσκάφη κατά τη διάρκεια της πτήσης

  11. COCOMO (Εξισώσεις) • Εξίσωση υπολογισμού απαιτούμενης ονομαστικής προσπάθειας • ΜΜΝΟΜ = C (KDSI)K • C, Κ: παράμετροι, KDSI: thousands of delivered source lines • MMNOM: ονομαστική προσπάθεια σε ανθρωπομήνες

  12. COCOMO (Εξισώσεις) • Ένα σύνολο από 15 χαρακτηριστικά (‘’παράγοντες κόστους’’) που θεωρούνται ότι συνεισφέρουν στο κόστος. • Σε κάθε παράγοντα κόστους αντιστοιχεί ένας ‘’πολλαπλασιαστής προσπάθειας’’ (q1, q2, … , q15) • Εξίσωση υπολογισμού παράγοντα προσαρμογής προσπάθειας • q = q1 q2, … q15

  13. COCOMO (Πίνακες) • Παράγοντες κόστους • RELY Απαιτούμενη αξιοπιστία λογισμικού προϊόν • DATA Μέγεθος βάσης δεδομένων προϊόν • CPLX Πολυπλοκότητα προϊόντος προϊόν • ΤΙΜΕ Περιορισμός στο χρόνο εκτέλεσης Η/Υ • STOR Περιορισμός στην κύρια μνήμη Η/Υ • VIRT Αλλαγές στο σύστημα HW/SW H/Y • TURN Χρόνος απόκρισης υπολογιστή (απηρχειωμένο) Η/Υ • ΑCAP Ικανότητα αναλυτών προσωπ • ΑΕΧP Εμπειρία αναλυτών σε εφαρμογές προσωπ • PCAP Ικανότητα προγραμματιστών προσωπ • VEXP Εμπειρία με το σύστημα HW/SW (OS etc) προσωπ • LEXP Εμπειρία με τη γλώσσα προγραμματισμού προσωπ • ΜΟDP Χρήση μοντέρνων πρακτικών προγραμματ. έργο • TOOL Χρήση εργαλείων προγραμματισμού έργο • SCED Πίεση από χρονοδιάγραμμα ανάπτυξης έργο

  14. COCOMO (Εξισώσεις) • Εξίσωση υπολογισμού προσπάθειαςανάπτυξης • ΜΜDEV = q  MMNOM • Εξίσωση υπολογισμού κόστους • Ct = p  MMDEV • p: αξία σε χρήμα ενός ανθρωπομήνα • Εξίσωση υπολογισμού διάρκειας του έργου • ΤDEV = R  (MMDEV)m • R, m: παράμετροι

  15. COCOMO • Δεδομένα εισόδου: Μέγεθος ενός έργου λογισμικού (KDSI) • παράγοντες κόστους • τιμή του ανθρωπομήνα εργασίας • Για να λειτουργήσει το μοντέλο απαιτείται βαθμονόμηση (calibration) για την καταχώρηση τιμών στις παραμέτρους του μοντέλου • Ο Boehm βαθμονόμησε το μοντέλο χρησιμοποιώντας δεδομένα από 63 διαφορετικά έργα λογισμικού

  16. Κατηγορίες έργων λογισμικού Κατηγορία Χαρακτηριστικά οργανική ημιαποσπασμένη ενσωματωμένη Κατανόηση από όλους των αντι- λεπτομερής λεπτομερής γενική κειμενικών σκοπών του προϊόντος Εμπειρία σε σχετικά έργα λογισμικού εκτενής σημαντική μέτρια Ανάγκη για συμμόρφωση με προκα- βασική σημαντική πλήρης τασκευασμένες απαιτήσεις Ανάγκη για συμμόρφωση με προκατα- βασική σημαντική πλήρης σκευασμένο εξωτερικό Interface Ταυτόχρονη ανάπτυξη νέων λειτουργι- μερική μέτρια πλήρης κών διαδικασιών και υλικού Ανάγκη για νεωτεριστικές αρχιτεκτονι- ελάχιστη μερική σημαντική κές, νέους αλγόριθμους Bonus για γρήγορη αποπεράτωση χαμηλό μέτριο υψηλό Μέγεθος προϊόντος <50 KDSI <300 KDSI όλα Παραδείγματα ΕπιστημονικάΚαινούργια ΛΣ, Σύνθετα μοντέλα, Συστήματα ΒΔ συστ Δοσοληψ Συστήματα ελέγχου παραγωγής, Φιλόδοξα ΛΣ Compilers

  17. Κατηγορίες έργων λογισμικού Κατηγορία ονομαστική προσπάθεια διάρκεια ανάπτυξης οργανική ΜΜΝΟΜ = 3.2(ΚDSI)1.05 TDEV = 2.5 (MMDEV)0.38 ημιαποσπ. ΜΜΝΟΜ = 3.0(ΚDSI)1.12TDEV = 2.5 (MMDEV)0.35 ενσωματωμ ΜΜΝΟΜ = 2.8(ΚDSI)1.20TDEV = 2.5 (MMDEV)0.32

  18. Πολλαπλασιαστές Προσπάθειας • Κατάταξη • χαμηλότερη χαμηλή ονομαστική υψηλή υψηλότερη υψηλότατη • RELY 0.75 0.88 1.00 1.15 1.40 • DATA 0.94 1.00 1.08 1.18 • CPLX 0.70 0.85 1.00 1.15 1.30 1.65 • ΤΙΜΕ 1.00 1.11 1.30 1.66 • STOR 1.00 1.06 1.21 1.56 • VIRT 0.87 1.00 1.15 1.30 • TURN 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.82 • PCAP 1.42 1.17 1.00 0.86 0.70 • VEXP 1.21 1.10 1.00 0.90 • LEXP 1.14 1.07 1.00 0.95 • ΜΟDP 1.24 1.10 1.00 0.91 0.82 • TOOL 1.24 1.10 1.00 0.91 0.83 • SCED 1.23 1.08 1.00 1.04 1.10

  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 %

  20. Κατάταξη ‘’Πολυπλοκότητας’’ CPLX • Για λειτουργίες υπολογισμού : • Χαμηλότερη Αποτίμηση απλών εκφράσεων π.χ. • Α=Β*C+(D-E) • Χαμηλή Αποτίμηση μετρίου επιπέδου εκφράσεων π.χ. • D=SQRT(B**2-4*A*C) • Ονομαστική Χρήση προτύπων μαθηματικών και στατιστικών ρουτινών, Λειτουργίες μητρών • Υψηλή Βασική Αριθμητική Ανάλυση, Κοινές • διαφορικές εξισώσεις • Υψηλότερη Συστήματα γραμμικών εξισώσεων, διαφορικές εξισώσεις με μερικές παραγώγους • Υψηλότατη Ανάλυση στοχαστικών δεδομένων, δύσκολοι αλγόριθμοι αριθμητικής ανάλυσης

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

  22. Κατηγορίες έργων λογισμικού φιλόδοξο νέο δίκτυο καλό interface δίκτυο = επικοινωνίες υπάρχοντες κανόνες μεταφοράς κεφαλαίων Κατηγορία Χαρακτηριστικά οργανική ημιαποσπασμένη ενσωματωμένη Κατανόηση από όλους των αντι- λεπτομερής λεπτομερής γενική κειμενικών σκοπών του προϊόντος Εμπειρία σε σχετικά έργα λογισμικού εκτενής σημαντική μέτρια Ανάγκη για συμμόρφωση με προκα- βασική σημαντική πλήρης τασκευασμένες απαιτήσεις Ανάγκη για συμμόρφωση με προκατα- βασική σημαντική πλήρης σκευασμένο εξωτερικό Interface Ταυτόχρονη ανάπτυξη νέων λειτουργι- μερική μέτρια πλήρης κών διαδικασιών και υλικού Ανάγκη για νεωτεριστικές αρχιτεκτονι- ελάχιστη μερική σημαντική κές, νέους αλγόριθμους Bonus για γρήγορη αποπεράτωση χαμηλό μέτριο υψηλό Μέγεθος προϊόντος <50 KDSI <300 KDSI όλα

  23. Υπολογισμός ονομαστικής προσπάθειας Κατηγορία ονομαστική προσπάθεια διάρκεια ανάπτυξης οργανική ΜΜΝΟΜ = 3.2(ΚDSI)1.05 TDEV = 2.5 (MMDEV)0.38 ημιαποσπ. ΜΜΝΟΜ = 3.0(ΚDSI)1.12TDEV = 2.5 (MMDEV)0.35 ενσωματωμ ΜΜΝΟΜ = 2.8(ΚDSI)1.20TDEV = 2.5 (MMDEV)0.32 ΜΜΝΟΜ = 2.8(10)1.20 = 44 ανθρωπομήνες

  24. Παράγοντες κόστους - ταξινόμηση • RELY Σοβαρές οικονομ. επιπτώσεις υψηλή 1.15 • DATA 20000 bytes χαμηλή 0.94 • CPLX Επεξεργασία επικοινωνιών υψηλότατ 1.30 • ΤΙΜΕ 70% χρήση του διαθέσιμου χρόνου υψηλή 1.11 • STOR 70% χρήση της διαθέσιμης μνήμης υψηλή 1.06 • VIRT Θα βασισθεί σε υπάρχον H/Y σύστημα ονομαστ. 1.00 • TURN Χρόνος απόκρισης ονομαστ. 1.00 • ΑCAP Καλοί ηλικιωμένοι αναλυτές υψηλή 0.85 • ΑΕΧP Τρία έτη ονομαστ. 1.00 • PCAP Καλοί προγραμματιστές (75 %) υψηλή 0.86 • VEXP Έξι μήνες χαμηλή 1.10 • LEXP Δώδεκα μήνες ονομαστ. 1.00 • ΜΟDP Οι περισσότερες τεχνικές είναι γνωστές υψηλή 0.91 • TOOL Βασικά εργαλεία Η/Υ χαμηλή 1.10 • SCED Εννέα μήνες ονομαστ 1.00

  25. Παράδειγμα (συνέχεια) • Υπολογισμός παράγοντα προσαρμογής προσπάθειας • q = q1 q2, … q15= 1.35 • Υπολογισμός προσπάθειας ανάπτυξης • ΜΜDEV = q  MMNOM = 1.35 * 44 = 59 ανθρωπομήνες • Υπολογισμός κόστους, θεωρώντας κόστος ανθρωπομήνα 1000€ • Ct = 59.000 €

  26. Παράδειγμα (συνέχεια) • Υπολογισμός διάρκειας ανάπτυξης • ΤDEV = R  (MMDEV)m= 2.5  (59)0.32 = 9 μήνες

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

  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 € Και μας μένει και το πρόγραμμα για μελλοντικά έργα

  29. Συμπεράσματα • Τα μοντέλα δείχνουν ότι το συνολικό κόστος αυξάνει δραματικά όταν επιδιώκεται η επιτάχυνση του έργου ώστε να τελειώσει πριν από το προγραμματισμένο ορόσημο (αυτό είναι αναμενόμενο) • Αυτό που προκαλεί έκπληξη, είναι ότι η εμπειρία δείχνει, ότι το έργο δεν μπορεί να ολοκληρωθεί σε χρόνο μικρότερο από 75 % του ονομαστικού, ανεξαρτήτως του ποσού που διατίθεται για το έργο • Το μοντέλο COCOMO έχει σημαντική απήχηση και αποδοχή. Αυτό που απαιτείται είναι η τροποποίηση των τιμών των παραγόντων κόστους και ενδεχομένως η εύρεση νέων παραγόντων με την πρόοδο της τεχνολογίας

More Related