1 Ελληνικό Ανοικτό Πανεπιστήµιο Η Υλοποίηση στην Ενοποιηµένη ιαδικασία ρ. Πάνος Φιτσιλής
Περιεχόµενα Πρωτοτυποποίηση Προγραµµατισµός υλοποίησης Ανάπτυξη συστήµατος Μοναδιαίος έλεγχος Ολοκλήρωση 2
3 Η υλοποίηση στον κύκλος ζωής Βασικές Ροές Εργασιών Σύλληψη Επεξεργασία Κατασκευή Φάσεις Μετάβαση Σχεδιασµός Επιχειρηµατικών ιαδικασιών Απαιτήσεις Ανάλυση και Σχεδιασµός Υλοποίηση Έλεγχος ιάταξη (deployment) Υποστηρικτικές Ροές Εργασιών ιαχείριση Σχηµατισµών ιαχείριση έργου Περιβάλλον Επαν. Επαν. #1 Επαν. #2 Επαν. #n Επαν. #n+1 Επαν. #n+2 Επαν. #m Επαν. #m+1 Επαναλήψεις
4 Ροή εργασιών υλοποίησης (implementation workflow) Ο στόχος της υλοποίησης είναι: Να ορίσουµε τηδοµή του κώδικα Να υλοποιήσουµε τις κλάσεις και τα συστατικά Πηγαίος κώδικας scripts Εκτελέσιµος κώδικας Να κάνουµε µοναδιαίο έλεγχο των κλάσεων (unit test) Να ελέγξουµε τασυστατικά(component unit test) Να ολοκληρώσουµε τον κώδικα σε ένα ή περισσότερα εκτελέσιµα αρχεία Τα βασικά παραδοτέα του implementation workflow: Το µοντέλο υλοποίησης που ορίζει τα συστατικά και τα υποσυστήµατα. Το πλάνο ολοκλήρωσης του συστήµατος
Με απλά λόγια τι πρέπει να κάνουµε... Να υλοποιήσουµε τις κλάσεις και τα υποσυστήµατα Να προγραµµατίσουµε το πως θα βάλουµε όλα τα συστατικά του συστήµατος µαζί Να µεταγλωττίσουµε τονκώδικα Να συνδέσουµετοκώδικασεεκτελέσιµο αρχείο Να κατανείµουµε τα εκτελέσιµα στους κόµβους 5
Ροή εργασιών υλοποίησης Αρχιτέκτων όµηση Του µοντέλου υλοποίησης Υπεύθυνος Ολοκλήρωσης Συστήµατος Προγραµµατισµός της ολοκλήρωσης Ολοκλήρωση Συστήµατος Προγραµµατιστής Προγραµµατισµός Ολοκλήρωσης Υποσυστηµάτων Υλοποίηση κλάσεων ιόρθωση λαθών Εκτέλεση Μοναδιαίου Ελέγχου Ολοκλήρωση Υποσυστηµάτων Ελεγκτής Κώδικα Έλεγχος Κώδικα 6
7 Βασικές έννοιες υλοποίησης- Χτίσιµο συστήµατος (system build) Ένα Build είναι µια έκδοση του συστήµατος ή ενός υποσυστήµατος που λειτουργεί Μπορεί να χρησιµοποιηθεί για να επιδείξει χαρακτηριστικά του συστήµατος ή ένα υποσύνολο του συστήµατος Επειδή η διαδικασία UP είναι επαναληπτική µέχρι την τελική έκδοση του συστήµατος υπάρχουν πολλές εκδόσεις του συστήµατος (build). Κάθε τέτοια έκδοση µας επιτρέπει: να συστηµατικοποιήσουµε τον έλεγχο να εντοπίσουµε προβληµατικά σηµεία να συγχρονίσουµε τηνοµάδα ανάπτυξης Κάθε build έχει ένα µοναδικό αριθµό καιυπόκειταισε έλεγχο σχηµατισµών (configuration management)
8 Βασικές έννοιες υλοποίησης- Ολοκλήρωση (Integration) Ολοκλήρωση σηµαίνει ο συνδυασµός των συστατικών σε ένα σύστηµα. Η ολοκλήρωση γίνεται σε διάφορα επίπεδα και σε διάφορες φάσεις Για να χτίσουµε τα υποσυστήµατα Για να χτίσουµε τοσύστηµα απότα υποσυστήµατα Υπάρχουν δύο προσεγγίσεις Ολοκλήρωση σε φάσεις (Phased Integration) Ολοκληρώνουµε το σύστηµα στο τέλος κάθε φάσης Σταδιακή ολοκλήρωση (Incremental Integration) Κάνουµε ολοκλήρωση µόλις είναι τεχνικά δυνατό και έχουµε πάντα διαθέσιµη την τελευταία έκδοση του συστήµατος
9 Βασικές έννοιες υλοποίησης- Πρωτότυπα (Prototypes) Ένα πρωτότυπο είναι µια έκδοση του συστήµατος σε αρχική ή ενδιάµεση φάση Πρωτότυπα Συµπεριφοράς και ιερευνητικά Πρωτότυπα Αναλύουµε µια συγκεκριµένη συµπεριφορά του συστήµατος εν χρησιµοποιούνται στο τελικό σύστηµα Κατασκευάζονται γρήγορα οµικά και εξελικτικά Πρωτότυπα Ακολουθούν την τελική αρχιτεκτονική του συστήµατος Χρησιµοποιούν τα δοµικά συστατικά του συστήµατος Χρησιµοποιούν το τελικό περιβάλλον ανάπτυξης Εξελίσσονται και αποτελούν τµήµα του τελικού συστήµατος
10 Οι ροές εργασιών και τα βασικά παραδοτέα Περιγραφή Επιχειρηµατικών ιαδικασιών Επιχειρηµατικό Πλάνο Απαιτήσεις Προσδιορισµός απαιτήσεων Ανάλυση και Σχεδιασµός Μοντέλα Σύστηµα που δουλεύει Υλοποίηση Software Έλεγχος Οργανωτικές αλλαγές ιάταξη
11 Είδοςεργασίαςανάφάση Ανθρώπινοι πόροι Σύστηµα υπό κατασκευή Πρωτότυπα συστήµατος Τελικό σύστηµα Σύλληψη Επεξεργασία Κατασκευή Μετάβαση χρόνος
12 Το πρώτο βήµα της υλοποίησης Η δηµιουργία πρωτότυπου για την επαλήθευση της αρχιτεκτονικής Πλεονεκτήµατα αποδεικνύει ότι η προτεινόµενη λύση µπορεί να υλοποιηθεί αποδεικνύει ότι τα προτεινόµενα συστατικά είναι κατάλληλα και ότι λειτουργούν αποδεικνύει ότι τα συστατικά µπορούν και συνεργάζονται µειώνει τον κίνδυνο Μειονεκτήµατα δεν είναι δυνατόν να δοκιµάσουµε πολλά εναλλακτικά σενάρια Μπορεί να αποδείξει ότι το έργο δεν µπορεί να γίνει εν αντιµετωπίζει όλους τους κινδύνους
Προγραµµατισµός δουλειάς που απαιτείται για την υλοποίηση 13 Τα διαγράµµατα περιπτώσεων χρήσης είναι αυτά που προσδιορίζουν το τι πρέπει να κάνει το σύστηµα Η υλοποίηση των περιπτώσεων χρήσης της ίδιας κατηγορίας ανατίθεται στην ίδια οµάδα Η πολυπλοκότητα των περιπτώσεων χρήσης ορίζει και την προσπάθεια που απαιτείται για την υλοποίηση Σύστηµα βαθµολόγησης της πολυπλοκότητας των περιπτώσεων χρήσης Παράδειγµα 5 βαθµοί = απλή, 10 βαθµοί = µέτριας πολυπλοκότητας, 15 βαθµοί = Complex. Η υλοποίηση των περιπτώσεων χρήσης πρέπει να γίνεται ανάλογα µε τηνπροτεραιότητα Υλοποιούνται πρώτα Οι πιο σηµαντικές περιπτώσεις χρήσης για την αρχιτεκτονική Οι πιο δύσκολες περιπτώσεις χρήσης για την αρχιτεκτονική
14 Οι περιπτώσεις χρήσης και η προτεραιότητα Μια τεχνική για να θέτουµε προτεραιότητα είνα η παρακάτω: Κατηγορίες MuSCoW Mu Must Have Use Cases Αποδεικνύουν ότι η αρχιτεκτονική του συστήµατος είναι κατάλληλη S Should Have Use Cases Υλοποιούνται σε επόµενες επαναλήψεις Co Could Have Use Cases Τις υλοποιούµαι µόνο αν υπάρχουν διαθέσιµοι πόροι, χρόνος W Wont Have Use Cases Είναι εκτός του αντικειµένουτωνεργασιώντουέργου Φροντίζουµε ναενηµερώσουµε τους πελάτες σχετικά Σε κάθε επανάληψη δηµιουργούµαι µια έκδοση του συστήµατος όπου λαµβάνουµε υπόψη τον κανόνα MuSCoW
Βασικές αρχές για τη χρήση των συστατικών Η επιλογή των συστατικών πρέπει να ακολουθεί δύο βασικά κριτήρια: Κελυφοποίηση(encapsulation) Κανένα συστατικό δεν πρέπει να βασίζεται στην εσωτερική λειτουργία κάποιου άλλου Κρύψιµο τωνλεπτοµερειών στο εσωτερικό των αντικειµένων οµικότητα (Modularity) Τα σύστηµα αναλύεται σε συστατικά που έχουν συνεκτικότητα (cohesive) αλλά ταυτόχρονα έχουν χαλαρή σχέση (loosely coupled) µεταξύ τους ουλεύουν καλά µαζί (cohesive) Το ένα δεν χρειάζεται το άλλο (loosely 15
16 Στρατηγική Ελέγχου: Απαιτήσεις Ανάλυση & Σχεδιασµός Έλεγχος του συστήµατος Έλεγχος ολοκλήρωσης δικας Μοναδιαίος έλεγχος
Μοναδιαίος Έλεγχος (Unit testing) Module Πράγµατα που ελέγχουµε Βασική λογική διαπροσωπία (interface) δοµές δεδοµένων οριακές τιµές διαχείριση λαθών Περιπτώσεις Χρήσης (Test cases) 17
18 Αντιστοίχηση στοιχείων από το σχεδιασµό στην υλοποίηση Μοντέλο Ανάλυσης Μοντέλο Σχεδιασµού Java κώδικας Κλάση Ανάλυσης Κλάση Σχεδιασµού Κλάση Java Συµπεριφορά Operation Member function Κατηγόρηµα (κλάση) Κατηγόρηµα (κλάση) Static µεταβλητή Κατηγόρηµα (στιγµιότυπο) Κατηγόρηµα (στιγµιότυπο) Μεταβλητή στιγµιότυπο Μήνυµα Μήνυµα Κλήση µεθόδου ιάγραµµα Συνεργασίας ιάγραµµα Ακολουθίας Ακολουθία Μηνυµάτων Πακέτο Υποσύστηµα Αρχείο
Συµπεράσµατα Πρωτοτυποποίηση Ανάπτυξη συστήµατος Μοναδιαίος έλεγχος Ολοκλήρωση 19