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

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

description

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

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

Page 1: Βάσεις Γνώσεων

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

Διαγράμματα Ροής ΔεδομένωνΠάνος Βασιλειάδης

[email protected] Μάρτης 2003

www.cs.uoi.gr/~pvassil/courses/knowledge_bases/

Page 2: Βάσεις Γνώσεων

2

Διαγράμματα Ροής Δεδομένων – DFD’s

Εκτός από τη στατική περιγραφή των δεδομένων, όπου καταγράφονται η δομή και οι αλληλοσυσχετίσεις τους, υπάρχει και η δυναμική συμπεριφορά ενός συστήματος

Τα διαγράμματα ροής δεδομένων, απεικονίζουν το υπό μοντελοποίηση σύστημα σαν ένα δίκτυο από διαδικασίες που επικοινωνούν

Ελληνικά: Dataflow Diagrams (DFD’s)

Page 3: Βάσεις Γνώσεων

3

Ένα τυπικό DFD

STAKEHOLDERXXX

XXX DATA

1.

IMPORTXXX DATA

REJECTEDDATA

ACCEPTEDDATA

CLIENT

2.

PROCESSPARAMETERS

CERTIFICATE PARAMETERS

RESPONSE

SESSIONDATA

1ο ΔΙΑΓΡΑΜΜΑ ΡΟΗΣ ΔΕΔΟΜΕΝΩΝ ΓΙΑ ΤΟ ΣΥΣΤΗΜΑ ΦΟΡΤΩΣΗΣ ΚΑΙΕΠΕΡΩΤΗΣΗΣ ΔΕΔΟΜΕΝΩΝ

Page 4: Βάσεις Γνώσεων

4

Διαγράμματα Ροής Δεδομένων – DFD’s

Τα στοιχεία ενός DFD είναι:Διαδικασίες (processes ή bubbles –φούσκες)

Ροές (flows, ή ακμές)

Σημεία Αποθήκευσης (store ή δεδομένα)

Πράκτορες (ελεύθερη μετάφραση για το terminator)

Page 5: Βάσεις Γνώσεων

5

Περιεχόμενα

Διαδικασίες

Ροές

Σημεία Αποθήκευσης

Πράκτορες

Οδηγίες Χρήσης

Page 6: Βάσεις Γνώσεων

6

Περιεχόμενα

Διαδικασίες

Ροές

Σημεία Αποθήκευσης

Πράκτορες

Οδηγίες Χρήσης

Page 7: Βάσεις Γνώσεων

7

Διαδικασίες

Διαδικασία (process) είναι ένα τμήμα του συστήματος που μετασχηματίζει εισόδους σε εξόδους.

Τα DFD’s είναι προσανατολισμένα στην επεξεργασία των δεδομένων (γι αυτό άλλωστε και μαζί με τα ER διαγράμματα περίπου μονοπωλούσαν τα διαγράμματα ανάλυσης για εφαρμογές βάσεων δεδομένων μέχρι την εμφάνιση της UML)

Page 8: Βάσεις Γνώσεων

8

Διαδικασίες

Αναπαριστώνται με κύκλο

Αριθμώνται (βλ. συνέχεια)

Ονοματίζονται με τρόπο που εξηγεί τη λειτουργία τους (συνήθως ρήμα + ουσιαστικό) με τρόπο μονοσήμαντο και σαφή

1.

IMPORT DATA

Page 9: Βάσεις Γνώσεων

9

Περιεχόμενα

Διαδικασίες

Ροές

Σημεία Αποθήκευσης

Πράκτορες

Οδηγίες Χρήσης

Page 10: Βάσεις Γνώσεων

10

Ροές

Ροή (flow) είναι μια μεταβίβαση κομματιών (ή «πακέτων») πληροφορίας από ένα τμήμα του συστήματος σε ένα άλλο.

Τα κομμάτια της πληροφορίας είναι συνήθως ηλεκτρονικά (π.χ., records, tuples, ή τμήματα αυτών), αλλά μπορεί να είναι και φυσικά αντικείμενα (π.χ., μια φόρμα που πρέπει να συμπληρώσει κάποιος)

Page 11: Βάσεις Γνώσεων

11

Ροές

Η ροές περιγράφουν δεδομένα υπό κίνηση

Αναπαριστώνται από ακμές, οι οποίες μπορούν (και πρέπει) να έχουν και όνομα

Οι ακμές έχουν κατεύθυνση υποχρεωτικά

