Μεθοδολογίες Παραγωγής Λογισµικού

Σχετικά έγγραφα
Ανάλυση Απαιτήσεων Mεθοδολογίες Ανάπτυξης

Διαδικασίες παραγωγής λογισμικού. Βασικές αρχές Τεχνολογίας Λογισμικού, 8η αγγ. έκδοση

ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ

Διαδικασίες παραγωγής λογισμικού. I. Sommerville 2006 Βασικές αρχές Τεχνολογίας Λογισμικού, 8η αγγ. έκδοση Κεφ. 4

Διαδικασίες παραγωγής λογισμικού. Βασικές αρχές Τεχνολογίας Λογισμικού, 8η αγγ. έκδοση

Ανάλυση Συστηµάτων και Τεχνολογία Λογισµικού

Διαδικασίες παραγωγής λογισμικού. I. Sommerville 2006 Βασικές αρχές Τεχνολογίας Λογισμικού, 8η αγγ. έκδοση Κεφ. 4

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

Ανάλυση Απαιτήσεων Απαιτήσεις Λογισµικού

Περιεχόμενα. Κεφάλαιο 2 Κοινωνικοτεχνικά συστήματα 49

Τεχνολογία Λογισμικού

Τεχνολογία Πολιτισμικού Λογισμικού

Α.Ε.Ι. Πειραιά Τ.Τ. Τμήμα Μηχανικών Αυτοματισμού Τ.Ε. Διαχείριση Έργων Αυτοματισμού και Πληροφορικής

Ελληνικό Ανοικτό Πανεπιστήµιο Εισαγωγή στη Ενοποιηµένη Προσέγγιση Unified Process (UP) ρ. Πάνος Φιτσιλής

Εισαγωγή στην τεχνολογία λογισμικού. I. Sommerville 2006 Βασικές αρχές Τεχνολογίας Λογισμικού, 8η αγγ. έκδοση Κεφ. 1

Τεχνολογία Λογισµικού Ι Κεφάλαια 1-21

Ανάπτυξη & Σχεδίαση Λογισμικού (ΗΥ420)

Τεχνολογία Λογισμικού & Ανάλυση Συστημάτων

Παρουσίαση: Ανθρωποκεντρικός σχεδιασμός πολυμέσων ΜΙΚΡΟΠΟΥΛΟΥ ΕΥΓΕΝΙΑ ΓΤΠ61

Εισαγωγή στην Τεχνολογία Λογισμικού

Αλληλεπίδραση Ανθρώπου- Υπολογιστή & Ευχρηστία

Εισαγωγή στην Τεχνολογία Λογισµικού

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

Πληροφορική 2. Τεχνολογία Λογισμικού

Εισαγωγή στην Τεχνολογία Λογισµικού

ΣΧΕΔΙΑΣΗ & ΑΝΑΠΤΥΞΗ ΛΟΓΙΣΜΙΚΟΥ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ

Πίνακας Περιεχομένων. μέρος A 1 Εισαγωγή στην Τεχνολογία Λογισμικού

Κεφάλαιο 7: Τεχνολογία Λογισμικού

Τεχνολογία Λογισμικού. Ενότητα 1: Εισαγωγή στην UML Καθηγητής Εφαρμογών Ηλίας Γουνόπουλος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Σημειώσεις στο μάθημα «Στοιχεία Προγραμματισμού σε Γραφικό Περιβάλλον»

Εισαγωγή στην Τεχνολογία Λογισµικού

Η συμβολή στην επιτυχία ενός οργανισμού, παρουσιάζοντας σχετικά δεδομένα με τη χρήση τεχνικών 2Δ ή 3Δ τεχνολογίας. Αρμοδιότητα

Ανάλυση Απαιτήσεων Απαιτήσεις Λογισµικού

Κεφάλαιο 2ο. Κατανοώντας την αντικειμενοστρέφεια

