ΣΧΕΔΙΑΣΗ & ΑΝΑΠΤΥΞΗ ΛΟΓΙΣΜΙΚΟΥ Διδάσκουσα: Χαρίκλεια Τσαλαπάτα Πανεπιστήμιο Θεσσαλίας ΤΗΜΜΥ 420 htsalapa@inf.uth.gr (e-ce.uth.gr) 1
Εκπαιδευτικό υλικό μαθήματος Ιστοσελίδα: http://eclass.uth.gr/eclass/courses/mhx330/ Χρονοδιάγραμμα μαθήματος Ανακοινώσεις Διαφάνειες μαθημάτων Άρθρα Χρήσιμοι σύνδεσμοι Λογισμικό Επικοινωνία Ώρες γραφείου: Τρίτη 9.30 11.30 Email: htsalapa@inf.uth.gr (e-ce.uth.gr) 2
Αντικείμενο μελέτης Η διαδικασία παραγωγής λογισμικού Από τη σύλληψη της ιδέας μέχρι την παράδοση στον πελάτη... και παραπέρα: διαχείριση κατά τη διάρκεια ζωής του λογισμικού 3
Αντικείμενο μελέτης συγκεκριμένα Ανάλυση απαιτήσεων, προδιαγραφές Άνθρωποι, οργανισμοί, και συστήματα υπολογιστών Μοντελοποίηση συστημάτων - δεδομένα, συμπεριφορά, αντικείμενα (UML, διαγράμματα ροής, κλπ.) Διαχείριση έργων Ανάλυση κόστους Αρχιτεκτονικός σχεδιασμός Μεθοδολογίες, τεχνικές και εργαλεία παραγωγής λογισμικού Σχεδιασμός διασύνδεσης χρήστη Έλεγχος ορθής λειτουργίας, επαλήθευση, επικύρωση Έλεγχος μονάδων, έλεγχος συστήματος Επαναχρησιμοποίηση λογισμικού Συντήρηση, εξέλιξη, επαναχρησιμοποίηση Agile, extreme Κρίσιμα συστήματα 4
Επιπλέον Διαχείριση ανθρώπινου δυναμικού Διαχείριση ποιότητας Βελτίωση διαδικασιών Ανάλυση κινδύνων και σχέδιο προστασίας Διαχείριση αλλαγών στο σχεδιασμό Design patterns ΤΗΜΜΥ, Πανεπιστήμιο Θεσσαλίας 5
Επιπλέον ενότητες βιβλίου Κατανεμημένα συστήματα Αντικειμενο στρεφής σχεδιασμός Σχεδιασμός λογισμικού πραγματικού χρόνου Διαχείριση διευθετήσεων Σχεδιασμός με βάση υπηρεσίες Θεματο κεντρικός σχεδιασμός ΤΗΜΜΥ, Πανεπιστήμιο Θεσσαλίας 6
Ανάγκες, απαιτήσεις (πελάτες) Μοντελοποί ηση Σχεδιασμός Υλοποίηση Έλεγχος Παράδοση Συντήρηση ΤΗΜΜΥ, Πανεπιστήμιο Θεσσαλίας 7
Η διαδικασία παραγωγής πελάτες σύστημα, υπηρεσία, εφαρμογή μηχανικοί διαδικασία παραγωγής ΤΗΜΜΥ, Πανεπιστήμιο Θεσσαλίας 8
Συμμετέχοντες σε ένα έργο λογισμικού 9
Πελάτης Καθορίζει τι θα κατασκευαστεί Παρέχει προδιαγραφές των απαιτήσεων Χρηματοδοτεί την ανάπτυξη Παραλαμβάνει και αξιολογεί το τελικό προϊόν 10
Χρήστης- Διαχειριστής Σύνδεσμος μεταξύ πελάτη δημιουργού Διαπραγματεύεται χρόνο παράδοσης και κόστος Χρονοπρογραμματίζει και επιβλέπει το έργο Θέτει περιορισμούς στο χρόνο και στην προσπάθεια στο δημιουργό 11
Δημιουργός Καθορίζει πώς θα κατασκευαστεί το προϊόν Δημιουργεί το προϊόν (λογισμικό) Προσπαθεί για την ικανοποίηση του πελάτη 12
Σχέσεις μεταξύ συμμετεχόντων Απαραίτητη επικοινωνία, ευελιξία και αμοιβαία κατανόηση Πρόβλημα: Αβεβαιότητα Επικάλυψη ρόλων κατά την πρόοδο του έργου 13
Πως θα οργανωθεί η εργασία ΤΗΜΜΥ, Πανεπιστήμιο Θεσσαλίας 14
Οργάνωση εργασίας Παρουσίαση γενικής ενότητας Ασκήσεις μέσα στην τάξη Case studies: παραδείγματα συστημάτων & καλών πρακτικών 1 μεγάλη εργασία εξαμήνου με υπο-ενότητες ΤΗΜΜΥ, Πανεπιστήμιο Θεσσαλίας 15
Εργασίες ΤΗΜΜΥ, Πανεπιστήμιο Θεσσαλίας 16
Ολοκληρωμένο έργο λογισμικού Ανάπτυξη έργου λογισμικού Ακολουθώντας τις αρχές Τεχνολογίας Λογισμικού Παραδοτέα πραγματικών έργων Ρεαλισμός: - χρονοδιάγραμμα προθεσμίες - συνεργασία με (πολλούς) συναδέλφους πλήρης λειτουργικότητα Ομάδες π.χ. 5-8 ατόμων Διαθέσιμος Χρόνος : από 2-3η εβδομάδα μέχρι εξεταστική 17
Ολοκληρωμένο έργο λογισμικού Ενδεικτικά Θέματα: Ηλεκτρονικά Παιχνίδια (π.χ. Monopoly, Πόκερ, Αγωνία, The Deal) Προσομοίωση λειτουργίας χρηματιστηρίου Σύστημα καθορισμού εφημεριών ιατρών σε νοσοκομείο Κατανομή αδειών προσωπικού Λογισμικό αυτόματου πωλητή αναψυκτικών Προγραμματισμός εξετάσεων εξαμήνου Συστήματα προγνωστικών Σύστημα υπολογισμού μορίων εισαγωγής στην Γ/θμια εκπαίδευση Διαχείριση τουριστικών πακέτων (εισιτήρια, διαμονή, αυτοκίνητο, εκδρομές κλπ) 18
Τι αφορά και τι δεν αφορά η εργασία Αφορά Τι διαχείριση ενός έργου λογισμικού (από τη σύλληψη της ιδέας μέχρι την παράδοση) Δεν αφορά Δεν εξετάζουμε γνώσεις προγραμματισμού (δεν είναι αυτός ο σκοπός του μαθήματος) ΤΗΜΜΥ, Πανεπιστήμιο Θεσσαλίας 19
Ολοκληρωμένο έργο λογισμικού Τι είναι σημαντικό στην εργασία Συνέπεια παραδοτέων Πληρότητα και ποιότητα εγγράφων τεκμηρίωσης Λειτουργικότητα και πολυπλοκότητα έργου Τήρηση συγκεκριμένης μεθοδολογίας Παρουσίαση 20
Παραδοτέα Πλάνο έργου λογισμικού (ιδέα) Έγγραφο απαιτήσεων Λογισμικό Παρουσίαση 21
Αξιολόγηση Ομαδική εργασία 40% Τελική εξέταση 60% Γιατί; Προωθεί την εργασία μέσα στην τάξη 22
Συγγράμματα Βασικές αρχές Τεχνολογίας Λογισμικού I. Sommerville Εκδόσεις Κλειδάριθμος 8 η έκδοση Τεχνολογία Λογισμικού Μανώλης Γιακουμάκης Νίκος Διαμαντίδης Εκδόσεις Σταμούλης ΤΗΜΜΥ, Πανεπιστήμιο Θεσσαλίας 23
Τι θα έχουμε μάθει στο τέλος του μαθήματος Προδιαγραφές Μοντελοποίηση (διαγράμματα ροής, δεδομένα, αντικείμενα, κλπ. Σχεδιασμός αρχιτεκτονικής Χρονοπρογραμματισμός Ανάλυση κόστους Υλοποίηση πιστά στις προδιαγραφές Testing με βάση τις προδιαγραφές Σκέψεις για συντήρηση, επέκταση, κλπ. ΤΗΜΜΥ, Πανεπιστήμιο Θεσσαλίας 24
Ομάδες ΤΗΜΜΥ, Πανεπιστήμιο Θεσσαλίας 25
ΣΤΑΔΙΑ ΑΝΑΠΤΥΞΗΣ ΛΟΓΙΣΜΙΚΟΥ Η ομάδα ανάπτυξης ΟΡΙΣΜΟΣ &ΑΝΑΛΥΣΗ ΑΠΑΙΤΗΣΕΩΝ ΣΧΕΔΙΑΣΗ ΑΝΑΛΥΤΙΚΗ ΣΧΕΔΙΑΣΗ DEVELOPER ROLES ΑΝΑΛΥΤΗΣ ΣΧΕΔΙΑΣΤΗΣ ΥΛΟΠΟΙΗΣΗ ΕΛΕΓΧΟΣ ΜΟΝΑΔΩΝ ΕΛΕΓΧΟΣ ΕΝΟΠΟΙΗΣΗΣ ΕΛΕΓΧΟΣ ΣΥΣΤΗΜΑΤΟΣ ΠΑΡΑΔΟΣΗ ΣΥΝΤΗΡΗΣΗ ΠΡΟΓΡΑΜΜΑΤΙΣΤΗΣ ΕΛΕΓΧΤΗΣ ΕΚΠΑΙΔΕΥΤΗΣ ΑΛΛΟΙ ΡΟΛΟΙ MANAGER ΟΜΑΔΑ ΔΙΑΧΕΙΡΙΣΗΣ ΑΛΛΑΓΩΝ ΟΜΑΔΑ ΠΟΙΟΤΗΤΑΣ ΟΜΑΔΑ ΕΡΕΥΝΑΣ 26
Belbin Ρόλοι Ατόμων μέσα σε Ομάδες Ο δημιουργικός: Έχει φαντασία, ελεύθερη σκέψη Δε δίνει σημασία στη λεπτομέρεια Ο ερευνητής πηγών: Εξωστρεφής, επικοινωνιακός, ενθουσιώδης, αναπτύσσει δίκτυα Υπερβολικά αισιόδοξος, χάνει γρήγορα το ενδιαφέρον του Ο συντονιστής: Ώριμος, με αυτοπεποίθηση, ανακαλύπτει ταλέντα, αναθέτει σωστά Μπορεί να φαίνεται ότι μεταθέτει τη δική του δουλειά Ο διαμορφωτής: Φροντίζει να γίνει η δουλειά Μπορεί να θυμώνει όταν τα πράγματα δεν γίνονται καλά Ο αξιολογητής: Από μια σειρά ιδεών αναγνωρίζει την πιο κατάλληλη Δεν έχει τη δυνατότητα να εμπνέει
Belbin- Ρόλοι Ατόμων μέσα σε Ομάδες (2) Ο ομαδικός παίκτης: Διπλωματικός, διορατικός, συνεργάσιμος Αναποφάσιστος σε περιόδους κρίσεις Ο «υλοποιητής»: Πρακτικός, αποτελεσματικός, αξιόπιστος, μετατρέπει ιδέες σε πράξη Όχι ευέλικτος, αργεί να αντιδράσει σε νέες ευκαιρίες Αυτός που τελειώνει το project: Τελειομανής, ευσυνείδητος, αγχώδης, βρίσκει λάθη, τελειοποιεί Ανησυχεί πέραν του δέοντος Ο εξειδικευμένος: Εξειδικευμένη γνώση αντικειμένου, αφοσιωμένος Τείνει να κοιτά μόνο μια πλευρά του προβλήματος