Ακμές διπλής κατεύθυνσης δηλώνουν «διάλογο»

ΖΗΤΟΥΜΕΝΟ ISBN

ΧΧ

ΖΗΤΟΥΜΕΝΟ ISBN

ΣΤΟΙΧΕΙΑ ΒΙΒΛΙΟΥ

CLIENT

Page 12: Βάσεις Γνώσεων

12

Ροές

Μπορεί το ίδιο δεδομένο (όνομα ροής) να μετονομάζεται σε διαφορετικές ροές, διότι απέκτησε άλλη σημασία

Έλεγξε στοιχεία

ΖΗΤΟΥΜΕΝΟ ISBN

VALIDISBN

INVALIDISBN

Page 13: Βάσεις Γνώσεων

13

Ροές

Μπορεί το ίδιο δεδομένο (όνομα ροής) να αντιγράφεται σε διαφορετικές ροές

Έλεγξε στοιχεία

ΖΗΤΟΥΜΕΝΟ ISBN

ISBN

Process Order

Log Session

Page 14: Βάσεις Γνώσεων

14

Ροές

Μπορεί το ίδιο δεδομένο (όνομα ροής) να σπάει σε διαφορετικά υποτμήματά του

Incoming Address

CheckZip

CheckPhone

Telephone

ZipCode

Page 15: Βάσεις Γνώσεων

15

Ροές

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

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

Page 16: Βάσεις Γνώσεων

16

Περιεχόμενα

Διαδικασίες

Ροές

Σημεία Αποθήκευσης

Πράκτορες

Οδηγίες Χρήσης

Page 17: Βάσεις Γνώσεων

17

Σημεία Αποθήκευσης

Σημεία Αποθήκευσης (stores) είναι συλλογές από στατικά δεδομένα (σε αντιπαράθεση με τα δεδομένα των ροών που είναι υπό κίνηση)

Τα δεδομένα μπορεί να είναι είτε ηλεκτρονικά είτε φυσικά αντικείμενα

Απεικονίζονται με δύο παράλληλες γραμμές, αλλά και με αρίθμηση

ORDERSD1ORDERS

Page 18: Βάσεις Γνώσεων

18

Σημεία Αποθήκευσης

Τα σημεία αποθήκευσης προκύπτουν είτε από τις απαιτήσεις του χρήστη, είτε από σχεδιαστική απόφαση (οπότε και μπορούν να παραλειφθούν)

Συντακτική ορθότητα για τα σημεία αποθήκευσης:είτε πηγές για μια ροή,

είτε αποδέκτες μιας ροής

Page 19: Βάσεις Γνώσεων

19

Σημεία Αποθήκευσης

Το όνομα μιας ροής περιγράφει τα δεδομένα που μετακινούνται από/προς ένα σημείο αποθήκευσης σε σχέση

με το αν είναι ένα ή πολλά “records”

με το αν είναι ολόκληρα “records” ή τμήματά τους

Αν η ροή δεν έχει όνομα, ή αν έχει το όνομα του σημείου αποθήκευσης, αφορά ένα ολόκληρο record – αλλιώς πρόκειται για άλλη περίπτωση

Page 20: Βάσεις Γνώσεων

20

Σημεία Αποθήκευσης

Μια ροή από ένα σημείο αποθήκευσης, μόνο διαβάζει και ποτέ δεν το μεταβάλλει

Μια ροή προς ένα σημείο αποθήκευσης, κάνει μια από τις πράξεις INSERT/UPDATE/DELETE.

Το ποια θα είναι αυτή η πράξη φαίνεται μόνο από το όνομα της σχετικής διαδικασίας

Page 21: Βάσεις Γνώσεων

21

Περιεχόμενα

Διαδικασίες

Ροές

Σημεία Αποθήκευσης

Πράκτορες

Οδηγίες Χρήσης

Page 22: Βάσεις Γνώσεων

22

Πράκτορες

Πράκτορες (Terminators) είναι οντότητες εξωτερικές του συστήματος.

Συνήθως αφορά ένα χρήστη ή ένα σύνολο χρηστών ή κάποιο πρόγραμμα – αντίστοιχα με τους actors της UML

Αναπαριστώνται με ένα παραλληλόγραμμο

CLIENTTOYS

DEPARTMENTRADAR

CONTROL

Page 23: Βάσεις Γνώσεων

23

Πράκτορες

Είναι ΕΞΩΤΕΡΙΚΕΣ οντότητες του συστήματος