Διαχείριση έργων. I. Sommerville 2006 Βασικές αρχές Τεχνολογίας Λογισμικού, 8η αγγ. έκδοση Κεφ. 5

ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΑΝΑΛΥΣΗ Εισαγωγή. Ιωάννης Σταμέλος Βάιος Κολοφωτιάς Πληροφορική

Ως ανάπτυξη προϊόντος ορίζεται όλο το σύνολο των δραστηριοτήτων από την έρευνα αγοράς, µέχρι την παράδοσή του στον πελάτη.

Θέματα ποιότητας (1/5)

ΚΥΚΛΟΣ ΖΩΗΣ ΛΟΓΙΣΜΙΚΟΥ και ΔΙΑΓΡΑΜΜΑΤΑ ΡΟΗΣ ΔΕΔΟΜΕΝΩΝ

ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι

. Μεθοδολογία Προγραμματισμού. Εισαγωγή. Νικόλαος Πεταλίδης. Εισαγωγή Εαρινό Εξάμηνο 2014

Διαχείριση έργων. Βασικές αρχές Τεχνολογίας Λογισμικού, 8η αγγ. έκδοση

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

Κεφάλαιο 7: Τεχνολογία Λογισμικού

Τεχνολογία Λογισμικού

Ανοικτά Ακαδηµα κά Μαθήµατα

Rational Unified Process:

Εταιρείες Πληροφορικής και Τηλεπικοινωνιών

ΣΧΕ ΙΑΣΜΟΣ ΚΑΙ ΑΝΑΠΤΥΞΗ ΣΥΣΤΗΜΑΤΩΝ ΙΑΧΕΙΡΙΣΗΣ ΕΠΙΧΕΙΡΗΣΙΑΚΩΝ ΠΟΡΩΝ

Ελληνικό Ανοικτό Πανεπιστήµιο. Η Υλοποίηση στην Ενοποιηµένη ιαδικασία. ρ. Πάνος Φιτσιλής

Τεχνολογία Λογισμικού

ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΑΝΑΛΥΣΗ Rational Unified Process. Ιωάννης Σταμέλος Βάιος Κολοφωτιάς Πληροφορική

Ενότητα 2. Πηγές Λογισμικού. Πληροφοριακά Συστήματα Διοίκησης ΙI Νίκος Καρακαπιλίδης 2-1

08 Η γλώσσα UML I. Τεχνολογία Λογισμικού. Σχολή Hλεκτρολόγων Mηχανικών & Mηχανικών Yπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο. Χειμερινό εξάμηνο

Αρχές Προγραμματισμού Υπολογιστών

ιαχείρισηέργων I. Sommerville 2006 Κεφ. 5 ΒασικέςαρχέςΤεχνολογίαςΛογισµικού, 8ηαγγ. έκδοση

Σχεδιασµός Λογισµικού

Μέθοδος Επιλογής ιαδικασιών (Process Decision Program Chart)

Τεχνολογία Λογισμικού

ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ

Σχεδιαστής Ιστοσελίδων

ΕλεγχοΣ, Αξιοπιστία και Διασφάλιση Ποιότητασ Λογισµικού Πολυπλοκότητα

Ελληνικό Ανοικτό Πανεπιστήµιο. Η ιαχείριση Απαιτήσεων στην Ενοποιηµένη ιαδικασία. ρ. Πάνος Φιτσιλής

Ελληνικό Ανοικτό Πανεπιστήµιο. Η διαχείριση διάταξης στην Ενοποιηµένη ιαδικασία. ρ. Πάνος Φιτσιλής

Επανασχεδιασµός της Οργάνωσης µε ΠΣ. Κεφάλαιο 13. Ευαγγελάτος Ανδρέας. Οι αλλαγές στον Οργανισµό και ο ρόλος των Πληροφοριακών Συστηµάτων - Μέρος Ι

UML: Unified modelling language

Διοικητική των επιχειρήσεων

