Hoofdstuk
Technieken Dit hoofdstuk gaat in op de verschilende systeemontwerp- en ontwikkeltechnieken die in de vorige hoofdsiulken al genoemd zijn. H€t docl van dit hoofdstuk is dat u een globaal inzicht kriigt €n b€kend raakt met d€t€rminoIogie, de notatiewijze en kenm€Íken van de v€rschilt.nde techniek€n. Het vergt v€€l me€r dan all€en het leren van een bepaalde notatiewijze ofhet gebruik€n van een geleerde t€ch ni€k Het veÍeist€en anal).tische geest, kennis en bovenál ervaring om d€ze technieken juist t€ kunnen toepass€n.
Procesmodel Dit model geeh aan welke processen oftunctics door het systcem worden uitgevo€rd voor de veníeÍkingvan de gegevens (informatie). Hieryoor gaan we in op een aantal t€chnieken en aspectn met betrekking tot
I. IL
Data Flow Diosran (DFD)
IIL
Progratnmast
Prccesspecifcaties
rttur.
Data Flow Díagtams (DFD) Al naar mate bij de onrwikkeling van informaiiesystemcn meer gebnrik werd gemaakt van daarvoor opgezeuc merhoden, àls bijvoorbeeld SDM, ISAC en
NIAM, is het gebruik van zelft'edachte synboien en schc!'a\ afgenomen en vewangen door de in de sebruikre methode voorgeschreveD symboten eD
ScheÍna s hcbben ah l)elangrikst€ raak een éénduidig€ €n overzichtelijk€ yoorstelling te gev€D van de eisen die aaD her WAT en HOE van eeD informà tiesysteem (oÀ'el de w€rkelijkleid)ztn gcícld. Ftén vàn diegrafische modelle-
ringstechnieken van gestructurecrde analyse is Data Flow Diagram of Gegev€nsstroomdiagram (DFD, ookwel bubblcdiagràm, activitcitensrroom schema, functiemodeletc.). DFDi worden gcb.uikt orn zowel gegevcnsverwerkende systemeD, Js hele organisaries r€ modelleren.
Indit hoofdstukgàat
hcr met name om het tunctioneel onrwerp, dus WAT her informatiesysteem moet kunnen en HOE dit gcrealiseerd dient te woÍd€D. Data Flow DiagÍan,
DFI)
De lechniek die wordt besproken, isdetechniekvan gegevensstroomschema s, de "Dàra Flo\^, Diasrams" (DFD s). onderwcrpen die spe€iaal aan dc orde komen rijdens dir hoofastuk zjjn: de componen(en waaruir eeD DFD is opgcbouwd
l
2. het tekenen van ccnvoudige DFD's 3. ri.htliineD voor het naken v.D goede DFD'S 4. het maken van dccompositi€s lnet behulp van
d€
DfDlechDiek.
Ll
IIet mak€n
v.rD procesmodcllen is één vrn de bcla,rsrtkie grafischc modclleÍirrgstechnieken voor de informatiearalist. I)e infornr icanalist is de brug tusseD de systccnlbouwers en de klant. l). g.gev€nsmod€ll€n di€ de iDiorma t ier nalist on twcrpt, zijn zow€lvoor dc khnt als voor dc systeembouwer uirerst bclaDgÍijke zakcD. De klant immers moct uiteindelijk brvcstisen dàr "dit is wat het bedrijl'hebben wil, zoals de koper vor het huis vooÍafde tekennrg van hct uit€indclijke huis moet kunnen goedkcuren. De systeembouwer mo€t voldoende info nlltie uit de Scsevensmodcllen kunnen halen om in principe
het hele systeenr te kunnen oniwerpen.
Doordat dc tcchnickvan DF'D's maar weinigs)mbolen kent, is dezc techniek
sn.l te leren en gemakkclijk te begrijpen. Ilet is dan ook een te.hniek die bij uilstekges.hikr is voor communicatie mct de SebruikcÍ ofde opdrachrgever. De DID-techniek is een technick waarmee ccn systeem ofeen deelsysteem wordt beschrevcn. Deze (deel)syÍemen kunnen worden ondenerdeeld in weer andere sutxystemen (dit noemen we decomposirie), zodat op elk niveau van deze decoDrpositie kan worden weergegeven wat her subsysteem mo€t doen. De beschÍijvingvan €en sut'systecm is in de voÍn) van een netwcrk vàn pro.cssen en g.Sevensverzamelingen, die ondcrlins zijn verbonden door
FunctiegeÍichte b€nadering
De DFD techDick is slechts óér van de velc modell€ringsl€chnieken die de iDiormatiean,iist terbeschikknrg staan en is mct name gcschikt als gekozen wordt voorde iunctiegerichte benadering van het syslcemond€rzoek. AIs wordt gekozcn vooÍ de gegcvensgerichte bcnaderinS, is dc techniek eveneens geschikt indicn eÍ m€er àand.rcht wordt Seschonken aan de technieken voor
gcgevensmodcllering.
AJb. t. DFD voor.ek klein systeêm.
3.2
Componenten van e€n DFD I laar ccn Dl-t) zien vooreen klein s'stcern. Een Íondjc is een proces ^íbe.elding gegevens veruerkt. Zowelde afgeÍonde (lissend€) r€chlhock rls de gewone dat rechthoek zijn opslagplaatsen vàn geg€v€ns. Tcn slorte sreh een pijl €€n Sesevensstroom of storc voor. Let er echter op dat d€ beschrijvins bij een pijl een beetje misleidend is. Zo stronen vrijwcl alle klantgegevens van klantcn naar ontvansorders, maar niet allemaal gaun ze terug (welke wcl?).
Voordat gedetailleerd op de componenten van het DÈ-D wordt ingegaan eerst ecn aantal opmerknrgeD;
nodi8
[en DFD behoefi weini8 toeli€hting. Door gewoon te kijken cn le lczen wat cr staat, is men zeer goed in staat tebegrijpen wat er wordt weeÍgegcveD-
Eenvoudise notatie
l)e notatiewize
is eenvoudig en zelfverklarcnd. Zonder veel uitlcg is dc dooBneegebruiker ofopdrachtg€ver in stàat het DFD te lezeD, te t cSrijpcn en
Per DFD één pagira
Ecn DFD past Semakkeliik op één A4 tJe. Door stceds deiuisrc dccoDrposiriccritcria te kiezeD, is de analist in staat DFD's tc maken voor clk nivcau op maximaaléén pigin.r. Desebruik€r wordt perblad nietoverdonderd en wordt diardoor niet ontmoedigd zich verder te v€rdiepen.
Geb.uik tekenpakk€t
IJet DFD in atueelding I is met beh'rlp van een rekenpakl(et gemarkt. Op dit moment zijn er verschillende pakketten (analist workbenches) verkrijsbaar waarmee DFD s geautolratiseerd kunncn worden. Met sommige pakketten kan alleen worden getekcnd, er zin e€hte.ook s€avanceerde gereedschappen verkrijgbaar, warmce decompositie nogelijk is van processen, nrar gegcvens etc. Metbehulp van c€n derSelitk pak-ket is hct mogelik om snelkwaliratief goede DID'S te vervaaÍdigcn en te onderhouden. Ho€wel er geen enkel bezwaarbestaat tegcn handrnatig gemaàkt€ DFD'S, is met Dame hcr aanbreÍsen van wijzigjnsen beduidend m inder ee mvoudig. wijzigcD betekenr in dat geval immers meestal dat ereen nieuw DFD moer worden gelckend.
Geen
to€lichliÍg
Hetproces
1
1
Aft.2.
@ Cirkel
Het proces.
tre eerste cornponent van het DFD di€ wordt behandeld, is het proces. I,rocessen kunnen scgevensveMerkeDd zijn, hct kunnen rysi€ke iransfoÍmarie processen zijn ofeen combinatie van beidc. H€t proces wordt in her l) F D grafisch weergegeven door middel va n cen cirkel. Vaak wordt ook een (slaand€) rechthoek ofeen vierkant gebÍuikt, mer aise.onde hoeken. In de literatuur wo.den verschillende synbolen adns€troÍïcn, veelal afhankelijk van de schrijvc.. ID wezen maakr he1 nicrs íclk symbool wordt gekozen, als maar duidelijk is wat er wordt bedoeld. wij houden ons aan de cirkelals synbool voor een proccs.
ui
1.3
rrocessen
rraníor @ (3)
Processen trarsformeren invo€r tot uitvocr, dat bcrckent dat er ahtd invoeÍstronreD l,ijeen proccs binnenkomen en dat uitvoerstromen het proces verlatcn. I]Í zijn geen pÍocesscn waar een hele hoop in gàat en nooit iels
uitkomt, evenmin zijn erproccssen waarnooit iets in gaat
en van aucs
uir komr.
Processen hebben een naam, bestaande uit óén enkcl woord, een uirdrukking, ofeen ziD. Meestal is hi€ruit afte leiden wat hct pÍoc€s doet. IIet is uitermate belansrijk dat correcte nanrcn worder gekozen voor processen, onrddt anders de comrnunicatic (met vooral de klant) daDis kdn worden vertrocbeld. In het
Naan vaD h€t p.oces
ve.loop van het hoofdstuk zalnogaanda€hr woÍden geschonken aan hct kiezen van correcte nanren voor processen. Hoewel niet wenseltk, is h€t niet uitge slotcn dat een proces de naam draagt van een orgr n isatie ee nheid, in plaa ts van wat hel pÍoces precies doe1. Data Flow
Aft. 3. De geselensstrcon. PíI
@
Stromen worden gràfisch weergegeven met behulp vàn pijlen die ccn pÍo.es
binnenkomcn of verlaten. Een stroom geeft de v€rplaatsing weer van een bepaalde groep ofhocveelheid van Segcv€ns ofvan tysiekc zaken, van het ene decl vaD het systeem naàr h€t and€re. Stronên betekenen dus ovcrdÍacht van gegevens cn/offysieke zaken. Voorde informati€analist zal ccn stroom veclal puur een gegevensstíoom zijn. Het is echter ook zeer gocd mogelijk on puur fysiekc processen m.b.v. de DFD-techniek in kaa.t re brengen. Denk maar ccns aan €en assemblageliin, waàrbijde strom€n kunncn beÍàan uit grondstoficD, halffab.ikaten, eindpro
Aft. a. DFD wn
Zelfverklarende namen vooÍ stromen
eett bakproces.
Bij de mecste compl€xe systcmcn ronen de DFD'S in de praltijk zowel lysieke stromen àls gcgevensst.omen. Ook de stÍoÍnen zijn voorzien van namen, die€orrect dienen te woÍdcn gekozcn. Zijdienen zodanig te rvorden gekozen, dal de l'etekenis in hogc mat€ zeltuerklarcnd is. De keuze dic wordtgemaakr, is uiteràard afhankelijk van hei nivcau vaD decompositic. Op het hoogste niv€Àu zil ecn gegevensstroo'n zijD samengesteld uit !Íellicht vele elem€ntaire geSevens ofeen deelverzameling
datadictionary
daarvan (zie aÍbeeldins l: klantgegevens). Op een laag nivcau kan cen g€Sevenssrroom besraan uit misschien weléénenkel€lemenrair gegeven. In dit kader is h€t vin belang le referercn aan data dictionaÍy'syslcnrcn. In eell dala dicrionary wordcn de meiage8evens (gegevens ovcr 8cgcvcns) van .rllc process€n, stromen. elcnreDtrire Segevens etc. vi,stgclcgd. Op die nranier kan worden voorkonre!r dat dubbcle naamsevinB k.rn lcidcn rot spr.rakveÍvirrins. Data dictionarics wordeD in een van de volgende paragraíen behandeld.
Richting van een
Stromen hebben
Meiageg€vens in eerl
ihijd ecn Íi€hting, anders zou erScen sprake zijn van eeD stroom. De pijlpunr aan een van de uiteinden Seeft de richting van de stroom aan. De Segevens die via ccn stroom worden gctransportcerd! gaan narr ecn ander proces, naar een opslagplaats ofverlatcn het systccrn. Als een
íroom
e€n eindsiation
Op een hoog niveau kan het zijn dat dczclÍde SeScvens over en weer ivorden uirgcwisseld tuss€n bijvoorteeld cen pÍoces cn een opslaSplaars. Denk hicrbii arn het raàdplegen en bijwerken van een gegevensverzameling. Ecn dergelijke dialoog krn wo.dcn àangegeven dooíde stÍoom tussrn hêr p.oces en de opslagplàats te vooÍzien van twee pi1lpuntcn, ccn aan elke kant.
Uitwisseling
Splirsen van stromen
toc dit he.t ofcen terminàtor- Eindstarions worden hr.r behàDdcld.
hct systeem verlaat, wordt aangegeven waaÍ naaÍ
@
Een andere mosclijkheid is rwee afzonderlijke íromcn, één invoerstroom (vràag)en één uirvoerstroom (antwoord). Dez€ laatste merhode verdient dc
voorkeuÍ als het antwoord verderweeÍ wordt ver!íerkt. AIs een stroo'n, zond.. tussenkomst van een proccs, zich splitst in twee ofmeer stromen, kan dit b€tekenen dat er kopieën van de getransporteerdc gegevcns nÀa. versch illcndc plaatsen Baan (diverseren). Denk hierbijaan kopieën van factuÍen ofbesrelbonnen die veíschillend€ b€stemmingen hebben in de administrarieve organisatie. Maar hel kan ook ziin dat d€ ingaandestroom €en groot record is dat nrin of meer gesplitst woÍdt.
Aft . 5. Gegewnssnoon in een a.|'ninittraticee orgikitati.. Als cen gegcvensstroom wordt gesplitst in van elkaar verschillende kleinere gegevensstromcn, is her correct 3ls dit via een proces vedoopt.
AJb.6. Opsplitti,lg von dc legevenssttuont.
3.5
Samenvo€gen
stro- O
De kleinere gegevensstron)en dienen ook elk een àl)dr.. naam te h€bben. AndcÍsom is her ook rnogelijk dar verschillende gegevensstrornen worden samensevoegd. Dil saDreDvoegcn (conveÍgeren ofaggregeren) dienr altid via cen proccs ie gebeuren. Dcnk hierbij aan pÍocessen zoals MAKEN ËACTUUR etc,
In een DFDwordrgeen direcr antwoordgegeven op proced u rclc wagen. In het modcl is de omvang vJn een bcplaldc stroom niet re zien, evenmin als tijdslipp€n. De veruerkingsvo lgo rde van de stromcn door de processen is ook ni€t zichtbaàr. De '\rigge.s' die een proces opstarten, zijn nict aan8€Bcven. Ccbeu.t iets op verzoek ofpcriodick? Bij een eenvoudi,r proccs zoals MÁKIN FACTUUR kan nnr in h€t DFD woÍden afgelez€n wanncer dir moetg€beuren en met lvêlke frequenr ic.Ook is nicr du idelik wa nne€r de gegevens die hieNoor benodigd zijn, binnenko''cn. Is dir een coírinue stroom ofkomen deze gegevens massaalbinnen, vlak voordar her proces wordr uirgevoerd? Het DIL) gccft hierop ge€n anrwoord. Datzetidegeldt uiterrard ook vooÍde uirvoer van de processen. D€ze probternen diene' te worden opgdost nret procedurebeschrijvinsen of ànder€ modctterinsstechnieken, zoah stroomschcma,s et€. Data store of opslagplaats
Aft.7.
@
De opskgplaat'.
Opslagplaatsen word€n onder andere gebruikr om gegevensverzamelingen aa n re geven die zijn aangelesd. Ook hier is het zaak een €orrecre naam re kiezen. Het is verleidelikde opslagplaatsen meteen als een soo( computerbestanden te zien, niets is echteÍ minder waar. Denk maare€ns aan de opslagpla,its van afgewerkt. fncrurcn. In menigc organisatie is dit een grote archieÍkast, waar de afg€wcrkte facturen keuÍig gerubriceeÍd en opgeborgen iD klappers Jarenlang wordeD bewaard. Uiteraard is de opslag op een magnctisch medium ook niet uirg€slolen, evenmin als
ponskaarten, microfilm, oprische schiif etc. Doel opslagplaats
Een ande. belangrijk aspect aan opslasplaatsen is hcr doel ewan. De opslag plaats kan een tundnmcnreel besraa nsr€cht hebben, voonvloei€nd uit eis€n vàn
de seb.uikers, de wetgevins, dan wel andere vooBchriften. ren andere mogelikheid is dat dcze opslagplaats bcstaat omdat dàr in her huidigegeimplemente€rde systeem zo gcmàkk€lijk is. Denk hic.bijaan tussenbeÍanden e| hulpbcstanden, die vaak in de oudeÍe geautomatiseerdc informatiesystemen zijn aangel€sd om dc verwerkingssnelheid te verhog€n ofom dc CpU bezetting te spreiden. dacht u van het proces MÁKEN B^CK Up en de opslagplaats BACK UP-EESTANI)? Beide z'jn noodzakelijk in verband met de
W
(Sebrekldse) betrouwbaarheid van de gebruikte techniek. Zc hebben echter totaal geen functie bij dc primaire ofde ondersreunendc processen van de org:rnisatie. tsekeken moer worden ofdeze opslagplaarsen in de nieuwesituati€
3.6
Alb.8. Doel van
de opslasplaats.
tnogelikheid
zosenarmde implicietc opslagplaats. Hiermcc worden opslagplaatsen bedoeld die zo va,rz€lfsprck€nd zijn, dàt zc nogal eens snelover h€t hoofd worden gezien. Voorhet uitvoeren van ccn bepaald proccs kan het noodzakelijk zijn een tabel te raadplegen, bijvoorbeeld met belasting8eSevens. In d€ huidigc situati€ is dit ccn kaartje, kleincrdan eeD A4-tje. H€t is€chternet zo'nbelangriike g€gev€nsverzrmelingals de iDhoud van de groie .lrchieíkast.To.h worden dit soort zaken in het b€gin vaak over het hoofd gezien, wat dan in een lat€re fase wccr woÍden r€chtg€trokken.
Impliciete opslas-
Een rDdere
plaats
is €€n
'noet
Opslagplàatsen zijn door middel van stromen met processen vcrbonden.Ilel kan een slroom zijn vanuit een opslagplaals, ofeen stroom nalr ccn opslag
@
Stromen vanuit €cn opslagplaats worden doorgaans geïnlerpr€leerd als een lcesàctiviteit. Dit betekent dat€rgegevens uit dc opslagpladts wordcn gehaald. Hct raadplegen van cen adressenbestarrd betekent dat €en stroom (adresgeSevens) het bestand v€rlaàt. Pasop, hiermee wordt niet b€doeld dàt deze geSevens niet meer in het bestand voorkomenl Deze gegevensstÍoom kan betrek-king hebben op de gesevens van één enkel record, maaÍ kan ook betrckiing bebben op ecn groteÍe gÍocp. Een and€Í onderscheid dnt kan worden genuakt, is dat het een conlinue gegevensstroon kan zijn ofe€n ad hoc SegeveDsstroom. Dit ondcrscheid is nict altijd zichtbanÍ in het DFD, het dient in elk geval zichtbaar te worden gemaàkt in debijbehoíende tekstdocumenten waarin d€ stromen €n de se8!.vensveramelinscn wordcn beschÍcvcn.
3.7
Stromcn nmeteD eveneerrs wordcn voorzien van eeD ,raam. ook als hd een stroom betreft die een verbiDding h€eft met een opslagplaàrs. Er zijn aureurs/ ànàlistcn die dcze srromen niet van een naaD voorzien. Deoorzaak hiervan lisr vaakbij het gebíuikte tekrn pakket, dat deze voorzicning niet beschikbaa r sr€lri het is echt€r niet corÍect. IJij hct kiczen vàn een juisre naam moet worden scrr"chr deze zoveel moSclijk zelfve.klarend te laten zijn. Her kiezen van zelfvcrklnrend€ namcn vcrhoogt de l€esbàarhcid van het DFD aanzienlijk. De gekozen namen dienen uiteraard evcneens tc worden vastgêlegd in dc dala dictionary, teneinde misveíst:r nden le voorkomcD. Om alleste wercn le komcn omlreDl cen stroom, een proccs oteen opslagpl.r,lts djen€n de specific,tties te worden beshÍleerd Gegevens verlaten een opslagplaàts niet vanzclf, erdienr altijd een proces te ziin ddt om deze gegevens vrarSt.
Opslagplaatsên ziin
passief
@
opdrgplàatsen zijn d€rh.rlve prssiet De gegevens in de opslagplaats vernn deÍeD ook Diet als gevolgvan een stÍoom dic dc opslagplaats verlaat. Hcr is altijd eeD kopie die de opslagplaats veÍlaat. Als dc DFD'techniek wordi gebruiktom andere dan gegevensverrverkende systemtn in kaart tebrengcn, bijvoorbeeld fysiekc stromen, dan kan hct uiteràad w€l zo zijn dat de opslagplaats verandcri. Doordat een íroom artikclen een magazin v€rlaàt, neemt uiteraard de voorràad al Dit kan tot pÍoblenr€n leiden als een opsl,rsplaats zowcl scgcvcns rls fysieke opstag bevàr. Een gocde uitleg in de dati dicrionary of'n de speciíicaties kan hier e€,r oplossiD I bieden. Als de ges€v€ns in een opslaSplaars verandercn (toevoegen, verwijderen, wijziseD), dan is hier altijd een pro.es voor veÍantwoo.delijk. Mer andere woorden, e. dient altid een proces te zijn van waaruit een stroom (met veran
derinSen) loopt niar deopslagplaats (die woÍdt verdnderd). Vànzclfsprckend h natuurlijk ook het feil dat strom€n di€ Daar een opslagplaats toeloper, dan w€l ccn opdagplaats verlatcn, aueen gegevens kunnen bevatten die iD de opslagplaats kunnen wordcn bewaard.
Terminator of eindstation
AJb. 9. Een eindsÍation.
Eindstations ofterminators woÍdcn in een DFD voorgesteld als rechthoeken. findstations stell€n ext€rne zaken (eDtiteiten) voor, di€ m€t het syíccm €omrnuniceren. Dat kan cen andere afdeling zijn biDnen d€ organisdtie, het kan echter ook een geheel andere organnatie ofzelfs €€n ander systeem zijD.
Driebelangrijkeaken betreffcnde eindstations ofrerminators die'rr
@ l.
1.8
u bestÈt te
nindstàtions liggen buiten het te modelleren sysreenr. De stromrn die €iDdstations met het systeem vcrbindcn (processcn ofopslagplaatsên), zijn de interfaces tussen hct tc modelleren systeem en de omgeving.
@2.
De inhoud van ecn eindstation oídc wijze waarop een cindíation zijn of haarrverkdoet, kan nict worden beinvloed doo. dc sysleenroD twcrp.r. Mct andcÍe woorden. het eindstation ligt buiten het donrein van verandcrinscD-
@r.
Relaties die bestaan tussen eindíalions ondcrlinS, zijn nict rclevant voor hct te rnodellcrcn systecn en wordcD dr.rrom ook ni.I in hcI l)l_D iD kaan Bebracht. Dczc rclàri.s zullen €Í ongetwijfeld zijn, ze niakcn cchterseen d.cl uil van het syíccm. Àls woÍdt vastgcsteld dat er wcl een voor het s),stecnr bel.rnSÍiike relatie bcsraat tussen rweeeindsiarions oDdcrlins,ogenschijnlijk zondcrdat er ecn proces tusscD li8i. mdkcn dezc eindstations w.arschijnlijk wel deel uit van her s)steem en dienen als pÍoccssen le worden gcmodel-
of
In werkcltkheid kan ecn sysleenr comDuniccrelr met rientàllcn t.rmiDrton eindstations. Her idcnrificeren van eindstations en hun inteÍactie nrct hct syíeem is e€n belaDsrijk deel van dc lverkzaamhcden die noeten woÍden
Richtlijnen voorhet maken van DFDrs In het voorgaande is duidclijk gem'akt dar DFD
s worden sanrèngcí.ld uit vieÍ componenretr: processen, opslagplaatsen, stromen cn eindstations of
DFD's
Met deze hulpmiddelen kunnetr gebruikers ivorden geÍrrervicwd en sysiemen
noÍden geconstrueerd. Er is ech(er nogeen aantalrichtlijnen dat mo.i wordcn gehantcerd om goede DFD Richtlijnen
@
s
te mak€n.
Deze Íichtlinen ziin de volsend€: Kies betek€nisvolle namen voor pÍocessen, stromen, opslaSplaatsen cn
l.
eindstations.
2. Nummer de processcn. 3. Teken een DFD net zo vaak opnieuw
als nodiS is om ervoor tc zorScn dat
het eindproduct er duidelijk, overzichtelijk en verzorgd uitzicr.
4. Vermiid ovenollige complexitcit in DFD's. 5. Cont.oleer dc interne consistentie en de.onsislentie
met geÍel:têerde
DFD's. NaamgevinS uiterst
belansnik!
Het kiezen van juiste nanrcD is een absolutc noodT-aak. Ccbruikers noetcn in een DFD onmiddelliik hun w€rkwijze herkennen. Gebruik nooir namcn van pcrsoncn. Namen van processcn, aclivirciteD offunclies di. goed bckeDd zijn in de organisàtie kunnen wel worden gel,ruikt.
Hierna Seven rve een vooÍbeeld van een garagcbedrijl waar ccn klant vcÍzoekr o m cen o nderhoudsbeu rt aan zijn auto. sijde íeceptievr'r d€ sarasemiakt hij een afspraak voor deze onderhoudsbeu.t. Het proces kaÍ nu op rwee manieren worden benocmd:
l. MÁKEN AFSPMAK. 2. ll.ECEI,TIE,
zuiver datgene wàt eÍ gebeurt.
nrrr dc plaats waar hel gebeurl.
3.9
@
Debeste methodc is het get ruik van een werklvoord in combinatie mer een zelfstandig naa mwoord. Mer andcre woorden, probee r alr ijd her WA l r€ beschÍijven, nooit hcr wÀAI{. BEREKENEN SALAI{lS i.p.v. SALARISADMINISTRATIE
MAKEN AFSPR.AÀK i.p.v. ltECllPTI0
MAKËN I.ACTUUR i,P,v, AFDELING FACTURERING Na €nige oefening zal dir snelde t este, gemakl(elijksre en duid.ljjksre merhode te zijn. Probeer wcrkwoordeD re veÍmiJden die voor meerdJD óén ujtles
blijken
valbaar zijn. H'erna volSt ccn dantal FOUTE voorbeelden: VERWERK GEGIVENS (wdt rnoet er dan gebeuren?)
BËHANDEL INVOEI{ (wat nroet €r dan sebeuren?) Welke namen ook wordcD sekozen, ofhet nu pro.essen zijn, opslagplaatsen, stromen ofeindstations, zc dielrelr altijduit hetjargon van degebruiker te zijn en niet uit dat van de aDalisl. De volsende waarschuwingen zijD hierbij op hun plaars: Pas op voor aÍkorringen. AÍkorringen kun'en een gehecl andere berekenis hebben dan de analisr denkr. Aikortingen kunnen bij andercn binneD her systeem niet b€kend zijn. De narnen dienen altijd voluit te worden geschreven, de aíkorring kan hooguir als s)roniem worden opgenoDen.
1
2. Ve.mijd
het gcbruik van onjuiste ofdoor degebruiker z€lfg€Ínaakre werkwoorden, codes ofbeSrippen. Een medewerker van de personeelsaf, deling zou kunnen spreken over €en PF 1s333, hii bedoett een "aanvrnas
voor vakantieverlo f'. Het feit dat zo'n aanvraag in de huidige shuatie g€beurt op €en formuljcr met het formoli€rnumm€r pF 15333 màg er
nimmcrtoeleiden ddt in
3.
een nieuwsysteem, misschien volledig ove rbodig,
nog steeds mel heiz€lfde forrlulier wordt gewerkr. Programmeurs dic zijD opgcklommen rot informarieanalisr h€bbe,r nogal eens de neiginS progranrnree.rerÍnen te Sebruiken, zoals rourine,
procedure! subsysrccrr c1c.
Hetnunnercn nn
íle pnccssen
Doordeprocessen tc nummercn, is her geÍnahkelijkeÍ ernaar te verwijzen. Hoe de p.o€essen zijn genumme.d, nraakt in wezen nier zoveel uit. Het Èico dat ontsraat bij genummerde processen is dat er al snel een votgtt delijkheid uit wordt afgeleid. ccbruikers rÍektcn àl snetd€ conclusiedar proccs I zal plàatsvinden vóóÍ proces 2 et.. Zelfs analisteÍ ofonrw€rpêrs zouden deze vÍaag kunnen stellen. He( is een menseltke neiginSom uil de nummering ecn bepaaldevolgorde afte leideD. Bt DIiD's is dit volstrekt niet hct gcval. Het DfD is een netw€rk van met elkaar conrmunicerende asynchroDe pro.csseD.
Nunmeringt.b.v.
DebelanSrijkÍe redcD waarom process€n worden genummerd,
is de deconr-
posirie. Pro€es I zou cen niveàu lage. kunnen worden uitgesplitst in de processen 1.1, 1.2, r.3 en 1.4. PÍoccs 1.2 zou op weer een niveau lagcr uitSesl'lilsi kunncn
worden;n pÍoccs t-2.1, 1.2.2, 1.2.1, L2.4 etc. Doordeze manjcr van nummeren is snel te zien op welk niv.au me'r z;ch bevindt en is de bov.nliggende hiërarchie z;chrb..r
3 r0
W€€rgave
funclies
OpDi€uetek€nen
@
Het wrnijden van ovcrtollige complexitêit In een DFD wordên de functiesvan een systeem weerSeSeven en de interacties tussen deze tunctics. Een DrD moet daàrom gemakkelijk selezen kuDnen worden, zoweldoorde gebruiker of de o pdrachtgever ah dooÍ deandcre analisren en de ontweÍpcrs. E€n DrD mag om dic reden niet neer dan vijfof zcs p.occssen met bijbeho, rende opslagplaatsen, stromen €n €indstations bevatten. k alzond€rlijk DID moet op éénA4 tje kunnen. tien uitzondering hierop wordt gcvormd door een zeerspeciaal DFD, ccn zogenià!nd.ontextdiagram. Contextdiagrammen komen nogaan d. oíde in het verdere verloop van de cursus. Teker een DFD zo t)aak als noílig is opnieutr De redenen warom DFI)'S soDs wel tieD keeropDieuw moclen woÍden getekend, zijn de volsend€:
l.
2. 3.
Het DFD is technisch nog niet correct, onvoll€dig, niet juist. HeI DFD is no8 nict acceptabelvoor degebruiker. Het DFD is nict neties genoeg voor een pÍes€ntatie aan de klant.
Met name het laalst€ aspect is ze€r belangrijk: verge€t niet dat door dc opdrachtgever vaàk grote sommen geld worden betà.rld voor het inhuren van analisten. Men m.rgvoordit geld iets goeds venra€hten. Go€d v€rzorgde DFD'S geven de opdrachtgever in elk g€val een iDdicatie vaD de aandacht die aan het werk is b€steed. VerSeet niet dat maand€n van hard we.k€n voor nietszijn gcweeÍ, als door een slechte presenlatie vrD het resultaat h€t project wordt slopgezet. Esthetis.he
Íegels @
Hiervolgen nog
c.
Cont.ole
Topdown-b€nade-
rins
@
@
Contextdiagram
!
t{3
een aantal eslh€tisch€ r€gels:
a. Zorg ervoordat alle sebruikte qÍnbolen van ongcve.'r gelijke Sroorte zijn. b. Zorg ervoordat de stromen neries als pipl€idingen lopen en niet kron of kriskras door elkaar. ProbeeÍ DFD's in principe m€t een tekenpakk€t te miken.
ContÍoleer dê interne co sistentie en de consistentie net gerclatee eDFD't DFD'S staan niet op zichzelf, er horen ahijd beschrijvnrgen bij vàn processen, strornen, opslagplaarscn etc. Deze consisteniic hoort er ook te zijn in andere systeemmodellen, entiteit relatiediagrammen, transitiediàgrammen etc. lntern dieÍcn de DFD's te worden gecontrolcerd op dc volgende punten: à. Zijnerse€n black holcs"? Processen waaralleen invoeÍ naar toc saa t, maaÍ waaÍ geen uitvocr uilkomt. b. Zijn erSeen spontaan genererende processen? Processen ríaar niets inkomt, naar die weluitvoer hebben. c. Hebben allc st.omeD een naam? d. Controleer opslagplaàtsen waar alleen gelezen \^,ordi, ofrllecn g€schreven. Deze zijn riet uitgesloten, ze moeten goed worden gecontroleerd. Deconpositie wn DFD's oooreen top dowm,benad€r;Dg is de sysreemarchirect bercr in sraar zijn g€dacht€ n te ordcncn. ti ij kan nu van grof naàÍ 6jn werkcn, telkens binnen een cnkel deelgebied. Op het allerhoogste niveau zou men zich €en DFD kunncn voorstcllcn dat slechts uil één enkcl proces b€staat. De gegevensstromt'n tonen hier dan de interfaces tusse n het systeem en de exteÍne eindstations. Ditspecirl€ DFD staàt
3.11
bekend als een "coniextdiagram". Hct geefi ccn l,l.rckbox w.cr dar óón oinccÍ relrties hccÍi nret de buirenwereld. De blackbox is h€l rc bouwen syíeem. Als dit ene proccs nader wordr bcschouwd. zou dir weer kunnen bcstaan uir bijvoorbeeld zes subprocessen. l{er DFD vdn de "rwcede laag" is dan ecn uitsplitsing vaD dit cne pro.es iD 2.5 processen van lagerc ordc. Wrlnu, het hoogstc niveau waarop in d€.egelwordtbcgonncn, is een DFDvan vijftot zevcn processen, mer andcre wooÍden, her "allcrhoogste" niveau (van één enkel proccs) wo.dr overSeslàgen. DFD van
niveau.ul
t)it eersre DFD, dus hcr DFDdirecr onder hcr contextdiagam sraat bek.Dd rls hel Dlrl) van nivcau !rul. Hicr woÍdcn dc belarrgrijksrc functiesvan hetsystecm in opgcnonren- Êlk proccs wordt hi!'r voor h€t eerst Scnumnrerd.
DFD lsle niv€au van
Als hd ccÍste i)F-I) afis, wordt elk beschrevcn proccs opnieuw bcstudccrd cn verder u itcengcÍaftld. Hicruit ontstaar een nieuw DFD, een DFD van hct êcrsre niveau vaD decompositic. Lnan uitgaande d.tl het DFD op 0-niveau cD dc DFD\ vdD hct cersre nivcau beíaan uir zcs proccsscn gemiddcld. dan betekcnt dir dat op d.t eersre niveau al 36 processeD nroeten worden beschrevcn. Een de.ompositie rot op hct tweedc niveau houdt in dat eí zoir l2s lol 350 procesbeschrijvinSen moeten woÍden Sernaakt. Alle inkomendeen uirgaande srromen van dit proces op het hoSere niveau diencn ook rc wordcn Screkend in dil laScre nivedu. Alleen komen dczcsr.omcn op hct la'tcrc niveau vanuit een cindstation, ofze vertrekken naar een cindstarion.
Dieptevan decompo sitie
Hoe dicp dc deconrpositie moet gaan, k.n Dict zonder mccr wordeD 8czc8d. Het moet iD elk geval moSelijk zijn om op her laaSsre niveau de processen gedelailleerd te beschÍiiven op nier dan één A4. Hcl is niet noodzakelijk 'neer alle processen in een gelijk aanral lagen ró deraillcrcn. nelariefeenvoudige proccssen zijD wellichr in rwee niveaus (0 en l)voldocnde sedeiailteerd. De meer ingewikkelde pÍocessen hebben misschien een dicpre van welviifniveaus. Als cen derSelijke situatic zich oscnschij'tlijk vooÍdoet, d'n kan ook de vraag worden gestcld ofheteenvoudigc pro.es welophei 0 niveau rhuishoort. Voor het insewikkelde proces kan de vraag worden 8esreld ofeen .rnd€re decompositic nicr tot DindcÍ niveaus kan leiden. In dccommunicaric mct degebÍuikers/opdrachrg€verdienr alrijd een DFD van hetjuisre nivcau tewordcn Sebruikr. De hoossre leiding is wia rsch ijn lijk àlteen
gerrrtcre.,c
proces "beher voorí:rad" wordr bcschreven. Voor e(ar totallbecld van de oÍganisatie is hei lrijd nrog.liJk dc DFD's rop down als een piramide te preseDteren. Hct verdienr danbeveling bij de bespreking van ecn tepaald di:ig..Dr ahijd her niàsthogerc diasram re betÍekken. HieÍmee wordr bereikt dar de conrexr binnen het grorere gchccl
duideliik is. Dccons;tenric iusserde l)l-D's isvrn cruciaalbelang. Her komr vrak voordar
l)Fl) door versch illende metrscn worden onrwikkeld. De meêst e.vnren anJlislcn zullen hun aandachl concenrrercn op her hoogste niveau. l)e la8..e DFI)'s wordcn in de reSel door nrindcr ervaren analistcn ontwikk.ld. De red.n hiervoor is dat mer nrnredooÍ de rop down -benadering er absoluu( geeD fouten mog.n zirtcn op de hoogstc nivcaus. Dezc wcrkcD immers doo. op alle ondcrliggcnde niveaus. de diverse Iagen van ecn
t.l2
Er is een eenvoudigc rcgcl waarrneede consistentie tussen twcc DFD'S kan worden gecontroleerd: De gegevensstromen diê een proces op een bepaald niveau il]- en uitslroDr€n, moeten overeenkoneD met de geSevensstromen die €en niveau lager de hclc DFD van dat pro€es in en uitstromen.
Aft.
10. Deconpositie yan proccssek.
Inatb€€lding l0 staat cen voorbeeld van een decompositie. Ga na dat h€t aantàl in- en uilgaalrde pijlen in proces 3 overeenkomt met zijn decompositic. Bij het d€taiUeren van DFD's doct zich mete€n het probleem vrn dc opíag-
opslagplaatsen
Opslagplààtsen moeten meermalen worden opgenomen b;j decompositie v.rn DFD's. HieÍ wo.dt dus weloverwogen Íedundantie in dc modcllcn aangebracht. Àls een opslagplaats op een hoger niveau is aangebracht tussen twee processen in, zaldezelfde opslagplaats in twee lagere DFDi nro€ten voorkomen. Namelijk in dc DFD s van debeide process€n, wa:rrbij in hct dnc geral een gegevensstroom vanuit een proces naarde opslagplaars loopt en in hetandere gevalecn gegevensstroon vanuitde opslagplaats naar het proces loopt. Opslagplaatse'r die zich bevinden tussen twee proccssen op een lagcr niveau kunnen dus niet worden getekend op een hoger niveau, omdat ze zich daar imÍncrs binDen het proces bevinden. De ontwik.kelins en de decompositie van DFD'S is een proces waurvoor niel altijdeen en dezelfdc werkwijze kan worden gehant€erd. Voorde hrDd ligg€nd is de benade.ing waarbii eerst ccn contcxtdiÀgram wordt gemaakt, vcnolgens een DFD op 0 nivcau, d.ln op het eerste niveau etc. Deze methode gecft niet altid b€vrcdiseDde resultaten. Flen van de belangriksrc kenmerkcn van hcr systeem is zijn intcractie mct dc omsevins.
3.tl
TrigS€r
de pnkrijk reageren op cxtcrnc gcbeurrenissen een order plaatst, brengt het syst€eÍn op 8ttng, h€t is een
flet syst€em alsSeheelmoet in 0en
kl:nt die
zogenaimde t.igg€r die het syÍeem opstart. Een analysc vin deze externc gcbeurtenissen is daàrom uitermàte belangÍijk. Dc uilkomst van deze analyse kan worden gebruikt als e€n e€rste opzet voor cen DFD. De verdere ot1rwikkeliDg van DFD's kan drn zowel omhoog als omlaag plaatsvinden, waarl,ij veÍschillende heÍha1in8e!r niet ztn uitgeslolrD. Tot slot di€nt dan we€rde consistentie te worden gecontroleerd. Oelenopgave
I
Geefop twee manieren àan hoc een proces en ccn opslagplaats gegevens kunncn uitwisselen. Oelenopgave 2 Waarom kunnen opíàgplaatsen niet met elkaaÍ zijn ve.tonden?
oelenopsaw 3 Gegeven Een
rranspoíondememing
l)llt: ll8: ORD:
VI,: WP:
is geoÍganiseerd volgens her volgende schema.
Di.ectie Bedrijfsbureàu Magazin olicD en rcservedelen
Voertuigenpark W€rkplaats
AIL t L organxaties.hena
voor oefe opgave 3.
Situatie B1l plant de inzet van voertuigen voor transportopdrdchten. De laatste nrrandeD ond€rvindt B1l srceds vaker dàt voerruigeD die sepland ziin voo. lraDsporlopdrachteD niet inzctbt'ar ziin. VP geeft deschuld hiervan aan lVP,dieop haarbeurt deschuld weeràtuenr€h op de ande.e afdelingcn mct Jls a.gumentatie dàt onderdelen niet tijdig voorÍadiszijn, dat voo r o nderhoud sepland€ voertuisen niet beschikbàarziin en dat ve€l defecten niet tidis wordcn aangerneld. Men besluit€en projectgrocp in te stellen die als tàak krijSt een ond€rzoek in te stellen naar de oorzakcn va'r de problemen en voorstellen te do€n ter verbctcrinS. De pÍojectsroep wordr voorg€zeten door dc bedrijfsleider eÍ besraat vcrde. uit de hoofden vaD de onderliggende organ isaiie-eenheden. De projecr grocp besluitde DFD,tech!riek te hanteren voor her modelleren van de
Uit gchouden interuiews konren dc volgendc processen, srronren, opslag, plaatsen of terninators naar voren:
314
L
Toelevering van olie, smeerniddelen en reservedclcn.
2. LeveÍanciersoffeÍtcs. 3. Verzocken om traDsport. 4. Onde.houds- en transportplannnrS {UB). 5. voor reseryedelen, olic etc. 6. ^anvragen Werkopdrachten voor periodiek onderhoud of
reparatie.
7. Transportopdrachtcn. 8. Transportuitvoering (VP).
9. I
Defectmeldingcn op "c€constatccrd€ defectenÍ,rat". 0.]-e onderhouden voerruigen.
I
l.Materieelvoorzienins (ORD).
12.Oliê, sm€ermiddelen en resenedclcn.
l3.Ondcrhouden van vocrtuigen (wP). Inzctbaarheidsrapportages, gereedmelding€n, verbruik clc. GeÍepareerd€ €n/of onderhouden voertuigen. l6.Bestellingen vaD olie, .eservedelen ctc. lT.Afte voeren materialen (oude banden, defe.te onderdclen). I 4.
I s.
Gewaagd: TekeD cen DFD op 0 niveau met b€hulp van vorenstarnde gegevens.
O.Íenopgal/e a de ondcrstaande atueelding is een voo rbeeld van eeD l)FD diagràm geseven. Bekijk de afbeelding cens goed en gêefaan wat er ni€t klopt ian dit diagram en In
Kant
rg
1.0
1.0
Íekenins
alschÍ itt
Eestrande Íekening
Bskeninsen
I
nokeninqslitus
Aft.
KantnunmeÍ
I
/ro \ ("''"n/ ElokkeeÍ
lrcanten
Mminisuatie
12.
Processpecificatíes Ecn processpecilicaiic. mo€t bes€h rijven wat de transformar ie tussen de invoer, cn uitvocÍstroom iDhoudt. De processpecifi.ari€s zijn ondcrdcel van dc functioDele specifi.atiesvdn hersystccm cn moeten doo.zowel d€ systeemont wikkclaars als ook dc gebruikers gelezen kunncn wordcn. Her pÍobleem dat zich voor kan doen is, dat gebruik€rs vaak me€romschrijvingcn will€n hebbeD om duidelijk te maken wat cr moer gebeuren. Sysrccm-
z
Ll5
ontwikk€laars willen graag ee nd uid ige, algoÍitrnische onNchrijvingen wnt zij kunnrn gebruiken voor het technisch ontwerp.
@
Dc volgende eisen kunn€n we stellen aan het opsrellcn van een processpeciÍi-
. ' ' . .
Exácl€D eenduidig.
Ov€rzichtelijk.
functionccl (wÀT moet cr gebeuren). Controleerbaar. Leesbaa r voor zowel de systeemontwiklelaar eD 8cbruiker.
I,rocesbeschrijvingenof spccificatiesworden op bct laagstedccompositie, nivcau beschreven, dus als de pÍocessen in een DFI) scdetailleerd zijn uitsewerkr. ln zijn àlg€mecnheid kun je als richtlin ra,rhoudcn dat een proccsspc€ificati€ op één A4-pagina p,$1.
@
Gestructureerd Ned€rlands of Engels [en b.schrijving met woorden is vaàk onduidclijk o i in tcrpreteerbaàr op vcrschillende manie.en aÍhaDkelijk hoe ienand de wooÍden leesr. Een spcci6.Àric moet non-ambigious zijtli interpÍeteerbaaf op één manier. Om dit te bewerkstelligen moeten we de rcksl wat formaliseren ofvoorschÍiften opstellen. We !ro e'nen i;t Structureà Eenglith of G estruíÍureeft1 N edeiands. Een aantal regels hiewoor zij'r:
. ' ' L
Verwijs in de p rocesbesc h rijv ing alleen naar die segcvens d'e in her DfD bij het desbetreffende proces staan vermeld.
Cebruikeenvoudrgecn l.o'r
Sequenti€
Op€envolging van actics.
2.
Sclectie Den kcuze van àctics onder bepaalde voorwatrrdelr.
3.
Ilcratie
llerhahrg van actics. Voorbeeld van ecn processpccificatic:
Ilerhaal
voor elke cursus in CURSUSOVEITZICI IT als doccnt niet toeSekend aan cursus d3n registr.er docent in CURSUS cinde áls einde herhaal
Alle Dala flows moeten inclc processpecificatie vooÍkomen, want het doelvan het pÍoces is uiteindeltk de tronsformatie van die gegevens.
PíogrornfiastÍtrctuur we gez;eD hoc men, m.t behulp vrD deTop downbenadering, van een DFD,context diaSram Daar mcer gedetailleeld€ sut,
Tot nu toe heblren
l)FD-diagrammen kunt konen.
3.16
Het opstellen van d. pro.esspecifi€ntics op het laagste DFD-diagÍamniveau is de laatste stap van het functionele ontwerpproc€s. In dit volgende ondeftlccl gaan we kijken hoe we tot een logsiche structuur
kunien konenvoorecn programDr.t uitgaandevdn dcspecificaties in de DFD-
@
welke eisen worden nu gesteld aan programma?
Een programm,r mag geen fouten bevatlen. Dit kunnen (logischc)
programmeerfouten ziin. Bijvoorbeeld een t erekeningdie onjuist woÍdt uitsevoerd. Variabelen waar Segevens binncn het programma worden opgcslagen die niet geïnitie€rd zij'r wiardoor dc besilrwaaÍde fout is. b OndeÍhoudbaarheid. Een prosràmma zalalttd aan verandering onde.heviszijn doordat enen van gebruiken kunnen v€randercn, organisati€ enz. Dit betekent dat €en proSramma ecnvoudig ondcÍhoudbaar moet zt n zodat relatiefsDel aanpas, singen kuDnen worden gemaakt zonderdat er functionaliteit vcrlo.en gaat ofniet meer goed wcrkt (softwàr€ breakage).
Uitbreidbaar. Nieuwe functies moeten relatiefsn€l en eenvoudig kunnen worden aangcbÍacht zonderdat het hele prográmma herschreven moet worden. De structuur moer intacr bl'Jven. d.
Ilet prosranma moet l€esbaar zijn zodat andc.e programm€urs zonder al tc veel moeite d e structuur in her programma kunn€n bepalen. I l icr worden over het algem€en hosc eisen aan sesreld doo. l,ijloorbeeld het inste'llen wD Coà?et.taalaad tCodirj Íd'r,/drljJ en 'nspe(lie\.
Om àan bovenstaande eisen re kunDen voldoen is het noodzakelijk om het ontwerpeD van een pÍograrnma volgens de Top down{,enadering aan te Van globaàl ontwerp ror een verftnins wordt opgesplitst in deleD.
i'adbij
een programma ev€nrueel
Dczc delen oírnodulcn m oeten ee'r Logische eenheid vormen waarbij duidcliike /rt?tft.ei tussen dczc nodulen worden gedefinieeÍd. Modules kunneD dan afzonderlijk door andcre programme'r6 wordeD seschreven. EeD module kan heel goed bestaàn uir eeD aantal processcn van een DFD-diàgraÍn als dit een logisch geheel met elkaar vormt.
structuÍe chart Een prog.ammastÍuctDur kan grafisch worden wee.gegeven met behulp van een
íructur€.haÍ.
Dit
is een logis.hc opdel;n8van tuncries in
nodul.s dic op
een
hi.r.rrchh.he
màni€r wordr afsebeeld.
@ D.l, n,nerken h', c(n nru( rure LhuÍr /ijn: . Beschrijft tuncties cn subfunctics van elk d€el van het s)sreem. . Geeli de relatic wce. tu$€n d€ nodulcn vèn een programma. ). t7
Diagram is een boomstructuur met boven aan àe root n1oàule. tslke module is verantwoordelijk voor een
Àft.
13.
Vootl,.d,l
ee rtnihne (ha
van
.
In afbeelding l3 is een voorbeeld te zien vun een prosrdDrmastructuur iD de vorm van een structure.h.rt-
FlowChaís
Bij het formuleren vàn het programma wordt veelal g€bruikgemaakt van schcmrtech n iekcD of ( net als bij processpeci6caties ) van Sestructurecrd N€derl:rnds ofEngels. Een veel gebruikte scherntrtechniek is de Fiow.Iadr of PtuXratuMstnrom
PSS
s.r.r'd's
aPSS).
Programmasrroomschemá's (PSS)
@ lit
een aantal is een oude techniek dic al zeer la ng geb ruikh'oÍdt. tiÍ 'íorden standàardsynrbolen g€b.uikt om de noiv vJn het proSrrmma te visualiscren.
Bepaal
kwadÍaat(getal)
Alh.
3.l8
u.
vooíbcelà wtn
ee
Flow chort 1/oor cen íunctie die het kwadraat van een
In de vorise afbeeldins is een voorbceld geSeven van een flow chan van een functic diehet kwadraat lan een ingevoerd Seral moer berekenen. Als her Setal t lcincr is dan nu I, dan woídr er een routmeldinB Be8evell en mo(r een nieuw getàl worden ingcvo.rd.
PÍogrammaslructuurdiagram (PSD) E€n andereveel gebnrikte techniek is die van Ndr5i Nassi
shneidernann
@
Net als bi deprocesspecificrties wordt ook hier gebruikg€m:rakt van een aantal basiscontrolestructuren in de programmeerrechnieken. D€ze structuur
Selecti€
S hne'(lcnnann-
bcí,rdt uit
een opeenvolging van:cties ofopdracht€D.
Met de?e keuzeí.uctu ur kan gekozen worden uitwee ofmeer keuzemogeliikheden waar vench illende acties kunnen woÍd€n uitgevocrd. De keuze-uitslag is aÍhankelijk van een conditie(s) die als rcsultaat
''darofrier
Iteratie
Met een iteratie kan een deel vaneen programma (insrructies ) ecn aantalkeren herhaald worden aíhankeijk van een conditie. Zolang de conditie kadr is, wordt de iterati€ uitgevoerd. In albeelding rs ziet ude functiediehet kwndraatvan een getalberekent iD een Nassi Shneidermànn-diasram. BeÍek€n kwadÍaat van aon gstal 0oo rolang iNoeí is €€n getal
8eíichl :=
"qetalmoel0ÍoteÍ
Display(result)
dan 0 ziinr' Toon beÍicàt op
display
tinde AJt1.
B€Íek€n kwadÍaat van een gelal
tt. Len Nasst ShncLtLrmann-dta:a
nt,
De bovcngenoemde structuren kunnen ook senest worden (d€ één in de ander) zoals in her volSende voorbeeld.
t.l9
B€Í€keÍ hladÍaatvan een getal ooe zolang invoeÍ
h
een getal
8eíicht:= "gstalmoet gmteÍ dan 0
zÍn"
Toon beÍicht op
dhplay
Einde &Íeken kwadÍaatvan een 0elal
Aft.
16. F.en geíeste
stuctni h
een Nassi Sh ei.len'nnn-diagran.
oeÍenopsave s Een programma moet l5 tcmpe.aturen in fahrenheit die een gebruiker iDvoert, co'rvcrter€n naar Sradcn Celsius cn dezeop het becldscheÍm toncn. Als nlle t5 t€nrperaturcn zijn gelezen dan nroet ct ccn bericht "All. r.mpera
turen zijn venverkt" op het bceldscherÍn komcn. (De foÍmule vooÍ d€ conv€.sie n: C = (F 32) " s/e.) Maakecn Nissi Shneid€rma n n'd iagram van hct programma.
Gegevensmodel de gcgevensanalyse gaat het om de b€schrijvinsvan degegevensen dc relatie tussen di€ gcgcvens. Hiervoor 8aàn we in op een aantal te.hnieken en aspccten met berrekling tot
Bt
het gegevcnsrrodel:
I 2.
r.
Entity ltelationship-Diigràn) (ERD) lt€la(ioncel model Drra l)trtionary/Drre. ror y <)\rem íl rl)/l)Sl.
Elemeaten van een entity relationshíp-díagrafi ER-Mod€l
@
In een entiry.elatiorsh4,-mod.l (ER-modcl) wordt o.a. aanscscven: . welke cDtiteiten er zijn . welke relàtionships e. tussen entiteittypen bestaan . welkc auributen de entitcitlyp€n en Íclationships b€zilten.
EntiteiteÍ
@
De weÍkelijkheid wordt binneD een ERD s€DrodclleeÍd met b€hulp vrn "eDtiteillyp€D", zoalsARTIKEL, w.ike de voor het informaliesystcem relevànte objecten uit de w€rkelijkheid t eschrijveD, zosen.rdmdc entiteiteD. Een entiteit is, andeÍsgezegd, een nrdividueel voorkomcn €n het entiÍcittl?e is de beschrijvins ewan.
3.20
Voorbccldcnvan eDtireitt)'penvanecn luchtvaartmdrtschappij zijn: vliegruig vliescr
-
Passagier.
Einnen het ERD wordt €en entiteittype schematisch weergegeven door een rechthoek. (Er dienr te worden opgemeÍkt dát dit aÍhankelijk is van de g.kozcn
Relationships
@
@
Een "relationship" wordt beschreven door een "relationshiptype" en stch cer
vcrband tussen objecten voor. Binnen het Èl{D heeft e€'r rclationshiprypc e€D naàm, zoals IN BESTELLING. Binnen het ERD wordr een r€lationshiptype sch€màtisch weergegeven dooreen lijn. (ErdieÍt tc worden opgemerkt dat dit aÍhankelik is van dc gekozen variànt, een mit wordt hierook voor gebruikt.) De voor het object r€levante kenmerkcn worden binDcn de El{D "attributen" geDoemd en dezc woÍden weer beschrev€n door zogeraamde "attÍibul]ttypen", zoals artikelomschrijving ofprijs van het anikel. Een attribuut is, anders gezegd, een individueel voorkomen en het àttribuuttype is dc
bês.hriiving ervan. Binnen het ERD wordt een attribuuttype schematisch lve€rgegeven door een cirkel. (EÍ dient te word€n opgem€rkt dat dit afhankelijk is vàn de gekozcn varianr.) Voorbeeld van een entiteittpe met àtiributen wordt als volgt weergegeven: Bij kknt bijnotbeell: Kknt (àebiteurnunner, naan,
aàres, woonplaats, sltuo, bankíekenisgnunner )
Bij lactuur bij! o orbecl.l :
Fnctuur (factuurnunt' er, facnurbetlrag facnutnlatun, korttngspercentage,
Icn roorkomen ol o..uÍan.e !an ee" llrnr i' bijvoorhc(lJ:
001234 007888
Singe JageÍ
l0
Grachl20
Saldo
EankÍekeningnunmeÍ
254
88119900
2000
11221122
AJI'. 17. Voorbeed etiiteit eirclationsltip. Samengesielde gege
Van deze attribuuttypcn ztn de neeste enkelvoudig, d,rt wil zeSgen datze niet vcrder ondeÍveÍde€ld kunnen worden in átt.ibuutt}1]en (o6'el atomic). Màar
3.21
bijvoorbeeld het attribuuttype "Adres" k.rn nog wordeÍ uitsesplilst Dàar "Straaf'en "Huisnummer", deze noemen we het samengesteld Jtt.ibuurt)'pe. Daarnaast ondcrscheiden we nog éénwaàrdige ctr meeNaardigc attÍibuuttypen. Bij meerwaardige àttribuDttypen (weergcgcven door een cirkel in een
cirkel) kuDDcD in dezelfde entiteit, tegelijkertijd nreer waaÍden v.rn dat artri buuttypen vooÍkomen, bijvoorbeeld als een kh n t verscheidenc aíleverad resen heeft. tsijéénrraárdise attribuuttpen (weersesevcn door I €nkel) màg er Ínaar I waarde voorkomen, bijvoorbeeld klantnummer.
Domein
Foreisn
keys
@
Eenattribuur dieDtaangcgcven teworden welkcwaarden hcr mnshcbben. Een v€rzamcling vaí wàarden nocmen we eeD do,,rir. Een vooÍbccld is voor àttribuut rraaíd met DomeinwààÍden (januaÍi, íebruari, maart, april, mei, juni, juli, àugustus, septcmber, november, december).
@
Merkop, daterbinn€n het Eli-model gcen melding wordt gemaakt vàn foreign keys. Op hct Doment vai impl€mentatie van het EII-model iD ee,r .elationeel d:rtabases.hcma moet mcn zelfde foreign keys op de goed€ plddts defiDiëren. Aan her hiervoor stàande modelklant-factuur is niet te zien: L wal de pÍ!mài!e Jeulel rs van ell van beide cntiteittypen 2. w€lke vdD de tveepriÍnaire deutels als foreign keyin d€anderc relatiemoet worden opsenomen.
HiervooÍ
is dus nog wàt extra iníormatie nodig, re weten identi6caties en
Identificaties en Primary k€ys Per entiteiltypc wordt, b€halve d€ description (deverzameling relcvante attribuuttypen)ook vastgetegd, hoe objecten van hel desbetreffende cniiteiuyp€ geidcntifi cecrd worden.
Sleutelattribuien @ In
feite wordt hieÍmeede prinrairc sleutelbepaild aan dehand van een sleutel attribuur ofccn combinatie van sleutelattributeD (dat aitribuut ofdie attributen die een entiteit rrieft aa'rwiFt ofwijzen). [€n sleutelàttribuul wordt we€rgegevcD door de na:r', tc onderstrepen in de cirkcl. ln dit gcvàl zijn dc sleutelnuributen nogal simpcl. Bij de entiteit Klànt: debiteuruummer, en bii de entiteit làciuuÍ: factuuÍnummer. Zo simpel is het
Primaryk€y
natuurlijk nier altijd.
@
Cardinaliteiten Om te kunncr bepalen warí foreign keys moclen word€n toesevoegd, is het nodig te \ícten of€r tusseD tw.. gekoppelde entitcitt)"en (waar dus €en r€lationship tussen bestaar) ecD I op 1, I op N, ofeen N op M ve.houding bestaat. Wc spreken van kardinaliteiten (hoev.clheden).
3.22
@
In ondcrstaande aÍbccld;n8
is een
overzichtvàD cardinaliteiten:
l:l
Ff-@l l:r
Alb. t 8. Caftlinaliteiten ran rclati?Wen.
(l:l
)
koppeling: een klant heeft één factuur en een fàctuur behoort slechrs aan
één klant.
(l:n) koppeling:
een klant heeft één ofm€er facturen en een factuur bchoon
slechts aan één klanl.
(n:m) koppeling: een klant heeíi één ofmeer facturen en een factuur kan behoren aan één ofm€er klanten. Optionaliteit
@
Naasl de cardinalit€it bestaat er ook een optionaliteit, wat berekeDr dar er nier per se een relatie tussen enriteiftp€n moer zin.
M€t andere woorden, arnwezigheid van e€n occuÍreDcevan de entiieit is niet verplicht.ln het ERD geven we dit weer door een O (de O van Optioneel).
lCant
lGnl
HeeÍt
H€€íI
hcluuí
b.
Alb.
19.
Ophonalit.it en
ro
Kijken we naaratb€€ldiDg EeD
edige
optionliteit.
19, dàD
zien we dat het O-tcken bii fa.tuu r staat:
klant /@r 0, één ofmee. facru.en hebben en cerr factuur behoorr st€.hts
aan één klant.
Willen we ookfacturên die rturaan een klant gekopp€ld hoev€n zijn, daD wordt hcl O lcken ook bij de klant entiteit geplaatst waardoor de relatie nu ríordr: Een klant kan 0, één ofmeer facturen hebben en een irctuur kan aan 0. ión oameerkianten behoren.
@
Ah eer relatie betrekking heeli op entiteiten vaD ééD eDtiteittpe m.n ook van een rcc!rctcv. relarie- Zie aÍbeelding 20.
d.rD spreekt
3.23
Alb. 20. Recurs iev e relaties. EcD
entiteiuypc kanworden onderverdceld inrrlrrlper.
hebben
^lleentireitcn het zogc,ràamde eelr geD€enschappelijke sel vaD attribute'r dicbehoreD rot Het subtype hccft dus €en arnt.}l attributcn wàarin dcze zich onderscheidt. In aÍbeelding 2l zien w€ €€n voorbeeld. Ë€n cntiteit Artikel behoorr alleen tot het type "inkoop ,rrtikel"o f tor het t}?e "verkoop artikel" maa. niet toi beide. We noemen dir een d;sjl,r.tid. om dit ordcrscheidt t€ kunnen maken is cr een cld attribwt noàia
Subtyp€
bijvoorbeeld "..tikehoort".
"ilicercnd
lfikÊl
@@ Af1.21.Subrype.
MiÍinurn/naxinum
6)
Èig,:nlijkh er sprakevan cardinaliteitenparcD. Elke.ombinatie bestldr uit
nininum- eí
een
nLrn ,ncardinaliteit.
een Een càrdinaliteitenpaar geeft aan
hoeveel entiteiten van her ene type verbonden zijn (mogen worden) met het
andcre qpe. "exotische" gevallen wordt wcleens ecn (2,2) kardinaliteit getekend (bijvoorbeeld on weerte geven dateen mens precics 2 ouders hccf0, màardal bet€kent dan altijd dàt er in hct databascmodel één ofmeer extra constraints
h
(rescls) moeten worden toesevoesd. Moselijk is dat dus wel, maar het is nier .epresentecÍbaar in h€1 databasescherna alleen. Het voorgaaDdc voo.beeld sJmenvattend krijgen we h€t volgende Íelationele dat.rbaseschemà, $'aarin primarykeys onderstreept zijn €n foreign kcys met e€n stippellijn zijn onders(rccpr.
Klant (dctrj1ellssJarL fldon, adres, wookplaats, eldo, bankrekefli g"wnneí)
Fictuur (ísltrJllJJlaaeL àebiteumunntr, Jachurbeàftr& factuÍnatutn, ko rt i ngsp ere t a{e, wnaldatu n' ) Sam€nvattend kunDen w€ over de sleurelàttributen en de cardinaliteit stellen: elke entiteii krijgt sleutelattÍibuten (ideniification); dat zijn àttribuien, of attÍibutcncombinatics, wad.dooÍ een entiteit uniek wordt onderschciden
l.
3.24
À,
vàn soortgelijke entitcitcn. Het is dus een unicke identifi€atie binnen het
2. 3.
4. 5. ó. 7.
identificati€s kunDcD, als ze uit me€r iÍribulen b€staan, ookattribut.D b€vatten uit entilcilen, warrrnce de desb€tÍeÍIendc cntitcit een relationship heeft. een .elationship kan uiteraard vanuit twec cDtite;teD bekekeD wordeD. Vanuit elke enrircit is àan de relationship een caÍdinaliteit verbonden. een cardinàlitcn besraat uit e€n minimum en ccn maximumcardinaliteit. de ninimumcrÍdinaliteit 8eeft aan hoevccl cxemplaren van h€t andcrc entiteitt)?€ er aan een entitenvan het ent type m instens gekopp€ld mocten
zijn. de maxirnumcardin.rliteit g€eft aan ho€veel exemplarcn van het:ndere entiteitt)'pe er àaD ccn entiteit van het ene lype hoogstens gekoppeld d€ minimumcardinaliteir is (praktisch)altijd 0 of I, de maximumcardiDaliteit I of N. ltierbij sraat N voor0, I of meer.
oefenopsave 6 Geg€ven. Een medewerker bijecn bedrijfis lid van ccn teanr en wordt niei insêzet bij andeÍe teams.Hct bedíifkenr meer projecte'r dic uit verschillende teams bestaan waarb ij €lk teanbtéén projectis insodceld. Elkproject heeft eeD eig€n proicctleideÍ, wd.rbijde projcctl€id€r ook v€rscheidcnc projecten kan leiden.
Maak ERD van vorensraaDde organisatie.
^ft.
22. ERD behorcnàe bii oefenopsa,'etl
7,I en9
oefenopsave 7
welke bewering is of welke beweringen zijn j'rist? L De relatie "Klant plaatst Order" is option€€l. II. De relatie "Order.csel bevat Artikel" is optioneel.
A. All€€n I is tuist. B. Alleen II is juht. C. I €n ll zijn beidc juisr. D. I €n II zijn beide onjuisr.
3.25
Oefenopgave
Wat
is
I
d. relatie tussen oÍder en orderregel?
oefenopsave e is de relatie tussen oÍder en klant?
Wat
Relationeel model
@
Naast oDder andere het hiërarchische model, hct netwcrkDodel (CODASYLmod€l), ER model (ERD)en hêt obiectg€o.iënreerd model, werd rond le70
het rel:rtionêle gegevensbrnkmodel geintrodoceerd door David L. Child cn vooraldoor Edgar l.Codd, die slechts enkelejarcn geledcn €en nieuwc versic h€efi voorgesteld,die met naDe de integriteitsbcwaking van de gegevens moct
@
Dit modcl is gebasecrd op de verzamelingenlee. ujt d€ wiskunde eD op het get ruik vrn rclationel€ alg€bra. Ilet relationclc modcl wordr inmiddels alin mee. daD I 00 Íelationele datdbasemanagementsystemen (RDBM S, het boven, gcnoemde allesomvattend bestànd) toegepast, oridcr ander OPdCLE e!l SY llAS I SQL SERV E R. lJin ncn het relationele model wordr in r€genste]ling tot v€le rndcre modellen seen sebÍuikgemaaktvan grnfische symbolen, naar door haaí eenvoud bestaat daar ook geen behoefteaan. Doordie eenvoud kenr her ook €nkele beperkingen, mrarjuist weer door die eenvoud is het imnrens
@
Zoals ecrder opgemerkt we.d, is erbii het r€lationcle model van €en geSevcnsbank sprakevan ccn zeer fo.mele aanpak, gebaseerdop de vcrzame-
Deffnities
lingenlcer uit de wiskunde. Ecn relationele database is een gesevensbank waarin de gegevens in dc voÍm van relaties/tabellen wordeD geprescntee.d. Selatie/Tabel: WEBI(NEMERS Attribuutlypen/kolommen
Entiteilen/tuples
afdeling
r0
Debiteuren
2A
30
Credit€uÍen
40
Schetotische weergtl)e rclationeel'noáel.
R€latieoftabcl
@
Een rcl.rtie, relation ohvel ràbclbevat àlleÍhande 8€S.vensvan één type objccr. De relitric IVERKNEMERS bevat allerhànde gegevens van het objeci
WERKNEMER.In dit voorbeeld isWERKNEMIIIS de relatienaaÍn valr dc relatic. I{elatie is d€ fodnele naam en in de praktijk komt vàak de term tabel voo., dus waar u tabcl leest, kuDt u relatie lezen en àDdersom.
llk
afzonderlijke relatic in de relationele database bevatdus alieen desescvcns sooÍ en dicnt ian een aantàl€iscn tevoldoen:
van oliecten van één
Eisen aan een relatie . elkc relatie een zelfstalrdige e€nheid . €€n r.latie bevat 's slcchts gcgevensvan één soort ol,tect . dc volgoÍde van de enriteircn in de Íelatie is Diet v.rn belang . de volgorde van dc attÍibuten binnen de entiteitcD is niet van bchlrg . clkc €ntiteit in de relati. nroet een uniekc idcntiiic,rticmogelijkheid hebben
3.26
dezeuniekeidentificatiemoetaltijdeenwaardehet[,en,màgnietd€wa
AtrÍibuut
@
ofkolom
(}
Een object is€en ding ofeen peÍsoon warrvan gegevens binncn cen (geauro matisee.d) model worden beschreven. Zo kan nen ralloze objc.ren bedenkeDj GEBOUW, Kl-ANT, PIIODUCT enzovoorr.
Om een object te beschrijven, woÍden erarr.ibuten aan de relalic rocgcvocgd, deze attributen zeggen dus iers over her object- H€r auribuut NAAM uit de relàtiewEItKN"EMEIlS zegt iets over het object weÍknerner, nameljjk dat bij de werknerner een naam ingeruld kan wordcn. We zegger:tran worrlor, omdar dit attribuut om eenofaDdere reden (biivoorbeeld omdat de naam van de nieuwe rnedewerker nog nietbekend is)niet inSevuldhoefr tcworden; wespreken dan over de mogelijkheid om het attribuut de waarde NULL te geven. LET Op: de waarde spatie ofleeg heeft een andere betekenis dan de NULL,waarde. tn sommise Sevallen is het iívull€n van een waarde verplicht (ook al is her een spàtie), dàn spreken we over een NOT NULL waarde. Zo zal bijvooÍbeeld een ondernemins die arriketen bestettbijeen t€venncier, het attribuut LEVEP.ANCIERNUMMER vermelden in de relatie waarin de
beÍellingen zijn opg€nomen. om àlle lev€rancierste kunnen onderscheiden, is het verplicht dat elke Ieverancier een Íummer heefr cn dus g€tdr voorhet leveranciernummer dat een NOT NULL-waàrde moet word€n ingevuld. AttÍibuuttype
@
àttribuuttpe d€finieeft het soort kenmerk van een verzamelins ob'ecten tot I íelatie horrn. Dit is de formele definide van de formêlc naam atrri, buutt'"e, in de praktijk komt hiervoor vaak de naàm artribuut ofkotom voor. Een
die
De (€chte) inhoud vtln de attÍibuten, zoals jANSEN bij het attribuut NAAM,
wordt ook wel attribuutwaarde SenoeÍnd.
@
Een domeiD begrenst het bereik van degcgevensvan cen attribuut en geefr aan welke waarden rnogrn voorkomen, een domein geeli dus aan war de toegelaten
iíaarden zijn vooreen attnbuur. Zo kan bijde definitie van de.elatie WERKNEMERSh€r dom€in NUMMER woÍden g€bruikt waarin wo.dtaange geven dat au€€n dê waarden tussen 0 en 10000 mogen lvordeD gcbruikt. De attnbuutwaarden kunn€nworden aangenerkt als ecn d€elverra meling van her domein met b€hulp waarvan het attribuutype van de relatie is ontstaan. Hetzelfde domein kan rneerk€ren worden 8ebÍuikt, men kan bjjvooÍbeeld hct domein NUMMER ook sebruikcn voor het attribuut ATDELINcSNUMMFR uit de relatie AfDgt.tNG. Nog duidelijkcr is biivoorbecld her domein MDETGETÀL (bijvoorteeld tussen l0 en +j0 graden) bi, de attributen tste MEETGETÁL en 2dc MEETGETAL
Men kan een onderscheid màken tussen
€cD enketvoudiS domein en een hetbesr uir rc lcgSen aan dc hand van een voorbeeld. Vrakwordt het meervoudig domein DATUM gebruikr, her is mcewoudig omdàt hct op te splitscn is in dc enkelvoudise domejDen DAG, MÀ{ND en
nceÍvoudigdomein, dir
is
3.27
jdAR. Ah
Entiteit of tupels
@
een domêin nietv€.dcr mceÍ is op te delen, noemen wc d€ze domcin
De gcgevensvan clk objcct worden opSenomen als iénentiteir vrD de voor dir tl'pe obj€ct gecreëerde relatic. De rijen, entilciten oiwel tupels vaD een rel tie zin de diadwerkelijke waaíden die één obi€ct binnen de relatie bes€hÍiven. Hierin stàat dus dc daadwerkclijke info.nratie otuel, zoals we alecrder hebben gezien, een deel van de extensic ofpopul.rtie. Alle tupcls vaD een relatie hebben exact dezelfde vaste rt-indeling, overeenkomend net de kolomind€ling vin de relatie. In ecn gegeven kolom kunnen slechts wàarden worden opg€nomen van her kennrcrk ofde eiScnschap (lccs
domein) die voor deze kolom in het leven is geroepen. Elk tupel heeft voor elk attribuuttype één ofmeer attribuutwaarden. Een voorbeeld reí verdu idelijking-
Steldat uover een groot arntdlboekeD beschiktdje u ookweleens wilt uitlenen. Dan is hetbijTondcÍ plezierig te weten a.1n wie en w.rnneer uwelk boek hebr uitSelecnd. DarÍvoor is her nodigeen klartenbakjeaan releggen, wanÍin u cen cn ander krint vàstleggen. Op den duurvoldoet dit niet meer, bijvoorbeeld omdat u steeds vaker de
vrlldgkrijgt oiu van
een beprilde aureur nog n1eer boeken hebr. FIet zou dus handig zijn on aluw boeken op een lijst re hebben, Scrangschikr perauteur. Het objectwadr wehier over praten is:8OEK. Die Saan we opnemen in dc relàti€ met de naam "BOEKEN '. Darrin konen dus all€ obiecten die voldoen aan de soo tums.hrijving "boek . Dan rest nog de vrr.g welke ge8€vens van elk boek nroeten worden vaígelegd. Tnelen auteur lijken noSalvanzelfsprekend in arDnerkingr€ komen. Maar mogelijk vindt u hel cen goed idee om ook het genre en bijvoorbeetd het jàar van arnschàimee
de volgende definitie voor dc relati€, ofanders sczegd de kolomiDdelins van detabel:
Dit geeft dan
BOEKEN (boeknrnner, auteur, Ínel, Setrc, \anschaJiaar) D€ verzameling BOEKEN is te tperen als een mccrvoudig domciD van ob,ecten die als 8e'reenschappelijk kenmerk hebben dat ze zin oP te sPlitscn in de e'rkelvoudiSc doneinen boeknuÍnÍneÍ, auteur, titel, genre en kan men bijvoorbeeld hct aanschataàr. Bij het attribuur ^ANSCHAFIAAR waàrin staat dat het bij irrvoeren een domein ÀANSCHAFJ-dA.R definiéren getalmoct zin van vi€rpositiesen waarbijde waarde maxima:ll één jaar ecrder ma8 zijn dan hct huid ise kalendcrjaa Í. ovcrigens maakt h.t geerr veíschil in welke volgorde u de kolornmen plaatst, maardegekozen volgorde geldt welvooralle rijenYan deerbij betrokken tabel. Door het ondeÍstrepen van boeknu m mer wordt aaDgegeven dat deze kolo m d. zogenaamde "sleurel" bevat, wrardoordezeentiteit
uniekwo.dt HicroveÍlater
in dit hoofdstuk meer.
Duidelijk zal ztn dat in de dcsbetreffeDdc kolommeD waarden Doeten Íàan dic aansluiten op dt kolomnaam. In dc kolom met als naam "auteui' mogen beslist g€en titels worden gcplaatst.
\24
Een tupel in dit voorbeeld is bijvoorbeeld: JD00 t0 I. Hector Mak t, Alleen op de Nereld, jeugd, 198s
Alle tupcls Slentels
@
bi
elkaar Doemt men ook wel dc populatie van de relarie.
Een r€latic oftab€l is cen verzàÍnelingvan tupcls die elk éón objecr wcergeven van één bepaalde soort. Bii de te Íellen eisên àan een relaric werd opgcmerkt dat de entiteiten van een veuamelins van elkaar dienen tc verschillen oÀ{el er moet sp.akezijn van €en
unieke identificarienog€lijkheid. Dit houdt in dar de tupels in een rcl,ttie afzonderlijk benadcrbaa r en van elkaarte ondcrscheideÍ dienen te zijn. De (combinaties van) attribuuttypeD die e€n Íegel uniek makeD, Do€mr men wel de kandidaar-sleutel.
Kandidaat-sleurel
@
Voor de kandidaat-sleurel geldt dat rnet één bepaalde waord€ van de kandidaat,sleutel één en niet meer dan één tup€lvan de desbetreffende retatie wordt aangewezen.
Minimalesleurel @
Deze kandidaat-sleurel kan rninimaal ziin, dat wil zeggen dat als we één drtri, buutt)pe uitde min imale sleutel weglaten, er mer de overblijvcnde co,nbinatie meerelementen worden a?ngewezen, terwil we dit nier wi en. Ats we bijvoor-
b€etd in plaats en op categorie VERF€n producr RUS, gaan zoeken op alleen cateSorie VERI, dan krijgen we ook de productcn KWAST, AFBrlT,
MENGSEL enzovoort. Een kandidaat sleutel wordt gezien als een minimale derermhant van eeD relàlie. DeteÍminant is dan de bepalende facror (ofatlribuur) met b.rrckldng
tot het aanwijzen van een tupelj dir wordtaangeveD sleutel
dr€na- @
Prilnaile
en
vÍeende
sleutel @
+
als
afi,ankelijke velden.
Uit de mogelijke kandidaat,sleurels wordt eréén gekozen die alssteut.l voorde tupel dienst gaat doen, deze primaire sleurel (primary key) wordt sreevast gebruikt vooÍ het idenrificeren v.rtr de tupels. De ni€t-gcb.uikte kandida:rtsleutels wordeD alternatieve sleulels geíoemd. Uireraa.d is voor a|e tupels uir éénbepaalde relaric de gekozen prinair€ sleutetgeldend cn kan eeD rupelmaar één primaire sl€utel hebben. In principe isde keuz€ van de primair€ slcutel binnen de kandidaat sleutels vrij, als deze rnaar aan de voorwaa.den voldoet. In tegenstelling tot dc kandidaat-sleutel, geldt dat een primair€ sleurel gc.n "null-traardc" mag bevattenj er dient altijd een rerzate djenende waarde in
In h€t relationele modelwordt, zoalsal werd opgcmerkt, de sa,DeDhang russen objecr.tr in verschillende relaties verkregen door eenzelfdegegeven in de,relate rende tab€llen op te nemen, bijvooÍbeeld hetKLANTNUMMER is opgegevcÍ) als primaire sleutel in het klantenbestand cn ats anribuut in <je relatÈ BESTELLING (Noot: hier is klantnummer geên primaire sleutel). rn die gevallcn 8àat het meestal om een p rimaire sleu ret van de ene ràbel, itiê dan niet als primaire sleurel in dc andere rabet voorkomr, maaralsecnvan de gewone" attributen eD dat wo.dt b€titeld ah "foreign key" of,,vreemde sleutel;. Als een primairesleurcl uit een combinatie van attribuurryp€n besraal, Seldt voorelk dcel van dezc primaire sleuteldat het een "foreisn key,kan zijn.
129
@
Een relationcel databasesysteem zal nagcDoeg altijd de koppelhgen tussen dê
tabellen Det l,ehuh is een
van.oníldtrri (bepe.king€n) wà:rrborsen. E.n.onstraint
voovaarde waaraan dc waarden in de rabel mo€t voldoen. Een
voorbeeid van een constràint is dat elke orderregel e€n ordernummer moet hebbeD. 0Ídema
BqqL 0Ídemr Áítikelm 0Ídsísgel
45174
87
32t74
8t
3
87
457t4
Afb. 23. Eefl r:n rclaÍie ws ee,t ORDLR net ORDERREGEL. De fotuli key in relotie ORDERREGEI is de Ptinary'key in ORDER. Oeí.nopgaee I0 Welke bewerins is ofwelk€ bewerinSen zijn juist? Een domein geeft aan welke gegevcns mogen voorkomen. II. EeD tupel in cen tabel kan wcl worden beschouwd als êen record in cen
L
A. Alleen I isjuisr. B. Alleen II is juist. C. I cD II z;jn beidc,uist. D. I en lI ziin beidc onjuist. oefenopsave | | Hoc is in de tabel ORDERREGEL in afbeeldins 23 er voor te zorgen artikel maaÍ één kee.voor komt in ORDERREGEL?
dlt
een
oefenopsave 12 welke manier wordt afgedwongen (constraint) ddr €€n attribuut een waarde mo€t krijgen?
op
Dat.r Dictionary/Directory Systeít (DD/DS) Ëen data dictio nary (dictiona ry = ríoordenboek) isin feite nietsaDdersdan€en centrale opslasphats van diverse metagcgevens iDclusiefond€rlinge relatics' die biihet totstandkomen cn nrstandhoudcn van €en informalicsysteem eeD rol spelen. U moêr bii deze geg€v€ns denk€n aan geScvcns over artributen, entiteiten, bestanden, transacties, programma's, gebíuikers v.rn het infoína tiesyíccm etc. en de onderlin8c Íelati€s dic er mogelijk bestaàn lusscn d€z€ ( meta )gegevens. Ilet directory system vormt in íeit€ ceD toegangssyÍ€€m voor
de data diction.lry.
@ Repository
3.30
In de pràkrijk is de data d;crionary vaak een databasc ofRePo,irory die vorelr' g€noemde gegcvensb€vat iDclusiefallerlei opvraaS-, raPPortag.- cn mutcrin,tsfaciliteilcn met bctrekking tot deze gegevens. De ontwikkelingvan
dedata di.tionaryals hulpmiddelom metagcSevems beheersbaaÍ vast rc leggen, is nog in volle gang. Behalve het gebruik van de genoemd€ data dicrionary mogcn ook andere geautomatiseerde hu\,middelen die bij de onNíikkelinB vdn inform,rriesys temên worden gebruikt zich in populariteit verheugen. Notatie
@
VooÍde norarie geb.uiken w€..n aanral baskst rucruren: scq uenr ie, herhaling, sele€tie, optionaliteit. [r dient opgemerkr re worden dlr er verschillende notatiewijzen wo.deD gebruikt aÍhankelijk van het gebruikte ontwikkelrool (Case
Sequenti€
lool) of ande.zijds.
Dit beÍaat uit
een opeenvolgins van elem€nren.
Abonnee = naan + adtes + Iidnunmer + ingangsàatun
Herhaling
Dit bestaat uit
een herhalingvan een elenent. Een
minirnum en/of
maximunrwaarde kan eventueel opgegeven worden. 0, I, oímeer "maand elemenren. I tot 30 "dag" clcmenten. Selecti€
Dit bestaàt uit
een k.uze uit e€n verzamelins elementen_
Kleur = kooà/seeubkwl
0ptioÍaliteit
Dit besta.t uit
een oprioneel €lemenr. Hetelement kan
voorkonen ofniet.
Adrcs = post.oàe + r,oonplaats + (Lanà)
Het element
"land
is optioneel en hoeft niet bekend ic zijn.
Gedragsmodel Bt hei gcdragsnod€l worden
de dynàmischeaspecten van her systecm bepaatd. Er wordt gekeken hoe de interactie (inrerface) verloopt m€t andere (d€elhystemen en gebruikers. we kijken naar een aanral technicken die gebíuikt worden bij het modeltcren van dialogen en het ontwerpen van beeldschermen om die dialogen te imple,
Dehuidig€ systemen h€bben ecn steeds gÍotcre interactic lrct degcbruikersen heeft dus invloed bi, het uitvoe.en van de wcrkzaamhcdcn van die gebruiker. Hienoorgaan we in op een aantaltechnieken en aspeden m€t bekekking tor het sedragsrnodel:
Diítloogofltwetp STD
To€standsdiagram
In de dialoogbeschrijving wordr, mer b€hulp van de techni€k Srate Transirjon Diasram (S'lD), aanSeSeven welke berichten en in welkc s'menhans woÍden uitgewisscld tussen h€tsysteem en dcsebruikcr. Hierbij iville n we de gebruiker de afloop van het tra nsactieproccs laten sturcn e n beïívlocden. Daartoe d i€nen
3.3l
we de benodigde informàtie hiervoor in de dialoos aan dc sebruiker nan te .eikcn. Het transactieproces wordt, zoàls e.rder gezeSd iD eeD aantal stappen uitgcvoerd waarbij van d€ ene toestand ndar de andere toestand vaD het
@
conditie
@
Geb€unenis
@
@
syst€em wordt ovcrgegaan als men een stap heeft doorlopen. De S'l D diagnmÍnen kunnen nu deze toestanden en de manier waarop deze worden bcr€ikt overzichtelijk in kaart brengen. Dc toestand waariD het systecD zich bevindt, meestal is dat initiecl cie wachG
Zodrà een bepralde geb€unenis zich voordo€t, vemndeÍ de toestand. De overgang naaÍ ceD andere toestand wo.dt aanseseven door een pijl. I)it bcpaald ond.r welke voorwarrden eÍ iets mocl gcbeuren zodàt ccn toestandsovergang kan plaatsvinden en welke acti€s daarvàn het gevolg zijn. tlet event dat het systeenr doet r€ageren. Zodls een ingcvo€rde pincode ofher oPnem€n van een lelefoon. Bij het beSin van de dialoog wordt all€en de actie veÍmeld. Hetstarten van de dialoog valt buitcn het schenr v:n de desb€tr€líende dialoog.
v Ízrht
-
- l
I
'/cursus I "t|m'"| / roo**o-"sNÍuti"srheserêdeeÍ
l
Registnlis ok ïoon cuÍsusoveÍrichtsch€Ín
AJb.21. Dialoogstr ctuur weergege"en jneen STD. Grote en complexe dialogen worden Top down benaderd, wàarbij eerst oP het hoogste niveau een STD wordl gcmaakl. Vcnolgens wordcn van de subtoe' stand€n weer aÈonderlijke STD diagrrmnr€n gemaakt met eenverderc detaillering. Hierbi is het b€tangriik orn de consist€ntie van de STD-diagÍamm€n te waarborgen tussen de niveaus. In aÍbeelding 25 is hetverfijnde schema vàn €en STD te zien van de locstand "Cursus r€gistratie'. Het is íatuuÍlijk denkbaar drt tijdens het opstellen vin hel schcma van een lager riveàu, eeD wijzising noodzakelijk is in de hogere niveausvan hct diagram. Opdie ma nieÍ vcÍkÍijgt men €€n compleet en consistent ontw€rP vàn een dialoogstructuu..
3.32
Student ok
Aft.25. Veràere detaillerins lon cuns regittntie d;aloogstructun.
Dialoogvormen In het voorgaande hoofdstuk hebben we al aangegeven dat het ontwerpen van dialog€n voortvloeien uit de transactieanalyse. We kiiken nog cens terug naar dc aspecteÍ van de transactieanalysc:
@
H€t ontwerpen van een dialoogkent de volgende aspecten: Taken van de gebroiker.
. ' . .
Systeemtunctiê. Eisen €n wenscn van de sebruike.. Type gebruiker.
Tijdens deze fas€ is het van b€lans dat de gcbruikers erbij betrokten worden omdat zi uiteindelijk dc tak€n moeten uitvoeren. Doordc tdken (functiet eD de daarbij behore nde gêgevens te groeperer cn op te splirsen, krijgt men uitein-
delijk een ovezicht van de tràns?cties. Een dialoog heeft ienslotte
betreRingop
een bepaaide transactie.
Om rot een geschikte dialoog te komen, bekijken we ecn aantal standaarddia loogvormen die u ongetwijf€ld wel een keer benr t€gengekomen op uw eigen PC.
@
I)esebruikerkan djn keuze maken uit
eeD
lantal mogeliikhedeD en
d€ze selcc-
l)it kan een keuzem.nu zijn waarb', de gebruiker uit €en liisr kan kiezen door een ciife. ofletter in te voeren. Tegenwoordig zien we meestal dar een keuze door middel van €€n muisklik geselecteerd ríordr.
@
Dii zijn pi€tosramrncD Gymboler)wadrop degebruikerkan klikkcn waardoor bepaaldeactie wordt uitgevoerd. Dit zi.D we voorai bij Microsoft Windows
een
bcsturingssystenen.
3.33
@
In dit soort men"'s wordcn de keuzes naar benedcn afgerold rvaardoor men lagereen submeDu krijgt lezien. Hieruil kan gekozen wordenofals 'riveau ceD keuze-iiem w€er beslaat uir c€n submenu, weer vcrder naar beneden af8c.old. Een voorbeeld is te zien in atleelding 26. ccD
oÉ:g a:rF*.'
.]#
/ !.
9
E EÍl i.i oeo'- *' tlal A;
o
Fr$n::; I e-s'-
\oon, o'l'À'==Érí; Aft.26. Pu down nenu.
@
vraag en
antwoord @
InwlÍornulier
3.34
@
Een pop up-Ínenu verschijnt rls ecn gebruikerop een bepàaldcplaats op het scherm klikt (me€stal re.htermuisklik). Dit soort menu's kunnen conra.,rr alnnkelijkworden gcnaakr. Bijvoorbeeld als men op ccn scherm op de titelbalk met rechts klikr, zier mcn een pop up-menu die.rndeÍs is als nen hetzelfde doet in het sch€rm zelt De plaats bepaald dus wat voor soort keuzcnrogelijkhcdcn er zijn. De gcbruiker wordt via vragen cn antwoordcn dooí de hclc trànsa.tie g€leid. Bijdara entry-sch€rmen kuDncn bi wtzigingen van gegevens b(paaldevraSen woÍd€n gesteld waarbij de sebruiker antwoord moet gcven.
Ook hicr voornanelijk te Sebru ikcn b ij data entÍy-scheÍmen voor het routine matig invoeÍen en/ofwijzisen vàn gegevens. Het invullen van bijvoorbeeld a.r ikclgtgevens kan met een nrvulformulier afgeha ndeld wordcn waarna door niddel van €en klik op een button, degegevens in de d0tal,ase worden
C -.
'3
. l,
|l.RoA :€oz
! s r!l.
\floga a-1,À-=-Éat, @t
Aft.27.
Pop up-nenu.
Voor het zoeken van
auer)'taal
gesevens in bijvooÍbeeld cen darabas. k'n dc gebruiker vragen stellen met bchulp van een querlraal. Volgens een bepaalde syntax kunnen vraà8opdràchren wo.den gefornuleerd. Ecn voorbeetd van een querytàAl h SQL.
SELECT artikelnummer, aftikelnarm, anikelprijs, buten van de tabcl)
ardkel$on
(de artri
FItOM ARTIKEL (de rabelDaám)
wHERE artikelsoorr = 'veÍkoop' (condirie is: zoek
opdrachttaal
@
de
verkoopartikelen)
D€ geb.uikergeeft via commando's en opdràchren aan wai hct syste€m moct Deze vorm wordt vooral toegepasr bij systeemprogramma's cn besrurinsssyst€men zoals UNIX en DOS. Hie. wordt van de gcbruike. een zeker kennis-
niveau verwacht van het systeem.
C>DIlt
:
commando voor het weergeven van bestanden in een directory
C>MKDIR : commando voor hcl crcërcn van een nieuwe directory. Natuurliike raal
@
Deze vorm heeft veel weg van het v.lag en-ant woordvorÍn. De iàal waarin men zich kan uitdrukken is veel vrijer en minder gebonden aan €en strakke syntax
3.35
FIer gebruik van dez€ vorm zal nog wel cven duren ma,rr voorbeeldcD zijn dc zo9eíàamde e\pen syttener waarbij het systeem een zekere mate van kunsr
matig€ intellige!rtic beschikt.
Combitratie
Mecstàl wordt bij h€t ontwerpen en irnplcmenteren cen combinatic van de eerd€rgeno€nrde dialoogvor,Icn sebruikt. De en'aringvan de gebruiker ofde frcquentie van bepaalde haDdclingen bcpalen de keuze van de dialoogvorm. Handelingcn dic frequent phàrsvindcn, zullen niet gauw in de vorrn van een p ull down men u plaa tsvindcD, maar eerd e r in een invu lformulicr ( Íou tinewerk).
oefenopsave t3 Gegeven
lr
moct e€n overzichtschernr komen voor artikelen rvaarop een zoekselectie kan worden opgegeven.IDitie€l is het ovcrzi€htsscherm nogleeg. Na invullen van het zockpatroon wordt er in dedatabdsc Sezocht naar artikelcn dic d|araàn voldoen (bijvoorbceld alle artikelen van leverancier X). Op hct overzichtsscherm wordt het dcsbetÍeffende artikel in delijst aangeklikt waardooÍ in een anderscherm de artikelsr.mgegevens kunnen worden aaDgepast. Als dc wijzigingcD zijn doorsevoeÍd, gaat m€n lcrus DraÍ htt oveÍzichtsschcÍm mct de lijst van artikeleD. Maak een dialoogstructuur mct behulp van een STD.
u
oefenopsave waarvoor wordt de dialoogvorm querytaal vooral voorgebruikr? oeíenopssve ls Wdt wordt b€docld met cont€xt aÍhankelijkt pop up-ncDu's?
Objectmodel ln dc voorsaande hoofdstukkeD hebben we al kennisgemaakt met het objecG geurrënrrerd modell
Hiervoor gaan wc wat dieper in op een aantal techniek€n en aspecren mct
belrekling tot het objectmodel. t:ersl kijken we even terus naa r de versch illende diagr mmen die t innen
.
UMl.
Us€ case ditlgram
Laat de inter0ctie met het systeem zier met externe entiteiten zoals gcbruikers. Il€t systeem is in feite een blackbox.
.
3.36
Klassediagram Laat de Íat ischc
Íructuu r zi€n van
de
entiteiten van hetsvsteem als klassen
'
Objectdiagram Làat de statische structuur zien van dc cntiteiten van het syst€€D als objecteD en hun relarics.
. .
Sequence-diasram L.rat de events oimcssag€s (boodschappen) in volsorde van de rijd zicn tussen de entiteitcn van het svsteem.
Collabord'ion-drddrJm i-art de interactie tussen de objecten zien om een bepàaldeservice oftràDs actie uit te voeren.
. .
Stnt€-dià8ram l.aat de toestanden (States), eveDts cn acties zien bevinden gedurende zijn bestaan.
w.,rin
een object zich kan
Aclivity-diagrim Liat de activiteitcn zien die door
een deel van het systeem wordeD uirgevariant van het stat€-diagram. H€t laat de internc proccssins (Row) zien van de aÍhandelins van €cn bepaald event ofde p.ocessing (llgoritme) van de opcraries biDnen een object. Het kan ook seb.uikt worden om bcdrifsprocessen in kaarr te brensen.
vocrd. Het is
.
eeD
Componentdiagram Laat de softwarccomponenten zieD van het systeem en de relaties russen deze conponenren.
E€ncomponent in dezecontext is €en €xecuteerbare eenheid (module)met duidelijk gedefi nieerde interfaces.
'
Deploymentdi:rgr.rm Lnat d€ softwaÍecomponent€n zien zoals ze (run time) gebruikt wordcn iD cen bepaalde systeenrconÊguratie.
In de voorgaande hoofdstukken hebben we de oo-basisconcepren bchandeld w.ldrin werd uitgelcgd wat objecteD en instànties zijn, een klasse met daariD auributen en merhoden (de operaries). Dezeconcepten geven in feite een specificatie van her objecr en zijn gedÍas. Nu kijken we hoe de onderlinge samenhang tuss€n verschillende objectcn wordt Semodellee.d en welke rechniek en norariebinncn UML daarvoor
gebruikt wordt.
salneDhdg
In een syst€emmodel wordt het gedragen de tunctioDàliteit nier bep,ratd door een enkelobject, maarondeÍ andere uit d€ onderlins€ samenhans van een aantal objecten. Een butron op een beeldsch€rn sraar nict op zichzelf, maaÍ vormt sam€n met her scherm en andere buttons en invoervelden e€n functioneel geheel.
Klassediagrum
@
Eor drroc,af'e í4ssoctatior) is een structurele relati. tussen twee klasscD. SrÍuctureelbetekent dat hot een langdurige rclari€ is.
3.17
Tussen twee kltrssen kunnen ook meerdeÍe associati€s bestaan. De associalie pLloot l'( trrlr een vbegluiS is JnJers d.rD de r"\o. iJlic r. p4$d!r.r vrn
vliegtuiS. fusoclátê
28.
Link
Rol
@
Netzoakeen objeci een instàntie isvanecn Klasse, iseenlinleen instanticvaD een ar5o(irlie Iu\\cn rwee rBcin5trnlieerJe) obiÀt(n. De not.ttie is ecn doorgetrokken lin tusscn detwee klasscn w:aÍbij de rda', van de associatie lanss de liin wordt geschreven. De conventie is ddt namen vrn links nàar rechts ofvànboven nàarb€neden gelezen worden. Indien toch van re€hts naarlinks moet \íorden g€lezen dan wordt di( door middelvan ecnPtl
@
Een obiccr kan in verschillend. associar ics versch illende rdlktr írole)spelcn ln atueeldnrg 29 speelr pilootzowelde rolvan werknemer als die van docent aan
@
Alsdc rolnaam wordt wegSelàten, dÀn
is d€
rolnaam hetzelfdeàls de naanr van
de klass.. 8ol
We*t bÍ
Aft.29. Multiplicireii
@
Een
De multiplic;teit gccli het aanlal instanti€s van de 8eàsso.iee.de klasse aan' waarmeeéén inslàntie van de klasseeen linkkan hebben. Dit wordt aangegev€n
door €€n cijfer ofecn sterretje. Als er gccn tekcn stànt dan bctckent dit cen multipliciteitvan óéD De notatic is
verselijkbaàÍ Ínet de cardinaliteit in Èl{D-diagran]n)en.
3.38
llrd$p116ltêlt
|
-
I
G.síles
Vak
I ,orenrq€elr les In oÍêcies éen Ár
,ocenl gsell los in pÍecios
vÍl
yanen
oocenl 0e6Ít les in nul 0l meeÍ yallel,
,ocenloe€Ít les in één ol meeÍ yalle,
,0ceníg€elt les in tw€e lot ues |€*let
AJb. 30.
Mulnplicne, ydn
een associatie.
3l zien w€ dat muhiplicireit ook aan bcide zijden van de associatie weergegeven kan worden. In aÍl,ecldins
llrlriplicheir /!10 v€ÍvoeÍt twee tol vi€Í persoren Pels0on woÍdt
Aft.31. Mubipliciteit aa
@
beí1e zijden
'dn
ee
wÍvoerd d00Í nul ol óón
fiÍo
associatie.
Een asso.iatie kan ook gedefinieerd worden als een klass€. Net zoals een al ook een associatieklasse deze
gewone klasse attribureD en operaties hceft,
Een associatieklasse wordr derhalve gebruikt als een rssociat;e:
l.
àttributen hecfi.
2. operaties h€eft.
L
associaties hecfi mer andere klassen.
ln UML is de notatie van ccn associatieklasse een onderbroken lijn gckoppeld aan een klasse en de bijbehorend€ associatie. Zie afbcelding 32. Dc rssociatic tussen man en vrouw is het huwelijk wat als attribuur de datum h€eft waarop het huwelik isvolrrokken.
tl Irt
Huwetiik
I o,r' AJb. 32. A'so ciahekla
s
sc.
I
l
OveÍerving, generáiisatie-spe.ialisati€, polymorfi sme Stel, we hcbben een klass€ persoon en bakkcr. Beide klasscn hebben hun daràaitributcn cn 'methoden. Zo h€eft bijvoorbccld de klasse persoon de dara' attributen: seks, leefttd, lcngte eD gewi.ht enz. we kunnen zcgsen dat: bakker is-een persoon, de persoon klasse eeD 'íaarbij g?"erahar;.klasse is en de bakker€€n ipd.,allrarte klasse. De bakker hceft attributen en mcthoden dic specifiek voor een bakler zijn.
@
lcfinleren
we nu debÀkkerals eensubklasscvar depersoon, dar overerftdcze dc eigenschappen van de Persoon. Instantiërcn we nu een objcct van de klasse b:kker, dan heeft hcr objectbrkkcr de waarden voor de variabelc,r van beide klassen: die van bakkeren persoon. Ook kunnen dc zichtbare methoden uit b€idc klassen op zo'n object wordcr
uitgevoerd. In de volgende aÍbeelding wordt nog een voorbeeld gegeven. Àlle banknredc werkers krijsen een bonus toe8ekend aan het einde van het jaaÍ en wordt berekend doorde rÍrethodc ócpaal áonrs in klasse bankmcdeweÍk€r. Een afdelingshoofd is ook een tankmedewerker maar de bonus wordt voor dir soort medewê.kers anders berekent. D€ methode repaal àonrs in klasse afdelingshooid v€rvangt nu de methode àepanl àonrsvan klasse bankmedc werker elke keer als dae methode wordt aans€roepen voor een afdelingshoofd: di heet P olytn o tÍis'n e. Polymorfisme bicdt een systeem een grot€ nexibiliteit en aaDpasbaarheid. Dc nanierwàarop een op€ratie ofnrethode wordt uitgevoerd, hangt afvan het ontvangende object. Met hcr àanroepen van één enkele methode kan de uitkoms! (implementatieervan) verschillcn.
Naam
SoÍiní 0atum_in dienst
GeneÍalclass Base class
SupeÍclass
ÀÍd nummeÍ Bspaal bonus'
lÀfti.hhí
líd€Ingshooíd
SalaÍrs
Salaís
Bepaal_bonus'
&paal_bonos'
Aft . 33.
voorbeeld lan overen)ng, generalisatie- speciahatie, poryn1oífisme.
De methoàe
on
àe bonus te bepalen n
voor een afdetinsshooft
140
Specialized class
daí nor
een
polynnrle
heeft een andere inplementatie
meden.tker
Aggegatie en compositie
@
Een,rggregatie en co'rpositie (Asgregation and Composition) zijn speciale vormen van associalics. We kunn.n dit het beste aan de hand van ceÍ ainral voo.beelden ioelichtctr. In albcclding 3a zicn w€ e€n Ággrag.Íis van dc klasse computer. Wc kunncn zeggen dut de klassen kcyboard, muh cn beeldschetm deel unnaken (is-patto, van klass€ Compurcr. Het is een bruikbarc rechniek om de complexiieit van een Klasse r€ .educeren door deze op te delen in kleinere stukken. Dcze opdelingvolgt vaak uit ccn logischc groepering ofSsieke opbouw zoals het voorbeeld h an eelding 34. Een logische opdeling is bivooÍbecld een lijst mcl gebruikerscommàndo svan het systeenr dat weer opgedeeld knn worden in ap.rÍe gebruikeís .omma ndoDe notat iewijze voo r ccn aggregatie is cen witte (saÍncngestelde) objcct.
ruii
aan de kant van het hele
fgsÍêS.d.
Aft . 34. A gsre4atierclatie. Een compositie is ecn íerlere vorm v:n aggregatie. Ecn drelobject mag rnaàr tot één geheel behoÍeD en een dftlobject kan NIET op zichzelfbeÍaaD als het samengestelde obiect veÍdwijnt. De levensduur van het de€lobject is dus aÍhankclijk van het sarnerrgesteldc
De Íotàtie van een compositie is een zwart€
ruit (in plaats van de witte ruit).
In àtb€eldiiS l5 bestaat een ordcr uit één ofmeerorderregels en kan nict alleen beslaan.
eeD
ordeÍregcl
Caqoidê
Ajb. 3 s. Coneosnierclíttie.
^ g)
à,
versch il klasse- en obiectdia8rám Zorl( JleerdeÍ 6 Bczcsd. /rjn er rw('e soorren drdSrJ'D'nen dre b, nen LM I gebruikt kunnen woÍden om dc sr4risrrestructuur van her syí.em te beschÍijv€n. Dit zijn de kla.f'e.liagrannen en objecntiasannen. We w€t€n nu iDmiddcls h€t verschit russcn ccn kbsse en ecn objccl, dus we kunnen zeggen dat ecn objectdiagra'n een i'rrdr,iírte (een snàpsho, van hci
3.4r
khssediasÉnr op een bepaald tijdstip van hetsyÍ€em is. AlleobjccreD krigcn ecn daad\yerkelijke invullinS cn data. Het objectdiasÍàm wordt nrecstal s€bruikl als voorbecld ofom dingcn duide lijkcr t. maken ondat men m€t €oncretc waarden gaat wcrken.
ÀdÍes =Schiphol
AÍ). 36. Objecnl iagta n. Oefenopgave t6 Cegevcn zijn de klassen beeldscherm, rí'ndow en pop kh*ediag'dm met de dddrbir behorende a<'orirt ier.
OeÍenopga'e
up menu. Teken
een
t7
cegevenzijndeklassenpersoon,dokter,piloot,docenr,lrDenl{i,waarbijltia ccn do€€nt is en lttn van bero.p dokteí. Verder zijn Ian en Ria gctÍouwd op dàtum I april 1966. Teke,r een klassediàgram.
OeÍenopgal'e 18 Een object auto bestàat uit bijvoorbeeld een motor, vier wielen cn een €aros-
welke associatievorm zou hieÍ get ruikt kunneD worden voor het klassediagràm? Leg uit waarom.
Use case-ilíagtam Zoals gêzegd spcclt bij het bcpalen vàD de requirements: de functioDel€ syíeemcisen, het use.as€{iagram een belàngrikc rol. Met h€t use case' diagram wordt dc gebruikersinteractie in kaart gebrachr met hel le ontwik
Iler uitgangspunt
is het exrcrnc aelrag van het systecn gezien vanuit de
externe Àctors entiteiten zijn die buircn het systeem vallen. Actors kunn€n dus mensen zijn maar ook ànder€ systcmen.
r.rr"iler, waarbij
EeD Àdor is een cntiteit di€ buiten het systeem valt eD interactic hceft mel hct syíccm. Het systeem communiceert dan ook àlléén met actors. De notàtiewijze is e€n poppetje Det dc naam van de actor eronder ofals een klasse met een st€reott?e aanduiding <
>.
142
Èr,
I
,^..
Sludonl
CuÍsu9
AdministÍatoí
Aft.37. 37.
@
@
Use
case-diagrcn en notatieL)ijzes notatienijzes wn ran een Actot.
Een Use case is een beschrijving, van u it de gebru ikerska nt gezi€n, va n een .eek handelingen tuss€n één ofmeeractoren en het systeern. Iletsysteelr wordt gezien als een B/drtáo4 h.t exrerne gedr:rgvan hetsysteem wordt hiermee in knàrt sebracht. Use cas€s worden beschreven in naruudijke taal (verhaal)ondàr d€zedoor d€ sebruikers 8elezen mocr kun'en wordcn. Elke ilerd.tiestaÍt m€r een actie van de a.lor Darr het systcem en vervolSr met een aantal interacties tuss€n h€t systeem todat het eind van de use case is bereikt. Voor bct makenvan usecases is her handigom dit min ofmcerg€structur€erd
Een techniek dje b€schreven wo.dr in het boek "prakthch UMr,l.WaÍlrer, lwarncrl99el is her gcbÍuik vaD een tabel met daarin onder andere de naam van de use case, het doel, de actorcn, een beschrijving, aannamcs en hct resultaat. EiSenltk markr het nier uit op wclkc maniermen dit vasrlcgd, als het nraarduidelijk en ecnd uidig gebeu rt. wij sebruiken de volsende srrucruuÍl Kone naamvooÍ de dentiÍicatevan de Lrse case Beschriiving
niliérende actoÍ en de deelne.n€nde actoÍen Aánnanresaan lrelb€lin van deus€ case Resli laat van de usecase
BeschÍivin! van de nteracties ll tonderingen lrldens de usecase
Een voorbeeld van een use case van een geld.rutomaat wordt in ondcrstaande
3.43
GeldoonaÍÍe
Eeschrjvng
Nel opnemen van een qedbedrag K
ant
Ge
dqe
p npas
+
p ncode van de
kant
Kant [eeíl het gekoTen ge dDedrag ontvangen autoínaal 2)Nel systeem conlío eeít de p n voeÍen 3)Klant voerldepncod€in.4)Sysleeínvíaaglomhetg€db€dÍag inlevo€.en s)Kanl voerlhetb€díagdalhlwlopnemen nhetsysteem 6)Felsy$eemcontroleed lretsad0van de rekening van d€ kant As deze vodoend€ sad0 b€val voor hel qekozen b€draq dan geeÍlhetsysteeín hel bedÍag nd€gedlade 7)Helsysteem qeeÍl de pinpasteíug arwachl lotde klantdeze lerug heeÍtg€nom€n 8)Nel 1)De
kant voert de
pas As dez€
p npas in de
còci
s dan vÍaagt hel systeeÍÍ de pincode n le
sysleem gaal lerug in de stalflas€ U
lrondernqen
0nvod0ende sa do Als hel bedrag b nnen irel sa do valt 0eeÍl het sysleem lret max nraa opneefnbaÍe bedrag aan anderc woÍd de lransaclre aÍ0ebroken en wordt de pinpas lerugg€qeven doorhetsyíeeÍn
6)
H€t is handigom deverschillende stappen in een use case van numnrers te voorzien aangezien dezebt dc verdeÍe analyses in de sequencediagrammen lYcer terug kuDncn komen. ID hcr bov€nstiandc ziet men een stapsseivijzc besch rijving van een mogclijk pad diebijdezc usecasehoorl. Erzijn meesralmeerdete paden tevolgcn ineen usc case zoah de invoervan een foute pincode enz. Dit no€men wc een anderS.rrrr"io; we kunnen zeggen dat een scenario een srapsgciyijz€ beschrijvins is tussena.torsen syst€em van €en bepaalde Us€ case. Flen Use case kan deÍhJve {én ofmeer s.ena rio's bcva( ten.
Sequence- en
collaboratíon-diagrafi
ID tegenstelling tot de usc cascs, waarbij de interactie tussen gebruikers €n het systeemwordt beschreven, wordt in een Sequence- en collaboratie-diagram de
oàjed?, en het hiervoor zijn de Use cases. in reractie tussen
sysrearn beschreven
Kanr I
(
I
Nee
Geel hel qeld
GeeÍ posl2egêh en wissel0eld
+ +2:letsandeÍs?
1: vmag
AJb. 38. Sequen.e-àiasran ett
poslz€geh
co aboratie'diagran
lvi' ntro'). Uitglngspunt
PosttanrooímedeseíteÍ
IIet verschil tusscn deze rwee dirgrammen ligt in her icir dat bi Srrqrencedtdgrarnnrer de nadruk ligt op het gedrag tussen deobjccren gezi€n in de rijd. Welke boodschappen ofmessages woÍden wannecr gcsruurd en naar wetke Bij eei Collaboratiediagra,, ligt de nadruk op hoe de objecren samenwe.ken om een bcpaalde taak offunctie uit tc voeren.
@
In het collaborariediagram wordr de ro?goÍle van de àoodsrlrappen ofmcssaqes ddnsegcv(n door een volgnummcr re plJdrsen bijJc n"rrn van de rne,.age. Fcn pijl geeft d€ richtiDs van de messrse aan. ln een sequencc diagram kunnen ook tijdconstraints aangegeven wordcn als de tijd tussen twee messages een bep€rkjng kent. Dit wordt weerScgcvcn door ceD teken nrast de vcÍical€ Itn bij de mess,rg€ te plaats€n. Zie atuc;lding 39.
@
IehÍoon I
i 0í
CentÍare
hook
lC€stoon
TI
cíeÍs 12
_Veóindingstoon {T2-Tt >
Aft.
39.
Tij.lron*rcnt! in
een
m
seq'ence-.liaxram
Boodschappen ofmessages kunnen verschjllende aspecten hebben in ccn Sequence diagram namelijkl
' @
Conditionê.|
Iien d') n( hrone ir cen me$dgc $JJrvan Je /crder nier hoeh l( 'ne\us! wat h(cn up hct r$ulrJdr ervan. Dc /cDder dc me*Jge en SJdr \ crJcr m(r de evcntueel andere z, ken. Een voorbceld h ie rva n is her Íuren va D een nàil De me€Íe message. ziin ech ter slnch roon; d€ zênder wacht rot de ontvnngeÍ klaar is eD gaat daD verder. Een synchrone message wordt we€rg€geven doo. middelvan
Íuuí
.
ptlpuntj deasynchrone Íncssase mer
een zwano
ecn opcn
pjjjpunr.
Conditioneel
@
Een message wordt alleen gcstuu.d als aan ecn conitjrje wordt voldaln. De conditie wordt lussen rechre hakcn geptaatsr voor d€ message.
Iteraliê
@
Ah een message neer keren naar een object g€stuurd mo€t woÍdcn wordt dir herge8even mer vierkJnre h.rken: . p : r .20 war belekenl I | ddr wordr getrc reerd mer v.rriàbele p vJn I tor en met 20.
3.45
Kanr
|
|
hbv€ÍbalB bibriotheek
(0p rijd) hveÍ boek in
\
(Te
laal)leveí bo€k
In
Bo€t€
Belaalboete
Alb. ao. Asytldlronc en .onditionelc nessage in se4renceiiagrant
@ -
h
een scquence diaSÍrm alleen iets doen vooÍ hun binncnkomt, met ander€ woorden zijziin Passiei. Het objc.t lev€rt cen bcpàalde scrvi.e ofdicnst vooÍ zi)n oDrgeving. Er ziin echter ook situàries wdarbiieen objcct als het warc zelfmessà8cs oP€reren v€rstuuÍd en icties ondern€cmt Deze obiecten ziin a.det zelfstandig. E€n ri,'el object zoD een acriefobiect kunnen zijn omdàt dcz€
Tor
toe zagen we dar de objectcn
"" als er€€n messase
t
zelfsrandigeen message stuu.t als de ing€stelde tijd 3Íloopt. E€n acriefobiect wordt aaDsegevcn door middelvan cen dikkc rand van de
rechthoek van het object. Er zijn nog een aanral aDdere asPccten te Doemen in hct sequenc€ en collabo ratie-diàgram zoals re.ursieve aa n roepen van het obiect, het creëren cnverwi'
dercn van een object gcdurende dc tid, maar dit vah eigenlijk t'uiten het kader van deze lcsmodule. wilt u zich verder verdiePen in UMI. cn oO' dàn is het aan lc rrden om h ier sPecialisatiemodulen voor tevolgci
oefenopsal/e
te
De s€quencc- en collaboration-diasrammen beschrtv€n het svsteen als Is dit juisl? Motivecr uwanlwooÍd.
oefeno|sal'e 20
seque'ce-diagrarn van de Use case (gcldopname) beschrcven in de "en (ab€1. voorgaande Nraak
State-diagrarrr fcnsratedirE!dmldaldetueslàrrJen{\tal(5r,e\enl\(nd(lre\zienwaaÍrneen o&i?d zich kan bevnrden gedur€nde zijn beslaan Dij tíàditionelc state diagrammen is dat anders, daar wordt het systeeÍngedrag ermce beschreven' terwijl dit nr UML voof een obicct is. Toestand (Stat€)
@) -
obie!t kJn /ich gcJurende een bePdàlJe 'iid in c(n \rrbrelc toe\rand b.vindcn. Lcn 'erunJ(rints irr de/e toc'rdnJ srJr me$rJl ËcPdJrJ nr een Een
gebcuÍteDis (evenr).
Éen àe.q;r cn eir.ltocstand wordr weergegcven mcr ÍcsPed ievd ijk een zwarte Zie gevul,le cirkel en een zwaÍt gevuldt cirk€l neteeD gewoDe cirkel eronr hecn
atudelding
1.4ó
4l.
To€standen kunnen ook g€n€st worden indien men een beparlde toesrand verder in detail wil Ditwerken in zogenàamde rr lrroesrd rder.
ft|!trrlÈdrt*l (tlndpunl)
tnlry / aankomslnalding
Shp dotê.bí
/
stop
Mn tntry / volgende h0ltem€lding
fnlÍy / open deuÍen
0o / mindeÍ snelheid
HállsrH€ctot
EnlÍy
/ staít timeÍ
TiÍÍ€ÍaÍloop
D6uÍtn
/
sluil deuÍon
4n dd|t /^ rhtr€n.lod
Aft.11. Evenl/T.ansitie
@
Een
R|j$EïEí b.{eift
State'àiagrin lan
een
dutonaíische treinobject.
Een traDsitie is een overgang naàr een andere toestand (ofdezelfde toestand) als gevolg van e€n gebeurtenis ofevenr. Een tnnsiric naar dezelfdc toestand
(zeltransitie) wo.dr weergeg€v€n Der
@
een gebogen
Iijn nàar zichzelf.
Een actic volgt uit een event en tranisitie naar ccD volgende rocsrand. Het kenmeÍk van een aclic is, dat deze ALTIID wordt uirgevoeÍd en niet ondcr-
brok€n kao worden, net als een eveDr. Een actic rrordt weeÍgegeyenmer ecn schuine tteep a.hter het bijbehorende event. Wann.ereenactie een mcssage stuurt natrr ecn ander objcct,daDwordt dit aangegeven met ecn voorde naan van de àctie.In aÍbeeldiDs al woÍdr bii
hel.R':t
Jeurch
^ rit Jthr
een m.sr,rtL
vcr\ruurJ nadr obje(r
Dl:!,.,
mer dts
operàtie ao.tom de deuren t€ vergrendelen.
Activit€it{Activiiy) @
Entry/Exit
acties @
Wanncer g€durend€ de tid dat cen obj€ct zich h ecn bepaatde tocstand bevindt, eetr operatic moet worden Dirgevoerd, dan noemen we dir een a.tvieir. Het is een coDtinu procesdat pa-saÍloopt als er een €v€nr plàatsvindr ofals de àctiviteit vanzclfstopr. Er kan ook allccn maar één activiteir binnen één toestand bestaan en deze kan rrelonderbroken worden. Ien a.tiriteil wordr adnB(He\cn nr(l /o. d.r I vrr.ir nrd,r. Een enrry actie wordr uitgevoerd rls een obtêcr iD die toeíand komr en een exit actie als de ró.íand wordt verldren. Dit wo.dt aangegevdn mct respecti, victijk cntty/ en eit/.
3.47
Goard
@
is €en conditie wàaraan ecn traDsitic ofevenl a.rD noet voldoen voordat deze plailts mag vinden. Dit wordl aa ngcgeven tusscn vierka nlc hakeD. I n albeelditrg 4l wo.dr de eiDdto€stand bercikt als de conditie ?,rdp!rt vaD h€t
Dit
traject
is
bcreikt (dit is maar cen loorbeeld).
oefenowave 21 Wat is het wezerrlijke verschil tuss€n
eeD actie eD ecn
activiteit?
oeíenopgave 22 is het vers€hil tussen eeD Stale'diaSram in UMLen de State-diagra|r)men zoals die gebruikt worden bijde traditionel€ systccrnontwikl€lin8?
wat
Activity- diagram Laat dc a€tiviteiten zien die dooreen decl van het syst€em ríorden uitgevoerd. Het is een variant van h€t State diagram. Ilet laat de interne processing (Í]ow) zien van de afhandeling va n ecn bepaald event ofde píocessing (algoritme ) van d€ operaties binneD een object.
Het knD ook sebÍuikt worden oD bedrijfsprocesser in kaart tebrengen.
Aciivity
@
Een Acrivitykan gczien worden ais een PÍo€€s dic weeroP zijD beurt kan bestaàn uit m€€rdere activiteiten. Men kan dus sub.tcliviteiten definiëren (net als procesdiagÍammen) die €en hiërarchische stÍuctuur weerS€ven. De oplettende leze( !) ziet hierin meteen dat deze maniervan modell€ren niet echt volgcns de objecttechnologie denkwijze wordt gerealisccrd. I{et is proc€sen tuncti€gericht iD plaats van obr€ct geíicht Dc reden dat dir toch bnrDen UML gebruikt kan wordcn is, zoals in de inl€iding van deze paragraafal
vermeld is, dat hiermee de bed rij6processen kunnen worden gemodelleeÍd.
controlFlow
@
De volgorde vàn activiteiten, de Coí trol/o-, lvordl in het diagram weerg.geven door middel van een pijl. Met volgl de pijl van àctiviteir naaÍ activit€it.
Branch/Decision
€D
Net als iD de
@
Bi
Splitsingen syíchro' nisatie
IIorÍ
chàrts kc'rt mcn in ecn activity-diagram ookcen bcslissing
(decision) punt waar men ,ifiankelijk van een conditie .€n andere flow ki€st. Flow's kunnen ook weersamcnkornen waarna deze weer verder gaat naar de volgendc activiteit. In aÍbeelding42 is een voorbeeld te zicn een +nitsins (ForÈ) kan decontrol flow uitgesPlirst Plaatsvinden, rvaarbijde
activiteiten onaíhaDkelijk van elkaar uitgevoerd kunnen wordcD Dit krn parallel gebeuren maarookachter elkarr' In albcclding 42 zien we dat de activi teiren gecfBedngen wijzigsddo dlttl worden uitsevo€rd maar dat d€ze onafhankeliik van elkaar uitsevoerd kunDen woÍden. Bi synchronisatie (,toi") wordt de control llow weer samengevoegd naa' één
activiteitC o rn p o neh
@
t- en D ep Io y tn e nt - dí 4gr arn
H€t Component- en d€ployment diagÍam hebben betrekking op de imPle mentati€binnen UMLen zijD bctrekkelijk nieuw. Er is nog relat iefwein ig over geschrevcn in dc literatuur over deze diagrammor zodat we ons alleen beperken tot de notatiewijzcn en definilies
3-48
Ètl
zÍn onaÍhantelijk van ^ctivilsiten €lkaaÍ en kunnen ook paí.llel
Aft. 12. Actility-diagra,n met Decision punter,
compodedtdiagÍam
Sphtsing en Synchrcritatie
tan
Het componenldiagÍam Iaat de softwa recom ponenten zien vrn her systeenr cn de relàties tussen deze componenten. Een component in dcze context is een executeerbarc eenheid (modulc) rner duid€liik gedefinieerde interfdces. Een component is géén comptete applicàtie maar rnaakt deeluit van een gÍoter geheel. De de6nities van een componeDt kunnen veÍschillcn per litcraruur, maar valt buiten het bestekvaD dez€ leerstofmodule. De notatie van een component wordhíeeÍge8even zoals in afleetding 43 re zien is. Naast cen componênt kent UML ook nog eeD Node in het componeDr diagram wat een 9siek object, dat een computer resource is, weergeeft.
ttl_-_--r 0bjêcr |
---f------t
Aft . a 3. C onp Deploynenl-dia-
oata
I I
oíentí1 iagÍa'1|.
Het dcploymeDt diagram lait de softwarecompoDeDtcn zicn zoals ze (run t;me) Seb.uikt wordcn in een bepaalde sysreemconfiguratje. De nodes zijn met €lkaar v€rbonden door com mun icariepnden !íat als een
doorgetrokkcn lijn wordt w.ergegevcD. ^Íhank€lijkheidsrelaiies brokeD lijn.
woÍdenweergegeven door middet vàn een ondeF
4 3-49
Deployrnent diagra mmen zijn wellic ht zinvol bij sedistribueerdc buiten het kader van dezc lcerstofmodule valt.
Miin
systc men wa t
PC: CEënt
I lhorard:
DB SoÍY8Í
Aft . 4 4. Deploy'nent- diagrd,L
Aanbevolen literatuur lDerksen CrinslTheo D€rksen, I Iuub CÍins, ÁIv /nfor"ntiekunàe voot het IíBO, Academi. Service ISIiN- 9039512833 6de druk. lLeel99TlRichard Lec, Wiuiam Teppenharl, UMI- dnàC++ a Pntcti.ttl lriàe to Obje(t oriented àewbptneÍr, I'renticc Hall Inc.ISBN 0-13-619719-l AT& I and Lucent T€chnologi€s.
IWarmerr999]los warmer, Anneke Kleppcn, Pra&tisch UML 2de ellitie,ISBN 9043004944 Addison Weslcy Longnan N*cdeÍlnnd tlv/Pearson Education UitgevcrijUV.
Parate-kennisvragen
1.50
@
op wclke manieren kan een proces wordcn setekcnd?
@
wa*om
@
Waarom kar ccn pro,j.s Diet àlleen uitvoer hebhèn?
@
Hoe worden stromen grafis.h wecÍg€geven?
@
Wat kaD doorccn stroom worden weergegeven?
@
wat betekent een gesplitste pijl?
@
Hoe kunnen twee pijlen worden samensevoesd?
@
Wat kan door een opslasplarts allemàal worden voorgestcld?
o
w.""éc
@
wat bctekent "opslasplàatsen zijn pissief'?
kan cen proccs nict alleen invoے hebb.n?
erundeft cen oPslasPlaats en waDDeer vcrandert een opslagplaats nict, als een stroom de opslagplaats verlaat?