icsd.aegean.gr/kkot/softTech06/ Διδάσκων: Κων/νος Κώτης (BSc, PhD)

Post on 17-Jan-2016

42 views 0 download

description

ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΑΚΩΝ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Χειμερινό Εξάμηνο 2006-2007 (Ε') - Κωδ. Μαθήματος: 321-4002. http://www.icsd.aegean.gr/kkot/softTech06/ Διδάσκων: Κων/νος Κώτης (BSc, PhD). Έννοιες. Η έννοια του μοντέλου. - PowerPoint PPT Presentation

Transcript of icsd.aegean.gr/kkot/softTech06/ Διδάσκων: Κων/νος Κώτης (BSc, PhD)

ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΑΚΩΝ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ

ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥΧειμερινό Εξάμηνο 2006-2007 (Ε') - Κωδ.

Μαθήματος: 321-4002 http://www.icsd.aegean.gr/kkot/softTech06/

Διδάσκων: Κων/νος Κώτης (BSc, PhD)

Έννοιες

Η έννοια του μοντέλου Φάσεις σε σειρά (ΓΕΝΙΚΑ)

Εργασίες ανά φάση Επίτευξη επιθυμητού αποτελέσματος (στόχος)

ΣΥΛΛΗΨΗ

ΚΑΤΑΣΚΕΥΗ

ΧΡΗΣΗ - ΣΥΝΤΗΡΗΣΗ

ΑΠΟΣΥΡΣΗ

Έννοιες

Η έννοια της διαδικασίας ανάπτυξης Software process

Καθορίζει τις ενέργειες που πρέπει να γίνουν σε κάποια από τις 2 φάσεις του κύκλου ζωής: α) κατασκευή, β) χρήση -συντήρηση

Οι διαδικασίες ανάπτυξης διακρίνονται: Προδιαγραφές (καθορισμός εργασιών που θα επιτελεί το

λογισμικό – περιορισμοί) Ανάπτυξη (ανάλυση, σχεδίαση, συγγραφή κώδικα) Επαλήθευση (έλεγχος, ικανοποίηση προδιαγραφών, εξάλειψη

σφαλμάτων) Εξέλιξη (ικανοποίηση μεταβαλλόμενων αναγκών, προσαρμογή

λογισμικού στις αλλαγές)

Έννοιες

Η έννοια της μεθοδολογίας

Software development process Πως πρέπει να εκτελούνται οι διαδικασίες

Ποιες επιμέρους ενέργειες περιλαμβάνουν Ποια βήματα έχει κάθε διαδικασία Ποια προϊόντα παράγονται Πότε ολοκληρώνεται κάθε διαδικασία

Έννοιες

Εργαλεία

CASE (Computer-Aided Software Engin.) Λογισμικό για Λογισμικό Υποστηρίζει την αυτοματοποίηση της

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

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

Μέχρι τον σχεδιασμό (σύνηθες)

Ορισμός

Μοντέλο Κύκλου Ζωής Λογισμικού είναι: Μια περιγραφή των

διαδικασιών και των επιμέρους φάσεων και των εργασιών της κάθε φάσης

από τις οποίες διέρχεται μια εφαρμογή, από τη

[ ΣύλληψηΣύλληψη μέχρι την ΑπόσυρσηΑπόσυρση ]

Στόχος μοντέλων

Η καθοδήγηση του κατασκευαστή λογισμικού για την καλύτερη εκτέλεση των διαδικασιών ανάπτυξης…Δηλαδή: Περισσότερο παραγωγική Λιγότερα σφάλματα Μικρότερο ρίσκο

Παράγοντες που επηρεάζουν

Παράγοντες που επηρεάζουν τους στόχους: Μέγεθος εφαρμογής Θέμα εφαρμογής Εμπειρία κατασκευαστή Περιβάλλον ανάπτυξης Κόστος εφαρμογής

Κόστος Λογισμικού

Έλλειψη ή μη πιστή εφαρμογή του μοντέλου κύκλου ζωής συνεπάγεται αυξημένη: Αναθεώρηση αποφάσεων Διόρθωση σφαλμάτων Οπισθοδρόμηση διαδικασιών Καθυστέρηση

Άρα το κόστος του λογισμικού μεγαλώνει

Κριτήρια διαφοροποίησης μοντέλων Σύλληψη ιδέας του τρόπου κατασκευής Επιμέρους φάσεις Επαναληπτικότητα εργασιών Εμβέλεια εργασιών Ενδιάμεσα συστατικά Οικονομικά και επιχειρηματικά κριτήρια

χρήσης τους

Διαδικασία Επίλυσης Προβλημάτων …είναι κάθε μία από τις ενέργειες που

περιγράφεται σε ένα μοντέλο κύκλου ζωής. Τα βήματα κάθε τέτοιας διαδικασίας είναι:

