1 / 47

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

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

maine
Download Presentation

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

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

  2. Έννοιες

  3. Η έννοια του μοντέλου • Φάσεις σε σειρά (ΓΕΝΙΚΑ) • Εργασίες ανά φάση • Επίτευξη επιθυμητού αποτελέσματος (στόχος) ΣΥΛΛΗΨΗ ΚΑΤΑΣΚΕΥΗ ΧΡΗΣΗ - ΣΥΝΤΗΡΗΣΗ ΑΠΟΣΥΡΣΗ

  4. Έννοιες

  5. Η έννοια της διαδικασίας ανάπτυξης • Software process • Καθορίζει τις ενέργειες που πρέπει να γίνουν σε κάποια από τις 2 φάσεις του κύκλου ζωής: α) κατασκευή, β) χρήση -συντήρηση • Οι διαδικασίες ανάπτυξης διακρίνονται: • Προδιαγραφές (καθορισμός εργασιών που θα επιτελεί το λογισμικό – περιορισμοί) • Ανάπτυξη (ανάλυση, σχεδίαση, συγγραφή κώδικα) • Επαλήθευση (έλεγχος, ικανοποίηση προδιαγραφών, εξάλειψη σφαλμάτων) • Εξέλιξη (ικανοποίηση μεταβαλλόμενων αναγκών, προσαρμογή λογισμικού στις αλλαγές)

  6. Έννοιες

  7. Η έννοια της μεθοδολογίας • Software development process • Πως πρέπει να εκτελούνται οι διαδικασίες • Ποιες επιμέρους ενέργειες περιλαμβάνουν • Ποια βήματα έχει κάθε διαδικασία • Ποια προϊόντα παράγονται • Πότε ολοκληρώνεται κάθε διαδικασία

  8. Έννοιες

  9. Εργαλεία • CASE (Computer-Aided Software Engin.) • Λογισμικό για Λογισμικό • Υποστηρίζει την αυτοματοποίηση της ανάπτυξης λογισμικού • Από την ανάλυση και σχεδιασμό μέχρι την τεκμηρίωση και τον έλεγχο σφαλμάτων (πλήρες σύστημα) • Μέχρι τον σχεδιασμό (σύνηθες)

  10. Ορισμός • Μοντέλο Κύκλου Ζωής Λογισμικού είναι: • Μια περιγραφή των • διαδικασιών • και των επιμέρους φάσεων • και των εργασιών της κάθε φάσης από τις οποίες διέρχεται μια εφαρμογή, από τη [ Σύλληψη μέχρι την Απόσυρση ]

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

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

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

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

  15. Διαδικασία Επίλυσης Προβλημάτων • …είναι κάθε μία από τις ενέργειες που περιγράφεται σε ένα μοντέλο κύκλου ζωής. • Τα βήματα κάθε τέτοιας διαδικασίας είναι: • Αποτίμηση τρέχουσας κατάστασης – μονάδας (1) • Ορισμός του προβλήματος (2) • Επιλογή μιας λύσης (3) • Υλοποίηση της λύσης (4) • Ενσωμάτωση της λύσης στο Σύστημα (5) Ο μηχανισμός Λογισμικού εκτελεί ΣΥΝΕΧΩΣ τέτοιες διαδικασίες επίλυσης προβλημάτων.

  16. Το μοντέλο του Καταρράκτη • Το παλιότερο μοντέλο • «Μεταφορά ογκόλιθου από ένα σημείο στο άλλο με ενδιάμεσες στάσεις, χωρίς να μεταβάλλεται ο ογκόλιθος» • Λογισμικό = ογκόλιθος • Διακριτές φάσεις • Ακολουθιακή (σειριακή) εκτέλεση • Παραγωγή συστατικών λογισμικού σε κάθε φάση που περατώνεται

  17. Το μοντέλο του Καταρράκτη • Κάθε φάση ολοκληρώνεται με μια εργασία επαλήθευσης των προϊόντων που παρήγαγε • Στη συνέχεια αποφασίζεται η μετάβαση στην επόμενη φάση ή όχι. • Για να ξεκινήσει μια φάση πρέπει να έχει ολοκληρωθεί πλήρως η προηγούμενη. • Το λογισμικό είναι πλήρες από τη φάση της «Συνένωσης» και πέρα…

  18. Το μοντέλο του Καταρράκτη Διαδικασίες ΑνάπτυξηςΕπιμέρους ΦάσειςΕργασίες Καθορισμός μονάδων (μέσα σε υποσυστήματα) Και σχέσης μεταξύ τους • Καθορισμός εσωτερικής • δομής μονάδων • Μονάδες πηγαίου • Κώδικα (αλγόριθμοι, • Δομές δεδομένων κτλ) Διεκπεραίωση των παραπάνω Συνένωση μονάδων σε σύστημα

  19. Το μοντέλο του Καταρράκτη • Χρήσιμο σε περιπτώσεις που οι απαιτήσεις είναι από πριν γνωστές • ….και δεν ΜΕΤΑΒΑΛΛΟΝΤΑΙ • Σπάνια η εφαρμογή τουπ.χ. σε στρατιωτικές εφαρμογές Στρατιωτικό πρότυπο: 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

  20. Το μοντέλο Πρωτοτυποποίησης • Ανάπτυξη λογισμικού σε στάδια • Σε κάθε στάδιο φτιάχνεται ένα πρωτότυπο (Prototype) • Οι διαδικασίες ανάπτυξης επαναλαμβάνονται για κάθε πρωτότυπο (επαναληπτικό μοντέλο) • Το πρωτότυπο περιλαμβάνει τις βασικές μόνο λειτουργίες που προορίζεται να εκτελεί το λογισμικό. • Κάθε πρωτότυπο δοκιμάζεται από τον πελάτη-χρήστη και βελτιώνεται με νέα έκδοση πρωτοτύπου (νέο πρωτότυπο)

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

  22. Το μοντέλο Πρωτοτυποποίησης • Πλεονέκτημα είναι η γρήγορη ανίχνευση αναγκών – προβλημάτων πριν την ανάπτυξη μεγάλου μέρους του Λογισμικού • Κατάλληλο για την ανάπτυξη εφαρμογών με αβεβαιότητα στις απαιτήσεις • Εφαρμογές εξαρτημένες από το πελάτη-χρήστη, που αναπτύσσονται για πρώτη φορά, χωρίς προηγούμενη εμπειρία.

  23. Το μοντέλο Λειτουργικής Επαύξησης • Κατάτμηση Λογισμικού σε ανεξάρτητα τμήματα • Ανάπτυξη κάθε τμήματος με βάση το μοντέλο Καταρράκτη (ακολουθιακή ανάπτυξη) • Στην αρχική φάση Ανάλυσης η απόφαση για τα τμήματα που μοιραστεί το Λογισμικό. • Με το πέρα της ανάπτυξης ενός τμήματος αυτό ενσωματώνεται στο συνολικό Λογισμικό.

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

  25. Το μοντέλο Λειτουργικής Επαύξησης • Δυνατότητα παράλληλης ανάπτυξης (μικρότερος συνολικός χρόνος) • Σφάλμα στην κατάτμηση έχει σημαντικές επιπτώσεις στη συνέχεια • Για επιτυχή εφαρμογή πρέπει να χρησιμοποιείται σε ανάπτυξη εφαρμογών με σαφή γνώση των απαιτήσεων και μικρή ή καμία μεταβλητότητά τους.

  26. Συζήτηση • Τα παραπάνω μοντέλα έχουν • ίδιες διαδικασίες ανάπτυξης λογισμικού • Ακολουθιακή (σειριακή) εκτέλεση σε όλο ή σε μέρος του λογισμικού • Προκαθορισμένες φάσεις και διαδικασίες από το μοντέλο • Ένας κύκλος ζωής

  27. Το Σπειροειδές μοντέλο • Φάσεις και διαδικασίες ανάπτυξης μη προκαθορισμένες…εξειδικεύονται στο χώρο εφαρμογής • Πολλοί κύκλοι ανάπτυξης…Κάθε κύκλος περιέχει νέα λειτουργικά χαρακτηριστικά • Μελέτη σκοπιμότητας και ανάλυση κινδύνων πριν από την έναρξη κάθε κύκλο

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

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

  30. Το Σπειροειδές μοντέλο • Διαφορετικές διαδικασίες ανάπτυξης μπορούν να επιλεγούν για διαφορετικά τμήματα του λογισμικού • Ουσιαστικά είναι μια γενίκευση των μοντέλων Λειτουργικής Επαύξησης + Πρωτοτυποποίησης • Συνεχής καθορισμός λεπτομερειών υλοποίησης (σε αντίθεση με τα προηγούμενα μοντέλα) • Δύσκολη η εφαρμογή του μοντέλου

  31. Το μοντέλο του Πίδακα • Προσέγγιση βασισμένη στην «Αντικειμενοστραφή» τεχνολογία. • Οι έννοιες «Ανάλυση, Σχεδίαση, Κωδικοποίηση» επικαλύπτονται • Παραγωγή επαναχρησιμοποιήσιμων μονάδων • Χρήση μονάδων από μελλοντικά συστήματα

  32. Το μοντέλο του Πίδακα Επικαλύψεις φάσεων Τονίζει τα επιθυμητά χαρακτηριστικά της μεθοδολογίας κατασκευής λογισμικού σύμφωνα με την Αντικειμενοστραφή λογική Δεξαμενή Συστατικών

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

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

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

  36. Περιγραφή Διαδικασιών • Επίπεδα λεπτομέρειας, ανάλογα με • το σκοπό της περιγραφής • Τους αποδέκτες • Τις εκάστοτε συνθήκες Π.χ. διοικητής έργου vs. μέλος ομάδας ανάπτυξης

  37. Περιγραφή Διαδικασιών (H. Watt) Επίπεδα Λεπτομέρειας Γενική εποπτεία της διαδικασίας Γενική αναφορά επιμέρους εργασιών Και προϊόντων Πλήρεις αναλυτικές περιγραφές διαδικασιών Και προϊόντων

  38. Η έννοια της Παρατηρησιμότητας Δυνατότητα Παρατήρησης (Visibility) • Κάθε φάση στη σχεδίαση λογισμικού καταλήγει στη συγγραφή τεκμηρίωσης • Δυνατότητα παρατήρησης της προόδου (σε αντίθεση με άλλα έργα όπου ή πρόοδος είναι πιο εύκολα ορατή) ΠΡΟΒΛΗΜΑΤΑ • Οι manager ζητούν documents σε συγκεκριμένες ημερομηνίες (όταν οι designers πνίγονται στη δουλειά !!!) • Η επικύρωση της τεκμηρίωσης απαιτεί επιπρόσθετο χρόνο • Η υλοποίηση του προϊόντος δεν συμβαδίζει για πρακτικούς λόγους με το μοντέλο ανάπτυξης

  39. Παραγόμενα έγγραφα Δραστηριότητα Παραγόμενα Έγγραφα Ανάλυση Απαιτήσεων Feasibility Study Καθορισμός Απαιτήσεων Requirements Specification Σχεδίαση Συστήματος Functional Specification Σχεδίαση Λογισμικού Design Specification Κωδικοποίηση Program code Έλεγχος Μονάδων Unit test report Έλεγχος Τμημάτων Module test report Έλεγχος Συστήματος System test report Παράδοση Προϊόντος User Guide – Refer. Manual

  40. Παρατηρησιμότητα – Μοντέλα Ανάπτυξης Μοντέλο Ανάπτυξης Δυνατότητα Παρατήρησης Καταρράκτη Καλή. Έγγραφα ανά φάση Εξελικτικό Μειωμένη. Συχνές επαναλήψεις (prototyping) Επαναχρησιμοποίηση Μέτρια (Πίδακα) Σπειροειδές Καλή. Έγγραφα ανά φάση

  41. Διαχείριση Κινδύνων – Risk Management • Ενδεχομένως η κυριότερη αποστολή ενός manager είναι η ελαχιστοποίηση του ρίσκου • … μέτρο της αβεβαιότητας ως προς το αποτέλεσμα • Δραστηριότητες υψηλού ρίσκου αυξάνουν το κόστος και προκαλούν καθυστερήσεις • Το ρίσκο σχετίζεται με την ποσότητα και την ποιότητα της διαθέσιμης πληροφορίας. • Όσο λιγότερη πληροφορία τόσο μεγαλύτερο το ρίσκο.

  42. Διαχείριση Κινδύνων –Μοντέλα • Καταρράκτη • Υψηλό ρίσκο για νέα συστήματα λόγω προβλημάτων στις προδιαγραφές και στη σχεδίαση • Χαμηλό ρίσκο για πλήρως κατανοητά συστήματα που αναπτύσσονται με γνωστή τεχνολογία • Δημιουργία πρωτοτύπων • Χαμηλό ρίσκο για νέες εφαρμογές λόγω του γεγονότος ότι οι προδιαγραφές και η υλοποίηση εξετάζονται ανά βήμα • Υψηλό ρίσκο λόγω έλλειψης παρατήρησης

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

  44. Ανάλυση Απαιτήσεων Σχεδίαση Συστήματος Λεπτομερής Σχεδίαση Υλοποίηση Έλεγχος Μονάδων Έλεγχος Συστήματος Έλεγχος Αποδοχής Εναλλακτικά μοντέλα: το V-model Το μοντέλο V δίνει έμφαση στο γεγονός ότι ο έλεγχος (επικύρωση και επαλήθευση) σχετίζεται με την ανάλυση και σχεδίαση και προκαλεί επαναλήψεις

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

  46. Ασκήσεις – Πιθανά Θέματα Εξέτασης • Ποια η σχέση μεταξύ των εννοιών «μοντέλο κύκλου ζωής», «διαδικασία ανάπτυξης», «μεθοδολογία», «εργαλείο». • Πλεονεκτήματα – μειονεκτήματα παραδοσιακών vs. Σύγχρονων (Γενικών) μοντέλων • Ποιο μοντέλο θα χρησιμοποιούσατε για την ανάπτυξη λογισμικού μικρού μεγέθους, σε σύντομο χρόνο, με χαμηλό κόστος, έχοντας γνωστές από πριν τις απαιτήσεις (δεν πρόκειται να μεταβληθούν)

  47. Λύσεις- Απαντήσεις 1. … 2. Απορρέουν από την παρουσίαση 3. Για το σπίτι 

More Related