Συστήματα Πραγματικού Χρόνου Real Time Systems, RTS
Ανάπτυξη Συστημάτων Πραγματικού Χρόνου Ανάπτυξη RTS Τεχνικές Δομημένης Ανάπτυξης Αρχικές φάσεις ανάπτυξης: Περισσότερος χρόνος Περισσότερη προσπάθεια + χρήματα Παραδοσιακές Προσεγγίσεις Προς τι τέτοιες τεχνικές;
Ανάπτυξη Συστημάτων Πραγματικού Χρόνου Εμπλεκόμενοι στην ανάπτυξη RTS ΠΡΟΒΛΗΜΑΤΑ Όλοι εργάζονται για το ίδιο σκοπό: την costeffective ανάπτυξη που πληρεί τις προδιαγραφές. ΟΜΩΣ: Βλέπουν το πρόβλημα από διαφορετική σκοπιά (!) και συνήθως δεν καταλαβαίνονται μεταξύ τους (!!!). Μηχανικοί hardware Μηχανικοί software Τεχν. Ποιότητα Ασφάλεια Control Πελάτης Πωλητές Υπεύθυνος του project
Ανάπτυξη Συστημάτων Πραγματικού Χρόνου Παραδοσιακή Τεχνική 1. Υλοποίηση του hardware 2. Ανάπτυξη του software Τροποποιήσεις μόνο στο software που έπεται (εύκολη λύση) ΣΥΝΕΠΕΙΑ: κόστος ανάπτυξης του software Ερώτημα: Είναι πιο εύκολη η αλλαγή μέρους του hardware ή κάποιων γραμμών του software? Το timing, scheduling του συστήματος?
Προβλήματα Ανάπτυξης ΛΥΣΗ: Χρήση αποτελεσματικών εργαλείων επικοινωνίας για αλληλοκατανόηση των δυναμικών δυσκολιών που συνεπάγεται κάθε τροποποίηση. επιλογή διάταξης Processor (?) αυτή ή την άλλη; Soft eng Hard eng Ένα Q.A. / Q.C. τεστ περνά συχνά όχι γιατί είναι σωστό (!) αλλά γιατί ξεχάστηκε κάποια θεμελιώδης παράμετρος από τις προδιαγραφές του τεστ. (συχνά ο προγραμματιστής του κώδικα και του Q.A. / Q.C. τεστ είναι ο ίδιος)
Προβλήματα Ανάπτυξης Άλλα προβλήματα Επικοινωνία με πελάτη Επικοινωνία με πωλητές (ζητούν π.χ. την κατασκευή σε γελοία χρονική περίοδο) Επικοινωνία με Project Managers (πρέπει πάντα να τους εξηγείς τι κάνεις και γιατί) Λύση προβλημάτων επικοινωνίας: Χρήση αναπτυξιακών εργαλείων τα οποία μπορεί ο καθένας που εμπλέκεται στο project να καταλάβει Συχνή επικοινωνία Αλληλοκατανόηση προβλημάτων Καλύτερος δυνατός συμβιβασμός μεταξύ του τι θέλουν οι μεν και τι μπορούν οι δε.
Πολυπλοκότητα Συστήματος Σύστημα που παράγει φακελάκια τσαγιού SUPERVISOR PROCESS CONTROL TEABAG EQUIPMENT GRAPHICS TERMINAL COMMUNICATIONS OPERATOR TERMINAL DATABASE Ερώτημα: Κατανοείς όχι μόνο τι είναι το process control αλλά και όλο το software που τρέχει σε αυτό, πρέπει να ξέρεις τι κάνουν τα άλλα κουτιά; Κατανόηση ΝΑΙ, λεπτομέρειες ΟΧΙ
Πολυπλοκότητα Συστήματος Νόμος του Weinburg: In order to understand anything, do not attempt to understand everything! Αρχή Ανάπτυξης: Θα ασχοληθείς μόνο με κάποια τμήματα του εξοπλισμού, για τα οποία πρέπει να γνωρίζεις τα βασικά τους σημεία. Παράδειγμα: Supervisor: ποιες εικόνες θέλει να βλέπει και όχι ποια strings χαρακτήρων ή κώδικας τις δημιουργούν. Πρώτα στάδια: Μόνο υψηλού επιπέδου πληροφορία (καλή κατανόηση) Λεπτομέρειες αργότερα
Τεχνικές Ανάπτυξης Άτομα με : διαφορετικό background διαφορετικές εμπειρίες Διαφορετικός τρόπος - σκοπιά στην ανάπτυξη μιας συγκεκριμένης εφαρμογής Μερικοί κάθονται σε ένα τερματικό και σχεδιάζουν - χτίζουν κώδικα με μια δική τους τεχνική (όχι γνωστή) Τεχνική για ένα άτομο τρόπος κατασκευής πραγμάτων που δουλεύει μόνο για ένα άτομο Τεχνική Δομημένης Ανάπτυξης Δεν προσπαθείς να υιοθετήσεις μια τελείως καινούρια σε σένα μέθοδο, αλλά προσπαθείς να ενσωματώσεις το δικό σου τρόπο σε αυτήν Το πλήθος των εφαρμογών είναι ευρύ και αόριστο Αδύνατο να ακολουθηθούν τα ίδια βήματα για κάθε ανάπτυξη
Ιδέες πίσω από τη Δομημένη Ανάπτυξη Η χρησιμοποίηση μοντέλων Χτίσιμο σπιτιού : Σχέδια, τροποποιήσεις, στατικά κλπ. Ανάπτυξη λογισμικού : Διασταύρωση γνώσεων για καλύτερο αποτέλεσμα Λόγοι για σχεδιασμό μοντέλου α) Εργαλείο επικοινωνίας β) Κάτι συγκεκριμένο από το οποίο μπορούν να εξαχθούν σφάλματα απαιτήσεων σε πολύ αρχικό στάδιο γ) Δυνατότητα για τροποποιήσεις απαιτήσεων πελατών. Το κόστος αλλαγής εγείρεται εκθετικά καθώς κινείσαι στον Αναπτυξιακό κύκλο δ) Δυνατότητας εκτίμησης χρόνου υλοποίησης, κόστους, απαιτούμενης υπολογιστικής ισχύος κλπ. Γραφικό μοντέλο Πλεονέκτημα : Παρέχει μια Γενική Καθαρή Άποψη της κατάστασης. Λέει κάτι στα γρήγορα χωρίς να σε εμπλέκει σε λεπτομέρειες βάθους (Επιλογή προσώπου: με περιγραφή ή με φωτογραφία ;)
Ιδέες πίσω από τη Δομημένη Ανάπτυξη Αρχική περιγραφή συστήματος : Γραφική Συνοπτικό Γραφικό Σπάσιμο σε χαμηλότερα επίπεδα Κείμενο : σύνταξη με σεβασμό στα γραφικά Κάθε διάγραμμα συνηθίζεται να συνοδεύεται από κανόνες και οδηγούς, που εμπνέουν εμπιστοσύνη στο μοντέλο Τα μοντέλα πρέπει να είναι : α) Φιλικά και από την πλευρά του μηχανικού και από την πλευρά του πελάτη β) Τέτοια που να παρέχουν μια μορφή επικοινωνίας μεταξύ των εμπλεκομένων γ) Μοντέλα και τεχνικές εύκολες για τον μηχανικό Η χρήση δομημένων τεχνικών μοιάζει με το γράψιμο ή την οδήγηση : «Μετά από κάποια πρακτική γίνεται αυτόματα»
Διαγράμματα (Diagrams) Ροής Δεδομένων Data Flow D (DFD) Μετάβασης Καταστάσεων State Transition D (STD) Σχέσεων Οντοτήτων Entity Relationship D (ERD) Λειτουργικότητα Δυναμική ή/και έλεγχος Πληροφοριακό παθητικό μοντέλο Κανόνες και Οδηγίες Ορίζουν ποια σύμβολα πρέπει να χρησιμοποιηθούν Ορίζουν ποια σύμβολα συνδέονται με ποια Διευκολύνουν την κατανόηση των διαγραμμάτων καθιστώντας τα πιο προφανή Διευκολύνουν την σύνδεση διαγραμμάτων μεταξύ τους
Ανάπτυξη Συστημάτων Πραγματικού Χρόνου Βήματα Ανάπτυξης Ανάλυση Σχεδίαση Ανάλυση: η διαδικασία ορισμού ενός προβλήματος που πρέπει να επιλυθεί (όχι πώς θα φτιαχτεί αλλά τι πρέπει να κάνει) Σχεδίαση: με βάση τις προδιαγραφές της ανάλυσης καλύτερη λύση. Σχέδια μοντέλα που δείχνουν πως θα υλοποιηθεί η προτεινόμενη λύση Σχέδια μοντέλα που δείχνουν πως αυτή η λύση προσεγγίζει ή άπτεται του προβλήματος
Ανάπτυξη Συστημάτων Πραγματικού Χρόνου Παρατηρήσεις Ανάλυση: Σκέπτεσαι μόνον τις απαιτήσεις του πελάτη όχι πώς θα σχεδιαστεί ή αν θα υπάρχουν προβλήματα υλοποίησης Ανάλυση Σχεδίαση: Βήματα απαραίτητα, σε διαβεβαιώνουν ότι έχεις καταλάβει τι ζητά ο πελάτης πριν αρχίσεις να του λες τι μπορείς να κάνεις
Ανάπτυξη Συστημάτων Πραγματικού Χρόνου Χρήση τέλειας τεχνολογίας Εύκολη ανάλυση Καλός Σχεδιασμός Αποτέλεσμα: Άριστη Προσέγγιση Απαιτήσεων Πελάτη Στην ανάλυση θεωρείς ότι θα κτίσεις το σύστημα πάνω σε ένα επεξεργαστή που διαθέτει: Απεριόριστη μνήμη Απεριόριστη αξιοπιστία Απεριόριστα μεγάλη ταχύτητα εκτέλεσης εντολών Δυνατότητα επικοινωνίας με οτιδήποτε στον έξω κόσμο
Παραδοσιακό Όνομα Ορολογία Όνομα στη Δομημένη Ανάπτυξη Ιδέα : Πρέπει να φτιάξουμε κάτι που να κάνει το εξής Απαίτηση : Έτσι φαίνεται το σύστημα από την πλευρά του χρήστη Λειτουργικές προδιαγραφές : Το σύστημα στην ουσία πρέπει να κάνει τα εξής Σχεδιασμός υλικού : Αποφασίζεις την αρχιτεκτονική - δομή του υλικού Σχεδιασμός λογισμικού : Αποφασίζεις την αρχιτεκτονική - δομή του λογισμικού Σχεδιασμός προγράμματος : Υλοποίηση Στόχος έργου Statement of purpose Περιβαλλοντικό μοντέλο Environmental model Μοντέλο συμπεριφοράς Behavioural Model Μοντέλο περιβάλλοντος του επεξεργαστή Processor Environment Model Μοντέλο περιβάλλοντος του λογισμικού Software Environmet Model Μοντέλο οργάνωσης κώδικα Code Organization Model
Παράδειγμα: Σύστημα Συγκομιδής Μανιταριών 1- Στόχος Έργου (Statement of purpose) Συγκομιδή στην κατάλληλη στιγμή : μέγιστο μέγεθος αλλά να μην παρέλθει ο χρόνος τους Χειριστής : καθορισμός μεγέθους, έναρξη - παύση 2- Βασικό Περιβαλλοντικό Μοντέλο (Essential Environmental Model) Διάγραμμα Γενικού Πλαισίου The Context Diagram Λίστα Γεγονότων The Event List
Παράδειγμα: Σύστημα Συγκομιδής Μανιταριών Λίστα Γεγονότων Γεγονός 1- Εκκίνηση συστήματος 2- Εισαγωγή νέου μεγέθους 3- Ο scanner δείχνει μανιτάρι στο σωστό μέγεθος 4- Ο εργάτης στη θέση 5- Διακοπή συγκομιδής 6- Αίτηση περίληψης παραγωγής από Manager Απόκριση - Εκκίνηση σάρωσης - Εκκίνηση παρουσίασης εικόνων πληροφόρησης - Καταγραφή νέου μεγέθους - Κίνηση του εργάτη στο μανιτάρι - Σταμάτημα και λήψη - Σταμάτημα σάρωσης - Σταμάτημα εικόνων πληροφόρησης στην οθόνη - Έκδοση περίληψης παραγωγής
Διάγραμμα Γενικού Πλαισίου The Context Diagram ΧΕΙΡΙΣΤΗΣ Νέο μέγεθος συντεταγμένες συλλέκτη ΣΥΛΛΕΚΤΗΣ ΜΑΝΙΤΑΡΙΩΝ Εικόνα πληροφόρησης συλλογής περίληψης παραγωγής MANAGER αίτηση περίληψης παραγωγής Σύστημα συλλογής δεδομένα σάρωσης συντεταγμένες κίνησης ΣΑΡΩΤΗΣ ΜΑΝΙΤΑΡΙΩΝ Μάζεψε μανιτάρι
Βασικό Μοντέλο Συμπεριφοράς (Essential Behavioural Model) Μια πιο στενή ματιά στο εσωτερικό του συστήματος Μοντελοποίηση της συμπεριφοράς και πάλι από την σκοπιά του πελάτη Περιλαμβάνει: Διάγραμμα Ροής Δεδομένων (Data Flow Diagram, DFD) Διάγραμμα Μετάβασης Κατάστασης (State Transition Diagram, STD) Διάγραμμα Συσχέτισης Οντοτήτων (Entity Relationship Diagram, ERD) Συνοδευτική Τεκμηρίωση (Supporting Textual Specifications)
νέο μέγεθος Κατέγραψε Νέο Μέγεθος Μανιταριών 4 Διάγραμμα Ροής Δεδομένων (δείχνει την λειτουργία του συστήματος) Μέγεθος Μανιταριού Ανάφερε Μανιτάρια Που Συλλέχθηκαν 2 Εμφάνιση συλλεγμένων Μανιτάρια που συλλέχθηκαν E/D E/D Έλεγξε Συγκομιδή Μανιταριών 6 start/stop σύλλεξε μανιτάρι αίτηση περίληψης Παρήγαγε Περίληψη Παραγωγής 5 Σάρωσε τα Μανιτάρια 1 μανιτάρια στο σωστό μέγεθος E/D εργάτης στο μανιτάρι Περίληψη παραγωγής Μανιτάρια που συλλέχθηκαν δεδομένα σάρωσης Συντεταγμένες Μανιταριού Μετακίνησε εργάτη προς Μανιτάρι 3 συντεταγμένες εργάτη Συντεταγμένες μετακίνησης
Διάγραμμα Μετάβασης Κατάστασης (STD) ΑΝΕΝΕΡΓΗ ΚΑΤΑΣΤΑΣΗ 1. Αποτυπώνει τις καταστάσεις 2. Προσδιορίζει τα σήματα ελέγχου που εξέρχονται από την διαδικασία ελέγχου 3. θέτει σε on off τους μετασχηματισμούς δεδομένων start E: Σάρωσε μανιτάρια Ε: Ανέφερε συλλεγμένα μανιτάρια stop D: Σάρωσε μανιτάρια D:Ανέφερε συλλεγμένα μανιτάρια ΣΑΡΩΣΗ ΜΑΝΙΤΑΡΙΩΝ μανιτάρι στο σωστό μέγεθος D: Σάρωσε μανιτάρια Ε: Μετακίνησε εργάτη προς μανιτάρι ΜΕΤΑΚΙΝΗΣΗ ΕΡΓΑΤΗ ΣΤΟ ΜΑΝΙΤΑΡΙ εργάτης στο μανιτάρι Κάθε τετράγωνο αναπαριστά μια χρονική διάρκεια κατά την οποία το σύστημα εκτελεί μια καθορισμένη λειτουργία (προσδιοριζόμενη από το όνομα της κατάστασης) D: Μετακίνησε εργάτη προς μανιτάρι Μάζεψε μανιτάρι E: Σάρωσε μανιτάρια
Διάγραμμα Σχέσεων Οντοτήτων (ERD) Συλλεγόμενο μανιτάρι έχει σωστό Μέγεθος βρίσκεται σε Κάτι για το οποίο θέλουμε να αποθηκεύσουμε σχετικές πληροφορίες συντεταγμένες Τη σχέση ή συσχέτιση μεταξύ συνδεδεμένων πραγμάτων
Μοντέλο Περιβάλλοντος Επεξεργαστή Processor Environment Model (PEM) Δείχνει πώς έχει αναδιοργανωθεί - επεξεργαστεί το βασικό (essential) μοντέλο, ώστε να ταιριάζει - να προσαρμόζεται στο Hard που επιλέχθηκε Α- Υψηλού Επιπέδου Διάγραμμα ροής δεδομένων (Top Level D.) Δείχνει τους επεξεργαστές του συστήματος Β- Για κάθε επεξεργαστή ι) Διάγραμμα Ροής Δεδομένων ιι) Διάγραμμα Μετάπτωσης Καταστάσεων ιιι) Διάγραμμα Σχέσεων-Συνδέσεων Οντοτήτων ιν) Κείμενο υποστήριξης
Μοντέλο Περιβάλλοντος Επεξεργαστή Διάγραμμα Υψηλού Επιπέδου Συντεταγμένες κίνησης Συντεταγμένες συλλέκτη Δεδομένα σαρωτή Μάζεψε μανιτάρι Επεξεργαστής συλλογής 1 Απαιτούμενο μέγεθος δεδομένα Σταμάτα / ξεκίνα συλλογή Επεξεργαστής επικοινωνίας ανθρώπουμηχανής 2 Σταμάτα / ξεκίνα Περίληψη παραγωγής Νέο μέγεθος Εμφάνιση Συλλεγμένων Αίτηση περίληψης Δείχνει τη φυσική σύνθεση του hardware
Μοντέλο Περιβάλλοντος Επεξεργαστή Επεξεργαστής Συλλογής Μανιταριών Δεδομένα σαρωτή δεδομένα Σάρωσε μανιτάρια 1.3 Ε/Α Μέγεθος Λάβε μέγεθος 1.4 Απαιτούμενο μέγεθος Συντεταγμένες Μανιτάρι στο σωστό μέγεθος Ε/Α Μετακίνησε συλλέκτη στο μανιτάρι 1.1 Έλεγξε συλλέκτη 1.2 Συλλέκτης στο μανιτάρι Σταμάτα / ξεκίνα τη συλλογή Σύλλεξε μανιτάρι Δείχνει όλες τις εργασίες που θα εκτελούνται από τους επεξεργαστές και τη διασύνδεσή τους. Συντεταγμένες συλλέκτη Συντεταγμένες κίνησης Δεν λέει πώς θα υλοποιηθούν
start/stop Μοντέλο Περιβάλλοντος Επεξεργαστή Επεξεργαστής Επικοινωνίας Ανθρώπου - Υπολογιστή εμφάνιση συλλεγμένων Ε/D Ανάφερε Συλλεγμένα Μανιτάρια 2.2 Λάβε Δεδομένα Μανιταριού 2.3 δεδομένα Έλεγξε Διεπαφή Ανθρώπου Υπολογιστή 2.1 Συλλεγμένα Μανιτάρια αίτηση περίληψης start/stop συγκομιδής Δημιούργησε Περίληψη Παραγωγής 2.5 αίτηση αλλαγής μεγέθους Μέγεθος Μανιταριού Περίληψη παραγωγής Φόρμα αλλαγής αλλαγές Κατέγραψε Νέο Μέγεθος Μανιταριού 2.4 Μετέδωσε Απαιτούμενο Μέγεθος Μανιταριού 2.6 απαιτούμενο μέγεθος
Μοντέλο Περιβάλλοντος Λογισμικού Software Environment Model (SEM) Δείχνει πώς έχει αναδιοργανωθεί - επεξεργαστεί το PEM για κάθε επεξεργαστή, ώστε να προσαρμοστεί στη Soft αρχιτεκτονική Α- Υψηλού Επιπέδου Διάγραμμα ροής (Top Level D.) Δείχνει τη φυσική σύνθεση του Λογισμικού (Αρχιτεκτονική Λογισμικού + εκτελέσιμα προγράμματα) Β- Για κάθε μονάδα εκτέλεσης ι) Διάγραμμα Ροής Δεδομένων ιι) Διάγραμμα Μετάπτωσης Καταστάσεων ιιι) Διάγραμμα Σχέσεων-Συνδέσεων Οντοτήτων ιν) Κείμενο υποστήριξης
Μοντέλο Περιβάλλοντος Λογισμικού (SΕΜ) δεδομένα δεδομένα Επικοινωνίες με Επεξεργαστή Συλλογής 2.1 μέγεθος collect Σύστημα Διαχείρισης Βάσης Δεδομένων διάλογος πληροφοριών διάλογος πληροφοριών Παρέχονται από την αρχιτεκτονική λογισμικού Διεπαφή Manager 2.3 Περίληψη παραγωγής αίτηση περίληψης απαιτούμενο μέγεθος start/stop συγκομιδής Διεπαφή Χειριστή 2.2 start/stop νέα δεδομένα Λογισμικό I/O Collect =Flag που στέλνεται από το Operator Interf. Program και του επιτρέπει να στέλνει start/stop μηνύματα την κατάλληλη στιγμή εμφάνιση συλλεγμένων 2.1, 2.2 & 2.3: εκτελέσιμες μονάδες που πρέπει να γράψουμε εμείς.
Μοντέλο Περιβάλλοντος Λογισμικού Πρόγραμμα Επικοινωνίας Χειριστή Σταμάτα / ξεκίνα Αίτηση αλλαγής μεγέθους Σύλλεξε Έλεγξε επικοινωνία χειριστή 2.2.1 Σκανδαλισμός Σκανδαλισμός Διάλογος πληροφοριών μεγέθους Ανάφερε συλλεγμένα μανιτάρια 2.2.2 Κατάγραψε νέο μέγεθος 2.2.3 Διάλογος πληροφοριών συλλεγμένων Εμφάνιση συλλεγμένων Φόρμα αλλαγής Αλλαγές
Μοντέλο Οργάνωσης Κώδικα Code Organization Model (COM) Πρόγραμμα Επικοινωνίας Χειριστή εντολή ΕΠΙΚΟΙΝΩΝΙΑ ΧΕΙΡΙΣΤΗ ΠΑΡΕ ΕΝΤΟΛΗ ΧΡΗΣΤΗ Πληροφορίες ΑΝΑΦΕΡΕ ΣΥΛΛΕΓΜΕΝΑ ΜΑΝΙΤΑΡΙΑ ΚΑΤΑΓΡΑΨΕ ΝΕΟ ΜΕΓΕΘΟΣ ΜΑΝΙΤΑΡΙΩΝ Αλλαγές ΘΕΣΕ ΣΗΜΑΙΑ ΣΥΛΛΟΓΗΣ Procedure function subroutine ΕΠΕΞΕΡΓΑΣΟΥ ΠΛΗΡΟΦΟΡΙΕΣ ΜΑΝΙΤΑΡΙΩΝ ΕΜΦΑΝΙΣΕ ΠΛΗΡΟΦΟΡΙΕΣ ΜΑΝΙΤΑΡΙΩΝ Αλλαγές κλήση Δείχνε πώς η εργασία που υλοποιείται από μια εκτελέσιμη μονάδα οργανώνεται σε δομή προγράμματος ΕΜΦΑΝΙΣΕ ΦΟΡΜΑ ΑΛΛΑΓΗΣ ΜΕΓΕΘΟΥΣ ΔΕΞΟΥ ΑΛΛΑΓΕΣ ΧΡΗΣΤΗ