Διαγράμματα Σχεδιασμού (Design diagrams) Προσομοίωση Βιομηχανικής Παραγωγής & Επιχειρήσεων ΚΕΦ. 4 Μοντελοποίηση Τυχαίοι Αριθμοί Διαγράμματα Επαλήθευση Ανάλυση Αποτελεσμάτων
Διαγράμματα Για την κατανόηση του τρόπου λειτουργίας και την απεικόνιση ενός συστήματος χρησιμοποιούμε 3 τύπους διαγραμμάτων: 1. διαγράμματα κύκλου δραστηριοτήτων, 2. διαγράμματα ροής διαδικασιών, 3. λογικά διαγράμματα ροής Χρησιμοποιούμε τα διαγράμματα για να περιγράψουμε το μοντέλο του συστήματος ώστε στο επόμενο στάδιο να κάνουμε προγραμματισμό στο υπολογιστή. 5.2
Διαγράμματα Κύκλου Δραστηριοτήτων Τα διαγράμματα κύκλου δραστηριοτήτων αποτελούν μια γραφική μεθοδολογία αναπαράστασης των σχέσεων μεταξύ των οντοτήτων του συστήματος και των δραστηριοτήτων στις οποίες εμπλέκονται. Στα διαγράμματα υπάρχουν μόνο δραστηριότητες οι οποίες θεωρούνται ενεργητικές (active) ή ανενεργές (passive). όταν εκτελείται μια ενεργητική δραστηριότητα (π.χ. επιδιόρθωση, συντήρηση, λειτουργία), τότε λέμε ότι η οντότητα βρίσκεται σε ενεργή κατάσταση. Όταν αντιθέτως η δραστηριότητα είναι παθητική (π.χ. αδρανής και διαθέσιμος υπηρέτης, αδρανής χειριστής, σε αναμονή στην ουρά), τότε η οντότητα που συμμετέχει λέμε ότι βρίσκεται σε ανενεργή ή παθητική κατάσταση. 5.3
Ενεργή Δραστηριότητα Χαρακτηρίζουμε την κατάσταση μιας οντότητας ως ενεργή (ανενεργή), όταν ισχύουν οι παρακάτω 3 αναγκαίες και ικανές συνθήκες για μια δραστηριότητα στην οποία εμπλέκεται: 1. Η δραστηριότητα την οποία υπονοεί είναι ενεργητική (παθητική). 2. (Δεν) εμπλέκεται παραπάνω από μία οντότητα. 3. Η διάρκεια της (δεν) ορίζεται άμεσα από μια γεννήτρια. Παραδείγματα: Ο υπηρέτης (server) σε ένα σύστημα εξυπηρέτησης είναι σε ενεργή κατάσταση όταν εξυπηρετεί ένα πελάτη. Ο πελάτης είναι επίσης οντότητα, η διάρκεια του χρόνου εξυπηρέτησης του πελάτη ορίζεται από τη γεννήτρια τυχαίων χρόνου εξυπηρέτησης στο σύστημα. Ο πελάτης στο σύστημα εξυπηρέτησης όταν περιμένει στην ουρά είναι σε ανενεργή κατάσταση γιατί περιμένει να εξυπηρετηθεί από τον υπηρέτη (Αλλά άλλος πελάτης εξυπηρετείται από τον υπηρέτη), η διάρκειά της αναμονής στην ουρά δεν ορίζεται άμεσα από γεννήτρια, αλλά εξαρτάται από τους πελάτες που προηγούνται στην ουρά και τον χρόνο που θα εξυπηρετηθούν. 5.4
Συμβολισμοί Δ.Κ.Δ. Στα διαγράμματα κύκλου δραστηριοτήτων (Δ.Κ.Δ.), χρησιμοποιούνται μόνο δύο σύμβολα και κατευθυνόμενες ακμές που περιγράφουν την ακολουθία μετάβασης. Τα σύμβολα αυτά είναι το ορθογώνιο και ο κύκλος που συμβολίζουν αντίστοιχα την ενεργή και την ανενεργή κατάσταση στην οποία βρίσκεται μια οντότητα κατά την εκτέλεση μιας ενεργητικής ή μιας παθητικής δραστηριότητας αντίστοιχα. Η μετάβαση πραγματοποιείται με 1 γεγονός. 5.5
Σύστημα Κρατήσεων «Batman Airlines» Η εταιρία Batman Airlines έχει online σύστημα κρατήσεων με 11 servers, μας ενδιαφέρει το σύστημα αποκατάστασης βλαβών στους servers από τον μηχανικό. Οι σημαντικές οντότητες στο σύστημα είναι οι εξυπηρετητές (servers), οι χειριστές και ο μηχανικός (κλάσεις). Η κλάση των μηχανικών, μπορεί να είναι αδρανείς ή απασχολημένοι. Όταν οι μηχανικοί εργάζονται διεκπεραιώνουν την ενεργητική δραστηριότητα «επιδιόρθωση εξυπηρετητή» (ΕΕ). Στη δραστηριότητα (ΕΕ) εμπλέκονται 2 οντότητες (ο μηχανικός και ο εξυπηρετητής), ενώ η διάρκειά της καθορίζεται από τον τυχαίο χρόνο επιδιόρθωσης ο οποίος παράγεται από την αντίστοιχη γεννήτρια (=> ενεργή δραστηριότητα ΤΕΤΡΑΓΩΝΟ). Υποθέτουμε ακόμα μια ενεργητική δραστηριότητα που πραγματοποιούν οι μηχανικοί. Είναι η περιοδική «συντήρηση εξυπηρετητή» (ΣΕ) (ΤΕΤΡΑΓΩΝΟ) γίνεται σε προσδιοριστικά χρονικά διαστήματα. Για να εισαγάγουμε αυτήν τη δραστηριότητα στο μοντέλο, υποθέτουμε ότι για κάθε εξυπηρετητή, εκτός από τη χρονική στιγμή της επόμενης βλάβης, παράγεται με προσδιοριστικό τρόπο και η χρονική στιγμή της επόμενης συντήρησης (π.χ. διάρκεια 1/2 ώρες κάθε εβδομάδα άρα κάθε 5Χ8-40 ώρες). 5.6
Οντότητα Μηχανικός «Batman Airlines» Η κατάσταση «αδρανής και διαθέσιμος» (ΜΔ) είναι ανενεργή (παθητική) επομένως θα συμβολίζεται με ΚΥΚΛΟ, καθώς δεν εμπλέκεται άλλη οντότητα παρά μόνο ο μηχανικός και ο χρόνος της διάρκειάς της δεν εξαρτάται άμεσα από μια γεννήτρια αλλά από άλλες δραστηριότητες. Προσθέτουμε την ενεργή κατάσταση «αδρανής και μη διαθέσιμος» (ΜΜΔ): απασχολημένος σε κάποια άλλη δραστηριότητα η οποία είναι διαφορετική από τη «συντήρηση» ή την «επισκευή εξυπηρετητή». Αυτή η δραστηριότητα μπορεί να αντιστοιχεί σε κάποιο διάλειμμα που κάνει ο μηχανικός κατά τη διάρκεια της ημέρας ή στον χρόνο που αφιερώνει για τη συντήρηση του προσωπικού του εξοπλισμού, σε άδεια, κλπ. Το Σχήμα στην επόμενη διαφάνεια αντιστοιχεί στο διάγραμμα κύκλου δραστηριοτήτων της οντότητας (κλάσης) του μηχανικού. 5.7
Δ.Κ.Δ. Μηχανικού «Batman Airlines» Οι σημαντικές οντότητες στο σύστημα είναι οι εξυπηρετητές (servers), οι χειριστές και ο μηχανικός (κλάσεις). Για την οντότητα μηχανικός έχουμε το παρακάτω Διάγραμμα Κύκλου Δραστηριοτήτων «αδρανής και μη διαθέσιμος» (ΜΜΔ) Είναι σε διάλλειμα, άδεια, άρρωστος, κλπ. «αδρανής και διαθέσιμος» (ΜΔ) Διαθέσιμος (ανενεργός) «επιδιόρθωση εξυπηρετητή» (ΕΕ) Εκτελεί επιδιόρθωση (ενεργός) «συντήρηση εξυπηρετητή» (ΣΕ) Εκτελεί συντήρηση (ενεργός) Παρατηρούμε ότι υπάρχουν 3 ενεργητικές καταστάσεις ΜΜΔ-ΕΕ-ΣΕ 1 παθητική κατάσταση ΜΔ Ο μηχανικός μεταβαίνει από την μία στην άλλη μέσω γεγονότων ΠΑΝΤΑ μέσω της ΜΔ Βλάβη server Επιστροφή Διόρθωση βλάβης Συντήρηση server Εκτός Υπηρεσίας Τέλος Συντήρησης 5.8
Δ.Κ.Δ. Εξυπηρετητή «Batman Airlines» Οι σημαντικές οντότητες στο συγκεκριμένο σύστημα είναι οι εξυπηρετητές (servers), οι χειριστές και ο μηχανικός (κλάσεις). Η οντότητα Εξυπηρετητής (server) εμπλέκεται στις δραστηριότητες του μηχανικού: «επιδιόρθωση εξυπηρετητή» (ΕΕ) Εκτελείται επιδιόρθωση «συντήρηση εξυπηρετητή» (ΣΕ) Εκτελείται συντήρηση «διαθέσιμος εξυπηρετητής» (ΔΕ) είναι διαθέσιμος «αναμονή στην ουρά για συντήρηση/επισκευή» (Q) «λειτουργία» (Λ) περιμένει για επιδιόρθωση/συντήρηση λειτουργεί (απαιτείται χειριστής) Από την κατάσταση (Λ) μεταβαίνει σε (EE) ή (ΣΕ) μέσω ουράς Q (μπορεί ο χρόνος παραμονής στην ουρά να είναι μηδενικός) 5.9
Δ.Κ.Δ. Χειριστή «Batman Airlines» Οι σημαντικές οντότητες στο συγκεκριμένο σύστημα είναι οι εξυπηρετητές (servers), οι χειριστές και ο μηχανικός (κλάσεις). Η οντότητα Χειριστής εμπλέκεται στις δραστηριότητες του εξυπηρετητή: «λειτουργία» (Λ) λειτουργεί (απαιτείται χειριστής) «αδρανής και διαθέσιμος» (ΧΔ) «χειριστής αδρανής και μη διαθέσιμος» (ΧΜΔ) μη διαθέσιμος (άδεια, κλπ.) Από την κατάσταση (ΧΔ) μεταβαίνει σε (Λ) ή (ΧΜΔ) (μπορεί ο χρόνος παραμονής στο ΧΔ να είναι μηδενικός) 5.10
Οντότητες-Δραστηριότητες «Batman Airlines» Συνολικά για το σύστημα έχουμε τις παρακάτω δραστηριότητες των οντοτήτων: 5.11
Δ.Κ.Δ. «Batman Airlines» Οι οντότητες στο σύστημα είναι οι εξυπηρετητές (servers), οι χειριστές και ο μηχανικός (κλάσεις). δραστηριότητες : «επιδιόρθωση εξυπηρετητή» (ΕΕ) Εκτελείται επιδιόρθωση «συντήρηση εξυπηρετητή» (ΣΕ) Εκτελείται συντήρηση «διαθέσιμος εξυπηρετητής» (ΔΕ) είναι διαθέσιμος «αναμονή στην ουρά για συντήρηση/επισκευή» (Q) «λειτουργία» (Λ) περιμένει για επιδιόρθωση/συντήρηση λειτουργεί εξυπηρετητής «αδρανής και διαθέσιμος» (ΧΔ) «χειριστής αδρανής και μη διαθέσιμος» (ΧΜΔ) Τα βέλη αναπαριστούν γεγονότα στο σύστημα 5.12
Σύστημα Εξυπηρέτησης ΚΤΕΛ Το Παράδειγμα 1.9 αφορά τη διαδικασία κράτησης ή έκδοσης εισιτηρίων και τη διαδικασία παροχής πληροφοριών σε έναν σταθμό υπεραστικών λεωφορείων (ΚΤΕΛ) από τους υπαλλήλους. η κλάση των υπαλλήλων που είναι υπεύθυνοι για τις κρατήσεις και την παροχή πληροφοριών εξυπηρετεί πελάτες με δύο διαφορετικούς τρόπους: αυτοπροσώπως ή μέσω τηλεφώνου. Επομένως υπάρχουν οι οντότητες: 1. Υπάλληλος κρατήσεων (ΥΚ). 2. Πελάτες που έρχονται προσωπικά και εξυπηρετούνται στο ταμείο (ΠΠ). 3. Πελάτες που επικοινωνούν τηλεφωνικά (ΠΤ). Υπόθεση: Οι πελάτες που παρουσιάζονται προσωπικά εξυπηρετούνται κατά προτεραιότητα έναντι των πελατών που επικοινωνούν μέσω τηλεφώνου. 5.13
Οντότητα υπάλληλος ΚΤΕΛ Το Παράδειγμα 1.9 αφορά τη διαδικασία κράτησης ή έκδοσης εισιτηρίων και τη διαδικασία παροχής πληροφοριών σε έναν σταθμό υπεραστικών λεωφορείων (ΚΤΕΛ) από τους υπαλλήλους. Είναι ανοικτό σύστημα (οι πελάτες προέρχονται από το εξωτερικό περιβάλλον του ΚΤΕΛ) Εξυπηρετούνται είτε πελάτες που φθάνουν αυτοπροσώπως είτε τηλεφωνικά Η οντότητα υπάλληλος έχει δραστηριότητες (ΥΚ): «αδρανής και διαθέσιμος» (ΑΔ) [ΠΑΘΗΤΙΚΗ] «πουλά εισιτήρια» (ΠΕ) «δίνει πληροφορίες» (ΔΠ) «μιλάει στο τηλέφωνο» (ΤΗΛ) Η μετάβαση γίνεται μέσω γεγονότων (βέλη): Άφιξη πελάτη για πληροφορίες Άφιξη πελάτη για εισιτήριο Άφιξη (κλήση) πελάτη για πληροφορίες τηλεφωνικά Και προφανώς το τέλος εξυπηρέτησης του πελάτη στην κάθε άφιξη 5.14
ΚΤΕΛ: Οντότητα Πελάτης Προσωπικά ΠΠ Το Παράδειγμα 1.9 αφορά τη διαδικασία κράτησης ή έκδοσης εισιτηρίων και τη διαδικασία παροχής πληροφοριών σε έναν σταθμό υπεραστικών λεωφορείων (ΚΤΕΛ) από τους υπαλλήλους. Είναι ανοικτό σύστημα (οι πελάτες προέρχονται από το εξωτερικό περιβάλλον του ΚΤΕΛ). Η οντότητα πελάτης ΠΠ είναι οι πελάτες που φθάνουν αυτοπροσώπως στο σύστημα και έχουν δραστηριότητες: «πηγή των (ΠΠ)» (ΕΞΩ) είναι στο εξωτερικό περιβάλλον (εκτός) συστήματος «άφιξη πελάτη στον σταθμό» (ΑΦ) φθάνουν στο σταθμό πελάτες ΠΠ «ουρά αναμονής» (Q) είναι στην ουρά ο πελάτης ΠΠ «πουλά εισιτήρια» (ΠΕ) ο υπάλληλος στον πελάτη ΠΠ «δίνει πληροφορίες» (ΔΠ) ο υπάλληλος στον πελάτη ΠΠ Τα βέλη αναπαριστούν τα αντίστοιχα γεγονότα για να μεταβούμε από 1 δραστηριότητα σε άλλη 5.15
ΚΤΕΛ: Οντότητα Πελάτης Τηλεφωνικά ΠΤ Το Παράδειγμα 1.9 αφορά τη διαδικασία κράτησης ή έκδοσης εισιτηρίων και τη διαδικασία παροχής πληροφοριών σε έναν σταθμό υπεραστικών λεωφορείων (ΚΤΕΛ) από τους υπαλλήλους. Είναι ανοικτό σύστημα (οι πελάτες προέρχονται από το εξωτερικό περιβάλλον του ΚΤΕΛ). Η οντότητα πελάτης ΠΤ είναι οι πελάτες που «φθάνουν» τηλεφωνικά στο σύστημα και έχουν δραστηριότητες: πηγή πελατών τηλεφωνικά (ΕΞΩΤΗΛ) «κλήση» (ΚΛ) από εξωτερικό περιβάλλον κλήση από ΠΤ «αναμονή κλήσεων», (ΑΝ) αναμονή ΠΤ για απάντηση από ΥΚ «απάντηση τηλεφωνικής κλήσης» (ΤΗΛ) επικοινωνία ΠΤ με ΥΚ Τα βέλη αναπαριστούν τα αντίστοιχα γεγονότα για να μεταβούμε από 1 δραστηριότητα σε άλλη 5.16
ΚΤΕΛ: Οντότητες και Δραστηριότητες Δραστηριότητες/καταστάσεις του συστήματος, τύπος (ενεργητική ή παθητική), εμπλεκόμενες οντότητες και ονομασίες (κωδικοποίηση). 5.17
ΚΤΕΛ: Διάγραμμα Κύκλου Δραστηριοτήτων ΟΝΤΟΤΗΤΕΣ: 1. Υπάλληλος κρατήσεων (ΥΚ). 2. Πελάτες που έρχονται προσωπικά και εξυπηρετούνται στο ταμείο (ΠΠ). 3. Πελάτες που επικοινωνούν τηλεφωνικά (ΠΤ). ΔΡΑΣΤΗΡΙΟΤΗΤΕΣ: πηγή πελατών τηλεφωνικά (ΕΞΩΤΗΛ) «κλήση» (ΚΛ) «μιλάει στο τηλέφωνο» (ΤΗΛ) «αναμονή κλήσεων», (ΑΝ) «αδρανής και διαθέσιμος» (ΑΔ) «πουλά εισιτήρια» (ΠΕ) «δίνει πληροφορίες» (ΔΠ) «ουρά αναμονής» (Q) «άφιξη πελάτη στον σταθμό» (ΑΦ) «πηγή των (ΠΠ)» (ΕΞΩ) Τα βέλη αναπαριστούν τα αντίστοιχα γεγονότα για να μεταβούμε από 1 δραστηριότητα σε άλλη 5.18
Διαγράμματα Ροής Διαδικασιών Στα διαγράμματα ροής διαδικασιών (procedural flowcharts) απεικονίζεται η σειριακή (ή μη σειριακή) εκτέλεση των δραστηριοτήτων και των διαδικασιών που πραγματοποιούνται στο σύστημα με σκοπό να παραχθεί ένα αποτέλεσμα. Οι επιμέρους διαδικασίες συμβολίζονται με κατάλληλα εικονίδια τα οποία συνδέονται μεταξύ τους με κατευθυνόμενες ακμές (βέλη). διαχωρίζουμε τις διαδικασίες σε 5 κατηγορίες: 1. λειτουργία (operation), 2. μεταφορά ή μετάβαση (transportation) αντικειμένων και πληροφορίας, 3. έλεγχος (inspection), 4. αποθήκευση (storage) 5. αναμονή (delay). 5.19
Διαγράμματα Ροής Διαδικασιών: «Batman Airlines» Στα διαγράμματα Ροής Διαδικασιών απεικονίζεται η σειριακή (ή μη σειριακή) εκτέλεση των δραστηριοτήτων και των διαδικασιών που πραγματοποιούνται στο σύστημα με σκοπό να παραχθεί ένα αποτέλεσμα. Οι επιμέρους διαδικασίες συμβολίζονται με εικονίδια τα οποία συνδέονται μεταξύ τους με κατευθυνόμενες ακμές (βέλη). «Batman Airlines» Ένας εξυπηρετητής είναι στην ουρά είτε για επιδιόρθωση είτε για συντήρηση. Ελέγχεται και λαμβάνεται απόφαση και λαμβάνεται απόφαση για Επιδιόρθωση ή Συντήρηση. 5.20
Διαγράμματα Ροής Διαδικασιών «Batman Airlines» Το πλήρες Δ.Ρ.Δ. για το παράδειγμα με την υπόθεση ότι η βλάβη ενός εξυπηρετητή μπορεί να προϋποθέτει τη χρήση ενός ανταλλακτικού εξαρτήματος είναι το παρακάτω: (με κάποιες υποθέσεις!) Στο Διάγραμμα Ροής Διαδικασιών παρατηρούμε ότι υπάρχει λεπτομερής ανάλυση της διαδικασίας επισκευής! Στο αντίστοιχο Δ.Κ.Δ. η ανάλυση ήταν «οντο-κεντρική» Δ.Κ.Δ. και Δ.Ρ.Δ. είναι συμπληρωματικά 5.21
Λογικά Διαγράμματα Τα λογικά ή αλγοριθμικά διαγράμματα (logic flowcharts) αναπαριστούν τα αλγοριθμικά βήματα που απαιτούνται για την εκτέλεση ενός προγράμματος και εν προκειμένω για την εκτέλεση ενός προγράμματος προσομοίωσης. Το διάγραμμα ροής διαδικασιών αναπαριστά τα βήματα που απαιτούνται για την ολοκλήρωση της λειτουργίας του πραγματικού συστήματος, το αντίστοιχο λογικό διάγραμμα περιγράφει τα βήματα που απαιτούνται για την προσομοίωση του πραγματικού συστήματος στον υπολογιστή. Τα διαγράμματα κύκλου δραστηριοτήτων αποτυπώνουν τις καταστάσεις των διάφορων οντοτήτων και τις σχέσεις μεταξύ αυτών. Τα λογικά διαγράμματα βασίζονται στα γεγονότα που ενεργοποιούν ή ολοκληρώνουν τις δραστηριότητες αυτές, καθώς επίσης και στις διάφορες αποφάσεις, που σε συνδυασμό με τα γεγονότα, συνεπάγονται την εκτέλεση συγκεκριμένων εντολών (δραστηριοτήτων) οι οποίες πρακτικά μεταβάλλουν την κατάσταση του συστήματος, δηλαδή, τις τιμές των σημαντικών μεταβλητών κατάστασης. 5.22
Λογικά Διαγράμματα: Παράδειγμα ΚΤΕΛ Για να περιγράψουμε τη διαδικασία σχεδιασμού ενός λογικού διαγράμματος, θα χρησιμοποιήσουμε το Παράδειγμα ΚΤΕΛ. Οι πελάτες μπορούν να εξυπηρετούνται προσωπικά (ΠΠ) ή μέσω τηλεφώνου (ΠΤ) από τους υπαλλήλους (ΥΚ). θα κάνουμε την παραδοχή ότι οι καταστάσεις «υπάλληλος δίνει πληροφορίες σε πελάτη που ήρθε προσωπικά» (ΔΠ) και «υπάλληλος πουλά εισιτήριο» (ΠΕ) μπορούν να συγχωνευθούν σε μία δραστηριότητα, κάτι που έχει ως συνέπεια ο χρόνος εξυπηρέτησης ενός πελάτη να παρέχεται από μία μόνο γεννήτρια. Αρχικά καταγράφουμε τα γεγονότα που συμβαίνουν στο σύστημα. Υπάρχουν 6 γεγονότα: 1. άφιξη πελάτη (ΠΠ) στον σταθμό, 2. έναρξη εξυπηρέτησης πελάτη (ΠΠ) από τον υπάλληλο (ΥΚ), 3. ολοκλήρωση εξυπηρέτησης (αναχώρηση) πελάτη (ΠΠ) από τον υπάλληλο (ΥΚ), 4. άφιξη τηλεφωνικής κλήσης, πελάτη (ΠΤ), 5. έναρξη εξυπηρέτησης πελάτη (ΠΤ) από τον υπάλληλο (ΥΚ), 6. ολοκλήρωση εξυπηρέτησης (αναχώρηση) πελάτη (ΠΤ) από τον υπάλληλο (ΥΚ). Δημιουργούμε το αντίστοιχο λογικό διάγραμμα για κάθε γεγονός. 5.23
ΚΤΕΛ: Άφιξη πελάτη (ΠΠ) Έλεγχος αν ο υπάλληλος (ΥΚ) είναι ανενεργός (ΑΔΡΑΝΗΣ) αν ο υπάλληλος (ΥΚ) είναι ΌΧΙ ΑΔΡΑΝΗΣ δηλ. απασχολημένος (εξυπηρετεί προηγούμενο πελάτη) τότε ο πελάτης ΠΠ προστίθεται στην ουρά Q που αυξάνει κατά 1 αν ο υπάλληλος (ΥΚ) είναι ΑΔΡΑΝΗΣ δηλ. μη απασχολημένος (δεν εξυπηρετεί προηγούμενο πελάτη) τότε ο υπάλληλος γίνεται απασχολημένος Παράγεται ο χρόνος εξυπηρέτησης του πελάτη που ξεκίνησε η εξυπηρέτηση του, προγραμματίζεται η χρονική στιγμή της αναχώρησής του Παράγουμε το χρόνο μεταξύ 2 αφίξεων για να προγραμματιστεί η επόμενη άφιξη (του επόμενου πελάτη) 5.24
ΚΤΕΛ: Αναχώρηση πελάτη (ΠΠ) Έλεγχος αν ο υπάρχει πελάτης ΠΠ (στο ταμείο) στην ουρά Q Έλεγχος αν ο υπάρχει πελάτης στην ουρά ΑΝ (τηλεφωνικά) Η ουρά αναμονής AN μειώνεται κατά 1 ΠΤ Επειδή δεν υπάρχει πελάτης στην ουρά ο υπάλληλος ΥΚ αδρανής (ΑΔ) Ο υπάλληλος ΥΚ απασχολημένος τηλεφωνικά (ΤΗΛ) Παράγεται ο χρόνος εξυπηρέτησης (συνομιλίας) και προγραμματίζεται ο χρόνος ολοκλήρωσης εξυπηρέτησης Η ουρά Q μειώνεται κατά 1 ΠΠ Ο υπάλληλος ΥΚ απασχολημένος (ΠΕ ή ΔΠ) Παράγεται ο χρόνος εξυπηρέτησης (στο ταμείο) και προγραμματίζεται ο χρόνος ολοκλήρωσης εξυπηρέτησης 5.25
ΚΤΕΛ: Άφιξη πελάτη (ΠΤ) Έλεγχος αν ο υπηρέτης ΥΚ Αδρανής (ελεύθερος) Έλεγχος αν ο υπάρχει πελάτης στην ουρά ΑΝ (τηλεφωνικά) Η ουρά αναμονής AN μειώνεται κατά 1 ΠΤ Επειδή δεν υπάρχει πελάτης στην ουρά ο υπάλληλος ΥΚ αδρανής (ΑΔ) Ο υπάλληλος ΥΚ απασχολημένος τηλεφωνικά (ΤΗΛ) Η ουρά ΑΝ αυξάνεται κατά 1 ΠΤ Έλεγχος υπάρχει πελάτης ΠΠ στην ουρά Q (ταμείο) Ο υπάλληλος ΥΚ απασχολημένος (ΤΗΛ) Παράγεται ο χρόνος εξυπηρέτησης (συνομιλίας) και προγραμματίζεται ο χρόνος ολοκλήρωσης εξυπηρέτησης Παράγουμε το χρόνο μεταξύ 2 αφίξεων για να προγραμματιστεί η επόμενη άφιξη (του επόμενου πελάτη) 5.26
Παράδειγμα ΚΤΕΛ *ΣΥΝΟΨΗ* Υπάρχουν 6 γεγονότα στο σύστημα: 1. άφιξη πελάτη (ΠΠ) στον σταθμό, 2. έναρξη εξυπηρέτησης πελάτη (ΠΠ) από τον υπάλληλο (ΥΚ), 3. ολοκλήρωση εξυπηρέτησης (αναχώρηση) πελάτη (ΠΠ) από τον υπάλληλο (ΥΚ), 4. άφιξη τηλεφωνικής κλήσης, πελάτη (ΠΤ), 5. έναρξη εξυπηρέτησης πελάτη (ΠΤ) από τον υπάλληλο (ΥΚ), 6. ολοκλήρωση εξυπηρέτησης (αναχώρηση) πελάτη (ΠΤ) από τον υπάλληλο (ΥΚ). Δημιουργούμε το αντίστοιχο λογικό διάγραμμα για κάθε γεγονός. Τα λογικά διαγράμματα των γεγονότων σε συνδυασμό με τη χρήση της μεθόδου του επόμενου γεγονότος (next event) στο ρολόι της προσομοίωσης, μας επιτρέπουν να δημιουργήσουμε το πρόγραμμα της προσομοίωσης του συστήματος. ΑΠΛΑ ΘΑ ΠΑΡΑΚΟΛΟΥΘΕΙ ΚΑΙ ΕΚΤΕΛΕΙ ΤΑ ΕΠΟΜΕΝΑ ΓΕΓΟΝΟΤΑ στη σειρά στο χρόνο! Ξεκινάμε συνήθως με την άφιξη του 1 ου πελάτη στη χρονική στιγμή 0, αυτό οδηγεί στον προγραμματισμό της επόμενης άφιξης (του επόμενου πελάτη) και τον προγραμματισμό ολοκλήρωσης εξυπηρέτησης του 1ου, ΟΠΟΤΕ έχει ενεργοποιηθεί η διαδικασία των επόμενων γεγονότων και μπορεί να εκτελεστεί η προσομοίωση! 5.27
Διαγράμματα: ΣΥΝΟΨΗ Τα λογικά διαγράμματα (logic flowcharts) αναπαριστούν τα αλγοριθμικά βήματα που απαιτούνται για την εκτέλεση του προγράμματος προσομοίωσης. Το διάγραμμα ροής διαδικασιών αναπαριστά τα βήματα που απαιτούνται για την ολοκλήρωση της λειτουργίας του πραγματικού συστήματος, το αντίστοιχο λογικό διάγραμμα περιγράφει τα βήματα που απαιτούνται για την προσομοίωση του πραγματικού συστήματος στον υπολογιστή. Τα διαγράμματα κύκλου δραστηριοτήτων αποτυπώνουν τις καταστάσεις των διάφορων οντοτήτων και τις σχέσεις μεταξύ αυτών. Τα λογικά διαγράμματα είναι τα καταλληλότερα για να βοηθήσουν τον προγραμματιστή της προσομοίωσης στο υπολογιστή. Εξετάζουν και παρακολουθούν τις αλλαγές στις τιμές των μεταβλητών κατάστασης του συστήματος, αυτό είναι εξαιρετικά χρήσιμο στον προγραμματιστή, αν χρησιμοποιήσει οποιαδήποτε κλασική γλώσσα προγραμματισμού. 5.28
Γενική Δομή Προγραμμάτων Προσομοίωσης Το υπόδειγμα αυτό αποτελείται από 3 επίπεδα: 1. πρόγραμμα ελέγχου: Κώδικας ο οποίος καλεί τα modules (ρουτίνες) που βρίσκονται στο επίπεδο 2 (λογικές διαδικασίες). Ο ρόλος του είναι η ενημέρωση της μεταβλητής του ρολογιού κατά τη μετάβαση από γεγονός σε γεγονός. Έχει τον ρόλο του «διαχειριστή» του προγράμματος της προσομοίωσης. Περιέχει τους ορισμούς και τις αρχικές συνθήκες λειτουργίας. 2. λογικές λειτουργίες: Περιλαμβάνει την υλοποίηση των modules που αναλαμβάνουν τη διεκπεραίωση των δραστηριοτήτων οι οποίες ενεργοποιούνται από τα γεγονότα, σύμφωνα πάντα με τον έλεγχο που καθορίζεται από το πρόγραμμα ελέγχου (στο 1 ο επίπεδο). 3. βοηθητικά προγράμματα: οι βοηθητικές ρουτίνες υποστήριξης που καλούνται από το επίπεδο 2. Οι ρουτίνες μπορεί να αποτελούν μέρος βιβλιοθηκών (libraries) που έχουν ήδη αναπτυχθεί από άλλους προγραμματιστές. 5.29
Εργαλεία Προγραμματισμού Μετά το σχεδιασμό του μοντέλου η επόμενη φάση είναι ο προγραμματισμός με κάποιο από τα διαθέσιμα εργαλεία προγραμματισμού: 1. Γενικές Γλώσσες Προγραμματισμού 2. Ειδικές Γλώσσες Προσομοίωσης 3. Βιβλιοθήκες Προσομοίωσης 4. Συστήματα Διαδραστικής Οπτικής Μοντελοποίησης Η σειρά παρουσίασης ακολουθεί την ιστορική εξέλιξη του τρόπου χρήσης υπολογιστών στην προσομοίωση. 5.30
Γενικές Γλώσσες Προγραμματισμού Οι γλώσσες γενικού σκοπού (general purpose languages) όπως οι διαδικαστικές (procedural) Pascal, Fortran, C και οι αντικειμενοστραφείς Java, C/C++, VB.NET, Python, Perl, κ.ά. Οι γενικές γλώσσες προγραμματισμού παρέχουν τη μεγαλύτερη δυνατή ευελιξία στον προγραμματιστή, η χρήση τους απαιτεί συχνά την ανάπτυξη προγραμμάτων από μηδενική βάση, κάτι που είναι συνήθως εξαιρετικά χρονοβόρο. Η σχεδίαση του μοντέλου με Δ.Κ.Δ., Δ.Ρ.Δ. και Λ.Δ. είναι απαραίτητη. Οι γενικές γλώσσες προγραμματισμού χρησιμοποιούνται για την ανάπτυξη πολύ εξειδικευμένων εφαρμογών προσομοίωσης με μεγάλες απαιτήσεις σε υπολογιστικούς πόρους (π.χ. χρόνος εκτέλεσης, διαθέσιμη μνήμη). Στις περιπτώσεις που ο προγραμματιστής θέλει να έχει απόλυτο έλεγχο των ρουτινών και του προγράμματος μέχρι τα κατώτερα επίπεδα. /* * ATM Example system - file ATMMain.java */ import java.awt.*; import java.awt.event.*; import atm.atm; import simulation.simulation; public class ATMMain { public static void main(string[] args) { ATM theatm = new ATM(42, "Gordon College", "First National Bank of Podunk", null /* We're not really talking to a bank! */); Simulation thesimulation = new Simulation(theATM); Απόσπασμα από κώδικα σε γλώσσα Java προγράμματος προσομοίωσης 5.31
Ειδικές Γλώσσες Προσομοίωσης Οι γλώσσες που έχουν αναπτυχθεί με σκοπό να διευκολύνουν την ανάπτυξη των προγραμμάτων προσομοίωσης και η δομή και το συντακτικό τους είναι προσανατολισμένα στη διαχείριση του ωρολογίου, του ημερολογίου γεγονότων, των οντοτήτων, των δραστηριοτήτων και όλων των δομικών στοιχείων μιας προσομοίωσης. SIMULA, GPSS, SIMSCRIPT Η ευκολία συνεπάγεται και κάποιο κόστος που είναι η απώλεια ευελιξίας, η οποία παρέχεται από τις γενικές γλώσσες προγραμματισμού. Σε περιπτώσεις που απαιτείται ο έλεγχος των ρουτινών, των αλγορίθμων ή των δομών δεδομένων αυτό δεν είναι πάντα εφικτό. Όλες οι γλώσσες προσομοίωσης έχουν κάποια κοινά χαρακτηριστικά: 1. το κύριο πρόγραμμα (main) το οποίο φανερώνει τον τρόπο διαχείρισης του ωρολογίου, 2. η ειδική σύνταξη εντολών (syntax) που διευκολύνει τη διαδικασία μεταφοράς του μοντέλου στη γλώσσα 3. οι απαραίτητες δομές δεδομένων (data structures), 4. οι δυνατότητες ελέγχου τόσο των τιμών των μεταβλητών (tracing) όσο και της συλλογής στατιστικών δεδομένων, 5. οι δυνατότητες πειραματισμού με το μοντέλο για τη διερεύνηση διάφορων σεναρίων. 5.32
Ειδικές Γλώσσες Προσομοίωσης-GPSS Οι γλώσσες που έχουν αναπτυχθεί με σκοπό να διευκολύνουν την ανάπτυξη των προγραμμάτων προσομοίωσης και η δομή και το συντακτικό τους είναι προσανατολισμένα στη διαχείριση του ωρολογίου, του ημερολογίου γεγονότων, των οντοτήτων, των δραστηριοτήτων και όλων των δομικών στοιχείων μιας προσομοίωσης. GPSS= General Purpose Simulation System, 1960 Το παράδειγμα στη γλώσσα GPSS Barber Shop Οι εντολές της γλώσσας είναι εξειδικευμένες για προσομοίωση 5.33
Βιβλιοθήκες Προσομοίωσης Οι βιβλιοθήκες αποτελούν πακέτα ρουτινών από τα οποία ο προγραμματιστής μπορεί να αντλεί τα εργαλεία που του είναι απαραίτητα και να τα προσθέτει στα δικά του προγράμματα τα οποία είναι γραμμένα σε μία από τις γενικές γλώσσες προγραμματισμού. SIMON, GASP Οι βιβλιοθήκες στις οποίες αναφερόμαστε περιλαμβάνουν modules που έχουν αναπτυχθεί και βελτιστοποιηθεί για την εκτέλεση εργασιών σε προγράμματα προσομοίωσης. Στις πιο απλές περιπτώσεις, ο προγραμματιστής αναπτύσσει το πρόγραμμα οδηγό, χρησιμοποιώντας κάποια γενική γλώσσα υποδοχής, καλεί ρουτίνες από κάποια βιβλιοθήκη προσομοίωσης η οποία είναι συμβατή με τη γενική γλώσσα προγραμματισμού που έχει επιλέξει. Οι βιβλιοθήκες ρουτινών προσομοίωσης προσφέρουν στους αναλυτές τη δυνατότητα να ελαχιστοποιήσουν τον χρόνο ανάπτυξης των προγραμμάτων. Πρόβλημα που προκύπτει όταν κάποιος αναγκάζεται να ενσωματώσει στο πρόγραμμά του ρουτίνες που αναπτύχθηκαν από άλλους προγραμματιστές, είναι ότι δεν είναι γνωστή η λειτουργία τους με λεπτομέρειες. 5.34
Βιβλιοθήκες Προσομοίωσης- GASP Οι βιβλιοθήκες αποτελούν πακέτα ρουτινών από τα οποία ο προγραμματιστής μπορεί να αντλεί τα εργαλεία που του είναι απαραίτητα και να τα προσθέτει στα δικά του προγράμματα τα οποία είναι γραμμένα σε μία από τις γενικές γλώσσες προγραμματισμού. GASP=General Activity Simulation Program, 1970 Dimension nset (1000) common/gcom/atrib (100, DP(100), DDL (100, DTNOW, II,MFA,MSTOP,NCLNR,NCRDR,NPRINT,NNRUN, NNSET,NTAPE,SS(100),SSL(100),TNEXT,TNOW,XX(100) Common Q Set Equivalence Nset(1),Qset(1)) NNSet=1000 NCRDR=5 NPRINT=6 NTAPE=7 Call GASP Stop End Κώδικας γλώσσας FORTRAN με χρήση του GASP IV για προσομοίωση. 5.35
Συστήματα Διαδραστικής Οπτικής Μοντελοποίησης Πρόκειται για τα Visual Interactive Modeling Systems (VIMS). Η ονομασία προτάθηκε το 1992 για να περιγράψει μια κατηγορία λογισμικών προσομοίωσης στην οποία ο χρήστης μπορεί να αλληλοεπιδρά με ένα εικονικό περιβάλλον προσομοίωσης κατά τη φάση της ανάπτυξης και εκτέλεσης. Η ανάπτυξη των μοντέλων προσομοίωσης έγινε πολύ πιο προσιτή και εύκολη, καθώς πλέον οι γνώσεις προγραμματισμού από την πλευρά του αναλυτή δεν ήταν απαραίτητη προϋπόθεση. Η εξέλιξη αυτή αποτέλεσε επανάσταση για τον κλάδο των λογισμικών προσομοίωσης με μια νέα γενιάς πακέτων προσομοίωσης, Arena, QUEST, Flexsim, Vensim, AnyLogic, κ.α. 5.36
Παράδειγμα VIMS: AnyLogic Λογισμικό προσομοίωσης τύπου Visual Interactive Modeling Systems (VIMS) είναι το AnyLogic. για την δημιουργία μιας προσομοίωσης επιλέγονται τα κατάλληλα εικονίδια (block), συνδέονται μεταξύ τους και ορίζονται οι ιδιότητες (properties). Η ανάπτυξη των μοντέλων προσομοίωσης έγινε πολύ πιο προσιτή και εύκολη, επειδή οι γνώσεις προγραμματισμού από την πλευρά του αναλυτή δεν ήταν απαραίτητη προϋπόθεση. 5.37
Συστήματα Διαδραστικής Οπτικής Μοντελοποίησης H δομή ενός VIMS αποτελείται από 4 επίπεδα. Το 1 ο επίπεδο της διεπαφής χρήστη (user interface) αντιστοιχεί στη διεπαφή προγραμματισμού εφαρμογών λειτουργικού (π.χ. Windows). Μέσω της διεπαφής, ο χρήστης μπορεί να αναπτύξει (model development) και να εκτελέσει (model running) ένα μοντέλο, και να προχωρήσει σε πειραματισμό και συλλογή στατιστικών δεδομένων (experimentation). Η ανάπτυξη του μοντέλου γίνεται στο περιβάλλον ανάπτυξης (model builder) μέσω του οποίου ο χρήστης επιλέγει εικονίδια τα οποία αντιστοιχούν σε διεργασίες ή δραστηριότητες. Τα εικονίδια αντιστοιχούν σε κλάσεις (simulation classes) που είναι μέρος του λογισμικού προσομοίωσης. Η επιλογή ενός εικονιδίου και η τοποθέτησή του στο μοντέλο συνεπάγεται τη δημιουργία ενός αντικειμένου (object, block) που βασίζεται στο πρότυπο της κλάσης. Τα περισσότερα VIMS προσφέρουν επιπλέον δυνατότητες παραμετροποίησης, επιτρέποντας τη χρήση κάποιας ειδικής ή γενικής γλώσσας προγραμματισμού. 5.38
Διαδικτυακή Προσομοίωση Διαδικτυακή Προσομοίωση (Web Based Simulation, WBS) αναπτύσσεται στην προσπάθεια αξιοποίησης του διαδικτύου για τη βελτίωση της αλληλεπίδρασης του πελάτη (client) με τον εξυπηρετητή (server) κατά τη διάρκεια της μοντελοποίησης και της εκτέλεσης μιας προσομοίωσης. Κοινό χαρακτηριστικό όλων των WBS εφαρμογών είναι ότι ο φυλλομετρητής (browser) υποστηρίζει τη γραφική διεπαφή του χρήστη με την προσομοίωση. Πλεονεκτήματα της WBS προσέγγισης: 1. ευκολία χρήσης, καθώς οι περισσότεροι χρήστες είναι εξοικειωμένοι με τη χρήση του διαδικτύου και των φυλλομετρητών. 2. δυνατότητα παράλληλης ανάπτυξης ενός κοινού μοντέλου από πολλούς από οποιαδήποτε τοποθεσία κι αν βρίσκονται. 3. μειωμένο κόστος, καθώς δεν προϋποθέτουν την εγκατάσταση λογισμικού τοπικά και επιτρέπουν τη μίσθωση υπηρεσιών και λόγω των χαμηλότερων υπολογιστικών πόρων που απαιτούνται από την πλευρά του πελάτη (client). 4. ανεξαρτησία από τον φυλλομετρητή ή το λειτουργικό σύστημα που χρησιμοποιείται. 5. άμεση προσβασιμότητα από οπουδήποτε, μέσω του διαδικτύου. Μειονεκτήματα: 1. μειωμένη ταχύτητα εξαιτίας καθυστερήσεων από τη μεταφόρτωση των δεδομένων ή εξαιτίας υπερφόρτωσης του δικτύου. 2. προβλήματα ασφάλειας, καθώς οι διαδικτυακές υπηρεσίες είναι πιο επιρρεπείς σε κυβερνοεπιθέσεις. 5.39
Αρχιτεκτονικές Διαδικτυακής Προσομοίωσης Υπάρχουν 3 κατηγορίες αρχιτεκτονικής στις εφαρμογές WBS: 1. Τοπική προσομοίωση και απεικόνιση (local simulation and visualization): το πρόγραμμα ελέγχου (simulation executive) και η απεικόνιση μεταφέρεται τοπικά στον υπολογιστή του χρήστη και εκτελείται μέσω του φυλλομετρητή. 2. Απομακρυσμένη προσομοίωση και απεικόνιση (remote simulation and visualization): το πρόγραμμα ελέγχου (simulation executive) και η απεικόνιση εκτελείται στον εξυπηρετητή. Μέσω του φυλλομετρητή, γίνεται η κατάθεση δέσμης εργασιών (batch jobs) και στο τέλος της προσομοίωσης δίνεται πρόσβαση στα αποτελέσματα του πειράματος. 3. Υβριδική προσομοίωση και απεικόνιση (hybrid simulation and visualization): σε αυτήν την περίπτωση, η προσομοίωση εκτελείται στον απομακρυσμένο εξυπηρετητή, ωστόσο η απεικόνιση της προσομοίωσης μεταφέρεται στον πελάτη (client) μέσω του φυλλομετρητή. Οι επιλογές αυτές προκύπτουν από τις αντίστοιχες αρχιτεκτονικές για την εκτέλεση εφαρμογών (προγραμμάτων) στο διαδίκτυο. George E.P. Box: «All models are wrong, but some are useful" 5.40
ΕΡΩΤΗΣΕΙΣ ΕΝΟΤΗΤΑΣ 1. Ποιοι είναι οι 3 τύποι διαγραμμάτων που χρησιμοποιούμε στην ανάπτυξη μοντέλων προσομοίωσης. 2. Ποια είναι η διαφορά μεταξύ Διαγραμμάτων Ροής Διαδικασιών και Διαγραμμάτων Κύκλου Δραστηριοτήτων. 3. Ποια είναι τα χαρακτηριστικά των Λογικών Διαγραμμάτων Ροής. 4. Πως αναπαρίστανται τα γεγονότα στα Διαγράμματα Κύκλου Δραστηριοτήτων. 5. Αν κάποιος προγραμματιστής επιθυμεί να προγραμματίσει τον κώδικα της προσομοίωσης ενός συστήματος σε μια γλώσσα προγραμματισμού ποιον τύπο διαγραμμάτων πρέπει να επιλέξει? 6. Ποιες είναι οι 4 επιλογές που υπάρχουν για τον προγραμματισμό της προσομοίωσης ενός μοντέλου/συστήματος στον υπολογιστή. 7. Ποια τα πλεονεκτήματα των Συστημάτων Διαδραστικής Οπτικής Μοντελοποίησης σε σχέση με τις 3 υπόλοιπες επιλογές προγραμματισμού στην προσομοίωση. 8. Ποια τα πλεονεκτήματα και μειονεκτήματα Διαδικτυακής Προσομοίωσης. 9. Ποιες είναι οι 3 αρχιτεκτονικές που μπορεί να χρησιμοποιηθούν στην Διαδικτυακή Προσομοίωση. 10. Ποια τα πλεονεκτήματα και μειονεκτήματα των Συστημάτων Διαδραστικής Οπτικής Μοντελοποίησης 11. Γιατί είναι εφικτό να προγραμματίσουμε στον υπολογιστή την προσομοίωση ενός συστήματος/μοντέλου αν δεν γνωρίζουμε γλώσσες προγραμματισμού. 5.41
ΑΣΚΗΣΕΙΣ ΕΝΟΤΗΤΑΣ 1. Έστω οι παρακάτω τύποι διαγραμμάτων που αφορούν την προσομοίωση ενός συστήματος/μοντέλου. a. Ποιος είναι ο τύπος του κάθε διαγράμματος? b. Ποιο διάγραμμα είναι καταλληλότερο για προσομοίωση με Συστήματα Διαδραστικής Οπτικής Μοντελοποίησης c. Ποιο διάγραμμα είναι καταλληλότερο για προσομοίωση με κάποια Γενική Γλώσσα Προγραμματισμού Α Β Γ 5.42
ΑΣΚΗΣΕΙΣ ΕΝΟΤΗΤΑΣ 2. Για 1 οντότητα ενός συστήματος δημιουργήθηκε το εικονιζόμενο Διάγραμμα Κύκλου Δραστηριοτήτων του. Ποιες είναι οι ενεργητικές και ποιες οι παθητικές δραστηριότητες. 5.43
ΑΣΚΗΣΕΙΣ ΕΝΟΤΗΤΑΣ 3. Η παρακάτω εικόνα δείχνει το μοντέλο προσομοίωσης ενός συστήματος εξυπηρέτησης τράπεζας στο λογισμικό Διαδραστικής Οπτικής Μοντελοποίησης AnyLogic. a) Ποια είναι τα πλεονεκτήματα της χρήσης του λογισμικού της κατηγορίας σε σχέση με μια γενική γλώσσα προγραμματισμού. b) Ποια είναι τα πλεονεκτήματα της χρήσης του λογισμικού της κατηγορίας σε σχέση με μια γλώσσα Προσομοίωσης. SIMUL ATION 5.44