Applicatie en dataflow

Creative Commons License
This work is licensed under a
Creative Commons Attribution-NonCommercial-ShareAlike 4.0
International License
.

Auteur

John Val
Inleiding Een garagebedrijf Data flow diagram Een evenement Eindopdracht

Inleiding

Computerprogramma's of websites worden, behalve door de oefenende programmeur, ontwikkeld om de mens op één of andere manier ten doel te zijn. Een flink aantal programma's er voor algemeen gebruik, bijvoorbeeld tekstverwerkers, rekenprogramma's, programma's voor beeldverwerking en programma's om computerprogramma's mee te ontwikkelen. Andere programma's zijn voor specifiekere doelgroepen, bijvoorbeeld software voor het gebruik van MRI scanners in ziekenhuizen, software voor accountancy en elektronische leeromgevingen. Weer ander software wordt speciek ontwikkeld voor één bedrijf dit soort software noemt men maatwerksoftware, bijvoorbeeld de software om treindiensten van de NS te plannen, software voor het aansturen van de Oosterscheldekering in Zeeland.

In dit hoofdstuk concentreren wij ons op de wat kleinere bedrijven die een deel van de bedrijfsprocessen willen automatiseren. We doen dit omdat we de overdenkingen met betrekking automatiseringsprocessen niet te ingewikkeld willen maken, maar wel zo dat de technieken die in automatiseringsprocessen gebruikt worden duidelijk zijn.


Bron: Jan van Haasteren

Een garagebedrijf

Bij jouw ICT bedrijf, gespecialiseerd in applicaties voor het midden- en kleinbedrijf (mkb), komt een klant met de volgende wens:

Garagebedrijf Nieuwenhuis

Garagebedrijf Nieuwenhuis is een klein garagebedrijf in het Brabantse Maasdonk dat op korte termijn overgaat van de pensioengerechtigde Cees Nieuwenhuis naar zijn kleinzoon Dirk-Jan Nieuwenhuis.

De oude Cees, deed zijn boekhouding in een spreadsheet. Zijn klantenbestand is ook in een Excel worksheet opgeslagen. Er is ook een website, die biedt echter alleen een kleine beschrijving en de adresgegevens van het bedrijf. Dirk-Jan wil het bedrijf wat informatievoorziening aan de mogelijkheden van de 21ste eeuw laten voldoen.

Dirk-Jan wil graag een webapplicatie waarin alles wat met gegevens in het bedrijf te maken heeft in één database kan worden opgeslagen en verwerkt. Hij heeft echter niet genoeg kennis in huis om een dergelijk systeem te bouwen. Jij hebt de opdracht gekregen om een systeem voor hem op te zetten. In een eerste gesprek hebben jullie het volgende overdacht. De website moet mooier worden en meer verhalen bevatten over het bedrijf en de werknemers. Het moet een familiebedrijf blijven. De uitstraling moet ook zo zijn dat een bezoekende klant het "ons kent ons gevoel" ook krijgt. Een verjaardagskaartje sturen hoort daar natuurlijk ook bij. Mensen die een dergelijk gevoel waarderen is precies de doelgroep van Dirk-Jan. De afstandelijkheid van zijn vorige bedrijf stond hem tegen, ondanks de hoge kwaliteit van het geleverde werk.

Behalve deze ervaring van familie gezelligheid moet een klant producten kunnen bestellen. Een product kan een ding zijn zoals een ruitenwisser, maar ook een dienst zoals winterbanden monteren. Klanten moeten na het vullen van een winkelmand inloggen om een bestelling (ofwel order) te bevestigen en te betalen. Natuurlijk kan een klant ook gewoon langskomen en daar bij een medewerker zijn wensen kenbaar maken. De medewerker voert dan de order in. Medewerkers moeten dus ook in het systeem kunnen inloggen. Niet alleen om orders in te voeren maar ook om werkzaamheden bij zo'n order te melden. B.v. "Henk heeft op maandag een nieuwe uitlaat gemonteerd. De order verwacht nu ook nog een installatie van een nieuw audio systeem, maar het systeem is nog niet binnen. Als het systeem binnen is zal Ahmed de montage doen." Het systeem moet ook aan geautoriseerde medewerkers orders kunnen tonen (zowel aan medewerkers als klanten), maand en kwartaal rapporten kunnen produceren. Het technisch beheer van de site zal bij de opdrachtnemer blijven.

Jouw taak is nu om samen met de klant tot een applicatie te komen die kan worden ingezet om de processen rond administratie en bestellingen gebruikersvriendelijk en veilig af te handelen. Om tot een goed eindproduct te komen zijn twee processen erg belangrijk:

  1. De eisen aan de applicatie zo helder mogelijk te krijgen door communicatie tussen opdrachtgever (de klant) en de opdrachtnemer (jouw bedrijf).
  2. De eisen, die in stap I zijn opgesteld, zo zorgvuldig mogelijk door te spelen richting de ontwikkelaars van jouw bedrijf.

Meestal zal er in stap I veelvuldig overleg plaats moeten hebben. Het is beter hier veel tijd in te stoppen dan achteraf de applicatie te moeten herzien. We gaan hieronder aan de slag met het garagebedrijf. We pretenderen niet dat we hier volledig zijn. Misschien kan jij het veel beter.


Elementen in een data flow diagram.

Data flow diagram

Boven hebben we de wens van de klant gelezen. Zo'n tekstuele omschrijving van het probleem is zeker belangrijk, maar mensen zijn vaak beter in het creëren van een overzicht door gebruik te maken van diagrammen. We presenteren in deze cursus twee technieken die veel gebruikt worden in software ontwikkeltrajecten, het data flow diagram (DFD) en het entiteit relatie diagram (ERD). Beide diagrammen zijn nuttig in de twee processen hierboven genoemd. Het data flow diagram is belangrijk om inzicht te krijgen over wat de applicatie moet kunnen en welke gegevens er nodig zijn. Het entiteit relatie diagram is van belang om vast te leggen hoe de gegevens zo effectief mogelijk moeten worden opgeslagen. Het ERD komt ter sprake in het hoofdstuk Data model.

