ΣΥΣΤΗΜΑΤΑ ΠΡΑΓΜΑΤΙΚΟΥ ΧΡΟΝΟΥ Μάθημα Επιλογής Ανάλυση Απαιτήσεων Συστημάτων Πραγματικού Χρόνου (Μέρος 1 ο ) Δρ. Γεώργιος Κεραμίδας e-mail: gkeramidas@teimes.gr 1
Στόχος του Μαθήματος Ενσωματωμένα Συστήματα Πραγματικού Χρόνου (Παράδειγμα) Ανάλυση απαιτήσεων Είδη απαιτήσεων Προδιαγραφές απαιτήσεων Δομημένη ανάλυση Διάγραμμα ροής δεδομένων 2
Εφαρμογές πολυμέσων στα Realtime συστήματα Είναι ευνόητο ότι τα Real-time λειτουργικά συστήματα θεωρούνται ως τα μόνα συστήματα που μπορούν να αντιμετωπίσουν με απόλυτη επιτυχία σε αντιπαραβολή μέ τα κοινά λειτουργικά συστήματα πλην των άλλων εφαρμογών και εφαρμογές πολυμέσων (Mulitmedia), λόγω τού προβλήματος χρονισμού εικόνας και ήχου, που υπάρχει στις εφαρμογές αυτές 3
Ενσωματωμένα συστήματα Ένα ενσωματωμένο σύστημα (embedded system), είναι ένα υπολογιστικό σύστημα ειδικού σκοπού, που είναι πολλές φορές ενσωματωμένο μέσα στην συσκευή που ελέγχει. Ένα ενσωματωμένο σύστημα έχει ειδικές απαιτήσεις και εκτελεί προκαθορισμένες λειτουργίες, σε αντίθεση με έναν γενικού σκοπού προσωπικό υπολογιστή 4
Χαρακτηριστικά Με αυτό το σκεπτικό, πολλά μέρη ενός ενσωματωμένου συστήματος θα έχουν μειωμένη απόδοση. Όλη η αρχιτεκτονική ενός ενσωματωμένου συστήματος είναι συχνά σκόπιμα απλουστευμένη, με στόχο το μικρότερο κόστος, σε σχέση με το υλικό των υπολογιστών γενικού σκοπού 5
Παράδειγμα συστήματος πραγματικού χρόνου (1) Τα σύγχρονα συστήματα αποφυγής κλειδώματος των τροχών κατά το φρενάρισμα ενός αυτοκινήτου (ABS) είναι ενσωματωμένα συστήματα πραγματικού χρόνου 6
Παράδειγμα συστήματος πραγματικού χρόνου (1) Τα σύγχρονα συστήματα αποφυγής κλειδώματος των τροχών κατά το φρενάρισμα ενός αυτοκινήτου (ABS) είναι ενσωματωμένα συστήματα πραγματικού χρόνου Όταν ο οδηγός πατήσει το φρένο ο ελεγκτής παίρνει μετρήσεις από διάφορους αισθητήρες (για την ταχύτητα περιστροφής των τροχών, τον τύπο του οδοστρώματος, την κατεύθυνση της κίνησης) και αυξομειώνει ανάλογα την υδραυλική πίεση των φρένων στους τροχούς ώστε να μην μπλοκάρουν 7 προκαλώντας την ολίσθηση του αυτοκινήτου
Παράδειγμα συστήματος πραγματικού χρόνου (2) Το αποτέλεσμα (φρενάρισμα) αλλά και ο χρόνος μέσα στον οποίο αυτό θα παραχθεί είναι σημαντικά για την ασφάλεια του οδηγού και των επιβατών. Οποιαδήποτε καθυστέρηση στην ανάλυση των αποτελεσμάτων μπορεί να αποβεί μοιραία 8
Μέρος 2 Στα αγγλικά Ανάλυση απαιτήσεων specifications & requirements Τι πρέπει να κάνει το κάνει το σύστημα και πως εγώ σχεδιάζω με βήματα να πετύχω τα requirements Specifications υλοποίηση Requirements προδιαγραφές 9
Ανάλυση απαιτήσεων Η ανάλυση απαιτήσεων σε οποιοδήποτε σύστημα επιχειρεί να αποτυπώσει τις απαιτήσεις της εφαρμογής για την οποία προορίζεται Με τον όρο απαιτήσεις εννοούμε Τους στόχους Τις λειτουργίες Και τους περιορισμούς του υπό κατασκευή συστήματος Περιορισμούς στην απόδοση Περιορισμούς στο χρονισμό 10
Ανάλυση απαιτήσεων Επίσης σημαντικό παράγοντας είναι το κόστος. Κόστος σημαίνει χρήματα αλλά και χρόνος και είναι διαφορετικά μεταξύ τους Θέλω να κατασκευάσω μια γέφυρα/αυτοκίνητο/chip που να αντέχει για 10 χρόνια ή για 20 χρόνια ή για 100 χρόνια Η κατασκευή chip με υλικά ακολουθεί την φιλοσοφία του τσιμέντου. Τι γίνεται όμως με το time-to-market? 11
Ανάλυση απαιτήσεων Το (τελικό) Έγγραφο Περιγραφής Απαιτήσεων του Συστήματος Αποτυπώνει τις κύριες λειτουργίες του συστήματος Περιγράφει το περιβάλλον στο οποίο θα λειτουργήσει το σύστημα Περιγράφει το προφίλ χρήσης του συστήματος Αποτυπώνει τις παραμέτρους απόδοσης του συστήματος Την αναμενόμενη ποιότητά του Την αποτελεσματικότητα του 12
Επικύρωση απαιτήσεων Στη φάση αυτή ελέγχονται οι απαιτήσεις που έχουν προδιαγραφεί ώστε να διασφαλιστεί Η πληρότητα των απαιτήσεων Η ορθότητα τους Η συνέπειά τους και η σαφήνεια τους Η δυνατότητα πραγματοποίησης τους (με τις δεδομένες τεχνολογίες, συγκεκριμένο προυπολογισμό κλπ) Ο τρόπος επιβεβαίωσης όταν θα υλοποιηθεί το σύστημα 13
Είδη απαιτήσεων Υπάρχουν δύο κατηγορίες απαιτήσεων Οι λειτουργικές που αφορούν τι πρέπει να κάνει το σύστημα functional Οι μη λειτουργικές που αφορούν περιορισμούς και ποιοτικά χαρακτηριστικά non-functional 14
Παράδειγμα Ας πούμε ότι έχετε πολλά χρήματα και θέλετε να φτιάξετε ένα κείμενο που να περιγράφει το σπίτι ή το αυτοκίνητο των ονείρων σας Χωρίς όμως να μπείτε σε λεπτομέρειες τις πραγματικής υλοποίησης Όμως ότι δεν περιγράψετε δεν θα υλοποιηθεί δεν θα μπει στο αυτοκίνητο Ένα αυτοκίνητο έχει περίπου 4000 components. Οπότε??? Πόσες σελίδες θα έχει το κείμενο??? 15
Σύγχρονη Δομημένη Ανάλυση Περιγράφεται από τρία μοντέλα Το μοντέλο περιβάλλοντος Το μοντέλο συμπεριφοράς Το μοντέλο υλοποίησης 16
Μοντέλο περιβάλλοντος Το μοντέλο περιβάλλοντος περιλαμβάνει Το διάγραμμα πλαισίου Τη λίστα συμβάντων Τη συνοδευτική τεκμηρίωση Στόχος είναι να περιγράψει ένα αφαιρετικό επίπεδο με τις εξωτερικές οντότητες με τις οποίες αλληλεπιδρά το υπό ανάπτυξη σύστημα και τις εντολές και τα δεδομένα που ανταλλάσει με αυτές 17
Διάγραμμα πλαισίου 18
Λίστα συμβάντων 19
Μοντέλο συμπεριφοράς Περιλαμβάνει Το διάγραμμα ροής δεδομένων Το διάγραμμα μετάβασης καταστάσεων Το διάγραμμα οντοτήτων-συσχετίσεων Και άλλα πολλά... Θα επικεντρωθούμε μόνο στα 3 βασικά 20
Εργαλεία Ανάπτυξης Η δομημένη ανάλυση-σχεδιασμός μοιάζει με κάθε άλλη τέχνη: Πριν αρχίσεις να την χρησιμοποιείς πρέπει να μάθεις καλά τα εργαλεία της. Εργαλεία Ανάπτυξης Διάγραμμα Ροής Δεδομένων Data Flow Diagram DFD Διάγραμμα Μετάβασης Καταστάσεων State Transition Diagram STD Διάγραμμα Συσχετίσεων Οντοτήτων Entity Relationship Diagram ERD
Πρόβλημα Προδιαγραφές Σύστημα που να: 1. Παράγονται φιάλες ελαιολάδου (Φ.Ε.) με σταθερό σε κουτιά 10 τεμαχίων. 2. Παράγονται στατιστικά στοιχεία επί της παραγωγής των φιαλών ελαιολάδου. 3. Επιτρέπεται σε κάποιο χειριστή να μεταβάλλει, εφόσον το επιθυμεί το των φιαλών ελαιολάδου.
Διάγραμμα Ροής Δεδομένων (DFD) Συστήματος Συσκευασίας φιαλών ελαιολάδου νέο φιάλης ΖΥΓΑΡΙΑ ΧΕΙΡΙΣΤΗΣ Αιτούμενο φιαλών Άλλαξε φιάλης 6 φιάλης αίτηση αναφορά ς αναφορά στατιστικών Ζύγισε φιάλη 1 Στατιστικά φιαλών Φτιάξε στατιστική αναφορά 5 σταμάτα/ξεκίν α Ε/D λάθος Καταμέτρηση φιαλών Έλεγξε συσκευασία φιαλών Ε/D 7 κε Απομάκρυνε φιάλη 4 γεμάτο κουτί Ε/D κινήσεις για απομάκρυνση φιάλης Ε/D η φιάλη απομακρύνθη Διερεύνησε πληρότητα κουτιού θέση βραχίον α 2 το κουτί άλλαξε Άλλαξε κουτί 3 ΜΗΧΑΝΙΚΟΣ ΒΡΑΧΙΟΝΑΣ κινήσεις για αλλαγή κουτιού
Το ABS είναι πολύ πιο πολύπλοκο από αυτό Το ολόκληρο το αυτοκίνητο είναι τουλάχιστον 1.000.000 x πιο πολύπλοκο Πρέπει να χειριστούμε αυτή την πολυπλοκότητα 24
Διάγραμμα μετάβασης καταστάσεων 25
Διάγραμμα οντοτήτων-συσχετίσεων Δείχνουν πως συσχετίζεται η πληροφορία Τα Διαγράμματα Οντοτήτων-Συσχετίσεων είναι παθητικά διαγράμματα!!! δεν εμφανίζουν ροή δεν δείχνουν πως λειτουργεί το σύστημα Τα Διαγράμματα Οντοτήτων-Συσχετίσεων δεν απεικονίζουν λεπτομέρειες υλοποίησης!!! 26
Διάγραμμα Ροής Δεδομένων (DFD) Συστήματος Συσκευασίας φιαλών ελαιολάδου νέο φιάλης ΖΥΓΑΡΙΑ ΧΕΙΡΙΣΤΗΣ Αιτούμενο φιαλών Άλλαξε φιάλης 6 φιάλης αίτηση αναφορά ς αναφορά στατιστικών Ζύγισε φιάλη 1 Στατιστικά φιαλών Φτιάξε στατιστική αναφορά 5 σταμάτα/ξεκίν α Ε/D λάθος Καταμέτρηση φιαλών Έλεγξε συσκευασία φιαλών Ε/D 7 κε Απομάκρυνε φιάλη 4 γεμάτο κουτί Ε/D κινήσεις για απομάκρυνση φιάλης Ε/D η φιάλη απομακρύνθη Διερεύνησε πληρότητα κουτιού θέση βραχίον α 2 το κουτί άλλαξε Άλλαξε κουτί 3 ΜΗΧΑΝΙΚΟΣ ΒΡΑΧΙΟΝΑΣ κινήσεις για αλλαγή κουτιού
Διάγραμμα ροής δεδομένων (revisit) Τα βασικά σύμβολα και η ορολογία που χρησιμοποιούνται σε αυτά τα διαγράμματα είναι Τερματιστής: Χρησιμοποιείται για να απεικονίσει ένα πρόσωπο, τμήμα εξοπλισμού με το οποίο το σύστημα αλληλεπιδρά με αυτό. Όπως π.χ. η ζυγαριά Ροή δεδομένων: π.χ. Βάρος φιαλών ελαιολάδου Ροή γεγονότων: Οι ροές γεγονότων χρησιμοποιούνται για διάδοση πληροφοριών εντός του συστήματος. Π.χ. λάθος 28
Διάγραμμα ροής δεδομένων (revisit) Μετασχηματισμός: Χρησιμοποιείται για το μετασχηματισμό των στοιχείων εισόδου σε στοιχεία εξόδου (δηλ. τις λειτουργίες του συστήματος). Π.χ. άλλαξε κουτί Αποθήκευση δεδομένων: Χρησιμοποιείται για την αποθήκευση δεδομένων. Π.χ. καταμέτρηση φιαλών ελαιολάδου Διαδικασία ελέγχου: Χρησιμοποιείται για τον έλεγχο των μετασχηματισμών δεδομένων. Π.χ. έλεγξε εμφιάλωση ελαιολάδου 29
Διάγραμμα Ροής Δεδομένων (DFD) Συστήματος Συσκευασίας φιαλών ελαιολάδου νέο φιάλης ΖΥΓΑΡΙΑ ΧΕΙΡΙΣΤΗΣ Αιτούμενο φιαλών Άλλαξε φιάλης 6 φιάλης αίτηση αναφορά ς αναφορά στατιστικών Ζύγισε φιάλη 1 Στατιστικά φιαλών Φτιάξε στατιστική αναφορά 5 σταμάτα/ξεκίν α Ε/D λάθος Καταμέτρηση φιαλών Έλεγξε συσκευασία φιαλών Ε/D 7 κε Απομάκρυνε φιάλη 4 γεμάτο κουτί Ε/D κινήσεις για απομάκρυνση φιάλης Ε/D η φιάλη απομακρύνθη Διερεύνησε πληρότητα κουτιού θέση βραχίον α 2 το κουτί άλλαξε Άλλαξε κουτί 3 ΜΗΧΑΝΙΚΟΣ ΒΡΑΧΙΟΝΑΣ κινήσεις για αλλαγή κουτιού
Διαδικασία ελέγχου
Πρόσβαση σε αποθήκη Δεν έχει ενδογενή συμπεριφορά Οι αποθήκες δεν μπορούν να συνδεθούν με άμεσο τρόπο μεταξύ τους Χρησιμοποιούνται για να εισάγονται καθυστερήσεις χρόνου ανάμεσα στους μετασχηματισμούς Αποθηκεύονται και γεγονότα Ροή: Ενεργός, αποθήκευση: παθητικός μηχανισμός
Δίκτυα ροής δεδομένων
Αποθήκη Γεγονότων Χρησιμοποιείται για την αποθήκευση γεγονότων και όχι δεδομένων Έχει συγκεκριμένη συμπεριφορά Συμβολίζεται με το ακόλουθο σχήμα Γεγονός
Διάγραμμα Ροής Δεδομένων (DFD) Συστήματος Συσκευασίας φιαλών ελαιολάδου νέο φιάλης ΖΥΓΑΡΙΑ ΧΕΙΡΙΣΤΗΣ Αιτούμενο φιαλών Άλλαξε φιάλης 6 φιάλης αίτηση αναφορά ς αναφορά στατιστικών Ζύγισε φιάλη 1 Στατιστικά φιαλών Φτιάξε στατιστική αναφορά 5 σταμάτα/ξεκίν α Ε/D λάθος Καταμέτρηση φιαλών Έλεγξε συσκευασία φιαλών Ε/D 7 κε Απομάκρυνε φιάλη 4 γεμάτο κουτί Ε/D κινήσεις για απομάκρυνση φιάλης Ε/D η φιάλη απομακρύνθη Διερεύνησε πληρότητα κουτιού θέση βραχίον α 2 το κουτί άλλαξε Άλλαξε κουτί 3 ΜΗΧΑΝΙΚΟΣ ΒΡΑΧΙΟΝΑΣ κινήσεις για αλλαγή κουτιού
Ιεραρχία διαγραμμάτων 36
3. Εξασφάλιση της ιδιότητας: «Για όλους τους συνεργάτες-μελετητές σημαίνει το ίδιο» εξέταση από τρίτο. Έλεγχος Διαγραμμάτων Ροής Δεδομένων Συντακτικά ορθό Ορθότητα DFD Λογικά αντιληπτό Έλεγχος Συντακτικής Ορθότητας 1. Τα σύμβολα πρέπει να συνδέονται και να χρησιμοποιούνται με τον σωστό τρόπο (π.χ. οι μετασχηματισμοί δεν δημιουργούν προτροπές). 2. Σεβασμός στον κανόνα «Διατήρησης Δεδομένων» (π.χ. οι μετασχηματισμοί δεδομένων δεν επιτρέπεται να παράγουν δεδομένα από το τίποτα).
Έλεγχος διαγραμμάτων ροής Μετά από εξάσκηση και εμπειρία η κατασκευή ενός αρχικού διαγράμματος ροής είναι διαδικασία σχετικά απλή Ο σχεδιασμός όμως ενός ορθού διαγράμματος είναι αρκετά δύσκολη Ό έλεγχος μπορεί να γίνει ως προς δύο κατευθύνσεις Συντακτικά ορθό Λογικά αντιληπτό 38
Συντακτική ορθότητα Οι συμβολισμοί πρέπει να συνδέονται και να χρησιμοποιούνται με το σωστό τρόπο. Οι αποθήκες δεδομένων δεν πρέπει να συνδέονται μεταξύ τους Οι μετασχηματισμοί δεδομένων πρέπει να υπακούουν στο κανόνα διατήρησης των δεδομένων Δηλ. οι μετασχηματισμοί δεν πρέπει να παράγουν δεδομένα χωρίς εισόδους (από το τίποτε) 39
Έλεγχος για συνέπεια Θα πρέπει να έχει γίνει σωστή διαμέριση Διαμέριση: Είναι ο τρόπος με τον οποίο οι χαμηλού επιπέδου λειτουργίες ομαδοποιούνται μεταξύ τους για να σχηματίσουν υψηλού επιπέδου λειτουργίες 40
Παράδειγμα Κακής Ονοματολογίας (Σωστό, Λογικό, αλλά ) δεδομένα Επεξεργάσου δεδομένα άκυρα δεδομένα έγκυρα δεδομένα Δεδομένα Αποθήκευσε Δεδομένα
Παράδειγμα Κακής Ονοματολογίας δεδομένα Επεξεργάσου Δεδομένα άκυρα δεδομένα έγκυρα δεδομένα Δεδομένα Αποθήκευσε Δεδομένα
Παράδειγμα Σωστής Ονοματολογίας κατάθεση Επικύρωσε Αριθμό Λογαριασμού άκυρη κατάθεση έγκυρη κατάθεση Τρέχοντες Λογαριασμοί ποσό κατάθεσης Κατάθεσε Χρήματα
Παράδειγμα Κακής Ονοματολογίας πληροφορίες για το σημείο εκκίνησης του ταξιδιού μας Κοίτα στον Χάρτη και Δες Πως Θα πας από την Εκκίνηση στον Τερματισμό καλύτερη δυνατή διαδρομή από το σημείο εκκίνησης στο σημείο τερματισμού πληροφορίες για το σημείο τερματισμού του ταξιδιού μας Διαδρομές μεταξύ όλων των δυνατών σημείων εκκίνησης και Τερματισμού
Παράδειγμα Κακής Ονοματολογίας πληροφορίες για το σημείο εκκίνησης του ταξιδιού μας Κοίτα στον Χάρτη και Δες Πως Θα πας από την Εκκίνηση στον Τερματισμό καλύτερη δυνατή διαδρομή από το σημείο εκκίνησης στο σημείο τερματισμού πληροφορίες για το σημείο τερματισμού του ταξιδιού μας Διαδρομές μεταξύ όλων των δυνατών σημείων εκκίνησης και Τερματισμού
Παράδειγμα Σωστής Ονοματολογίας σημείο εκκίνησης Βρες Διαδρομή διαδρομή σημείο τερματισμού Χάρτης
Παράδειγμα Κακής Ονοματολογίας Αριθμός λογαριασμο ύ Επικύρωσε αριθμό λογαριασμού Αριθμός λογαριασμο ύ Αριθμός λογαριασμο ύ Επικύρωσε αριθμό λογαριασμού Έγκυρος αριθμός λογαριασμο ύ Τρέχοντες λογαριασμοί Τρέχοντες λογαριασμοί
Παράδειγμα Κακής Ονοματολογίας Βρώμικο φλιτζάνι Κρύο νερό Πλύνε φλιτζάνι βράσε νερό και φτιάξε φλιτζάνι καφέ Φλιτζάνι καφέ Καφές Βρώμικο φλιτζάνι Πλύνε φλιτζάνι Καθαρό φλιτζάνι Φλιτζάνι καφέ Κρύο νερό Βράσε νερό Ζεστό νερό Φτιάξε φλιτζάνι καφέ Καφές
Παράδειγμα Κακής Εμφάνισης Διαγράμματος ΜΗΧΑΝΙΚΟΣ ΒΡΑΧΙΟΝΑΣ σταμάτα/ξεκίν α θέση βραχίονα Έλεγχος συσκευασία ς φιαλών λάθος Ε/D κινήσεις για αλλαγή κουτιού Ε/D το κουτί άλλαξε Η φιάλη μεταφέρθηκ ε θέση βραχίον α Άλλαξε κουτί Ε/D Απομάκρυν ε φάκελο Ε/D Άλλαξε + φιάλης Επιδιωκόμεν ο φιαλών γεμάτο κουτί Καταμέτρησ η φιαλών Έλεγξε πληρότητα κουτιού φιάλης ΖΥΓΑΡΙΑ κινήσεις για απομάκρυνση φιάλης Ζύγισε φάκελο ΧΕΙΡΙΣΤΗΣ νέο φιάλης
Παράδειγμα Σωστού Διαγράμματος Ροής Δεδομένων ΖΥΓΑΡΙΑ Επιδιωκόμεν ο φιαλών Άλλαξε φιάλης νέο φιάλης φιάλης Ζύγισε φάκελο λάθος σταμάτα/ξεκίν α ΧΕΙΡΙΣΤΗΣ Ε/D Καταμέτρησ η φιαλών Έλεγχος συσκευασία ς φιαλών Ε/D Απομάκρυν ε φάκελο Ε/D γεμάτο κουτί Ε/D η φιάλη μεταφέρθηκ ε κινήσεις για απομάκρυνση φιάλης Έλεγξε πληρότητα κουτιού θέση βραχίον α το κουτί άλλαξε Άλλαξε κουτί ΜΗΧΑΝΙΚΟΣ ΒΡΑΧΙΟΝΑΣ κινήσεις για αλλαγή κουτιού
Σύνοψη Ένα Διάγραμμα Ροής Δεδομένων δίνει πληροφορίες για τους μετασχηματισμούς, τα δεδομένα και την διακίνησή τους. Υπάρχουν όμως πολλά πράγματα που δεν δείχνει όπως: 1. Ένα DFD δεν δείχνει την οργάνωση των δεδομένων. 2. Ένα DFD δεν δείχνει την δυναμική του συστήματος. ΣΥΜΠΕΡΑΣΜΑ: Τα DFD είναι καλά για να δείχνουν τη λειτουργικότητα και τις ροές των δεδομένων σε ένα σύστημα, αλλά δεν είναι επαρκή για να καθορίσουν ένα ολόκληρο σύστημα!
Απορίες / σχόλια??? 52