Βάσεις Γνώσεων Διαγράμματα Ροής Δεδομένων Πάνος Βασιλειάδης Μάρτης
2 Διαγράμματα Ροής Δεδομένων – DFD’s Εκτός από τη στατική περιγραφή των δεδομένων, όπου καταγράφονται η δομή και οι αλληλοσυσχετίσεις τους, υπάρχει και η δυναμική συμπεριφορά ενός συστήματος Τα διαγράμματα ροής δεδομένων, απεικονίζουν το υπό μοντελοποίηση σύστημα σαν ένα δίκτυο από διαδικασίες που επικοινωνούν Ελληνικά: Dataflow Diagrams (DFD’s)
3 Ένα τυπικό DFD
4 Διαγράμματα Ροής Δεδομένων – DFD’s Τα στοιχεία ενός DFD είναι: Διαδικασίες (processes ή bubbles –φούσκες) Ροές (flows, ή ακμές) Σημεία Αποθήκευσης (store ή δεδομένα) Πράκτορες (ελεύθερη μετάφραση για το terminator)
5 Περιεχόμενα Διαδικασίες Ροές Σημεία Αποθήκευσης Πράκτορες Οδηγίες Χρήσης
6 Περιεχόμενα Διαδικασίες Ροές Σημεία Αποθήκευσης Πράκτορες Οδηγίες Χρήσης
7 Διαδικασίες Διαδικασία (process) είναι ένα τμήμα του συστήματος που μετασχηματίζει εισόδους σε εξόδους. Τα DFD’s είναι προσανατολισμένα στην επεξεργασία των δεδομένων (γι αυτό άλλωστε και μαζί με τα ER διαγράμματα περίπου μονοπωλούσαν τα διαγράμματα ανάλυσης για εφαρμογές βάσεων δεδομένων μέχρι την εμφάνιση της UML)
8 Διαδικασίες Αναπαριστώνται με κύκλο Αριθμώνται (βλ. συνέχεια) Ονοματίζονται με τρόπο που εξηγεί τη λειτουργία τους (συνήθως ρήμα + ουσιαστικό) με τρόπο μονοσήμαντο και σαφή 1. IMPORT DATA
9 Περιεχόμενα Διαδικασίες Ροές Σημεία Αποθήκευσης Πράκτορες Οδηγίες Χρήσης
10 Ροές Ροή (flow) είναι μια μεταβίβαση κομματιών (ή «πακέτων») πληροφορίας από ένα τμήμα του συστήματος σε ένα άλλο. Τα κομμάτια της πληροφορίας είναι συνήθως ηλεκτρονικά (π.χ., records, tuples, ή τμήματα αυτών), αλλά μπορεί να είναι και φυσικά αντικείμενα (π.χ., μια φόρμα που πρέπει να συμπληρώσει κάποιος)
11 Ροές Η ροές περιγράφουν δεδομένα υπό κίνηση Αναπαριστώνται από ακμές, οι οποίες μπορούν (και πρέπει) να έχουν και όνομα Οι ακμές έχουν κατεύθυνση υποχρεωτικά Ακμές διπλής κατεύθυνσης δηλώνουν «διάλογο» ΖΗΤΟΥΜΕΝΟ ISBN ΧΧ ΖΗΤΟΥΜΕΝΟ ISBN ΣΤΟΙΧΕΙΑ ΒΙΒΛΙΟΥ CLIENT
12 Ροές Μπορεί το ίδιο δεδομένο (όνομα ροής) να μετονομάζεται σε διαφορετικές ροές, διότι απέκτησε άλλη σημασία Έλεγξε στοιχεία ΖΗΤΟΥΜΕΝΟ ISBN VALID ISBN INVALID ISBN
13 Ροές Μπορεί το ίδιο δεδομένο (όνομα ροής) να αντιγράφεται σε διαφορετικές ροές Έλεγξε στοιχεία ΖΗΤΟΥΜΕΝΟ ISBN Process Order Log Session
14 Ροές Μπορεί το ίδιο δεδομένο (όνομα ροής) να σπάει σε διαφορετικά υποτμήματά του Incoming Address Check Zip Check Phone Telephone ZipCode
15 Ροές Ένα DFD δεν επεξηγεί ούτε τη σειρά με την οποία συγχρονίζονται οι ροές, ούτε τη σειρά άφιξης ή αποστολής των πακέτων πληροφορίας Υπάρχουν συμπληρωματικές τεχνικές και μοντέλα, όπως το λεξικό μεταπληροφορίας και διαγράμματα καταστάσεων που καταγράφουν αυτή την πληροφορία.
16 Περιεχόμενα Διαδικασίες Ροές Σημεία Αποθήκευσης Πράκτορες Οδηγίες Χρήσης
17 Σημεία Αποθήκευσης Σημεία Αποθήκευσης (stores) είναι συλλογές από στατικά δεδομένα (σε αντιπαράθεση με τα δεδομένα των ροών που είναι υπό κίνηση) Τα δεδομένα μπορεί να είναι είτε ηλεκτρονικά είτε φυσικά αντικείμενα Απεικονίζονται με δύο παράλληλες γραμμές, αλλά και με αρίθμηση ORDERS D1 ORDERS
18 Σημεία Αποθήκευσης Τα σημεία αποθήκευσης προκύπτουν είτε από τις απαιτήσεις του χρήστη, είτε από σχεδιαστική απόφαση (οπότε και μπορούν να παραλειφθούν) Συντακτική ορθότητα για τα σημεία αποθήκευσης: είτε πηγές για μια ροή, είτε αποδέκτες μιας ροής
19 Σημεία Αποθήκευσης Το όνομα μιας ροής περιγράφει τα δεδομένα που μετακινούνται από/προς ένα σημείο αποθήκευσης σε σχέση με το αν είναι ένα ή πολλά “records” με το αν είναι ολόκληρα “records” ή τμήματά τους Αν η ροή δεν έχει όνομα, ή αν έχει το όνομα του σημείου αποθήκευσης, αφορά ένα ολόκληρο record – αλλιώς πρόκειται για άλλη περίπτωση
20 Σημεία Αποθήκευσης Μια ροή από ένα σημείο αποθήκευσης, μόνο διαβάζει και ποτέ δεν το μεταβάλλει Μια ροή προς ένα σημείο αποθήκευσης, κάνει μια από τις πράξεις INSERT/UPDATE/DELETE. Το ποια θα είναι αυτή η πράξη φαίνεται μόνο από το όνομα της σχετικής διαδικασίας
21 Περιεχόμενα Διαδικασίες Ροές Σημεία Αποθήκευσης Πράκτορες Οδηγίες Χρήσης
22 Πράκτορες Πράκτορες (Terminators) είναι οντότητες εξωτερικές του συστήματος. Συνήθως αφορά ένα χρήστη ή ένα σύνολο χρηστών ή κάποιο πρόγραμμα – αντίστοιχα με τους actors της UML Αναπαριστώνται με ένα παραλληλόγραμμο CLIENT TOYS DEPARTMENT RADAR CONTROL
23 Πράκτορες Είναι ΕΞΩΤΕΡΙΚΕΣ οντότητες του συστήματος Ο αναλυτής/σχεδιαστής μπορεί να επηρεάσει τη σχεδίαση των τμημάτων του συστήματος, ΔΕΝ ΜΠΟΡΕΙ ΝΑ ΕΠΗΡΑΣΕΙ ΤΗ ΔΟΜΗ Ή ΤΗ ΣΥΜΠΕΡΙΦΟΡΑ ΤΩΝ ΠΡΑΚΤΟΡΩΝ Οποιαδήποτε σχέση μεταξύ πρακτόρων ΔΕΝ ΜΑΣ ΑΦΟΡΑ (αν μας αφορά, πάει να πει ότι δεν πρόκειται για πράκτορες)
24 Περιεχόμενα Διαδικασίες Ροές Σημεία Αποθήκευσης Πράκτορες Οδηγίες Χρήσης
25 Οδηγίες προς Ναυτιλομένους Διαλέξτε ονόματα με νόημα για διαδικασίες, ροές, σημεία αποθήκευσης και πράκτορες Αριθμήστε τις διαδικασίες Ζωγραφίστε ένα διάγραμμα όσες φορές χρειάζεται (ως συνήθως) Μην ζωγραφίζετε πολύπλοκα DFD’s Το διάγραμμα πρέπει να είναι συντακτικά σωστό, πλήρες και ακριβές
26 Ονοματολογία με νόημα Μια διαδικασία είναι μια λειτουργία πάνω σε κάτι => συνήθως τα ονόματα είναι ρήμα + ουσιαστικό Μη βάζετε κοινότοπα ρήματα / ονόματα (αν δεν έχετε ένα ακριβές όνομα, μάλλον δεν έχετε καταλάβει τι ακριβώς κάνει η διαδικασία) Καλά ονόματα: ΥΠΟΛΟΓΙΣΕ ΠΟΡΕΙΑ ΒΛΗΜΑΤΟΣ, ΕΠΙΚΥΡΩΣΕ ΖΙΡ Κακά ονόματα: ΚΑΝΕ ΠΡΑΜΑΤΑ, ΚΑΝΕ ΚΑΤΙ ΜΕ ΤΟ INPUT, PROCESS DATA
27 Σύνθετα DFD’s Ένα DFD εν γένει αναλύεται σε πιο λεπτομερή DFD’s Η αρίθμηση των DFD’s ακριβώς αυτό επιδιώκει ΔΕΝ βάζουμε παραπάνω από 5-6 διαδικασίες σε ένα διάγραμμα (αν ναι, συνήθως αυτό σημαίνει ότι πρέπει να αναλύσουμε το διάγραμμα κι άλλο)
28 Context DFD Το πρώτο (= ελάχιστα λεπτομερές) DFD λέγεται και context DFD και περιγράφει με μία διαδικασία ΟΛΟ το σύστημα και ΟΛΟΥΣ τους πράκτορες
29 Case Study Ο οργανισμός Ψ αποφάσισε να φτιάξει ένα Data Warehouse (DW), που θα αποκτά στοιχεία από υπάρχουσες εφαρμογές COBOL, τις οποίες διαχειρίζεται ήδη το σύστημα SOURCE. Τα στοιχεία αυτά θα έρχονται στη βάση δεδομένων του Ψ με απλή μεταφορά αρχείων. Ο Ψ αποφάσισε την ανάπτυξη εφαρμογής, που θα παρέχει πιστοποιητικά όπως Π1, Π2,..., στους χρήστες (clients), στα οποία στο εξής θα αναφερόμαστε και με τον ισοδύναμο όρο 'αναφορές‘ ΧΧΧ είναι το περιεχόμενο των δεδομένων
30
31 Case Study Στο 1ο Διάγραμμα Ροής Δεδομένων, διαχωρίζουμε τις διαδικασίες σε (1) Εισαγωγή δεδομένων και (2) Επερώτηση δεδομένων. Για την πρώτη διαδικασία, τα δεδομένα από το SOURCE είτε γίνονται αποδεκτά, είτε παραβιάζουν κάποιυς από τους κανόνες αξιοπιστίας της βάσης και απορρίπτονται. Για την Επερώτηση δεδομένων, η διαδικασία είναι όπως περιγράφηκε προηγουμένως, με την επιπλέον πληροφορία ότι κάθε user session καταγράφεται στη βάση του DW.
32 Προσοχή στην Αρίθμηση!!
33 Case Study Στο διάγραμμα της ροής Επεξεργασίας των δεδομένων (2), η βασική ιδέα είναι ότι (α) τοπικά ο client κάνει μια πρώτη επιβεβαίωση των στοιχείων εισόδου (και τα απορρίπτει ή τα αποδέχεται ανάλογα) και (β) στη διαδικασία 2.1, χρησιμοποιεί τη βάση του DW (accepted data) για να παράγει την αιτούμενη αναφορά και τα αντίστοιχα session data. Τα νούμερα, π.χ., 1 και 2 δεν παίζουν πάντα ρόλο σε σχέση με τη σειρά εκτέλεσης των διαδικασιών – εν γένει οι διαδικασίες εκτυλίσσονται ΑΣΥΓΧΡΟΝΑ!!
34
35 Case Study ΣΥΝΕΠΕΙΑ: όποιες ροές μπαίνουν ή βγαίνουν στο πιο αδρομερές διάγραμμα, αυτές ακριβώς βρίσκονται και στο λεπτομερές Δεν χρειάζεται να αναλύσουμε όλες τις DFD’s στο ίδιο βάθος. Π.χ., εδώ θα αναλύσουμε ΜΟΝΟ τη 2.2 και τη 2.1 την αφήνουμε ως έχει. ΑΠΑΡΑΒΑΤΟΣ ΚΑΝΟΝΑΣ: Η ΑΡΙΘΜΗΣΗ ΤΗΡΕΙΤΑΙ ΕΥΛΑΒΙΚΑ!!
36
37 Κι άλλες οδηγίες... Συνήθως ένα απλό σύστημα έχει 2-3 επίπεδα λεπτομέρειας, ένα μεσαίο σύστημα έχει 3-6 και ένα μεγάλο σύστημα Στη διάρκεια σχεδίασης, συνήθως χρειάζεται ένα μίγμα από αναλυτική και συνθετική σχεδίαση Οι εμπλεκόμενοι στο έργο (χρήστες, προγραμματιστές κλπ) κανονικά πρέπει να ενδιαφέρονται το πολύ για ένα με δύο επίπεδα διαγραμμάτων
38 Κι άλλες οδηγίες... Αποφασίστε ένα στυλ αισθητικής και κρατήστε το ΜΕ ΣΥΝΕΠΕΙΑ! Όλα τα διαγράμματα πρέπει να χωράνε σε μια σελίδα Αποφύγετε (να είστε καχύποπτοι με): Διαδικασίες χωρίς output Ροές χωρίς labels
39 Κι άλλες οδηγίες... Όπως και στα ER διαγράμματα, τα DFD’s πρέπει να είναι : Συντακτικώς ορθά Πλήρη Ακριβή σε σχέση με τις προδιαγραφές του χρήστη!
40 Κι άλλες οδηγίες κι επειδή ομιλούμε περί εννοιολογικών διαγραμμάτων, ΤΑ ΟΠΟΙΑ ΕΙΝΑΙ ΜΕΣΑ ΕΠΙΚΟΙΝΩΝΙΑΣ ΓΙΑ ΟΛΟΥΣ ΤΟΥς ΕΜΠΛΕΚΟΜΕΝΟΥΣ πρέπει να είναι Κατανοητά Εύκολα στη διαχείριση Προϊόντα συζήτησης με τους σχετικούς χρήστες...