In het data flow diagram moet duidelijk zijn af te lezen welke processen door de applicatie moeten worden afgehandeld, wie in die processen een rol spelen, welke gegevens er voor de processen nodig zijn of geleverd worden en waar die gegevens opgeslagen worden. Het woord flow benadrukt dat vooral de informatiestroom duidelijk moet worden. In de figuur hiernaast zie je de grafische elementen waaruit een DFD is opgebouwd. Een actor (rechthoek) is meestal de persoon die een proces (ovaal) kan uitvoeren of bij een proces is betrokken. Voor het uitvoeren van een proces moet een actor mogelijkerwijs gegevens (langs pijl) aanleveren aan het proces. Het proces kan informatie terug leveren aan de actor en kan zo nodig gegevens opslaan in de dataopslag (schijf) dan wel informatie of gegevens ophalen uit de dataopslag.

DFD garagebedrijf: actoren

Opdracht: Probeer uit het verhaal alle actoren rond het garagebedrijf te bepalen. Actoren sturen dit proces aan dus zoek naar personen in het verhaal en probeer daarbij te generaliseren (b.v. Dirk Jan = eigenaar). Bediscussieer je resultaat eerst met je klasgenoten voor je op klikt.

Eigenaar Dirk Jan, bank, medewerker, klant, beheerder website.

DFD garagebedrijf: processen

Opdracht: Probeer uit het verhaal zoveel mogelijk processen rond het garagebedrijf te bepalen. Een proces is een actief gebeuren zoek in de tekst dus naar werkwoorden in het verhaal. Bediscussieer je resultaat eerst met je klasgenoten voor je op klikt.

Registreren klant en medewerker, aanpassen gegevens klant en medewerker, plaatsen order via website, plaatsen order via medewerker, tonen werkzaamheden medewerker, aanpassen geplande werkzaamheden, registreren gedane wekzaamheden, maken (financiële) overzichten, versturen verjaardagskaart, ...

Opdracht: Maak een eerste flow diagram met actoren en processen en geef daarin aan in welke richting gegevens moeten gaan stromen. Bediscussieer je resultaat eerst met je klasgenoten voor je op klikt.

Let op: Pijlen mogen nooit direct tussen actoren lopen en ook nooit direct van een actor naar een database, er zit altijd een proces tussen.


DFD garagebedrijf: gegevens

Opdracht: Probeer bij iedere pijl in je flow diagram zo nauwkeurig mogelijk de benodigde informatie/gegevens te bepalen. Bediscussieer je resultaat eerst met je klasgenoten voor je op klikt.

pijl gegevens pijl gegevens
1a (voornaam, tussenvoegsel, achternaam, straat, huisnummer, postcode, woonplaats, telefoonnummer, e-mailadres)(=NAW) productenlijst, aantallen, datum 1b Bevestiging of afwijzing bestelling
2a NAW klant, bankgegevens (niet voor database garagebedrijf) 2b Bevestiging of afwijzing betaling
3a 3b
4a 4b

Een popfestival

Bij jouw ICT bedrijf, gespecialiseerd in applicaties voor evenementen, komt een klant met de volgende wens

Elke zomer wordt op een centrale plek in Nederland een meerdaags popfestival georganiseerd. Je kunt dit festival bijwonen voor één dag, maar ook voor een aantal dagen achtereen. Wie het festival wil bezoeken, koopt een toegangskaart via Internet. Je opent een webpagina waarop je een aantal gegevens invult, zoals je naam, adres, woonplaats, je mailadres, met hoeveel personen je komt, wanneer je aankomt, wanneer je weer vertrekt en (als je langer dan een dag blijft) hoeveel tenten je meeneemt. Je betaalt het entreegeld met creditcard, iDeal of anderszins en als de betaling gelukt is, krijg je per mail een entreebewijs toegestuurd. Daarop staat een barcode met een uniek nummer.

Op de dag van aankomst kunnen bezoekers zich bij de toegangspoort melden. Daar wordt het entreebewijs door medewerkers gecontroleerd en word je toegang verschaft tot het festivalterrein. Voor elke dag dat je het festival bezoekt, krijg je een polsbandje. Elke dag heeft een andere kleur. Als je langer dan een dag blijft, kun je met je entreebewijs naar de festivalcamping gaan. Daar wordt je door begeleiders een plek met een nummer toegewezen, waar je je tent(en) kunt neerzetten. In verband met de veiligheid moet de festivalorganisatie op ieder moment aan de plaatselijke brandweer kunnen melden welke tentplaatsen er bezet zijn. Het feest kan beginnen!

Jouw taak is om samen met de klant tot een applicatie te komen die kan worden ingezet om de organisatie van dit evenement in goede banen te kunnen leiden.

Het evenement

Opdracht: Maak een eerste DFD. voor de gang van zaken rond dit evenement. Lever het resultaat in bij je docent om nuttig commentaar op jouw versie te krijgen. In de afsluitende toets zal hoogst waarschijnlijk iets dergelijks gevraagd.

Eindopdracht

Inleveropdracht: Ieder jaar is er op school een musical uitgevoerd door leerlingen en begeleid door docenten. Formuleer zelf een werkplan voorzien van een DFD. om het geheel, vanaf de start van de voorbereiding van de musical (i.e bepalen thema en werven van leerlingen) tot en met de afronding, in goede banen te leiden.