Αποτίμηση τρέχουσας κατάστασης – μονάδας (1) Ορισμός του προβλήματος (2) Επιλογή μιας λύσης (3) Υλοποίηση της λύσης (4) Ενσωμάτωση της λύσης στο Σύστημα (5)

Ο μηχανισμός Λογισμικού εκτελεί ΣΥΝΕΧΩΣ τέτοιες διαδικασίες επίλυσης προβλημάτων.

Το μοντέλο του Καταρράκτη Το παλιότερο μοντέλο «Μεταφορά ογκόλιθου από ένα σημείο στο άλλο

με ενδιάμεσες στάσεις, χωρίς να μεταβάλλεται ο ογκόλιθος»

Λογισμικό = ογκόλιθος Διακριτές φάσεις Ακολουθιακή (σειριακή) εκτέλεση Παραγωγή συστατικών λογισμικού σε κάθε

φάση που περατώνεται

Το μοντέλο του Καταρράκτη Κάθε φάση ολοκληρώνεται με μια εργασία

επαλήθευσης των προϊόντων που παρήγαγε Στη συνέχεια αποφασίζεται η μετάβαση στην

επόμενη φάση ή όχι. Για να ξεκινήσει μια φάση πρέπει να έχει

ολοκληρωθεί πλήρως η προηγούμενη. Το λογισμικό είναι πλήρες από τη φάση της

«Συνένωσης» και πέρα…

Το μοντέλο του ΚαταρράκτηΔιαδικασίες Ανάπτυξης Επιμέρους Φάσεις Εργασίες

Καθορισμός μονάδων(μέσα σε υποσυστήματα)Και σχέσης μεταξύ τους

Καθορισμός εσωτερικήςδομής μονάδων -Μονάδες πηγαίουΚώδικα (αλγόριθμοι, Δομές δεδομένων κτλ)

Διεκπεραίωση των παραπάνω

Συνένωση μονάδωνσε σύστημα

Το μοντέλο του Καταρράκτη Χρήσιμο σε περιπτώσεις που οι απαιτήσεις είναι

από πριν γνωστές ….και δεν ΜΕΤΑΒΑΛΛΟΝΤΑΙ Σπάνια η εφαρμογή του π.χ. σε στρατιωτικές εφαρμογέςΣτρατιωτικό πρότυπο: MIL-STD-2167 A, MIL-STD-498. Περιλαμβάνει τις απαιτήσεις για την

ανάπτυξη και αποδοχή mission-critical υπολογιστικών συστημάτων. Ειδικά για την ανάπτυξη λογισμικού:

b.1 software requirements analysis b.2 preliminary design b.3 detailed design b.4 coding and module testing b.5 computer software component integration and testing b.6 computer software configuration item testing

Το μοντέλο Πρωτοτυποποίησης Ανάπτυξη λογισμικού σε στάδια

Σε κάθε στάδιο φτιάχνεται ένα πρωτότυπο (Prototype) Οι διαδικασίες ανάπτυξης επαναλαμβάνονται για κάθε

πρωτότυπο (επαναληπτικό μοντέλο) Το πρωτότυπο περιλαμβάνει τις βασικές μόνο

λειτουργίες που προορίζεται να εκτελεί το λογισμικό. Κάθε πρωτότυπο δοκιμάζεται από τον πελάτη-χρήστη

και βελτιώνεται με νέα έκδοση πρωτοτύπου (νέο πρωτότυπο)

Το μοντέλο Πρωτοτυποποίησης

Το μοντέλο Πρωτοτυποποίησης Πλεονέκτημα είναι η γρήγορη ανίχνευση

αναγκών – προβλημάτων πριν την ανάπτυξη μεγάλου μέρους του Λογισμικού

Κατάλληλο για την ανάπτυξη εφαρμογών με αβεβαιότητα στις απαιτήσεις

Εφαρμογές εξαρτημένες από το πελάτη-χρήστη, που αναπτύσσονται για πρώτη φορά, χωρίς προηγούμενη εμπειρία.

Το μοντέλο Λειτουργικής Επαύξησης

1. Κατάτμηση Λογισμικού σε ανεξάρτητα τμήματα

2. Ανάπτυξη κάθε τμήματος με βάση το μοντέλο Καταρράκτη (ακολουθιακή ανάπτυξη)

Στην αρχική φάση Ανάλυσης η απόφαση για τα τμήματα που μοιραστεί το Λογισμικό.

Με το πέρα της ανάπτυξης ενός τμήματος αυτό ενσωματώνεται στο συνολικό Λογισμικό.

Το μοντέλο Λειτουργικής Επαύξησης

Το μοντέλο Λειτουργικής Επαύξησης Δυνατότητα παράλληλης ανάπτυξης

(μικρότερος συνολικός χρόνος) Σφάλμα στην κατάτμηση έχει σημαντικές

