Een data flowchart is een diagram dat een grafische omschrijving van informatiestromen tussen verschillende entiteiten van een systeem.
Een data flow blijkt dus te bestaan uit de volgende onderdelen:
Figuur 1 de grafische weergave van de verschillende onderdelen van
een DFD
De hier getoonde symbolen voor een DFD is niet gestandaardiseerd. Het komt dan ook regelmatig voor dat andere symbolen voor de verschillende onderdelen worden gebruikt. In de voorbeelden zal dit ook duidelijk te zien zijn. In onderstaand figuur 2, staat een abstract voorbeeld van een DFD. We zien processen 1 & 2, een entiteit source S en een Data Store F.
Figuur 2 een abstracte DFD
Data flowcharts worden vooral gebruikt door software specialisten
om systemen te kunnen omschrijven en ontwerpen. De meeste systemen zijn
zo complex, dat de data flowcharts vaak gebaseerd zijn op extreem abstracte
concepten. Dit maakt een omschrijving van een data flow ook zo lastig.
Vaak worden er ook voor de verschillende entiteiten meerdere abstractieniveaus
onderscheiden, een entiteit in de ene data flowchart is een compleet systeem
in de volgende data flowchart. Een entiteit wordt vaak als een black box
gezien, je weet wat erin moet en wat er uit zal moeten komen, hoe het gebeurd
is niet interessant. Een data flowchart buit deze eigenschap uit, door
meerdere abstractie niveaus te kunnen visualiseren, zonder het overzicht
te verliezen.
Door de verschillende abstractieniveaus zal een boom ontstaan van data
flow diagrams (DFD). Bovenaan in de boom (de wortel) staat een speciaal
type DFD de context diagram (zie figuur 3) . De context diagram geeft aan
welke externe informatie bronnen globaal informatie invoeren/uitvoeren
in het systeem. Om het overzicht niet te verliezen tussen de relaties van
de verschillende DFDs is het zinvol een systematische nummering te gebruiken,
zoals aangegeven in figuur 1.
Figuur 3 boom van DFDs
Naast DFDs worden ook vaak Data Structure Diagrams (DSD) en Entity Relationship Diagrams (ERD) gebruikt in systeem analyse/ontwerp. Alle drie gebruiken definities, waarvan de omschrijvingen terug te vinden zijn in de zogenaamde datadictionary. Een veel voorkomend probleem in systeem analyse/ontwerp wordt hiermee voorkomen; verwarring over de betekenis van een woord of het gebruik van verschillende woorden voor hetzelfde. Figuur 4 geeft het verschil aan tussen de drie verschillende typen diagrammen.
Figuur 4 gebruikte diagrammen in systeem analyse/ontwerp
Om de rol van de DFDs in het proces van systeem ontwerp/analyse duidelijk te kunnen aangeven is het van belang om de relatie tussen de data items zoals beschreven in een DFD en de compositie (DSD) en relatie (ERD) met de andere data items in het systeem duidelijk aan te geven. Om de verschillende type diagrammen te integreren tot één beschrijving van het systeem is het delen van de data items van eminent belang.
Een flowchart geeft een grafische weergave van het gehele proces, daarentegen
een DFD een grafische weergave van de gehele proces organisatie
geeft. M.a.w. een flowchart is een tot op de bodem grafische weergave van
een proces. Een DFD houdt zich meer bezig met de onderlinge informatie
stromen tussen processen en kan op meerdere abstractie niveaus worden gedefinieerd.
Bij onderstaande DFD is het mogelijk om op de verschillende componenten te klikken en een uitleg te krijgen.
Figuur 5 een DFD van een onbekend systeem.
Een van de eerste belangrijke gebreken van deze DFD komt meteen al naar voren, de context van bovenstaand systeem is niet geheel duidelijk. De gebruikte termen voor de verschillende entiteiten en processen geven ook geen opheldering. Afkortingen als T en E/D voor de twee informatie stromen helpen ook niet echt.
Figuur 6 een DFD van een studenten administratie.
In dit voorbeeld zijn Student en Staff entititeiten, m.a.w. de bestemmingen en bronnen van informatie. Enrol 1, Examine 2 en Graduate 3 zijn processen in het systeem. In de student file, hetgeen een Data Store is, worden de gegevens van de verschillende processen opgeslagen. Het proces Enrol 1 heeft als input een Enrolment Form, die de student heeft ingevuld. Op basis van het Enrolment form wordt het Subject Taken opgeslagen in de Student File, verder wordt Class Rolls informatie naar de Staff gestuurd. De Staff een Exam paper maken, waarna vervolgens een Examine zal plaatsvinden, waaruit Grades zullen komen die ook in de Student File zullen worden bewaard. Op basis van de gehele carriére van een student kan een Acadmic Record worden gemaakt, waarop basis van weer een Degree Transcript kan worden gemaakt, die naar de Student wordt gestuurd.
Zoals in dit voorbeeld duidelijk wordt kan één DFD zeer veel informatie over een systeem bevatten. Een belangrijk probleem komt ook direct naar voren, wat is nu de betekenis van de verschillende aangegeven informatie stromen ? Hoe ziet bijvoorbeeld een Academic Record eruit ? Dit alles dient uitvoerig te worden omschreven in een datadictionary.
Een ander voorbeeld van een studenten administratie systeem is onderstaande DFD:
Figuur 7 een DFD van een studenten administratie.
Het proces verwerk inschrijving plaatst de gegevens in de datastore tentamen inschrijvingen. Echter er moet ook een proces zijn die deze datastore weer leegmaakt als het tentamen is geweest. Een vergelijkbaar probleem doet zich voor bij de datastore student gegevens: welk proces vult deze datastore? In deze DFD is met rood aangegeven hoe dit probleem opgelost zou kunnen worden. Gekozen is voor een extra externe entiteit administratie met een proces update systeem die zowel uit de datastores kan lezen, schrijven als gegevens kan verwijderen.
Eén van de mindere eigenschappen van de DFD is het feit dat de entiteiten
mentor en student, onnodig dubbel voorkomen. De plaatsing van
het proces verwerk overzicht is ook niet op een echt handige plaats. Niet
alle informatie stromen zijn geannoteerd, hetgeen op zich geen ramp hoeft
te zijn, maar de precieze functie wel
onduidelijker maakt.
Om aan te geven dat de formele presentatie zoals eerder voorbeelden niet altijd hoeft bewijst de volgende DFD:
Figuur 8 een DFD van een monitoring systeem.
Het gebruik van pictogrammen geeft wel duidelijk aan welke architectuur wordt gebruikt voor het proces, maar nog steeds is een annotatie nodig om duidelijk te maken wat het proces inhoudt. De context is ook hier niet eenvoudig te herleiden, nemen we de beschrijving van het systeem mee, dan wordt al veel duidelijk:
Adlink monitors all radio stations in both FM and AM bandwidths 24 hours a day, 7 days per week. Along with this, Adlink can also monitor all television stations whether they are VHF or UHF channels. This competence, coupled with the ability to monitor not only all local television stations but cable channels as well, yields highly competitive advertising information -- accessible at the click of a mouse button. Furthermore, Adlink has a comprehensive database of all the ads that are broadcasted in either the TV or radio and keeps track of ad-related information such the advertiser, product classification, brands, ad agencies, featured artists, etc.
De specialistische toepassing van DFD maken de context zoals hier niet altijd direct duidelijk.
Figuur 9 een DFD van een CD bibliotheek.
Deze context DFD geeft een overzicht van een cd uitleen systeem. Het proces maak herinnering haalt gegevens uit de store uitleen gegevens (gegevens van een lid) en de store cd gegevens voor de titel en artiest van de cd. Echter wat gebeurt er als een cd niet retour komt, bijvoorbeeld omdat een lid is vertrokken zonder daarvan de mediatheek in kennis te stellen? Normaliter zal dit probleem met de klant worden besproken. In de uitwerking is met rood aangegeven dat het proces maak herinnering, na bijvoorbeeld een drietal herinneringen, automatisch de stores uitleen gegevens en cd gegevens bijwerkt.
Opvallend bij deze DFD is de verschillende grafische weergave van de informatiestromen. We zien naast de normale zwarte pijlen ook andere representaties van informatiestromen; gestippelde en rode pijlen. De rode pijl geeft een informatiestroom aan die niet altijd zal bestaan, immers het is een afhankelijke informatiestroom van de input informatiestromen van het proces maak herinnering. De grote elliptische kromme op de verschillende processen geeft in dit context DFD de scheiding aan tussen het systeem en de buiten wereld.
Anton Jansen (gradius@fmf.nl) 14-1-2001