Διάγραμμα ροής δεδομένων

Παράδειγμα Διαγράμματος Ροής Δεδομένων.[1]

Ένα διάγραμμα ροής δεδομένων (data-flow diagram ή DFD) είναι μια γραφική αναπαράσταση της "ροής" των δεδομένων διαμέσου ενός πληροφοριακού συστήματος. Τα διαγράμματα αυτά μπορούν να χρησιμοποιηθούν επίσης για οπτικοποίηση της επεξεργασίας των δεδομένων (δομημένη σχεδίαση, structured design).

Σε ένα DFD, τα δεδομένα ρέουν από μια εξωτερική πηγή δεδομένων προς έναν εσωτερικό αποθηκευτικό χώρο δεδομένων ή έναν εξωτερικό προορισμό δεδομένων, μέσω μιας εσωτερικής διεργασίας.

Ένα DFD δεν παρέχει πληροφορίες για το χρονισμό των διεργασιών ή το αν αυτές λειτουργούν ακολουθιακά ή παράλληλα. Είναι επομένως διαφορετικό από ένα διάγραμμα ροής (flowchart), το οποίο δείχνει τη ροή του ελέγχου μέσα σε έναν αλγόριθμο και επιτρέπει στον αναγνώστη να βρίσκει ποιες λειτουργίες θα εκτελεστούν, με ποια σειρά και κάτω από ποιες συνθήκες, αλλά όχι τι είδους δεδομένα θα εισαχθούν και θα εξαχθούν από το σύστημα, ούτε από πού έρχονται τα δεδομένα και προς τα πού κατευθύνονται, ούτε πού αυτά αποθηκεύονται (όλες αυτές οι πληροφορίες εμφανίζονται σε ένα DFD).

Γενικά

Αποτελεί κοινή πρακτική η δημιουργία αρχικά ενός διαγράμματος ροής δεδομένων contexts (system context diagram, context-level data flow diagram), το οποίο να δείχνει την αλληλεπίδραση μεταξύ του συστήματος και των εξωτερικών agents, οι οποίοι λειτουργούν σαν πηγές και προορισμοί δεδομένων. Σε αυτό το διάγραμμα, που είναι γνωστό και σαν 'DFD Επιπέδου 0', οι αλληλεπιδράσεις του συστήματος με τον εξωτερικό κόσμο μοντελοποιούνται αποκλειστικά με βάση τις ροές δεδομένων στο όριο του συστήματος (system boundary). Το διάγραμμα δείχνει όλο το σύστημα σαν μια μοναδική διεργασία και δεν παρέχει πληροφορίες για την εσωτερική του οργάνωση.

Αυτό το DFD σε επίπεδο context DFD στη συνέχεια "εκρήγνυται", για να παράγει ένα DFD Επιπέδου 1, το οποίο δείχνει κάποιες από τις λεπτομέρειες του συστήματος που μοντελοποιείται. Το DFD Επιπέδου 1 δείχνει πώς το σύστημα διαιρείται σε υποσυστήματα (διεργασίες), κάθε ένα από τα οποία χειρίζεται μια ή περισσότερες ροές δεδομένων από ή προς έναν εξωτερικό agent, και τα οποία μαζί παρέχουν τη συνολική λειτουργικότητα του συστήματος. Εμφανίζει επίσης τους εσωτερικούς αποθηκευτικούς χώρους δεδομένων, οι οποίοι πρέπει να υπάρχουν στο σύστημα για να λειτουργεί σωστά, και τη ροή των δεδομένων μεταξύ διάφορων τμημάτων του συστήματος.

Τα διαγράμματα ροής δεδομένων προτάθηκαν από τον Larry Constantine, ο οποίος αρχικά ανέπτυξε τη δομημένη σχεδίαση ,[2] βασισμένος στο υπολογιστικό μοντέλο "γράφος ροής δεδομένων" ("data-flow graph") των Martin και Estrin.

Τα διαγράμματα ροής δεδομένων (DFDs) αποτελούν έναν από τους τρεις βασικούς τρόπους θεώρησης στην ανάλυση δομημένων συστημάτων και στη μέθοδο σχεδίασης SSADM. Ο χορηγός του project και οι τελικοί χρήστες θα πρέπει να ενημερωθούν και οι απόψεις τους να χρησιμοποιηθούν, σε όλα τα στάδια της εξέλιξης ενός συστήματος. Με ένα διάγραμμα ροής δεδομένων, οι χρήστες μπορούν να οπτικοποιήσουν τον τρόπο με τον οποίο το σύστημα θα λειτουργήσει, τι θα μπορεί να επιτύχει, και πώς πρόκειται να αναπτυχθεί. Τα διαγράμματα ροής του παλιού συστήματος μπορούν επίσης να σχεδιαστούν και να συγκριθούν με τα διαγράμματα ροής δεδομένων του νέου συστήματος, για να προκύψουν συγκρίσεις ώστε να υλοποιηθεί ένα καλύτερο σύστημα. Τα διαγράμματα ροής δεδομένων μπορούν να χρησιμοποιηθούν για να δοθεί στον τελικό χρήστη μια ιδέα του πώς τα δεδομένα που αυτός εισάγει επηρεάζουν το συνολικό σύστημα από τις διαταγές (order), στη διεκπεραίωση (dispatch) και στην αναφορά (report). Το πώς αναπτύσσεται ένα σύστημα μπορεί να καθοριστεί από ένα διάγραμμα ροής δεδομένων.

Κατά την ανάπτυξη ενός συνόλου από πολυεπίπεδα (levelled) διαγράμματα ροής δεδομένων, ο αναλυτής/σχεδιαστής πρέπει να ορίσει πώς το σύστημα αποσυντίθεται σε υποσυστήματα από μονάδες (component sub-systems), και να αναγνωρίσει τα δεδομένα συναλλαγών (transaction data) στο μοντέλο δεδομένων.

Υπάρχουν διάφοροι συμβολισμοί να σχεδιαστούν διαγράμματα ροής δεδομένων (Yourdon & Coad και Gane & Sarson[3]), που ορίζουν διαφορετικές οπτικές αναπαραστάσεις για τις διεργασίες, τους αποθηκευτικούς χώρους δεδομένων, τη ροή δεδομένων και τις εξωτερικές οντότητες.[4]

άλλες γλώσσες