επιπτώσεις στη συνέχεια Για επιτυχή εφαρμογή πρέπει να

χρησιμοποιείται σε ανάπτυξη εφαρμογών με σαφή γνώση των απαιτήσεων και μικρή ή καμία μεταβλητότητά τους.

Συζήτηση

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

μέρος του λογισμικού Προκαθορισμένες φάσεις και διαδικασίες από το

μοντέλο Ένας κύκλος ζωής

Το Σπειροειδές μοντέλο

Φάσεις και διαδικασίες ανάπτυξης μη προκαθορισμένες…εξειδικεύονται στο χώρο εφαρμογής

Πολλοί κύκλοι ανάπτυξης…Κάθε κύκλος περιέχει νέα λειτουργικά χαρακτηριστικά

Μελέτη σκοπιμότητας και ανάλυση κινδύνων πριν από την έναρξη κάθε κύκλο

Το Σπειροειδές μοντέλο

4 κατηγορίες εργασιών Προσδιορισμός στόχων Εντοπισμός – επίλυση κινδύνων Εκτέλεση διαδικασιών ανάπτυξης – Επαλήθευση Προγραμματισμός επόμενης φάσης

Το Σπειροειδές μοντέλο

Το Σπειροειδές μοντέλο

Διαφορετικές διαδικασίες ανάπτυξης μπορούν να επιλεγούν για διαφορετικά τμήματα του λογισμικού

Ουσιαστικά είναι μια γενίκευση των μοντέλων Λειτουργικής Επαύξησης + Πρωτοτυποποίησης

Συνεχής καθορισμός λεπτομερειών υλοποίησης

(σε αντίθεση με τα προηγούμενα μοντέλα) Δύσκολη η εφαρμογή του μοντέλου

Το μοντέλο του Πίδακα

Προσέγγιση βασισμένη στην «Αντικειμενοστραφή» τεχνολογία.

Οι έννοιες «Ανάλυση, Σχεδίαση, Κωδικοποίηση» επικαλύπτονται

Παραγωγή επαναχρησιμοποιήσιμων μονάδων

Χρήση μονάδων από μελλοντικά συστήματα

Το μοντέλο του Πίδακα

Επικαλύψεις φάσεων

Δεξαμενή Συστατικών

Τονίζει τα επιθυμητά χαρακτηριστικά της μεθοδολογίας κατασκευής λογισμικού σύμφωνα με την Αντικειμενοστραφή λογική

Σύγχρονα μοντέλα

Γενική κατεύθυνση εφαρμογής των ιδεών που ενσωματώνουν τα προηγούμενα μοντέλα

Ελευθερία στο κατασκευαστή λογισμικού Εξάλειψη ογκωδέστατων παραδοτέων με σχέδια

και προδιαγραφές που…ήταν άχρηστα (αφού ήταν λευκά χαρτιά)

Εξειδίκευση κατευθύνσεων στο εκάστοτε περιβάλλον ανάπτυξης, για το συγκεκριμένο πρόβλημα, για τον συγκεκριμένο κατασκευαστή, για τον συγκεκριμένο πελάτη, κτλ.

Δεν είναι συνδεδεμένα με συγκεκριμένη μεθοδολογία ανάπτυξης λογισμικού

Σύγχρονα μοντέλα

Ένα γενικό μοντέλο κύκλου ζωής

Αλληλουχία των ενεργειών και ο ακριβής καθορισμός των κύκλων ανάπτυξης Είναι στην διακριτική ευχέρεια του κάθε κατασκευαστή

Σύγκριση μοντέλων

Περιγραφή Διαδικασιών

Επίπεδα λεπτομέρειας, ανάλογα με το σκοπό της περιγραφής Τους αποδέκτες Τις εκάστοτε συνθήκες

Π.χ. διοικητής έργου vs. μέλος ομάδας ανάπτυξης

Περιγραφή Διαδικασιών (H. Watt)

Γενική εποπτεία της διαδικασίας

Γενική αναφορά επιμέρους εργασιώνΚαι προϊόντων

Πλήρεις αναλυτικέςπεριγραφές διαδικασιώνΚαι προϊόντων

Επίπεδα ΛεπτομέρειαςΕπίπεδα Λεπτομέρειας

Η έννοια της Παρατηρησιμότητας Κάθε φάση στη σχεδίαση λογισμικού καταλήγει στη συγγραφή

τεκμηρίωσης Δυνατότητα παρατήρησης της προόδου (σε αντίθεση με άλλα

έργα όπου ή πρόοδος είναι πιο εύκολα ορατή)ΠΡΟΒΛΗΜΑΤΑ Οι manager ζητούν documents σε συγκεκριμένες ημερομηνίες

