• Οι ερωτήσεις που θα θέλαμε να απαντήσουμε πριν την έναρξη ενός έργου λογισμικού συνήθως είναι : • πόσο μεγάλο θα είναι ? • πόσο θα κοστίσει ? • πόσο θα διαρκέσει η ανάπτυξή του ? • πόσοι άνθρωποι απαιτούνται ? • ποιοι παράγοντες καθορίζουν τα ανωτέρω ? • τι ρόλο παίζει ο κάθε παράγοντας ? Κοστολόγηση Έργων Λογισμικού
Κοστολόγηση Έργων Λογισμικού. Οι ερωτήσεις που θα θέλαμε να απαντήσουμε πριν την έναρξη ενός έργου λογισμικού συνήθως είναι : πόσο μεγάλο θα είναι ? πόσο θα κοστίσει ? πόσο θα διαρκέσει η ανάπτυξή του ? πόσοι άνθρωποι απαιτούνται ? ποιοι παράγοντες καθορίζουν τα ανωτέρω ? - PowerPoint PPT Presentation
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
• Οι ερωτήσεις που θα θέλαμε να απαντήσουμε πριν την έναρξη ενός έργου λογισμικού συνήθως είναι :
• πόσο μεγάλο θα είναι ?
• πόσο θα κοστίσει ?
• πόσο θα διαρκέσει η ανάπτυξή του ?
• πόσοι άνθρωποι απαιτούνται ?
• ποιοι παράγοντες καθορίζουν τα ανωτέρω ?
• τι ρόλο παίζει ο κάθε παράγοντας ?
Κοστολόγηση Έργων Λογισμικού
Συχνοί λόγοι αστοχίας στην εκτίμηση του κόστουςΣυχνοί λόγοι αστοχίας στην εκτίμηση του κόστους:
(35/115 εταιρείες αναφέρουν ότι το αποτέλεσμα της εκτίμησης κόστους ήταν ‘’σχετικά ανεπαρκές’’ και ‘’πλήρως ανεπαρκές’’
• Συχνές αιτήσεις για αλλαγές από τους χρήστες
• Δραστηριότητες που παραβλέφθηκαν
• Έλλειψη κατανόησης απαιτήσεων από τους χρήστες
• Ανεπαρκής ανάλυση κατά την εκτίμηση του κόστους
• Έλλειψη συντονισμού μεταξύ ομάδων
• Έλλειψη μεθόδων εκτίμησης
Κοστολόγηση Έργων Λογισμικού
Παράγοντες που επηρεάζουν την εκτίμηση κόστουςΠαράγοντες που επηρεάζουν την εκτίμηση κόστους:
• Πρώτο σημαντικό άλμα στον τρόπο υπολογισμού κόστους έργων λογισμικού
•Αλγοριθμικό μοντέλο κοστολόγησης
• Αναπτύχθηκε από τον Barry Boehm το 1981
• Περιγράφεται στο βιβλίο Software Engineering Economics (βιβλιοθήκη)
• Είναι από τα 2 πιο ευρέως χρησιμοποιούμενα μοντέλα
• Βασικά, το μοντέλο COCOMO υπολογίζει μία εκτίμηση της διάρκειας και του κόστους ενός έργου λογισμικού, βασιζόμενο στο μέγεθος του προϊόντος και την ποιότητα της ομάδος ανάπτυξης
Tεχνική κοστολόγηση COCOMO
• Θεωρούμε 152 ώρες εργασίας ανά εργατο-μήνα
• Θεωρούμε ικανό management
• Θεωρούμε ότι το έγγραφο περιγραφής απαιτήσεων δεν τροποποιείται μετά την έγκρισή του
• Θεωρούμε ότι ο σημαντικότερος παράγοντας κόστους είναι το μέγεθος του έργου λογισμικού
• Το μέγεθος του έργου προσδιορίζεται σε χιλιάδες γραμμές παραδοτέου κώδικα (KDeliveredSourceInstructions - KDSI)
Τρία μοντέλα:
• Βασικό μοντέλο
• Ενδιάμεσο μοντέλο
• Λεπτομερειακό μοντέλο
Απλουστευτικές Υποθέσεις
Βασικό Mοντέλο
• Απαιτούμενη προσπάθεια σε ανθρωπομήνες :
ΜΜ = 2.4 (KDSI)1.05
• Απαιτούμενος χρόνος ανάπτυξης του έργου
Τ = 2.5 (MM)0.38
• Ενδιαφέροντα σημεία: ο εκθέτης του KDSI είναι σχεδόν ίσος με τη μονάδα, άρα η προσπάθεια ανάπτυξης είναι γραμμική συνάρτηση του μεγέθους του κώδικα
• Ο αριθμός των ατόμων θεωρείται ‘’βέλτιστος’’ για κάθε στάδιο του έργου. Π.χ. στο μέσο του έργου απασχολούνται περισσότεροι από ότι στη φάση καθορισμού των απαιτήσεων
• Στο ενδιάμεσο μοντέλο εισάγονται δύο κύριες τροποποιήσεις:
• Πρώτον, τα έργα λογισμικού διακρίνονται σε τρείς κατηγορίες: οργανικά, ημιαποσπασμένα και ενσωματωμένα
• Δεύτερον, αναγνωρίζονται συγκεκριμένοι παράγοντες που επηρρεάζουν το κόστος (αφορούν το προϊόν, τη διαδικασία και το προσωπικό)
COCOMO – Ενδιάμεσο Μοντέλο
Οργανικά
Το πρόγραμμα είναι σχετικά ανεξάρτητο και έχει μικρή διασύνδεση με το περιβάλλον
Ημιαποσπασμένα
Υπάρχουν συνδέσεις με το περιβάλλον, αλλά όχι κρίσιμες χρονικές εξαρτήσεις
Ενσωματωμένα
Κάθε συναλλαγή με το σύστημα είναι κρίσιμη από πλευράς χρόνου και ακρίβειας. Υπάρχουν αρκετοί περιορισμοί που εισάγονται από το περιβάλλον
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 Πίεση από χρονοδιάγραμμα ανάπτυξης έργο
• Εξίσωση υπολογισμού προσπάθειας ανάπτυξης
ΜΜDEV = q MMNOM
• Εξίσωση υπολογισμού κόστους
Ct = p MMDEV
p: αξία σε χρήμα ενός ανθρωπομήνα
• Εξίσωση υπολογισμού διάρκειας του έργου
ΤDEV = R (MMDEV)m
R, m: παράμετροι
COCOMO (Εξισώσεις)
• Δεδομένα εισόδου: Μέγεθος ενός έργου λογισμικού (KDSI)
παράγοντες κόστους
τιμή του ανθρωπομήνα εργασίας
• Για να λειτουργήσει το μοντέλο απαιτείται βαθμονόμηση (calibration) για την καταχώρηση τιμών στις παραμέτρους του μοντέλου
• Ο Boehm βαθμονόμησε το μοντέλο χρησιμοποιώντας δεδομένα από 63 διαφορετικά έργα λογισμικού
COCOMO
ΚατηγορίαΧαρακτηριστικά οργανική ημιαποσπασμένη ενσωματωμένηΚατανόηση από όλους των αντι- λεπτομερής λεπτομερής γενικήκειμενικών σκοπών του προϊόντος
Εμπειρία σε σχετικά έργα λογισμικού εκτενής σημαντική μέτρια
Ανάγκη για συμμόρφωση με προκα- βασική σημαντική πλήρηςτασκευασμένες απαιτήσεις
Ανάγκη για συμμόρφωση με προκατα- βασική σημαντική πλήρηςσκευασμένο εξωτερικό Interface
Ταυτόχρονη ανάπτυξη νέων λειτουργι- μερική μέτρια πλήρηςκών διαδικασιών και υλικού
Ανάγκη για νεωτεριστικές αρχιτεκτονι- ελάχιστη μερική σημαντική κές, νέους αλγόριθμους
• Σε έργα όπου συμμετέχει μικρός αριθμός ατόμων, υπάρχει μεγάλη εξάρτηση του τελικού κόστους από τις ικανότητες του κάθε ατόμου. Για περισσότερα άτομα, η συνολική ικανότητα εκφράζεται από το μέσο όρο
• Δεδομένου του μεγέθους, η ποιότητα της ομάδος ανάπτυξης είναι ο κυριότερος παράγοντας που επηρεάζει το χρόνο και το κόστος (……άρα οι καλοί προγραμματιστές πρέπει να αξίζουν καλύτερης οικονομικής μεταχείρισης)
• Το κόστος διόρθωσης λαθών αυξάνει σημαντικά όσο το χρονικό σημείο εντοπισμού τους πλησιάζει το τέλος του project (και πολύ περισσότερο όταν το ξεπερνά). Αξίζει να επενδύσει κανείς σε εργαλεία ανίχνευσης λαθών σε πρώιμα στάδια
Συμπεράσματα
• Έστω κόστος λαθών ανά φάση του έργου :
Απαιτήσεις: 0.01 €
Σχεδίαση : 0.1 €
Κωδικοποίηση: 1 €
Έλεγχος κώδικα: 10 €
Έλεγχος συστήμ: 100 €
Μετά παράδοση: 1000 €
Συμπεράσματα
Έστω κόστος έργου: 100.000 €
Έστω κόστος εργαλείου ανίχνευσης λαθών στη φάση των απαιτήσεων (ιδιαίτερα ακριβό) : 50.000 €
Συνολικό κόστος : 150.000 € (Οοοps !!!)
Έστω λάθη στον κώδικα: 150,λάθη στον έλεγχο συστήματος: 95λάθη που βρίσκει ο χρήστης: 77Συνολικό κόστος: 100.000 € + 86.650 € = 186.650 €
Και μας μένει και το πρόγραμμα για μελλοντικά έργα
• Τα μοντέλα δείχνουν ότι το συνολικό κόστος αυξάνει δραματικά όταν επιδιώκεται η επιτάχυνση του έργου ώστε να τελειώσει πριν από το προγραμματισμένο ορόσημο (αυτό είναι αναμενόμενο)
• Αυτό που προκαλεί έκπληξη, είναι ότι η εμπειρία δείχνει, ότι το έργο δεν μπορεί να ολοκληρωθεί σε χρόνο μικρότερο από 75 % του ονομαστικού, ανεξαρτήτως του ποσού που διατίθεται για το έργο
• Το μοντέλο COCOMO έχει σημαντική απήχηση και αποδοχή. Αυτό που απαιτείται είναι η τροποποίηση των τιμών των παραγόντων κόστους και ενδεχομένως η εύρεση νέων παραγόντων με την πρόοδο της τεχνολογίας