Στρατηγικό Σχεδιασµό Πληροφοριακών Συστηµάτων

Τεχνολογία λογισμικού στην πράξη

Managing Information. Lecturer: N. Kyritsis, MBA, Ph.D. Candidate Athens University of Economics and Business.

Σκοπός του μαθήματος

Μηχανική Λογισμικού με Ανοιχτό Λογισμικό Δρ. Γεώργιος Κακαρόντζας Τμήμα Μηχανικών Πληροφορικής Τ.Ε. Α.Τ.Ε.Ι. Θεσσαλίας

Ελληνικό Ανοικτό Πανεπιστήµιο. Η Ανάλυση και ο Σχεδιασµός στην Ενοποιηµένη ιαδικασία. ρ. Πάνος Φιτσιλής

Τεχνολογία Λογισµικού Ι Κεφάλαιο 6

Τεχνολογία Λογισμικού

Διαχείριση Έργων. Ενότητα 7: Εκτέλεση, παρακολούθηση και έλεγχος έργου

Δομή και Στόχοι του Μαθήματος - Εισαγωγή

Σχεδιασµός βασισµένος σε συνιστώσες

Κεφάλαιο 7: Τεχνολογία Λογισμικού

Περιεχόμενα. ΚΕΦΑΛΑΙΟ 1 Εισαγωγή στη UML... 19

MEDLAB: Mediterranean Living Lab for Territorial Innovation

Διοικητική των επιχειρήσεων

Έλεγχος Προγραμμάτων και Συστήματος

Ορισμός Ευκαιρίας. 2.Διαδικασία Αναγνώρισης Ευκαιρίας

Ενότητα 3 (κεφάλαιο 16) Επαναχρησιμοποίηση Λογισμικού

ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ

Περίληψη ιπλωµατικής Εργασίας

Ενότητα 1 (κεφάλαια 3 και 23.4) Ευέλικτη Ανάπτυξη Λογισμικού

Περιεχόµενο. «ιοικώ σηµαίνει διαχειρίζοµαι πληροφορίες για να πάρω αποφάσεις» Βασικότερες πηγές πληροφοριών. Τι είναι η Έρευνα Μάρκετινγκ

Εισαγωγή στη Σχεδίαση Λογισμικού

Έγγραφο Περιγραφής Απαιτήσεων Λογισμικού

Πρόλογος Μια σύντοµη αναδροµή στην ιστορία των ηλεκτρονικών παιχνιδιών Κεφάλαιο 2: Πλατφόρµες και είδη παιχνιδιών...47

Εισαγωγή στην. Γιάννης Σμαραγδάκης

Διοικητική των επιχειρήσεων

Εκπαιδευτικό Λογισµικό για τη Γεωγραφία της Ευρώπης Τεχνολογική Προσέγγιση

Κεφάλαιο 8 Πληροφοριακά συστήματα. Εφαρμογές Πληροφορικής Κεφ. 8 Καραμαούνας Πολύκαρπος

Συστήµατα Τηλεκπαίδευσης: Κύκλος ζωής εκπαιδευτικού υλικού

Π4.2.1 ΣΧΕΔΙΟ ΔΗΜΟΣΙΟΤΗΤΑΣ

Προγραμματισμός και Επιλογή Συστημάτων

Transcript:

Μεθοδολογίες Παραγωγής Λογισµικού

Βασικά Γενικά Μοντέλα Μοντέλο καταρράκτη (waterfall model) Ξεχωριστές φάσεις καθορισµού απαιτήσεων και ανάπτυξης, επικύρωσης, εξέλιξης Εξελικτική ανάπτυξη (evolutionary development) Ανάµιξη των δραστηριοτήτων της εξαγωγής προδιαγραφών, της ανάπτυξης, και της επικύρωσης, γρήγορη ανάπτυξη prototype και ανάδραση από πελάτη Τεχνολογία λογισµικού βάσει συστατικών στοιχείων (component-based) Το σύστηµα συγκροτείται στο µεγαλύτερο µέρος του από τον συνδυασµό υπαρχόντων συστατικών στοιχείων Παραλλαγές των ανωτέρω Ορθολογική Ενοποιηµένη Διαδικασία (Rational Unified Process)

