Βάσεις Γνώσεων
description
Transcript of Βάσεις Γνώσεων
Βάσεις Γνώσεων
Διαγράμματα Ροής ΔεδομένωνΠάνος Βασιλειάδης
[email protected] Μάρτης 2003
www.cs.uoi.gr/~pvassil/courses/knowledge_bases/
2
Διαγράμματα Ροής Δεδομένων – DFD’s
Εκτός από τη στατική περιγραφή των δεδομένων, όπου καταγράφονται η δομή και οι αλληλοσυσχετίσεις τους, υπάρχει και η δυναμική συμπεριφορά ενός συστήματος
Τα διαγράμματα ροής δεδομένων, απεικονίζουν το υπό μοντελοποίηση σύστημα σαν ένα δίκτυο από διαδικασίες που επικοινωνούν
Ελληνικά: Dataflow Diagrams (DFD’s)
3
Ένα τυπικό DFD
STAKEHOLDERXXX
XXX DATA
1.
IMPORTXXX DATA
REJECTEDDATA
ACCEPTEDDATA
CLIENT
2.
PROCESSPARAMETERS
CERTIFICATE PARAMETERS
RESPONSE
SESSIONDATA
1ο ΔΙΑΓΡΑΜΜΑ ΡΟΗΣ ΔΕΔΟΜΕΝΩΝ ΓΙΑ ΤΟ ΣΥΣΤΗΜΑ ΦΟΡΤΩΣΗΣ ΚΑΙΕΠΕΡΩΤΗΣΗΣ ΔΕΔΟΜΕΝΩΝ
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
VALIDISBN
INVALIDISBN
13
Ροές
Μπορεί το ίδιο δεδομένο (όνομα ροής) να αντιγράφεται σε διαφορετικές ροές
Έλεγξε στοιχεία
ΖΗΤΟΥΜΕΝΟ ISBN
ISBN
Process Order
Log Session
14
Ροές
Μπορεί το ίδιο δεδομένο (όνομα ροής) να σπάει σε διαφορετικά υποτμήματά του
Incoming Address
CheckZip
CheckPhone
Telephone
ZipCode
15
Ροές
Ένα DFD δεν επεξηγεί ούτε τη σειρά με την οποία συγχρονίζονται οι ροές, ούτε τη σειρά άφιξης ή αποστολής των πακέτων πληροφορίας
Υπάρχουν συμπληρωματικές τεχνικές και μοντέλα, όπως το λεξικό μεταπληροφορίας και διαγράμματα καταστάσεων που καταγράφουν αυτή την πληροφορία.
16
Περιεχόμενα
Διαδικασίες
Ροές
Σημεία Αποθήκευσης
Πράκτορες
Οδηγίες Χρήσης
17
Σημεία Αποθήκευσης
Σημεία Αποθήκευσης (stores) είναι συλλογές από στατικά δεδομένα (σε αντιπαράθεση με τα δεδομένα των ροών που είναι υπό κίνηση)
Τα δεδομένα μπορεί να είναι είτε ηλεκτρονικά είτε φυσικά αντικείμενα
Απεικονίζονται με δύο παράλληλες γραμμές, αλλά και με αρίθμηση
ORDERSD1ORDERS
18
Σημεία Αποθήκευσης
Τα σημεία αποθήκευσης προκύπτουν είτε από τις απαιτήσεις του χρήστη, είτε από σχεδιαστική απόφαση (οπότε και μπορούν να παραλειφθούν)
Συντακτική ορθότητα για τα σημεία αποθήκευσης:είτε πηγές για μια ροή,
είτε αποδέκτες μιας ροής
19
Σημεία Αποθήκευσης
Το όνομα μιας ροής περιγράφει τα δεδομένα που μετακινούνται από/προς ένα σημείο αποθήκευσης σε σχέση
με το αν είναι ένα ή πολλά “records”
με το αν είναι ολόκληρα “records” ή τμήματά τους
Αν η ροή δεν έχει όνομα, ή αν έχει το όνομα του σημείου αποθήκευσης, αφορά ένα ολόκληρο record – αλλιώς πρόκειται για άλλη περίπτωση
20
Σημεία Αποθήκευσης
Μια ροή από ένα σημείο αποθήκευσης, μόνο διαβάζει και ποτέ δεν το μεταβάλλει
Μια ροή προς ένα σημείο αποθήκευσης, κάνει μια από τις πράξεις INSERT/UPDATE/DELETE.
Το ποια θα είναι αυτή η πράξη φαίνεται μόνο από το όνομα της σχετικής διαδικασίας
21
Περιεχόμενα
Διαδικασίες
Ροές
Σημεία Αποθήκευσης
Πράκτορες
Οδηγίες Χρήσης
22
Πράκτορες
Πράκτορες (Terminators) είναι οντότητες εξωτερικές του συστήματος.
Συνήθως αφορά ένα χρήστη ή ένα σύνολο χρηστών ή κάποιο πρόγραμμα – αντίστοιχα με τους actors της UML
Αναπαριστώνται με ένα παραλληλόγραμμο
CLIENTTOYS
DEPARTMENTRADAR
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
DWSOURCE
CLIENT
ΔΕΔΟΜΕΝΑ XXX
ΠΙΣΤΟΠΟΙΗΤΙΚΟ XXX
ΣΤΟΙΧΕΙΑ XXX
CONTEXT DIAGRAM ΤΗΣ ΕΦΑΡΜΟΓΗΣ
31
Case Study
Στο 1ο Διάγραμμα Ροής Δεδομένων, διαχωρίζουμε τις διαδικασίες σε (1) Εισαγωγή δεδομένων και (2) Επερώτηση δεδομένων. Για την πρώτη διαδικασία, τα δεδομένα από το SOURCE είτε γίνονται αποδεκτά, είτε παραβιάζουν κάποιυς από τους κανόνες αξιοπιστίας της βάσης και απορρίπτονται. Για την Επερώτηση δεδομένων, η διαδικασία είναι όπως περιγράφηκε προηγουμένως, με την επιπλέον πληροφορία ότι κάθε user session καταγράφεται στη βάση του DW.
32
STAKEHOLDERXXX
XXX DATA
1.
IMPORTXXX DATA
REJECTEDDATA
ACCEPTEDDATA
CLIENT
2.
PROCESSPARAMETERS
CERTIFICATE PARAMETERS
RESPONSE
SESSIONDATA
1ο ΔΙΑΓΡΑΜΜΑ ΡΟΗΣ ΔΕΔΟΜΕΝΩΝ ΓΙΑ ΤΟ ΣΥΣΤΗΜΑ ΦΟΡΤΩΣΗΣ ΚΑΙΕΠΕΡΩΤΗΣΗΣ ΔΕΔΟΜΕΝΩΝ
Προσοχή στην Αρίθμηση!!
33
Case Study
Στο διάγραμμα της ροής Επεξεργασίας των δεδομένων (2), η βασική ιδέα είναι ότι (α) τοπικά ο client κάνει μια πρώτη επιβεβαίωση των στοιχείων εισόδου (και τα απορρίπτει ή τα αποδέχεται ανάλογα) και (β) στη διαδικασία 2.1, χρησιμοποιεί τη βάση του DW (accepted data) για να παράγει την αιτούμενη αναφορά και τα αντίστοιχα session data.
Τα νούμερα, π.χ., 1 και 2 δεν παίζουν πάντα ρόλο σε σχέση με τη σειρά εκτέλεσης των διαδικασιών – εν γένει οι διαδικασίες εκτυλίσσονται ΑΣΥΓΧΡΟΝΑ!!
34
ΔΙΑΓΡΑΜΜΑ ΡΟΗΣ ΤΗΣ ΔΙΑΔΙΚΑΣΙΑΣ (2) PROCESS PARAMETERS
CERTIFICATEPARAMETERS
2.1
VALIDATEPARAMETERS
REJECTEDPARAMETERS
RESPONSE
VALID PARAMETERS
2.2
GENERATECERTIFICATE
CERTIFICATE DATARESPONSE
ACCEPTED DATA
SESSION DATA
35
Case Study
ΣΥΝΕΠΕΙΑ: όποιες ροές μπαίνουν ή βγαίνουν στο πιο αδρομερές διάγραμμα, αυτές ακριβώς βρίσκονται και στο λεπτομερές
Δεν χρειάζεται να αναλύσουμε όλες τις DFD’s στο ίδιο βάθος. Π.χ., εδώ θα αναλύσουμε ΜΟΝΟ τη 2.2 και τη 2.1 την αφήνουμε ως έχει.
ΑΠΑΡΑΒΑΤΟΣ ΚΑΝΟΝΑΣ: Η ΑΡΙΘΜΗΣΗ ΤΗΡΕΙΤΑΙ ΕΥΛΑΒΙΚΑ!!
36
ΔΙΑΓΡΑΜΜΑ ΡΟΗΣ ΤΗΣ ΔΙΑΔΙΚΑΣΙΑΣ (2.2) GENERATE CERTIFICATE
2.2.1CALCULATECERTIFICATE
FIELDS
VALIDPARAMETERS
CERTIFICATESPECS
CERTIFICATE
FIELDS
2.2.2
GENERATEREPORT
CERTIFICATEDATA
XXX DATA
CERTIFICATE FORMAT
CERTIFICATE DATARESPONSE
SESSION DATA
37
Κι άλλες οδηγίες...
Συνήθως ένα απλό σύστημα έχει 2-3 επίπεδα λεπτομέρειας, ένα μεσαίο σύστημα έχει 3-6 και ένα μεγάλο σύστημα 5 -8.
Στη διάρκεια σχεδίασης, συνήθως χρειάζεται ένα μίγμα από αναλυτική και συνθετική σχεδίαση
Οι εμπλεκόμενοι στο έργο (χρήστες, προγραμματιστές κλπ) κανονικά πρέπει να ενδιαφέρονται το πολύ για ένα με δύο επίπεδα διαγραμμάτων
38
Κι άλλες οδηγίες...
Αποφασίστε ένα στυλ αισθητικής και κρατήστε το ΜΕ ΣΥΝΕΠΕΙΑ!
Όλα τα διαγράμματα πρέπει να χωράνε σε μια σελίδα
Αποφύγετε (να είστε καχύποπτοι με):Διαδικασίες χωρίς output
Διαδικασίες χωρίς output
Ροές χωρίς labels
39
Κι άλλες οδηγίες...
Όπως και στα ER διαγράμματα, τα DFD’s πρέπει να είναι :
Συντακτικώς ορθά
Πλήρη
Ακριβή
σε σχέση με τις προδιαγραφές του χρήστη!
40
Κι άλλες οδηγίες...
... κι επειδή ομιλούμε περί εννοιολογικών διαγραμμάτων, ΤΑ ΟΠΟΙΑ ΕΙΝΑΙ ΜΕΣΑ ΕΠΙΚΟΙΝΩΝΙΑΣ ΓΙΑ ΟΛΟΥΣ ΤΟΥς ΕΜΠΛΕΚΟΜΕΝΟΥΣ πρέπει να είναι
Κατανοητά
Εύκολα στη διαχείριση
Προϊόντα συζήτησης με τους σχετικούς χρήστες...