(όταν οι designers πνίγονται στη δουλειά !!!) Η επικύρωση της τεκμηρίωσης απαιτεί επιπρόσθετο χρόνο Η υλοποίηση του προϊόντος δεν συμβαδίζει για πρακτικούς

λόγους με το μοντέλο ανάπτυξης

Δυνατότητα Παρατήρησης (Visibility)

Παραγόμενα έγγραφα

Δραστηριότητα Παραγόμενα Έγγραφα

Ανάλυση Απαιτήσεων Feasibility Study

Καθορισμός Απαιτήσεων Requirements Specification

Σχεδίαση Συστήματος Functional Specification

Σχεδίαση Λογισμικού Design Specification

Κωδικοποίηση Program code

Έλεγχος Μονάδων Unit test report

Έλεγχος Τμημάτων Module test report

Έλεγχος Συστήματος System test report

Παράδοση Προϊόντος User Guide – Refer. Manual

Παρατηρησιμότητα – Μοντέλα ΑνάπτυξηςΜοντέλο Ανάπτυξης Δυνατότητα Παρατήρησης

Καταρράκτη Καλή. Έγγραφα ανά φάση

Εξελικτικό Μειωμένη. Συχνές επαναλήψεις

(prototyping)

Επαναχρησιμοποίηση Μέτρια

(Πίδακα)

Σπειροειδές Καλή. Έγγραφα ανά φάση

Διαχείριση Κινδύνων – Risk Management Ενδεχομένως η κυριότερη αποστολή ενός manager

είναι η ελαχιστοποίηση του ρίσκου … μέτρο της αβεβαιότητας ως προς το αποτέλεσμα Δραστηριότητες υψηλού ρίσκου αυξάνουν το κόστος

και προκαλούν καθυστερήσεις Το ρίσκο σχετίζεται με την ποσότητα και την

ποιότητα της διαθέσιμης πληροφορίας. Όσο λιγότερη πληροφορία τόσο μεγαλύτερο το

ρίσκο.

Διαχείριση Κινδύνων – Μοντέλα Καταρράκτη

Υψηλό ρίσκο για νέα συστήματα λόγω προβλημάτων στις προδιαγραφές και στη σχεδίαση

Χαμηλό ρίσκο για πλήρως κατανοητά συστήματα που αναπτύσσονται με γνωστή τεχνολογία

Δημιουργία πρωτοτύπων Χαμηλό ρίσκο για νέες εφαρμογές λόγω του γεγονότος ότι

οι προδιαγραφές και η υλοποίηση εξετάζονται ανά βήμα Υψηλό ρίσκο λόγω έλλειψης παρατήρησης

Παραδείγματα ρίσκου

Κατά τη διάρκεια ανάπτυξης, εισαγωγή λογισμικού από ανταγωνιστή

Αποχώρηση ατόμων από την ομάδα ανάπτυξης Ανικανότητα εμπρόθεσμης υλοποίησης ορισμένων

σταδίων Το λογισμικό πληροί τις προδιαγραφές αλλά έχει

πολύ μεγάλο χρόνο εκτέλεσης Μεγάλη κατανάλωση μνήμης Εμφάνιση νέων εργαλείων ανάπτυξης Λάθος κατανόηση μιας απαίτησης Αλλαγή ορισμένων από τις απαιτήσεις Αλλαγή του υλικού Μείωση προϋπολογισμού Βλάβες στο υλικό της ομάδας ανάπτυξης

Εναλλακτικά μοντέλα: το V-modelΤο μοντέλο V δίνει έμφαση στο γεγονός ότι ο έλεγχος (επικύρωση

και επαλήθευση) σχετίζεται με την ανάλυση και σχεδίαση και προκαλεί επαναλήψεις

Ανάλυση Απαιτήσεων

Σχεδίαση Συστήματος

Λεπτομερής Σχεδίαση

Υλοποίηση

Έλεγχος Μονάδων

Έλεγχος Συστήματος

Έλεγχος Αποδοχής

Ερωτήσεις – Απορίες - Συζήτηση

Ασκήσεις – Πιθανά Θέματα Εξέτασης1. Ποια η σχέση μεταξύ των εννοιών «μοντέλο

κύκλου ζωής», «διαδικασία ανάπτυξης», «μεθοδολογία», «εργαλείο».

2. Πλεονεκτήματα – μειονεκτήματα παραδοσιακών vs. Σύγχρονων (Γενικών) μοντέλων

3. Ποιο μοντέλο θα χρησιμοποιούσατε για την ανάπτυξη λογισμικού μικρού μεγέθους, σε σύντομο χρόνο, με χαμηλό κόστος, έχοντας γνωστές από πριν τις απαιτήσεις (δεν πρόκειται να μεταβληθούν)

Λύσεις- Απαντήσεις

1. …

2. Απορρέουν από την παρουσίαση

3. Για το σπίτι