Ο αναλυτής/σχεδιαστής μπορεί να επηρεάσει τη σχεδίαση των τμημάτων του συστήματος, ΔΕΝ ΜΠΟΡΕΙ ΝΑ ΕΠΗΡΑΣΕΙ ΤΗ ΔΟΜΗ Ή ΤΗ ΣΥΜΠΕΡΙΦΟΡΑ ΤΩΝ ΠΡΑΚΤΟΡΩΝ

Οποιαδήποτε σχέση μεταξύ πρακτόρων ΔΕΝ ΜΑΣ ΑΦΟΡΑ (αν μας αφορά, πάει να πει ότι δεν πρόκειται για πράκτορες)

Page 24: Βάσεις Γνώσεων

24

Περιεχόμενα

Διαδικασίες

Ροές

Σημεία Αποθήκευσης

Πράκτορες

Οδηγίες Χρήσης

Page 25: Βάσεις Γνώσεων

25

Οδηγίες προς Ναυτιλομένους

Διαλέξτε ονόματα με νόημα για διαδικασίες, ροές, σημεία αποθήκευσης και πράκτορες

Αριθμήστε τις διαδικασίες

Ζωγραφίστε ένα διάγραμμα όσες φορές χρειάζεται (ως συνήθως)

Μην ζωγραφίζετε πολύπλοκα DFD’s

Το διάγραμμα πρέπει να είναι συντακτικά σωστό, πλήρες και ακριβές

Page 26: Βάσεις Γνώσεων

26

Ονοματολογία με νόημα

Μια διαδικασία είναι μια λειτουργία πάνω σε κάτι => συνήθως τα ονόματα είναι ρήμα + ουσιαστικό

Μη βάζετε κοινότοπα ρήματα / ονόματα (αν δεν έχετε ένα ακριβές όνομα, μάλλον δεν έχετε καταλάβει τι ακριβώς κάνει η διαδικασία)

Καλά ονόματα: ΥΠΟΛΟΓΙΣΕ ΠΟΡΕΙΑ ΒΛΗΜΑΤΟΣ, ΕΠΙΚΥΡΩΣΕ ΖΙΡ

Κακά ονόματα: ΚΑΝΕ ΠΡΑΜΑΤΑ, ΚΑΝΕ ΚΑΤΙ ΜΕ ΤΟ INPUT, PROCESS DATA

Page 27: Βάσεις Γνώσεων

27

Σύνθετα DFD’s

Ένα DFD εν γένει αναλύεται σε πιο λεπτομερή DFD’s

Η αρίθμηση των DFD’s ακριβώς αυτό επιδιώκει

ΔΕΝ βάζουμε παραπάνω από 5-6 διαδικασίες σε ένα διάγραμμα (αν ναι, συνήθως αυτό σημαίνει ότι πρέπει να αναλύσουμε το διάγραμμα κι άλλο)

Page 28: Βάσεις Γνώσεων

28

Context DFD

Το πρώτο (= ελάχιστα λεπτομερές) DFD λέγεται και context DFD και περιγράφει με μία διαδικασία ΟΛΟ το σύστημα και ΟΛΟΥΣ τους πράκτορες

Page 29: Βάσεις Γνώσεων

29

Case Study

Ο οργανισμός Ψ αποφάσισε να φτιάξει ένα Data Warehouse (DW), που θα αποκτά στοιχεία από υπάρχουσες εφαρμογές COBOL, τις οποίες διαχειρίζεται ήδη το σύστημα SOURCE. Τα στοιχεία αυτά θα έρχονται στη βάση δεδομένων του Ψ με απλή μεταφορά αρχείων.

Ο Ψ αποφάσισε την ανάπτυξη εφαρμογής, που θα παρέχει πιστοποιητικά όπως Π1, Π2, ..., στους χρήστες (clients), στα οποία στο εξής θα αναφερόμαστε και με τον ισοδύναμο όρο 'αναφορές‘

ΧΧΧ είναι το περιεχόμενο των δεδομένων

Page 30: Βάσεις Γνώσεων

30

DWSOURCE

CLIENT

ΔΕΔΟΜΕΝΑ XXX

ΠΙΣΤΟΠΟΙΗΤΙΚΟ XXX

ΣΤΟΙΧΕΙΑ XXX

CONTEXT DIAGRAM ΤΗΣ ΕΦΑΡΜΟΓΗΣ

Page 31: Βάσεις Γνώσεων

31