Μοντέλο Καταρράκτη

Φάσεις Μοντέλου Καταρράκτη Ανάλυση και καθορισµός απαιτήσεων µέσω συζητήσεων µε τους χρήστες: λειτουργικότητα, περιορισµοί στόχοι -> προδιαγραφές Σχεδιασµός συστήµατος και λογισµικού: υλικό και λογισµικό, καθορισµός αρχιτεκτονικής, components του συστήµατος, σχέσεις µεταξύ τους Υλοποίηση και δοκιµές υποµονάδων: συγγραφή κώδικα και επαλήθευση Ενοποίηση και δοκιµές συστήµατος: τα components ολοκληρώνονται µεταξύ τους και δοκιµάζονται ως ενιαίο σύστηµα, παράδοση Λειτουργία και συντήρηση: διόρθωση σφαλµάτων, βελτιστοποίηση υπηρεσιών Αποτέλεσµα κάθε φάσης: ένα ή περισσότερα εγκεκριµένα έγγραφα

Προβλήµατα Μοντέλου Καταρράκτη Το βασικό µειονέκτηµα του µοντέλου καταρράκτη είναι η δυσκολία στην πραγµατοποίηση τροποποιήσεων αφού η διαδικασία έχει ξεκινήσει. Πρέπει να ολοκληρωθεί µία φάση για να προχωρήσει η διαδικασία στην επόµενη φάση. Ο άκαµπτος διαµερισµός του έργου σε ξεχωριστά στάδια δυσχεραίνει την ανταπόκριση σε αλλαγές των απαιτήσεων του πελάτη. Εποµένως, το µοντέλο αυτό πρέπει να χρησιµοποιείται µόνο όταν οι απαιτήσεις είναι καλά κατανοητές και αναµένονται µόνο περιορισµένες αλλαγές κατά την ανάπτυξη του συστήµατος. λίγα επιχειρηµατικά συστήµατα έχουν σταθερές απαιτήσεις. Αν επιχειρηθούν αλλαγές κατά την πορεία, συνήθως προκύπτει κακή οργάνωση Συνήθως οδηγεί σε αυξηµένο κόστος

Εξελικτική Ανάπτυξη

Τύποι Εξελικτικής Ανάπτυξης Διερευνητική ανάπτυξη Η διαδικασία έχει στόχο τη συνεργασία µε τον πελάτη προκειµένου να αναπτυχθεί το τελικό σύστηµα από το αρχικό περίγραµµα προδιαγραφών. Ξεκινά από τις απαιτήσεις που είναι καλά κατανοητές και εξελίσσεται µε την προσθήκη νέων δυνατοτήτων που προτείνονται από τον πελάτη. Δηµιουργία αναλώσιµων πρωτοτύπων Ο στόχος είναι η κατανόηση των απαιτήσεων του συστήµατος. Ξεκινά από τις απαιτήσεις που δεν είναι καλά κατανοητές για να διασαφηνιστεί τι πραγµατικά χρειάζεται.

Προβλήµατα Εξελικτικής Ανάπτυξης Έλλειψη διαφάνειας της διαδικασίας δεν είναι αποδοτική η παραγωγή τεκµηρίωσης για κάθε εκδοχή του συστήµατος δεν µπορεί να παρακολουθηθεί η πρόοδος Τα συστήµατα συχνά έχουν κακή οργάνωση και δοµή Μπορεί να απαιτούνται ειδικές ικανότητες για παράδειγµα, ικανότητες σε συγκεκριµένες τεχνολογίες για τη γρήγορη παραγωγή πρωτοτύπων ->ADF

