Σχεδιασµός και ιοίκηση Έργου Ανάπτυξης Λογισµικού Σχεδιασµός και ιοίκηση Έργου Ανάπτυξης Λογισµικού Αντώνης Καραγεώργος Τµήµα Μηχανικών Η/Υ και ικτύων Πανεπιστήµιο Θεσσαλίας karageorgos@inf.uth.gr Παρακολούθηση της προόδου Προσωπικό του Έργου Εκτίµηση της προσπάθειας ιαχείριση Κινδύνων Το Πλάνο του Έργου Μοντέλα ιεργασιών και ιοίκηση Έργου Παρακολούθηση της προόδου Ερωτήσεις από τον πελάτη Αντιλαµβάνεστε τα προβλήµατα και τις ανάγκες µου? Μπορείτε να σχεδιάσετε ένα σύστηµα που θα λύσει τα προβλήµατα και θα καλύψει τις ανάγκες µου? Πόσος χρόνος χρειάζεται για την ανάπτυξη ενός τέτοιου συστήµατος; Πόσο θα κοστίσει ηανάπτυξηενόςτέτοιουσυστήµατος? Απαιτείται ένα καλοσχεδιασµένο χρονοδιάγραµµα του έργου (project schedule) Χρονοδιάγραµµα έργου χρονολογικός πίνακας που παρουσιάζει πότε θα ξεκινήσουν και θα τελειώσουν οι δραστηριότητες και πότε θα είναι έτοιµα τα αντίστοιχα προϊόντα ανάπτυξης λογισµικού Έργο Χρονοδιάγραµµα Έργου Φάση 1 Βήµα 1 Βήµα 2 ραστηριότητα 1.1 ραστηριότητα 1.2 ραστηριότητα 1.3 Φάση 2 Φάση ν Βήµα 1 Βήµα 2 Βήµα 1 Βήµα 2 ραστηριότητα 2.1 ραστηριότητα 2.2 ραστηριότητα 3.3 1
ραστηριότητες και Ορόσηµα ραστηριότητα είναι ένα τµήµα του έργου που λαµβάνει χώρα µια συγκεκριµένη χρονική περίοδο Ορόσηµο είναι η ολοκλήρωση µιας δραστηριότητας µια συγκεκριµένη χρονική στιγµή Κάθε δραστηριότητα περιγράφεται από Προαπαίτηση (precursor) Ένα γεγονός ή σύνολο γεγονότων που πρέπει να συµβούν πριν την έναρξη της δραστηριότητας ιάρκεια (duration) Η χρονική περίοδος που απαιτείται για τη δραστηριότητα Καταληκτική ηµεροµηνία (due date) Ηµ/νιακατάτηνοποίαθα πρέπει να έχει ολοκληρωθεί η δραστηριότητα Σηµείο ολοκλήρωσης (endpoint) Ένα ορόσηµο ήένα παραδοτέο που δηλώνει το τέλος της δραστηριότητας Παράδειγµα Οροσήµων 1.1. Survey complete 1.2. Permits issued 1.3. Excavation complete 1.4. Materials on hand 2.1. Foundation laid 2.2. Outside walls complete 2.3. Exterior plumbing complete 2.4. Exterior electrical work complete 2.5. Exterior siding complete 2.6. Exterior painting complete 2.7. Doors and fixtures mounted 2.8. Roof complete 3.1. Interior plumbing complete 3.2. Interior electrical work complete 3.3. Wallboard in place 3.4. Interior painting complete 3.5. Floor covering laid 3.6. Doors and fixtures mounted Παράδειγµα δραστηριοτήτων και χρόνων Activity Time estimate (in days) Step 1 Prepare the site Activity 1.1 Survey the land 3 Activity 1.2 Request permits 15 Activity 1.3 Excavate for the foundation 10 Activity 1.4 Buy materials 10 Step 2 Building the exterior Activity 2.1 Lay the foundation 15 Activity 2.2 Build the outside walls 20 Activity 2.3 Install exterior plumbing 10 Activity 2.4 Exterior electrical work 10 Activity 2.5 Exterior siding 8 Activity 2.6 Paint the exterior 5 Activity 2.7 Install doors and fixtures 6 Activity 2.8 Install roof 9 Step 3 Finishing the interior Activity 3.1 Install the interior plumbing 12 Activity 3.2 Install interior electrical work 15 Activity 3.3 Install wallboard 9 Activity 3.4 Paint the interior 18 Activity 3.5 Install floor covering 11 Activity 3.6 Install doors and fixtures 7 Τοποθέτηση εξωτερικών ηλεκτρολογικών εγκαταστάσεων 2.4 Εξωτερικό σοβάτισµα 2.5 Βάψιµο εξωτερικών τοίχων 2.6 Τοποθέτηση εξωτερικών πορτών και παραθύρων 2.7 Γράφος δραστηριοτήτων ΑΡΧΗ Άδεια κατασκευής Επισκόπηση 1.2 1.1 Εκσκαφή 1.3 Αγορά υλικών 1.4 Τοποθέτηση θεµελίων Εγκατάσταση εξωτερικών 2.1 υδραυλικών εγκαταστάσεων Κατασκευή εξωτερικών τοίχων 2.2 2.3 Τοποθέτηση εσωτερικών 3.1 υδραυλικών εγκαταστάσεων Τοποθέτηση οροφής 2.8 ΤΕΛΟΣ Τοποθέτηση εσωτερικών ηλεκτρολογικών εγκαταστάσεων 3.2 Τοποθέτηση χωρισµάτων 3.3 Βάψιµο του εσωτερικού Τοποθέτηση πατωµάτων 3.5 3.4 3.6 Τοποθέτηση εσωτερικών πορτών και εντοιχισµένων χώρων 2
Γράφος δραστηριοτήτων µε διάρκεια ΑΡΧΗ 15 1.2 3 1.1 10 1.3 10 1.4 15 2.1 10 20 12 2.2 2.3 3.1 10 15 2.4 3.2 8 9 2.5 3.3 11 18 5 3.5 9 2.6 3.4 6 2.8 0 7 2.7 0 3.6 0 0 ΤΕΛΟΣ Σηµ. Η διακεκοµµένη γραµµή υποδεικνύει σχέση που δε συνοδεύεται από κάποια ραστηριότητα. Χρησιµοποιείται για συντονισµό (coordination) δραστηριοτήτων Εκτίµηση ολοκλήρωσης έργου Η µέθοδος του κρίσιµου µονοπατιού (Critical Path Method (CPM)) αναλύει τις διαδροµές µεταξύ των ορόσηµων είχνει τον ελάχιστο χρόνο που απαιτείται για την ολοκλήρωση του έργου Αποκαλύπτει τις δραστηριότητες εκείνες που είναι πιο σηµαντικές όσον αφορά την ολοκλήρωση του έργου εντός προθεσµίας ιασχίζουµε κάθεπιθανήδιαδροµή στογράφο δραστηριοτήτων από την αρχήωςτοτέλοςκαι προσθέτουµε τοχρόνο Το κρίσιµο µονοπάτι (critical path) είναι το πιο µακρύ µονοπάτι. Χρόνοι δραστηριοτήτων Πραγµατικός χρόνος (Real time) ο χρόνος που έχει υπολογιστεί οτι χρειάζεται για την ολοκλήρωση της δραστηριότητας ιαθέσιµος χρόνος (Available time) το χρονικό διάστηµα που είναι διαθέσιµο στοχρονοδιάγραµµα για την ολοκλήρωση της δραστηριότητας Αδρανής χρόνος (Slack time) = available time - real time Επίσης Αδρανής χρόνος = έσχατη χρονική στιγµή εκκίνησης - νωρίτερη χρονική στιγµή εκκίνησης Table 3.4. Slack time for project activities. Activity Earliest start time Latest start time Slack 1.1 1 13 12 1.2 1 1 0 1.3 16 16 0 1.4 26 26 0 2.1 36 36 0 2.2 51 51 0 2.3 71 83 12 2.4 81 93 12 2.5 91 103 12 2.6 99 111 12 2.7 104 119 15 2.8 104 116 12 3.1 71 71 0 3.2 83 83 0 3.3 98 98 0 3.4 107 107 0 3.5 107 107 0 3.6 118 118 0 Finish 124 124 0 3
Παρακολούθηση της προόδου του έργου ACTIVITY NUMBER DESCRIPTION JAN FEB MAR APR MAY JUN JUL AUG SEP OCT NOV DEC WBS 1.0 SYSTEM PLANNING 1.1 Review specification 1.2 Review budget 1.3 Review schedule 1.4 Develop plan WBS 2.0 SYSTEM DESIGN 2.1 Top-level design 2.2 Prototyping TODAY Specification approved Budget approved Schedule approved Plan approved Design approved ιαγράµµατα Gantt Παρουσιάζουν τις δραστηριότητες και τις εξαρτήσεις µεταξύ τους είχνουν τη διάρκεια κάθε δραστηριότητας Βασίζονται σε εκτιµήσεις όσον αφορά Τιςδραστηριότητεςτουέργου Το χρόνο και την προσπάθεια που απαιτούνται Υπάρχουν εργαλεία για τη δηµιουργία και τον έλεγχο των διαγραµµάτων Gantt (π.χ. Microsoft Project) 2.3 User interface Design 2.4 Detailed design approved Completed Duration Float Critical Slippage Start task Finish task Παράδειγµα διαγράµµατος Gantt Προγραµµατιστής που εργάζεται σε µικρό έργο λογισµικού ID Task Name Start Fi nish Du ratio n 1 Requirement gathering 12/5/2002 12/6/2002 2d 2 Analysis 12/9/2002 12/9/2002 1d Explicit start time, end time, and duration (in days ) Dec 2002 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Προσωπικό του έργου Για να προσδιορίσουµε το χρονοδιάγραµµα του έργου και να εκτιµήσουµε την προσπάθεια και το κόστος που απαιτούνται πρέπει να γνωρίζουµε Πόσοι άνθρωποι θα εργάζονται στο έργο Τί έργα θα εκτελούν Και τι ικανότητες και εµπειρία θα πρέπει να έχουν Ποιός κάνει τί και πώς οργανώνονται ιεραρχικά 3 Design 12/10/2002 12/11/2002 2d 4 Coding 12/12/2002 12/17/2002 4d 5 Testing 12/18/2002 12/31/2002 10d Explicit calendar bar 4
Ρόλοι και χαρακτηριστικά του προσωπικού Ικανότητα εκτέλεσης της εργασίας Ενδιαφέρον για εργασία Εµπειρία µε παρόµοιες εφαρµογές, εργαλεία ή γλώσσες Εκπαίδευση υνατότητα επικοινωνίας και µοιράσµατος ευθυνών µε άλλους Ικανότητες διοίκησης ΕΣΩΣΤΡΕΦΗΣ Τρόποι εργασίας ΙΑΙΣΘΗΤΙΚΟΣ ΕΣΩΣΤΡΕΦΗΣ Ρωτά τους άλλους Αναγνωρίζει τα συναισθήµατα ΟΡΘΟΛΟΓΙΣΤΗΣ ΕΣΩΣΤΡΕΦΗΣ Ρωτά τους άλλους Αποφασίζει µε βάση τη λογική ΙΑΙΣΘΗΤΙΚΟΣ ΙΑΙΣΘΗΤΙΚΟΣ ΕΞΩΣΤΡΕΦΗΣ Μιλά στους άλλους Αναγνωρίζει τα συναισθήµατα ΟΡΘΟΛΟΓΙΣΤΗΣ ΕΞΩΣΤΡΕΦΗΣ Μιλά στους άλλους Αποφασίζει µε βάση τη λογική ΕΞΩΣΤΡΕΦΗΣ ΟΡΘΟΛΟΓΙΣΤΗΣ Γραµµές επικοινωνίας Συναντήσεις συνεργασίας ύο άτοµα Τρία άτοµα Τέσσερα άτοµα Πέντε άτοµα Νάτοµα Μια γραµµή επικοινωνίας Τρείς γραµµές επικοινωνίας Έξι γραµµές επικοινωνίας έκα γραµµές επικοινωνίας n(n-1)/2 γραµµές επικοινωνίας Οι συναντήσεις είναι απαραίτητες για τη συνεργασία µεταξύ των συµµετεχόντων σε ένα έργο. Προβλήµατα µπορούν να προκύψουν όταν Το θέµα της συνάντησης είναι ασαφές Οι συµµετέχοντες είναι απροετοίµαστοι Βασικά µέλη είναι καθυστερηµένα ή απουσιάζουν Η συζήτηση αποκλίνει από το ζητούµενο Οι συµµετέχοντες διαπληκτίζονται, µιλούν συνεχώς ή δε συµµετέχουν Οι αποφάσεις που παίρνονται στη συνάντηση δεν εφαρµόζονται 5
Οργάνωση της οµάδας του έργου λογισµικού Οµάδα µε αρχιπρογραµµατιστή Τα µέλη της οµάδας οργανώνονται µε τρόπους που να βοηθούν την έγκαιρη ολοκλήρωση προϊόντων υψηλής ποιότητας Η επιλογή µιας συγκεκριµένης οργανωτικής δοµής εξαρτάται από Το υπόβαθρο και τον τρόπο εργασίας των µελών της οµάδας Τον αριθµό τωνατόµων στην οµάδα Τους τρόπους διοίκησης των πελατών και των υπεύθυνων ανάπτυξης Κύριοι προγραµµατιστές Βοηθοί προγραµµατιστές Αρχιπρογραµ- µατιστής Βοηθός αρχιπρογραµµατιστή Βιβλιοθηκονόµος ιαχείριση Οµάδα ελέγχου Για ν κύριους προγραµµατιστές χρειάζονται µόνο ν κανάλια επικοινωνίας Μπορούµε ναέχουµε καιιεραρχίεςυποοµάδων Μη εγωιστική προσέγγιση Άν τα περισσότερα µέλη της οµάδας είναι εσωστρεφείς τότε η ιεραρχική οργάνωση δεν είναι η καλύτερη Η µη εγωιστική προσέγγιση µοιράζει την ευθύνη εξίσου σ όλους Οι κριτικές γίνονται στο σύνολο του προιόντος και όχι στο κάθε άτοµο ξεχωριστά Όλα τα µέλη µιας οµάδας ψηφίζουν για να παρθεί µια απόφαση Σύγκριση οργανωτικών δοµών Αυστηρή δόµηση Υψηλός βαθµός αβεβαιότητας Επαναληπτικότητα Μεγάλα έργα Σαφώς καθορισµένοι στόχοι και προιόντα Μεγάλος αριθµός ατόµων Χαλαρή δόµηση Αβεβαιότητα Νέες τεχνικές ή τεχνολογία Μικρά έργα ηµιουργικότητα 6
Εκτίµηση της προσπάθειας και του κόστους ιάφορες κατηγορίες δαπανών εξοπλισµός, προσωπικό, µέθοδοι και εργαλεία Εξοπλισµός Για κάθε άτοµο χρειάζονται10 τετραγωνικά µέτρα δαπέδου, 3 τετραγωνικά πόδια γραφείου, διαχωριστικά γραφείου για ηχοµόνωση, αποµόνωση από ανεπιθύµητα τηλέφωνα και απρόσκλητους επισκέπτες Προσωπικό Το µεγαλύτερο συστατικό του κόστους είναι η προσπάθεια, ο ανθρωποχρόνος που απαιτείται Εργαλεία Εργαλεία και κόστος εκπαίδευσης Η εκτίµηση του κόστους, του χρονοδιαγράµµατος και της προσπάθειας πρέπει να γίνει όσο το δυνατόν νωρίτερα στη διάρκεια του κύκλου ζωής του έργου καθώς καθορίζει τηνανάθεσηπόρωντουέργου Τη δυνατότητα πραγµατοποίησης του συνολικού έργου Μέθοδοι εκτίµησης Τρεις κατηγορίες µεθόδων Κρίση των ειδικών Αλγοριθµικές µέθοδοι Μέθοδοι µηχανικής µάθησης Η πιο κατάλληλη µέθοδος πρέπει να επιλέγεται ανά περίπτωση Κρίση των ειδικών Ρωτάµε ένανειδικό Αναλογική στρατηγική Γνωρίζουµε την πολυπλοκότητα και το κόστος ενός άλλου συστήµατος και αντιστοιχούµε την αναµενόµενη πολυπλοκότητα του προς εκτέλεση έργου µε ανάλογο αναµενόµενο κόστος Καλείται και µελετηµένη εικασία (educated game) Μπορεί να γίνει και τυποποιηµένα ζητώντας τρείς προβλέψεις Απαισιόδοξη (pessimistic) (x) Αισιόδοξη (y) Πιο πιθανή (z) Χρησιµοποιούµε µια κανονικοποιηµένη τιµή µε βάση τη βήτα κατανοµή (x + 4y + z)/6 Κρίση των ειδικών Τεχνική Delphi Ζητούµε ανεξάρτητες προβλέψεις απο τον κάθε ειδικό ιδιαίτερα Υπολογίζουµε τηµέση πρόβλεψη Παρουσιάζουµε τα αποτελέσµατα στην οµάδα εργασίας εχόµαστε νέες προβλέψεις και σταµατάµε τη διαδικασία όταν δεν υπάρχουν νέες προβλέψεις 7
Αλγοριθµικές µέθοδοι Εκφράζουµε τησχέση µεταξύ της προσπάθειας που απαιτείται και των παραγόντων που την επηρεάζουν Π = (α + β Μ γ ) σ(χ) όπου Π είναι η προσπάθεια και Μ είναι το µέγεθος σε γραµµές κώδικα Χ διάνυσµα παραγόντων κόστους (π.χ. κατάσταση της αγοράς) σ πολλαπλασιαστής των παραγόντων α, β, γ σταθερές π.χ. Π = 5.25 Μ 0.91 Walston and Felix, 1977 Π = 5.5 + 0.73 Μ 1.16 Bailey and Basili, 1981 Πρόβληµα εκτίµησης του µεγέθους Μέθοδοι µηχανικής µάθησης Μαθαίνουµε από τα προηγούµενα έργα Προβλέπουµε τοµελλοντικό κόστος Προσέγγιση νευρωνικών δικτύων Εκπαιδεύουµε τοδίκτυοµε δεδοµένα από προηγούµενα έργα Οι τιµές του δικτύου ρυθµίζονται ώστε να αντικατοπτρίζουν προηγούµενη εµπειρία Χρησιµοποιούνται µέθοδοι εκπαίδευσης όπως οπισθοδροµική διάδοση (backprobagation) Χρησιµοποιούµε το δίκτυο για προβλέψεις της προσπάθειας που απαιτείται Μέθοδοι µηχανικής εκµάθησης Παράδειγµα Νευρωνικού ικτύου Εκµάθηση από προηγούµενα έργα Πρόβλεψη του µελλοντικού κόστους Προσέγγιση νευρωνικών δικτύων Εκπαίδευση του δικτύου µε δεδοµένα από προηγούµενα έργα Οι τιµές του δικτύου ρυθµίζονται ώστε να αντικατοπτρίζουν προηγούµενη εµπειρία Αλγόριθµοι εκπαίδευσης όπως οπισθοδροµική διάδοση Χρήση του δικτύου για να προσδιορισµό της απαιτούµενης προσπάθειας Πολυπλοκότητα προβλήµατος Καινοτοµία της εφαρµογής Χρήση Σχεδιαστικών εργαλείων Μέγεθος οµάδας Προσπάθεια Επίπεδο εισόδου Ενδιάµεσα επίπεδα Επίπεδο εξόδου 8
Μελέτη περιπτώσεων (Case-Base Reasoning-CBR) Απαιτεί πληροφορίες για έργα του παρελθόντος Χρήση της µελέτης περιπτώσεων Ο χρήστης αναγνωρίζει ένα νέο πρόβληµα ώς περίπτωση Το σύστηµα ανακτά παρόµοιες περιπτώσεις από µια βάση ιστορικών πληροφοριών Το σύστηµα επαναχρησιµοποιεί τη γνώση από τις προηγούµενες αυτές περιπτώσεις Το σύστηµα προτείνει µια λύση για τη νέα περίπτωση Η λύση αποθηκεύεται για να ξαναχρησιµοποιηθεί στο µέλλον Εµπόδια Χαρακτηρισµός περιπτώσεων και προσδιορισµός της οµοιότητας 9