Case Study

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

Page 32: Βάσεις Γνώσεων

32

STAKEHOLDERXXX

XXX DATA

1.

IMPORTXXX DATA

REJECTEDDATA

ACCEPTEDDATA

CLIENT

2.

PROCESSPARAMETERS

CERTIFICATE PARAMETERS

RESPONSE

SESSIONDATA

1ο ΔΙΑΓΡΑΜΜΑ ΡΟΗΣ ΔΕΔΟΜΕΝΩΝ ΓΙΑ ΤΟ ΣΥΣΤΗΜΑ ΦΟΡΤΩΣΗΣ ΚΑΙΕΠΕΡΩΤΗΣΗΣ ΔΕΔΟΜΕΝΩΝ

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

Page 33: Βάσεις Γνώσεων

33

Case Study

Στο διάγραμμα της ροής Επεξεργασίας των δεδομένων (2), η βασική ιδέα είναι ότι (α) τοπικά ο client κάνει μια πρώτη επιβεβαίωση των στοιχείων εισόδου (και τα απορρίπτει ή τα αποδέχεται ανάλογα) και (β) στη διαδικασία 2.1, χρησιμοποιεί τη βάση του DW (accepted data) για να παράγει την αιτούμενη αναφορά και τα αντίστοιχα session data.

Τα νούμερα, π.χ., 1 και 2 δεν παίζουν πάντα ρόλο σε σχέση με τη σειρά εκτέλεσης των διαδικασιών – εν γένει οι διαδικασίες εκτυλίσσονται ΑΣΥΓΧΡΟΝΑ!!

Page 34: Βάσεις Γνώσεων

34

ΔΙΑΓΡΑΜΜΑ ΡΟΗΣ ΤΗΣ ΔΙΑΔΙΚΑΣΙΑΣ (2) PROCESS PARAMETERS

CERTIFICATEPARAMETERS

2.1

VALIDATEPARAMETERS

REJECTEDPARAMETERS

RESPONSE

VALID PARAMETERS

2.2

GENERATECERTIFICATE

CERTIFICATE DATARESPONSE

ACCEPTED DATA

SESSION DATA

Page 35: Βάσεις Γνώσεων

35

Case Study

ΣΥΝΕΠΕΙΑ: όποιες ροές μπαίνουν ή βγαίνουν στο πιο αδρομερές διάγραμμα, αυτές ακριβώς βρίσκονται και στο λεπτομερές

Δεν χρειάζεται να αναλύσουμε όλες τις DFD’s στο ίδιο βάθος. Π.χ., εδώ θα αναλύσουμε ΜΟΝΟ τη 2.2 και τη 2.1 την αφήνουμε ως έχει.

ΑΠΑΡΑΒΑΤΟΣ ΚΑΝΟΝΑΣ: Η ΑΡΙΘΜΗΣΗ ΤΗΡΕΙΤΑΙ ΕΥΛΑΒΙΚΑ!!

Page 36: Βάσεις Γνώσεων

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

Page 37: Βάσεις Γνώσεων

37

Κι άλλες οδηγίες...

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

Στη διάρκεια σχεδίασης, συνήθως χρειάζεται ένα μίγμα από αναλυτική και συνθετική σχεδίαση

Οι εμπλεκόμενοι στο έργο (χρήστες, προγραμματιστές κλπ) κανονικά πρέπει να ενδιαφέρονται το πολύ για ένα με δύο επίπεδα διαγραμμάτων

Page 38: Βάσεις Γνώσεων

38

Κι άλλες οδηγίες...

Αποφασίστε ένα στυλ αισθητικής και κρατήστε το ΜΕ ΣΥΝΕΠΕΙΑ!

Όλα τα διαγράμματα πρέπει να χωράνε σε μια σελίδα

Αποφύγετε (να είστε καχύποπτοι με):Διαδικασίες χωρίς output

Διαδικασίες χωρίς output

Ροές χωρίς labels

Page 39: Βάσεις Γνώσεων

39

Κι άλλες οδηγίες...

Όπως και στα ER διαγράμματα, τα DFD’s πρέπει να είναι :

Συντακτικώς ορθά

Πλήρη

Ακριβή

σε σχέση με τις προδιαγραφές του χρήστη!

Page 40: Βάσεις Γνώσεων

40

Κι άλλες οδηγίες...

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

Κατανοητά

Εύκολα στη διαχείριση

Προϊόντα συζήτησης με τους σχετικούς χρήστες...