Εφαρµογή Εξελικτικής Ανάπτυξης Σε διαδραστικά συστήµατα µικρού ή µεσαίου µεγέθους (µέχρι 500.000 γραµµές κώδικα) Για συστήµατα µικρής διάρκειας ζωής Σε τµήµατα µεγάλων συστηµάτων (για παράδειγµα, για τη διασύνδεση χρήστη)

Τεχνολογία Λογισµικού Βάσει Συστατικών Στοιχείων

Τεχνολογία Λογισµικού Βάσει Συστατικών Στοιχείων Βασίζεται στην αρχή της επαναχρησιµοποίησης, η οποία προβλέπει την ενσωµάτωση συστηµάτων από υπάρχοντα συστατικά στοιχεία ή από εµπορικά συστήµατα. Στάδια της διαδικασίας Ανάλυση συστατικών στοιχείων Τροποποίηση απαιτήσεων Σχεδιασµός συστήµατος µε επαναχρησιµοποίηση Ανάπτυξη και ενοποίηση Η συγκεκριµένη προσέγγιση χρησιµοποιείται ολοένα και περισσότερο λόγω της εµφάνισης προτύπων συστατικών στοιχείων. Βοήθησε η διάδοση του ΕΛΛΑΚ

Τεχνολογία Λογισµικού Βάσει Συστατικών Στοιχείων Πλεονεκτήµατα Απαιτείται η ανάπτυξη λιγότερου λογισµικού Μειωµένο κόστος κίνδυνοι χρόνος Μειονεκτήµατα Συµβιβασµοί στις απαιτήσεις Δεν υπάρχει πλήρης έλεγχος της εξέλιξης του συστήµατος (τι γίνεται όταν διατεθεί µια νέα έκδοση κάποιου component από κάποιον τρίτο;) Πρέπει να δοθεί προσοχή σε ασφάλεια και αξιοπιστία του κώδικα τρίτων Licencing (π.χ. GPL)

Κατανοµή Κόστους Διαδικασίας Η κατανοµή του κόστους εξαρτάται από το χρησιµοποιούµενο µοντέλο ανάπτυξης

Επαναληπτικές Διαδικασίες Οι απαιτήσεις ενός συστήµατος εξελίσσονται κατά την πορεία ενός έργου, συνεπώς στη διαδικασία ανάπτυξης µεγάλων συστηµάτων πάντα υπάρχουν επαναληπτικές διαδικασίες που περιλαµβάνουν την αναθεώρηση προγενέστερων σταδίων. Η επαναληπτική µεθοδολογία µπορεί να εφαρµοστεί σε οποιοδήποτε από τα γενικά µοντέλα διαδικασιών. Προσεγγίσεις Βαθµιαία παράδοση Σπειροειδής ανάπτυξη

Βαθµιαία Παράδοση Συνδυάζει καταρράκτη και εξελικτική ανάπτυξη Το σύστηµα δεν παραδίδεται σε ένα και µόνο στάδιο, αλλά η ανάπτυξη και η παράδοση χωρίζονται σε παραδοτέες επαυξήσεις (increments), καθεµιά από τις οποίες αποδίδει υποσύνολο των απαιτούµενων λειτουργιών. Ορίζεται η προτεραιότητα των απαιτήσεων των χρηστών και οι απαιτήσεις µε την πιο υψηλή προτεραιότητα περιλαµβάνονται στις πρώτες επαυξήσεις. Αφού ξεκινήσει η ανάπτυξη µιας επαύξησης, οι απαιτήσεις της συγκεκριµένης επαύξησης παγιώνονται, αλλά οι απαιτήσεις µεταγενέστερων επαυξήσεων µπορούν να συνεχίσουν να εξελίσσονται.

Βαθµιαία Παράδοση

