1 / 40

Βάσεις Γνώσεων

Βάσεις Γνώσεων. Διαγράμματα Ροής Δεδομένων Πάνος Βασιλειάδης pvassil@cs.uoi.gr Μάρτης 200 3. www.cs.uoi.gr/~pvassil/courses/knowledge_bases/. Διαγράμματα Ροής Δεδομένων – DFD’s.

gannon
Download Presentation

Βάσεις Γνώσεων

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. ΒάσειςΓνώσεων Διαγράμματα Ροής Δεδομένων Πάνος Βασιλειάδης pvassil@cs.uoi.grΜάρτης 2003 www.cs.uoi.gr/~pvassil/courses/knowledge_bases/

  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. VALID ISBN ΖΗΤΟΥΜΕΝΟ ISBN Έλεγξε στοιχεία INVALID ISBN Ροές • Μπορεί το ίδιο δεδομένο (όνομα ροής) να μετονομάζεται σε διαφορετικές ροές, διότι απέκτησε άλλη σημασία

  13. Ροές • Μπορεί το ίδιο δεδομένο (όνομα ροής) να αντιγράφεται σε διαφορετικές ροές Process Order ΖΗΤΟΥΜΕΝΟ ISBN Έλεγξε στοιχεία ISBN Log Session

  14. Ροές • Μπορεί το ίδιο δεδομένο (όνομα ροής) να σπάει σε διαφορετικά υποτμήματά του Check Zip ZipCode Incoming Address Check Phone Telephone

  15. Ροές • Ένα DFD δεν επεξηγεί ούτε τη σειρά με την οποία συγχρονίζονται οι ροές, ούτε τη σειρά άφιξης ή αποστολής των πακέτων πληροφορίας • Υπάρχουν συμπληρωματικές τεχνικές και μοντέλα, όπως το λεξικό μεταπληροφορίας και διαγράμματα καταστάσεων που καταγράφουν αυτή την πληροφορία.

  16. Περιεχόμενα • Διαδικασίες • Ροές • Σημεία Αποθήκευσης • Πράκτορες • Οδηγίες Χρήσης

  17. D1 ORDERS ORDERS Σημεία Αποθήκευσης • Σημεία Αποθήκευσης (stores)είναι συλλογές από στατικά δεδομένα (σε αντιπαράθεση με τα δεδομένα των ροών που είναι υπό κίνηση) • Τα δεδομένα μπορεί να είναι είτε ηλεκτρονικά είτε φυσικά αντικείμενα • Απεικονίζονται με δύο παράλληλες γραμμές, αλλά και με αρίθμηση

  18. Σημεία Αποθήκευσης • Τα σημεία αποθήκευσης προκύπτουν είτε από τις απαιτήσεις του χρήστη, είτε από σχεδιαστική απόφαση (οπότε και μπορούν να παραλειφθούν) • Συντακτική ορθότητα για τα σημεία αποθήκευσης: • είτε πηγές για μια ροή, • είτε αποδέκτες μιας ροής

  19. Σημεία Αποθήκευσης • Το όνομα μιας ροής περιγράφει τα δεδομένα που μετακινούνται από/προς ένα σημείο αποθήκευσης σε σχέση • με το αν είναι ένα ή πολλά “records” • με το αν είναι ολόκληρα “records” ή τμήματά τους • Αν η ροή δεν έχει όνομα, ή αν έχει το όνομα του σημείου αποθήκευσης, αφορά ένα ολόκληρο record – αλλιώς πρόκειται για άλλη περίπτωση

  20. Σημεία Αποθήκευσης • Μια ροή από ένα σημείο αποθήκευσης, μόνο διαβάζει και ποτέ δεν το μεταβάλλει • Μια ροή προς ένα σημείο αποθήκευσης, κάνει μια από τις πράξεις INSERT/UPDATE/DELETE. • Τοποια θα είναι αυτή η πράξη φαίνεται μόνο από το όνομα της σχετικής διαδικασίας

  21. Περιεχόμενα • Διαδικασίες • Ροές • Σημεία Αποθήκευσης • Πράκτορες • Οδηγίες Χρήσης

  22. Πράκτορες • Πράκτορες (Terminators)είναι οντότητες εξωτερικές του συστήματος. • Συνήθως αφορά ένα χρήστη ή ένα σύνολο χρηστών ή κάποιο πρόγραμμα – αντίστοιχα με τους actors της UML • Αναπαριστώνται με ένα παραλληλόγραμμο RADAR CONTROL CLIENT TOYS DEPARTMENT

  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. Case Study • Στο 1ο Διάγραμμα Ροής Δεδομένων, διαχωρίζουμε τις διαδικασίες σε (1) Εισαγωγή δεδομένων και (2) Επερώτηση δεδομένων. Για την πρώτη διαδικασία, τα δεδομένα από το SOURCE είτε γίνονται αποδεκτά, είτε παραβιάζουν κάποιυς από τους κανόνες αξιοπιστίας της βάσης και απορρίπτονται. Για την Επερώτηση δεδομένων, η διαδικασία είναι όπως περιγράφηκε προηγουμένως, με την επιπλέον πληροφορία ότι κάθε user session καταγράφεται στη βάση του DW.

  31. Προσοχή στην Αρίθμηση!!

  32. Case Study • Στο διάγραμμα της ροής Επεξεργασίας των δεδομένων (2), η βασική ιδέα είναι ότι (α) τοπικά ο client κάνει μια πρώτη επιβεβαίωση των στοιχείων εισόδου (και τα απορρίπτει ή τα αποδέχεται ανάλογα) και (β) στη διαδικασία 2.1, χρησιμοποιεί τη βάση του DW (accepted data) για να παράγει την αιτούμενη αναφορά και τα αντίστοιχα session data. • Τα νούμερα, π.χ., 1 και 2 δεν παίζουν πάντα ρόλο σε σχέση με τη σειρά εκτέλεσης των διαδικασιών – εν γένει οι διαδικασίες εκτυλίσσονται ΑΣΥΓΧΡΟΝΑ!!

  33. Case Study • ΣΥΝΕΠΕΙΑ: όποιες ροές μπαίνουν ή βγαίνουν στο πιο αδρομερές διάγραμμα, αυτές ακριβώς βρίσκονται και στο λεπτομερές • Δεν χρειάζεται να αναλύσουμε όλες τις DFD’s στο ίδιο βάθος. Π.χ., εδώ θα αναλύσουμε ΜΟΝΟ τη 2.2 και τη 2.1 την αφήνουμε ως έχει. • ΑΠΑΡΑΒΑΤΟΣ ΚΑΝΟΝΑΣ: Η ΑΡΙΘΜΗΣΗ ΤΗΡΕΙΤΑΙ ΕΥΛΑΒΙΚΑ!!

  34. Κι άλλες οδηγίες... • Συνήθως ένα απλό σύστημα έχει 2-3 επίπεδα λεπτομέρειας, ένα μεσαίο σύστημα έχει 3-6 και ένα μεγάλο σύστημα 5 -8. • Στη διάρκεια σχεδίασης, συνήθως χρειάζεται ένα μίγμα από αναλυτική και συνθετική σχεδίαση • Οι εμπλεκόμενοι στο έργο (χρήστες, προγραμματιστές κλπ) κανονικά πρέπει να ενδιαφέρονται το πολύ για ένα με δύο επίπεδα διαγραμμάτων

  35. Κι άλλες οδηγίες... • Αποφασίστε ένα στυλ αισθητικής και κρατήστε το ΜΕ ΣΥΝΕΠΕΙΑ! • Όλα τα διαγράμματα πρέπει να χωράνε σε μια σελίδα • Αποφύγετε (να είστε καχύποπτοιμε): • Διαδικασίες χωρίς output • Διαδικασίες χωρίς output • Ροές χωρίς labels

  36. Κι άλλες οδηγίες... Όπως και στα ER διαγράμματα, τα DFD’s πρέπει να είναι : • Συντακτικώς ορθά • Πλήρη • Ακριβή σε σχέση με τις προδιαγραφές του χρήστη!

  37. Κι άλλες οδηγίες... ... κι επειδή ομιλούμε περί εννοιολογικών διαγραμμάτων, ΤΑ ΟΠΟΙΑ ΕΙΝΑΙ ΜΕΣΑ ΕΠΙΚΟΙΝΩΝΙΑΣ ΓΙΑ ΟΛΟΥΣ ΤΟΥς ΕΜΠΛΕΚΟΜΕΝΟΥΣ πρέπει να είναι • Κατανοητά • Εύκολα στη διαχείριση • Προϊόντα συζήτησης με τους σχετικούς χρήστες...

More Related