ΜΕΘΟΔΟΛΟΓΙΕΣ ΑΝΑΠΤΥΞΗΣ ΣΥΣΤΗΜΑΤΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ
Μεθοδολογίες Ανάπτυξης Συστημάτων Πληροφορικής Απαντούν στα εξής ερωτήματα Ποιά βήματα θα ακολουθηθούν? Με ποιά σειρά? Ποιά τα παραδοτέα και πότε? Επομένως, μια μεθοδολογία είναι: Οργανωμένο σύνολο διαδικασιών, τεχνικών, εργαλείων και μέσων τεκμηρίωσης που καθοδηγεί τις ενέργειες σε ένα χώρο γνώσης. Περιγράφεται από φάσεις, στάδια, βήματα, δραστηριότητες κ.λπ. Βασίζεται σε θεωρητικές αρχές (φιλοσοφική βάση) χρησιμοποιεί μεθόδους κάτω από μια οπτική γωνία
Κατηγοριοποίηση Μεθοδολογιών Απουσία μεθοδολογίας (code-and-fix) Δομημένη Ανάλυση και Σχεδίαση (Structured Analysis and Design) π.χ. Μοντέλο καταρράκτη (Waterfall), SSADM Εξελικτικές / Ταχείας Ανάπτυξης Εφαρμογής (evolutionary / rapid application development (RAD )) Πολυφασική (Phased), Πρωτοτυποποίηση (Prototyping), Throw-away prototyping (R)UP (Rational) Unified Process Εύκαμπτη Ανάπτυξη (Agile Development) XP (extreme Programming) Υλοποίηση μέσω επαναχρησιμοποίησης (By reuse) Άλλες : Τυπικοί Μετασχηματισμού (Transformational) Οδηγούμενη από μοντέλα (MDA: Model Driven Architecture )
Παραδείγματα Μεθοδολογιών
Μοντέλο Καταρράκτη - 1 Planning Analysis Design Implementation Χαρακτηριστικά Γραμμική ακολουθία φάσεων Μακροσκελείς αναφορές Βασικές αρχές μοντέλου Καταρράκτη Ακολουθία σαφώς καθορισμένων βημάτων Κάθε βήμα καταλήγει στην δημιουργία προϊόντος (έγγραφο ή κώδικας) Testing and Final System Κάθε προϊόν αποτελεί τη βάση για το επόμενο βήμα Η ορθότητα κάθε προϊόντος μπορεί να ελεγχθεί.
Planning Μοντέλο Καταρράκτη - 2 Πλεονεκτήματα Διαχωρισμός του έργου σε απλούστερες φάσεις Κάθε φάση παράγει ένα σαφώς καθορισμένο παραδοτέο Μειονεκτήματα Στην πράξη οι φάσεις αλληλεπικαλύπτονται Analysis Στην πράξη το μοντέλο δεν είναι γραμμικό: συχνά επιστρέφουμε στην προηγούμενη φάση Design Implementation Testing and Final System Συχνά, αλλαγές σε κάποιο στάδιο επιβάλλουν την επιστροφή σε προηγούμενα στάδια και πραγματοποίηση πολλών αλλαγών σε αυτά Η σχεδίαση πρέπει να ολοκληρωθεί πριν την έναρξη της υλοποίησης Σαν να θεωρεί ότι όλα θα γίνουν εκ του μηδενός δεν εκμεταλλεύεται την έννοια της επαναχρησιμοποίησης (reuse) Ο πελάτης βλέπει τι τελικά αγοράζει πολύ αργά Μακροσκελείς αναφορές που δεν βοηθούν την επικοινωνία
Η μεθοδολογία SSADM Structured Systems Analysis Design Method
Η μεθοδολογία SSADM Μέθοδος Δομημένης Ανάλυσης και Σχεδιασμού Είναι μια προσέγγιση στην Ανάλυση και Σχεδίαση Πληροφοριακών Συστημάτων. Δημιουργήθηκε από ένα Βρετανικό Γραφείο που ήταν υπεύθυνο για τη χρήση της τεχνολογίας στη Βρετανική Κυβέρνηση από το 1980
Η μεθοδολογία SSADM Xρησιμοποιούμενες Τεχνικές Λογικό Μοντέλο Δεδομένων Τεκμηρίωση των Δεδομένων του συστήματος μέσω δημιουργίας Μοντέλου Οντοτήτων Συσχετίσεων Ροής Δεδομένων μέσω των Διαδικασιών Μοντελοποίηση του πως κινούνται τα δεδομένα μέσω των διαδικασιών του συστήματος, με χρήση Διαγραμμάτων Ροών Δεδομένων Μεταβολή στο Χρόνο Μοντελοποίηση των γεγονότων που επηρεάζουν κάθε οντότητα Μοντελοποίηση της διαδικασίας που ενεργοποιείται από κάθε γεγονός
Η μεθοδολογία SSADM Δομή Ιεραρχική Δομή Φάσεις (ανάλυση, σχεδιασμός, προαιρετικά η μελέτη σκοπιμότητας) Στάδια (stages) Βήματα (steps) σειρά εξαρτώμενων βημάτων Εργασίες (tasks) Χρήση τεχνικών (ΔΡΔ, κλπ)
Φάσεις και Στάδια (Stages) Φάση 1: Μελέτη σκοπιμότητας Καθορισμός προβλήματος Προσδιορισμός έργου Φάση 2: Ανάλυση συστήματος Ανάλυση λειτουργιών και προβλημάτων συστήματος Προδιαγραφές απαιτήσεων Τεχνικές επιλογές Φάση 3: Σχεδιασμός συστήματος Σχεδιασμός δεδομένων Σχεδιασμός διαδικασιών Φυσικός σχεδιασμός
Πολυφασική Ανάπτυξη Planning Analysis Analysis Analysis Analysis Design Implementation Design Implementation Design Implementation Testing & System v1 Testing & System v2 Testing & System v3 Υλοποιεί τις πιο σημαντικές και συνάμα ξεκάθαρες λειτουργίες
(Rational) Unified Process
Τι είναι η UP; O O O O Η UP είναι µια µεθοδολογία Μια διαδικασία µηχανικής λογισµικού Μια διαδικασία για την ανάπτυξη λογισµικού Είναι ένα σύνολο γνώσης για το πως να αναπτύξεις λογισµικό Είναι µια διαδικασία που χρησιµοποιεί τη UML γλώσσα για να περιγράψει τα παραδοτέα H UP προσδιορίζει Ποιος κάνει τι; Πότε το κάνει; Πώς το κάνει; έχοντας πάντα ως στόχο την ανάπτυξη λογισµικού
Πως δηµιουργήθηκε η UP; O UP σηµαίνει Unified Process Unified Process - Ενοποιηµένη Προσέγγιση ή απλά UP Εµφανίστηκε για πρώτη φορά το 1998 ως RUP 5.0 ως µετεξέλιξη παλαιότερων εκδόσεων Φτιάχτηκε στην εταιρεία Rational O Η εταιρεία Rational δεν υπάρχει Εξαγοράσθηκε το 2002 από την IBM
Οι βασικές αρχές της UP O O H UP είναι κάτι παραπάνω από απλή σύνδεση των διαγραµµάτων UML H UP βασίζεται Στο καλό χειρισµό των απαιτήσεων µε το µοντέλο των περιπτώσεων χρήσης Στην ανάπτυξη της αρχιτεκτονικής του συστήµατος ως βασικό συστατικό επιτυχίας Στη γραφική ανάπτυξη µε χρήση UML Σε επαναληπτική διαδικασία ανάπτυξης (iterative development)
Unified Process Δομικοί Λίθοι Βασίζεται σ ένα σύνολο από δομικούς λίθους και στοιχεία που περιγράφουν Τι χρειάζεται να παραχθεί Τι δεξιότητες απαιτούνται Επεξήγηση βήμα-βήμα του πως μπορούν να επιτευχθούν οι στόχοι της ανάπτυξης Ρόλοι (Ποιός): Ένας ρόλος ορίζει ένα σύνολο από δεξιότητες και υπευθυνότητες Προϊόντα Δουλειάς (Τι) Αναπαριστά το αποτέλεσμα κάποιας δουλειάς, συμπεριλαμβανομένων όλων των εγγράφων και των μοντέλων που δημιουργούνται κατά τι διάρκεια της διαδικασίας. Έργο (Πώς) Περιγράφει μια εργασία που έχει ανατεθεί σ ένα ρόλο και παρέχει κάποιο συγκεκριμένο αποτέλεσμα.
Unified Process (Ρόλοι) O O O Ρόλοι Αναλυτή Αναλυτής Επιχειρηµατικών ιαδικασιών Αναλυτή συστήµατος Σχεδιαστή User Interface Κ.λπ. Ρόλοι Προγραµµατιστή Σχεδιαστή Σχεδιαστή βάσης δεδοµένων Προγραµµατιστή Άλλοι ρόλοι ιαχειριστή έργου Υπεύθυνου Ποιότητας Ελεγκτή ιαχειριστή εκδόσεων Εκπαιδευτή κ.λπ.
Unified Process Κατηγορίες Έργων Σε κάθε επανάληψη, τα έργα κατηγοριοποιούνται σε 9 κατηγορίες 6 κατηγορίες μηχανικής (engineering disciplines) Σχεδιασμός Επιχειρησιακών Διαδικασιών Απαιτήσεις Ανάλυση και Σχεδιασμός Υλοποίηση Έλεγχος Εγκατάσταση (Deployment) 3 υποστηρικτικές κατηγορίες Διαχείριση Αλλαγών Διοίκηση Έργου Περιβάλλον
UP: Η συνολική εικόνα Φάσεις Σε κάθε φάση εκτελείς όλα τα workflow Βασικές Ροές Εργασιών Σχεδιασµός Επιχειρησιακών ιαδικασιών Απαιτήσεις Ανάλυση και Σχεδιασµός Υλοποίηση Έλεγχος Εγκατάσταση (deployment) Σύλληψη Επεξεργασία Κατασκευή Μετάβαση Υποστηρικτικές Ροές Εργασιών ιαχείριση Συστατικών ιαχείριση έργου Περιβάλλον Επαν. Επαν. Επαν. Επαν. Επαν. #1 #2 #n #n+1 Επαν. #n+2 Επαν. Επαν. #m #m+1 Επαναλήψεις