Πλεονεκτήµατα Βαθµιαίας Παράδοσης Κάθε επαύξηση ικανοποιεί κάποιες απαιτήσεις των πελατών, εποµένως µέρος των λειτουργιών του συστήµατος διατίθεται προς χρήση πριν από την ολοκλήρωση του έργου. Οι πρώτες επαυξήσεις αποτελούν πρωτότυπα που συµβάλλουν στην κατάστρωση των απαιτήσεων για τις επαυξήσεις που ακολουθούν. Μικρότερος κίνδυνος ολικής αποτυχίας του έργου. Οι υπηρεσίες υψηλότερης προτεραιότητας συνήθως δοκιµάζονται περισσότερο εντοπίζονται αστοχίες και λάθη

Σπειροειδής Ανάπτυξη Η διαδικασία αναπαρίσταται µε τη µορφή ελικοειδούς γραµµής και όχι ως ακολουθία δραστηριοτήτων µε κάποιες επανόδους από τη µία δραστηριότητα στην άλλη. Κάθε βρόχος της σπείρας αντιπροσωπεύει και µια φάση της διαδικασίας. Δεν υπάρχουν σταθερές φάσεις όπως η φάση της εξαγωγής προδιαγραφών ή του σχεδιασµού λογισµικού - οι βρόχοι της σπείρας επιλέγονται ανάλογα µε τις απαιτήσεις. Καθόλη τη διαδικασία γίνεται ρητή εκτίµηση (αξιολόγηση) και επίλυση των κινδύνων.

Σπειροειδής Ανάπτυξη

Τοµείς Σπειροειδούς Μοντέλου Ορισµός αντικειµενικών στόχων Προσδιορίζονται συγκεκριµένοι στόχοι σε κάθε φάση και λεπτοµερές πλάνο διαχείρισης φάσης, εντοπίζονται κίνδυνοι και καταρτίζονται εναλλακτικές στρατηγικές Αξιολόγηση και περιορισµός κινδύνων Γίνεται λεπτοµερής ανάλυση και αξιολόγηση κινδύνων και δηµιουργούνται διαδικασίες περιορισµού τους. Ανάπτυξη και επικύρωση Επιλέγεται ένα µοντέλο για την ανάπτυξη του συστήµατος - µπορεί να είναι οποιοδήποτε από τα γενικά µοντέλα Π.χ. αν κύριο µέληµα το interface -> εξελικτική ανάπτυξη αν κύριο µέληµα ασφάλεια -> τυπικοί µετασχηµατισµοί Προγραµµατισµός Γίνεται µια επισκόπηση του έργου και προγραµµατισµός της επόµενης φάσης της σπειροειδούς ανάπτυξης.

Ενδεικτική Βιβλιογραφία Κεφάλαιο 8 ο «Μοντέλα Συστήµατος» του βιβλίου «Βασικές Αρχές Τεχνολογίας Λογισµικού» του Ian Sommerville Κεφάλαιο 1 ο Εισαγωγή στην Ανάλυση και το Σχεδιασµό Συστηµάτων (σελ. 25-65) του βιβλίου «Ανάλυση και Σχεδιασµός Συστηµάτων µε τη UML 2.0 των Davis, Wixon, Tegarden

Ενδεικτικά Ζητήµατα Μοντέλα διαδικασίας παραγωγής λογισµικού Μοντέλο Καταρράκτη Μοντέλο εξελικτικής ανάπτυξης Μοντέλο συστατικών στοιχείων Ορισµός και στόχος κάθε µοντέλου/ Πλεονεκτήµατα και Μειονεκτήµατα Διαφορές ανάµεσα στα µοντέλα Σπυροειδής ανάπτυξη Που και πως συνεισφέρει η επαναληπτική διαδικασία? Μειονεκτήµατα και πλεονεκτήµατα Ορθολογική Ενοποιηµένη Διαδικασία (RUP) Ορισµός, στόχος UML και εργαλεία Εργαλεία CASE Ορισµός, στόχος