

CONCEPT

COLOFON
BoomBeroepsonderwijs
info@boomberoepsonderwijs.nl www.boomberoepsonderwijs.nl
Auteur:HansvanRheenen
Omslagfoto:DajaFotografie
Metdankaan:studentenendocentenvandeopleidingSoftwareDeveloper,mboRijnlandGouda
Titel:Softwaredeveloper
ISBN:9789037267426
Bronvermelding:AgentschapvandeEUvoorcyberbeveiliging(gegevensvanjuli2021-juli2022)
Eerstedruk
©2024BoomBeroepsonderwijs|Boom
BehoudensdeinofkrachtensdeAuteurswetgesteldeuitzonderingenmagnietsuitdezeuitgaveworden verveelvoudigd,opgeslagenineengeautomatiseerdgegevensbestand,ofopenbaargemaakt,inenigevormof openigewijze,hetzijelektronisch,mechanisch,doorfotokopieën,opnamenofenigeanderemanier,zonder voorafgaandeschriftelijketoestemmingvandeuitgever.
Voorzoverhetmakenvanreprografischeverveelvoudigingenuitdezeuitgaveistoegestaanopgrondvanartikel 16hAuteurswetdientmendedaarvoorwettelijkverschuldigdevergoedingentevoldoenaandeStichtingReprorecht (www.reprorecht.nl).Voorhetovernemenvaneen(ofmeerdere)gedeelte(n)uitdezeuitgaveinbijvoorbeeldeen (digitale)leeromgevingofeenreaderinhetonderwijs(opgrondvanartikel16,Auteurswet1912)kanmenzich wendentotStichtingUitgeversorganisatievoorOnderwijslicenties(Postbus3060,2130KBHoofddorp, www.stichting-uvo.nl).
CONCEPT
Deuitgeverheefternaargestreefddeauteursrechtenteregelenvolgensdewettelijkebepalingen.Degenendie desondanksmenenzekererechtentekunnendoengelden,kunnenzichalsnogtotdeuitgeverwenden.
Doorhetgebruikvandezeuitgaveverklaartukennistehebbengenomenvanenakkoordtegaanmetdespecifieke productvoorwaardenenalgemenevoorwaardenvanBoomBeroepsonderwijs,tevindenop www.boomberoepsonderwijs.nl
INLEIDING
Omeendiplomatekunnenkrijgenmoetjeaaneenhelereeksvoorwaardenvoldoen.Dezezijnopgesteldin samenwerkingmethetbedrijfslevenenvastgestelddoordeministervanOnderwijs,CultuurenWetenschap. Hieronderstaandekennisenvaardighedenwaaraanjemoetvoldoenomalsbeginnendberoepsbeoefenaaraan deslagtekunnenalsSoftwaredeveloper(Crebonr.25998).Hetvolledigekwalificatiedossieristevindenopde sitevandeStichtingSamenwerkingBeroepsonderwijsBedrijfsleven,oftewelS-BB: (https://www.s-bb.nl/onderwijs/kwalificatiestructuur/).
Metdezeleeromgevingwerkjeaandevolgendewerkprocessenenleerdoelen: Waarditboeknietovergaatishetfeitelijkprogrammerenencoderen.Daarvoorzijnverschillendeandermethode beschikbaar.
Kerntakenenwerkprocessen:
B1-K1:Realiseertsoftware
• B1-K1-W1:Stemtopdrachtaf,plantwerkzaamhedenenbewaaktdevoortgang
• B1-K1-W2:Maakteentechnischontwerpvoorsoftware
• B1-K1-W3:Realiseert(onderdelenvan)software
• B1-K1-W4:Testsoftware
• B1-K1-W5:Doetverbetervoorstellenvoordesoftware
B1-K2:VoertICT-projectenuit
• B1-K2-W1:Werktsamenineenprojectteam
• B1-K2-W2:Presenteerthetopgeleverdewerk
• B1-K2-W3:Evalueertdesamenwerking
CONCEPT
Programmerenencoderenzijndebelangrijkstebezighedenvaneendeveloper.Ditboekgaatdaarnietover.Dit boekgaatoverallezakendieomhetmakenvancodeheenvanbelangzijn.Inwelkeomgevingjeietsontwikkelt zalsterkafhangenvanhetbedrijfen/ofdetoepassing.OpdesitevanBoomBeroepsonderwijskunjevoorde verschillendeomgevingenlesmateriaalvinden.VoordevolgendeleerdoelenuitdekerntaakB1-K1:Realiseert softwarezijnandereleeromgevingenbeschikbaar.
Vakkennisenvaardighedendieindezeleeromgevingnietuitgebreidwordenbehandeld:
B1K1Realiseertsoftware
Debeginnendberoepsbeoefenaar:
• Heeftspecialistischekennisvanprogrammeertalen(syntaxensemantiek)
• Heeftbredekennisvanontwikkelingenophetgebiedvansoftware-development-tools,zoalsartificial intelligence,DevOpsenmetadata
• Heeftspecialistischekennisvanversiebeheertools,zoalsGIT,GIThub,PlasticSCM,SVNenAzureDevOps
• Heeftspecialistischekennisvansoftwareontwikkelingsprogramma’sen-tools,zoalsIDE’senAI-tools
• HeeftkennisvanontwikkelingenophetvlakvanICT-infrastructuurendevices,zoals'...asaservice'(SaaS, IaaS,PaaS),cloud,endeconsequentieshiervanvoorsoftwaredevelopment
• Heeftspecialistischekennisvandeprincipesvanobjectorientedprogramming(OOP),waaronderencapsulation, modularity,inheritance,polymorphism
• Heeftspecialistischekennisvansoftwareontwikkelingstechnieken,zoalsOOP,ECSenfunctioneelprogrammeren
• Kanrelevanteprogrammeertalenvoorsoftwareontwikkelingtoepassen(syntaxensemantiek)
• Kanrelevantesoftwareontwikkelingsmethodiekentoepassen,zoalsiteratiefofincrementeel
• Kanrelevantesoftwareontwikkelingsprogramma’sen-toolstoepassen,zoalsIDE’senAI-tools
• Kanrelevantesoftwareontwikkelingstechniekentoepassen,zoalsobjectgeoriënteerdprogrammeren,ECS enfunctioneelprogrammeren
Vakkennisenvaardighedendieindezeleeromgevingweluitgebreidwordenbehandeld:
B1K1 Realiseert software
Debeginnendberoepsbeoefenaar:
• Heeftbredekennisvanderelevanterisico’svanhetmakenvansoftwareindecontextvanhetvakgebied
• Heeftbredekennisvancybersecurityenbedreigingenvannetwerkenensystemen
• Heeftbredekennisvanrelevantewetgevingophetgebiedvanprivacy,copyrightenauteursrecht, toegankelijkheidencomputercriminaliteit
• Heeftkennisvanlicentiesengebruiksrechten
• Kandiagrammenlezen,interpreterenenmaken,zoalsUMLenERD
• Kangegevensverzamelingenomzetteninanderestructuren
• Kanontwerpeiseninterpreterenentoepassen
• Kantechniekenvoorinformatiebeveiligingtoepassen,zoalsS-SDLC.
• Kanversiebeheertoepassen
• Kanconformwetgevingengeldendebedrijfsnormenwerkenophetgebiedvanprivacy,intellectueel eigendomsrecht,toegankelijkheidencomputercriminaliteit
B1-K2: Werkt in een ontwikkelteam
Debeginnendberoepsbeoefenaar:
• Heeftbredekennisvaneenprojectmethodiek
• Heeftbredekennisvandeverschillenderollenwaarmeeeenprojectteamwerkt
• Kanduidelijkenbondigformuleren
• Kanverschillenderollenbinneneenprojectteaminnemen
• Kanvaktaalhanterenenverduidelijken(voortoehoorders)
• Kanmetbetrokkenencommunicerenoverwerkzaamhedenenontwikkelingeninhetwerkveld
• Kangesprekstechniekenhanteren
• Kanpresentatietechniekenhanteren
CONCEPT
• Kanprojectmatigwerkenvolgenseenprojectmethodiek
• Kaneenkeuzeonderbouwenmetinachtnamevandebelangenvaneindgebruikers
• Kanwerkenvolgensafgesprokensoftwareontwikkelingsmethodieken
• Kanreflecterenopkennisenhandelenvanzichzelfenhetteam
• Kanproblemensignalerenenoplossingsgerichtdaarophandelen

Blok1 Projectmatigwerken
CONCEPT
Leerdoelen
1. Jekuntdebelangrijkstekenmerkenvaneenprojectenhuneigenschappenbenoemen.
2. Jekunthetlinking-pin-principeendebelangrijkstekenmerkendaarvanbenoemen.
3. Jekunteenprojectplanlezenentoepassenenweetwelkeonderdelenineenprojectplanhorentestaan.
4. Jekuntdesterkteen/ofzwaktevaneenteammetbehulpvandeBelbinTeamCircleinbeeldbrengen.
5. Jekunteenplanningmaken.
Alsontwikkelaarvansoftwarezuljebijnaaltijdaanprojectenwerken.Somsietsheelkleins,datjealleenoplost, somsalsonderdeelvaneenheelgrootproject,metveeldeelprojecten.Maarmeestalietsdatdaartusseninzit quaomvang.Hetoverlegdatjemoetvoerenheeftdanookvaaktemakenmetjouwrolbinnenhetproject.Binnen eenprojectzalersprakezijnvaneenbepaaldevormvanprojectorganisatie Hoeenwathangtvandegebruikte methodiekaf.
Opdracht1 OriëntatieopdrachtProjectmatigwerken
Jewerktineengroepjevandrieofvierstudentenenbeantwoordtdevolgendevragen.
Jehebtinje(voor)opleidingvastweleensmeegewerktaaneenproject.Bespreekdebelangrijksteaspectenvan deprojectorganisatie.
• Watmoestjeregelen?
• Waarliepjetegenaan?
• Watginggoed?
• Watgingmindergoed?
• Watzoujeeenvolgendekeerandersdoen?
1.1 Project
Andersdaneenorganisatieiseenprojecteindig.Eenprojectheefteenduidelijkeindpuntdatvantevorenis gedefinieerd.Eenprojectiseeneenmaligeactiviteitmeteenduidelijkresultaat.Hetwordtmeestalvastgelegd ineenprojectplanengeregelddoorhetprojectmanagement.Binneneenprojectisdeinzetvanmensengeregeld envastgelegd.Eenvandedefinitiesvaneenprojectis:
Een project is een unieke opgave, begrensd in tijd en middelen en afgesloten met een projectresultaat.
Dekenmerkenvaneenprojectzijn:tijd,middelen,productenmanagement.
Tijd
CONCEPT
Eenprojectiseentijdelijkgegeven.Eenprojectkaneenweekdurenofeenaantaljaren,maarzalnooitoneindig doorlopen.Eenprojectheefteenvantevorenbeoogdeindpunt.Hetkomtvoordatbijdeeersteplanningvaneen projectdeeinddatumnognietisvastgesteld.Ditishetgevalalsdeduurvandetussenliggendestappennog onduidelijkis.
Middelen
Binneneenprojectspreektmenvan resources.Resourceszijnallemiddelendiebinnenhetprojectingezetworden. Ditzijnzowelmenselijkeinspanningenalsmaterialen.Beidevormenvanresourcesbrengenkostenmetzichmee enbepalendetotalekostprijsvanhetproject.Menstreefternaaromdeintezettenresourcesbijaanvangvan hetprojectvastteleggeneninteschatten.
Product
Opdeeinddatummoethetprojectuitmondenineeneindproduct.Erwordteenprojectopgezetomiets uitzonderlijksterealiseren.Denormaleorganisatiegaatgewoondoor.
Hetisheelbelangrijkeenduidelijkedoelstellingentehebbenbijeenproject.Dedoelstellingverschaftrichting enfocusvoorhetprojectteamenzalhelpenbijhetmetenvansucces.Daarbijvoorkomthetverwarringoverwat ermoetwordenbereikt.
Hetsuccesvaneenprojectkanwordenbeoordeeldaandehandvanhetbereikenvandedoelstellingen.Ookis belangrijkofhetbinnenhetbudgetendeplanningisuitgevoerd.Alshetgoedis,isersprakevanklanttevredenheid entevredenstakeholders.Eengoeduitgevoerdprojectheefteenpositieveimpactopdeorganisatie.Dedeelnemers zullenleerpuntenuithetprojectmeenemennaareeneventueelvolgendproject.
Management
Eenprojectheefteeneigenprojectmanagement.Hetprojectmanagementmoetervoorzorgendathetproject metdebeschikbaremiddelenbinnendeafgesprokentijdtoteengoedeindewordtgebracht.
Belangrijkeprojectstappen
Eenkenmerkvaneenprojectiseenduidelijkbegineneind.Vanbegintoteindwordenoverhetalgemeende volgendestappengezet:projectinitiatie,planning,uitvoering,monitoringencontroleenafsluiting.
Linkingpin
Veelgebruiktishetlinking-pin-principe Bijhetopzettenvaneenprojectwordtereenstuurgroepingericht.Die stuurgroeprichtéénofmeerprojectgroepeninendierichteniederweeréénofmeerwerkgroepenin.
Hetlinkingpin-principeverwijstnaardepersoondiefungeertalsdeverbindingtussenhetprojectteamenhet hogeremanagementineenorganisatie.Dezelinkingpinspeelteencrucialerolinhetoverbrengenvaninformatie, besluitvormingenhetwaarborgenvanhetsuccesvanhetproject.Hetlinkingpin-principezorgtvooreengoede communicatie,besluitvormingencoördinatietussenhetprojectteamenhetmanagement.Ditdraagtbijaanhet begripvandedoelstellingenenhetbehalenvandegewensteresultaten.Vaakisdeprojectmanagerofeen aangewezenleidinggevendedelinkingpin.Tochhoeftdatnietaltijdzotezijn.Eenervarenmedewerkerkanprima alslinkingpinfunctioneren.
CONCEPT

Stuurgroep
Destuurgroepheeftdeleidingoverhetgeheleproject.Destuurgroepledenhoudenzichnietbezigmetdedagelijkse werkzaamhedenvoorhetproject.Zijkomenafentoebijeen,meestaléén-oftweemaalpermaand.Aande stuurgroepwordtgerapporteerddoordelinking-pin-ledenvandeprojectgroepoverdevoortgangvanelkproject. Destuurgroepscheptdevoorwaardenwatbetrefttijdengeldomdezevoortgangterealiseren.
Destuurgroepbestaatuitslechtseenkleinaantalpersonen.Desamenstellingkanbestaanuiteendirectielid,de accountant,deICT-managerendeprojectleider.
Figuur 1.1 Netwerk projectteam met linking pinsProjectgroep
Deprojectgroepheeftdedagelijkseleidingoverhetproject.Deprojectgroepkomtvaak,minimaaleensperweek, bijelkaar.Devoorzittervandeprojectgroepismeestaldeprojectleiderenindiehoedanigheidooklidvande stuurgroep.Deandereprojectgroepledenzijnverantwoordelijkvoordeproductendiehetprojectmoetopleveren.
Naastdeprojectleiderkunnenindeprojectgroepdevolgendefunctionarissenzitten:
• applicatiebeheerders
• automatiseerders
• controlefunctionarissen
• materiedeskundigen(eindgebruikers)
• organisatieadviseurs
• personeelsfunctionarissen
• technischesysteembeheerders
Desamenstellingisafhankelijkvandeaardvanhetproject.
Werkgroep
Omervoortezorgendatiederstalentengoedtothunrechtkomenennietiedereenzichmetallesgaatofhoeft tebemoeien,wordenerwerkgroepeningericht.Eenwerkgroepheefteenspecifieketaakbinnenhetproject.Elke werkgroepisbelastmetéénaspectvanhetproject.
Dezewerkgroepenzijnverantwoordelijkvoorhuneigenresultaten.Dewerkgroepleiderisdelinkingpinnaarde projectgroepenlegtverantwoordingafaandeprojectgroep.
Mogelijkewerkgroepen:
• Administratieveorganisatie
• Conversie
• Invoering
• Juridischeaspecten(Algemeneverordeninggegevensbescherming)
• Nazorg
• Ontwikkelingvandeverschillendedeelsystemen
CONCEPT
• Opleiding
• Testwerkgroep
Degebruikersvanhetproductzijnindewerkgroepeenbelangrijkonderdeel.Zijwetenwaarhetovergaaten kunnenvanuithunprofessieeenbelangrijkebijdrageleverenaaneenwerkgroep.

Waarjeookineenprojectwordtingezet,vaakzaljedeelnameaanhetprojectmaareendeelvanjetijdbeslaan. Daaromishetbelangrijkdaterduidelijkeafsprakenwordengemaakt,ookoverjouwinzet.Wanneer,waarenmet welkebevoegdheidneemjedeelaanhetproject?Zelfsalsallesgoedisafgesproken,kunjenoginmoeilijke situatiesterechtkomen.Jehebtnamelijktemakenmettweeverschillendeleidinggevenden.Jehebteenfunctioneel leidinggevendeindevormvanjedirectechef.Maarindewerkgroephebjetemakenmeteenoperationeel leidinggevendeindevormvandewerkgroepleiderofdeprojectgroepleider.Watgajedoenalsjebaaszegt:‘We hebbeneenspoedklus,vandaagmagjeevennietaanhetprojectwerken’?Alsjehetgoeddoet,laatjedatdoor detweeleidinggevendenzelfuitzoeken.Brengzemetelkaarincontactenlaatzeeenoplossingbedenken.Wijs naardeafsprakenzoalszezijngemaaktbijdeinrichtingvanhetproject.
Opdracht2 HetProject
RaadpleegzonodigdetheoriebijHetproject.
a. Watiseenprojectenhoeverschilthetvandedagelijkseoperationeleactiviteitenbinneneenorganisatie?
b. Waaromishetbelangrijkomduidelijkedoelstellingentedefiniërenbijhetstartenvaneenproject?
c. Watzijnenkeleveelvoorkomendestappeninhetprojectmanagementproces?
CONCEPT
d. Hoeevalueerjehetsuccesvaneenprojectnadathetisafgerond,enwelkefactorenspelendaarbijeenrol?
e. Wathoudthetlinkingpin-principeinprojectmanagementin?
f. Waaromishetlinkingpin-principebelangrijkvoorhetsuccesvaneenproject?
g. Wiefungeertmeestalalsdelinkingpintussenhetprojectteamenhethogeremanagementineenorganisatie?
h. Watiseenrolindecontextvaneenproject?
i. Jewerktineengroepjevandrieofvierstudentenaandevolgendeopdracht:
Maakeenprojectvoorstelvooreenbedrijfdateennieuweproductwillanceren. Inditvoorstelgeefjeinvullingaandevolgendeonderdelen:
• DoelstellingenvanhetProject
• VerwachteResultaten
• TeBereikenMijlpalen
Hetgaatomeenproductdatkattenuitdetuinverjaagt.Ditmoetnatuurlijkopeendiervriendelijkemanier.
1.2 Projectplan
Softwarekanopbasisvanveelverschillendemethodiekenwordenontwikkeld.Maarinbijnaallegevallenligter eenvraagvaneenklantaantengrondslagenopbasisdaarvaneenprojectplan.Devraagvandeklantzalvaak resulterenineenPakketvanEisen(PvE)waaraandeontwikkelaarmoetvoldoen.Hetprojectplanzalinveel gevalleneenPlanvanAanpak(PvA)bevatten.Weonderscheidendrie‘hoofdmanieren’ophetgebiedvan software-ontwikkeling:dewatervalmethode,prototypingofdeiteratievemethode
CONCEPT
Inallegevallenzalersprakezijnvandebehoeftevaneenklant,waaraanvoldaanmoetworden.Eenklantwil graagwetenwaarhijaantoeis:‘Wanneerbeginnenwe?’,‘Wanneerishetklaar?’,‘Watgaathetkosten?’,‘Wat wordtervanmijverwacht?’,‘Wiezijnernogmeerbijbetrokken?’–enmogelijkzijnernogmeervragen.Dooreen projectplanteschrijvenwordthetvooreenklanttastbaarderenkrijgthijeenbelangrijkdeelvandeantwoorden opzijnvragen.
Wanneermetdeklantovereengekomenisdaterietsgemaaktgaatworden,moetereenplangemaaktworden vandeaanpak.Eenprojectplanwordtgebruiktomdeuitvoeringvanhetprojecttebegeleiden.Hetbelangrijkste doelvanhetprojectplanishetdocumenterenvandeplanningsaannamesenbeslissingen.Opbasisvanhet projectplanwordtdangemonitordofmijlpalengehaaldwordenenofermoetwordenbijgesteld.Hetprojectplan kanbestaanuitdevolgendeonderdelen:
• Inleiding
• Projectomschrijving
– Aanleiding
– Doelen
– Resultaat
– Afbakening
– Risico’s
– Effecten
– Randvoorwaarden
• Faseringenplanning
• Projectbeheersing(vantijd,geld,kwaliteit,informatieenorganisatie)
Takenenrollen
Taken
Ineengoedprojectteamzijndetakenslimverdeeld.Hetteambestaatuitspecialistenmetkennisenervaring. Dezekennisenervaringmoetenzoveelmogelijkbenutworden.Dewebdeveloperkanbesteensite-ontwerp maken,maarmisschienisereenmediadeveloperdiehetnogbeterkan.
Naastgespecialiseerdwerkmoetenerineenprojectooktakenwordenuitgevoerddienietexclusiefvoor specialistenzijn.Deprojectleiderzalindemeestegevallendevergaderingenvoorzitten.Maarwatalsde projectleidereenberoerdegespreksleideris?Kijkeenshoeeenanderhetalsgespreksleiderschapervanafbrengt. Zozijnerveelzakendiemoetengebeuren.Inallegevallenishetbelangrijkdatdepersoondiehetgeschiktstis vooreentaakdezeookkrijgttoegewezen.Jemoethierbijdenkenaan:
• Bijhoudenvanhetprojectarchief
• Documenteren
• Eindredactievanrapporten
• Makenvandeverslagen
• Onderhandelenmetopdrachtgevers
• Uittestenvaneersteversies
Jewiltgraaginhetprojectteamspelvreugdeencreativiteitontwikkelenenervoorzorgendatiedereengoed functioneert.
BelbinTeamrolmodel
Ineenteamzijnernietalleentaken,maarookrollen.Eenroliseenafspraakoverwelkgedragmenpersituatie vertoont.Hetisniethetgedragwatmenaltijdvertoont,maargedragdatisafgesproken.Jeweetprecieswatje aanelkaarhebt:‘AlsjijeenvoorstelhebtomaftewijkenvanhetPvAdangaikzeurendathettochnietkan.Samen zoekenwedaneenhaalbaarcompromis.’‘AlsHansweereensbegintmet‘Maar’danvraagjijhemnietalleenzijn bezwaartenoemen,maarookeenoplossingvoordatbezwaar.’
CONCEPT
Eenstrikterolverdelingkandecreativiteitendynamiekbinnenhetteambelemmeren.Tochishetbelangrijk afsprakentemakenomoverderolverdeling;duidelijkheidgaatbovenalles!Mogelijkkunnenafsprakenworden gemaaktoververschillenderollendieteamledenkunnenvervullen.
DebelangrijksteteamrollenzijndoordeBritseonderzoekerMeredithBelbinonderzochteninhetBelbin
Teamrolmodelalsvolgtomschreven:
Completer Finisher (Afronder)
DerolvanCompleterFinisherinhetBelbinTeamRoleModelverwijstnaareenteamliddatzichrichtophet perfectionerenenvoltooienvantaken.CompleterFinisherszijnvaaknauwgezet,zorgvuldigenkritischinhun werk.Zehebbenoogvoordetailenstrevennaarperfectiebijhetafrondenvanprojecten.
EnkelekenmerkenvaneenCompleterFinisherzijn:
1. Nauwgezetheid:CompleterFinishershebbendeneigingomzorgvuldigtewerkenenfoutenoptemerken. Zezijnvaakperfectionistischinhunstrevennaareenhoogniveauvankwaliteitinhetwerkdatzeleveren.
2. Punctualiteit:Zezijnzichbewustvandeadlinesenstrevenernaartakenoptijdafteronden.Zevoelenvaak eensterkeverantwoordelijkheidomervoortezorgendatallesvolgensplanverloopt.
3. Angstvoorcompromisinkwaliteit:Zekunnenaarzelenomtakenalsvoltooidtebeschouwenalszeniet aanhunhogenormenvoldoen.Ditkanervoorzorgendatzesomswatlangeraantakenwerkendananderen.
Resource Investigator (Brononderzoeker)
EenResourceInvestigatorisiemandinhetteamdieuitblinktinhetverkennenvanexternemogelijkheden,het leggenvancontactenenhetvindenvanbruikbareinformatiebuitenhetteam.Dezerolwordtbeschouwdals iemanddieenthousiast,communicatiefennieuwsgierigis.
EnkelekenmerkenvaneenResourceInvestigatorzijn:
1. Netwerken:ResourceInvestigatorszijngoedinhetleggenvancontactenenhetopbouwenvanrelaties buitenhetteam.Zezijnvaakinstaatominformatieenmiddelenvanexternebronnenaanteboren.
2. Enthousiasme:Zezijnvaakenthousiastenoptimistisch,waardoorzeandereninhetteamkunneninspireren. Ditenthousiasmekanookhandigzijnbijhetovertuigenvanmensenbuitenhetteamomsamentewerken ofmiddelentedelen.
3. Nieuwsgierigheid:ResourceInvestigatorshebbeneennatuurlijkenieuwsgierigheidenzijnbereidomnieuwe ideeënenbenaderingenteverkennen.Zezijnvaakproactiefbijhetzoekennaarkansen.
4. Flexibiliteit:Zekunnenzichsnelaanpassenaanveranderingenenonverwachtekansenbenutten.
Coordinator (Coördinator)
EenCoordinatorisiemandinhetteamdieuitblinktinhetcoördinerenvandeinspanningenvanhetteam,het delegerenvantakenenhetzorgenvooreengoedecommunicatietussenteamleden.Dezerolwordtvaak geassocieerdmetleiderschapenorganisatorischevaardigheden.
EnkelekenmerkenvaneenCoordinatorzijn:
1. Leiderschap:Coordinatorshebbenvaaknatuurlijkeleiderschapskwaliteiten.Zezijninstaatomhetteam testuren,doelentestellenentakenteverdelenopeeneffectievemanier.
2. Delenvanverantwoordelijkheid:Zezijnbereidomverantwoordelijkheidtenemenenzijncomfortabel methetdelegerenvantakenaanteamledenopbasisvanhunsterkepuntenenvaardigheden.
3. Goedecommunicatie:Coordinatorshebbensterkecommunicatievevaardighedenenkunneneffectief informatiedelenbinnenhetteam.Zefungerenvaakalshetverbindingspunttussenverschillendeteamleden.
4. Conflictbeheer:Zezijninstaatomconflictentebeherenendeharmoniebinnenhetteamtehandhaven.
Teamworker (Groepswerker)
CONCEPT
EenTeamworkerisiemandinhetteamdiegerichtisophetbevorderenvaneenpositieveteamdynamiek,het opbouwenvanrelatiesenhetcreërenvaneenharmonieuzewerkomgeving.Dezerolwordtgeassocieerdmet samenwerkingsvaardighedenenhetvermogenomgoedmetanderenomtegaan.
EnkelekenmerkenvaneenTeamworkerzijn:
1. Samenwerking:Teamworkersgedijenineenteamomgevingendragenbijaaneenpositievesfeer.Zezijn bereidomsamentewerkenenbijtedragenaanhetgroepsproces.
2. Empathie:Zehebbeneengoedbegripvandeemotiesenbehoeftenvanandereteamledenenzijninstaat omempathischtereagerenopverschillendesituaties.
3. Flexibiliteit:Teamworkerszijnvaakflexibelenbereidomzichaantepassenaandebehoeftenvanhetteam. Zevermijdenvaakconflictenenstrevennaarharmonie.
4. Socialevaardigheden:Zehebbensterkesocialevaardighedenenzijninstaatomeffectieftecommuniceren enrelatiesoptebouwenbinnenhetteam.
Monitor Evaluator (Monitor)
EenMonitorEvaluatorisiemandinhetteamdieuitblinktinhetanalyserenvaninformatie,hetnemenvan weloverwogenbeslissingenenhetbiedenvaneenobjectievekijkopdesituatie.Dezerolwordtgeassocieerdmet kritischdenkenenevaluatievaardigheden.
EnkelekenmerkenvaneenMonitorEvaluatorzijn:
1. Analytischdenken:MonitorEvaluatorshebbeneensterkanalytischvermogenenzijngoedinhetonderzoeken vancomplexevraagstukken.Zezijninstaatominformatiezorgvuldigteevalueren.
2. Objectiviteit:Zehebbendeneigingomobjectiefenonbevooroordeeldtezijnbijhetnemenvanbeslissingen. Zebaserenhunconclusiesopfeitenengegevens.
3. Weinigemotionelebetrokkenheid:MonitorEvaluatorskunneneenzekereafstandelijkheidhebbenten opzichtevanemotioneleaspectenvanbesluitvorming.Zezijnechterwaardevolvoorhetteamomdatze objectieveenrationaleperspectievenbieden.
4. Zorgvuldigheid:Zezijnvaakzorgvuldigennauwgezetbijhetnemenvanbeslissingen,enzevermijden overhaasteconclusies.
Plant (Plant)
EenPlantinditmodelisiemandinhetteamdiebekendstaatomzijnofhaarcreativiteit,innovatiefdenkenen vermogenomorigineleoplossingenvoorproblementebedenken.Dezerolisvaakgerichtophetgenererenvan nieuweideeënenhetverkennenvanalternatievebenaderingen.
EnkelekenmerkenvaneenPlantzijn:
1. Creativiteit:Plantszijnvaakzeercreatiefeninstaatombuitendegebaandepadentedenken.Zekomen vaakmetvernieuwendeenorigineleideeën.
2. Onconventioneeldenken:Zehebbendeneigingomconventioneledenkwijzentedoorbrekenenalternatieve perspectieventeverkennen.
3. Onvoorspelbaarheid:Plantskunnensomsonvoorspelbaarzijninhundenkprocessenenbenaderingen.Ze brengenvariatieenfrisheidinhetteam.
4. Zelfstandigheid:Zekunnengeneigdzijnomonafhankelijktewerkenenhebbenvaakbehoefteaanruimte omhuncreatievedenkprocessentedoorlopen.
Specialist (Specialist)
EenSpecialistisiemandinhetteamdiebeschiktoverdiepgaandekennisenexpertiseopeenspecifiekvakgebied. Dezerolwordtgeassocieerdmettechnischebekwaamheidenhetleverenvangespecialiseerdekennisdierelevant isvoordetaakofhetdoelvanhetteam.
CONCEPT
EnkelekenmerkenvaneenSpecialistzijn:
1. Diepgaandekennis:Specialistshebbeneengrondigekennisvaneenspecifiekvakgebiedenzijnvaakexperts opeenbepaaldgebied.
2. Focusopexpertise:Zeconcentrerenzichvaakophetleverenvangespecialiseerdebijdragenaanhetteam opbasisvanhunspecifiekevaardighedenenkennis.
3. Onafhankelijkheid:Specialistskunnenzelfstandigwerkenenhebbenvaakdeverantwoordelijkheidvoor specifieketakendieverbandhoudenmethunexpertise.
4. Beperktebetrokkenheidbuitenexpertisegebied:Zekunnenminderbetrokkenzijnbijbredere teamactiviteitendiebuitenhunspecifiekespecialismevallen.
Implementer (Uitvoerder)
EenImplementerisiemandinhetteamdieuitblinktinhetomzettenvanideeënenplanneninconcreteacties.
Dezerolisvaakgerelateerdaanpraktischeenorganisatorischevaardigheden,enImplementerszijngoedinhet vertalenvanconceptennaaruitvoerbarestappen.
EnkelekenmerkenvaneenImplementerzijn:
1. Praktischeoriëntatie:Implementershebbeneensterkepraktischeoriëntatieenzijngerichtophetvertalen vanabstracteplannennaartastbareresultaten.
2. Organisatievaardigheden:Zezijnvaakgeorganiseerdenefficiëntbijhetplannenenuitvoerenvantaken. Zehoudenrekeningmetdetailsenzorgenvooreensystematischeaanpak.
3. Betrouwbaarheid:Implementersstaanbekendomhunbetrouwbaarheidenvastberadenheidbijhet voltooienvantaken.Zewerkenvaakgestaagaanhetbehalenvandoelen.
4. Voorzichtigheid:Zekunnensomswatvoorzichtigzijnenvermijdenvaakonnodigerisico's.Zezorgenervoor datalleszorgvuldigwordtoverwogenvoordatactiewordtondernomen.
Shaper (Vormer)
EenShaperisiemandinhetteamdieuitblinktinhetvormgevenvandeactiesenbeslissingenvanhetteam.Deze rolisvaakgerelateerdaanleiderschap,dynamiek,enhetvermogenomuitdagingenaantegaan.Shaperszijn doorgaansassertiefenhebbeneensterkedrangomresultatentebehalen.
EnkelekenmerkenvaneenShaperzijn:
1. Assertiviteit:Shaperszijnvaakassertiefentonenvastberadenheidbijhetnastrevenvandoelen.Zezijnniet bangomstandpuntenintenemenenbeslissingentenemen.
2. Uitdaging:Zedagenanderenuitenstimulerenhetteamomdoelentebereiken.Shapersflorereninsituaties waarinactieenbesluitvaardigheidvereistzijn.
3. Ondernemend:Shapershebbenvaakeenondernemendeinstellingenzijnbereidrisico'stenemenom doelentebereiken.Zekunnenhoudenvanhetoverwinnenvanuitdagingen.
4. Resultaatgericht:Zezijnsterkgerichtopresultatenenhebbendeneigingomtestrevennaarefficiëntieen effectiviteitinteamactiviteiten.
CONCEPT

Blok1
Alseenteamuiteengrootaantalpersonenbestaat,moetomtebeginnenwordenbepaaldwelkerollenervan natureaanwezigzijn.Desterkteen/ofzwaktevaneenteamkunjemetbehulpvandeBelbinTeamCircleinbeeld brengen.Alsjeeengrotegroephebt,deeljedeelnemersin‘teams’vanongeveerviertotzesin.Alsjemeteen kleineregroepwerkt,hoefjedegroepnatuurlijknietoptesplitsen.
1. Vraagelkedeelnemerzichzelfdrierollentoetewijzendiehetbestbijhempassen.Laatditvoorelkteamlid ookdoortweecollega’sdoen.Vergelijkdeuitkomstenbepaalsameninwelkevolgordederollenhetbeste bijdiepersoonpassen.
2. ElkteamtekenteenBelbincirkelmetnegensecties,eenvoorelkvandeteamrollenvanBelbin.Vanelk teamlidwordendenamenindesegmentengezetdieovereenkomenmethunbovenstetweerollen.
3. Laathetteamvijfhoofdgebiedenbenoemenwaarvanzijdenkendatdaarhunsterkeenzwakkepunten liggen.
4. Hetteammoetdrieactiepuntenbedenkenopbasisvandebevindingen.Ditmoetenactiepuntenzijndie ervoorzorgendathetteambetergaatpresteren.
Faseringenplanning
Defaseringenplanningishetbelangrijksteonderdeeluithetprojectplan.Deprojectleiderzalditcontinugebruiken omdevoortgangtemonitorenendaarwaarnodigactieteondernemeneneenenanderbijtestellen.
Planning
Eenplanningis‘hetvoordetoekomstsystematischvoorbereiden’.Ditdoejedoorafstemmingenhetnemenvan beslissingendienodigzijnomeenbepaalddoeltebereiken.
Decomplexiteitvaneenplanningheeftnauwesamenhangmetdeomvangendecomplexiteitvanhetproject. Ofjeergensinjeeentjeaanwerktofdatjemeteenteamaaneenopdrachtwerkt,heefteendirecterelatietot hoedeplanningmoetwordenopgezet.
CONCEPT
Eriseenveelheidaanplanningssoftwarebeschikbaar,zowelgratisalscommercieel.Dekeuzevoorhetgebruik vanbepaaldesoftwarezalafhangenvangeldenervaring,maarvooralvandeaardvanhetproject.Vaakwordt ergebruikgemaaktvaneenspreadsheetenbouwtmeneeneigenplanningsomgeving.Vaakwordtergebruik gemaaktvaneenstrokenplanning.Aandehandvanwatvoorbeeldenwerkenwedezeuit.Devolgordewaarin takenmoetenwordenuitgevoerdnoemenweeentaakafhankelijkheidineenprojectplanning.Dieisinonderstaande planningduidelijkzichtbaar.

Figuur 1.4 Planning Voorbeeld 1
Wanneerjealleenwerktvooreenklantenbijvoorbeeldeenappmoetgaanmaken,iseeneenvoudige strokenplanningvaakgenoeg.Indeplanningstaatwatjewanneergaatopleveren.Voorjouenjeklantisdit waarschijnlijkvoldoende.
InhetschemauitVoorbeeld1isteziendatdevoorbereidingenvoordeimplementatiealbeginnenvoordatde realisatieisafgesloten.

Figuur 1.5 Planning Voorbeeld 2
Hetkanzijndaterwatmeerdetailleringnodigisindeplanning.AlsvoorbeeldziejeinVoorbeeld2demijlpaal Ontwerp,dieuittweesubdelenbestaan,demijlpaalFunctioneelontwerpendemijlpaalTechnischontwerp. Hetisookmogelijkdatermeerderepersonenbijhetprojectbetrokkenzijn,elkmethuneigen verantwoordelijkheden.Miekeweetdatzijinweek4hetFunctioneelontwerpmoetopleverenwilAhmadinweek 5kunnenstartenmethetTechnischontwerp Perfaseiserduidelijkwieereenrolheeft(actoren).

Figuur 1.6 Planning Voorbeeld 3
CONCEPT
Hoegrotereenprojectwordt,hoenauwkeurigerdeplanningmoetwordenuitgewerkt.InVoorbeeld3ziejeeen uitwerkingvandemijlpaalFunctioneelontwerp.Dezebestaatuitdeactiviteiten:Vaststellenrequirements, Prioriteitrequirements,MakenusecaseenOpleverenfunctioneelontwerp. Eennogverdereuitwerkingvandeplanningzoukunnenbestaanuithetaantalurendatnodigis.Voordevoortgang zouerbijgehoudenkunnenwordenhoeveelprocentvaneenbepaaldeactiviteitofmijlpaalalgerealiseerdis.
Projectbeheersing
OnderprojectbeheersingziejevooreendeelprincipesvanPRINCE2terugkomenincombinatiemetdepunten diezijnbehandeldbijdeprojectomschrijvingendeprojectplanning.PRINCE2isdeopvolgervandemethode PRINCE,dieindejaren80isontwikkeldvoorICT-projecten.Hetbundelenvanpraktijkervaringen,zogenaamde bestpractices,ishierbijdekern.PRINCEisdoordeBritsesemi-overheidsinstellingdeOfficeofGovernment Commerce(OGC)ontwikkeldenwordtindeversiePRINCE2inbedrijveninEuropeselandengebruikt.Hetgaat omzakenals:
• beheersingvanhetbestaansrecht
• beheersingprojectscope
• beheersingtijdengeld
• beheersingkwaliteit
• beheersingoverigerandvoorwaarden
• beheersingvandeprojectrisico’s
• beheersingvandeprojectaanpak
Vanbelangisdatjehieraangeefthoe,doorwieenwanneerdeprojectvoortgangindegatenwordtgehouden.
Hetzouheelgoedkunnenzijndatdeopleveringvanelkemijlpaalofactiviteiteenmomentisomeventekijken ofenhoedevolgendestapmoetwordengezet.IndepraktijkwordtPRINCEinsteedsminderontwikkelomgevingen toegepast.
Opdracht3 Hetprojectplan
RaadpleegzonodigdetheoriebijHetprojectplan.
a. Watisdebelangrijksteinputvoorhetprojectplan?
b. Watzijndebelangrijkstetakenineenprojectteamsoftware-ontwikkeling?
c. OverwelkeeigenschappenmoeteenGroepswerkerbeschikken?
d. OverwelkeeigenschappenmoeteenUitvoerderbeschikken?
CONCEPT
e. Werksamenmeteengroepjevanviertotzesstudentenenvormeenteam.VulmethetteamdeBelbinTeam Circlein.Bepaaleerstoverwelkeeigenschappenelkteamlidbeschikt.Neemvoorbeschrijvingvanderollen detheoriedoor.
Gaalsvolgttewerk:
• Elkedeelnemermeetzichzelfdrierollentoediehetdichtstbijhemindebuurtzitten.
• Vergelijkdeuitkomstenbepaalalsteaminwelkevolgordederollenhetbestebijdiepersoonpassen.
• TekenteenBelbin-cirkelmetnegensecties,eenvoorelkvandeteamrollenvanBelbin.
• Zetvanelkteamliddenamenindesegmentendieovereenkomenmethunbovenstetweerollen.
f. Watishetbelangvanhetbenoemenvanrisico’sindeprojectomschrijving?
g. Uitwelkeonderdelenkaneenprojectplanbestaan?
h. Geefeendefinitievan'planning'.
1.3 Projectomschrijvingprojectplan
Deprojectomschrijvingkanbestaanuitdevolgendeonderdelen:
• aanleiding
• doelen
• resultaat
• afbakening
• planning
• risico’s
• randvoorwaarden
Aanleiding
Onderditkopjegeefjeaanwatdeaanleidingisomhetprojecttestarten.Vaakisdateenprobleemdatopgelost moetworden.
Doelen
CONCEPT
Hiergeefjeaanwathetdoelisdatmetdeuitvoeringvanhetprojectmoetwordenbereikt.Omdateenproject meestalbestaatuiteenaantalelkaaropvolgendefasenzuljeperfasededoelenomschrijven.Ditwordenook weldemijlpalengenoemd.
Resultaat
Bijhetresultaatmoetexactwordenaangegevenwateropgeleverdmoetworden.Hierbijmoetjezoconcreet mogelijkelkopteleverenproductbenoemen.Benoemdecrucialesuccesfactoren,deonderdelenwaarop geconcludeerdkanwordenofhetprojectisgeslaagdofjuistismislukt.Hetisverstandigomeenduidelijke afbakeningtemakendoorookdezakentebenoemendienietdoorhetprojectwordenopgeleverdofdoorde beperkingentenoemen.Ditnoemenweookweldemijlpaalproducten
Afbakening
Heelbelangrijkishetmanagenvanverwachtingen.Datdoejedoorduidelijkaantegevenwaterwelenwater nietwordtgedaan.Hoeduidelijkerjeditdoet,hoeminder‘gezeur’jehoeftteverwachten.Deafbakeningkanje halenuitdeMoSCoW-methodedieinhetProgrammavaneisenisopgesteld.ZiehiervoorookBlok3Veiligen betrouwbaarsoftwareontwikkelen.
Planning
Eenplanningishetvoordetoekomstsystematischvoorbereiden.Ditdoejedoorhetopelkaarafstemmenenhet nemenvanbesluitendienoodzakelijkzijnomeenbepaalddoeltebereiken.Dedetailleringzalafhangenvande aardendeomvangvanhetproject.Hettoepassenvaneenstrokenplanningismeestalbehulpzaam.
Risico’s
Aanelkprojectzijnrisico’stekoppelendieeensuccesvolafsluitenvanhetprojectindewegkunnenstaan.Vaak zijndiealineenvroegstadiumzichtbaar.Doorzeduidelijktebenoemen,zijnzegoedinbeeldenkaneropgestuurd wordenomzezoveelmogelijktevermijden.Eenrisicowordtbepaalddoordekansopfouten.Maarbedenkdat hetrisicovaneentaalfoutopdewebsitevaneenandereordeisdanbijvoorbeeldhetrisicovanhetnietoptijd afrondenvandewebsite.Hetisbelangrijkomrisico'stewegenenrekeningtehoudenmetdeimpactervan.Daar kandeprojectleideropsturen.
Randvoorwaarden
Methetbenoemenvanderandvoorwaarden(ookweldeuitgangspuntenwaaronderhetprojectuitgevoerdmoet worden),kunjeeendeelvanderisico’sverkleinen.Debeschikbaarheidvanmensenenmiddelenishierbijeen belangrijkonderdeel,zoalswieverantwoordelijkisvoorderealisatie.Ditmaakthetdeprojectleidermakkelijk ommensenaantesprekenalserproblemendreigenteontstaan.
CONCEPT
1.4 Begrippenlijst
BelbinTeamCircle
EenvisueleweergavevanhetBelbinTeamrolmodel.
BelbinTeamrolmodel
Eenmodeldatnegenverschillendeteamrollendieindividuenkunnenaannemenineenteamidentificeert,op basisvanhunnatuurlijkeneigingenengedrag.
CompleterFinisher
EenBelbinteamroldiebekendstaatomhetzorgvuldigafrondenvantakenenervoorzorgendatallestotinde puntjesisvoltooidvoordathetprojectwordtafgerond.
Coordinator
EenBelbinteamroldiegekenmerktwordtdoorleiderschap,organisatievaardigheden,enhetvermogenomhet teamtecoördinerenentesturennaarhetbehalenvandoelstellingen.Coördinatorenzijninstaatomteamleden tebeïnvloeden,beslissingentenemenwanneerdatnodigis,eneenpositieveteamomgevingtebevorderen.
Functioneelleidinggevende
Ookwelbekendalseenlijnmanager,eenmanagerbinneneenorganisatiedieverantwoordelijkisvoorhetbeheer vaneenspecifiekefunctieofafdeling.
Functioneelontwerp
Eendocumentdatgedetailleerdeinformatiebevatoverdefunctiesenhetgedragvaneensysteem, softwaretoepassingofproduct.
Implementer
EenBelbinteamroldiewordtgekenmerktdoorpraktischdenken,organisatorischevaardighedeneneen systematischeaanpakvantaken.
CONCEPT
Iteratievemethode
Eenontwikkelingsbenaderingwaarbijhetontwikkelingsproceswordtopgesplitstinherhaaldecycliofiteraties.
Linking-pin-principe
Eenprincipedatverwijstnaarhetideedatleidersopverschillendehiërarchischeniveausineenorganisatieals schakels(linkingpins)fungerentussenbovenliggendeenondergeschikteniveaus.
Mijlpaal
Eenspecifiekenbelangrijkpuntindetijdbinneneenproject,datvaakwordtgemarkeerddoorhetbereikenvan eenbepaalddoelofhetvoltooienvaneenspecifiekefasevanhetproject.
Mijlpaalproducten
Ookweleendeliverablegenoemd,eentastbaarresultaatofeenspecifiekproductdatwordtgeproduceerden geleverdalsonderdeelvaneenprojectopeenspecifiekpuntindetijd
MonitorEvaluator
EenBelbinteamroldiewordtgekenmerktdooranalytischdenken,objectiviteitenhetvermogenomstrategische beslissingentenemen.
Operationeelleidinggevende
Ookweloperationeelmanagergenoemd,isverantwoordelijkvoorhetdagelijksebeheerendeuitvoeringvan operationeleactiviteitenbinneneenorganisatie.Dezeleidinggevenderichtzichophetwaarborgenvanefficiëntie, effectiviteitensoepelebedrijfsprocessenomdeoperationeledoelstellingentebereiken.
PRINCE2
PRINCE2staatvoorProjectsINControlledEnvironments,eengestructureerdeprojectmanagementmethode.Het biedteenduidelijkkadervoorhetorganiseren,beherenenuitvoerenvanprojecten.
PakketvanEisen(PvE)
Eendocumentwaarindefunctioneleentechnischeeisenwordenbeschrevendieeenopdrachtgeverheeftvoor eenbepaaldproject.
PlanvanAanpak(PvA)
Eengestructureerddocumentdatdeaanpak,methodologieenplanningbeschrijftvoorhetsuccesvoluitvoeren vaneenproject,taakofactiviteit.
Plant
EenBelbinteamroldiewordtgekenmerktdoorcreativiteit,originaliteitenvernieuwenddenken.Plantszijnvaak visionairenhebbendeneigingomuniekeideeënenconceptentegenereren.
Project
Eenuniekeopgave,begrensdintijdenmiddelenenafgeslotenmeteenprojectresultaat.
Projectgroep
Eentijdelijkegroepvanindividuendiezijnsamengebrachtomgezamenlijkaaneenspecifiekprojecttewerken.
Projectmanagement
Hetteamdatervoormoetzorgendathetprojectmetdebeschikbaremiddelenbinnendeafgesprokentijdtot eengoedeindewordtgebracht.
CONCEPT
Projectorganisatie
Eentijdelijkestructuurdiewordtopgezetomeenspecifiekprojectuittevoeren,hetomvatdemensen,rollen, verantwoordelijkhedenencommunicatielijnendienodigzijnomhetprojectsuccesvoltevoltooien.
Projectplan
Eendocumentdatdescope,doelstellingen,activiteiten,resources,planning,risico'senandererelevanteaspecten vaneenprojectbeschrijft.
Prototyping
Eenontwikkelingsbenaderingwaarbijeenvoorlopige,representatieveversievaneensysteemofproductwordt gemaaktomideeëntevisualiseren,functionaliteittedemonstrerenenfeedbackteverzamelen.
Requirements
Gedetailleerdebeschrijvingenvanwateensysteem,productofdienstmoetkunnendoenomtevoldoenaande verwachtingenenbehoeftenvanbelanghebbenden.
ResourceInvestigator
EenBelbinteamrolbekendomhetverkennenvanexternebronnen,hetleggenvancontactenenhetaantrekken vannieuweideeënenmogelijkhedenvoorhetteam.
Shaper
EenBelbinteamroldiewordtgekenmerktdoordynamiek,vastberadenheidendewilomdoelentebereiken. Shaperszijnvaakassertief,energiekenhebbeneensterkefocusopresultaten.
Specialist
EenBelbinteamroldiewordtgekenmerktdooreendiepgaandekennisenexpertiseopeenspecifiekgebied. Specialistenbeschikkenoveruniekevaardighedenentechnischeknowhowdieessentieelzijnvoorhetteam.
Stakeholders
Eenpersoon,groepoforganisatiediebelangheeftbijofbeïnvloedwordtdooreenbepaaldproject.
Stuurgroep
Eengroeppersonenbinneneenorganisatiedieverantwoordelijkisvoorhetsturenenbewakenvaneenproject ofprogramma.
Teamworker
EenBelbinteamroldiewordtgekenmerktdoorsociaalgedrag,empathieenhetvermogenomharmoniebinnen hetteamtebevorderen.Teamworkerszijngoedeluisteraars,ondersteunend,endragenbijaaneenpositieve teamdynamiek.
Technischontwerp
Eengedetailleerddocumentdatspecifieketechnischeaspectenvaneensysteem,softwaretoepassingofproduct beschrijft.
Watervalmethode
Eentraditionelebenaderingvansoftwareontwikkeling.Indezemethodewordthetontwikkelingsprocesopgedeeld inverschillendefasenenelkefasemoetvolledigwordenvoltooidvoordatdevolgendebegint.
Werkgroep
CONCEPT
Eenkleinegroepmensenbinneneenorganisatiedieissamengekomenomaaneenspecifieketaak,projectof doeltewerken.
1.5 Praktijkopdrachten
Opdracht4 Projectplanning
a. VormmeteengroepjevanviertotzesstudenteneenteamenvuldeBelbinTeamCirclein.Bepaaleerstover welkeeigenschappenelkteamlidbeschikt.Neemvoorbeschrijvingvanderollendetheoriedoor.
Gaalsvolgttewerk:
• Elkedeelnemerkiestdrierollendiegoedbijzichzelfpassen.
• Elkteamlidlaatzichookdrieteamrollentoebedelendoorminimaaltweeandereteamleden.
• Vergelijkdeuitkomstenbepaalalsteaminwelkevolgordederollenhetbestebijdiepersoonpassen.
• TekeneenBelbin-cirkelmetnegensecties,eenvoorelkvandeteamrollenvanBelbin.
• Zetvanelkteamliddenamenindesegmentendieovereenkomenmethunbovenstetweerollen.
• Beoordeel,opbasisvandeingevuldecirkel,ofjullieeengoedprojectteamzoudenzijnenbenoemaan welkekwaliteitjulliebehoeftehebbenomhetprojectkansvanslagentegeven.
CONCEPT

b.

Bovenstaandeplanningiseenplanningophoofdlijnen.Daarmeeisdeplanningnognietaf;eengoedeplanning vraagtmeerdetail.Zozaleringeschatmoetenwordenhoeveeltijdeenbepaaldonderdeelkostenermoet kunnenwordenbijgehoudeninhoeverreeenonderdeelisafgerond(inpercentages).Alshetfunctioneel ontwerpklaaris,valterookeengoedeinschattingtemakenvanhetvervolg.Maakdeplanningverderafvanaf hettechnischontwerp.Gebruikhierbijdevolgendegegevens.
• Voegnadekolomverantwoordelijkeeenkolom"Urennodig"eneenkolom"%voltooid"toe.
• StappenTechnischontwerp:
– VertaalhetFunctioneelontwerpnaartechnischespecificaties.
– Maakeengrafischontwerpvandeuserinterface.
– Ontwerpeenrelationeeldatamodel.
– LeverhetTechnischontwerp.
• StappenInrichtenontwikkelomgeving:
– Inventariseerdebenodigdeonderdelenvoorderealisatie.
– Installeerenconfigureerdeontwikkelomgeving.
– Testdeontwikkelomgeving.
– Documenteerdeinstellingenenwijzigingen.
• StappenRealisatie:
– Opleverendeelproduct1.
– Opleverendeelproduct2.
– Opleverendeelproduct3.
CONCEPT
– Opleverendeelproduct4.
• StappenImplementatie:
– Steleenacceptatietestopvoordeapplicatie.
– Begeleidenvandeacceptatietest.
– Beschrijfeventueleaanpassingen.
– Werkdedocumentatievandeapplicatiebij.
– Evalueerhetproductmetdebetrokkenen.
– Evalueerhetprocesmetdebetrokkenen.
– Legditvastineenevaluatieverslag.
– Laathetevaluatieverslagaccorderen.
1.6 Terugblik
Opdracht5 Terugblik
Zeteenkruisjeindekolomdievoorjouvantoepassingis.
Beoordelingscriteria
Jekuntdebelangrijkstekenmerkenvaneenprojectenhuneigenschappenbenoemen.
Jekunthetlinking-pin-principeendebelangrijkstekenmerkendaarvanbenoemen.
Jekunteenprojectplanlezenentoepassenenweetwelkeonderdelenineenprojectplan horentestaan.
Jekuntdesterkteen/ofzwaktevaneenteammetbehulpvandeBelbinTeamCirclein beeldbrengen.
Jekunteenplanningmaken.
Opdracht6 Terugblik
Denknaoverwatjehebtgedaaninditblok.
a. Noemtweedingenwaaroverjetevredenbent. 1.
b. Noemtweedingendiejedevolgendekeeranderswiltdoen.
CONCEPT
c. Vraagjedocenten/ofleermeesteromfeedback.
Tops:
Tips:
Nee JaCONCEPT

Blok2 Ontwikkelmethode
CONCEPT
Leerdoelen
• Jekuntdeverschillendeontwikkelmethodiekenonderscheiden.
• Jekuntdebelangrijkstevoorennadelenvandeverschillendeontwikkelmethodiekentegenelkaarafwegen.
• Jekuntalsdeveloperfunctionerenineenrolbinnenéénvandeontwikkelmethodieken.
Erzijnveelverschillendemethodenomsoftwareteontwikkelen.Debedoelingvanhetgebruikvaneen software-ontwikkelmethodiekisomhetsoftware-ontwikkeltrajectbinnendevastgesteldetijdenhetbudgetaf teronden.Alvanafhetbeginvansoftware-ontwikkelingismenopzoeknaardeidealemethode.Indepraktijk blijktdatdienietbestaat.Deomvangendeaardvaneentraject,demensenenbeschikbaremiddelenzijnallemaal factorendiemeespelen.Injouwpraktijkzuljemetverschillendemethodentemakenkrijgen.Daaromishet belangrijkdatjeopdehoogtebentvandebelangrijkstekenmerken.
Opdracht1 OriëntatieopdrachtOntwikkelmethode
Dezeopdrachtvoerjeuitineengroepjevandrieofvierstudenten.
Bekijkdeuitlegvideo Scrum: waterval vs. agile inBoomDigitaal.
DezevideoprobeerthetverschiltussendeAgile-endeWatervalmethodeteduiden.Ditfilmpjeisduidelijkgemaakt doorvoorstandersvandeAgile-methodiek.Bedenkmetjegroepjeeenaantalargumentenvoorhettoepassen vandeWatervalmethode(hetgrotekanon).
2.1 Watervalmethode
CONCEPT

Figuur 2.1 Watervalmethode
DeWatervalmethodevraagtveelervaring.Zelijktergopwaterindebouwgebeurteniszogenoemdomdathet ontwikkelprojectineenaantalduidelijkefasenalseenwatervalvloeiendnaarbenedenloopt.Omtebeginnen laateenbedrijfoforganisatieonderzoekdoennaardebehoefte.Ditismeteendebelangrijkstefase.Alshetlukt omduidelijkvastteleggenwatdebehoefteis,danisdekansreëeldathetprojectgaatslagen.Vervolgenskomt ereentrajectvanontwerp,realisatie,implementatieengebruikenbeheer.DebekendsteWatervalmethodeis SDM.
SDM
SDMkentzevenfasendieineenvastgesteldevolgordewordenafgewerkt.Heteindevaneenfasewordteen mijlpaalproductgenoemd.Voorelkefasewordendanookmijlpaalproductenbeschreven,dezakendieopgeleverd wordenaanheteindevandezefase.Jekuntpasmetdevolgendefasebeginnenalsdemijlpaalproductenzijn goedgekeurddoordeopdrachtgever.Wanneereenmijlpaalproductisgoedgekeurd,isditvastgesteldenkanhet nietmeerwordenaangepast.
Debelangrijkstevoordelenhiervanzijndatdevoortganggoedkanwordengevolgd.Omdatereenplanningmet deadlineswordtgebruikt,kangecontroleerdwordenofdevoortgangvanhetprojectopschemaligt.
FasenvanSDM
Fase0–Informatieplanning
Indeeerstefasewordteenanalysegemaaktvandehuidigesituatieenvanmogelijkeoplossingenvoorhet probleem.Demijlpaalproductenzijn:
• Hetidentificerenenvaststellenvandeinformatiebehoeftenvandeorganisatie.
• AnalysevanBedrijfsprocessen,hetbegrijpenvandebestaandebedrijfsprocessenbinnendeorganisatie.
• Stakeholderbetrokkenheid,betrekkenvanbelanghebbendenbinnendeorganisatie,waarondermanagers, medewerkersenandererelevantepartijen,omervoortezorgendatdeinformatiebehoeftenvolledigworden begrepenengeïntegreerd.
• DefiniërenvanInformatie-architectuurdoorhetopstellenvaneenblauwdrukofarchitectuurvoorhoeinformatie wordtgeorganiseerd,opgeslagen,verwerktenuitgewisseldbinnendeorganisatie.
• InformatiebeveiligingenPrivacyvandeinformatie.
• TechnologischeVereistendoorhetbepalenvandetechnologischeinfrastructuurdienodigisomde informatiebehoeftenvandeorganisatieteondersteunen.
• OntwikkelenvaneenInformatiestrategievoorhetbeherenengebruikenvaninformatiebinnendeorganisatie.
Deinformatiebehoefteisbijalleswaterverderwordtgedaanhetuitgangspunt.Datiswatdeklantnodigheeft.
Fase1–Definitiestudie
CONCEPT
Indezefasewordtonderzochtofhetrealiserenvanhetprojecthaalbaaris.Hetgaatomzakenals:kanhet,ishet betaalbaar,leverthetmeeropdanhetkost?Demijlpaalproductenzijn:
• hetRapportdefinitiestudie:eenomschrijvingvandesysteemeisen;
• hetSysteemconcept:eenomschrijvingvandehoofdfunctiesvanhetsysteem;
• Kosten-batenanalyse:hierinwordtbeschrevenhoemenhetsysteemgaatbouwenenwelkevoorwaardenen kostenaanhetsysteemverbondenzijn.
Fase2–Basisontwerp
HetBasisontwerpbeschrijftwathetsysteemzaldoen.Demijlpaalproductenzijn:
• deBasisgegevensstructuur:metwelkegegevenswordtinhetnieuwesysteemgewerktenhoewordende gegevensvanhetoudenaarhetnieuwesysteemgeconverteerd?
• deBasisfunctiestructuur:defunctiesvanhetsysteem;
• deTechnischesysteemstructuur:welkeapparatuur,programmatuurenbestandsstructuurzijnnodig?
Fase3–Detailontwerp
HetBasisontwerpwordtverderindetailuitgewerktdoorspecifiekertebeschrijvenwatelkonderdeelvanhet systeemdoet.HetresultaathiervanishetFunctioneelontwerp.Demijlpaalproductenzijn:
• hetRapportfunctioneelontwerp:hierinstaatdebeschrijvingvandefuncties,vandegegevensstructuuren vandeinterface;
• hetRapporttechnischontwerp:hierinstaandeformulierenenprocedures,interfaces,opslagstructuuren welkehardwarecomponentennodigzijn;
• Planvoorsysteemtest:ditisdebeschrijvingvandeuittevoerentest;
• Planvooracceptatietest,ofteweldetestvoordegebruiker;deopdrachtgeverkanopbasisvandezetesthet systeemwelofnietaccepteren.
Fase4–Realisatie
IndezefasewordthetsysteemgebouwdopbasisvanhetFunctioneelontwerpenhetTechnischontwerp.De mijlpaalproductenzijn:
• hetRapportsysteemtest,ofteweldeuitslagvandeSysteemtest;
• hetRapportacceptatietest,ofteweldeuitslagvandeAcceptatietest.
Fase5–Invoering
Hetinstallerenvanhetsysteemenhetbegeleidenvandegebruikersbijhetgebruik,eventueeldoorhetverzorgen vantrainingen.Demijlpaalproductenzijn:
• conversieeninvoeringsplanhoeeenenandermoetplaatsvinden;
• afgeslotenprojectdocumentatie:alledocumentatiewordtnagekekenenbijgewerktopgeleverdaande beheerder;
• overdrachtsrapport:ditisheteindrapportwaarmeehetsysteemovergedragenwordtaandeorganisatie.
Fase6–Gebruikenbeheer
Belangrijkzijnderegelsdieervoorzorgendathetsysteemblijftvoldoenaandegesteldeeisen.Verderwordtin dezefaseaangegevenhoedefectenenstoringenverholpenmoetenworden.Zolanghetsysteemwordtgebruikt zaldezefasenieteindigen.Demijlpaalproductenzijn:
• organisatievangebruikenonderhoud;
• verschillendegebruiks-enbeheersplannen;
• systeembeschrijving;
• periodiekbeoordelingsrapport.
NadelenvandeWatervalmethode
CONCEPT
DeWatervalmethodeiseenlangetijddemeestgebruiktemethodegeweest.Deomvangvandesoftwareende snelheidwaarmeesoftwaremoetwordenontwikkeldzijntweevandeveranderingendiehebbenplaatsgevonden. MetdezeveranderingenisookdebehoefteontstaanaaneenandereontwikkelmethodiekdandeWatervalmethode. Voordeontwikkelingvansoftwarezijndebelangrijkstebezwaren:
• dekansopmislukkingisgroot;
• dezemethodekostveeltijdendusgeld;
• indedefinitiestudiemoethetsysteemalvolledigwordenbeschreven;
• erisweiniggebruikersparticipatie;
• hetiseeninefficiëntemaniervanwerken,omdaterveeltijdgaatzitteninwachtenopdevolledigeafronding vandevoorafgaandefase.
Opdracht2 Watervalmethode
RaadpleegzonodigdetheorieoverdeWatervalmethode.
a. WatishetbelangrijksteargumentomSDMtoetepassen?
b. UitwelkefasenbestaatSDM?
c. WatzijnmijlpaalproductenbijSDM?
d. WatzijndemijlpaalproductenvandefaseInformatieplanningbijSDM?
e. WatishetbelangvandefaseDefinitiestudiebijSDM?
f. WatzijndemijlpaalproductenvandefaseDefinitiestudiebijSDM?
CONCEPT
g. WatgebeurterindefaseBasisontwerpbijSDM?
h. WatzijndemijlpaalproductenvandefaseBasisontwerpbijSDM?
i. WatgebeurterindefaseDetailontwerpbijSDM?
j. WatzijndemijlpaalproductenvandefaseDetailontwerpbijSDM?
k. WatgebeurterindefaseRealisatiebijSDM?
l. WatzijndemijlpaalproductenvandefaseRealisatiebijSDM?
m. WatgebeurterindefaseInvoeringbijSDM?
n. WatzijndemijlpaalproductenvandefaseInvoeringbijSDM?
CONCEPT
o. Waaromisfase6,Gebruikenbeheer,feitelijkgeenfasebijSDM?
p. WatzijndenadelenvandeWatervalmethode?
2.2 Spiraalmethode
Agile
Agilewerkenkomjeinsteedsmeerorganisatiestegen.Washetinhetbeginnogvoorbehoudenaan automatiseerders,opditmomentkomjeAgilewerkeninallerleiorganisatiestegen. AlsjeAgilevertaaltuithetEngelsdankrijgjeinhetNederlands:behendig,lenig,rapenvlug.Datisprecieswaar determnaarverwijst.
ErzijnverschillendeAgile-methoden.Agilestaatvoorsoftware-ontwikkelinginkorteoverzichtelijkeperiodesdie zichherhalen,zogenoemdeiteraties.Elkeperiodeiseenprojectopzichenleverteenwerkendproductop.Een periodekaneendag,eenweekmaarzekernietmeerdaneenmaandduren.Hetbehendige,lenige,rappeen vluggevanAgilekomttotuitingdoordatelkeiteratie(herhaling)eenwerkendproductoplevert.Ditwordtgetest, getoondengeëvalueerd,zodatduidelijkwordtofdekoersjuistis.Hetregelmatigzienvantastbareresultaten maakthetproceszeerconcreet.Opbasisvandeuitkomstkaneennieuwecycluswordengestartwaarinnieuwe ideeënwordengerealiseerd.
Despiraal-enAgileSoftwareDevelopmentLifeCycle(SDLC)-methodologieënzijnzoweliteratiefalsincrementeel, watbetekentdatzeherhaaldecyclivanplanning,uitvoeringenevaluatieomvatten.Erzijnechterenkelebelangrijke verschillentussendetwee.Despiraalmethodeisgerichtophetbeherenvanrisico'senwordtmeestalgebruikt voorgrotereprojecten.Hethoudtindatdeuitvoeringindecyclusvoornamelijkbestaatuitrisicoanalyse.Agile legtdenadrukopflexibiliteit,samenwerkingensnelleiteratie.Hetwordtvaakgebruiktvoorkleineretot middelgroteprojectenmetveelonzekerheidenveranderendeeisen.Hoewelrisicoanalysenogsteedsbelangrijk isinAgile,komthetinminderemateterugdanbijdespiraalmethode,omdatAgilemeergerichtisophetreageren opveranderingenenhetaanpassenvanhetprocesopbasisvanfeedbackgedurendedeontwikkeling.
IneenAgile-organisatieisersprakevanzelforganiserendeteamsdiedeklantwaardealtijdalsuitgangspunt hebben.Hetwerkwordtgedaanopeenherhalendemanier(iteratie)waarbijmetregelmaatsprakeisvaninteractie mettoekomstigegebruikers.Deorganisatiekanhierdoorhetteontwikkelenproductvooriederegebruikercontinu verbeteren.
CONCEPT
Agile-methodenzijnsterkgerichtopcommunicatie.Defocusligtopdirectpersoonlijkcontactinplaatsvan schriftelijkeverslaglegging.Erwordtdanookweinigtijdbesteedaangeschrevendocumentatie.EenAgile-team bevatverschillendespecialisteneneenvertegenwoordigingvandeopdrachtgever.Bijvoorkeurwerkenzij gedurendehetprojectinéénruimte.Dezeruimtewordtookweldebullpengenoemd.Devoortgangwordt gemeteninprototypeneneenwerkendproduct.
Agile-ontwikkelaarszettenzichvaakaftegenhetWaterval-ontwikkelmodel.DeWatervalmethodenzijntelogen tebureaucratisch(veelpapierwerk!).MaardatisdanookmeteendezwakkeplekvandeAgile-methode.Plannen, telkensveranderenenweinigofnietdocumenterenkanleidentotchaos.DaarstaattegenoverdatAgilevaak kostenbesparendisenveeleerderwerkendeproductenoplevert.
DebelangrijksteredenenomAgiletoetepassenzijn:
• Snelleaanpassingaanverandering:
– Agilesteltteamsinstaatomsneltereagerenopveranderendeeisenenprioriteiten.Deflexibeleaardvan Agilemaakthetmogelijkomsnelaanpassingenaantebrengeninhetproject,zelfsalsdezealisgestart.
• Continueleveringvanwaarde:
– Doortewerkeninkorteiteraties,bekendalssprints,kanAgileregelmatigwerkendedelenvanhetproduct opleveren.Ditbetekentdatklantenenbelanghebbendenregelmatigtastbareresultatenzienenwaarde ontvangen.
• Klantbetrokkenheidenfeedback:
– Agilemoedigtnauwesamenwerkingaantussenhetontwikkelteamendeklantofbelanghebbenden.Dit zorgtvoorfrequentefeedback,waardoorhetteamsnelkanreagerenopdebehoeftenenverwachtingen vandeklant.
• Verbeterdekwaliteit:
– Doorregelmatigeinspectieenaanpassingindevormvansprintreviewsenretrospectives,kaneenAgile teamvoortdurenddekwaliteitvanhetwerkverbeteren.Problemenwordeneerdergeïdentificeerden opgelost.
• Efficiëntgebruikvanmiddelen:
– Agileverdeelthetwerkinkleine,behapbareeenheden,waardoorteamshunmiddeleneffectieverkunnen beherenenprioriteitenkunnenstellenopbasisvanklantwaarde.
• Betrokkenheidenempowermentvanhetteam:
– Agilebenadruktzelfsturingenteamempowerment.Teamledenhebbenmeerinvloedophetplannenen uitvoerenvanhetwerk,watvaakleidttotmeergemotiveerdeenbetrokkenteamleden.
• Transparantieencommunicatie:
– Agilemethodologieën,zoalsScrum,bevorderentransparantiebinnenhetteamenmetbelanghebbenden. Dagelijksestand-ups,sprintreviewsenandereceremonieszorgenvooropencommunicatieovervoortgang, uitdagingenenvolgendestappen.
• Risicobeheer:
– Doorregelmatigeinspectievanhetwerkenvoortdurendeaanpassingvanprioriteiten,kunnenAgileteams risico'sbeterbeherenensnelinspelenoponverwachteuitdagingen.
Maardanmoetmenwelinhetvolgendekunnenvoorzien:
• Decontinuebeschikbaarheidvanklantofgebruikers.
• Goedoverwegkunnenmetveranderingen.
Scrum
EenvoorbeeldvandeAgile-methodeisScrum.
CONCEPT

HoeScrumwerkt–hetbegin
Hetbegintmeteenidee.
Deideeënmoetenviadiscussiewordenvertaaldnaareenverhaalendatwordtinstukjesopgedeeld.Elkstukje noemenweeensprint.HetScrumteamisverantwoordelijkvoorhetresultaatendaarmeevoordeplanning,de werkverdelingendevoortgangsbewaking.
Elkvandiestukjesiseenstukjeapplicatie(sprint)datwordtuitgewerkt.ErwordteenScrumMasteraangesteld, diezorgtdatdeteamledenzichaandeScrumregelshouden,maardenadrukligtvooralophetondersteunenvan hetteam,zelfsalsditbetekentdatervanderegelsmoetwordenafgeweken.
Erwordteenproductbackloggemaakt,ditiseengeprioriteerdewerklijstvoorhetontwikkelteam.enerwordt bepaaldwatdeprioriteitisvandeverschillendesprints.Hetopdelenvanhetwerkinkleine,overzichtelijketaken isvanbelangomoverzichttehoudenendevoortganggoedinbeeldtehebben.DeProductOwnerneemtde beslissingenoverwelkesprintshetbelangrijkstzijnenalseerstewordenuitgevoerd.
ProfessionalsineenScrum
DebelangrijkstesuccesfactorvanScrumishetvermogenvanprofessionalsomzelforganiserendtezijn.Daarvoor ishetnoodzakelijkdatmenelkaarindekrachtzet:‘Laatmensendoenwaarzegoedinzijn.’
HetScrumteam
HetScrumteamiszelfgrotendeelsverantwoordelijkvoorhetrealiserenvanprojectdoelstellingen,ookalshet eventegenzit.BijgroteobstakelsspringtdeScrumMasterin.
Deteamledenmoetenzelfwerkuitkiezenwatbijzepastendituitsplitsentottaakniveau.HetScrumteamisook verantwoordelijkvoordeplanning,dewerkverdelingendevoortgangsbewaking.Dedagelijksewerkverdeling wordtdoordeteamledenbepaaldopbasisvanprioriteitenencompetenties.OpeenScrumbordwordende sprintsbijgehoudendoorhetScrumteam:
CONCEPT

Figuur 2.3 Scrumbord
DeScrumMaster
EenScrumteamwordtbegeleiddooreenScrumMaster.Diegeneisvooralnieteenhiërarchischeprojectleider. DeScrumMasterzethetteaminzijnkracht.Nietiedereenisoveralevengoedin,maariedereenheeftzijneigen sterkepunten.HetisaandeScrumMasteromhetteammaximaaltefaciliteren,zodatdeteamledenkunnendoen waarzegoedinzijn.
HoeweldeScrumMasterervoormoetzorgendatalletakenwordenvoltooid,ishetaandeindividueleteamleden omhuneigenwerktekiezen.DeScrumMasterzorgtervoordatereenrealistischewerklastisenhelpteventuele obstakelsuitdewegteruimen.
DeScrumMasterrapporteertnietoverdevoortgang,datdoethetontwikkelteamindereviewmeeting.DeScrum MasterfaciliteertweldevoortgangdoorScrummeetingsgoedtelatenverlopenendaarwaarmogelijkobstakels wegtenemen.DoortefaciliterenencoachenhelptdeScrumMasterhetteamomsuccesvoltezijn.
Productowner
DeProductownerisverantwoordelijkvooriteratiefprojectmanagementenwordthierbijondersteunddoorde ScrumMaster.Dithoudtindatdescopeincompleetkanzijnenvoortdurendkanwijzigen.
Deverantwoordelijkheidvoorhetbudget,descopeendetijdlijnligtdanookbijdeProductowner.
DeProductownerisaltijdéénpersoon,bijvoorkeurdeklantofdeopdrachtgever.Debelangrijkstetaakisde belangenvandeklantgoedtevertegenwoordigen.DeProductownermoetindejuistefrequentiecontact onderhoudenmetallebetrokkenen.
InhetsprintplanzaldeProductownerbelangrijkeinzichtenmetbetrekkingtothetproductdelenmetderest vanhetScrumteam.DesamenwerkingencommunicatiemetdeScrumMasterenhetScrumteamisvangroot belang.DeProductownerbepaalt wat ermoetwordengedaan,maarlaathetontwikkelteamvolledigvrijin hoe ditwordtgerealiseerd.DeProductownerkanhetbestonderdeelzijnvanhetScrumteam(developmentteam).
CONCEPT
DeProductownerbepaaltdevolgordewaarindeitemsmoetenwordenopgepaktenprioriteertdeproduct backlog.Debelangrijkstewensenstaanbovenaan,omdatdezedegrootstewaardeopleverenvoordeuiteindelijke gebruikersvanheteindproduct.Ookhetduidelijkomschrijvenvandeonderdeleniseenbelangrijketaak.Een goedeomschrijvingvandeitemsopdeproductbacklogzorgtervoordathetprojectteamzebegrijptenkan oppakken.Hiervoorwordenuserstoriesgeschreven.Eenuserstoryiseenbeschrijvingvanhoeeengebruikereen productgaatgebruiken.Voorhetschrijvenvanuserstorieszijnregels,dezekomeninblok4Functioneelontwerp aandeorde.
HetisdeProductownerdiedebeslissingenneemt.Hierdoorisermeerfocusenraaktmennietverlorenin eindelozediscussiesoverwiewatbelangrijkvindtenwatdevervolgkeuzeszijn.Hiervoorzoumeneen MoSCoW-analysekunnengebruiken.InhethoofdstukProgrammavaneisenvanblok3Veiligenbetrouwbaar softwareontwikkelenkomthetmakenvaneenMoSCoW-analyseaandeorde.
HoeScrumwerkt–hetvervolg
DebelangrijksteuserstoriesstaanbovenaanenwordendooreenScrumteamineensprintbacklogopgenomen (sprintbacklogiseenbeschrijvingvanwatmengaatdoenindesprint).IndesprintplanningzaldeProductowner debelangrijkeinzichtenmetbetrekkingtothetproductdelenmetderestvanhetScrumteam.Ophetscrumbord wordtnudoorhetteamdeproductbacklogindejuistevolgordegezet.

CONCEPT
UserstorieswordendoorhetScrumteamomgezetnaareenkant-en-klaarproduct,inclusieftestendocumentatie.
Dagelijks(dailycycle)wordterdoordeScrumMastergestuurdopdevoortgangaandehandvandevolgende drievragen:
a.Wathebjegisterengedaan?
b.Watgajevandaagdoen?
c.Zijnerergensproblemenontstaan?(Enhoekunnenwejehelpen?)
TijdenseensprintstaanalletakenduidelijkzichtbaarophetScrumbordenbepalendeteamledenzelfwelke takenopeenbepaaldmomentuitgevoerdwordenenwieditdoet.
Iederesprintwordtafgeslotenmeteenevaluatieenvastleggingvanleerpunten(retrospective)zodathetteam devolgendesprintnogbeterkanuitvoeren.
Figuur 2.4 Backlog in juiste volgorde op Scrumbord
Figuur 2.5 Scrumbord
Hetopdelenvanhetwerkinkleineworkitems, to do’s,geeftdeontwikkelaarszelfdemogelijkheidomdevoortgang tebewaken.HiervoorwordtdeBurndownchartingevuld.Ditgeeftelkestand-upmeeting(zieverderop)voldoening overbereikteresultaten.
De nieuwe functionaliteit wordt getoond.
CONCEPT
DereviewmeetingaanheteindevanelkesprintisergbelangrijkvoordeProductowner,omdatdaarwordt getoondwaterisgemaaktenwaaropfeedbackmoetwordengegeven.Tijdensdereviewmeetingwerkthet Scrumteamsamenmetallebetrokkenen.Erwordtfeedbackverzameldophetopgeleverdewerkenmenkijkt vooruitnaarwaterkomengaat.
Er wordt bepaald welke sprint er gaat volgen.
HetScrumteamiszelfgrotendeelsverantwoordelijkvoorhetrealiserenvanprojectdoelstellingen,maarhetisde Productownerdiedebeslissingenneemt.
ErzijnookdigitaleomgevingenwaarinmeneenScrumbordbijkanhouden.EenvoorbeelddaarvanisTrello.Toch kiezenveelScrumteamservooromeenanaloogScrumbordaandemuurtehangen.Iedereenkaninéénoogopslag zienwiewaarmeebezigisenwatdeactuelestandvanzakenis.Datwerktnatuurlijkalleenalsmetmetgrote regelmaatopdeplekkomtwaarhetScrumbordhangt.Wanneermenervoorkiestomveelthuistewerken,zal ereerdervooreendigitaleSrumomgevinggekozenworden.
Retrospective
AanheteindevanelkesprintvolgtdeRetrospective HetdoelvandeRetrospectiveisomhetteamproceste reflecteren.Ditommogelijkeverbeteringenteidentificeren.TijdensdeRetrospectivekijkendeteamledenterug opdeafgelopensprintomtebesprekenwatergoedging,watmindergoedgingenwelkestappenerkunnen wordengenomenomhetprocesteoptimaliseren.Hetiseengelegenheidvoorhetteamomtelerenvande
successenenuitdagingenvandeafgelopensprint,enompositieveveranderingenaantebrengenindemanier waaropzewerken.Hetisdebedoelingomdeefficiëntie,effectiviteitenteamdynamiekteverbeterenintoekomstige sprints.
eXtremeProgramming(XP)
eXtremeProgrammingiseen‘humanistischedisciplinevansoftware-ontwikkeling,gebaseerdopprincipesvan eenvoud,communicatie,feedbackenmoed’.HetsuccesvaneXtremeProgramminghangtafvandefeedback, eencontinuproces,gedeeldekennisenhetwelzijnvandeontwikkelaars.
eXtremeProgrammingisvooralgeschiktvoorprojectenwaarbijdeexacteapplicatie-eisennietbijvoorbaat vastliggen.
BijeXtremeProgrammingwordtdesoftware-ontwikkelingintweetallenuitgevoerd–tweeontwikkelaarsachter éénsysteem.Hierbijishetbelangrijkdatdeteamsregelmatigvansamenstellingwisselen.Erontstaatdaardoor eencollectief‘eigendomsgevoel’enwordenpeer-reviewencode-inspectiealsvannatureonderdeelvanhet normalesoftware-ontwikkelproces.Decodevanverschillendeonderdelenzalbeterenmeeropelkaarzijn afgestemdenbeterteonderhoudenzijn.
Eenandervoordeelvandezemaniervanwerkenisdateraltijdminstenstweemensenelkstukcodevolledig doorgronden.Daarnaastgaathetinwerkenvannieuwemensenalsvanzelfomdatereenvoortdurende training-on-the-jobplaatsvindt.
CONCEPT

Allesbegintbijdeplanningdiewekelijksplaatsvindtenbestaatuitdereleaseplanningendeiteratieplanning.
Release-planning
Omeenrelease-plantemakenwordtereenrelease-planningsbijeenkomstgeorganiseerdwaarinhettotale projectwordtbekeken.Hetrelease-plandientalsbasisvoordeiteratieplannen.Hetisbelangrijkdattechnische mensendetechnischebeslissingenenzakenmensendezakelijkebeslissingennemen.Derelease-planning,die uitdriefasenbestaat,bepaaltwelkefunctionaliteitinwelkereleasegerealiseerdwordt.Deessentievande release-planningsbijeenkomstisdathetontwikkelteamvoorelkeuserstoryinschathoeveelprogrammeerweken ervoornodigzijn.Deklantbepaaltvervolgenswelkeuserstoryhetbelangrijksteisendehoogsteprioriteitkrijgt.
Exploration phase
Indeonderzoeksfasemakendegebruikersuserstorieswaarindebelangrijksteeisenvoorhetnieuwesysteem zijnverwerkt.Dezemoetenkortenoverzichtelijkzijn.
Figuur 2.6 Figuur 2.7 - Schema eXtreme ProgrammingCommitment phase
Indeconceptbesluitvormingwordtbesloteninwelkevolgordedeuserstorieswordenuitgewerkt.
Steering phase
Indewijzigingsfasekanhetplannogwordenaangepast.Erkunnennieuweuserstorieswordentoegevoegden bestaandeuserstorieswordenverwijderd.
EnkelebelangrijkekenmerkenvaneXtremeProgrammingzijn:
1. Korteontwikkelingscycli:eXtremeProgrammingbenadrukthetwerkeninzeerkorteontwikkelingscycli, meestalvanééntottweeweken.Elkecyclusresulteertineenpotentiëleopleveringvansoftware.
2. Frequentfeedback:hetteamverzameltvoortdurendfeedbackvanklanten,gebruikersenstakeholdersom desoftwarevoortdurendaantepassenaanveranderendevereistenenprioriteiten.
3. Pairprogramming:developerswerkenvaakinparen,waarbijéénpersooncodeertendeanderedecode controleert.Ditbevordertkennisdelingenhelptbijhetverbeterenvancodekwaliteit.
4. Test-drivendevelopment(TDD):bijTDDschrijvenontwikkelaarseersttestsenbouwenzevervolgensde codeomaandieteststevoldoen.Dithelptbijhetgaranderenvandekwaliteitenfunctionaliteitvande software.
5. Klantbetrokkenheid:klantenzijnactiefbetrokkenbijhetprojectenwerkensamenmethetontwikkelingsteam omprioriteitentestellenenvereistenteverduidelijken.
6. Kleinereleases:eXtremeProgrammingmoedigtfrequentekleinereleasesaanomwaardesnelaangebruikers televerenenhetrisicovanlangeontwikkelingscycliteverminderen.
7. Collectievecode-eigendom:elkteamlidisverantwoordelijkvoordekwaliteitvandegehelecodebaseen kanwijzigingenaanbrengenwaardatnodigis.
8. Eenvoud:eXtremeProgrammingpleitvoorhethandhavenvaneenvoudinhetontwerpendecodeom complexiteitteminimaliseren.
9. Continuintegreren:hetteamintegreertvoortdurendnieuwecodeindehoofdcodebase,waardoorproblemen snelkunnenwordengeïdentificeerdenopgelost.
10. Planninggame:inde"planninggame"komenklantenenhetontwikkelingsteamsamenomprioriteitente stellenenteplannenvoordekomendeontwikkelingscycli.
CONCEPT
Userstory
Userstorieswordengebruiktomtijdschattingentemakenvoorderelease-planning.Userstoriesworden geschrevendoordeklanten/ofeindgebruikeralsdingendiehetsysteemvoorhenmoetdoen.Zebestaanuiteen paarzinnentekstgeschrevendoordeklantindeterminologievandeklantzondertechnischeinformatie.Deuser storywordtookgebruiktvoorhetmakenvandeacceptatietests.Ermoetenéénofmeergeautomatiseerde acceptatietestswordengemaaktomtecontrolerenofdeuserstory,‘hetgebruikersverhaal’,correctis geïmplementeerd.Deuserstoriesmogennietteveelindetailgaan,maarzemoetenwelvoldoendedetails bevattenomeenredelijkeschattingtekunnenmakenvandetijddiehetgaatkostenomdeuserstoryte implementeren.Tijdensdeimplementatiekrijgendeontwikkelaarseengedetailleerdebeschrijvingvande vereistenvandeklant.
Deontwikkelaarsschattenperuserstoryinhoelanghetzaldurenomdezeteimplementeren.Deideale ontwikkeltijdis1,2of3weken.Langerdan3wekenwilzeggendatdeuserstoryverdermoetwordenopgedeeld. Bijminderdan1weekismenbezigopeentegedetailleerdniveau.Indatgevalmoetenuserstoriesgecombineerd worden.
Drievoorbeeldenvanuserstories:
• Alsledenadministrateurvandetennisverenigingwilikdeonlineinschrijfformulierenkunnenbekijkenen accorderen,zodatikcontroleheboverwieerlidwordt.
• Alsvoorzittervandetennisverenigingwiliktoeganghebbentotdelidmaatschapgegevens,zodatikkanzien hoehetverloopis.
• Alslidvandetennisverenigingwilikkunnenzienwanneerwelketennisbaanbeschikbaarisomeentennisbaan tekunnenreserveren.
ArchitectualSpikeenSpike
Hetideehiervanis‘beperkjetothetprobleemdatnuspeelt’.Ontwerpdeeloplossingenomantwoordentevinden oplastigetechnischeofontwerpproblemen.
EenSpike-oplossingiseenheeleenvoudigprogrammaommogelijkeoplossingenteverkennen.Kernhiervanis: bouwdeoplossingomalleenhetprobleemaantepakkendatwordtonderzochtennegeeralleanderezorgen. DemeesteSpikeszijnnietgoedgenoegomtebehoudenenzullenwordenweggegooid.Hetdoelvan Spike-oplossingenishetrisicovaneentechnischprobleemteverminderenofdebetrouwbaarheidvaneenuser storytevergroten.
Acceptancetest(Acceptatietests)
Acceptatietestswordengemaaktopbasisvandeuserstories.Tijdenseeniteratiewordendeuserstoriesdie tijdensdeiteratieplanningsbijeenkomstzijngeselecteerdvertaaldinacceptatietests.Deklantlevertdescenario’s omtetesten.Eenuserstorykanéénofmeerdereacceptatietestshebbenomervoortezorgendatdefunctionaliteit werkt.
Acceptatietestszijnblack-box-systeemtests,ditkomtinhetdeel‘Testenvansoftware’nogaandeorde.Elke acceptatietestvertegenwoordigteenverwachtresultaatvanhetsysteem.Klantenzijnverantwoordelijkvoorhet verifiërenvandejuistheidvandeacceptatietestsenhetbeoordelenvantestscoresomtebeslissenwelkemislukte testsdehoogsteprioriteithebben.Eenuserstoryisnietvoltooidtotdathetdeacceptatietestsheeftdoorstaan.
Kwaliteitswaarborging(qualityassurance,QA)iseenessentieelonderdeelvanhetproces.Hetkanzijndatde kwaliteitwordtgewaarborgddooreenafzonderlijkegroep.Zomoetenacceptatietestswordengeautomatiseerd, zodatzevaakkunnenwordenuitgevoerd.Deacceptatietestscorewordtgedeeldmethetteam.Hetisde verantwoordelijkheidvanhetteamombinnenelkeiteratietijdinteplannenommislukteteststeverhelpen. Vaakwordendezetestsfunctioneletestsgenoemd.Ditomschrijftdeintentiebeter,namelijkgaranderendataan devereistenvaneenklantwordtvoldaanenhetsysteemaanvaardbaaris.
Iteration
CONCEPT
Eeniterationiseenherhaling.Inditgevalgaathetomdeherhalingonderzoeken,verdelen,ontwikkelen, onderzoeken,verdelen,ontwikkelen,onderzoekenenzovoort.
Iteratiefontwikkelenmaakthetontwikkelingsprocesflexibel.Hetisbelangrijkdelengtevandeiteratieconstant tehoudengedurendehetheleproject.Ditisdehartslagvanhetproject.Hierdoorwordthetmetenvanvoortgang enplanningeenvoudigenbetrouwbaar.Deprogrammeerwerkzaamhedenwordennietvantevorengepland.In eeniteratieplanningsbijeenkomstaanhetbeginvanelkeiteratieishetzaakduidelijktekrijgenwatergaat gebeuren.Dezejust-in-time-planningiseeneenvoudigemanieromopdehoogteteblijvenvanveranderende gebruikersvereisten.
Deinspanningenmoetengerichtzijnophetvoltooienvandebelangrijkstetakenzoalsdiedoordeklantzijn aangegeven.
Deiterationplanningbestaatuitdriefasen.Deontwikkelaarshalendetakenuitdeuserstories,dieindesprint zijnopgenomen.
Exploration phase
Indeonderzoeksfasewordendeuserstoriesnaartakenvertaaldenoptaakkaartengeschreven.
Commitment phase
Indetoewijzingsfasewordtvanelkvandezetakeningeschathoelanghetduurtomdezeterealiseren,om vervolgensaandeontwikkelaars,bijvoorkeurparen,toegewezen.
Steering phase
Indeontwikkelfasewordendetakenuitgevoerd.Hetresultaatwordtvergelekenmetdeorigineletijdsplanning vandeuserstory.
Stand-upmeeting
Destand-upmeetingiseendagelijksgebeurenwaarinallebetrokkenenoverleggenoverdeuittevoerenzaken.
Deklanten/ofgebruikerisonderdeelvanhetontwikkelteamenisdaaromcontinuvoorvragenbeschikbaar. eXtremeProgramminggaatervanuitdatdecodeklantspecifiekisendatdaaromdeklantzodichtmogelijkbij hetontwikkeltrajectmoetstaan.Eentoekomstigegebruikermoetaanwezigzijnomervoortezorgendatde applicatiewordtwatdeklantwenst.DaaromwerkteXtremeProgrammingmetkorteontwikkelcycliwaarinsteeds eenaantalgeselecteerdetestcaseswordtgeïmplementeerdtoteenwerkendsysteem.Aanheteindvaniedere cycluskandeklanthetsysteembeoordelenenzonodigdeontwikkelingbijsturen.
Opdracht3 Spiraalmethode
RaadpleegzonodigdetheorieoverdeSpiraalmethode.
a. WaarstaatAgilevoor?
b. WatzijndebelangrijksteredenenomAgiletoetepassen?
c. WaarinmoetwordenvoorzienomAgilesuccesvoltoetepassen?
CONCEPT
d. ZetdeEngelsebenamingachterdeScrum-begrippenindevolgendetabel.
Nederlandsebenaming
Dagelijksecyclus
Deelapplicatie
Idee
Makensprintplan
Sprintcyclus
Sprintplan
Terugkoppeling
Engelsebenaming
e. Kijknaardevolgendefiguur.Plaatsdebegrippen Dagelijkse cyclus, Deelapplicatie, Idee, Maken sprintplan, Sprintcyclus, Sprintplan en Terugkoppeling achterhetjuistegetalindetabel.
CONCEPT

f. DagelijkswordterdoordeScrumMastergestuurdopdevoortgang.Aandehandvanwelkevragen?
g. WatisdebelangrijkesuccesfactorvanScrum?
h. WatisdeScrumMastervooralniet?
i. Watofwieisdeproductowner?
j. Schrijfeendrietaluserstoriesvoortoepassingenbijjouopschool.Datmagzijnalsstudent,maarookalseen medewerkeropschool.
k. OpwelkeprincipesiseXtremeProgramminggebaseerd?
l. WanneeriseXtremeProgrammingeengeschikteontwikkelmethodiek?
m. WatisArchitectualspikeenSpike?
CONCEPT
n. UitwelkedriefasenbestaatdeIterationplanning?
o. Watiseenstand-upmeeting?
2.3 Prototyping
Erzijnverschillendemethodenvanprototypingendezemethodiekwordtookvaaktoegepastbuitende software-ontwikkeling.Denkmaaraaneenprototypevooreenauto,eenmodeldatnoghelemaalnietinproductie is.Waarschijnlijkontbrekeneressentiëleonderdelen,maarvanbuitenzietheteralheelechtuit.
Indesoftware-ontwikkelingishetwerkenmetprototypingnietanders.Erwordteenmodelvaneenapplicatie
gemaaktwaarinbepaaldefunctionaliteitnoghelemaalnietwerktofgesimuleerdwordt.Tochkanditde klant/opdrachtgeveraleenduidelijkbeeldgevenvanhoeeenenandereruitgaatzien.Hieropkandanfeedback wordengegevenendezekaninhetuiteindelijkeproductwordenverwerkt.
Waaromprototyping?
Eenprototypemaakjeomeengoedbeeldtekunnenkrijgenvaneenproduct.Indemeestegevallenzaldatzijn:
Gebruiker
Voordeuiteindelijkegebruikervanhetsysteemiseenduidelijkbeeldvanwathijgaatkrijgenergbelangrijk.Als jemetdeuiteindelijkegebruikervanhetsysteemingesprekgaatoverwatdezenodigheeftaandehandvaneen prototype,isdekansopgoedefeedbackhetgrootst.Jehoeftdannogniethetheleproducttebouwen,maar krijgtwelalleinformatiediejenodighebt.
Opdrachtgeverenontwikkelteam
Alserveelverschillendemensenbetrokkenzijnbijdeontwikkelingvaneensysteemzijnerookveelinterpretaties. Iedereenheeftzijneigenwerkelijkheid.Alsjetegeneengroepvriendenzegt:‘Ikhebeenheelmooieboominmijn tuingeplant,’aanwelkeboomdenkenzedan?

Figuur 2.7 Aan welke boom denk jij?
Voorhetontwikkelteamishetvanbelangdatiederebetrokkeneeenzelfdebeeldheeft.Hetprototypekaneen belangrijkebijdrageleverenaandespecificatievaneensysteem.
Jezelf
CONCEPT
Doortewerkenmetprototypingkanookjijzelfeengoedbeeldkrijgenvandeschermopbouwofvandebeoogde navigatiedoorhetsysteem.Isalleslogisch,vallendejuistezakenop?Daarommoetjeookproberenindenatuurlijke contextteontwerpen.Ishetbedoeldvooreensmartphone,zorgdanookdatjeeenprototypemaaktvoorde smartphone.Ishetbedoeldvooreenscherm,ontwerpdanookopeenscherm.
Wanneerprototyping?
Belangrijkekenmerkenvanprototypingzijnonderandere:
1. SnelleVisualisatie:
– Prototypesbiedeneenvisuelerepresentatievanhetbeoogdesysteem.Ditkanvariërenvanschetsenop papiertotinteractievedigitalemodellen.
2. Interactiviteit:
– Interactieveprototypenkunnengebruikerslatenervarenhoehetsysteemzouwerken.Ditkanhelpenbij hetidentificerenvanvereisten,hetvaliderenvanontwerpaspectenenhetverzamelenvanfeedback.
3. VroegtijdigeFeedback:
– Prototypingsteltbelanghebbendeninstaatomvroeginhetontwikkelingsprocesfeedbacktegeven.Dit kanleidentotaanpassingenenverbeteringenvoordathetdefinitieveproductwordtontwikkeld.
4. VerduidelijkingvanVereisten:
– Dooreentastbaarmodeltecreëren,kunnenontwikkelaarsenbelanghebbendenbeterbegrijpenwater nodigisintermenvanfunctionaliteitenontwerp.
5. Risicovermindering:
– Hetgebruikvanprototypeskanhelpenbijhetidentificerenenbeperkenvanrisico'sineenvroegstadium. Ditkanvariërenvantechnischeuitdagingentotproblemenmetgebruikersacceptatie.
Prototypingkunjealtoepassenophetmomentdatdeklantzijnvraagnognietduidelijkheeft.Jekunthetonder anderegebruikenomdevraagduidelijkerteformuleren,helemaalalsjehetoverontwerpenhebtdienogal moeilijkzijnvoortestellen.Welbeperkjejetotdehoognodigedetails.Ditomtevoorkomendathetmakenvan hetprototypemeerwerkisdanhetuiteindelijkeproduct.
Hoeprototyping?
Erzijnverschillendesoortenprototypes,waaronder:
• Papierenprototypen:schetsenoftekeningenoppapierdiedegebruikersinterfaceofworkflowillustreren.
• Wireframes:eenvoudigedigitalemodellendiedestructuurenlay-outvaneenapplicatieofwebsiteweergeven.
• Interactieveprototypen:digitalemodellendieinteractiessimuleren,vaakontwikkeldmetprototypingtools.
Bijvoorkeurgebruikjetoolswaarmeejealoverwegkunt.Jekuntookgebruikmakenvan:
• moodboard,ommetdeopdrachtgeverkleurenuiterlijktebepalen;
• animaties,omtelatenzienhoeeenenanderopelkaarvolgt;
• interactie-flows,alsersprakeisvanmatrixnavigatiewaargebruikerssnelvanpaginakunnenwisselen.
Letwel:detoolsdiejekiest,moetenjeniettegenhoudenbijhetbedenkenvancreatieveoplossingen.
Opdracht4 Prototyping
Raadpleegzonodigdetheorieoverprototyping.
a. Waaromzoujeprototypinggebruiken?
b. Watvoorbaatheefteengebruiker/klantbijprototyping?
CONCEPT
c. Voorwie,andersdandegebruiker,kanprototypingvanbelangzijn?
d. Wanneerkunjeprototypingtoepassen?
e. Welketoolsmoetjegebruikenbijprototyping?
f. Maakeenmoodboardvoordesitevaneenvereniging.Jemagzelfkiezenwatvoorvereniginghetbetreft.
2.4 Begrippenlijst
Acceptatietests
Eenfaseinhetsoftwareontwikkelingsproceswaarbijeensysteemwordtgetestopbasisvandeacceptatiecriteria omtebepalenofhetvoldoetaandevoorafgedefinieerdevereisten.
Agile
Eenbenaderingvanprojectmanagementensoftwareontwikkelingdiezichrichtopflexibiliteit,samenwerking enklanttevredenheid.Inplaatsvanhetvolgenvaneenstriktlineairproces,zoalsbijtraditionelemethoden, moedigtAgileiteratieveontwikkelingaan.
Black-box-systeemtests
Eenvormvansoftwaretestenwaarbijdeinternestructuur,logicaenimplementatievanhetsysteemnietbekend zijnvoordetester.
Bullpen
Eenspecifiekeruimteinkantoren,vaakinsoftwareontwikkeling,waarontwikkelaarssamenwerken.
Dailycycle
Dedagelijksestand-upmeeting,ookwelbekendalsdeDailyScrum.Ditiseencruciaalenregelmatigterugkerend evenementinhetScrum-framework,ontworpenomdecommunicatie,samenwerkingentransparantiebinnen hetontwikkelingsteamtebevorderen.
EXtremeProgramming(XP)
EenAgilesoftwareontwikkelingsmethodologiedieisontworpenomdekwaliteitendeflexibiliteitvan softwareontwikkelingteverbeteren.
Iteraties
Eenanderwoordvoorherhaling.
Iteration
CONCEPT
Eenherhaling.
Kwaliteitswaarborging
Hetgeheelvangeplandeensystematischeactiviteitendiebinneneenorganisatiewordenuitgevoerdomervoor tezorgendatproductenofdienstenvoldoenaanbepaaldekwaliteitsnormenendeverwachtingenvanklanten.
Mijlpaalproduct
Eentastbaarresultaatofeenspecifiekproductdatwordtopgeleverdopeencruciaalpuntindevoortgangvan eenproject.
Peer-review
Hetproceswaarbijledenvanhetontwikkelingsteamelkaarswerkevaluerenenbeoordelen.
Productowner
EencrucialerolbinnenhetScrum-frameworkvoorAgileprojectmanagement.Dezepersoonisverantwoordelijk voorhetvertegenwoordigendebelangenvandeklantenzorgtervoordathetScrum-teamwerktaanfunctiesen takendiedemeestewaardetoevoegenaanhetproduct.
Prototyping
Eenontwikkelingsbenaderingwaarbijeenvoorlopige,representatieveversievaneensysteemofproductwordt gemaaktomideeëntevisualiseren,functionaliteittedemonstrerenenfeedbackteverzamelen.
Release-plan
Eenroadmapdieaangeeftwanneerspecifiekefuncties,verbeteringenofwijzigingenaaneenproductbeschikbaar zullenzijnvoorgebruikersofklanten.
Retrospective
EenbijeenkomstbinnenhetScrum-frameworkdieplaatsvindtaanheteindevanelkesprint.Hetiseengelegenheid voorhetScrum-teamomtereflecterenopdeafgelopensprintennatedenkenoverwatgoedging,watbeterkan enwelkespecifiekeactieskunnenwordenondernomenomverbeteringenaantebrengen.
Reviewmeeting
EengebeurtenisbinnenhetScrum-frameworkwaarinhetontwikkelingsteamdevoltooidewerkzaamheden presenteertaandebelanghebbenden.
SDM
DeafkortingvoorSoftwareDevelopmentMethodology,watverwijstnaardemethodenenprocessendieworden gevolgdbijhetontwikkelenvansoftware.
Scrum
EenpopulaireAgile-projectmanagementmethodologiediewordtgebruiktvoorhetbeherenenontwikkelenvan complexeproducten.
ScrumMaster
EenbelangrijkerolbinnenhetScrum-framework.DeScrumMasterisverantwoordelijkvoorhetfaciliterenen ondersteunenvanhetScrum-procesbinnenhetontwikkelingsteamendebredereorganisatie.
Scrumteam
CONCEPT
Eenzelforganiserendenmultidisciplinairteamdatsamenwerktomdedoelenvaneenprojecttebereiken.
Spike-oplossing
Eenheeleenvoudigprogrammaommogelijkeoplossingenteverkennen.
Sprintplan
EendocumentdatwordtopgesteldaanhetbeginvanelkesprintineenScrum-project.Hetbevatdetailsover wathetontwikkelingsteamvanplanistebereikentijdensdesprint.
Stand-upmeeting
Eendagelijksgebeurenwaarinallebetrokkenenoverleggenoverdeuittevoerenzaken.
Training-on-the-job
Eenleermethodewaarbijindividuenlerendoordaadwerkelijktakenuittevoerenenpraktischeervaringopte doenindewerkomgeving.
Userstory
Eenkorte,eenvoudigebeschrijvingvaneenfunctieofstukfunctionaliteitvanuithetperspectiefvande eindgebruiker.
Userstory
Eenkorte,eenvoudigebeschrijvingvaneenfunctieofstukfunctionaliteitvanuithetperspectiefvande eindgebruiker.
Watervalmethode
Eentraditionelebenaderingvansoftwareontwikkeling.Indezemethodewordthetontwikkelingsprocesopgedeeld inverschillendefasenenelkefasemoetvolledigwordenvoltooidvoordatdevolgendebegint.
CONCEPT
2.5 Praktijkopdrachten
Opdracht5 Tijdlijnprojectwebomgeving
Dezeopdrachtvoerjeuitineengroepjevandrieofvierstudenten.
FirmaWatermanwileenwebomgevingmetdevolgendefunctionaliteiten:
• Informatie
• Webshop
• Contactpagina
• Reactie/referentiepagina
CONCEPT
Maakvoorditprojectmetjegroepjeeentijdlijnvan15wekenwaarinjegebruikmaaktvandefasenvanSDM.Zorg ervoordatjeelkefasedetijdtoekentdierechtdoetaandehoeveelheidwerkindefase.
2.6 Terugblik
Opdracht6 Terugblik
Zeteenkruisjeindekolomdievoorjouvantoepassingis.
Beoordelingscriteria
Jekuntdeverschillendeontwikkelmethodiekenonderscheiden.
Ja
Jekuntdebelangrijkstevoorennadelenvandeverschillendeontwikkelmethodieken tegenelkaarafwegen.
Jekuntalsdeveloperfunctionerenineenrolbinnenéénvandeontwikkelmethodieken.
Opdracht7 Terugblik
Denknaoverwatjehebtgedaaninditblok.
a. Noemtweedingenwaaroverjetevredenbent.
1.
2.
b. Noemtweedingendiejedevolgendekeeranderswiltdoen.
1. 2.
c. Vraagjedocenten/ofleermeesteromfeedback.
Tops:
Tips:
CONCEPT
NeeCONCEPT

Blok3
CONCEPT
Veiligenbetrouwbaarsoftware ontwikkelen
Leerdoelen
• JekuntdebelangrijksteprincipesuitS-SDLCtoepassen.
• Jekunteenopdrachtopadequatewijzevaststellen.
• JekuntdeLSD-techniektoepassen.
• Jekunteenprogrammavaneisenopstellen.
Wanneerjeonderdeelvaneenteambentdatsoftwaregaatontwikkelen,zullenerafsprakenzijnoverdemethodiek diejullievolgen.SecureSoftwareDevelopmentLifeCycle(vanafnuS-SDLC)wordtsteedspopulairder.Inveel organisatiesishetdestandaarddiegebruiktmoetworden.S-SDLCishetlogischvervolgopSDLC(Software DevelopmentLifeCycle).InditblokwordendebelangrijksteonderdelenvanSDLCenS-SDLCbehandeld.Inde blokkendiehieropvolgenkomendanverschillendemethodenentechniekenaandeordediejenodighebtom eengoedeapplicatieteontwikkelen.
Opdracht1 OriëntatieopdrachtVeiligenbetrouwbaarsoftwareontwikkelen
Bijnaelkestudentheefteenmobieletelefoon.Dezezalalleenwerkenalsdejuistesoftwareisgeladen.Diesoftware heeftmaareenbeperktelevensduur.Onderzoekhoevaakereennieuweversievandebesturingssoftwarevan jouwmobieletelefoonbeschikbaarkomt.
Maakvoordelaatstevijfjaareenoverzichtvandeverschenenversies.
3.1 SoftwareDevelopmentLifeCycle(SDLC)
SoftwareDevelopmentLifeCycle(SDLC)isopgebouwduitvijffasendieelkaarcontinuopvolgen.
CONCEPT

Figuur 3.1 Cyclus SDLC
Wanneerjeeenapplicatiegaatontwikkelen,ligthetvoordehanddatjeSDLCtoepast.Hetiseengestructureerde manieromsoftwaretoepassingentebouwendiedoorveelorganisatieswordtgebruiktvoorhetontwikkelenvan software.Somswordthetproceswataangepast,maardebasisblijftgelijk.Delevenscyclusvan software-ontwikkeling,devijffasen,wordthierverderuitgewerkt.
Requirements
EenPakketvanEisen(SoftwareRequirementSpecificationofSRS)iseendocumentwaarinstaatwatde verwachtingenzijnvanhetsysteemofdesoftwarediemoetwordenontwikkeld.DeMoSCoW-methodekanhier alshulpmiddeldienen.Hetontwikkelingsteamverzameltinputvanverschillendestakeholders(belanghebbenden),
zoalsklanten,sales,interneenexterneexpertsenontwikkelaars,omhetPakketvanEisenoptestellen.Hetteam steltvastwaternodigisomaandievereistentevoldoenenberekentdeverwachtekosten.Belangrijkisdathet teamnietalleenbeschrijftwatzeindesoftwarewillen,maarookwatzenietwillen.Wanneerhetgaatovereen upgradeofvervangingvanbestaandesoftwareisdithaastnogbelangrijkerdanwanneerhetomnieuwesoftware gaat.
Design
Hetsoftware-ontwerpisdeblauwdrukdieontwikkelaarskrijgenvoorhetmakenvandecode.Omeen software-ontwerpophoogniveautekunnenmaken,moetendeontwerpersrekeninghoudenmetdeeerder opgesteldevereisten(PvE).Hettebouwensysteemendesoftwarezullenmedeafhangenvandetegebruiken technologieën,demogelijkhedenvanhetteamenprojectbeperkingenalstijdengeld.Hetontworpen softwaresysteemwordtdanvertaaldinsoftwaremodules,functies,bibliothekenenzovoort.Hetontwerpwordt meestalbeschrevenineenontwerpspecificatiedocument.
Coding
Decoderingsfasewordtookweldeimplementatiefasegenoemd.Tijdensdezefasewordtdeblauwdrukvande softwareomgezetincode.Debroncodevandeheleapplicatieontwikkelenneemtmeestaldemeestetijdin beslag.Detijddienodigisomdeontwikkelingtevoltooien,isafhankelijkvandegroottevandeapplicatieenhet aantalprogrammeurs.
Testing
Nadatdeapplicatieisgebouwd,moetdezewordengetestomtebeoordelenofdezeaanhetPakketvanEisen voldoet.Detestersvoerendeafgesprokentestenuit.Alszeeenfoutontdekken,informerenzedeontwikkelaars. Deontwikkelaarkijktoferechtsprakeisvaneendefect.Alsdatzois,moetdatdefectopgelostworden.Erkomt daneennieuweversievandesoftware,dieopnieuwgetestmoetworden.Ditwordtvoorelkvandeonderdelen gedaanennetzolangherhaaldtotdathetontwikkelingsteamalleontdektedefectenheeftverholpenende softwaregereedisvoorimplementatieindeproductieomgeving.
Deployment
CONCEPT
DeploymentwordtookwelRelease-faseofImplementatiefasegenoemd.Indezefaseisdeapplicatieklaarom livetegaan.
Zodradeapplicatieklaarisomlivetegaan,wordtdezeindezefaseopeenproductieservergeïmplementeerd. Alsdezeisontwikkeldvooreencliënt,vindtdeimplementatieplaatsopeencliënt-locatieofdatacenterwaarde cliëntdeapplicatiewilinstalleren.Hetvrijgevenvandevoltooidesoftwareindeproductieomgevingmaakthet mogelijkompost-productieactiviteitenuittevoeren,zoalsmonitoring.Indezeomgevingwordenaanvullende testsuitgevoerd,endedefinitieveimplementatievindtplaatsnadatallebugszijnontdektenopgelost.
Opdracht2 SoftwareDevelopmentLifeCycle
RaadpleegzonodigdetheorieoverdeSoftwareDevelopmentLifeCycle(SDLC).
a. WaarvoorstaatdeafkortingSDLC?
b. WaarvoorstaatdeafkortingS-SDLC?
c. WatisdeSoftwareRequirementSpecification?
d. Hetontwerpwordtmeestalbeschrevenineenontwerpspecificatiedocument(DSD).Watisdebelangrijkste bronvoorhetontwerp?
e. Watgebeurtertijdensdecoderingsfase?
f. Hoevaakwordtdefasetestinguitgevoerd?
g. Watisdefasedeployment?
3.2 Informatiebeveiliging
Dehedendaagserealiteitisdatermensen(oforganisaties)zijndiealsenigdoelhebbenintebrekeninsystemen. Vaakzijndithackersdieopzoekzijnnaarroemdooreroveroptescheppenopinternet.Maarhetkanookeen groepgeorganiseerdecriminelenzijndieinallestilteinformatiestelen.Ditkaneenenormverliesvoordeorganisatie inkwestiebetekenen.
CONCEPT
Inmei2018verscheenhetvolgendeartikelinhet Algemeen Dagblad:
Verandernujewachtwoord:3,3miljoenNederlandsewachtwoordeneenvoudigtevinden
Eengrotehoeveelheide-mailadressenen3,3miljoenwachtwoordenvanNederlandersliggenopstraat.Ze blijkensindseindvorigjaarbetrekkelijkeenvoudigintezieninlijstendieonlinecirculeren.Eenhacker maaktzevandaagviaeenspecialezoekmachinezelfsnogtoegankelijker:een'Google'voorwachtwoorden.
UitonderzoekvandezekrantblijktdatmedewerkersvanveelgroteNederlandse(overheids)organisatiesen bedrijvenmassaalindelijstenvoorkomen,waaronderorganisatiesdievitalefunctiesvervullen.Ookstaaner parlementariërsen bekendeNederlandersindelijst.,,Schrikken,wantdezewachtwoordengebruikteikvoor andereaccountsnogsteeds”,zegtex-TweedeKamerlidSharonGesthuizen.
Degegevenszijnwaarschijnlijkafkomstiguittientallengrotedatalekkenvandeafgelopenjaren.Ondermeervan LinkedIn,Dropbox,Playstation,Uber(bijUberginghetnietomwachtwoorden)eneBayisbekenddatgegevens zijngelekt,endaaroverisalveelgepubliceerd.Maarwaardieenormelijsteneerstvooralindekrochtenvanhet internetentegen(forse)betalingbeschikbaarwaren,wordenzenusteedsmakkelijkerenopenbaarbeschikbaar.
Naar: THOMAS BOESSCHOTEN en CYRIL ROSMAN, Verander nu je wachtwoord: 3,3 miljoen Nederlandse wachtwoorden eenvoudig te vinden, Algemeen Dagblad, 30 maart 2018
Decriminelenofhackerskunnenopverschillendemaniereninbreken.Naasthetlekkenvanwachtwoordenishet betredenviadeapplicatiehosteenbekendemethode.Alsdeapplicatiesdieopeenapplicatieserverstaankwetsbaar zijn,kanditernstigegevolgenhebben.Hierdoorzijnbedrijvenindeproblemengekomen.Slechteberichtenin deperskunneneenaandelencrashtotgevolghebben.Alle,maarvooralfinanciëleorganisatieszoalsbanken, lopengevaar.Bedrijvenenparticulierenkunnentemakenkrijgenmetbedreigingenafpersing,bijvoorbeelddoor gijzelingvansoftwareendata.Hoemenookwordtlastiggevallen,hetisnaarenzalindemeestegevallengeld kosten.Eenvoordehandliggendemanierdiedoorcriminelenwordengebruiktisphishing.
Phishingiseenvormvancyberaanvalwaarbijaanvallerszichvoordoenalslegitiemepersonenof bedrijven/organisaties.Ditdoenzeomgebruikerstemisleidenenpersoonlijkeinformatie,zoalswachtwoorden, creditcardgegevensenanderegevoeligegegevens,testelen.Dezeaanvallenwordenmeestaluitgevoerdvia e-mails,valsewebsitesenberichtendieeruitzienalsofzeafkomstigzijnvanvertrouwdebronnen.
Enkelemaatregelenomtegenphishingtebeschermenzijn:
1. Kritischnadenken:weesaltijdvoorzichtigbijhetopenenvane-mailsenkliknietopverdachtelinksof bijlagen.Controleerdeafzenderzorgvuldig,vooralalsdee-mailonverwachtis.
2. ControleerdeURL's:controleerdeURLvaneenwebsitevoordatjepersoonlijkeinformatieinvoert.Letop spelfoutenofverdachtedomeinnamen.
3. Gebruiktweefactorauthenticatie(2FA):schakel2FAinwanneerbeschikbaar.Ditvoegteenextra beveiligingslaagtoedoornaasteenwachtwoordeentweedevormvanidentificatietevereisen.
4. Trainingenbewustwording:educeermedewerkersengebruikersoverderisico'svanphishingenleerze hoezeverdachtee-mailskunnenherkennen.
5. Antiphishing-software:maakgebruikvanantiphishing-softwareen-toolsdiekunnenhelpenbijhet identificerenvanverdachtee-mailsenwebsites.
6. Rapporteerverdachteactiviteiten:alsjeeenphishing-pogingherkent,meldditdanaanderelevante autoriteitenenaandeorganisatiediemogelijkwordtnagebootst.
CONCEPT
Informatiebeveiligingvraagtsteedsmeeraandacht,aangezienzelfs'veilige'applicatiesregelmatigkwetsbaarheden vertonen.Naarmateeenapplicatieomvangrijkeris,zullenermeerbugsen/ofbeveiligingslekkeninzitten.Het feitdatapplicatiessteedsomvangrijkerworden,benadrukthetbelangvoorbedrijvenomconstantmetbeveiliging bezigtezijn,veelmeerdanvoorheen.Ookin2023ishetlekkenvandatanogeenveelvoorkomendprobleem.
DatalekNederlandsebedrijvensteedsgroter:zeker2miljoenklantengetroffen
Zeker2miljoenNederlandseklantgegevensblijkenbetrokkenbijeengrootNederlandsdatalek.Naastonder meerdeNSenVodafoneZiggozijnernógdriebedrijvengeraakt:ookklantgegevensvandeNederlandseGolf Federatie,ArboNedenvervoersbedrijfTrevvelblijkentezijngelekt.
DeAutoriteitPersoonsgegevensheeftnoggeentotaalbeeldkunnenmaken.Detoezichthouderstarteenonderzoek. Hetkanoverigenszijndatmensenmeerderekerenvoorkomenindedata.
EerderwasalduidelijkdatnaastdeNSenVodafoneZiggozorgverzekeraarCZendeVriendenvanAmstelLive warengetroffen.OokdeRijksdienstvoorOndernemendNederlandenwoningcorporatieStadgenootbleken gedupeerd.
Naar: NANDO KASTELEIJN en JULIUS MOORMAN, Datalek Nederlandse bedrijven steeds groter: zeker 2 miljoen klanten getroffen, NOS, 30 maart 2023
Alswedegebruikerevenbuitenbeeldhouden,kunnenveiligheidsrisco’sbinneneensysteemzichopverschillende plaatsenvoordoen.HetAgentschapvandeEUvoorcyberbeveiligingheeftvoorjuli2021totjuli2022inkaart gebrachtwaarbeveiligingsproblemenzichvoordoen(zieonderstaandfiguur).

CONCEPT
Figuur 3.2 Grootste cyberdreigingen in de EU juli 2021 tot juli 2022
Hetisdanookbelangrijkdatontwikkelingsteamsgedetailleerdeendiepgaandekennisvanbeveiligingsprocedures en-techniekenhebbenéndezekennistoepassen.Eenbedrijfdatserieusomgaatmetbeveiligingheefttenminste zijnsoftwareachtereenfirewallgeplaatst.Eenfirewalliseenstuksoftwaredathelptbijhetidentificerenen blokkerenvanongeautoriseerdnetwerkverkeer.Daarnaastisereengoedwachtwoordbeleid.Enkelebelangrijke aspectendaarvanzijn:
1. Complexiteit:wachtwoordenmoetencomplexenmoeilijkteradenzijn.Ditbetekenthetgebruikvaneen combinatievanhoofdletters,kleineletters,cijfersenspecialetekens.
2. Lengte:langerewachtwoordenzijnoverhetalgemeenveiliger.Eenwachtwoordmoetminimaal12tekens bevatten.
3. Uniciteit:gebruikvoorelkonlineaccounteenuniekwachtwoord.Hergebruikvanwachtwoordenvergroot hetrisicoalséénaccountwordtaangetast.
4. Regelmatigwijzigen:hetisgoedomwachtwoordenregelmatigtewijzigen,bijvoorbeeldelkedriemaanden, omdebeveiligingtebehouden.
5. Tweefactorauthenticatie(2FA):activeer2FAwanneerbeschikbaar.Ditvoegteenextrabeveiligingslaagtoe doornaasteenwachtwoordeentweedevormvanidentificatietevereisen.
6. Geenpersoonlijkeinformatie:vermijdhetgebruikvanpersoonlijkeinformatiezoalsnamen,geboortedata ofeenvoudigteradenwoordenals"wachtwoord".
7. Wachtwoordbeheerder:overweeghetgebruikvaneenwachtwoordbeheerderomcomplexe,unieke wachtwoordentegenererenenopteslaan.
8. Bewustwording:maakmedewerkersengebruikersbewustoverhetbelangvaneensterkwachtwoordbeleid enleerzehoezeveiligewachtwoordenkunnenmaken.
9. Beleidshandhaving:zorgervoordathetwachtwoordbeleidwordtgehandhaafdendatergevolgenzijnvoor hetnietnalevenervan.
Alsontwikkelaarvansoftwarekanhetnietandersdandatjeencryptietoepast.Encryptieishetomzettenvan leesbaregegevensinonleesbarevormomzetebeschermentegenongeautoriseerdetoegang.Mochtendata gestolenwordenkunnenze,zonderdesleutel,nietgelezenwordenendanooknietmisbruikt.
InhetPakketvanEisenmoetendevereistenstaanwaaraaneenapplicatiemoetvoldoenophetgebiedvan veiligheid.Debeveiligingsprincipes,zoalsinformatiebeveiliging,integriteit,privacy,vertrouwelijkheiden beschikbaarheidvaninformatiezijnhierbijvangrootbelang.
Beveiligingsprincipes
Rondhetjaar2000haddenbeveiligingsproblemenvooraltemakenmetdenetwerkinfrastructuur.Maardoor cloud-computing,internetconceptenenhetgebruikvannetwerkenkomthetsteedsvakervoordatapplicaties gebruiktwordenomineensysteemintebreken.
HetNIST,hetNationalInstituteofStandardsandTechnology,heefteenstandaardopgesteld,deFederal InformationProcessingStandard(FIPS),waarindriekernbeschermingsprincipesophetgebiedvan informatiebeveiligingzijnopgenomen.Ditzijn:confidentiality(vertrouwelijkheid),integrity(integriteit)en availability(beschikbaarheid).
Vertrouwelijkheid
Vertrouwelijkheidwaarborgtdatderegelsmetbetrekkingtotpersoonlijkeprivacyenbedrijfseigeninformatie wordennageleefd,zodatniemandongeoorloofdtoegangheefttotdezegegevens.Daarbijzijndetoegangscontrole enopenbaarmakingsbeperkingenopinformatiedebelangrijksteonderdelen.
Integriteit
CONCEPT
Hiervanishetdoelervoortezorgendatongepasteofongeoorloofdewijzigingenaandedata,netalsdevernietiging ervan,wordenvoorkomen.Deinformatiemoetbetrouwbaarzijn.
Beschikbaarheid
Aangegevenswaarjenietbijkunt,hebjeniets.Deinformatiemoetaltijdbeschikbaarzijn.Natuurlijkalleenvoor diepersonendiegeautoriseerdzijn.
Voordeveiligheidnuenindetoekomstishetvanbelangbijtehoudenwanneerenhoevaakdezeprincipes wordenovertreden.Deimpactvanhetincidentisdaarbijvangrootbelang,Daaromwordenincidenten geclassificeerd.
• Laag:genereerteenbeperktnadeligeffect.
• Matig:genereerteenernstigofkritischnadeligeffect.
• Hoog:genereerteencatastrofaalnadeligeffect.
Veiligheidenbeveiligingzijnessentiëleonderdelengewordenvansoftware-ontwikkeling,daaromishetnoodzakelijk veiligheidseisentoetepasseninSDLC.Vangrootvanbelanghierbijis:
• Identificeer:laatgebruikersaandeapplicatievertellenwiezezijn.
• Verifiëren:verifieerdeinloggegevensvangebruikers.
• Autoriseren:definieerderechtenenmachtigingenvoorgebruikers.
• Audit:evalueeropgebruikersvriendelijkheid.
Opdracht3 Informatiebeveiliging
RaadpleegzonodigdetheorieoverInformatiebeveiliging.
a. Watiseenveelgebruikteingangbijhethackenvansoftware?
b. InhoeveelprocentvandehacksindeVerenigdeStatenin2018spelenapplicatieseenrolalszwakkeschakel?
c. Watzijndedriekernbeschermingsprincipesophetgebiedvaninformatiebeveiliging?
3.3 SecureSoftwareDevelopmentLifeCycle(S-SDLC)
Inhetverledenkwamhetvoordatontwikkelaarsalleengeïnteresseerdwareninhetontwikkelenenverkopen vaneenapplicatieaandeklant.Maareenbelangrijkonderdeelalsbeveiligingwerdvergeten.Omdatermensen (oforganisaties)zijndiealsenigdoelhebbenintebrekeninsystemen,ofsystemenproberenplatteleggen,is beveiligingeenbelangrijkonderdeelvandesoftware-ontwikkelinggeworden.
DeredendatS-SDLCisontstaan,isdanookheellogisch:‘Hetdreigingslandschapisdrastischveranderd.’
Denoodzaakvanbeveiligingmaaktdateraltijdensdeontwikkelingvaneenapplicatieaandebeveiligingmoet wordengedacht.S-SDLCiseenvanzelfsprekendvervolgopSDLC:hetintegrerenvanbeveiligingindelevenscyclus vansoftware-ontwikkeling.BijelkefasevanS-SDLCligtdenadrukopveiligheid.Ditkomtbovenopdebestaande activiteiteninSDLC.
Hetkannuttigzijnomeenteamvanethischehackersintezetten,maargestructureerdeprocessen,zoalsdievan S-SDLC,dragenbijaaneenkostenefficiëntereaanpakvanbeveiligingsproblemen.Doorbeveiligingsproblemen eerderindeontwikkelingscyclusteidentificeren,kunnenkostenflinkwordenverlaagd.
CONCEPT

Zoalseerderopgemerkt,wordenerbijS-SDLCbeveiligingsactiviteitentoegevoegdinelkefasevandecyclus.Om softwareteontwikkelendiebestandistegenaanvallenvanbuitenaf,moetenbeveiligingsvraagstukkenvoorelke fasewordenopgelost.
Requirements
1.Beveiligingsvereisten
SDLCiseenfeed-forwardproces.Datwilzeggendatfasenelkaaropvolgen.Foutendiegemaaktzijninfase1 wordenmeegenomenenverspreidinfase2.Daaromishetbelangrijkombeveiligingsrisico’sineenzeervroeg stadiumteanalyseren.Hetgaathieromniet-functionelebeveiligingsbehoeften.Demeestebetrokkenenbijde applicatie(stakeholders)hebbendeneigingomniet-functionelebeveiligingsbehoeftenalsvanzelfsprekendte beschouwen.Ditkaneenvoudigwegkomenomdatzenietopdehoogtezijnvanmogelijkerisico’s.Destakeholders denkennaoverwathunsysteemmoetdoen,inplaatsvanwathetnietzoumoetendoen.Datisderedendater gebruikmoetwordengemaaktvaneenSecurityRequirementsSpecification(SecRS).Ditdoeteen ‘beveiligingsteam’,eengroepmetkennisvanbeveiligingdiespecifieknaarbeveiligingseisenkijkt.Zijmakende SecRSomhetalsonderdeelvanfunctionelevereistenaanhetPakketvanEisentoetevoegen.InhetSecRSmoeten minimaaldevolgendeonderdelenwordenopgenomen:
Onderdelen
Omschrijvingvandeapplicatie
Verwachtebeveiligingsomgeving
Beschrijving
Wettelijkevereisten
CONCEPT
Beschrijfthetproduct-ofsysteemtypeendescope.Hetdefinieertde productgrenzeninalgemenetermen,zowelfysiekalslogisch.
Deverwachtebeveiligingsomgevingmoetwordenomschrevenopbasisvan veronderstellingenoverhetbeoogdegebruik. Deanalistmoethierinnagaanofhetgebruikersgedragdebeveiligingvanhet productingevaarkanbrengen.
Ermoetaandewettelijkevereistenzijnvoldaan.Alsersprakeisvanwettelijke vereistenmoetenzeopgenomenwordenindeSecRS.Denkhierbijaande eisenzoalszestaanindeAVG(Algemeneverordeninggegevensbeveiliging, dezewordtinhoofdstuk10behandeld).
Omdestakeholders,dieweinigkennishebbenvanbeveiliging,tehelpen,kunnendevolgendevragenworden gebruikt:
• Waarvoorbeveiligd?
• Veiligtegenwie?
• Watmoetveiligzijn?
• Wieofwatmoetdebeveiligingbieden?
• Opwelkemanierwordtdebeveiliginggeboden?
APonderzoektschendingprivacyviaEPDinHagaZiekenhuis
DeAutoriteitPersoonsgegevens(AP)gaateenonderzoekinstellennaarmogelijkeprivacyschendinginhet HagaZiekenhuis(DenHaag).Detoezichthouderwilwetenoferongeoorloofddoormedewerkersvanhet ziekenhuisisgekekeninhetmedischdossiervanreality-sterSamanthadeJong(Barbie).Daterviahet elektronischpatiëntendossier(EPD)vanChipsoftinzageisgeweestinhetdossiervandevrouw,bleekal uitonderzoekvanhetziekenhuiszelf,zoschrijftdeVolkskrant.
DeAPspreektbijmondevaneenwoordvoerdervaneen‘ernstigezaak’.Ziekenhuizenmoetenalletechnischeen organisatorischemaatregelennemendiemogelijkzijnomdeprivacyvanpatiëntentewaarborgen,zosteltde woordvoerder.“Eencomplexemaargeenonmogelijkezaak.”Indepraktijkhebbenalle2.800artsenen
verpleegkundigenvanhetziekenhuistoegangtotallegegevensvanelkepatiëntdieooitisopgenomenof behandeld.Privacywetgeving(ookdehuidigeWetbeschermingpersoonsgegevens)bepaaltechterdatmedische professionalsalleengegevensmogeninziendierelevantzijnvoordebehandelingvanhuneigenpatiënten.
Naar: AP onderzoekt schending privacy via EPD in Haga Ziekenhuis, ICT&health, 6 april 2018
2.Risicobeoordeling
Hetkennenvandebeveiligingsrisico’svandeapplicatieendeimpacthiervanophetbedrijfkanhetwerk eenvoudigermaken.Debelangrijksterisico’sstaanindetabelhierna.
Risicocategorie
Beschrijvingrisicocategorie
Diefstalvaninformatie
CONCEPT
Schendingprivacy
Schade
Serviceonderbreking
Fraudekanopveelverschillendemanierenvoorkomen, vanbuitendeorganisatiemaarookbinnende organisatie.Desoftwaremoethieropontworpenzijn zodatdekansopfraudeminimaalwordt.Jekunt denkenaanhetaanpassenvaneencijferdooreen student,ofhetovermakenvangeldnaareen privérekening.
Stelenvangevoeligeinformatie.Indemeestegevallen betrefthethiereenbedreigingvanbuitenaf.Deze informatiekangebruiktwordenvoorallerlei doeleinden.Hetkrantenartikelinhet AlgemeenDagblad ‘3,3miljoenNederlandsewachtwoordenmakkelijkte vinden’uitdevorigeparagraafishetgevolgvaneen dergelijkeactie.Maarookbedrijfsspionagekomtveel voor.
Stelenvanprivé-informatiediehetimagovandeklant kanbeschadigenkanomveelredenengedaanworden. Eenveelvoorkomenderedenisnieuwsgierigheid.Het artikeloverhetHAGAziekenhuisisdaareenvoorbeeld van.
Hack-pogingenkunnenleidentotvernietigingvan gevoeligeinformatie.Hackersdiemaarwatdoen kunnengroteschadeveroorzaken.
Impact
Klantvertrouwen/ Inkomsten
Inkomsten
Klantvertrouwen/ Inkomsten
Klantvertrouwen/ Inkomsten
Inkomsten Wanneer,doorwelkeredendanook,debedrijfsservice wordtonderbroken,kostditinveelgevallengeld.Is eenwebwinkelnietbeschikbaardanzullenmogelijke klantennietgaanwachten.Zijzoekengewooneen anderewebwinkel.
Fraude(interneenexterne)
Figuur 3.4 Redenen van dataverlies of down time van systemen in 2022
Ineenonderzoekdatin2022isuitgevoerddoorDellEMCwerdendevolgenderedenengenoemdvoordataverlies ofdowntime.Hetgaathierompercentagevanhetaantalondervraagdedatdebetreffenderedenopgaf.Omdat meerdanéénredenkonwordenopgegevenkomthettotaalverbovende100%.
• Beveiligingsacties
Alsderisico’szijnbeoordeeldishettijdomdejuisteactiesingangtezettenomeenoptimalebeveiligingte realiseren.Indeonderstaandetabelstaanmogelijkeactiesvoordeverschillendebeveiligingsitems.
CONCEPT
Onderdeel
Integriteit
Acties
Ermoetbepaaldwordenwelkegegevensmoetenwordenbeschermden gevalideerdwanneerdezeinhetsysteemaanwezigzijnofwordengebruiktbij communicatiemetexternesystemen.Deintegriteitvandedatamoetworden bewaard,zoweltijdensdeontwikkelingvandesoftwarealstijdenshetingebruik nemenenzijnvandesoftware.Desoftwaremoetwordenbeschermdtegen vernietiging,geknoei,overschrijvenenverwijderenvandata.
Vertrouwelijkheid/privacy
Omervoortezorgendatalleenaangewezenpersonentoeganghebbentothet systeemendeapplicatiemoetenprocedureswordenvastgesteld.Hettoepassen vanreverseengineeringkanhierbijhelpen.Bijreverseengineeringkansoftware onderzochtwordenzonderexacttewetenhoehetontwerperuitziet.Hierbij kijkjewatdesoftwaredoetenwatdezezoumoetendoenomzodewerking eneventuelefoutenteachterhalen.Dezemethodewordtookvaakgebruikt omeenconcluderendproducttemaken.
Onderdeel
Beschikbaarheid
Accountbeheer
Verificatie/autorisatie
Acties
Allegeautoriseerdegebruikers(mensenenprocessen)moetentoeganghebben. Hetbeschermenvanhetsysteemendeapplicatieisnodigomtevoorkomen dateenindringerdeserviceafbreekt.Kwaadwillendenmoetenmet DoS-aanvallen(DenialofService)ofDDOS-aanvallen(DistributedDenialof Service)hetsysteemnietonbereikbaarmogenmaken.
Ermoeteenaccountcontrolemechanismezijndataccounttypenhelpt identificeren.Devoorwaardenvoorgroepenmoetenvastgesteldkunnenworden enlidmaatschapenmachtigingenmoetentoegewezenkunnenworden.Het moetmogelijkzijnomonnodigeaccountsteverwijderen,uitteschakelenof anderszinstebeveiligen.
Design
Hetprocesomdeaanmeldingsgegevensvaneengebruikertevaliderenmoet zijningerichtenwordentoegepast.Ditomdetoegangtothetbeperktegebied tebeheren.
Hetneutraliserenvanallemogelijkebedreigingenisnatuurlijkwishfulthinking.AlserineenPakketvanEisen staatdathetsysteemhonderdkeerveiligermoetzijn,danisdateenonmogelijkeeis.Ditkandanooknietalseen vereistewordengenoemd.Veiligheidsbedreigingenwordenzeldenvollediggeneutraliseerddoorbeperkende maatregelen.Hackerskomeninsystemenbinnenviademeestonverwachtetoegangspaden.Maardoortijdens hetontwerprekeningtehoudenmetmogelijkebedreigingenisdeveiligheidwelaanzienlijktevergroten. Erzijneengrootaantalbeveiligingsmodellendiekunnenwordengebruikt.Demeestvoorkomendeonderdelen uitdeverschillendemodellenwordenhieronderbehandeld.Uiteindelijkgaatheternietomwelkmodeljegebruikt, maardaterbijhetontwerpopdejuistemanieraandachtwordtbesteedaandebeveiliging.
Debelangrijkebeveiligingsmodellenzijn:
• Comprehensive,LightweightApplicationSecurityProcess(CLASP),OWASPFoundation
• SecureDevelopmentLifecycle(SDL)(MicrosoftCorporation,nd)
CONCEPT
• SecureRequirementsEngineeringProcess(SREP),Mellado,Fernandez-Medina&Piattini
• SecurityQualityRequirementsEngineering(SQUARE),Mead,Hough&StehneyII
Globaalzijndestappendievolgensdezemodellen,bijhetontwerpenvan‘veilige’software,gezetmoetenworden:
1. Beschrijvingontwerpvereistenvanuitbeveiligingsperspectief
2. Documentatievanarchitectuurendesignmetbetrekkingtotveiligheid
3. Dreigingsmodellering(beschrijfwelkebedreigingenerzijn)
Beschrijvingontwerpvereistenvanuitbeveiligingsperspectief
• Beschrijfdeoperationeleomgeving.
Omeenveiligsysteemtekunnenbouwenmoetduidelijkzijnhoehetsysteemgebruiktgaatworden.‘De bedrijfsomgevingmoetinkaartwordengebracht’.
Daarvoormoetwordengekekennaar:
– ofhetsysteemgebruikmaaktvansysteemcomponentenofbibliotheken;
– devereistenmetbetrekkingtotnetwerkarchitectuur;
– detegebruiken(gegevens)bronnenzoalsdatabasesendatabasetabellen,ACL’s,cryptografische sleutelarchieven,auditlogboeken,configuratiebestanden,webpagina’s,registersleutelsenzovoort
• Beschrijfdenetwerkomgeving.
Desoftwareonderdelendieafhankelijkzijnvandenetwerkomgevingmoetenhierbijbenoemdworden,zoals firewalls.
• Beschrijfde(gebruikers)rollen.
Elkehandelingvaneenindividuelegebruikervanhetsysteemkaneenmogelijkebedreiginginhouden.Deze moeteninhetontwerpdanookmeteenopveiligheidwordenbeoordeeld.Ditkandoorinhetontwerpgebruik temakenvan‘rollen’(gebruikersofsysteemfuncties).Perrolkandanaangegevenwordenwatwelofniet mag/kan,resource-mogelijkheden.

Figuur 3.5 Cybersecuritybeeld Nederland 2023
Documentatievanarchitectuurendesignmetbetrekkingtotveiligheid
CONCEPT
Hetisbelangrijkdatdebeveiligingenbeveiligingsrisico’sgoedwordengedocumenteerd.Hoelangerdete verwachtelevensduurvaneensysteem,hoebelangrijkerditis.Systemendielangmeegaan,zullenvakermoeten wordenonderhouden.Bijelkonderhoudgeldenweerallebeveiligingsaspecten.Alsdedocumentatiegoedop ordeis,doorbijvoorbeeldgegevensstroomdiagrammen,danzijndebeveiligingsaspectenookduidelijkinbeeld enkunnendezegoedwordenonderhouden.
Dreigingsmodellering(beschrijfwelkebedreigingenerzijn)
Eengevalvanmisbruikishetomgekeerdevaneengevalvangebruik!Hetgaatdanomfunctionaliteitdiehet systeemnietzoumoetentoestaan.Doormogelijkebedreigingengoedtebeschrijven,heeftmenhierzichtopen kunnenmogelijkebedreigingenvoorkomenworden.Hetisbelangrijkomdebeveiligingvanafhetontwerpstadium directoptenemenindeusecases.Eenvisueleweergavevanmogelijkebedreigingenzorgtdatbedreigingenvoor allebetrokkenenhelderenduidelijkzichtbaarzijn.
Coding
Coderenzaleengrootdeelvanjeopleidingstijdinbeslagnemen.Eenbelangrijkonderdeeldaarinishetschrijven vanveiligecode.DaarzijnanderemethodenvoordieBoomBeroepsonderwijsuitgeeft.Hiergaathetomhet administratievedeeldattijdenshetcoderenmoetplaatsvinden.
Delenvankennisenervaringisaltijdbelangrijk,zoookbijdeontwikkelingvancode.Doorsamenmetjecollega’s eenlijstvanbestpracticesbijtehouden,kunnenervaringenwordengedeeldwatdekwaliteitendaarmeede veiligheidtengoedekomt.Daarnaastzijnerverschillendecommunity’swaarjealsprogrammeurlidvankunt wordenenjebestpracticeskuntdelen.
Demaniervanwerkenvandeprogrammeurisvangroteinvloedopdeveiligheidvandeomgeving,zekeralser verschillendeprogrammeursaaneencode/productmoetenwerken.
Stelcoderingsrichtlijnenop(Codingconventions)
Hierbijgaathetomrichtlijnenvooreenspecifiekeprogrammeertaaldieprogrammeerstijl,programmeerpraktijken enprogrammeermethodenaanbevelen.Zehebbenbetrekkingopbestandsorganisatie,inspringen,opmerkingen, verklaringen,witruimte,naamgevingsconventies,programmeermethoden,programmeerprincipes,vuistregels, architecturalebestpracticesenzovoort.Dezerichtlijnenstaanvoorstructurelesoftwarekwaliteitendaarmeeook voorbetereveiligheid.
Coderingsrichtlijnenkunnenvoorverschillendeprogrammeertalenverschillendzijn.Hetkancontraproductief zijnomdezelfderichtlijneninverschillendetalentoetepassen.
Vanwegetijdsbeperkingenofenthousiasteprogrammeursdieonmiddellijkeresultatenvanhuncodewillenzien, neemtdeaandachtvoorcommentaarindecodevaakaf.Tochmoetenprogrammeursopmerkingenachterlaten indecodediedezetoelichtenenverduidelijken.Datisvoorhetonderhoudvandecodevangrootbelang,zeker alserineenteamwordtgewerkt.
Daaromishetbelangrijkdatelkemoduleisvoorzienvaneennaam,hetdoel,eenbeschrijvingendeoorspronkelijke auteur.Debeschrijvingvandemodulemoetzokortmogelijkzijn,zonderinteboetenaanduidelijkheiden volledigheid.
Alsergecompliceerdelogicawordtgebruikt,isheteengoedegewoonteomeencommentaarblokbijdatdeel achtertelaten,zodateenandereprogrammeurkanbegrijpenwaterpreciesgebeurt.
Houddecodeeenvoudig!Ingewikkeldelogicaomietseenvoudigstebereiken,moettoteenminimumworden beperkt.Decodemoetindetoekomstdooreenandereprogrammeurgewijzigdkunnenworden.
Testing
Testentijdensdeontwikkelingvansoftwareisheelergbelangrijk.Blok6,Realiserenentestenvansoftwaregaat uitgebreidinoptestenenalleswatdaarbijkomtkijken.
Bijtestengaatheteromdatsoftware;
• voldoetaandevereistenvoorontwerpenontwikkeling;
• correctreageertopallerleiacties;
• zijnfunctiesuitvoertbinneneenacceptabeletijd;
• voldoendebruikbaaris;
• geïnstalleerdenuitgevoerdkanwordenindebeoogdeomgevingen;
CONCEPT
• destakeholderstevredenstelt.
Deveiligheidisdanookeenintegraaldeelvanhettestprogramma.Hetaantalmogelijketestsvoorzelfseenvoudige softwarecomponentenisoneindiggroot.Debeschikbaretijdenmiddelenzijnvaakbepalendvoordeuitgebreidheid vanhettestprogramma.Softwaretestszijnbijnaaltijdbedoeldomsoftwarefoutenofanderedefectentevinden, waaronderdeveiligheid.Testeniseeniteratief(herhalend)proces.Alsereenbugisopgelost,kunnenerandere bugsopduikenofzelfsnieuwewordenaangemaakt.
IneenAgilebenaderingwordenprogrammerenentestenbijnaaltijdgelijktijdiguitgevoerd.
Bijtestenopveiligheidgaathetvaakomkwetsbaarheidsbeoordelingenfuzzing Fuzz-testenoffuzzingiseen techniekdiedesoftwarevaneenapparaattestdoorwillekeurigedata(fuzz)inhetsysteemtesturen.Hetdoel hiervanishetsysteemtelatencrashenomzotekijkenoferkwetsbaarhedenzijn.Alseenkwetsbaarheidis gevonden,zaldefuzz-testdemogelijkeoorzaaktonenenkanerietsaangedaanworden.
Deployment
Bijdeimplementatievansoftwareofeensoftwaremoduleishetvoordeveiligheidvanbelangdatde serverconfiguratieendenetwerkconfiguratieveiligzijn.Zemoetenaansluitenbijdevereistenzoalsdiezijn opgesteldbijhetvaststellenvanderequirements.Serverconfiguratieennetwerkconfiguratiezijnzakenvan specialisten,meestalnietdesoftware-ontwikkelaars.

Figuur 3.6 Stroomschema veiligheid server- en netwerkconfiguratie
S-SDLCisnogsteedsinvolleontwikkelingenzaldatookblijven;hetzalnooitalsvolledigafwordengezien. Mogelijkzullenbepaaldeactiviteiten,zoalstrainingenreactieopincidentenwordentoegevoegd.OfS-SDLC geheelofgedeeltelijkgebruiktwordt,hangtafvandereikwijdtevanhetprogrammaenhetdoelwaarmeehet wordtuitgevoerd.AlsS-SDLCvooreengroteorganisatiewordtuitgerold,ishetzinvolomalleactiviteitenuitte voeren.Bijafdelingenofkleineorganisatieszaleenaantalactiviteitenmogelijknietrelevantofnodigzijn. Programma’szoalsS-SDLCkunnenmeerderestakeholdershebben,zoalshetmanagementen software-ontwikkelaars.Omsuccesvoltezijn,moetendezestakeholdersgoedcommuniceren.Wiedestakeholders zijn,hangtafvandeteontwikkelensoftwareenverschiltvanorganisatietotorganisatie.
NSwaarschuwthonderdduizendenklantenvanwegedatalek
CONCEPT
DeNederlandseSpoorwegenhebben780.000klantenpermaillatenwetendathunpersoonsgegevensmogelijk inverkeerdehandenzijngevallendooreendatalek.
HetdatalekisnietontstaanbijNSzelf,maarbijeensoftwareleveranciervanmarktonderzoeksbureauBlauw.Dat bureaudoetklanttevredenheidsonderzoekvoordeNS.Vantreinreizigersdiehebbenmeegedaanaanzo'n tevredenheidsonderzoekkunnene-mailadressen,telefoonnummersofnamenzijngelekt.
Gegevensgestolen
Blauwzegtdathetvrijdagtehorenkreegdatonbevoegdenzichtoeganghaddenverschafttothetnetwerkvan desoftwareleverancier.Gisterenlietdeleverancierwetendaterdaadwerkelijkgegevenszijngestolen.Hetisnog nietduidelijkomwelkedatahetgaat.
Naar: NS waarschuwt honderdduizenden klanten vanwege datalek, NOS Nieuws, 28 maart 2023
Opdracht4 SecureSoftwareDevelopmentLifeCycle(S-SDLC)
RaadpleegzonodigdetheorieOverSecureSoftwareDevelopmentLifeCycle(S-SDLC).
a. WatishetverschiltussenSDLCenS-SDLC?
b. WatzijndebelangrijkstebeveiligingsaspectenvanS-SDLCbijderequirements?
c. WaaromishetbelangrijkeenSecurityRequirementsSpecification(SRS)optestellen?
d. Welkewetisvangroteinvloedopbeveiligingseisenvangegevens?
e. Opwelkebeveiligingsrisico’svandeapplicatiemoetjeletten?
f. Eendatalekkomtregelmatigvoor.Daarmeeliggenookwachtwoordenen/ofmailadressenopstraat.Vaakis heteenhackerofeenspambotenzokomenookcriminelenbijjeaccountgegevens.Controleerdanook regelmatigofjegegevensonderdeelvanuitmakenvaneenhack.Diecontrolekanjeuitvoerenmet: haveibeenpwnd.com.Desiteheefteenwatvreemdenaam,maariswelbetrouwbaar.
CONCEPT
Controleerzoofjeaccountgegevensgelektzijn:Ganaardesitehaveibeenpwned.com.
• KlikopEmailorphone(internationalformat).
– Vuljemailadresin.
– Klikopdeknoppwned.
Zietjeeenrodeachtergrondmetdetekst'Ohno-pwned!'?Slechtnieuws:jee-mailadresstaatineenlijstmet gelektegegevens.Volgdevolgendestappen:
Scrolnaarbenedenenbekijkonder'Breachesyouwerepwnedin'eerderelekkenwaarinuwgegevenszijn verspreid.Bijallelekkenstaateenjaartal.Hebtjehetwachtwoordnadatjaartalnoggewijzigd?Danishet accountveiligenjehoeftnietstedoen.Gebruikjehetwachtwoordallangerveranderdanhetwachtwoord vanjee-mailaccount.
Gebruiktjedecombinatievane-mailadresenwachtwoordopmeerderesites/accounts?Veranderookopdie plekkenhetwachtwoord.
g. WatzijndebelangrijkstebeveiligingsaspectenvanS-SDLCbijhetdesign?
h. WatzijndebelangrijkstebeveiligingsaspectenvanS-SDLCbijhetrealiserenvandecode?
i. Kijknaardevolgendefiguur.Plaatsdebegrippen Autorisatietesten, Beveiligingsorganisatietest, Risicoanalyse, Misbruikcases, Security testen, Beveiligingseisen en Code testtools achterdejuisteletterindetabel.
CONCEPT

3.4 Deopdrachtvaststellen
Jewordtnietopgeleidtotkunstenaardiekanmakenwathijzelfmooivindt.Jewordteenontwikkelaardiein opdrachtvaneenklantwerkt.Hetisdanookbelangrijkdatdieopdrachtduidelijkwordtvastgesteld.Uiteindelijk zaldatresulterenineenProgrammavaneisen.Omeenopdrachtgoedvasttekunnenstellenzuljeonderzoek moetendoeneneen‘goed’gesprekmoetenhebbenmetjeklant.Hetlastigevanjouwberoepisdatjevaakmet klantentemakenhebtdienietwetenwaterprecieskanendenkendatallesmogelijkis.

Indecommunicatieishetbelangrijkomteachterhalenwaarhetvoordeanderechtomgaatzodat:
• jebeterebeslissingenkuntnemen;
• jebeterkuntaansluitenopdeander;
• jeeenoplossingzoektbijhetéchteprobleem.
Veelvoorkomendesituatieszijn:
• Mensenwillenvaakietsvaneenanderzonderhuneigenbelangerbijtevertellen;mendenktdatdeanderdat tochwelbegrijptofweet.
• Alseenanderonseenprobleemvoorlegt,komenwevaakdirectmeteenoplossingomdatwedenkendatwe begrijpenwathetprobleemechtis.
Omhetechteprobleemenbelangteachterhalen,ishetgoedomteluisteren.Jesteltvragenenluistertnaarhet antwoord.Daarnavraagjedoorenvatjetussentijdsdeantwoordenkortsamenomtecheckenofjehetgoed begrepenhebt.Kortom:luisteren,samenvattenendoorvragen.
3.5 Luisteren,samenvattenendoorvragen(LSD)
Jijmoetjerichtenopdewensvandeopdrachtgever.Daarkomteenaantalvaardighedenbijkijkendievoorde eenwatmoeilijkerzijnaantelerendanvoordeander.OmtebeginnenmoetjedetechniekLSDkunnentoepassen. Nee,nietdedrug,maardeafkortingvoorluisteren,samenvattenendoorvragen.
Bekijkdeuitlegvideo LSD - Humor company inBoomDigitaal.
Luisteren
Luisterenwordtvaakverwardmethoren.Luisterendoejemetjehelelichaamennietalleenmetjeoren.Luisteren vraagtveelaandachtenconcentratieenisdaardoorergmoeilijk.
Dekunstvanhetvragenstellenbegintmetluisteren.Doorjelichaamshoudinglaatjedeanderziendatje geïnteresseerdbentinwathijtezeggenheeft.Eengoedeluisteraarletaandachtigopwatdeandertezeggen heeft.Hijletopdewoorden,wathijletterlijkzegt,opdemanierwaaropdeanderdewoordenuitspreekt,opde toon,hetvolumeofdekrachtdiewordtgebruikt.
CONCEPT
Veelinformatieoverhoeiemandactiefluisterthaaljeuit:
• lichaamstaal,houding,gebaren,afstandverkleinen,afstandnemen,gebarenspiegelen;
• gezichtsuitdrukking,oogcontact;
• geluidenals‘o?’,‘ja’,‘hm’;
• hetmakenvanaantekeningen.
Bovenstaandepuntenlatenzienofiemandmeedoet,erbijis,geraaktisdoorwaterwordtverteld.
Voordeelvanactiefluisterenisdatmenookmeervoormeningenopenstaat.Wanneerjeechtaandachtvoorde anderhebt,zaldieanderookaandachthebbenvoorjouwstandpunt. Eengoedeluisteraarwordjedoornietalleentehorenwatdeanderzegt,maarookdoorteproberentebegrijpen watdeanderzegt.Luistervaardighedenstellenjeinstaatdeandertelatenwetendatjeluistert,deanderzijn verhaaltelatenvertellenentelatenverduidelijken. Beginmetderuisinjeeigenhoofduitteschakelen.Richtjegedachtenalleenopdeanderenhebgeenoordeel overdiensverhaal.Laatdeanderuitspreken,vulnietzelfalhetverhaalaanenjaagdiegenenietop.Houdcontact metdesprekerdoordiegeneaantekijkenensignalentegeven,zowelingebaaralsingeluid.Doorstiltestelaten vallengeefjedeanderdegelegenheidrustignatedenkenoverwatdiegeneheeftgezegdenereventueelnog ietsaantoetevoegen.

Figuur 3.8 Wie heeft er een actieve en wie heeft er een passieve houding?
Samenvatten
Samenvattensteltjeinstaatomtetoetsenofjijenjegesprekspartnerhetzelfdebeeldhebbenbijwatjullie bespreken.Vergeetjeietsinjesamenvatting,dankanjegesprekspartnerditaanvullen.Samenvattingengeven eengesprekstructuur.Voorbeeldsamenvatting:
‘Jezegtdusdat...’
‘Alsikjegoedhebbegrepen,bedoeljedat...’
‘Alsikjegoedhebbegrepen,vindjedat...’
CONCEPT
Tijdenshetsamenvattengeefjejezelfdetijdomdevolgendestapinhetgesprekvoortebereiden.Eensamenvatting iseenrustpuntinhetgesprek.Wanneerjijenjegesprekspartnerheteenszijnoverdesamenvattingkunjede belangrijkstepuntennoteren.Samenvattendoejeeenaantalkerentijdenshetgesprekomdelijnvanhetgesprek vasttehouden.Aanheteindvanhetgesprekmaakjeeensamenvattingomdeconclusietekunnentrekkenen afsprakentetoetsenbijjegesprekspartner.Incommunicatieismaareenheelkleindeelvandeboodschapverbaal. Hetgrootstedeelvandeboodschapwordtdoornon-verbalesignalengegeven.Dezemoetjeookmeenemenin jesamenvatting.Alsiemandheftigbeweegtmetdearmenkunjenaastdesamenvattinginwoordenookaangeven: ‘Ikziedathetjeraakt.’Belangrijkinjesamenvattingisdatjehetverhaalvandeanderweergeeftenjeeigen meningnietmeeneemt.Danheeftdeanderhetgevoeldatjenietgeluisterdhebt. Herhaalhetverhaalvandeandernietletterlijk.Eengoedesamenvattingbetekentkortdeessentieweergeven vanhetverhaalvandeander,vandediscussiedieisgevoerdendeafsprakendiezijngemaakt.Checkbijje gesprekspartnerofdieakkoordismetdesamenvatting.
Doorvragen
Ineenzakelijkeomgevingishetverstandigomdoortevragenalsdeandereenverzoekheeftofeenprobleem voorlegt.Vaaktrekkenweeenconclusieengevenmeteeneenoplossingzonderechttewetenwateraandehand is.Hetresultaatis:‘zohebikdatnietbedoeld’,‘zohebikdatnietbegrepen’.Eendoorvraagtechniekiseen gesprekstechniekdiejealsontvangerkanhelpenomdebedoeldeboodschapvandezenderduidelijktekrijgen. Speurnaaraanknopingspuntenomdoortevragen.Weesalertopvaagheden,subjectieveuitlatingen,aannames, algemenewaarhedenenformuleringenmet‘moeten’of‘kunnen’.Gebruikvandezewoordenverhultvaak waardevolleinformatie.Letopwatdeanderzegtenopwathijníetzegt.Zokrijgjemeerinformatielos.

Figuur 3.9 Vragen
Halvevergelijking
Voorbeeld:HetisbeteromWordPresstegebruiken.
Uitdaging:WaarmeevergelekenishetbeteromWordPresstegebruiken?
Vragennaardeanderehelftvandevergelijking:Waarmeevergeleken?
Generalisatie(groepsaanduiding)
Voorbeeld:ICT-gebruikerszijngeweldig!
Uitdaging:WelkeICT-gebruikerszijnmetnamegeweldig?
Vragenomspecificatie:Wie,wat,welke?
Weglating(informatiewordtweggelaten)
CONCEPT
Voorbeeld:Ikbaal.
Uitdaging:Waaroverofoverwiebaalje?
Vragenomspecificatie:Waarvoor?Waarover?Overwie?Overwat?Enzovoort.
Vaagwerkwoord
Voorbeeld:Wegaandewebsitereorganiseren.
Uitdaging:Hoegaanwedewebsitepreciesreorganiseren?
Vragenomspecificatie:Hoemetname?Hoeprecies?
Uitspraakvannoodzakelijkheid
Voorbeeld:Ditmoetaf.
Uitdaging:Watgebeurteralshetnietafkomt?
Vragennaardeconsequenties:Vanwie?Waarom?
Alles-of-niets-uitspraak
Voorbeeld:Niemandvindtdesitegoed.
Uitdaging:Absoluuthelemaalniemand?
Vragennaartegenvoorbeeld:Kunjenietniemandbedenkendiehemwelgoedvindt?
Uitspraakvanmogelijkheidenonmogelijkheid
Voorbeeld:Ikkannietzomaarbeslissen.
Uitdaging:Wathoudtjetegenomtebeslissen?
Vragennaardereden/oorzaak:Watofwiehoudtjetegen?
Eeuwigewaarheid(meningwordtgepresenteerdalsfeit)
Voorbeeld:Roodiseenfoutekleur.
Uitdaging:Wievindtroodeenfoutekleur?
Vragennaardegenediedemeninghuldigt:Wievindtdat?Wiezegtdat?Wiebeweertdat?
Gedachtenlezen
Voorbeeld:Mijnopdrachtgeverwilhetzelfde.
Uitdaging:Hoeweetjedat?
Vragennaardeervaringenwaardeconclusieopgebaseerdis:Waarleidjedatuitaf?
Oorzaak-gevolguitspraak
Voorbeeld:Zijnaanwezigheidondermijntmijnmotivatie.
Uitdaging:Hoepreciesleidtzijnaanwezigheidtotverminderingvanjouwmotivatie?
Vragennaardesamenhangtussenoorzaakengevolg.
Opdracht5 Luisteren,samenvattenendoorvragen(LSD)
RaadpleegzonodigdetheorieoverLuisteren,samenvattenendoorvragen(LSD).
CONCEPT

a. Schrijfineenaantalkernwoordenopwatjezietbijdemeestlinkselijnfiguuralshetgaatomluisteren.
b. Schrijfineenaantalkernwoordenopwatjezietbijdemiddelstelijnfiguuralshetgaatomluisteren.
c. Schrijfineenaantalkernwoordenopwatjezietbijdemeestrechtselijnfiguuralshetgaatomluisteren.

d. Schrijfineenaantalkernwoordenopwatjezietbijdebovenstefiguuralshetgaatomluisteren.
e. Schrijfineenaantalkernwoordenopwatjezietbijdeonderstefiguuralshetgaatomluisteren.
CONCEPT

f. Schrijfineenaantalkernwoordenopwatjezietbijdemeestlinkselijnfiguuralshetgaatomluisteren.
g. Schrijfineenaantalkernwoordenopwatjezietbijdemiddelstelijnfiguuralshetgaatomluisteren.
h. Schrijfineenaantalkernwoordenopwatjezietbijdemeestrechtselijnfiguuralshetgaatomluisteren.
Blok3 Veiligenbetrouwbaarsoftwareontwikkelen
i. Bespreekjewaarnemingenmetbetrekkingtotvraagat/mhmeteenmedeleerling.Watzijndeovereenkomsten endeverschilleninjulliewaarnemingen?

j. Beschrijfwatdehoudingvandebovenstaandefigurenuitdrukt.
CONCEPT
k. Welkevoordelenlevertsamenvattenjeop?
l. Hetgrootstedeelvandeboodschapwordtdoornon-verbalesignalengegeven.Hoekunjedieinjesamenvatting teruglatenkomen?
m. Watisheteerstewatjeprobeertduidelijktekrijgenalsjemeteenopdrachtgeveringesprekgaat?
n. Welkevragensteljeomhetdoelendedoelgroeptebepalenalsjeopdrachtkrijgtomeenwebomgevingte ontwikkelen?
o. Jezalmoetenwetenhoeeenenandereruitgaatzien,dezogenoemde‘lookandfeel’.Metwelkevragenkan jedaarachterkomen?
p. Jezalmoetenwetenwelkefunctionaliteitermoetzijn.Welkevragenkanjeaandeopdrachtgeverstellenom daarachtertekomen?
CONCEPT
q. Alsjeweethoeallesmoetfunctionerenenhoeheteruitmoetzienisdevraaghoehetonderhoudgeregeld moetworden.Welkevragenkanjehieroveraandeopdrachtgeverstellen?
Opdracht6 Uitsprakenverbeteren
RaadpleegzonodigdetheorieoverLuisteren,SamenvattenenDoorvragen(LSD).
Hieronderstaateenaantaluitspraken.Noteerperuitspraak:
• Watvoorsoortbeweringbetrefthet?
• Watisdeuitdagingbijdoorvragen?
• Welkevraagzougesteldkunnenworden?
a. Opaisbeterafinzijneigenflat.
b. Duitseauto’szijngeweldig!
c. Wegaandezaakreorganiseren.
d. Iedereenvindtgroenmooi.
CONCEPT
e. Ikkannietzomaarweggaan.
f. Ditmoetdoorallegebruikerswordengetest.
g. Ikdenkdatdeklantditmooivindt.
h. C#iseenmoeilijketaal.
3.6 Vragendiegesteldmoetenworden
Hieronderstaateenaantalvoorbeeldvragen,onderverdeeldingroepen.Zoweldevragenalsdegroepenzijnniet absoluut.Hetgaateromdatjenajegesprekeenduidelijkbeeldhebtvandevraagvandeklant.
Algemenevragen
Hetishandigtebeginnenmetwatalgemenevragen.
• Watisdeaanleiding?
• Wanneermoethetafzijn?
• Noemvijftottientermen/woordendievantoepassingmoeten/kunnenzijnopdetoekomstige applicatie/website.
Natuurlijkwiljewetenwathetdoelisenwiededoelgroepis.
• Watwiltumetdeapplicatiebereiken?(Nieuweklantenaantrekken,productenverkopen,imagoversterking, bepaaldeomzethalen.)
• Welkeboodschapmoetdewebsitevertellen?
• Wanneerisdewebsiteeensucces?
• Welketakenwiltudateenwebsitebezoekeruitvoert?
CONCEPT
Vervolgensmoetjewetenhoeeenenandereruitgaatzien,dezogenoemde‘lookandfeel’.
• Watvoorgevoelmoetdegebruikerkrijgen?
• Beschrijfdegewensteuitstraling.
• Moetereenbepaaldehuisstijlgebruiktworden?
• Werkmetvoorbeeldenvanbestaandeapplicaties/websitesenlaatercommentaaropgeven.
Ookwiljewetenwelkefunctionaliteitermoetzijn.
• Welkeinformatiemoetdeapplicatie/websitebieden?
• Welkeinformatiemoetengebruikerskrijgen?
• Moetenerberichtenwordengetoond?Omwatvoorsoortberichtengaathetenhoevaakkomenzevoor?
• Moetdegebruikerkunnenzoeken?
• Wiebeheertdecontentenwielevertdezeaan?
• Wieisverantwoordelijkvoorderedactie?
• Isereenkoppelingmetsocialemediaenwieishierverantwoordelijkvoor?
Vragenoveronderhoud
• Wieisverantwoordelijkvoorhetonderhoud?
• MoetergebruikgemaaktwordenvaneenContentManagementSysteem,zoja,welk?
• IserervaringmeteenContentManagementSysteem?
• Hoemoethetonderhoud(internofextern)geregeldworden?
Alsallevragengesteldzijn,moeterduidelijkwordengeformuleerdwatdeklantwil.
3.7 Programmavaneisen
Hetisheelbelangrijkallesexactvastteleggen.Ditdoejeomtevoorkomendat:
• ersteedsnieuwevragenbijkomen;
• jeachteraftehorenkrijgtdatwatjegemaakthebtnietiswatmenbedoelde;
• eronderdelenontbrekendiewarenafgesproken.
EenveelgebruiktemanieromdeafsprakenmetdeklantzeerduidelijkvastteleggenisviadeMoSCoW-methode. Ditiseenmaniervanprioriteitenstellendiejekuntgebruikenalsjesoftwareontwikkeld.Deletters‘o’hebben feitelijkgeenbetekenis,diedienenalleenomdemethodemakkelijktekunnenonthouden.Delettersstaanvoor:
M-musthaves:dezeeisen(requirements) moeten indesoftwareterugkomen;zonderdezeeisenisdesoftware nietbruikbaar;
S-shouldhaves:dezeeisenzijnzeergewenst;zonderdezeeisenisdesoftwarewelbruikbaar,maarwedoen altijdonzebestzeterealiseren;
C-couldhaves:dezeeisenzullenalleenkunnenwordengerealiseerdalsertijdengeldgenoegis;vaakrealiseren wezeopeenlatertijdstip,indeonderhoudsfase;
W-won’thavesofwouldhaveszulleninditprojectnietaanbodkomen,maarkunnenindetoekomst,bijeen vervolgproject,mogelijkinteressantzijn.
AlswedeMoSCoW-methodegebruiken,wordendeafsprakeneenstukduidelijker.Eenprojectisgeluktalsalle must-have-eiseninheteindproductverwerktzitten.
CONCEPT

3.8 RapportProgrammavaneisen
Wanneerjealleeisenenwensenhebtgeïnventariseerdengeanalyseerd,moethetwordenopgeschreven.Hetis verstandigeenstandaardindelingen-opmaaktegebruiken.Hetisbelangrijkdateenrapportergoeduitziet.Het iseendeelvandeindrukdiejeopeenklantmaakt.
Eenvoorbeeldvaneenindelingis:voorblad,inhoudsopgave,samenvatting,inhoudvanhetrapport.
Voorblad
Ophetvoorbladstaatdetitel,somseensubtitel,wiehetgemaaktheeftenhetversienummer.
Inhoudsopgave
Natuurlijkzorgjevooreeninhoudsopgaveendedaarbijbehorendepaginanummering.Elketekstverwerker beschiktovereenfunctieomdezeautomatischtegenereren.AlsICT’ergebruikjedienatuurlijkengajeditniet handmatigdoen.
Figuur 3.10 MoSCoW-methodeSamenvatting
Opbasisvaneen(management)samenvattingmoetdeprojectmanageren/ofopdrachtgeverbesluitenofhet projectdoorkangaan.Desamenvattingiscompactenbevatconcretefeitendiebelangrijkzijnvoorde besluitvorming.
Eisen
Hetisheelbelangrijkallesexactvastteleggen.Ditdoejeom:
• tevoorkomendatersteedsnieuwevragenbijkomen;
• datjeachteraftehorenkrijgtdatwatjegemaakthebtnietiswatmenbedoelde;
• dateronderdelenontbrekendiewarenafgesproken.
CONCEPT
AlswedeMoSCoW-methodegebruikenwordendeafsprakeneenstukduidelijker.Eenprojectisgeluktalsalle must-have-eiseninheteindproductverwerktzijn.Inallegevallenishetbelangrijkeenduidelijkverslagopte leveren.Schroomnietomgebruiktemakenvantekeningenenschema’s.
3.9 Begrippenlijst
Actiefluisteren
Eenluistervaardigheidwaarbijdeluisteraarzichactiefinzetomnietalleendewoordenvandesprekertehoren, maarooktebegrijpenwatdesprekerbedoeltenwelkeemotiesofintentieserachterschuilgaan.
Agile
Eenbenaderingvanprojectmanagementensoftwareontwikkelingdiezichrichtopflexibiliteit,samenwerking enklanttevredenheid.Inplaatsvanhetvolgenvaneenstriktlineairproces,zoalsbijtraditionelemethoden, moedigtAgileiteratieveontwikkelingaan.
Availability
Ermoeteenwaarborgvaninformatie-encommunicatiedienstenzijn.
Bestpractices
Gevestigdemethoden,techniekenofbenaderingendiealgemeenwordenerkendalseffectiefenefficiëntvoor hetbereikenvanbepaaldedoelen.
Bug
Eenfout,defect,ofonverwachtgedragineencomputerprogrammaofsysteem.Bugsontstaanmeestalalsgevolg vanprogrammeerfouten,logischefouten,ontwerpproblemen,ofonvoorzieneomstandighedentijdensde ontwikkelingvansoftware.
Cloudcomputing
Onlinewerkenmetprogramma'sdieopserversvanbijvoorbeeldMicrosoftofGooglestaan.
Coderingsrichtlijnen
Eensetvanregelsenconventiesdiewordenvastgesteldomconsistente,leesbareengestandaardiseerdecode teschrijvenineenprogrammeertaal.
CONCEPT
Confidentiality
Vertrouwelijkheid,gaateromdatergegarandeerdkanwordendatniemandderegelsvanpersoonlijkeprivacy enbedrijfseigeninformatiezalovertreden.
Deployment
OokwelRelease-faseofImplementatiefasegenoemd.Hetkomterindezefaseopneerdatdeapplicatieklaaris omlivetegaan.
Encryptie
Hetversleutelenvanbestandenofverbindingen.
Firewall
Software(somsookhardware)omin-enuitgaandverkeertefilterenopgevaarlijkebedoelingen.
Fuzzing
Eentechniekbinnensoftwareontwikkelingdiewordtgebruiktvoorhettestenenidentificerenvankwetsbaarheden insoftwaretoepassingen.Hetdoelvanfuzzingisomonverwachteinputsaaneenprogrammategevenomzo potentiëlefouten,crashes,ofbeveiligingslekkenoptesporen.
Integrity
Integriteitwilzeggendatongepasteofongeoorloofdewijzigingvandedataofvernietigingvandatanietkan.
MoSCoW-methode
Eenprioriteringstechniekdiewordtgebruiktinprojectmanagementensoftwareontwikkelingomtaken,functies ofvereistentecategoriserenopbasisvanhunrelatievebelangrijkheid.
PakketvanEisen(PvE)
Eendocumentwaarindefunctioneleentechnischeeisenwordenbeschrevendieeenopdrachtgeverheeftvoor eenbepaaldproject.
Phishing
Eenmaildieverstuurdwordtmethetdoelomdegebruikerergenszijnwachtwoordofanderegegevensachter laten.
Requirements
Gedetailleerdebeschrijvingenvanwateensysteem,productofdienstmoetkunnendoenomtevoldoenaande verwachtingenenbehoeftenvanbelanghebbenden.
S-SDLC
SecureSoftwareDevelopmentLifeCycle(S-SDLC),eenbenaderingvansoftwareontwikkelingdiedeintegratie vanbeveiligingspraktijkeninelkefasevandelevenscyclusvandesoftwarebevordert.
SecurityRequirementsSpecification(SRS)
Eendocumentwaarindebeveiligingsvereistenvooreensoftwaretoepassingofsysteemwordenbeschreven.
SoftwareDevelopmentLifeCycle(SDLC)
Eengestructureerdprocesdatwordtgebruiktbijhetontwikkelenvansoftwaretoepassingen.Hetomvateenreeks fasendiesystematischwordendoorlopenomsoftwareteplannen,ontwerpen,ontwikkelen,testen,implementeren enonderhouden.
SoftwareRequirementSpecification(SRS)
Eendocumentwaarinstaatwatmenverwachtvanhetsysteemofdesoftwarediemoetwordenontwikkeld.
CONCEPT
Tweefactorauthenticatie
Tweefactorauthenticatievoegteenextrabeveiligingslaagtoedoornaasteenwachtwoordeentweedevormvan identificatietevereisen.
3.10 Praktijkopdrachten
Opdracht7 Luisteren,samenvatten,doorvragen
Steljevoordatjeeenvriendhebtdiewatproblemenheeftopschool.Diegenewilmetjepratenenzijn/haar zorgendelen.Pasdeprincipesvanluisteren,samenvattenendoorvragentoeomjevriendtehelpenenomde volgendesituatieaftehandelen:
Jevriendbeginttepratenoverzijn/haarproblemenopschool,maaristerughoudend,enzegt:"Schoolisecht moeilijkdelaatstetijd.Ikbengestrest."
Beschrijfhoejedezesituatiezouaanpakkendoordeprincipesvanluisteren,samenvattenendoorvragentoete passen.
Opdracht8 Voor-ennadelenLSD
Dezeopdrachtvoerjeuitineengroepvandrieofvierstudenten.
Bespreekdevolgendevragen:
CONCEPT
• Watzijnenkelevoordelenvanhetactieftoepassenvanluisteren,samenvattenendoorvrageningesprekken encommunicatie?
• Hoekanhetgebruikvandezeprincipesdecommunicatieverbeterenenmisverstandenverminderen?
Elkegroepstudentenmoetdeantwoordenpresenterenaandeklaseneenalgemenediscussieoverhetonderwerp starten.
3.11 Terugblik
Opdracht9 Terugblik
Zeteenkruisjeindekolomdievoorjouvantoepassingis.
Beoordelingscriteria
JekuntdebelangrijksteprincipesuitS-SDLCtoepassen.
Jekunteenopdrachtopadequatewijzevaststellen.
JekuntdeLSDtechniektoepassen.
Jekunteenprogrammavaneisenopstellen.
Opdracht10 Terugblik
Denknaoverwatjehebtgedaaninditblok.
a. Noemtweedingenwaaroverjetevredenbent.
1.
2.
b. Noemtweedingendiejedevolgendekeeranderswiltdoen.
1. 2.
c. Vraagjedocenten/ofleermeesteromfeedback.
Tops:
Tips:
Nee Ja
Blok4 Functioneelontwerp
CONCEPT
Leerdoelen
• Jekuntrequirementsvaststellen.
• Jekunteenuse-case-diagrammaken.
• Jekunteenusecasemaken.
• Jekunteenklassendiagrammaken.
• Jekunteenfunctioneelontwerpopstellen.
BijdeontwikkelingvanapplicatieswordtervoorhetontwerpbijnaaltijdgebruikgemaaktvaneenFunctioneel eneenTechnischontwerp.HetFunctioneelontwerpbeschrijftwatdetebouwenapplicatieofwebsiteaan functionaliteitmoetbieden,enisdeblauwdrukvandeapplicatie/website.Hetmoetzoomschrevenzijndateen klanthetdocumentgoedkanbegrijpen,endeinformatiemoetnuttigzijnvooriemanddiedesitegaatbouwen. HetFunctioneelontwerpmagdusniettetechnischzijn.
Opdracht1 OriëntatieopdrachtFunctioneelontwerp
Ditdeelgaatoverhetfunctioneelontwerp.Ditiseendocumentdatdefunctionelevereistenenspecificatiesvan eensysteem,applicatieofsoftwareproductbeschrijft.Hetbevateengedetailleerdebeschrijvingvanwathet systeemmoetdoen,welkefunctieshetmoethebben,enhoedezefunctiesmetelkaarmoetensamenwerken. Hetgaatdanomdegebruikerservaringendefunctionaliteitvanhetsysteem,zonderintegaanoptechnische details.
Dezeopdrachtvoerjeuitineengroepjevandrieofvierstudenten.Alsgroepgajedefunctionaliteitvanéénvan devolgendeobjectenbeschrijven.Vervolgensbespreekjedezemeteenanderegroepderesultatenenbekijkje oferonderdelenzijngemist.
• Elektrischetandenborstel
• Airfryer
4.1 Functioneelontwerp
WiljehetFunctioneelontwerpgoedkunnenopzetten,danmoetjeeenscherpzichthebbenopderequirements. Derequirementsbeschrijvenwelkeelementenenfunctiesbenodigdzijnvooreenspecifiekproject.
CONCEPT
Requirements

Figuur 4.1 Woordweb requirements
Weonderscheidenverschillendesoortenrequirements.
Businessrequirements
Businessrequirementszijndeverbeteringendiedeondernemingwilrealiserenineennieuwofbestaandproces, bijvoorbeeld:
• grotermarktaandeel
• hogereefficiëntie
• hogereomzet
• hogeretevredenheidvanklanten
• lagerekosten
• meerwinst
• korteredoorlooptijd
• minderrisico’s
• kortereinwerktijd
Businessrequirementszijnbelangrijk,omdathiermeehettemakensysteemwordtafgebakend.Erwordteen gemeenschappelijkbeeldgedefinieerdvanwathetsysteemmoetkunnen.
Userrequirements
DitzijndeactiviteitenofprocessendiedegebruikersmethetICT-systeemgaanuitvoeren.Omdezeinbeeldte brengenwordtvaakdetechniekvanuse-casesgebruikt.Userrequirementshetenookwelproces-requirements. Zemoetennietteglobaal,maarookniettegedetailleerdzijn.
Functionelerequirements
Functionelerequirementsbeschrijvendefunctiesdiehetsysteemmoetvervullen.Functionelerequirements werkenwevaakuitineenuse-case-diagram.Hiermeekunnenwegrafischweergevenwathetsysteemmoetgaan doenenwieervanwelkefunctiegebruikgaatmaken.
Niet-functionelerequirements
CONCEPT
Niet-functionelerequirementsgevencriteriaaanomhetfunctionerenvanhetsysteemtebeoordelen,maar beschrijvenniethetspecifiekegedragzelf.Hetgaatmeestaloverbetrouwbaarheid,onderhoud,performanceen veiligheid.
UnifiedModelingLanguage(UML)
UnifiedModelingLanguage(UML)iseengestandaardiseerdemodellerings-endiagrammataaldiewordtgebruikt insoftwareontwikkelingensysteemanalyse.UMLisontworpendoorGradyBooch,JamesRumbaughenIvar Jacobsonindejaren'90enissinds1997destandaardvoorhetgrafischweergevenvansoftware.UMLstaatonder toezichtvandeObjectManagementGroup(OMG).
HetdoelvanUMLisomeengemeenschappelijkevisueletaaltebiedendieontwikkelaars,analistenenandere belanghebbendenkunnengebruiken.DoorhetgebruikvanUMLzijnsoftwareontwerpenensysteemstructuren doordeverschillendegroepentebegrijpenenkunnenzeonderlingcommuniceren. UMLisgeenontwikkelmethode!UMLverteltniethoejeeensysteemmoetontwerpen.Hetverteltooknietwatje eerstmoetdoenenwatdaarna.WatUMLweldoet,isjehelpenhetsysteemtevisualisereneneroverte communicerenmetanderen.Hetiseenvisuelemodelleertaaldiebegrippenendiagrammenstandaardiseert. UMLbiedtverschillendesoortendiagrammenomverschillendeaspectenvaneensysteemofsoftwaretoepassing temodelleren.
Structuur-engedragsdiagrammen
UMLbiedtdevolgendeverzamelingvanstructuur-engedragsdiagrammen:
• Statischediagrammen
– klassendiagram(classdiagram)
– objectendiagram(objectdiagram)
– componentendiagram(componentdiagram)
– gebruiksdiagram(deploymentdiagram)
• Dynamischediagrammen
– use-case-diagram
– collaboratiediagram(collaborationdiagram/communicatiediagram)
– sequentiediagram/volgordediagram(sequencediagram)
– activiteitendiagram(activitydiagram)
– correlatiediagram
– toestanddiagram(statediagram)
UMLbestaatuitsymbolenwaaruitdemodellenwordensamengesteld.Daarnaastisereenverzamelingregels voorhetgebruikvandezesymbolen.Dezeregelsgevenaanhoedesymboleneruitzienenhoezegecombineerd worden.Ookgevenderegelsmetbetrekkingtotdebetekenisvanelksymboolafzonderlijkaanhoedezeincontext staantotanderesymbolen.Eenmodelelementdatinverschillendediagrammenwordtgebruiktheeftaltijd dezelfdebetekenisinelkdiagram.
Nietallediagrammenwordenaltijdgebruikt,datisaandeontwikkelaar.Diagrammendievaakwordengebruikt zijn:
• Statischediagrammen
– klassendiagram(classdiagram)
• Dynamischediagrammen
– use-case-diagram
– sequentiediagram/volgordediagram(sequencediagram)
– Activiteitendiagram(activitydiagram)
Dezediagrammenkomenindevolgendeparagrafenafzonderlijkaandeorde.
CONCEPT
Use-case-diagram
InhetrapportFunctioneelontwerpzorgenweervoordatdeactiviteitenofprocessendiedegebruikersmethet ICT-systeemgaanuitvoerenduidelijkzijnomschreven.WatisermooierdaneenvolledigoverzichtopéénA4’tje?
Ditkunnenwebereikenmetbehulpvaneenuse-case-diagram,opzicheeneenvoudigetechniekdieeenvoudig isaanteleren.Hiervoorzijnheelveelverschillendetoolsbeschikbaar,zowelgratisalscommercieel.Bekende ontwikkelomgevingenzijnVisio,ArgoUMLendraw.io.Ditzijndrietotaalverschillendevoorbeeldenuiteenveel groterassortiment.Erbestaatnieteenbesteofslechtste.Wanneerjijvindtdateentooldoetwatjijnodighebt, danisdateengoedetoolvoorjou.
Eenuse-case-diagramisopgebouwduiteenpaarstandaardelementen,teweten:
Actor:eengebruiker(enheelsomseeniets)dieeenactieingangzet.
Usecase:deactiedieonderdeelvormtvanhetsysteem.
Verbinding:derelatietussendegebruikerendeactie.
Systeemgrens:hetkaderwaarmeeaangegeveniswaardegrenzenvanhetsysteemliggen.
Blok4 Functioneelontwerp

Figuur 4.2
Use-case-diagram
Voorbeeldvaneenwebshop
Jehebtvastweleensietsbijeenwebshopgekocht.Hetuse-case-diagramvandewebwinkelzouerzouitkunnen zien:

Figuur 4.3
Use-case-diagram van een webwinkel
Onzeklantkanindewebshoptweeverschillendedingen:hijkanartikelenbekijkenenartikelenkopen. Wilonzeklantechtereenartikelkunnenkopen,danmoetenzijngegevensbijonsbekendzijn.Daaromgaanwe hetuse-case-diagramaanpassen.Weeisendatdeklantinlogt.Datlatenweinonzeuse-case-diagramziendoor middelvaneen‘include’-pijltje.
CONCEPT

Figuur 4.4
Use-case-diagram van een webwinkel met log in
Include iseenverplichtehandeling.Alsdeklanteenartikelwilkopen,dan moet hijookinloggen.

Figuur 4.5
Use-case-diagram met kader
Vaakkaderenwehetsysteeminenzettenwedeactorenbuitenhetsysteem.Hetsysteemisdewebshop, aangegevenofbegrensddoorhetkader.
Hetkannatuurlijkdateenklantopzijngemakwilwinkelenenpasovergaattotafrekenen(kopen)alshijhelemaal klaaris.Inhetvoorbeeldkandeklantkiezenalleenartikelentebekijkenoftewinkelen.Wanneerhijkiestvoor winkelen,krijgtdeklantdemogelijkheidtekiezenvoorWinkelwagenofAfrekenen.BijdekeusvoordeWinkelwagen zijnerweerdrieopties,namelijk:Artikeltoevoegen,ArtikelverwijderenenArtikelaanpassen.
CONCEPT

Figuur 4.6
Use-case-diagram met keuzes
Hetfeitdatdeklanteen keus heeftennietietsmoet,gevenweaanmeteenextend Alseenkantingelogdmoetzijnomtekunnenafrekenen,danmoetenwedatopnemen.

Figuur 4.7 Use-case-diagram met keuzen en log in
Eenuse-case-diagrambestaatuitdevolgendeelementen:systeemgrens,actor,usecaseenverbinding(inclusion, extension).
Deuse-case-tabel
Omallescompleettemakenmoetenwedeusecaseverderuitwerken.Eenuse-case-diagramishethelediagram, deusecaseiseenellipsinhetuse-case-diagram.Deuse-case-tabelisdeuitwerkingvanéénellipsinhetdiagram. Use-case-diagrammentonenactoren,datzijnmensenofandereonderdelenvanhetsysteem.Deuse-case-tabellen zijndescenario’swanneeractorenhetsysteemgebruikenenhunrelaties.Indeuse-case-tabellenbeschrijven wehetscenariozovolledigmogelijk(userstories).
CONCEPT
Alsvoorbeeldgebruikenweeengeldautomaat.Ditomdatiedereenweethoezo’napparaatwerktenherkent waarhetovergaat.

Figuur 4.8 Use-case-diagram geldautomaat
Actor
Nadenaamendeversiegevenweaanwiedebetrokkenactorenzijn.Vaakisersprakevanéénactor,maarmeer danéénactorisookmogelijk.
Precondities
Vervolgensgevenweaanwatdepreconditieszijn.Preconditieszijnvoorwaardenwaaraanvoldaanmoetzijn.Je kuntbedenkendatjeeenbankpasmoethebbenalsjegelduiteengeldautomaatwilthalen.Hierkanhetookom meerdanéénvoorwaardegaan.
Scenario(beschrijving)
Bijhetscenarioomschrijfjezovolledigenbeeldendmogelijkwatergebeurt.Bijdebetaalautomaatzoudat kunnenzijn:
• voerpasinautomaatin
• voerpincodein
• voerbedragin
• bevestigbedrag
• geefantwoordopwel/geenkwitantie
• neempasuit
• neemgelduit
• (neembonuit)
Uitzondering
Vervolgensbeschrijvenwedeuitzonderingen.Voordegeldautomaatzoudatkunnenzijn:
• foutepincode
• onvoldoendesaldo
• onvoldoendegeldinkas
• geenpapierindeprinter
Inelkvandebovenstaandesituatieszalereenanderscenariogaanspelen.
Niet-functioneleeisen
Bijdeniet-functioneleeisenkomeneisentestaandienietdirectdefunctionaliteitbetreffenmaarzaken daaromheen.Alsdegeldautomaater10minutenoverdoetoméénklantaftehandelen,danfunctioneerthijnog steeds.Eenniet-functioneleeiszoukunnenzijndateentransactiebinnen40secondenafgerondis.
CONCEPT
Postconditie
Bijdepostconditieisdesituatiebeschrevennadatdehandelingzichheeftvoltrokken.Inhetvoorbeeldvande geldautomaat:deklantheeftzijngeld,deautomaatwachtopinvoervaneennieuwepas.
Allesbijelkaargaatheteralsvolgtuitzien.
Klantisinbezitvanbankrekeningenbankpas Preconditie
Scenario
1.Klantneemtgeldop
a.Voerpasinautomaatin
b.Voerpincodein
c.Voerbedragin
d.Bevestigbedrag
e.Geefantwoordopwel/geenkwitantie
f.Neempasuit
g.Neemgelduit
h.Neembonuit
Naam
Uitzonderingen
Geldautomaat
2.Klantheeftonvoldoendesaldo
a.Voerpasinautomaatin b.Voerpincodein c.Voerbedragin d.Bevestigbedrag
e.Meldingonvoldoendesaldo
f.Anderbedrag
g.Geefja-nee(jascenario1)
h.Nee:neempasuit
3.Geenpapierinprinter
a.Voerpasinautomaatin b.Voerpincodein c.Voerbedragin
d.Bevestigbedrag
e.Meldinggeenkwitantiemogelijk
f.Neempasuit
g.Neemgelduit
4.Onvoldoendegeldinautomaat
a.Voerpasinautomaatin
b.Voerpincodein c.Voerbedragin
Niet-functioneleeisen
Postconditie
CONCEPT
d.Melding,onvoldoendegeldinkas,kiesanderbedrag
e.Scenario1
Eentransactiemoetbinnen40secondenafgerondkunnenzijn
Klantheeftzijngeld,automaatwachtopinvoervaneennieuwepas
Opdracht2 Functioneelontwerp
RaadpleegzonodigdetheorieoverhetFunctioneelontwerp.

a. Maakdeuse-case-tabelvoordeactieArtikeltoevoegenuithetuse-case-diagramWebshop.
b. Maakdeuse-case-tabelvoordeactieArtikelverwijderenuithetuse-case-diagramWebshop.
c. Maakdeuse-case-tabelvoordeactieArtikelaanpassenuithetuse-case-diagramWebshop.
d. Maakdeuse-case-tabelvoordeactieAfrekenenuithetuse-case-diagramWebshop.
e. Watzijnrequirements?
f. Noemeenaantalvoorbeeldenvanbusinessrequirements.
g. Watzijnfunctionelerequirements?
CONCEPT
h. Maakeenuse-case-diagramvooreensnoepautomaat.Desnoepautomaatbevatverschillendesoortensnoep. Eenklantheefteenpaswaarmeedeautomaatinwerkingkanwordengesteld.Opdezepasstaateentegoed. Deautomaatzalalsafrondingvandetransactiehettegoedaanpassen.Hetismogelijkomindeautomaathet tegoedopdepasteverhogen.Hiervoorzalookeenbankpasaandeautomaatmoetenwordenaangeboden.
i. Maakdeuse-case-tabelvoorhetophogenvanhetsaldoopdesnoepautomaatpas.
j. Maakdeuse-case-tabelvoorhetkopenvansnoep.
k. Maakeenuse-case-diagramvoortennisverenigingTopSpin.
DeledenvandetennisverenigingTopSpintennissenwekelijksopwoensdagavond.Zijhoudeneenranglijst bij.Deranglijstiseenvoudig.Jemagaltijdiemanduitdagendiemaximaalvijfpositieshogeropderanglijst staat.Alsjewintvaniemandhogerinderanglijst,wisseljevanpositieopderanglijst.Peravondwordener dooreenlidmaximaaltweewedstrijdengespeeld.
Eenspelermagmaximaaltweespelersdiehogerinderanglijststaanuitdagen,waarbijereenvoorkeurmoet wordenopgeven.Natuurlijkkaneenspelerookuitgedaagdwordendoormeerderespelers.
Hetuitdagenkantotmaximaal24uurvoordeaanvangvandespeelavond.Detennisverenigingwilhiervoor eenapplatenontwikkelendiedeclubledenkunnengebruikenomdeeltenemen.Daarbijmoetrekening wordengehoudenmethetvolgende.
• Omtekunneninloggenmaakteenlidgebruikvanzijnlidnummereneenzelfverzonnenwachtwoord.
• Hetsysteembepaaltvierentwintiguurvoordeaanvangvandespeelavondautomatischwietegenwie speelt.Hetkanzijndateenspelerdoormeerdanéénspelerwordtuitgedaagd.Zekeralsjebedenktdat deuitgedaagdezelfookanderenkanuitdagen.Deuitdagerdiehethoogstopderanglijststaatheeftindat gevalvoorrang.Hetsysteembepaaltvolgenseenbepaaldalgoritmeeengoedrooster.Deledenkunnen ditroostervervolgensinhetsysteemraadplegen.
• Eensindevierwekenmagjejeafmeldenvoordespeelavond.Indienjejeeenkeertevaakafmeldt(ofniet optijdaanwezigbent),zakjeautomatischtweepositiesopderanglijst.
• Dewedstrijduitslagenwordenverwerktdoordewedstrijdleiding.Dewedstrijdleidingzorgtookvoorhet beheervandeleden.Hetisookdewedstrijdleidingdievastlegtdatiemandtelaatis.
• Hetsysteemzorgtervoordatnahetinvoerenvaneenwedstrijduitslagderanglijstautomatischwordt bijgewerkt.Declubledenkunnenderanglijstmetbehulpvanhetsysteeminzien.
4.2 Klasseenklassendiagram
Alsweeenapplicatiewillenbouwendiesuccesvolisendoetwatdiemoetdoen,danzullenweordemoeten aanbrengenindegegevensdiewevanuitdetebouwenapplicatiewillengebruiken.Dieordekunnenweaanbrengen metbehulpvaneenklassendiagram(classdiagram).
Ordeaanbrengenisietswatwevannatureookdoen.Trekjeeenbestekladeopendanisdekansgrootdater ordeisaangebracht.Dedingenindelahebbeneennaamenindemeestegevallenookeeneigenplaats.Maar ookbuitendelahebbendedingenomonsheeneennaam.Indemeestegevallenbehoorteendingtoteengroep, enalshetevenkan,eensubgroep.
Indebestekladeishetnietondenkbaardatweeendriedelinghebbengemaakt.
Bestek—>Lepel,Vork,Mes
Opeenofanderemanierwetenwewatbestekisenwetenwehetverschiltusseneenmes,eenlepeleneenvork. Datkomtomdatwevoorelkobjecteenspecificatiehebben,eenomschrijvingdiespecifiekekenmerkenvanhet objectbeschrijft.Diespecificatiehebbenwevaakongemerktaangenomen.Maarwanneerweeenapplicatiegaan bouwenkunnenwenietvolstaanmet‘ongemerktaannemen’.Wegaanobjectenclassificerenenhunonderlinge relatieinbeeldbrengen.Wegaaneenklassendiagrammaken.
CONCEPT
Alsvoorbeeldnogevendebesteklade:indebestekladeliggendingen(objecten)diewebesteknoemen.Die objectenkunnenwealsgroepomschrijven.Zo’nomschrijvingnoemenwevanafnueenklasse.Dieobjecten,het bestekzijndanweernadertespecifiserenalsmes,lepelenvork
KlassendiagrammenwordengebruiktindeUnifiedModelingLanguage(UML),welkeprincipeswevaaktoepassen binnendesoftware-ontwikkeling.Eenklassewordtgetekendalseenrechthoek,dieisopgebouwduitdrie rechthoeken.
classname attributen methods
• Debovensterechthoekbevatde‘classname’(naamvandeklasse).
• Demiddelsterechthoekbevatde‘attributen’(attributenvandeklasse).
• Hetonderstedeelbevatde‘methods’(functiesofhandelingendiemenkanuitvoerenopdezeobjecten).
Name
Denaamvandeklasseisbelangrijkomdathiermeewordtbepaaldoverwelkobjectjehethebt.Aandenaam wordendevolgendeeisengesteld:
• hijisuniekinhetdiagram;
• hijisaltijdinenkelvoud.
Attributen
Deattributen(fields)beschrijveninfeitehetobject.ZozaleenobjectAutobestaanuitdeattributenMotor,Wielen, Carrosserie,Stuurennogeenaantalattributen.
Attributenkunnendevolgendespecificatiehebben:
• schrijfwijze:zichtbaarheidnaam:type=startwaarde
• (privateaangeradenvoorattributen)
• zichtbaarheden
• +:publiek
• -:privaat
• x:protected
Methods
Hetonderstedeelbevatdemethoden,methods Methodenzijnfunctiesofhandelingendiemenkanuitvoeren opdezeobjecten.Methodenkunnenbewerkingenuitvoerenopdeattributenenzodenodigegegevensophalen ofwijzigen.
• schrijfwijze:zichtbaarheidnaam(parameter:type):teruggeeftype
• zoveelmogelijkprotectedaangeraden
• bijvoorbeeldLeesNaam()
• WijzigNaam(‘Nieuwenaam’)
• +maakTekst(naam:String):String
Relatiesineenklassendiagram
Deverschillendeklassenineenklassendiagramkunnenallerleirelatieshebben.Deverschillenderelatiesende consequentiesdaarvanwordenhieruitgelegd.
Alsvoorbeeldgebruikenwedecursusinschrijvingopeenschool.
Association(associatie)
CONCEPT

Inditklassendiagramzijnertweeklassen:StudentenAdres.DeklasseStudentwordtgekenmerktdoorde attributen(fields)Naam,GeboortedatumenNummer.DeklasseAdreswordtgekenmerktdoordeattributen Postcode,Plaats,WoonplaatsenHuisnummer.
Erissprakevaneenassociatie(association)tussenStudentenAdres.Inditvoorbeeldwoonteréénstudentop éénadres.
Hetzouzomaarkunnendateropeenbepaaldadres geen studentenwonen.Hetbijbehorendeklassendiagram gaaterdanzouitzien.Eenstudentwoontopéénadres,maaropeenadreswonennuloféénstudenten.
Figuur 4.9 Klassendiagram cursusinschrijving op een schoolIndepraktijkkomthetvoordatermeerstudentenopéénadreswonen.Indatgevalmoethetklassendiagram erzouitzien.

Figuur 4.10 Klassendiagram nul of één studenten op adres
Eenstudentleeftopéénadres,maaropeenadreslevennulofmeerstudentengeeftdevolgendeassociatie:

Figuur 4.11 Klassendiagram meer dan één studenten op adres
Wekennendevolgendeassociaties:
Multipliciteit
CONCEPT
Betekenis
Enkel1 1
Nulof1
Nulofmeer
Eenofmeer
n(alsn>1)
Nultotn(alsn>1)
Eéntotn(alsn>1)
Inheritancerelationships(overerving)
Hetkomtvaakvoordattweeverschillendeklasseneengedeeltelijkeovereenkomsthebben.Ineendegelijkgeval makenwegebruikvaninheritancerelationships(overerving).

Figuur 4.12 Klassendiagram met inheritance relationships
CONCEPT
StudentenDocentzijnbeideneenpersoon.AlleeigenschappenvanPersoongeldenvoorbeiden.Zehebben allebeieenNaam,Adres,E-mailenTelefoon.DeStudentheeftspecifieknogeeninschrijving,deDocenteen BevoegdheideneenSalaris.
Ditwordtookwelgeneralisatieofspecialisatiegenoemd.Destudentheeftallesvaneenpersoonenmogelijk meer.
• Eenstudentiseenspecialisatievanpersoon.
• Eenpersooniseengeneralisatievanstudent.
Deassociatiegeeftaandateropeenadresnulofmeerpersonenwonenendatelkpersoonopéénadreswoont. DocentenStudentwordenookwelsubklassevandeklassePersoongenoemd.
Compositieenaggregaties
Aggregaties
Aggregatieswordengebruiktvoorklassendiebestaanuittweeofmeerkleinere,opzichzelfstaandeklassen. Aggregatieswordengetekendmeteenwitteruitvormigepijlpuntdiewijstnaarhetdoelofdebovenliggende klasse.Debovenliggendeklassekandeonderliggendeklassebevatten.
Compositie
Compositieiseenspeciaaltypeaggregatiedatsterkerelatiesheeft.Debovenliggendeklassemoetdeonderliggende klassebevatten.Compositiewordtgetekendmeteengevulderuitvormigepijlpuntdiewijstnaarhetdoelofde bovenliggendeklasse.
Wenemenalsvoorbeeldeenboterham.

Figuur 4.13 Klassendiagram met composities
EenboterhamismetbroodverbondendooreenCompositie.Deboterham moet broodbevatten.
EenboterhamismetboterenbelegverbondendooreenAggregatie.Deboterham kan boterenbelegbevatten.
Ontwerpenvaneenklassendiagram
Eenklassendiagramwordtontworpenopbasisvandebeschrijvingvaneensysteem.Eenmanieromtoteen klassendiagramtekomenisdatjedeinformatiebehoeftegoedontleedt.Omtebeginnenaccentueerjealle zelfstandigenaamwoordenindetekst.
Zelfstandigenaamwoordenzijnwoordendie‘eenzelfstandigheid’aanduiden.Datkunnenmensen,dierenen dingenzijn.Maarhetkunnenookplaatsenenabstractezakenalsgevoelens,eigenschappen,gebeurtenissen, tijdsruimtenendenkbeeldigepersonenofzakenzijn.
CONCEPT
Zelfstandigenaamwoordenkunnenmeestalgecombineerdwordenmeteenvandelidwoorden de, het of een.In veelzinnenstaatergeenlidwoordbijhetzelfstandignaamwoord:
‘Hijheeftboteropzijnhoofd’ deboter—>boteriseenzelfstandignaamwoord hethoofd—>hoofdiseenzelfstandignaamwoord
‘Erzitmuziekin’ demuziek—>muziekiseenzelfstandignaamwoord
VoorbeeldontwerpenvaneenklassendiagramvoorTopSpin
TennisverenigingTopSpinwileenapplatenontwikkelenvoordevolgendesituatie.Deledenvantennisvereniging TopSpintennissenwekelijksopwoensdagavond.Zijhoudeneenranglijstbij.Deranglijstiseenvoudig.Jemag altijdiemanduitdagendiemaximaalvijfpositieshogeropderanglijststaat.Alsjewintvaniemandhogeropde ranglijst,danwisseljevanpositie.Peravondspeelteenlidmaximaaltweewedstrijden.
Indeaangeleverdetekstwordendezelfstandigenaamwoordengemarkeerd. DeledenvantennisverenigingTopSpintennissenwekelijksopwoensdagavond Zijhoudeneenranglijstbij. Deranglijstiseenvoudig.Jemagaltijdiemanduitdagendiemaximaalvijfpositieshogeropderanglijststaat. Alsjewintvaniemandhogeropderanglijst,danwisseljevanpositie.Peravondspeelteenlidmaximaaltwee wedstrijden
Dezelfstandigenaamwoordenwordengeordend,dubbelewordenweggelaten.
• Leden
• TennisverenigingOpdrachtgeverTopSpin
• Woensdagavond
• Ranglijst
• Iemand
• Positie
• Avond
• Lid
• Wedstrijden
Vervolgensgaanwezeordenenenkunnenweproberengroepentemaken.
• Leden
• Tennisvereniging
• Woensdagavond
LID
OpdrachtgeverTopSpin
AGENDA
• Ranglijst LID
RANGLIJST
• Iemand
• Positie
RANGLIJST
• Avond LID
AGENDA
• Lid
• Wedstrijden
AGENDA
LID:Leden,IemandenLidbehorenallemaaltotdezelfdeklasseLID
AGENDA:Woensdag,AvondenWedstrijdenzijnaanduidingenvoordeplanningenzettenweindeklasseAGENDA.
RANGLIJST:RanglijstenPositiezijnbeidebedoeldomordeningaantebrengenenkomensamenindeklasse
CONCEPT
RANGLIJST
Feitelijkkrijgenwenutemakenmetdrieklassen:
• LID
• AGENDA
• RANGLIJST

Figuur 4.14 Klassendiagram TopSpin
Wehebbennudeklassenbenoemdenmoetendeonderlingerelatieaangeven.
• EenLIDkaneenvermeldinghebbenopdeRANGLIJSTmaarnietmeerdanéén(0..1).OpdeRANGLIJSTkunnen 0totveelledengeranktzijn(0..*).
• VooreenLIDkunnenéénofmeerspeeldatawordengepland(1..*).OpdeAGENDAstaan0ofmeerleden gepland(0..*).
Ditzouhetbijbehorendeklassendiagramkunnenzijn:

Figuur 4.15 Klassendiagram TopSpin met onderlinge relatie
VoorbeeldontwerpenvanklassendiagramAir-concepts
Air-conceptsiseenluchtvaartmaatschappijdieeenheldereplanningvoorelkevluchthanteert.Ruimvoorde vertrekdatumwordenhetvluchtnummerendevertrektijdvastgesteld.Devliegtuigen,pilotenenoverigebemanning zijnvoorAir-conceptsbelangrijkeresources.Allewerknemers,pilotenenoverigebemanninghebbeneenvliegveld alsthuisbasis.Air-conceptswerktmetverschillendetypenvliegtuigenenafhankelijkvanhettypezijnertweeof driepiloten.Voorelktoestelgeldtdatereenvliegveldalsthuisbasisis.
Vandepilotenenoverigebemanningwordennaam,adresenwoonplaatsvastgelegd.Daarnaastwordtvooreen piloothetaantaljarenervaringvastgelegd.Voordeoverigebemanningligtvastinwelkerolzijhuntaakuitoefenen. Dethuisbasisvanvliegtuig,pilootenoverigebemanningheefteencodeeneennaam.Devluchtvanvliegtuig, pilootenoverigebemanningwordtruimvantevorengepland.
Omtebeginnenzoekjeallezelfstandigenaamwoorden.Dezehebbendepotentieominhetklassendiagramte wordenopgenomen.
Air-conceptsiseenluchtvaartmaatschappijdieeenheldereplanningvoorelkevluchthanteert.Ruimvoorde vertrekdatumwordenhetvluchtnummerendevertrektijdvastgesteld.Devliegtuigen,pilotenenoverige bemanningzijnvoorAir-conceptsbelangrijkeresources.Allewerknemers,pilotenenoverigebemanning hebbeneenvliegveldalsthuisbasis Air-conceptswerktmetverschillendetypenvliegtuigenenafhankelijkvan hettypezijnertweeofdriepiloten Voorelktoestelgeldtdatereenvliegveldalsthuisbasisis.
CONCEPT
Vandepilotenenoverigebemanningwordennaam,adresenwoonplaatsvastgelegd.Daarnaastwordtvoor eenpiloothetaantaljarenervaringvastgelegd.
Voordeoverigebemanningligtvastinwelkerolzijhuntaakuitoefenen.
Dethuisbasisvanvliegtuig,pilootenoverigebemanningheefteencodeeneennaam.Devluchtvanvliegtuig, pilootenoverigebemanningwordtruimvantevorengepland.
Wemakeneenoverzichtvandezelfstandignaamwoordenwaarbijwe redundante gegevensweglaten.Redundant isdedureICT-uitvoeringvanhetwoord‘dubbele’.
• Luchtvaartmaatschappij
• Heldereplanning
• Vlucht
• Vertrekdatum
• Vluchtnummer
• Vertrektijd
• Vliegtuigen
• Piloten
• Overigebemanning
• Resources
• Werknemers
• Thuisbasis
• Verschillendetypenvliegtuigen
• Type
• Vliegveld
• Naam
• Adres
• Woonplaats
• Aantaljarenervaring
• Rol
• Taak
• Code
• NaamThuisbasis
gaanweeengroeperingaanbrengen:
• Luchtvaartmaatschappij
• Heldereplanning
• Vlucht
• Vertrekdatum
• Vluchtnummer
• Vertrektijd
• Vliegtuigen
• Piloten
• Overigebemanning
• Resources
• Werknemers
• Thuisbasis
• Verschillendetypenvliegtuigen
CONCEPT
Daargaathetover
Planningvlucht
Planningvlucht
Planningvlucht
Planningvlucht
Planningvlucht
Vliegtuig
Werknemer
Werknemer
Werknemer
Werknemer
Basis
Vliegtuig
• Type Basis
Vliegtuig
• Vliegveld
• Naam
• Adres
• Woonplaats
• Aantaljarenervaring
• Rol
• Taak
Werknemer
Werknemer
Werknemer
Werknemer(specifiekpiloot)
Werknemer(specifiekoverigebemanning)
Werknemer(specifiekoverigebemanning)
Basis
• NaamThuisbasis
• Code Basis
WezieneengrotegroepgerelateerdaanWerknemer.
• Piloten
• Overigebemanning
• Resources
• Werknemers
• Naam
• Adres
• Woonplaats
• Aantaljarenervaring
• Rol
• Taak
Werknemer
Werknemer
Werknemer
Werknemer
Werknemer
Werknemer
Werknemer
Werknemer(specifiekpiloot)
Werknemer(specifiekoverigebemanning)
Werknemer(specifiekoverigebemanning)
Hierbijvaltopdatersynoniemenwordengebruikt,dieweverwijderen.
• Piloten
• Overigebemanning
• Werknemers
• Naam
• Adres
• Woonplaats
• Aantaljarenervaring
• Rol
CONCEPT
Werknemer
Werknemer
Werknemer
Werknemer
Werknemer
Werknemer
Werknemer(specifiekpiloot)
Werknemer(specifiekoverigebemanning)
WatopvaltisdatzowelPilotenalsOverigebemanningWerknemerzijnmaardatzijelkeenspecifiekkenmerk hebben.Datkanresulterenineenvolgendklassendiagram.
InditgevalmakenwegebruikvanInheritancerelationships(overerving).

Figuur 4.16 Klassendiagram Air-concepts met Inheritance relationships
• Heldereplanning
• Vlucht
• Vertrekdatum
• Vluchtnummer
CONCEPT
• Vertrektijd
• Vliegtuigen
• Verschillendetypenvliegtuigen
• Type
• Thuisbasis
• Code
• NaamThuisbasis
Planningvlucht
Planningvlucht
Planningvlucht
Planningvlucht
Planningvlucht
Vliegtuig
Vliegtuig
Vliegtuig
Basis
Basis
Basis
Dezetabellengevenweeenadequatenaamenwehalendesynoniemenweg.Danhoudenwedevolgendeklassen over:

Figuur 4.17 Klassendiagram Air-concepts zonder synoniemen
Depilootendebemanningzijngeplandopeenbepaaldevlucht.Hieraanisnatuurlijkookeenvliegtuiggekoppeld. Datzouerzouitkunnenzien:
CONCEPT

Figuur 4.18 Klassendiagram Air-concepts met vliegtuigen
Zoweldebemanningalseenvliegtuigheefteenspecifiekvliegveldalsthuisbasis.Datkanwordenvertaaldinhet volgendediagram:

CONCEPT
Figuur 4.19 Klassendiagram Air-concepts vliegvelden
Watnunogmoetgebeuren,ishetleggenvandedesbetreffenderelaties.
• Eenpilootkanmeerverschillendevluchtendoen,maaropeenvluchtzittentweeofdriepiloten.
• Bemanningkanmeerverschillendevluchtendoen,maaropeenvluchtzitéénofmeerbemanningsleden.
• Eenvliegtuigmaaktmeerderevluchten,maareenbepaaldevluchtwordtslechtsdooréénvliegtuiguitgevoerd.
• Opeenbasis(vliegveld)zijnmeerderevliegtuigengestationeerd.
• Opeenbasis(vliegveld)zijnmeerderewerknemersgestationeerd.
Hetgeheleklassendiagramzieterdanzouit:

CONCEPT
Opdracht3 Klasseenklassendiagram
RaadpleegzonodigdetheorieoverKlasseenklassendiagram.
a. Tekenhetklassendiagrambehorendebijdevolgendetekst:
• Elkestudentdoetmeeaantweesporten.
• Aanelkesportwordtdoorveelstudentendeelgenomen.
b. Tekenhetklassendiagrambehorendebijdevolgendetekst:
• Eenauteurheeftéénofmeerboekenuitgegeven.
• Eenboekwordtgeschrevendooréénofmeerauteurs.
• Eenboekwordtuitgegevendoorprecieséénuitgever.
• Eenuitgevergeeftéénofmeerboekenuit.
c. Hetrapportvaneenleerlingbestaatuitdenaamvandieleerlingeneenaantalresultaten.Elkresultaatis opgebouwduitdenaamvaneenbepaaldvakenhetcijfer.Tekenhetklassendiagramdatbijdezecasehoort.
d. Deonderstaandefiguurisdevisuelerepresentatievaneen inUML.
CONCEPT

Opdeinvullijnhoorttestaan: generalisatie associatie aggregatie compositie
e. Deonderstaandefiguurisdevisuelerepresentatievaneen inUML.

Opdeinvullijnhoorttestaan: generalisatie associatie aggregatie compositie
f. Deonderstaandefiguurisdevisuelerepresentatievaneen inUML.

Opdeinvullijnhoorttestaan: generalisatie associatie aggregatie compositie
g. Attributenenmethodenkunnenwordengetoondmethunzichtbaarheid.Watisdefunctievan+?
+staatvoorpublicattributen
+staatvoorprotectedattributen
+staatvoorprivateattributen
+wordtnietgebruiktbijzichtbaarheid
CONCEPT
h. Attributenenmethodenkunnenwordengetoondmethunzichtbaarheid.Watisdefunctievan-?
-staatvoorpublicattributen
-staatvoorprotectedattributen
-staatvoorprivateattributen -wordtnietgebruiktbijzichtbaarheid
i. Welkevandeonderstaandeafbeeldingengeeftdegeneralisatietussenvogelsendierenweer?




j. Welkevandeonderstaandeafbeeldingengeeftdecompositietussenhuisenkamerweer?




k. Welkevandeonderstaandeafbeeldingenbeeldtuit:geenautozondereenwiel?

CONCEPT



l. Welkevandeonderstaandeafbeeldingenbeeldtuit:eenviskanvinnenhebben?



m. Welkebeweringoveronderstaandefiguurisjuist?
CONCEPT


eenautoheefteenmotor eenautoheeftminimaaléénwiel eenautoheeftéénchassis eenautokaneencarrosseriehebben
n. BoomBeroepsonderwijsgeeftboekenuitvanverschillendeauteurs.Erzijnauteursdieéénboekhebben geschreven,maarerzijnookauteursdiemeerdereboekenhebbengeschreven.Ookkomthetvoordateen collectiefvanschrijversaanéénboekheeftgewerkt. Boomberoeponderwijswerktmetverschillendedrukkerijen,afhankelijkvandeaardvanhetboek.Iederboek
wordtechterbijmaarééndrukkerijgedrukt.EenredacteurvanBoomBeroepsonderwijswerktmetmeerdere auteurs.Deredacteurverzorgtvoorelkvanhenderedactieendeproductie. Maakhiervaneenklassendiagram.
o. BijtennisclubTopSpinwordteenoverzichtbijgehoudenvandeleden.Vanalleledenzijnpersoonlijkegegevens bekendalsnaamenadresgegevens.Eenlidheefteenunieklidnummer.Verderisbekendwatvoorsoortspeler hetlidis.Eenlidkanjunior,seniorofrecreatiespelerzijn.Ookisdejaarlijksecontributievastgesteld,dieper soortspelervaststaat.Tenslotteisbekendvoorwelkteameenspeleruitkomtindecompetitie.Vaneenteam wordtdeklassegenoteerd.Recreantenzijnnietingedeeldineenteam,wantzijspelengeencompetitie. Maakhiervaneenklassendiagram.

CONCEPT
p. MuziekStimulatieSquarePanda MuziekStimulatieSquarePandawilinformatieopslaanoverdemuzikantendieoptredenopalleuitgebrachte albums.Devolgendegegevenszijnvanbelang:
• VanelkemuzikantdieopnamesmaaktbijSquarePandaishetburgerservicenummer,denaam,hetadres enhettelefoonnummerbekend.
• Erwordtbijgehoudenwelkeinstrumentenwordengebruikt.
• Elkinstrumentheefteennaam(gitaar,synthesizer,fluitenzovoort)eneentype(datkanalleenblaas,snaar ofslagzijn).Alshetinstrumenteenblaasinstrumentis,moetdetoonsoort(bijvoorbeeldC,Bes,Es)worden bijgehouden.
• ElkalbumdatwordtopgenomenonderhetSquare-Panda-labelheefteentitel,eencopyright-datum,een formaat(cdofdvd)eneenalbum-id.
• ElknummerdatwordtopgenomenbijSquarePandaheefteen(unieke)titeleneenauteur.
• Elkemuzikantkanéénofmeerinstrumentenbespeleneneeninstrumentkandoormeerderemuzikanten bespeeldworden.
• Opelkalbumstaateenaantalnummers,maargeenenkelnummermagopmeerderealbumsvoorkomen.
• Elknummerwordtgespeelddooréénofmeermuzikanteneneenmuzikantkanéénofmeernummers spelen.HierbijwilSquarePandabijhoudenwelkinstrumentdemuzikantopditspecifiekenummerspeelt (datkanerslechtséénzijn).
• Opelkalbumiserprecieséénmuzikantdieoptreedtalsproducer.Eenmuzikantkanuiteraardmeerdere albumsproduceren.
Stelaandehandvanbovengenoemdegegevenseenklassendiagramopwaarinditalleswordtweergegeven.
4.3 Functioneel-ontwerp-rapport
Hetfunctioneel-ontwerp-rapportiseendocumentdatbedoeldisvoordeklant/opdrachtgever.Bijhetschrijven vanditrapportmoetjehierookconstantrekeningmeehouden.Zorgdatalleswatjeopschrijftbegrepenkan worden!
Indelingfunctioneel-ontwerp-rapport
Voorblad
Voorwoord
Inhoudsopgave
Samenvatting
Analysehuidigesituatie
Informatieverwerking
Applicaties
Infrastructuur
Analysegewenstesituatie
Requirements
Informatieverwerking
Applicaties
Infrastructuur
Consequenties
Organisatorischeconsequenties
Technischeconsequenties
Kosten
Planning
CONCEPT
Voorwoord
Inhetvoorwoordschrijfjewaaromjeditdocumenthebtgemaakt.Jebeschrijfthetbedrijfwaarvoorjewerkt,het bedrijfvandeklantenhetdoelvanhetproject.Zijnernoganderezakendiegenoemdmoetenworden,maardie buitenhetdocumentvallen,danisditdeplaatsomzealsnogtevermelden.Hierbijkunjedenkenaandedank diejewiltuitsprekenvoordehulpdiejegekregenhebtvaniemand.
Inhoudsopgave
Deinhoudsopgavewordtzelfnietgenoemdindeinhoudsopgavemaarisweleenbelangrijkonderdeel.Elke tekstverwerkerkaneeninhoudsopgaveautomatischgenereren,natuurlijkgebruikjediefunctie.
Samenvatting
Opbasisvaneen(management)samenvattingmoetdeprojectmanageren/ofopdrachtgeverbesluitenofhet projectkandoorgaan.Desamenvattingiscompactenbevatconcretefeitendiebelangrijkzijnvoorde besluitvorming.
Analysehuidigesituatie
Omhetverschiltekunnenzientussendesituatiezoalsdienuisendetoekomstigesituatieishetbelangrijkde huidigesituatienauwkeuriginkaarttebrengen.
Informatieverwerking
Hierbeschrijfjedebestaandesituatie.Jegeeftdebedrijfsstructuurweerbijvoorkeurmeteenorganogram,omdat jedaninéénoogopslageenbeeldhebtvandeorganisatievaneenbedrijf.Tevensgeefjemetbehulpvaneen use-case-diagramdefunctionaliteitvandeverschillendeprocessenweer.Deverschillendeusecaseswordenhier uitgewerkt.Zomogelijkgeefjederelatietotdeverschillendebedrijfsonderdelenweer.
Applicaties
Jegeefthiereenopsommingvanapplicatiesdieopditmomentwordengebruikt,bijvoorkeurgekoppeldaande daaraanverbondenbedrijfsonderdelenenusecases.
Infrastructuur
Alsersprakeisvaneennetwerkinfrastructuurwordtdezehiergrafischweergegeven.
Analysegewenstesituatie
Nadatdebestaandesituatieinkaartisgebrachtishetzaakomdegewenstesituatieduidelijktekrijgen.Lastigis hierbijdatdegebruikersvaaknietexactwetenwatzewillenofnietwetenwatmogelijkis.
Requirements
DeMoSCoW-methodeishetbelangrijksteinstrumentvoordithoofdstuk.Jekuntderesultatenhetbesteconform dezemethoderangschikken.
• Musthaves
• Shouldhaves
• Couldhaves
• Won’thaves
Informatieverwerking
Hierbeschrijfjedenieuwesituatie,bijvoorkeurmetbehulpvaneenuse-case-diagram.Vervolgenswerkjede verschillendeusecasesuitineenuse-case-tabel.
Applicaties
CONCEPT
Hiergeefjeeenopsommingvandeapplicatiesdieopditmomentwordengebruikt,bijvoorkeurgekoppeldaan dedaaraanverbondenusecasesenuse-case-tabellenvandenieuwesituatie.Hetkanzijndatjehierwireframes opneemtvandenieuweapplicatie/situatie.Eenwireframeiseenschematischeweergavevaneenwebsiteof webpagina.Bijhetontwikkelenvaneenwebsiteishetverstandiggebruiktemakenvanwireframesvoorde websiteinzijngeheelenvoorelkepagina.Hetkanookdaterdevoorkeuraanwordtgegevendewireframesin hetTechnischontwerpoptenemen.
Infrastructuur
Alsersprakeisvaneenwijzigingindenetwerkinfrastructuurmoetdezehiergrafischwordenweergegeven.
Consequenties
Alsdenieuwesituatieveranderingentotgevolgheeftdanishetbelangrijkdezevooraftebenoemen.
Organisatorische consequenties
Hiermoetalleswordenbeschrevendatinvloedheeftopdeorganisatie.Alsbedrijfsprocessenandersgaanverlopen, danzouerweleenseentraininggegevenmoetenworden.Detijddiehiervoormoetwordenvrijgemaaktzal benoemdmoetenworden.Hetzouzelfszokunnenzijndatpersoneelsledenhunhuidigewerkverliezenofer anderwerkbijkrijgen.Dezepersoneelsledenzullenzonodigmoetenwordenomgeschoold.
4 Functioneelontwerp
Technische consequenties
Allewijzigingenaandeinfrastructuur,allematerialen/apparatuurdieextramoetenwordenaangeschaftmoeten hierwordenvermeld.
Kosten
Indezefaseishetalleenmogelijkeenglobalebeschrijvingvandekostentemaken.Hetisonmogelijkomnual voorhetheleprojectallestotopdeeurotespecificeren.Tochishetbelangrijkdekostenvoorhardware,software envoorontwikkelingtenoemen.Deurenvoordefaseontwerpzijnnatuurlijkwelgespecificeerd.
Planning
HierneemjedebijgesteldeplanninguithetProjectplanover.
CONCEPT
4.4 Begrippenlijst
Activitydiagram
EentypeUML-diagramdatdedynamischeaspectenvaneensysteemmodelliseert,metdenadrukopdeworkflow endestroomvanactiviteiten.Hettoontdestappenofactiesdiewordenuitgevoerdbinneneenprocesofsysteem, evenalsdebeslissingendietijdenshetproceswordengenomen.
Aggregaties
Derelatietussentweeobjectenwaarbijheteneobjecteendeel(component)isvanhetandereobject.
Association
IndecontextvanUML(UnifiedModelingLanguage)enobjectgeoriënteerdeanalyseenontwerp,verwijsteen associationnaarderelatietussentweeofmeerklassen.
Attributen
Indatabaseswordenattributengebruiktomdekenmerkenvaneenentiteitofobjecttebeschrijven.
Compositie
Eensterkerevormvanaggregatieinobjectgeoriënteerdprogrammerenenontwerp.Ineencompositierelatieis heteneobject,hetdeelobject,striktverbondenmethetandereobject,hetgeheelobject.
Extend
Geeftaandatdegedragsvolgordevandebasisusecase(extension)optioneelwordtuitgebreidmethetgedrag vandeuitgebreideusecase(extension).Metanderewoorden,deextend"-relatiewordtgebruiktomeenoptionele, conditioneleuitbreidingvanhetgedragvandebasisusecasetemodelleren."
Functioneelontwerp
Eendocumentdatgedetailleerdeinformatiebevatoverdefunctiesenhetgedragvaneensysteem, softwaretoepassingofproduct.
Include
CONCEPT
Eenassociatierelatiedieaangeeftdathetgedragvaneenusecase(inclusieveusecase)altijdhetgedragvaneen andereusecase(inclusie-usecase)bevat.Metanderewoorden,deinclusion-relatiegeeftaandatdefunctionaliteit vandeinclusieveusecasewordtopgenomenindeuitvoeringvandebasisusecase.
Inheritancerelationships
Inheritance(erfelijkheid)verwijstnaarhetconceptwaarbijeennieuweklasse(deafgeleideklasseofsubklasse) eigenschappenengedragerftvaneenbestaandeklasse(debasis-ofbovenliggendeklasse).
Klasse
Wordtgebruiktomdestructuurvaneensysteemofsoftwaretoepassingtemodelleren.Eenklasseiseenblauwdruk ofsjabloonvoorhetmakenvanobjecten,enhetbeschrijftdeeigenschappen(attributen)engedragingen (methoden)vanobjectendiebehorentotdieklasse.
Klassendiagram
EentypeUML-diagramdatwordtgebruiktindesoftwareontwikkelingomdestatischestructuurvaneensysteem weertegeven.Hetbeschrijftdeklasseninhetsysteem,deeigenschappen(attributen)vandieklassenende relatiestussendeklassen.
Methods
Functiesofhandelingendiemenkanuitvoerenopobjecten.
Postconditie
Desituatiebeschrevennadatdehandelingzichheeftvoltrokken.
Precondities
Voorwaardenwaaraanvoldaanmoetzijn.
Redundant
Twee-ofdriedubbelbewaard.
Requirements
Gedetailleerdebeschrijvingenvanwateensysteem,productofdienstmoetkunnendoenomtevoldoenaande verwachtingenenbehoeftenvanbelanghebbenden.
Scenario
Enreeksstappenofinteractiestussengebruikerseneensysteemomeenspecifiekefunctionaliteitofusecasete illustreren.
Sequentiediagram
EentypeUML-diagramdatdeinteractiesencommunicatietussenverschillendeobjectenineensysteemweergeeft. Hetlegtdesequentiëlevolgordevanberichtenofoproepentussenobjectenvastenbiedteenvisueleweergave vanhoeeenspecifiekscenarioofproceszichontvouwtbinneneensysteem.
UnifiedModelingLanguage(UML)
Eengestandaardiseerdevisueletaaldiewordtgebruiktvoorhetmodellerenendocumenterenvansoftware-en systeemontwerpen.
Use-case-diagram
EentypeUML-diagramdatwordtgebruiktomdeinteractiestussenverschillendeactoren(gebruikersofexterne systemen)eneensysteemtemodelleren.Hetbiedteenoverzichtvandefunctionelevereistenvaneensysteem vanuithetperspectiefvandegebruikerentoonthoedegebruikersmethetsysteemzulleninteracteren.
CONCEPT
Use-case-tabel
Deuitwerkingvanéénellipsinhetdiagram.
Userstory
Eenkorte,eenvoudigebeschrijvingvaneenfunctieofstukfunctionaliteitvanuithetperspectiefvande eindgebruiker.
Wireframes
Gestructureerdevisuelerepresentatiesvandegebruikersinterfacevaneenwebsite,mobieleappofanderdigitaal product.Zewordengebruiktomdelay-outenstructuurvaneeninterfaceopeeneenvoudigeenschematische manierweertegeven,zondergedetailleerdegrafischeelementenofvisueleopmaak.
4.5 Praktijkopdrachten
Opdracht4 Usecasetakenlijst
Jewerktalsjuniorsoftwareontwikkelaarbijeenbedrijfdateeneenvoudigetakenlijstapplicatiewilontwikkelen.
Voordezeopdrachtmoetjeeenusecasemakenvoorhettoevoegenvaneennieuwetaakaandetakenlijst.Maak deusecasedoorhetzettenvandevolgendestappen.
Stappen:
1. Identificeerdeactoren:
2. Identificeerdeusecase:
3. Beschrijfdeprecondities:
4. Beschrijfdestappen:
5. Beschrijfdepostcondities:
6. Identificeeralternatievepaden:
7. Maakeengrafischerepresentatie:
8. Documenteerdeusecase:
9. Presenteerjeusecase:
Opdracht5 Klassediagramboekenwinkelsysteem
Jebentaangenomenalsjuniorsoftwareontwikkelaarbijeenbedrijfdateeneenvoudigeonlineboekwinkelwil ontwikkelen.Voordezeopdrachtmoetjeeenklassediagrammakenomdebasisstructuurvanhet boekwinkelsysteemtemodelleren.
Stappen:
1. Identificeerdeklassen:
– Identificeerdebelangrijksteklassendiebetrokkenzijnbijhetboekwinkelsysteem.
2. Definieerdeattributen:
– Voorelkeklasse,definieerdeattributen(eigenschappen)diebijdieklassehoren.
3. Definieerdemethoden:
CONCEPT
– Voorelkeklasse,definieerdemethoden(functies)diekunnenwordenuitgevoerddoorobjectenvandie klasse.
4. Definieerderelaties:
– Bepaalderelatiestussendeklassen.
5. Overweegabstracteklasseneninterfaces:
– Overweegoferabstracteklassenofinterfacesnodigzijninjeklassediagram.Misschienwiljeeenabstracte klasse"Betaalbaar"hebbenmeteenmethode"Betalen,"diewordtgeïmplementeerddoor"Bestelling" en"Winkelwagentje."
6. Documenteerjeklassediagram:
– Documenteerjeklassediagramineenduidelijkformaat,zoalseendigitaaldocumentofeentekening. Zorgervoordatalleklassen,attributen,methodenenrelatieswordenbeschreven.
7. Verduidelijkjeontwerp:
– Geefeenkortetoelichtingoverdekeuzesdiejehebtgemaaktbijhetontwerpenvanhetklassediagram enhoedeverschillendeklassensamenwerkeninhetboekwinkelsysteem.
4.6 Terugblik
Opdracht6 Terugblik
Zeteenkruisjeindekolomdievoorjouvantoepassingis.
Beoordelingscriteria
Jekuntrequirementsvaststellen.
Jekunteenuse-case-diagrammaken.
Jekunteenusecasemaken.
Jekunteenklassendiagrammaken.
Jekunteenfunctioneelontwerpopstellen.
Opdracht7 Terugblik
Denknaoverwatjehebtgedaaninditblok.
a. Noemtweedingenwaaroverjetevredenbent.
1. 2.
b. Noemtweedingendiejedevolgendekeeranderswiltdoen.
1. 2.
CONCEPT
c. Vraagjedocenten/ofleermeesteromfeedback.
Tops:
Tips:
Nee JaCONCEPT

Blok5 Technischontwerp
CONCEPT
BijdeontwikkelingvanapplicatieswordtervoorhetontwerpbijnaaltijdgebruikgemaaktvaneenFunctioneel eneenTechnischontwerp.InhetTechnischontwerpwordtbepaaldhoedesoftwaregemaaktgaatworden.Welke techniekenwordengekozen?Hoeenwaarwordendedataopgeslagen?Hoewordengegevensverwerkt?Het Technischontwerpisnietbedoeldvoordeklantenhoeftdanookniet‘eenvoudig’tezijnintaalgebruik.Inhet Technischontwerpstaatvaktaal.
Leerdoelen
• Jekunteenactiviteitendiagrammaken.
• Jekunteensequentiediagrammaken.
• Jekunteenrelationeeldatamodelmaken.
• Jekunteentechnischontwerpopstellen.
Opdracht1 OriëntatieopdrachtTechnischontwerp
Dezeopdrachtmaakjeineengroepjevandrieofvierstudenten.
Maakeentechnischontwerpvooreenroodkleurpotlood.Ditontwerpmoetzovolledigzijndathetpotlooddirect inproductiekanwordengenomen.Hetpotloodmoetkunnenwordenvoorzienvanmerknaamoflogovande klantomzotedienenalspromotiemateriaal.
Presenteerjeontwerpaanderestvandegroepenbespreekmogelijkeaanpassingen.
5.1 Technischontwerp
Wanneerdefunctionaliteiteninkaartzijngebrachtengoedzijnbevondendoordeprojectgroepen/ofstuurgroep, kunnenookdetechnischerandvoorwaardeninkaartwordengebracht.DatdoenwedoormiddelvaneenTechnisch ontwerp.Hettechnisch-ontwerp-rapportishetoverdrachtsdocumentvoordeprogrammeursdiedeapplicaties gaanrealiseren.
BijhetTechnischontwerpwordtbepaaldhoewedesoftwaregaanmaken.
• Welketechniekenkiezenwe?
• Waarwordendedataopgeslagen?
• Hoewordeningevoerdegegevensverwerkt?
Daarnaastmoetrekeningwordengehoudenmetzakenals:
• dehoeveelheidgegevens;
• toegankelijkheidvandegegevens(gegevensvanexternebronnen);
• detoegangssnelheid/deresponsetijden;
• deverwerkingssnelheid;
• deonderhoudbaarheid.
DevolgenderandvoorwaardenmoetenwordenvastgelegdinhetTechnischontwerp:
• beveiligingvandewebsite;
• deontwikkelomgeving/programmeertalen;
• randvoorwaardenvoordekoppelingaandebestaandesystemen;
CONCEPT
• destructuurvandegehanteerdedatabasesmetdebeschrijvingvandedatabasevelden;
• detechnischeinfrastructuur.
OmditallesgoeduittevoerenkanjedeUML-diagrammenactiviteitendiagramensequentiediagramgebruiken dieindithoofdstukwordenbehandeld.
5.2 Activiteitendiagram(activitydiagram)
Omdetechnischeinfrastructuurduidelijkinbeeldtekunnenbrengenkangebruikwordengemaaktvaneen activiteitendiagram Ditiseenflowchartdiedeopvolgingvanactiesweergeeft.Eenactiviteitendiagramkomt uitdewereldvansoftware-ontwikkelingenhelptomeensysteemtevisualiserenenhierovertecommuniceren metanderen.
Jekunteenuserstoryomzettenineenactiviteitendiagram.Elkestapiseenactiviteitinhetproces.

Figuur 5.1 Activiteitendiagram
CONCEPT
Hetactiviteitendiagramlaatdetoestandenvanhetsysteemziengedurendehetgebruikervanenlaatookzien hoedeverschillendetoestandeninelkaaroverlopen.
Symbolenineenactiviteitendiagram
Swimlane(zwembaan)waarinvooreenbepaaldeactordeactiviteitenzijnweergegeven:
elkactiviteitendiagramheefteenstartpunt start deactiviteitdieopdatmomentwordtuitgevoerd(doordebetreffendeactor) activity eenkeuzediebeantwoordwordtmeteenjaofnee decision balkwaarindestromennaeenbeslissingsamenkomen merge voorparallelleverwerking fork samenkomstvanparallelleverwerking join elkactiviteitendiagramheefteeneindpunt end
Deactiviteitenwordenmetelkaarverbondendoorpijlen(transitie).
Hetmakenvaneenactiviteitendiagramdoejeopdevolgendemanier:
• Bepaalwelkegedetailleerdeusecasejewiltuitwerken.
• Tekeneenswimlanevoorelkvandeactorenengeefelkeswimlanedenaamvandeactor.
• Tekenvoorelkeinteractietussendeactorenenhetsysteemdeactiviteitindeswimlanevandegenediede activiteituitvoert.
• Plaatsdecision,merge,forkenjoins.
• Tekendetransitie(pijlen)tussenalleelementen.
Voorbeeldwebshop
Wegebruikenweerhetvoorbeeldvandewebshop.
Hetkopenvaneenartikelineenwebshopzouerzouitkunnenzien:
a.Kiesartikel.
b.Geefspecificatiesop(maat,kleurenzovoort).
c.Kiesaantal.
d.Kiestoevoegenwinkelwagen.

CONCEPT
Figuur 5.2 Activiteitendiagram webshop
Demogelijkheidbestaatdatervaneenbepaaldartikelonvoldoendeopvoorraadis.Indatgevalzaldeklanteen anderaantalmoetenkiezen.Dewinkelwagenmoetdanaangeven:Kiesanderaantal.
Heteerderbesprokenuse-case-diagramendedaarbijbesprokenusecasestaanhiernogeenkeerafgebeeld.
Hetuse-case-diagramzieteralsvolgtuit:

Figuur 5.3 Use-case-diagram webshop
DeusecaseArtikeltoevoegen–Winkelwagenzieteralsvolgtuit:
Artikeltoevoegen–Winkelwagen
CONCEPT
Versie
Actor
Preconditie
Scenario
Uitzonderingen
Niet-functioneleeisen
Postconditie
Klant
Webshopisonline
17.Klantkiestartikel
a.Kiesartikel
b.Geefspecificatiesop(maat,kleurenzovoort)
c.Kiesaantal
d.Kiestoevoegenwinkelwagen
18.Klantkiestartikelwaarvanonvoldoendeinvoorraadis
a.Kiesartikel
b.Geefspecificatiesop(maat,kleurenzovoort)
c.Kiesaantal
d.Kiestoevoegenwinkelwagen
e.Systeemmeldtonvoldoendevoorraad,kiesaantal
f.Scenariovanafc
Eentransactiemoetookopeensmartphonezijnuittevoeren
Klantheeftzijnbestellinggeplaatstenkanovergaantotafrekenen
Hetbijbehorendeactiviteitendiagramzieterdanalsvolgtuit:

Figuur 5.4 Activiteitendiagram artikel toevoegen
Erishiersprakevaneenbeslissing:‘Iservoldoendevoorraadja/nee’.Ineendergelijkgevalgebruikenwehet decision-symbool.Ditsymboolkentééningangentweeuitgangen:eenJAeneenNEE.
CONCEPT

Figuur 5.5 Decision-symbool in verschillende vormen
Detransitiekanookwordengesplitstintwee(ofmeerstromen)dooreenfork.Ineendergelijkgevalzalde verwerkingintweeswimlanesnaastelkaarplaatsvinden.

Figuur 5.6 Swimlanes
DeuitslagverwerkingvantennisverenigingTopSpinkanerdanzouitzien:

5.7 Uitslagverwerking van tennisvereniging
Voorbeeldbestellingmetparallelleverwerking:

CONCEPT
Figuur TopSpinOpdracht2 Activiteitendiagram
RaadpleegzonodigdetheorieoverdeActiviteitendiagram.
a. Maakeenactiviteitendiagramvoordevolgendesituatie.
Om7.00uurstapikindeautoenrijdiknaarmijnwerk.Alsikweinigfilehebonderweg,dankomikoptijd.Ik neemeenkopkoffieindekantineenneemeentweedekopmeenaarmijnbureau.Alsiklaatarriveer,neem ikalleeneenkopkoffiemeenaarmijnbureau.
b. Maakeenactiviteitendiagramvoordevolgendesituatie.
Om7.00uurstapikindeautoenrijdnaarmijnwerk,tenzijmijnautonietstart,danneemikdetreinenben iklaatopmijnwerk.Alsikmetdeautogaenikhebweinigfileonderweg,dankomikoptijd.Ikneemeenkop koffieindekantineenneemeentweedekopmeenaarmijnbureau.Wanneeriklaatarriveerneemikalleen eenkopkoffiemeenaarmijnbureau.
c. Maakeenactiviteitendiagramvoordevolgendesituatie.
Erkomteennieuwecliëntbijhetgezondheidscentrum.Dezelaatzichregistrerendoordebaliemedewerker inhetpatiëntvolgsysteem(PVS).Hiervoorverstrektdecliëntdenodigegegevens.Nadatdebaliemedewerker dezeheeftingevoerd,wordenzedoordecliëntgecontroleerdenslaatdebaliemedewerkerdegegevensop inhetPVS.
Vervolgensmeldtdecliëntzichbijdebehandelaarenmaaktzichkenbaar.Debehandelaarvraagtdegegevens vandebetreffendecliëntopuithetPVSenbespreektdebehandelingmetdecliënt.Nabehandelinglegtde behandelaardebehandelgegevensvastinhetPVS.Eenkopievandevastgelegdebehandelgegevensinclusief defactuurwordenviademailservernaardecliëntgestuurd.Eenanderekopievandevastgelegde behandelgegevensinclusiefdefactuurgaannaardezorgverzekeraarvandecliënt.Dezorgverzekeraarbetaalt defactuur.Definancieelmedewerkervanhetzorgcentrumverwerktdebetalingsgegevensindefinanciële modulevanhetPVS.
CONCEPT
d. Maakeenactiviteitendiagramvoordevolgendesituatie.
Degegevensvaneencliëntbijhetgezondheidscentrumkomen,alsdecliëntdatgoedkeurt,ineencentrale databasemetmedischegegevens(database-PVS).Debedoelingvandezedatabaseisdatdeverschillende medischspecialistenbijdegegevenskunnenenopdezemanieradequaatkunnenhandelen. Wanneereenpatiëntzichmeldt,danlogtdespecialistinophetPVS.Despecialistgeeftde‘patientkey’op. DePVS-applicatiehaaltdegegevensopuitdedatabaseendanzijnertweemogelijkheden:erzijnwelofgeen patiëntgegevens.
Alsergeenpatiëntgegevenszijn,vraagtdespecialistaandecliënttoestemmingomeennieuwaccountaan temakenindePVS-database.DePVS-applicatiezaldanindedatabasenieuwerecordsaanmaken.Deze wordenophetschermgetoondendecliëntmoetaangevenofallesklopt.Alsdathetgevalis,zaldespecialist viadePVS-applicatiederecordsactiefmaken.
e. Maakeenactiviteitendiagramvoordevolgendesituatie.
Degegevensvaneencliëntbijhetgezondheidscentrumkomen,alsdecliëntdatgoedkeurt,ineencentrale databasemetmedischegegevens(PVS-database).DebedoelingvandezePVS-databaseisdatdeverschillende medischspecialistenbijdegegevenskunnenenopdezemanieradequaatkunnenhandelen.
Wanneereenpatiëntzichmeldt,logtdespecialistinophetsysteem.Despecialistgeeftdepatientkeyop.De PVS-applicatiehaaltdegegevensopuitdePVS-databaseendanzijnertweemogelijkheden:welofgeen
patiëntgegevens.
Alserwelpatiëntgegevenszijnkandespecialistdezeophalen,zijnbevindingentoevoegenendezegegevens aandePVS-databasetoevoegen.
f. Ontwerpeenactiviteitendiagramvoorhetindienenvaneenaangiftebijdepolitie.
Procedure
Aandehandvanuwaangiftewordtgekekenofervoldoendeaanknopingspuntenzijnomeenonderzoekin testellen.Alseronvoldoendeaanknopingspuntenzijn,zaldeaangiftewordenopgeslageninonzeadministratie. Dithoeftniettebetekenendatervanafdatmomentnooitmeernaaruwzaakwordtomgekeken.Alserlater bijvoorbeeldeenverbandlijkttezijntussenuwzaakeneenanderezaak,wordtuwaangifteweerinbehandeling genomen.Hiervankrijgtudanbericht.
Mochtenermeteenvoldoendeaanknopingspuntenzijn,danwordteenafweginggemaaktoverdeernstvan hetstrafbarefeitomdezaakverderteonderzoeken.Alsdeaangiftenietverderwordtbehandeld,wordtu daaroveringelicht.Bentuhethiernietmeeeens,dankuntueenbriefschrijvenaandeofficiervanjustitie waarinuaangeeftwaaromuhetnieteensbentmetdegenomenbeslissing.DemedewerkersvanhetBureau Slachtofferhulpkunnenueventueeldaarmeehelpen.Dezaakwordtdoorofnamensdeofficiervanjustitie overwogenenukrijgtdaarvanbericht.
Alsuwaangiftewelwordtonderzocht,kanhetenigetijddurenvoordaterresultatenbekendzijn.Alsubijuw aangiftehebtaangegevendatuopdehoogtewiltwordengehoudenvanhetverloopvandezaak,krijgtu berichtalseréénofmeerdereverdachtenzijnaangehoudenenereenproces-verbaalisopgemaakt.Dit proces-verbaalwordtdoordepolitievoorgelegdaandeofficiervanjustitie.Dezebeslistofdeverdachtewel ofnietwordtvervolgd.Hijkanbesluitenomniettevervolgen(seponeren),deverdachteeenschikking(boete) aantebiedenofdezaakvoorderechtertebrengen.Bijdezittingvandestrafrechtervraagthijomdeverdachte eenbepaaldestrafopteleggen.Inhetgevaldatuaangafschadevergoedingtewensen,zalookdeofficiervan justitieproberenuwschadevergoedtekrijgen.Ookdeofficiervanjustitiezalu,alsudataangegevenheeft, informerenoverhetverloopvanuwzaak.
5.3 Sequentiediagram(sequencediagram)
CONCEPT
Hetsequentiediagramisnetalshetactiviteitendiagrameenstroomdiagram.Eensequentiediagramlaatzienhoe interactietussenonderdelenvanhetsysteemindetijdverlopen.Debasisinformatievoorhetmakenvaneen sequentiediagramkomtuitdeusecase.Eenvoorbeeldvandewerkingvaneensnoepautomaatzouerzouit kunnenzien.Bijnaaltijdbestaateensequentiediagramuitéénactorenéénofmeersysteemonderdelen.
Voorbeeldsnoepautomaat
Hetvolgendevoorbeeldlaatzienhoedeinteractietusseneensnoepautomaateneenklantverloopt.

Figuur 5.9 Sequentiediagram snoepautomaat en klant
CONCEPT

Figuur 5.10
Bijhetopzettenvaneensequentiediagramwordendeactorendesysteemonderdelenmeestalaandebovenkant vanhetdiagram,naastelkaar,gezet.Detijdlooptdanvanbovennaarbeneden.Vanelkeactorofelkobjectwordt eenlijngetrokkenvanbovennaarbeneden,de‘lifeline’.Demeestetoolslatendelifelineactiefofinactiefworden ophetaangegevenmoment,meestaldoorhembredertetekenen.
Hetisgebruikelijkommetdeactorvanhetprocestebeginnen,diewordtmeestallinksgeplaatst.Vervolgens wordende messages geplaatst,conformhetverloopindetijd.Demessageisdeboodschapdiewordtgegeven aaneenandereactorofobject.Hetantwoord,eenreturnmessage,wordtmeteenstippellijngetekend.
Voorbeeldaanmeldprocedure
Onderstaandeenvoorbeeldvaneensequentiediagramvooreenaanmeldprocedure.
Wewilleneenaanmeldproceduredieaandevolgendeeisenvoldoet:
• Ermoeteenuniekegebruikersnaamzijn.
• Ermoeteenveiligwachtwoordzijnenhetwachtwoordmoettweekeerwordenopgegevenomschrijffouten tevoorkomen.
• Ermoeteencontrolevraagkomenmeteendaarbijbehorendantwoordzodateenvergetenwachtwoordkan wordengemaildnaareenopgegevene-mailadres.
CONCEPT

Figuur 5.11 Sequentiediagram aanmeldprocedure
Inbovenstaandvoorbeeldisersprakenvantweeiteraties.Datwordtaangegevendooreenkader.Inditkader wordtdevoorwaardevandeiteratiegeplaatst.
Opdracht3 Sequentiediagram
Raadpleegzonodigdetheorieoverhetsequentiediagram.
a. Maakeensequentiediagramvooreeninlogprocedure.
Inlogprocedure
• Gebruikersnaamenwachtwoordwordengevraagd.Wanneerdriemaaleenfoutwachtwoordwordt opgegeven,wordthetaccountgeblokkeerd.
• Wanneeriemandzijnwachtwoordisvergeten,kanditwordenaangegeven.Dezepersoonkrijgtdaneen nieuwwachtwoord.Hetgaathieromeentijdelijkwachtwoord(Wachtwoord12345)datbijdeeersteinlog moetwordenvervangen.
• Hetmoeteenveiligwachtwoordzijn.Hetwachtwoordmoettweekeerwordenopgegevenomschrijffouten tevoorkomen.
b. Maakeensequentiediagramvoordevolgendeusecase.
Naam
Versie
Actor
Preconditie
Scenario
Nieuwboekinbibliotheek
1.0
Bibliothecaris
Gegevensvanboekenzijnreedsaanweziginsysteem
Debibliothecarismoetregisterendateenbepaaldebestellingisontvangenendater eennieuwexemplaarvaneenboekistoegevoegdaanhetaanbodvandebibliotheek. Degegevensvanboekendiezijnbesteldzijnalaanweziginhetsysteem.
• Ontvangstvanboek,inclusiefontvangstbewijsmetvermeldingvanbestelcode
• Registratievaneennieuwexemplaarvaneenbestaandboekaandehandvanhet ISBNvanhetboek;hetnieuwgekozenexemplaarnummerwordteveneensingevoerd
• Systeempastdatabaseaan
• Printerdruktstickerafmetplaatskenmerk
• Fysiekboekexemplaarvoorzienvanstickerdoorbibliothecaris
c. Maakeensequentiediagramvoordevolgendeusecase.
Naam
Versie
Actor
CONCEPT
Uitschrijvingbekeuring
1.0
Politieagent
Preconditie
Scenario
Debestuurderbestaat
Depolitieagentbestaat
• Depolitieagentgeeftzijncodeenhetrijbewijsnummervandebestuurderop
• Depolitieagentgeeftderedenvandebekeuringop
• Systeemverwerktboeteindatabase
• Printerdruktboeteaf
• Agentkrijgtuitgeschrevenboeteenoverhandigtdieaandebe-stuurder
5.4 Relationeeldatamodel
Eendatabase,gegevensbankofdatabankiseendigitaalopgeslagenarchief.Degegevenszijnopgeslagenopeen dusdanigemanierdatflexibelraadplegenengebruikeenvoudigis.Databasesspeleneenbelangrijkerolbijhet archiverenenactueelhoudenvangegevens.Zezijneenessentieelonderdeelvandeinformatiemaatschappij, steedsmeergegevenswordenineendatabaseopgeslagen.Hetfunctionerenvandeoverheid,financiële instellingen,bedrijvenenwetenschapistegenwoordigzonderdatabasesondenkbaar.
Steedsmeergegevenswordenookviainternetbereikbaargemaakt.Zowelcommercieelalsindewetenschap wordendatabasesveelgebruikt.Indewetenschapgebeurtdatommeetgegevensofexperimentelegegevensin
opteslaan.Commercieelgaathetvaakomklant-enbetalingsgegevens.
‘AWorldofInternetofThings’iseennieuwerealiteitdiehetvergarenenbeherenvangegevensnogintenser maakt.Devolgendeclipgeefteenideevanwaarwevolgensfuturistenkunnenzijnin2050.
Bekijkdevideo The World In 2050 inBoomDigitaal.
Databaseswordensteedsbelangrijker.EengoededatabasemoetaandevolgendeminimaleCRUD-eisenvoldoen omalszodanigtewordengezien:
• Create:gegevensmoeteneenvoudigduurzaamkunnenwordenopgeslagen.
• Read:gegevensmoeteneenvoudigkunnenwordenopgezochtendoorzocht.
• Update:gegevensmoetenonderhoudenkunnenworden.
• Delete:gegevensmoetenverwijderdkunnenwordenzonderdatditdewerkingvanhetsysteemnadelig beïnvloedt.
Metanderewoorden: de database moet integer zijn Datwilzeggendat:
• gegevensnietdubbelmogenwordenopgeslagen(redundant);
• desamenhangofrelatiemetanderegegevensmoetkloppen(consistent).
Relationeledatabase
Eenrelationeledatabaseiseendatabasedieisopgebouwdvolgenseenrelationeelmodel.Degegevensworden opgeslagenintabellenwaarinderijendesoortgelijkegroepeninformatie(derecords)vormenendekolommen deinformatiedievoorelkrecordmoetwordenopgeslagen.
Alsvoorbeeldgebruikenwedeinkoopvaneenelektronicawinkel.
CONCEPT

Figuur 5.12 Relationele database elektronicawinkel
Verschillendetabellenkunnenmetelkaarwordenverbondendooreenkolomtoetevoegenwaarineenverwijzing naareenrecordineenanderetabelwordtopgenomen.

Figuur 5.13 Relationele database elektronicawinkel met verwijzingen
Wanneerdegegevensineenrelationeledatabasegoedgestructureerdzijn,wordtduplicatievangegevenstot eenminimumbeperktenfoutenindegegevensverwerkingwordenvoorkomen.
Normaliseren
Waaromnormaliseren?
Eendatabaseiseenverzamelinggegevens.Zonderstructuurishetnietmeerdaneenopeenhopingvandata. Zonderstructuurzalhetbijnazekerzozijndatdezelfdegegevensmeerderekerenindedatabaseopgenomen zijn.Hierdoorzullenfoutenontstaantijdensinvoegen,updatenofverwijderenvangegevens.Dedatabaseisdan niet integer.Datisnietwatwewillen.Hetkanookwordenvoorkomendoorrelatiesindedatabaseaantebrengen enervoortezorgendatgegevensnietredundant,maareenmaligwordenopgenomen.Eendatabasegoed ontwerpendoenweviaeennormalisatieproces.
Attributenenentiteiten
Ineendatabasegebruikenweeenaantalbenamingenvoordeverschillendeonderdelen.Ommetberoepsgenoten opgelijkniveautekunnensprekenishetbelangrijkdatjijdietermenookbegrijptengebruikt.Redundanten consistentzijnnetallangsgekomen.Eenobjectwordtbeschrevendoorzijnkenmerken.Eenmeszouuitde volgendekenmerkenkunnenbestaan:
Merk:Sola
Type:Broodmes
Lemmetlengte:32cm
CONCEPT
Attribuutenattribuuttype
• Merkishetattribuuttype
• Solaishetattribuut.
Entiteitenenentiteittype
• Degroep:Merk,TypeenLemmetlengtenoemenwehetentiteittype.
• Sola,Broodmes,32cmzijndeentiteiten.

5.14
Primaireenexternesleutels
Verschillendeentiteiten(tabellen)kunneneenrelatiemetelkaarhebben.Dezerelatiewordtviaeensleutel aangegeven.Omelkeentiteittekunnenaanwijzeniseenprimairesleutelnodig.Elkeentiteitheeftprecieséén primairesleutel.Eenprimairesleutelkanbestaanuiteenspeciaalattribuut,hetsleutelattribuut,ofuiteen verzamelingsleutelattributen.Kijkenwenaarderelatietussendeapparatuurendeleverancierdanziejedatde leveranciercodePHinhetArtikeloverzichttweekeervoorkomt.InhetleveranciersoverzichtisPHechteruniek.
InhetleveranciersoverzichtisdeCodeeenprimairesleutel.DeLev_codeinhetartikeloverzichtwijstnaarde sleutelinhetleveranciersoverzichtenwordtexternesleutelgenoemd.

Figuur 5.15 Relationele database elektronicawinkel met verwijzingen
Eenexternesleuteliseenattribuutuiteenentiteitdiezelfnieteensleutelattribuutis,maarwelverwijstnaareen sleutelattribuutineenandereentiteit.Eenexternesleutelkoppeltdusalleenentiteitenaanelkaar.

Figuur 5.16 Primaire en externe sleutels
CONCEPT
Eenexternesleutelwordtookwelvreemdesleutelofforeignkeygenoemd.HetveldLev_codeindetabelArtikel wijstnaardeprimairesleutelindetabelLeverancierenheetdaaromexternesleutel.
NormaliserenvolgensCodd
EdgarF.Coddkwamin1970meteenmethodeomrelationeledatabasesteontwerpen.DemethodevanCodd voorhetnormaliserenvangegevensiseenstandaardgeworden.Demethodebestaatuiteenvoorbereidende fase,dezogenaamde‘nuldenormaalvorm’,endriestappenomuiteindelijktotde‘derdenormaalvorm’tekomen. Samengevatzijndevolgendenormaalvormenteonderscheiden:
• Nuldenormaalvorm(0NV):inventariseerdeattributen.
• Eerstenormaalvorm(1NV):splitsrepeterendegroepaf.
• Tweedenormaalvorm(2NV):splitsgroepenmetgedeeltelijkafhankelijkeattributenaf.
• Derdenormaalvorm(3NV):splitsdegroepenmetonafhankelijkeattributenaf.
Aandehandvaneenvoorbeeldvoordeinschrijvingopeencursusdooreencursistnemenwedestappendoor.

Figuur 5.17 Voorbeeld inschrijving cursist
Ditformuliergeeftdeinformatiediewemoetenontleden.
Nuldenormaalvorm(0NV)
Denuldenormaalvormkrijgjedooralleattributenopteschrijven(inventariseren)dieuitdeanalysevande informatiebehoeftekomt.Detenemenstappenzijn:
• Inventariseerallemogelijkeattribuuttypen.
• Bepaaldeconstantenenprocesgegevens,streepdeprocesgegevensweg.
• Geefaanhetentiteittypeeenbetekenisvollenaam.
• Bepaalhetsleutelattribuut.
• Bepaalofereenrepeterendegroepvoorkomt.
CONCEPT

Figuur 5.18 Inschrijving cursist
(ATVsch701) (14FEB16)
STUDENTNR
Naam
Adres
Woonplaats
CURSUSCODE
CURSUSNAAM
STARTDATUM
GEBOUW
LOCATIE
GEBOUWNAAM
Bepaaldeconstantenenprocesgegevens,streepdeprocesgegevensweg
Indebovenstaandelijstzijn(ATVsch701)en(14FEB16)tussenkaakjesgeplaatst.Deschoolcodezalvoorgedrukt zijnophetformulierennietindedatabasestaan.Dedatumzaldoorhetsysteemwordengegenereerdenisin diehoedanigheideenprocesgegeven.Dezegegevensdoenverderooknietmeermee.
Geef aan het entiteittype een betekenisvolle naam
HetgaatomeenStudentmetzijninschrijvingvoorcursussen.DenaamStudentligtvoordehand.

Figuur 5.19 Inschrijving student
Bepaal het sleutelattribuut
Hetsleutelattribuutmaakteenentiteituniek.Hetgegevendatditformulieruniekmaaktindestapelformulieren ishetstudentnummer.DaaromishetStudentnraangeduidalssleuteldoorhetteonderstrepen.
Bepaal of er een repeterende groep voorkomt
CONCEPT
WeziendatstudentVanRheenenmeerderecursussenvolgt.Dezestartenopverschillendedageninverschillende gebouwen.DeAttribuuttypenCURSUSCODE,CURSUSNAAM,STARTDATUM,GEBOUW,LOCATIEenGEBOUWNAAM wordenbijherhalinggebruikt.Daaromnoemenwediteenrepeterendegroep.Dieduidenweaandoorhemte lateninspringen.
Denuldenormaalvormzieterdanalsvolgtuit:

Figuur 5.20 Nulde normaalvorm inschrijving student
Eerstenormaalvorm(1NV)
Detenemenstappenzijn:
• Bepaalofdeattribuuttypennogverderopgesplitstmoetenworden.
• Splitsderepeterendegroepaf.
• Geefaanhetafgesplitsteentiteittypeeenbetekenisvollenaam.
• Maakvandesleuteleenuniekesleutel.
Bepaal of de attribuuttypen nog verder opgesplitst moeten worden
Alswenaardenuldenormaalvormkijken,zoudenwedeattribuuttypenadres,woonplaatsendatumnogkunnen splitseninadres+huisnummer,postcode+woonplaatsendag+maand+jaar.Ishetnuttigomdezeattribuuttypen verdertesplitsenomdatwedeverschillendeonderdelengaangebruiken?Zoja,dankunnenwehetattribuuttype verderopdelen.
Inonsinschrijvingsformulierleverthetverdersplitsenvandezeattribuuttypengeenvoordeelop.Daaromlaten wezestaanzoalszezijn.
Splits de repeterende groep af
Wesplitsenderepeterendegroepafineeneigenentiteittype.Omdatindeoorspronkelijkeentiteitdesleutel doorhetsleutelattribuutStudentnrbepaaldwordt,nemenwedezeover.Denieuweentiteitisopdezemanier gekoppeldaandeeerste.Hiermeeverzekerenwedeintegriteitvandedatabase.Allegegevenszijndoorde koppelingnogsteedstebereiken.

CONCEPT
Figuur 5.21 Repeterende groep afgesplitst
Geef aan het entiteittype een betekenisvolle naam
Webedenkenvoordezerepeterendegroepeengoedenaam.Omdathetdegegevensbevatdieoverdetevolgen cursussengaangevenwedezeentiteitdenaamOpleiding.

Figuur 5.22 Goede naam voor repeterende groep
Maak van de sleutel een unieke sleutel
Deovergenomensleuteluitdeeersteentiteitisnietvoldoendeomalsprimairesleuteltedienen.Eenstudent kanimmersmeerderecursussenvolgen.Indatgevalzalbijelkecursushetzelfdestudentnummerstaaneniser geensprakemeervaneenuniekesleutel.
Deprimairesleutelzaleensamengesteldesleutelmoetenzijndiebestaatuitmeerdereattribuuttypen.Wekiezen hetattribuuttypeCursuscodealstweedesleutelattribuut.Dezegeeftsamenmethetstudentnummerunieke attribuutwaarden.Weonderstrependezedanook.
Deeerstenormaalvormzieterdanalsvolgtuit:

Figuur 5.23 Eerste normaalvorm
Tweedenormaalvorm(2NV)
Detenemenstappen:
• Bepaalhetattribuuttypedatmaarvooreendeelvandesleutelafhangt.
• Splitshetattribuuttypeafineeneigenentiteittypemetsleutel.
• Geefhetentiteittypeeenbetekenisvollenaam.
Bepaal het attribuuttype dat maar voor een deel van de sleutel afhangt
CONCEPT
Binnendeeerstenormaalvormkunnenattribuuttypenzittendiemaaraaneendeelvande(primaire)sleutel gekoppeldzijn.Dezegroepenzijndusnietuniekbepaalddoordegekozencombinatievansleutelattributen.Zo ishetattribuuttypeCursusnaamnietafhankelijkvanStudentnrmaarwelweervanhetsleutelattribuutCursuscode. HetattribuuttypeCursuscodeenCursusnaamvormenhiermeeeenapartentiteittype.
Splits de attributen af in een eigen entiteit
DeattribuuttypenCursuscodeenCursusnaamvormeneeneigenentiteittype.HetsleutelattribuutCursuscode datindeoorspronkelijkeentiteitgeenprimairesleutelwas,isdatindenieuwewel.Omdekoppelingmethet oorspronkelijkeentiteittypetebehouden,latenweeenkopievanhetsleutelattribuuttypeCursuscodeachter.

Figuur 5.24 Eerste normaalvorm met kopie van sleutelattribuut
Geef het entiteittype een betekenisvolle naam
WegevendezenieuweentiteitookdebetekenisvollenaamCursus.Detweedenormaalvormzieterdanalsvolgt uit:

Figuur 5.25 Tweede normaalvorm
Derdenormaalvorm(3NV)
Detenemenstappenzijn:
• Bepaaldeattribuuttypendienietafhankelijkzijnvaneensleutelattribuuttype.
• Splitshetattribuuttypeafineeneigenentiteittype.
• Bepaalhetsleutelattribuut.
• Geefaanhetentiteittypeeenbetekenisvollenaam.
• Geefdeexternesleutelaan.
Bepaal de attribuuttypen die niet afhankelijk zijn van een sleutelattribuuttype
CONCEPT
Erkunnenattribuuttypenbestaandienietafhankelijkzijnvaneensleutelattribuuttypemaarvananderegewone attribuuttypen.ZozijninonsvoorbeelddeattribuuttypenGebouw,GebouwnaamenLocatienietafhankelijkvan StudentnrofCursuscode.Dezevormendaarmeeeenafzonderlijkentiteittype.

Figuur 5.26 Tweede normaalvorm met afzonderlijk entiteittype
Blok5 Technischontwerp
Splits de attribuuttypen af in een eigen entiteittype
Dezeonafhankelijkeattributenwordenafgesplitstineeneigenentiteit.

Figuur 5.27 Afzonderlijk entiteittype als afgesplitste entiteiten
Bepaal het sleutelattribuuttype
Alswenaardeattributenenhunattribuutwaardenkijken,danishetattribuutGebouwuniek.Ditkunnenwe gebruikenalsprimairesleutelindenieuweentiteit.

Figuur 5.28 Primaire sleutel in nieuwe entiteit
Geef aan het entiteittype een betekenisvolle naam
Ooknumoetenweeenbetekenisvollenaambedenkenvoorhetnieuweentiteittype.Omdathierbijgehouden wordtinwelkgebouwdecursusplaatsvindtgevenwehetentiteittypedenaamLesgebouw.
CONCEPT

Figuur 5.29 Betekenisvolle naam nieuwe entiteittype
Geef de externe sleutel aan
DekoppelingtussenhetoorspronkelijkeentiteittypeendenieuwelooptviahetattribuuttypeGebouw.Maarhet attribuuttypeGebouwisindezeentiteitgeensleutelattribuut.Omdekoppelingaantegevenmakenwevan Gebouweenexternesleutel.Dezegevenweaandoorhetattribuuttypeteonderstrepenmeteenstippellijn.

Figuur 5.30 Gedeelde sleutel
Dederdenormaalvormzieterdanalsvolgtuit:

Figuur 5.31 Derde normaalvorm
Diagrammen
IneenstrokendiagrameneenBachman-diagrambeschrijfjederelatiestussendeentiteittypenopeengrafische manier.Wekennendevolgenderelaties:
CONCEPT

Figuur 5.32 Relaties op een grafische manier
Derelatieséén-op-veelenveel-op-éénzijnspiegelbeeldenvanelkaar.
Strokendiagram
Ineenstrokendiagramwordendeverschillenderelatiesmetpijlengrafischaangegeven:

Figuur 5.33 Relaties in een strokendiagram - 1
Of:
CONCEPT

Figuur 5.34 Relaties in een strokendiagram - 2
• Eénstudentkanvelecursussenvolgen.
• Elkecursusheeftmaarééncursuscode,maarerkunnenvelecursussenzijn.
• Opeencursuskunnenmeerderestudenteninschrijven.
• Erzijnvelegebouwenwaarinkanwordenlesgegeven,maarslechtsééngebouwwaarjeeenbepaaldecursus kuntvolgen.
HetBachman-diagramofEntity-relationshipdiagram(ERD)
IneenBachman-diagramwordenderelatiestussendeentiteittypenweergegeven.Vanhetvoorbeeldvande normalisatievanhetcursusformulierkunjehetvolgendeBachman-diagrammaken:

Figuur 5.35 Bachman-diagram
• Eénstudentkanvelecursussenvolgen.
• Elkecursusheeftmaarééncursuscode,maarerkunnenvelecursussenzijn.
• Opeencursuskunnenmeerderestudenteninschrijven.
• Erzijnvelegebouwenwaarinkanwordenlesgegeven,maarslechtsééngebouwwaarjeeenbepaaldecursus kuntvolgen.
Opdracht4 Normaalvormen,strokendiagramenERD
CONCEPT
RaadpleegzonodigdetheorieoverhetRelationeeldatamodel.

a. BepaaldeeerstenormaalvormvolgensdemethodevanCodd.
b. BepaaldetweedenormaalvormvolgensdemethodevanCodd.
c. BepaaldederdenormaalvormvolgensdemethodevanCodd.
d. Tekenhetstrokendiagram.
e. TekenhetERD.
Opdracht5 Normaalvormen,strokendiagramenERD

CONCEPT
a. BepaaldeeerstenormaalvormvolgensdemethodevanCodd.
b. BepaaldetweedenormaalvormvolgensdemethodevanCodd.
c. BepaaldederdenormaalvormvolgensdemethodevanCodd.
d. Tekenhetstrokendiagram.
e. TekenhetERD.
Opdracht6 Normaalvormen,strokendiagramenERD

a. BepaaldeeerstenormaalvormvolgensdemethodevanCodd.
b. BepaaldetweedenormaalvormvolgensdemethodevanCodd.
c. BepaaldederdenormaalvormvolgensdemethodevanCodd.
d. Tekenhetstrokendiagram.
e. TekenhetERD.
Opdracht7 Normaalvormen,strokendiagramenERD

a. BepaaldeeerstenormaalvormvolgensdemethodevanCodd.
CONCEPT
b. BepaaldetweedenormaalvormvolgensdemethodevanCodd.
c. BepaaldederdenormaalvormvolgensdemethodevanCodd.
d. Tekenhetstrokendiagram.
e. TekenhetERD.
Opdracht8 Normaalvormen,strokendiagramenERD

a. BepaaldeeerstenormaalvormvolgensdemethodevanCodd.
b. BepaaldetweedenormaalvormvolgensdemethodevanCodd.
c. BepaaldederdenormaalvormvolgensdemethodevanCodd.
d. Tekenhetstrokendiagram.
CONCEPT
e. TekenhetERD.
Opdracht9 Normaalvormen,strokendiagramenERD

a. BepaaldeeerstenormaalvormvolgensdemethodevanCodd.
b. BepaaldetweedenormaalvormvolgensdemethodevanCodd.
CONCEPT
c. BepaaldederdenormaalvormvolgensdemethodevanCodd.
d. Tekenhetstrokendiagram.
e. TekenhetERD.
Opdracht10 Normaalvormen,strokendiagramenERD

a. BepaaldeeerstenormaalvormvolgensdemethodevanCodd.
b. BepaaldetweedenormaalvormvolgensdemethodevanCodd.
c. BepaaldederdenormaalvormvolgensdemethodevanCodd.
CONCEPT
d. Tekenhetstrokendiagram.
e. TekenhetERD.
Opdracht11 Normaalvormen,strokendiagramenERD

a. BepaaldeeerstenormaalvormvolgensdemethodevanCodd.
b. BepaaldetweedenormaalvormvolgensdemethodevanCodd.
c. BepaaldederdenormaalvormvolgensdemethodevanCodd.
CONCEPT
d. Tekenhetstrokendiagram.
e. TekenhetERD.
Opdracht12 Normaalvormen,strokendiagramenERD

CONCEPT


a. BepaaldeeerstenormaalvormvolgensdemethodevanCodd.
b. BepaaldetweedenormaalvormvolgensdemethodevanCodd.
c. BepaaldederdenormaalvormvolgensdemethodevanCodd.
d. Tekenhetstrokendiagram.
e. TekenhetERD.
f. VoegdeERD’ssamenzodatallekledinginééntabelpast.
5.5 Technisch-ontwerp-rapport
Deindelingvanhettechnisch-ontwerp-rapportkaneralsvolgtuitzien:
Voorblad
Voorwoord
Inhoudsopgave
Samenvatting
Planvanaanpak
• Opteleverenproducten
• Planning Interfaces
Ontwikkelomgeving
• Technischeinfrastructuur
– Schema’s
– Database-ontwerp
• Ontwikkeltools
Beveiliging
• Autorisatie
CONCEPT
• Ongewenstgebruikvandeapplicatie
Beheer
• Back-up
• Content
Voorwoord
EenvoorwoordisineenTechnischontwerpalleennodigalsjedeprogrammeursnogeenaantalbelangrijkezaken meewiltgeven.Jezoubijvoorbeeldkunnenaangevenhoezejekunnenbereikenenopwelkemanierzeaan aanvullendeinformatiekunnenkomen.Isdatnietnodig,laatdanhetvoorwoordweg.
Inhoudsopgave
Deinhoudsopgavewordtzelfnietgenoemdindeinhoudsopgavemaarisweleenheelbelangrijkonderdeel.Elke tekstverwerkerkentdeoptieautomatischgenereren,natuurlijkgebruikjedie.
Samenvatting
Opbasisvaneen(management)samenvattingmoetdeprojectmanageren/ofopdrachtgeverbesluitenofhet projectkandoorgaan.Desamenvattingiscompactenbevatconcretefeitendiebelangrijkzijnvoorde besluitvorming.
Planvanaanpak
Op te leveren producten: hierkomteenopsommingvandemijlpaalproductenzoalsdieinhetprojectplanzijn genoemd.
Planning: deplanninguithetprojectplanwordteventueelbijgesteldopbasisvandelaatsteinzichtenenwordt hieropgenomen.
Interfaces
AlleschermendiejeinhetFunctioneelontwerphebtgedefinieerdwordenhiergedetailleerdbeschreven.
• Watdoendeknoppenalsjeeropklikt?
• Watmoeterwordengeregeldvoorhetschermwordtgeopend?
• Hoegrootzijndeschermendiewordengeopend?
• Welklettertypeenandereeigenschappenhebbenze?
Leteropdathethiergaatomeenoverdrachtnaardeprogrammeurs.Hierkomendiagrammenzoals klassendiagram,activiteitendiagramensequentiediagram.Ookandereschema’sendiagrammendieinzicht gevenindetechnischewerkingvandeapplicatiekunnenhierwordenopgenomen.
Ontwikkelomgeving
Technische infrastructuur
Infrastructuur: Deinfrastructuurwordtweergegevenindeeerderbehandeldeschema’s.Nietaltijdwordenalle onderdelenopgenomen.Datheeftmedetemakenmetdecomplexiteitvandeomgeving.EenERDopnemenals ergeensprakeisvandedatabaseisnietzinvol.
Sequentiediagram: Dittoontdeinteractiestussenobjectenindetijdsequentie.Sequentiediagrammenzijn gekoppeldaandeuse-case-diagrammenzoalsdieinhetFunctioneelontwerpzijnbeschreven.
Activiteitendiagrammen: Dezezijnbedoeldomdeworkflows(werkstromen)endegegevensstromeninrelatietot deactiviteitenduidelijkinbeeldtekrijgen.
CONCEPT
Klassendiagram: Ditgeeftdestructuurvaneensysteemweerdoordesysteemklassen,deattributen,de bewerkingen(ofmethoden)enderelatiestussendeobjectentetonen.Eenklassendiagramisdeconceptuele modelleringdiegebruiktwordtomdesysteemcodeoptezetten.
Entity-Relationship Diagram (ERD):Ditbeschrijfthetdatabasemodel.Eriseenbelangrijkerelatiemethet klassendiagram.Tochzijnerverschillen.ZobestaathetERDuitentiteittypen.Ditzijnzakendieeenbedrijfmoet onthoudenomdebedrijfsprocessengoeduittekunnenvoeren.HetERDzalbijderealisatieresulterenineen relationeledatabase.
User interface (gebruikersinterfaceofUI):Ditgaatmeestaloverdeinteractiestussenmensenmachine.Hetgaat eruiteindelijkomdemachineeffectieftelatenbedienenenwerken.Hetdoelvanhetontwerpvande gebruikersinterfaceisomeengebruikersinterfacetemakendiegemakkelijk,efficiëntenplezierig (gebruikersvriendelijk)isomtebedienen.
Ontwikkeltools
Hiergaathetomhetkoppelenenintegrerenvandewebsiteaandebestaandebedrijfsprocessen.
Beveiliging
DebeveiligingvaneenapplicatieiseenbelangrijkonderdeelvanhetTechnischontwerp.Vooreendeelzitdatin detoegepastecode,vooreenanderdeelingedrag.Beveiligingkomtopverschillendemanierenaandeorde.Er moetbeveiligdwordentegenongeoorloofdofonverantwoordelijkgebruikenbeveiligdtegenverlies.
Autorisatie
WiewatmagisalbeschreveninhetFunctioneelontwerp.Zomogelijkwordthierbeschrevenhoedatmoetworden afgedwongen.
Ongewenst gebruik van de applicatie
Jewilteenveiligeomgeving.Eenapplicatiekanopverschillendemanierengehacktworden,waarvande zogenaamdeSQL-injectiondemeestvoorkomendeis.Applicatiesdieinformatieineendatabaseopslaanmaken vaakgebruikvanSQLommetdedatabasetecommuniceren.SQL-injectionkangebeurenalsinvoervangebruikers oponvoldoendegecontroleerdewijzewordtverwerktineenSQL-statement.
Preventiekanbestaanuithetgevenvandeminimaalnoodzakelijkerechtenaandegebruiker.Verderishetafwijzen vanverkeerdeinvoervanbelang.DeinjectiemetSQL-codekaneenvoudigwordentegengegaandoorhetjuist verwerkenvaninformatiediedooreengebruikerwordtaangeleverd.Belangrijkisdathierwordtaangegeven hoedebeveiligingisgeregeld.
Beheer
Back-up
Omverliestegentegaanmoetdeback-upgoedzijngeregeld.Hierbeschrijfjewiewatwanneerdoet.Natuurlijk moetallesookdoorgaanalseriemandeenkeernietis.
Content
Hierbeschrijfjedoorwelkefunctionarisenopwelkemanierdecontentmoetwordenonderhouden.
CONCEPT
5.6 Begrippenlijst
Activitydiagram
EentypeUML-diagramdatdedynamischeaspectenvaneensysteemmodelliseert,metdenadrukopdeworkflow endestroomvanactiviteiten.Hettoontdestappenofactiesdiewordenuitgevoerdbinneneenprocesofsysteem, evenalsdebeslissingendietijdenshetproceswordengenomen.
Attribuut
Indecontextvandatabaseseninformatiesystemenverwijsthetbegripattribuut"naareeneigenschapofkenmerk vaneenentiteit."
Attribuuttype
Hetattribuuttypebepaaltwelksoortgegevensindatattribuutkanwordenopgeslagen.
Bachman-diagram
Eengrafischevoorstellingvaneendatabaseontwerp.
Consistent
Consistentzijnvangegevenswilzeggendatdesamenhangofrelatiemetanderegegevensklopt.
Databases
Programma'svoorhetwerkenmeteenverzamelinggegevens.
Externesleutel
OokwelForeignKey,eenkolomofeensetkolommenineentabeldieverwijzennaardeprimairesleutelvaneen anderetabel.Deexternesleutelfungeertalseenmechanismeomrelatiestussentabellentotstandtebrengen.
Integer
Inrelatietoteendatabasegaathetombetrouwbaarheidvandegegevens.Degegevensmogennietdubbelworden opgeslagenenelkaarniettegenspreken.
CONCEPT
InternetofThings
Eennetwerkvanslimmeapparatendiemetelkaarcommunicerenengegevensverzamelenendelenviainternet.
Lifeline
Ineensequentiediagramvertegenwoordigteenlifelinedelevensduurvaneenentiteit(meestaleenobjectofeen actor)gedurendeeenbepaaldeperiodevantijd.Eenlifelinewordtweergegevenalseenverticalelijndiedoorgaans vanbovennaarbenedendoorhetsequentiediagramloopt.
Normaliseren
Hetprocesvanhetoptimaliserenvandedatabasestructuuromredundantieteverminderenende gegevensintegriteitteverbeteren.
Primairesleutel
OokwelPrimaryKey,eenuniekeidentificatorvooreenrijineentabel.
Redundant
Hetverschijnselwaarindezelfdeinformatiemeerderekerenwordtopgeslagenineendatabase,dataset,of systeem.
Relationeledatabase
Eendatabasedieisopgebouwdvolgenseenrelationeelmodel.
SQL
StructuredQueryLanguage,eencodeomgegevensuiteendatabasetehalen.
SQL-injection
EenvormvanaanvalopdatabaseswaarbijeenaanvallerkwaadaardigeSQL-codeinvoegtindeinvoerveldenvan eenapplicatie.
Sequentiediagram
EentypeUML-diagramdatdeinteractiesencommunicatietussenverschillendeobjectenineensysteemweergeeft. Hetlegtdesequentiëlevolgordevanberichtenofoproepentussenobjectenvastenbiedteenvisueleweergave vanhoeeenspecifiekscenarioofproceszichontvouwtbinneneensysteem.
Swimlane
Wordtweergegevenalseenverticaleofhorizontalezoneineenactiviteitendiagramwaarbinnenactiviteiten wordengetoondendedeelnemendeentiteitenwordengeïdentificeerd.Wordtgebruiktomde verantwoordelijkhedenofbetrokkenheidvanverschillendeentiteitenofactorenbijhetuitvoerenvanactiviteiten weertegeven.
Technischontwerp
Eengedetailleerddocumentdatspecifieketechnischeaspectenvaneensysteem,softwaretoepassingofproduct beschrijft.
Technisch-ontwerp-rapport
Hetoverdrachtsdocumentvoordeprogrammeursdiedeapplicatiesgaanrealiseren.
CONCEPT
5.7 Praktijkopdrachten
Opdracht13 Relationeledatabasefactuur
InNederlandwordenereisengesteldaaneenfactuur.Dezeeisenhebbenconsequentiesvoordegeautomatiseerde omgeving.Hieriseenvoorbeeldvaneisen:
1. Jouwbedrijfsgegevens:naam,adres,btw-nummer,kvk-nummer.Daarnaastishethandigomje telefoonnummerene-mailadresopjefactuurtevermelden.Zokandeafnemereenvoudigbijvragencontact metjeopnemen.
2. Degegevensvanjeafnemer:naamenadresgegevens.
3. Factuurnummer:gebruikeenuniekopvolgendfactuurnummer.
4. Factuurdatum:dedatumwaaropdefactuurwordtgestuurd
5. Deomschrijvingvandegeleverdedienstenofproducten.
6. Hetaantalvandegeleverdedienstenofproducten.
7. Hetbtw-tariefvandegeleverdedienstenofproducten.
8. Dedatumvanleveringvandedienstenofproducten.
9. Hetbedragexclusiefbtw,hetbtw-bedragenhettotaalbedraginclusiefbtw.
10. Debetalingstermijn,ditkanvariërenvanstandaardtussende14en30dagen.
11. Debankgegevens,hetIBAN-nummerwaarophetbedragkanwordenovergemaakt.
12. Eventuelekortingen.
13. Eventuelevooruitbetalingen.
14. AlsjeexporteertnaareenanderEU-land,moetnaastbovenstaandegegevensookhetbtw-nummervande afnemeropdefactuurstaan.Ditisookhetgevalalsdebtwverlegdwordt.
Enditiseenvoorbeeldvaneenmogelijkelayoutvaneenfactuur:
CONCEPT
CONCEPT

Opdracht:
1. Bepaalde0e normaalvormvandezefactuur.
2. Bepaalde1e normaalvormvandezefactuur.
3. Bepaalde2e normaalvormvandezefactuur
4. Bepaalde3e normaalvormvandezefactuur.
5. Tekenhetstrokendiagram.
6. TekenhetBachman-diagram.
5.8 Terugblik
Opdracht14 Terugblik
Zeteenkruisjeindekolomdievoorjouvantoepassingis.
Beoordelingscriteria
Jekunteenactiviteitendiagrammaken.
Jekunteensequentiediagrammaken.
Jekunteenrelationeeldatamodelmaken.
Jekunteentechnischontwerpopstellen.
Opdracht15 Terugblik
Denknaoverwatjehebtgedaaninditblok.
a. Noemtweedingenwaaroverjetevredenbent.
1.
2.
b. Noemtweedingendiejedevolgendekeeranderswiltdoen.
1. 2.
c. Vraagjedocenten/ofleermeesteromfeedback.
Tops:
Tips:
Nee JaCONCEPT

Blok6 Realiserenentestenvansoftware
CONCEPT
Leerdoelen
• Jekunthetrealiserenentestenvansoftwarevoorbereidendoordejuistetoolstekiezen.
• Jekunteenontwikkelomgevinginstallerenentesten.
• Jekuntsoftwarefunctioneeltestenendaarverslagvandoen.
• Jekuntversiebeheeropeencorrectewijzetoepassen.
Erzijnverschillendeomgevingenvoorhetontwerpen,programmerenentestenvansoftware.Afhankelijkvanje rolbinnenhetontwikkeltrajectzuljealsontwikkelaaréénofmeervandezeaspectenopnemeninje software-ontwikkelomgeving.Inhetverledenwaseenontwikkelomgevingeenverzamelingvanverschillende tools.Tegenwoordigzijnergeïntegreerdesoftware-ontwikkelomgevingendieelkvolstaanvoorhetvolledige ontwikkeltraject.
Opdracht1 OriëntatieopdrachtRealiserenentestenvansoftware
a. Erzijntallozeprogrammeertalendiewordengebruiktbijsoftwareontwikkelingendekeuzevandetaalhangt afvanhettypeproject,devereistenendevoorkeurvanontwikkelaars.Ditzijneenpaarvandemeest gebruikteprogrammeertalenindesoftwareontwikkelingsindustrie.
• C#:C#isontwikkelddoorMicrosoftenwordtveelgebruiktvoordeontwikkelingvan Windows-desktoptoepassingen,webtoepassingen(metASP.NET),engame-ontwikkelingmetUnity.
• C++:C++wordtvaakgebruiktvoorsysteemprogrammering,game-ontwikkeling,enanderetoepassingen waarprestatiesencontroleoversysteembronnenbelangrijkzijn.
• Go(Golang):GoisontwikkelddoorGoogleenwordtgewaardeerdomzijnprestatieseneenvoud.Het wordtvaakgebruiktvoorserver-sideontwikkelingensysteemprogrammering.
• Java:Javawordtvaakgebruiktvoordeontwikkelingvangrote,schaalbaretoepassingen,waaronder Android-apps,bedrijfssystemenenwebtoepassingen.
• JavaScript:JavaScriptisdemeestgebruikteprogrammeertaalvoorwebontwikkeling.Hetwordtgebruikt voorhetontwikkelenvaninteractievewebsitesenwebtoepassingen,enhetheeftookaanpopulariteit gewonneninserver-sideontwikkelingmetbehulpvanNode.js.
• Kotlin:KotliniseenmoderneprogrammeertaaldiewordtgebruiktvoorAndroid-app-ontwikkeling.Het iseenalternatiefvoorJava.
• Perl:Perlwordtvaakgebruiktvoortekstverwerking,scriptingensysteembeheertaken.
• PHP:PHPiseenserver-sidescripttaaldiewordtgebruiktvoorwebontwikkelingenhetbouwenvan dynamischewebsites.HetispopulairincombinatiemetdatabaseszoalsMySQL.
• Python:Pythoniseenveelzijdigetaaldiewordtgebruiktvoorwebontwikkeling,data-analyse,machine learning,automatisering,ennogveelmeer.Hetstaatbekendomzijneenvoudenleesbaarheid.
• Ruby:RubywordtvaakgeassocieerdmethetRubyonRails-frameworkenwordtgebruiktvoorde ontwikkelingvanwebtoepassingen.
• Rust:Rustiseentaaldieisontworpenvoorsysteemprogrammeringmeteenfocusopgeheugenveiligheid. Hetwordtsteedspopulairdervoorhetontwikkelenvanveiligeenrobuustesoftware.
• SQL:SQL(StructuredQueryLanguage)iseentaalvoorhetbeherenenbevragenvanrelationeledatabases.
CONCEPT
• Swift:SwiftisdeprogrammeertaaldiewordtgebruiktvooriOS-enmacOS-applicatieontwikkeling.Hetis ontwikkelddoorApple.
• TypeScript:TypeScriptiseendoorMicrosoftontwikkeldetaaldieeensupersetisvanJavaScript.Hetvoegt typetypingenanderefunctiestoeomgrootschaligeJavaScript-appsteontwikkelen.
Geefindekolom"Beheersik",opeenschaalvan0tot5,aaninhoeverrejedezetaalbeheerst.Geefinde kolom"Wilikleren"aanhoegraagjedetaalzouwillenbeheersen.
Beheersik Schaal0tot5
Wilikleren
Schaal0tot5
Taal
PHP
Python
Ruby
Rust
SQL
Swift
TypeScript
Beheersik
Schaal0tot5
Wilikleren
Schaal0tot5
BoomBeroepsonderwijsheeftvooreenaantalvandezeprogrammeertaleneenmooieleermethode.Kijkeens opdesitevanBoomBeroepsonderwijs.
b. Erzijnzijnveelontwikkelomgevingenbeschikbaarvoorsoftwareontwikkeling.Dekeuzehangtvaakafvande programmeertaaldiealsbasisdientenhettypeproject.Ookhierinisdevoorkeurvandeontwikkelaarseen belangrijkefactor.Enkelevandemeestgebruikteontwikkelomgevingenzijn:
• AndroidStudio:SpecifiekontworpenvoorAndroid-app-ontwikkeling,biedtAndroidStudioeenuitgebreide omgevingvoorhetbouwenentestenvanAndroid-apps.
• CLion(JetBrains):CLioniseenIDEvoorC-enC++-ontwikkeling.
• Eclipse:EclipseiseenopensourceIDEdieveelwordtgebruiktvoorJava-ontwikkeling,maarhetondersteunt ookanderetalenviaplug-ins.HetwordtvaakgebruiktvoorhetontwikkelenvanAndroid-apps.
• IntelliJIDEA(JetBrains):IntelliJIDEAiseenkrachtigeIDEvoorJava-ontwikkelingenondersteuntook anderetalenzoalsKotlin,ScalaenGroovy.
• NetBeans:NetBeansiseenopensourceIDEdieondersteuningbiedtvooreenverscheidenheidaantalen, waaronderJava,PHP,C++,enmeer.
CONCEPT
• PHPStorm(JetBrains):PHPStormiseenIDEdieisgeoptimaliseerdvoorPHP-ontwikkelingenbevat krachtigetoolsvoorwebontwikkeling.
• PyCharm(JetBrains):PyCharmiseenIDEvoorPython-ontwikkelingenwordtveelgebruiktdoor Python-ontwikkelaarsvanwegezijnkrachtigetoolsenfuncties.
• RubyMine(JetBrains):RubyMineiseenIDEvoorRuby-enRubyonRails-ontwikkeling.
• SublimeText:HoewelgeentraditioneleIDE,isSublimeTexteenpopulairelichtgewichtcode-editormet eenbreedscalaaanplug-insvoorverschillendetalen.
• VisualStudioCode(Microsoft):VisualStudioCode,vaakafgekortalsVSCode,iseengratis,opensource code-editordiepopulairisvanwegezijnaanpasbaarheidenondersteuningvoortalenviaextensies.
• WebStorm(JetBrains):WebStormisgerichtopwebontwikkelingenondersteuntJavaScript,HTML,CSS enanderewebtechnologieën.
• Xcode(Apple):XcodeisdeIDEvoorhetontwikkelenvaniOS-enmacOS-apps.Hetbevateensimulator voorhettestenvaniOS-appsopMac-systemen.
Veelontwikkelaarsgebruikenmeerdereontwikkelomgevingen,afhankelijkvanhetsoortprojectwaaraanze werken.
Geefindekolom"Beheersik",opeenschaalvan0tot5,aaninhoeverrejedezeontwikkelomgevingbeheerst. Geefindekolom"Wilikleren"aanhoegraagjedeontwikkelomgevingzouwillenbeheersen.
Ontwikkelomgeving
AndroidStudio
CLion
Eclipse
IntelliJIDEA
NetBeans
PHPStorm
PyCharm
RubyMine
SublimeText
VisualStudioCode
WebStorm
Xcode
Beheersik
Schaal1tot5
6.1 Realiserenvansoftware Voorbereidenvanderealisatie
Wilikleren
Schaal1tot5
CONCEPT
Derealisatiebestaatuitprogrammerenentesten.Voorbeidezulleneigentoolswordengebruikt.
Programmeren
Eenprogrammeurkanoververschillendetoolsbeschikkenvoorhetcreërenvansoftware,zoals:
• teksteditor;
• broncode-editorvoorhetinvoerenvanprogrammeercode;
• compiler;
• linker;
• debugger;
• documentatiegenerator;
• toolsdiehetcreërenvancodevergemakkelijken,zoalsautomatischeaanmaakvancodeendocumenten.
Teksteditor
Eenteksteditoriseencomputerprogrammawaarmeeonopgemaaktedigitaletekstgemaaktenbewerktkan worden.Eenteksteditorwordtgebruiktvoor:
• bewerkenvanbestandenmetsysteeminstellingen;
• eenvoudigeaantekeningen;
• hetmakenvaninternetbestandeninHTML;
• programmeren.
Voorhetprogrammerenzijngespecialiseerdeteksteditorsbeschikbaar.Dezeeditorsbevattenfunctiesdiegericht zijnophetschrijvenenbewerkenvanbroncodeinéénofmeerprogrammeertalen.Dezeteksteditorshebben mogelijkhedenzoals:
• automatischeregelnummering;
• gebruikvanhetFileTransferProtocol(FTP)omonlinetekstaantepassen;
• gebruikvanmacro’s;
• meerderebestandentegelijkertijdgeopendhebben;
• splitsenvanhetscherminmeerderedelen;
• syntaxiskleuring;
• zeergrotetekstbestandenbewerken;
• zoekenenvervangenmetspecialemogelijkheden.
Populaireteksteditors:
• Emacs
• Gedit
Unix/Linux
Unix/Linux/Windows
• jEdit Windows
• Kladblok
• TextEdit
Broncode-editor
Unix/Linux/MacOSX/Windows(wordtnietmeeronderhouden)
• Notepad++ macOS
Windows
CONCEPT
Eenbroncode-editoriseenteksteditordieisontworpenvoorhetbewerkenvandebroncodevan computerprogramma’s.Ineenbroncode-editorzittenoptiesdieontworpenzijnomhetinvoerenvanbroncode tevereenvoudigenenteversnellen,zoalssyntaxiskleuringofautomatischeaanvulling.Broncode-editorsbeschikken meestalovereeneenvoudigemaniervoorhetstartenvaneencompiler,interpreter,debuggerofandereexterne programma’sdienodigzijnbijdeontwikkelingvanapplicaties.
Compiler
Eencompileriseenprogrammadateeninbrontaalgeschrevenprogrammavertaaltnaareendoeltaal.Debrontaal iseenhogere-generatie-taaldiewijbegrijpenenkunneninterpreteren.Dedoeltaaliseenassembleertaalof machinecode,eenuitvoerbarecodevoorhetsysteem.Decompilercontroleertookofdeinvoergoedisenofer eencorrectevertalinggemaaktkanworden.Wanneerditnietzois,wordenerfoutmeldingengegeven.Meestal isditinteractiefenstoptdecompilerbijdeeerstefoutmelding.Inhetverledenwasersprakevanbatchverwerking (stapelverwerking)waarbijdecompilerhetheleprogrammaopfoutendoorzochtendaarnapasdefoutmeldingen teruggaf.
Hetvertalenofomzettenwordtcompilatieofcompilerengenoemd.Vertaalteenprogrammavaneenlagere programmeertaalnaareenhogere,danspreektmenvaneendecompiler.
Linker
Eenlinkerofeenlinkeditoriseenprogrammadatdooreencompilergegenereerdeobjectbestandencombineert totéénuitvoerbaarbestand.

Eenbugiseenkever,maarookeenfoutindewerkingvaneencomputer(programma).Ditkomtnoguitdetijd datcomputersenormgrootwarenendeonderdelenevenrediggroot.Hetkwammetenigeregelmaatvoordat erkeversofandereinsectentussendeverschillendeonderdelenzatenendankortsluitingveroorzaakten.Het gevolgwasdatdecomputernietwerkte.Daaromkoosmenervoorhetsysteemeersttedebuggen(ontkeveren) voordatmendecomputeraanzette.Ditbegripisvervolgensgekoppeldaanhetoplossenvanfoutenenblijven bestaan.
Eendebuggerisdanookeenprogrammadatgebruiktwordtomfoutenuitandereprogramma’stehalenofde oorzaakvaneenbugteachterhalen.
Documentatiegenerator
CONCEPT
Eendocumentatiegeneratoriseenprogrammawaarmeeautomatischdocumentatiegegenereerdkanworden uitcommentaarindecode.Dezedocumentatieisbedoeldvoorprogrammeurs.Demeeste documentatiegeneratorengenererendedocumentatiealsHTML,maarookandereformatenwordenondersteund. Documentatiegeneratorenkunnendedocumentatiegenererenopbasisvancommentaarregelsindebroncode. Metnameinobjectgeoriënteerdeprogrammeertalenwordtveelgebruikgemaaktvandocumentatiegeneratoren. Menkanervoorkiezenvoorelkeklasseeenpaginategenererenmetdedocumentatievandemethodenende velden.
Software-ontwikkeltools
Eensoftware-ontwikkeltoolofsoftwaredevelopmenttooliseenprogrammadatsoftware-ontwikkelaarsgebruiken voorhetmaken,debuggenofonderhoudenvanprogramma’sentoepassingen.Ditzijnvaakrelatiefeenvoudige programma’s.Eenervarensoftware-engineerisinstaateengroteverscheidenheidaantoolstoetepassen. Demeestelementairetoolszijneenbroncode-editoreneencompiler.Hetonderscheidtussentoolsenapplicaties isnietduidelijk.Deverzamelinghulpmiddelendiesamengebruiktworden,wordtvaakeentoolchaingenoemd. Deprogrammeerhulpmiddelenzijnsteedsmeergeïntegreerdenafgestemdopelkaar.ZozijnIntegrated DevelopmentEnvironments(IDE’s)ontstaan.Ditzijnomgevingenwaarverschillendevandezefunctiesen hulpmiddelengeïntegreerdzijnineenintuïtievegrafischewerkomgeving.IDE’szijnindeloopvandejarensteeds verderuitgebreidmetnieuwefunctiesenaanvullendeprogramma’s.Ookdeverschillendeonderdelenzijnsteeds meerondersteuninggaanbiedenaandesoftware-ontwikkelaar.
Figuur 6.1 DebuggerDeontwikkelomgevingtesten
Testdeontwikkelomgevingvoordatjedieingebruikneemt.Dathoeftnietergcomplextezijn.Jetestalle functionaliteitendiejenodighebt.Hetishandigomeeneenvoudigtestplantemaken,omtevoorkomendatje onverhooptietsvergeettetesten.
Vragendiejezekermoetstellen:
• Werktdewebservernaarbehoren?
– bekijken
– opslaan
– aanpassen
– verwijderen
• Werktdedatabaseservernaarbehoren?
– bekijken
– opslaan
– aanpassen
– verwijderen
• WerktPhPMyAdminvoorhetgrafischbeherenvandedatabase?
• Werkendeverschillendetoolsnaarbehoren?
Deontwikkelomgevinginstallerenenconfigureren
Lokaleontwikkelomgeving
Wijzigingenmeteenaanbrengenopeenlivewebsiteisnietverstandig.Zelfsdekleinstewijzigingenkunnen onverwachtgrotegevolgenhebben.Hetisdanookbelangrijkomwijzigingenuitteproberenineenafgeschermde omgeving.
Deafgeschermdeomgevingwaaropjewerktzoueengedeeltevandewebruimtekunnenzijnwaaropookdelive sitestaat.Jezouervoorkunnenkiezeneensubdomeintest.site-url.nlaantemaken.Hetnadeelhiervanisdatje elkekeeralsjeeenaanpassingwilttestendebestandenmetFTPnaardeservermoetoverzetten.Zekeralser nogveelisaantepassenenteonderhoudengaatditextratijdkosten.Voordeelisechterdatjeanderen(elders) kuntlatenmeekijkenenlatenmeedenken.Zijkunneninrealtimezienwaarjebentenwatjehebtgedaan.
CONCEPT
Eenandereoptieisomeenkopievanjewebsiteopjelokalemachinetedraaien.Desitedraaitdandirectvanaf debestandenopjecomputerenwijzigingenzijndirectzichtbaar.Hetisdannodigdatjehetsysteemwaaropje werkthiervoormoetinrichten.DewebsitebenaderjedanmeestalviaeenURLdiebegintmethttp://localhost/
Voordelenvaneenontwikkelomgevingonline:
• Jekuntdirecttestenhoesneljewebapplicatieophetwebis.
• Jekuntanderendirectfeedbacklatengevenopdewebsite.
• Jekuntzienhoenieuweaanpassingendelaadtijdvanjewebapplicatiebeïnvloeden.
Nadelenvaneenonlineontwikkelomgeving:
• Jemoeteeninternetverbindinghebben.
• Jebentafhankelijkvandesnelheidvandeinternetverbinding.
• Jebentafhankelijkvandeuploadtijddiedeservernodigheeft.
Voordelenvaneenontwikkelomgevingopjeeigencomputer:
• Jehebtgeeninternetnodig.
• Hetgaatsnellerdanontwikkelenophetweb.
• Niemandkanmeekijken.
• Opelkedenkbareplekkunjewerken.
Benodigdheden
Jezultdevolgendecomponentenmoeteninstallerenomopjelokalemachinetekunnendraaien:
• eenwebserver
• eendatabase-server
• PhP
• PhPMyAdmin,voorhetgrafischbeherenvandedatabase
Installeren
Voorhetinstallerenvaneenvandezepakkettenmoetjedeinstallatie-instructiesvanhetbetreffendepakket volgen.Overhetalgemeenishetzosimpelalshetinstallerenvaneenwillekeuriganderpakket.Loopjeergens bijvast,kijkdanofernietiemandismeteenvergelijkbaarprobleem,waarvooropeenforumaleenoplossingis geformuleerd.Erisaltijdwelsupportbeschikbaarvoorjegekozenpakket.
Instellingenenwijzigingendocumenteren
Veelapplicatie-enmediaontwikkelaarszullen‘geentijdhebben’omhunontwikkelomgevingtedocumenteren. Vaakgaathetomeenvoorhenbekendeomgeving.Tochishetvanbelangvoordeorganisatie."Jehoeftmaar vandetraptevallen,"enniemandweethoeallesinelkaarsteekt.Hetisnietaltijdonderjouwcontroleomkennis overtedragenaancollega's.Metbehulpvandocumentatiekunnendewerkzaamhedenechterononderbroken doorgaan.
Erisgeenstandaardsjabloontevindenvoordedocumentatiemetbetrekkingtotdeinrichtingvande ontwikkelomgeving.Eenmethodedierelatiefweinigwerkkostenduidelijkisvoorallebetrokkenen,isdevolgende. Beginmethetinrichtenvandeomgevingenmaaktijdenshetuitvoerenscreenshots.Plakaldezescreenshotsin eendocumentenjehebteenbeginvanjewerkinstructie.Alsjedithebtgedaan,kunjehetverhaalbijdeplaatjes gaanzetten.Veeltekstismeestalnietnodig,éénplaatjezegtmeerdaneenstuktekst,alzalerwelietsvan begeleidendetekstbijdescreenshotsmoetenkomen.
CONCEPT
Alsjededocumentatieeenmaalhebtopgezet,ishetnetzobelangrijkomdezeookbijtehouden.Upgrades, aanpassingenennieuweinstallatieszijnredenenomdebestaandedocumentatiewaarnodigbijtewerken.Als ditstructureelgebeurt,ishetbijhoudenvandocumentatieeenkwestievanevendoen.Vooreventueleoverdracht isbijgewerktedocumentatienoodzakelijk.
Versiesenversienummers
Hoeweldemeestemoderneontwikkelomgevingeningebouwdeversiebeheerfunctionaliteitbieden,kunnen sommigeteamsexterneversiebeheertoolsgebruikendienietautomatischversienummeringbijhouden.Hetniet automatischbijhoudenvanversienummeringmaaktdatmenselijkefouteneninconsistentieskunnenoptreden. Omdieredenwordtoverhetalgemeenaanbevolenomgebruiktemakenvangeautomatiseerde versiebeheerhulpmiddelenbinnenmoderneontwikkelomgevingen.Deversienummeringvansoftwaredieopde marktverschijnt,zalinveelgevallenautomatischwordentoegekendzodatvoordegebruikernieteenonduidelijk verhaalvannummersensubnummersverschijnt.
Wanneereenbedrijfeennieuwprogrammauitbrengt,krijgtdithetversienummer1.0(release1.0).Integenstelling totdemeestepublicaties,zoalseenroman,veranderteenprogrammadoorlopend:erwordenfoutengecorrigeerd ennieuwefunctiestoegevoegdomhetpakketteverbeteren.Eenverbeterdprogrammawordtmeteenvolgend versienummeropdemarktgebracht.Zijndewijzigingenbetrekkelijkgering,danwordthetcijferachterdepunt verhoogd.Eenkleinewijziginginversie1.0levertversie1.1op.Ditnoemenweeenupdate.Eenupdateisduseen kleineaanpassingdiejetegenwoordigvaakviainternetkuntdownloaden.EenvoorbeeldvaneenupdateisMAC OSX10.1,datalsnelheteerdereMACOSX10.0opvolgde.
Blok
Wanneereengrootaantalfoutenisgecorrigeerdofalserveelnieuwemogelijkhedenaanhetpakketzijn toegevoegd,wordtditaangegevendoorhetheleversienummermetéénteverhogen.Ditnoemenweeenupgrade. Eenwezenlijkeverbeteringvanversie1.1wordtdanversie2.0.Eenupgradeisduseenechtnieuweversie.
Eenvoorbeeld:MicrosoftWindows7.0wasnietgeschiktvoormobieleplatformen.Nadatextrafunctieswaren toegevoegdenheteenomgevingvoormobieleplatformenwasgeworden,kreeghetversienummer8.0.Windows 8wasechterniethetsucceswaarMicrosoftophoopteendaaromwerdzosnelmogelijkWindows10geïntroduceerd, waarbijversienummer9werdovergeslagen.HiervoorisdoorMicrosoftnooiteenofficiëleredengegeven.Mogelijk isderedendaterverwarringzoukunnenontstaanmetWindows95enWindows98.
CONCEPT

Figuur 6.2 Versieopvolging van Zabbix monitoring software
Demeestesoftwarebedrijvenverkopenupgradesmeteenaanzienlijkekortingaandegebruikersdieeen registratiekaartvaneeneerdereversiehebbenopgestuurd.Programmaversiesdieopeen0eindigen(OSX10.0), biedenbijnaaltijdveelnieuwefunctiesenmogelijkheden.Tochkanhetsomsverstandigzijnzo’nversieniette kopenmaartewachtenopeenvolgendeversie(OSX10.1).Demakershebbendandegelegenheidgehadeventuele kinderziektesuithetprogrammatehalen.
Somskomenweeensubversietegen.Hieruitzijndanwatkleinefoutengehaald.VoorbeeldenzijnMS-DOS4.01a enWindows98dateenaangepasteversiekreegmetdetoevoegingSE(secondedition).
Hetkomtookvoordatsoftwaremakersverbeteringenaanbrengenineenpakketdatalinomloopis.Zijstellen daneenservicepackbeschikbaar.Wanneerjedatinstalleert,zijndeverbeteringendiedesoftwaremakerinhet nieuwepakketheeftaangebrachtookbijjoudoorgevoerd.Meestalkunjeopdewebsitevandesoftwaremaker delaatsteservicepacksofupdatesvinden.Dezekunjedandownloadenenvervolgensinstalleren.
Compatibel
Nieuweversiesvanbestaandesoftwaremoetenkunnenwerkenmetbestanden(zoalsdocumentenofspreadsheets) diemeteeneerdereversievanhetprogrammazijngemaakt.Kortom,zemoetencompatibelzijnmeteerdere versies.Stel,eenbepaalddocumentisineenoudereversieaangemaakt(bijvoorbeeldmetMicrosoftOffice2010). Ditdocumentkunjezonderproblemenbinnenhalenineennieuwere(hogere)versie(zoalsMicrosoftOffice2016).
Dehogereversieherkentdecommando’sendestructuurvandeoudereversienog.Andersomwerktditechter nietaltijd.Eenhogereversieheeftnieuwemogelijkhedenendusvaaknieuwecommando’s.
Hetgevolgisdateenlagere(dusoudere)versiedezenieuwecommando’snietzomaarkanlezen.Hiervoormoet jehetbestandeerstconverteren(wegschrijvenineenanderformaat).Deoudereversievanhetprogrammakan hetbestanddaarnawellezen.Nadeelhiervankanzijndateenaantalvandenieuwemogelijkheden(bijvoorbeeld opmaakkenmerken)verlorengaat.
Opdracht2 Realiserenvansoftware
Raadpleegzonodigdetheorieoverhetvoorbereidenvanderealisatie.
a. Watiseenbroncode-editor?
b. Watdoeteencompiler?
c. Watdoeteenlinker?
d. Watiseendebugger?
CONCEPT
e. Welknutheefteendocumentatiegenerator?
f. Watzijndevoordelenvaneenonlineontwikkelomgeving?
g. Watzijndenadelenvaneenonlineontwikkelomgeving?
h. Watzijndevoordelenvaneenontwikkelomgevingopjeeigencomputer?
i. Alshetversienummervansoftware4.5isenerwordteennieuwereleaseuitgebrachtomeenpaarkleinebugs optelossen,welkversienummerzaldezereleasedankrijgen?
j. Alshetversienummervansoftware7.3isenerwordteennieuwereleaseuitgebrachtwaarinnieuwe functionaliteitaandesoftwarewordttoegevoegd,welkversienummerzaldezereleasedankrijgen?
k. Watiseenservicepack?
l. Watiscompatibel?
CONCEPT
6.2 Testenvansoftware Versiebeheer
Applicatieswordengebouwdinversiesvaneenbepaaldedatumentijd.Alsallesgoedisgegaan,iseennieuwe versieeenverbeterdeversievandeoude.Hetkomtregelmatigvoordateenbepaaldefunctieineennieuwere versienietmeerwerkt.Alsjedanterugkuntvallenopeeneerdereversiekandathetuitzoekenvereenvoudigen enversnellen.Bijgoeduitgevoerdversiebeheerkunjealtijdterugnaareeneerdere,werkendesituatie.Eengoede versiehistorieopzettenkanindevolgendestappen:
1. Stelvastwatjeondereenversieverstaat.Ditkanzijneenmodule,eensysteem,maarookeenheledirectory.
2. Maakeenkopievandelopendeversie.
3. Sladezekopieopmeteenherkenbarenaam.Doordedatumindenaamoptenemen,daarzelfsmeete beginnen,wordthetoverzichtergduidelijk.Eennaamzoudankunnenzijn20160315-WebshopKoopIT.Een nieuwereversieheeftdandenaam20160319-WebshopKoopIT.
4. Documenteeriedereversie.Zorgdatineenversielogboekvaniedereversiedenaam,hetonderdeel,de datum/tijdendeverantwoordelijkepersoon/personenzijnvastgelegd.
5. Spreekregelsafbetreffendeversiebeheerenzorgervoordatiedereenzichaandezespelregelshoudt.

Figuur 6.3 Versiebeheer
Versiebeheeriseenzaakvaneengoedeorganisatie,veelmeerdaneentechnischprobleem.
Hierbijgaathetvoornamelijkomhetopcorrectewijzetoepassenvandeprogrammeerregelsinverschillende omgevingen.Perontwikkelomgevingzijnhiervooréénofmeerboekenbeschikbaar.
Functioneeltesten
Hetbelangvantesten
Wanneerjesoftwarebouwt,moetenwiljewetenofhetnaarbehorenwerkt.Detestenzijnbedoeldomeventuele bugsofanderegebrekentevindenvoordatdesoftwarewordtopgeleverd.Hettestenkanopeenaantal verschillendecriteria.Devolgendezakenzijndaarbijvanbelang.Degebouwdesoftware:
• voorzietinderequirementsuithetontwerp;
• reageertcorrectopallemogelijkeinput;
CONCEPT
• voertdefunctiesbinneneenacceptabeletijduit;
• kanwordengeïnstalleerdengebruiktindebedoeldeomgevingopdeaanwezigeapparatuur;
• voldoetaandewensenvanalleverschillendegebruikers.
Zelfsvoorheeleenvoudigesoftwareishetaantalmogelijketestsdatkanwordenuitgevoerdzeergroot.Daarom ishetvanbelangeengoedeteststrategietehebben.Testeniseenproceswaarmeejefeitelijknooitklaarbent. Hetvindenenoplossenvaneenbugmaaktdaterweereennieuwetestnodigis.Eenoplossingkanmakendatje nieuwe,dieperebugsvindt.Hetoplossenvaneenprobleemkannieuwebugstotgevolghebben.Tochhebjeniet oneindigdetijdomtetesten.Eriseenmomentwaaropdesoftwareinhetproductieprocesmoetworden opgenomen,desoftwarewordtdangeïmplementeerd.Erzaldanookvooreenhaalbaarenbetaalbaar testprogrammagekozenmoetenworden.Hetmomentvantestenisdaarbijookvanbelang.Wordteenproduct inéénkeer,aanheteindevanhettraject,opgeleverd?Indatgevalzalhetvaakookinzijngeheelwordengetest. BijeenontwikkelmethodiekalsAgile,waardesoftwareinstukjeswordtopgeleverd,looptookhettestenhieraan parallel.Programmerenentestenwordendanvaakgelijktijdiggedaan.
Bijhettestenopdejuistheidvandesoftwaremoetenweaccepterendatnietallesgetestkanworden.Zelfsgoed testenkannietallefoutenindesoftwareidentificeren.Detestkwaliteitenvandetesterzijnbelangrijk.Detester moetinstaatzijneenprobleemteherkennen.
Hetprimairedoelvantestenisomsoftwarefoutenoptesporen,zodatfoutengecorrigeerdkunnenworden.De omvang(scope)vandetestenzalnietallefunctiesonderalleomstandighedenbevatten.Wekunnenopzijnhoogst vaststellendatdesoftwaregoedfunctioneertonderbepaaldecondities.Waarvroegerdeprogrammeurzelfalle testenuitvoerde,ishettegenwoordignormaalbinnendesoftware-ontwikkelingdatereentestorganisatieis,los vanhetontwikkelteam.Ineentestteamkunnendeledenvanhettestteamverschillenderollenaannemen.De informatieafkomstigvansoftwaretestenzalwordengebruiktomeventuelebugsoptelossen,maarkanook wordengebruiktomhetproceswaarbijsoftwarewordtontwikkeldtecorrigeren.Ookdaaromiseenevaluatie vandetestresultatenvanbelang.
EenstudieuitgevoerddoorNIST(NationalInstituteofStandardsandTechnology)in2002laatziendatsoftwarebugs deAmerikaanseeconomieopdatmoment59,5miljarddollar($59.500.000.000!)perjaarkostten.Veelvandeze kostenkunnenwordenvermedenalssoftwarebeterwordtgetest.Doorhetsteedsmeergebruikenvan geautomatiseerdesystemenwordtervanuitgegaandathetbedragnuveelhogerligt. Dezekostenkunnenbetrekkinghebbenopzakenals:
• Verlorenproductiviteit:Werknemerskunnentijdverspillenaanhetoplossenvanproblemenveroorzaaktdoor softwarefouten.
• Verliesvaninkomsten:Bedrijvenkunneninkomstenverliezenalsgevolgvansysteemuitval,verkeerde berekeningenofandereproblemendiewordenveroorzaaktdoorsoftwarefouten.
• Herstel-enreparatiekosten:Hetoplossenvanbugsenhetimplementerenvanpatchesofupdatesomproblemen optelossen,kankostbaarzijn.
• Reputatieschade:Alssoftwarefoutenleidentotnegatievegebruikerservaringenofdatalekken,kanditde reputatievaneenbedrijfschaden,watoplangetermijnfinanciëlegevolgenkanhebben.
• Juridischekosten:Insommigegevallenkunnensoftwarefoutenleidentotjuridischegeschillen,watextra kostenmetzichmeebrengt.
Inhetalgemeengeldt:hoeeerdereendefectwordtgevonden,hoegoedkoperhetisomhetterepareren.
Testplan
CONCEPT
Eensystematischebenaderingvanhettestenvaneensysteemmaaktdekansopfoutenkleiner,hettestplan Bij hettestenvansoftwaregeefteentestplangedetailleerdetestinformatiemetbetrekkingtoteenaanstaande testinspanning,waaronder:
• Scopevantesten–Watwordtergetestenwatniet?
• Planning–Wietestwatwanneer?
• Testdeliverables–Watmoetdetestopleveren?
• Criteriavrijgeven–Wanneerisdetestsuccesvolafgeslotenenkandesoftwareingebruikwordengenomen?
• Risico’senonvoorzieneuitgaven–Welkrisico’szijnerenhoeveelruimteiseromdezeoptevangen?
Testdocumentatie
Eriseengoedeverantwoordingvandetestnodig.Daarommoetdetestdocumentatiegoedopordezijn.Uitde documentatiemoetenkunnenwordennagegaanhoeerisgetest:doorwieenonderwelkeomstandighedenis welkdeelvandetestuitgevoerd?
Eenbelangrijkonderdeelvandedocumentatieisdeuitkomstvandeuitgevoerdetesten.Eentestscriptvoorde softwarekangemaaktwordenopbasisvandesequence-diagrammen.Alsvoorbeelddealeerdergebruikte aanmeldprocedure.
Hetsequence-diagramvandeaanmeldprocedurezieteralsvolgtuit:

Figuur 6.4 Sequence-diagram van de aanmeldprocedure
Wanneerwevoorditsequence-diagrameentestscenariomakendanzoudateralsvolgtuitkunnenzien:
CONCEPT
Blok6 Realiserenentestenvansoftware

CONCEPT
Figuur 6.5 Testscenario sequence-diagram
Afhankelijkvandecomplexiteitendenauwkeurigheidwaarmeemoetwordengetest,wordtditonderdeel uitgebreider.
Beperkingenbijhettesten
Elksoftwareproductheefteeneigendoelgroep.Zozaldedoelgroepvoorvideogameserandersuitziendan beurshandelarendiesoftwaregebruiken.Bijhettestenishetvanbelangjedoelgroeptebetrekken.Dezekanhet bestebeoordelenofdesoftwareacceptabelis.
Defectenenfouten
Nietallesoftwaregebrekenzijnhetgevolgvanhetcoderenvanfouten.Eenredenvanduregebrekenaansoftware isvaakhetontbrekenvanbepaaldefunctionaliteiten.Datzoukunnengebeurenomdaterinhetontwerpietsis vergeten.Vaakzijndithiatenophetgebiedvanniet-functionelevereisten,zoalstestbaarheid,schaalbaarheid, onderhoudbaarheid,bruikbaarheid,prestatiesensecurity.
Nietelkesoftwarefoutzal(onmiddellijk)resulterenineenzichtbarebug.Zozaleenfoutineendodecode,een codedienietaangeroepenkanwordenendusooknietkanwordenuitgevoerd,nooitleidentotstoringen.Deze
bugszullendanookmoeilijkteontdekkenzijn.Eendergelijkefoutkanveranderenineenzichtbarebugwanneer deomgevingverandert.Bijvoorbeeldalsopeenbepaaldmomenteeninteractiemetanderesoftwarewordt gerealiseerd.
Input-combinaties
Eenfundamenteelprobleembijhettestenvansoftwareisdathettestenvanallecombinatiesvandeinputen (begin)toestandniethaalbaaris.Zelfsnietmeteeneenvoudigproduct.Gebrekendiezeldenvoorkomenzijn moeilijktevindenbijhettesten.Eenkeuzeuittweediealsuitkomstheefteenkeuzeuitzesmaaktaldatertwaalf padenmoetenwordengetest,AtotenmetL.

Figuur 6.6 Keuzes die leiden tot keuzes
Enalselkevervolgkeuzeopzichweerverschillendeoptiesheeft,danwordthetaantalpadenmeteenheelveel groter.Gaanweervanuitdatergemiddeldvieroptieszijninelkvervolg,danmoeteneral2x6x4=48verschillende padenwordengetest.
CONCEPT

Figuur 6.7 Keuzes die leiden tot keuzes die leiden tot keuzes
Hierbijzijnwealleenuitgegaanvanéénbeginsituatie.Jekuntbedenkendaterverschillendebeginsituatieszijn. Zoudenerdriebeginsituatieszijndanwordthetaantaltesten:
2x6x4x3=144
Elketestkosttijdentijdisweertevertaleningeld.Daaromishetefficiënténeffectiefopzettenvaneentestheel ergbelangrijk.
Blok6 Realiserenentestenvansoftware
Randvoorwaarden
Usability,schaalbaarheid,prestaties,compatibiliteitenbetrouwbaarheidkunnenzeersubjectiefzijn.Ietswat éénpersoonacceptabelvindt,kanvooreenanderjuistonacceptabelzijn.Ditsoortaspectenwordtvaakinde acceptatietestmeegenomen.
Manierenvantesten
Statischversusdynamischtesten
Erzijnverschillendebenaderingenmogelijkvoorhettestenvansoftware.Beoordelingen,‘walkthroughs’en inspectieswordenaangeduidalsstatischetesten Hetfeitelijkuitvoerenvandegeprogrammeerdecodemeteen bepaaldesettestgevallenwordtaangeduidalsdynamischtesten
Statischetestenwordenvaakuitgevoerdtijdensdeontwikkeling.Voorbeeldenvanstatischtestenzijnproeflezen enhetbijhetprogrammerengebruikmakenvantools/tekstverwerkersdiedebroncodecontrolerenopstructuur. Gebruikmakenvancompilerskanookalsstatischtestenwordengezien.Compilerscheckenvaakdesyntaxvan decodeengeveneenmeldingalserietsnietinordeis(codereview).
Dynamischtestenvindtplaatswanneerhetprogrammazelfwordtuitgevoerd.Dynamischtestenkanbeginnen voordathetprogramma100%afis.Alsermetmodulesoffunctieswordtgewerkt,kunnendezeafzonderlijkgetest worden.
Bijstatischetestenisersprakenvannalopen,controlerenenverifiëren.Bijdynamischtestengaathetomnalopen, controlerenenvalideren.Inbeidegevallengaathetomhetverbeterenvandekwaliteitvandesoftware.Het verschilisdatverifiërenstaatvoorcontroleren,zondereeneindoordeel.Validerenisaangevendatallesinorde is,hetgevenvaneenoordeel.
White-box-testenenblack-box-testen
Softwaretestmethodenzijntraditioneelverdeeldinwhite-enblack-box-testen.
CONCEPT

6.8
White-box-testen
en black-box-testen
White-box-testen(ookwelclear-box-testen)dienenomdeinternestructuurofwerkingvaneenprogrammate testen.Black-box-testengaanomdefunctionaliteitenwordenvaakdoordeeindgebruikergedaan.
Omdateenwhite-box-testhetinternedeelvanhetsysteemtest,zijnerprogrammeerskillsnodigomtestcases teontwerpen.Detesterkiestinputompadendoordecodetetestenenomtebepalenofdejuisteoutputuithet systeemkomt.
White-box-testengebeurtmeestalopmodule-niveauentestdekoppelingopsysteemniveau.Metwhite-box-testen kunjepadenbinneneenmoduleenpadentussenmodulestesten.Metdezemaniervantestenkunjeveelfouten
Figuur White-box-ofproblemenontdekken.Watnietkan,isonuitgewerktedelenvandesoftwaretesten.Requirementsofontbrekende eisendienietinhetontwerpzijnmeegenomen,zijnopdezemanierniettevinden.
Methodesdiewordengebruiktbijwhite-box-testenzijn:
• API-testen:testenvandeapplicatiemetbehulpvanpubliekeenprivateAPI’s(applicationprogramming interfaces);
• Codecoverage:eentestdiezowordtopgezetdatallestatementsinhetprogrammatenminsteeenmaal wordenuitgevoerd(code-dekking);
• Faultinjection(storinginjectie):hetopzettelijkintroducerenvanfoutenomdewerkzaamheidvan teststrategieëntepeilen.
Black-box-testen
Eenblack-box-testbehandeltdesoftwarealseen‘black-box’.Meteenblack-box-testonderzoekjede functionaliteit,zonderenigekennisvandeinternewerking.Detesterszijnzichalleenbewustvanwatdesoftware moetdoenenniethoedesoftwarewerkt.Datisdanookmeteeneenbelangrijkvoordeelvanblack-box-testen.

Figuur 6.9 Black-box-testen
Black-box-testmethodenzijn:equivalencepartitioning,boundaryvalueanalysis,fuzz-testen,specificatiegebaseerde testen,visueeltestenengray-box-testing.
CONCEPT
Equivalencepartitioning
Deinvoergegevensvaneensoftware-eenheidwordenindelenequivalentegegevens(gelijkegegevens)opgedeeld.
Opbasishiervanwordendetestcasesgemaakt.Detestcaseswordenzoontworpendatelkdeel(partitie)minstens eenmaalwordtgetest.Eenvoordeelvandezetestisdatermindertijdvoorhettestenvansoftwarenodigis, omdatermindertestcasesnodigzijn.
HetdoelvanEquivalencePartitioningisomhetaantaltestcasesteverminderendoorinputwaardeninklassen teverdelenenslechtsééntestcaseuitelkeklasseteselecterenomtetesten.
DestappendiewordengevolgdbijhettoepassenvanEquivalencePartitioningzijn:
• Identificeerdeinputcondities:identificeerdeverschillendeinputconditiesofparametersdievaninvloed zijnophetgedragvandesoftware.
• Partitieerdeinputwaarden:verdeeldemogelijkeinputwaardeningelijkeklassenopbasisvandezelfdeaard vandeinputofhetzelfdeverwachtegedrag.Eenequivalentieklassebevateenreeksinputwaardendienaar verwachtinghetzelfderesultaatzullenopleveren.
• Selecteerééntestcaseperequivalentieklasse:kieséénrepresentatievetestcaseuitelkeequivalentieklasse omtetesten.Dezetestcasemoetdealgemeneeigenschappenvandeklassevertegenwoordigen.
• Testdesoftware:voerdegeselecteerdetestcasesuitenbeoordeeldereactievandesoftware.Deverwachting isdatalseentestcasebinneneenequivalentieklasseslaagt,alleanderetestcasesindezelfdeklasseookzouden moetenslagen.
Dezetechniekismetnameeffectiefwanneerdeinvoerwaardenvaneensysteeminverschillendeklassenkunnen wordenverdeeldenelkvandezeklassendezelfdeverwerkingofreactievanhetsysteemzoumoetengenereren. Hetzorgtervoordathetaantaltestcasesdatnodigisomeengoededekkingtekrijgenwordtverminderd.
Voorbeeldbijhettestenvaneeninvoerveldvoorleeftijd,waarbijdegeldigeleeftijdtussen18en65jaarligt.De equivalenteklassenzoudendankunnenzijn:
• Klasse1:Leeftijd<18(Ongeldigeleeftijd)
• Klasse2:18<=Leeftijd<=65(Geldigeleeftijd)
• Klasse3:Leeftijd>65(Ongeldigeleeftijd)
Inditgevalzouhetvoldoendezijnomslechtsééntestcase,leeftijd,uitelkeklasseteselecterenomdefunctionaliteit tetesten.
Boundaryvalueanalysis
Boundaryvalueanalysis(grenswaarde-analyse)iseensoftwaretesttechniekwaarbijalleendegrenswaardenin eentestrangewordenopgenomen.Alsvoorbeeldhierbij:leeftijd.Indesoftwarewillenwevolwassenenselecteren. Danwordenalleendewaarden17en18jaargetest.Isdeuitkomst:18jaarisvolwassenen17jaarisniet-volwassen, dankloppendegrenswaarden.Inditgevalwordtaangenomendaterbijeenleeftijdonderde17ofbovende18 geenproblemenzullenoptredenendesoftwarenaarbehorenwerkt.Eenvoordeelvandezetestisdaterrelatief weinigwordtgetest.Hetgevaarisdaterbuitendegrenzenfoutenoptredendiebijhettestennietnaarvorenzijn gekomen.
Fuzz-testen
Fuzz-testenoffuzzingiseensoftwaretesttechniekdievaakautomatischofsemi-automatischwordttoegepast. Hetiseenvormvansteekproevennemen,waarbijongeldige,onverwachteofwillekeurigedatawordeningevoerd. Vervolgenswordtergecontroleerdopuitzonderingenzoalscrashes.Fuzzingwordtvaakgebruiktbijhettesten opveiligheidsproblemen.
Specificatiegebaseerdetest
CONCEPT
Despecificatiegebaseerdetestisbedoeldomdefunctionaliteitvandesoftwaretetestenvolgensdegeldende eisen.Dezemaniervantestenvereistdatdetestcaseswordenontwikkeldopbasisvandespecificatiesofvereisten vanhettetestensysteem.Detesterkanvervolgenseenvoudigcontrolerenofvooreenbepaaldeinput,deoutput welofnietgelijkisaandeteverwachteoutput.Dezewaardeisopgenomenindetestprocedurezodatdetester dezekanvergelijken.Detestcaseswordengebouwdrondderequirements.Jetestofdeapplicatiedoetwatdie zoumoetendoen.Dezetestszijnmeestalfunctioneel.Somswordenniet-functioneleonderdelengetestopdeze manier.
Visueeltesten
Visueeltestenlaatzienopwelkpuntvandesoftwareeenstoringzichvoordoet.Hetdoelhiervanisom ontwikkelaarsextrainformatieteverschaffenovereenstoring.Inplaatsvanalleendebeschrijvingkrijgtde ontwikkelaarookhetresultaatvandestoringterug.Ditverhoogtdehelderheidenhetbegripoverdestoring. Visueeltestensteltweleisenaandetestomgeving.Zomoetalleswordenvastgelegd.Ermoeteenopnamevan hetgeheletestproceswordengemaaktinvideoformaat,waarbijdetesterrealtimeinputgeeftvia beeld-in-a-picture-webcamenaudio.
Eenbelangrijkvoordeelvanvisueeltestenisdatdekwaliteitvandecommunicatieenormtoeneemt.Detester kanhetprobleemendehandelingendieleiddentothetprobleemaandeontwikkelaarlatenzien.Deontwikkelaar zalalhetbewijshebbendathijofzijnodigheeftenhoeftnietmeertezoekennaardereden.
BinnendeAgile-ontwikkelmethodiekwordtvisueeltestenveeltoegepast.DitomdatAgile-methodenveel communicatievereisentussentestersenontwikkelaars.
Gray-box-testing

Figuur 6.10 Gray-box-testen
Gray-box-testingis,watdekleuralzegt,eentussenvormtussenwhite-enblack-box-testen.Detestenworden opgezetmetkennisvaninternedatastructurenenalgoritmen.Tijdenshetuitvoerenvandezetestsheeftdetester gedeeltelijktoegangtotdebroncodevandeprogrammatuur.Omdatdegebruikerdeprogrammaconceptenkent, zaldezebeterzijnkeuzeskunnenmakentijdenshetuitvoerenvandetests.Eengray-box-testerzalinveelgevallen toeganghebbentotdedatabasesviaSQL-statements.Gray-box-testingvereisteenintelligenttestscenarioop basisvaneenbeperktehoeveelheidinformatie.
CONCEPT
Testtype
Compatibiliteitstest
Compatibiliteitisdematewaarinprogramma’sofsoftwaresamenwerken.Wanneereenprogrammanietcompatibel ismetbepaaldesoftware,zoalseenbrowserofeenbesturingssysteem,zalhetprogrammanietwerkenopdie browserofdatbesturingssysteem.Tijdenseencompatibiliteitstestcontroleerjeofjesoftwarewerktmet verschillendehardware,besturingssystemen,webbrowsers,netwerkomgevingenenanderesoftwarecomponenten.

Figuur 6.11
Eengebrekaancompatibiliteitiseenveelvoorkomenderedenvansoftwarefalen.Eengebrekaancompatibiliteit kanoptredenalsdeprogrammeursvoorhetontwikkelenentestenvansoftwarealleendenieuwsteversievan dedoelomgevinggebruiken.Erwordtvaaknietaangedachtomdesoftwareookopeerdereversiesvanbrowsers tetesten.Tochzijnerheelveelgebruikersvaneerdereversiesenookdiebehorenmogelijktotdedoelgroepvan hetprogramma.Hetgevolgkanzijndatdeapplicatienietnaarbehorenfunctioneertopeerdereversies. Maakjeeenwebapplicatie,danmoetjenietalleenopdelaatsteversiesvandemeestgebruiktebrowserstesten, maarookopoudereversies.Bijhetinrichtenvanjeontwikkelomgevingmoetjehierookrekeningmeehouden. Ontwikkeljevoormobieleplatformszoalssmartphoneentablet,danzuljemoetentestenopdeverschillende apparaten.Dehardware(ensoftware)kanonderlingnogalverschillen,ietswaarjerekeningmeemoethouden.
Regressietest
CONCEPT
Regressietesteniseentypesoftwaretestdatwordtuitgevoerdomervoortezorgendatrecentewijzigingeninde codegeennegatieveinvloedhebbenopdebestaandefunctionaliteitvandesoftware.Hetdoelvanregressietesten isomeventueleregressiefoutenoptesporen,waarbijeenwijzigingindecodeonbedoeldebijwerkingenheeft opanderedelenvandesoftware.DezetestenzijnvangrootbelangineenAgile-ontwikkelingsomgeving,waarin erregelmatigiteratiesenupdateszijnaandesoftware.Wanneerontwikkelaarsnieuwecodetoevoegenof bestaandecodewijzigen,kanhetvoorkomendatdezewijzigingenonbedoeldegevolgenhebbenvoorandere delenvandesoftware.Regressietestenhelpenbijhetsnelidentificerenvandergelijkeproblemen,waardoor teamsfoutenkunnencorrigerenvoordatzeindeproductieomgevingterechtkomen.
Belangrijkeaspectenvanregressietestenzijnonderandere:
• Wijzigingenindecodebasis:regressietestenwordenuitgevoerdnadaterwijzigingenindecodezijn aangebracht,zoalsbugfixes,nieuwefunctiesofandereaanpassingen.
• Bewakingvanbestaandefunctionaliteit:hetprimairedoeliservoortezorgendatbestaandefunctionaliteit nietisaangetastdoorrecentecodeaanpassingen.Ditomvathetvoorkomenvanregressiefouten.
• Automatisering:regressietestenwordenvaakgeautomatiseerdomdeefficiëntieteverhogenenervoorte zorgendatdetestssnelenherhaaldelijkkunnenwordenuitgevoerdnaelkecodeverandering.
• Testcasesvoorkritiekefuncties:hetidentificerenenprioriterenvantestcasesvoordemeestkritiekeen veelgebruiktefunctiesvandesoftwareomervoortezorgendatdezecorrectblijvenwerken.
• Snelleuitvoering:regressietestenmoetensnelwordenuitgevoerd,vooralineenomgevingwaarinerfrequente wijzigingenaandecodeplaatsvinden.
• Testomgeving:hetgebruikvaneengecontroleerdetestomgevingdievergelijkbaarismetdeproductieomgeving omnauwkeurigeresultatentegaranderen.
Acceptatietest
Deacceptatietestwordtuitgevoerddoordeklant,meestalindienstestomgevingopdeeigenhardware.Inhet deeloverImplementatiekomenwehieruitgebreidopterug.
Functioneeltestenversusniet-functioneeltesten
Functioneeltestenishettestenvaneenspecifiekeactieoffunctievandeapplicatie.Wanneererwordtgewerkt meteenontwikkelmethodiekdiegebruikmaaktvaneenusecaseenuserstoriesdanwordendezegebruiktom detestoptezetten.
Niet-functioneletestenhebbenbetrekkingoponderdelenvandesoftwaredienietaaneenspecifiekefunctieof gebruikersactiezijngekoppeld.Hetgaatomzakenalsschaalbaarheidofsecurity.Niet-functionelerequirements gevenvaakdekwaliteitvanhetproductweervanuithetperspectiefvandegebruikers.
Continutesten
Continutestenishetgeïntegreerdeprocesvanvoortdurendtestengedurendedegeheleontwikkelingscyclus. Ditinplaatsvanhettestentebeperkentotspecifiekefasenvandeontwikkeling,zoalsdetestfase.Continutesten iseenvoortdurend,geautomatiseerdprocesdatparallellooptmetdeontwikkeling.Hetdoelvancontinutesten isomvroegtijdigefeedbackteverkrijgen,dekwaliteitvandesoftwaretewaarborgenenproblemenonmiddellijk teidentificerenenaantepakken.
Destructieftesten
Bijdestructieftestenprobeerjeopzettelijkfoutenteveroorzaken.Hiermeetestjeofdesoftwarenaarbehoren functioneert.Erwordtgekekenofdesoftwareblijftwerken,zelfswanneererbewustongeldigeofonverwachte invoerwordtgegeven.Hierdoorwordtderobuustheidenhetfoutbeheervandesoftwaregetoond.Voorbeelden vandestructievetestszijn:
• Stresstesten:desoftwarewordtblootgesteldaaneenbelastingdiedemaximalecapaciteitoverschrijdtom tezienhoehetreageertonderdruk.Ditkanbetrekkinghebbenophetverwerkenvaneengrootaantal gelijktijdigegebruikers,hetmanipulerenvangrotehoeveelhedengegevens,ofhetdraaienvandesoftware ophardwaremetbeperktecapaciteit.
• Veiligheidstesten:hetsimulerenvanbeveiligingsaanvallen,zoalspenetratietests,omzwakkepunteninde beveiligingvandesoftwareteidentificeren.
CONCEPT
• RecoveryTesting:hettestenvanhetherstelmechanismevandesoftwarenaeenonverwachtestoring,zoals hetuitschakelenvanserversofhetabruptafsluitenvanprocessen.

Softwareprestatietesten
Prestatietestsdienenvoornamelijkomtekijkenofdesoftwareblijftpresterenondereenbepaaldebelastingen onderbepaaldecondities.Despecifiekedoelenvandeverschillendeprestatietestenlopennogaluiteen.Inalle gevallengaathetomspecifiekeprestatiesopeenbepaaldonderdeel.
• Stabiliteitstestenistestenofdesoftwareonderalleomstandighedengelijkblijftfunctioneren.Stabiliteitstesten, ookwelbelastingtesten,controlerenofdesoftwarecontinugoedfunctioneertgedurendeeenbepaaldetijd.
• Schaalbaarheidstestenistestenopgrotehoeveelhedendataofeengrootaantalgebruikers,deschaalwaarop wordtgewerkt.
• Stresstesteniseenmanieromdebetrouwbaarheidtetestenonderonverwachteofzeldzamebelasting.
Usabilitytesting
Eenusability-testiseentestnaarhetgebruiksgemakvandesoftware.Hetcontroleertofdeuserinterface eenvoudigistegebruikenentebegrijpen.Doordezetestkomendeeventueleobstakelsnaarvorendiegebruikers kunnenondervindenbijhetgebruikvandeinterface.Belangrijkeaspectenvanusability-testszijnonderandere:
• Scenario'sentaken:gebruikerskrijgenspecifiekescenario'sentakenomuittevoerenmethetproduct.Dit kanvariërenvaneenvoudigetakentotcomplexeretakendietypischzijnvoorhetgebruikvanhetproduct.
• Observatie:testleidersofonderzoekersobserverendedeelnemersterwijlzedetakenuitvoeren.Deze observatieskunnenvariërenvanhetvolgenvandeoogbewegingenvangebruikerstothetnoterenvanhun gedachtenenopmerkingen.
• Gedragsgegevensverzamelen:tijdensdetestwordengegevensoverhetgedragvandegebruikersverzameld, zoalsdeduurvandetaken,hoeveelfoutenerwordengemaaktendealgemenereactiesenfeedbackvande gebruikers.
• Subjectievebeoordelingen:gebruikerskunnenookwordengevraagdomhunsubjectievemeningtegeven overdebruikbaarheidenervaringmethetproduct.Ditkanwordengedaanviaenquêtes,interviewsof discussies.
• Doelgroepbetrekken:hetisbelangrijkomdeusability-testuittevoerenmetdedaadwerkelijkedoelgroep vanhetproduct.Ditzorgtvoorrelevantefeedbackvanmensendiedesoftwareofhetproductdaadwerkelijk zullengebruiken.
Security-test
CONCEPT
Security-testenisessentieelvoorsoftwarewaarmeevertrouwelijkegegevensverwerktmoetenworden.Hetdoel vaneensecurity-testisomkwetsbaarheden,zwakkepuntenenmogelijkebeveiligingsrisico'sindesoftwareop tesporenvoordatdezeinproductiewordtgenomen.Enkelebelangrijkeaspectenvansecurity-testinginde contextvansoftwareontwikkelingzijn:
• Penetratietesten:eenvormvansecurity-testingwaarbijhetsysteemwordtaangevallendooreenethische hacker(penetratietester)omzwakkeplekkenindebeveiligingtevinden.Hetgaatdanomhetproberente omzeilenvanbeveiligingsmaatregelenenhetontdekkenvanmogelijkezwakkeplekken.
• CodeReview:eengrondigeanalysevandebroncodeombeveiligingsproblementeidentificeren,zoalsslecht geschrevenauthenticatie-ofautorisatiecode,onvoldoendegegevensvalidatieenmeer.
• SecurityScanning:hetscannenvandesoftwareopbekendebeveiligingskwetsbaarheden,configuratiefouten enandererisico's.Ditkanwordenuitgevoerdmetbehulpvangeautomatiseerdetools.
• AuthenticatieenAutorisatietesten:verificatievandeeffectiviteitvanauthenticatie-en autorisatiemechanismenbinnendesoftwareomervoortezorgendatalleengeautoriseerdegebruikerstoegang hebbentotdejuistefunctiesengegevens.
• Encryptietesten:beoordelingvandetoegepasteencryptieomervoortezorgendatgevoeligegegevensop dejuistemanierwordenbeschermd.
• Beveiligingsbewustzijnstraining:evaluatievanhetbeveiligingsbewustzijnvanhetontwikkelingsteamen anderebetrokkenenomervoortezorgendatbeveiligingspraktijkenintegraaldeeluitmakenvanhet ontwikkelproces.
Authenticatie
Deidentiteitvaneenpersoonmoetwordengeverifieerd,watinhoudtdatiemanddaadwerkelijkiswiediegene beweerttezijn.Biometrischebeveiligingwordtsteedsvakertoegepastinsoftware,maarermoetnogwelgetest wordenofdesoftwareopeenjuistemanieromgaatmetdeidentiteitsverificatie.
Authenticatieiseenessentieelonderdeelvanbeveiliginginsoftwareontwikkeling.Hetishetverifiërenvande identiteitvaneengebruiker,systeem,ofeenanderentiteitdietoegangwiltoteensoftwaretoepassing.Hetdoel vanauthenticatieiservoortezorgendatalleengeautoriseerdepersonenofsystementoegangkrijgentotbepaalde bronnen,functiesofgegevensbinnendesoftware.
Enkelevoorbeeldenvanauthenticatieinsoftwareontwikkelingzijn:
• Gebruikersidentificatie:ditkanwordengedaandoormiddelvangebruikersnamen,e-mailadressen,ofandere uniekeidentificatiegegevens.
• WachtwoordenenCredentials:gebruikersmoeteneengeldigecombinatievangebruikersnaamenwachtwoord verstrekkenomtoegangtekrijgen.Onderanderedoorgebruikvanwachtwoordenofanderevormenvan inloggegevenszoalspincodesofbiometrischegegevens.
• Multi-FactorAuthenticatie(MFA):MFAvereistdatgebruikersmeerdereverificatiemethodendoorlopen voordatzetoegangkrijgen.Ditkaneencombinatiezijnvanietswatdegebruikerweet(wachtwoord),ietswat degebruikerheeft(zoalseentoken),enietswatdegebruikeris(biometrischegegevens).
Autorisatie
Autorisatieiseenessentieelonderdeelvaneengelaagdebeveiligingsaanpakinsoftwareontwikkeling.Hetwerkt samenmetauthenticatieomervoortezorgendatgebruikersalleendetoeganghebbentotdefunctiesengegevens dienoodzakelijkzijnvoorhunrol.Hiermeewordtonbevoegdetoegangtotgevoeligeinformatieoffunctionaliteiten beperkt.
Correcttoegepasteautorisatiebepaaltbijaanmeldingineensysteemwelkeactiesofbronneneengeauthenticeerde gebruikermagbenaderenofuitvoeren.
CONCEPT
Een(onrechtmatig)kijkjeinhetEPD
EenmedewerkervanhetBravisziekenhuisheeftovereenperiodevanvierjaarveelvuldiginhetpatiëntendossier vaneenpatiënte,deeiseresindezecivieleprocedure,gekeken.Demedewerkerheeftdezeinformatiedoorgespeeld aanhaarhuidigepartner,deex-partnervandeeiseres,dieopzijnbeurtdegegevensheeftgebruiktvoorhet schrijvenvaneenboekoverdeechtscheidingmetdeeiseres.Ineenandereprocedurehadderechteral(verdere) verspreiding/openbaringvanhetboekverboden.
Indezeproceduresteltdeeiseresdathetziekenhuisalswerkgeveraansprakelijkisvoorhetonrechtmatig inziendoordemedewerkervanhaarpatiëntgegevens(art.6:170lid1BW).Verdersteltzijdathetziekenhuis ookzelfaansprakelijkisomdatgeenpassendemaatregelentenaanzienvandecontrolevandeloggingzijn genomen(art.6:162BW).
Naar: OSWALD NUNES, Een (onrechtmatig) kijkje in het EPD, KBS advocaten, 30 september 2022
Availability(beschikbaarheid)
Ermoeteengarantiezijnvoordebeschikbaarheidvaninformatie-encommunicatiediensten.Informatiemoet beschikbaarzijnvoorgeautoriseerdepersonenophetmomentdatzedienodighebben.
Blok6 Realiserenentestenvan
Non-repudiation(niet-afwijzing)
Inbepaaldesystemenishetvanbelangdaterwordtgegarandeerddateenafzendereenberichtheeftverzonden endateenontvangerditberichtheeftontvangen.Non-repudiationiseenmanieromtegaranderendatdeafzender vaneenberichtlaternietkanontkennendathetberichtisverzonden.Tevenskandeontvangernietontkennen hetberichttehebbenontvangen.Ditsoortfunctiesmoetweluitgebreidgetestwordenomeroptekunnen vertrouwen.
Testproces
Ontwikkelaarszijnnietalleenverantwoordelijkzijnvoorhetschrijvenvancode,maarookvoorhettestenervan omervoortezorgendatdesoftwaregoedfunctioneert.Ditwordtvaakaangeduidals"shift-lefttesting".De testactiviteitenwordennaarvorenwordenverplaatstinhetontwikkelproces,zodatproblemenvroegtijdigworden geïdentificeerdenaangepakt.
Hierbijisdeontwikkelaarverantwoordelijkvoorverschillendeaspectenvanhettesten:
1. UnitTesting:Ontwikkelaarsschrijvenenvoerenunittestsuitomindividueleeenhedenvancodetetesten, zoalsfunctiesofklassen.Dezetestswordenmeestalgeautomatiseerdenrichtenzichophetcontrolerenof decodedeverwachteresultatenproduceert.
2. CodekwaliteitenRobuustheid:Ontwikkelaarsmoetenervoorzorgendatdecodegoedgestructureerd, leesbaarenrobuustis.Ditomvathetgebruikvanbestpractices,zoalshetvermijdenvanduplicatie,het implementerenvanerrorhandlingenhetvoldoenaanstandaardenvoorcodekwaliteit.
3. Integratietests:Naasthettestenvanindividueleeenheden,zijnontwikkelaarsookverantwoordelijkvoor hetuitvoerenvanintegratietestsomtecontrolerenofverschillendeeenhedencorrectsamenwerken.Dit kanondermeerhettestenvanAPI's,database-integratieendeinteractietussenverschillendemodules omvatten.
4. FunctioneleTests:HoewelfunctioneletestsvaakwordenuitgevoerddoordedicatedQA-teams,moeten ontwikkelaarsookeenrolspeleninhetidentificerenentestenvanbelangrijkefunctionaliteitenomervoor tezorgendatdesoftwareaandefunctionelevereistenvoldoet.
CONCEPT
Doortestverantwoordelijkheidteintegrereninhettakenpakketvanontwikkelaars,wordtdealgehelekwaliteit vandesoftwareverbeterdenwordenbugsvroegtijdigontdekt,watresulteertineenefficiënterontwikkelproces eneenhogereklanttevredenheid.
Bijgrotereprojectenwaarmeerontwikkelaarsbijbetrokkenzijnzalereentestomgevingwordeningericht.Het testenisdaneenapartetaakvooreenteamliddatconformdegekozentestmethodiekdetestenzaluitvoeren.
Waterval-ontwikkelingsmodel
Vaakwordtsoftwaregetestdooreenonafhankelijkegroeptesters,nadatdefunctionaliteitisontwikkelden voordatdesoftwareopgeleverdwordtaandeklant.Indepraktijkkomthetvoordatdetestfasegebruiktwordt alsprojectbuffer.Uitloopvansoftware-ontwikkelingwordtgecompenseerddoormindertijdtebestedenaanhet testen.
Eenalternatiefishetcontinutesten.Dezevormvantestengebruikjealsjewiltvoorkomendathettestenerbij inschiet.Hettestenvansoftwarebegintophetzelfdemomentdathetprojectwordtgestart.Hetisdaneencontinu testprocestothetprojectisvoltooid.
Agile-ofextreme-ontwikkelingsmodel
Het‘test-driven-software-development’-modelvereistenigevoorbereiding.Tijdensdeontwikkelingvande software,vervoordateenformeeltestteamisingericht,isdetestomgevingalgespecificeerd.Dezewordtgeschreven doordesoftware-ontwikkelaars.Netalsdesoftwarewordtookdetestbijelkesprintbijgesteld.
Agile-testeniseenonderdeelvanhetAgile-ontwikkelproces.Bijzo’nprocesgaatheteromineeniteratiede volgendestappentezetten:
• ruwevereistenverderuitwerken;
• desoftwarebouwen;
• testenvoorbereidenenuitvoeren.
Dezeactiviteitenwordendoorhetmultidisciplinaireteamuitgevoerdmetdefocusopheteindproduct.Dekwaliteit hiervaniseenteamverantwoordelijkheid.IneenAgile-teamwerktiedereenaanhetzelfdedoel:werkendesoftware opleveren.Alledisciplinesinhetteam,waarvantesteneréénis,hebbeneenzichtbaretoegevoegdewaarde.De voornaamstetoegevoegdewaardevantestenishetgevenvanfeedback,hetliefstzovroegmogelijk.Kenmerkend voorAgileisdanookdatervoortdurendwordtgetestendattestenineenAgile-ontwikkelteamgeenaparte activiteitis.Datgebeurtdoormiddelvanreviewsopdiversecriteria,maarookdooralineenzeervroegstadium testgevallenuittevoeren.Zovroegmogelijkfeedbackgevenbetekentookeenzovroegmogelijkebetrokkenheid bijhetproject.EenAgile-testerdiezijnexpertisedeeltmetzijnteamledensteltanderendaarmeeinstaatomzelf effectievertetesten.
Top-downenbottom-up

Figuur 6.13 Top-down en bottom-up
CONCEPT
Bottom-up-testen
Bottom-up-testeniseenbenaderingvantestswaarbijmodules,proceduresenfunctiesalseerstewordengetest. Daarnawordtdeintegratie(samenstelling)vandemodulesgerealiseerdengetest.Nahetintegratietestenvan lageremoduleszalhetvolgendeniveauvandemoduleswordengebouwd.Dezewordendanweergetest,waardoor demoduleskunnenwordengeïntegreerdomdaninhungeheelgetestteworden.Hetproceswordtherhaald totdatdecomponentenaandetopvandehiërarchiewordengetest.
Top-down-testen
Top-down-testeniseenbenaderingvantestswaarbijmodulesaandetopwordengetest.Elketakvandemodule wordtstapvoorstaptotheteindevandebijbehorendemodulegetest.
Zowelbottom-up-alstop-down-testenzijnzeertoepasbaarbijhetvervangenvaneendeelvaneenapplicatie.
Detestcyclus
Detestcyclusvertoontoverhetalgemeendezelfdehoofdlijnen,hoewelernatuurlijkvariatieszijntussenorganisaties enbijverschillendeontwikkelmethoden.DestappenvanhettestenvolgenshetWaterval-ontwikkelingsmodel wordenookvaakteruggezienbijanderemethoden.Weonderscheidenhierbijdevolgendestappen.
Requirements-analyse
Detestbegintbijhetbeginvandesoftware-ontwikkeling.Uiteindelijkmoeterinderequirementszijnvoorzien. Ermoetwordenbepaaldmetwelkeparametersdetestsmoetwordeningerichtomtezienofdeapplicatiewerkt.
Planning
Eriseenplannodigomdeveleactiviteitentijdenshettesteningoedebanenteleiden.Eentestplaniseendocument waarindedoelstellingen,dedoelgroep,hettestteamendeprocessenvooreenbepaaldetestzijnbeschreven.
Ontwikkelenvandetest
Ermoetentestprocedures,testscenario’s,testcases,testdatasetsentestscriptswordengemaaktomdeapplicatie tetesten.Eentestcasebestaatuitdebeschrijvingvaneenontwerpspecificatie,derandvoorwaardenentestcases (actiesdiegevolgdmoetenworden).Deinput,output,hetteverwachtenresultaatstaanindetestcase.Testers moetendeapplicatietestenopbasisvandeplannenentestdocumenten.Daarnaastwordtervandetester verwachtdatdezezijn/haarervaringentijdensdetestengebruiktomhetwerkelijkeresultaattebeschrijven.
Rapportage
Nadathettestenisvoltooid,zullendetestersverslagdoenoverdeuitgevoerdetesten.Hieruitmoetblijkenofde softwaregereedisvoorgebruik.
Analysetestresultaat
Deanalysewordtgedaandoorhetontwikkelteam,meestalsamenmetdeklant.Uitdezeanalysemoetblijkenof deapplicatiegoedwerktofdatingebruiknameuitgesteldmoetwordenenfouteneerstmoetenwordenopgelost.
Hertestenopgelostedefecten
Zodraeengebrekisopgelostdoorhetontwikkelteam,moetditdeelvandeapplicatieopnieuwgetestworden doorhettestteam.
Testplan
1.Inleiding
Indeinleidingwordteenkortemanagement-samenvattingvandetestgegeven.Destatusvanhettestplanwordt vermeld,ditkanzijnconceptofdefinitief.
2.Opdrachtformulering
CONCEPT
Indeopdrachtformuleringwordendetestopdrachtendedoelstellingenvandetestbeschreven.
3.Rapportage
• Ermoetwordenbeschrevenaanwiewordtgerapporteerd.Datkanzijndeprojectleider,detestcoördinator en/ofdeopdrachtgever.
• Ermoetwordenbeschrevenwaaruitdegewensteinformatiebestaat.Datkanzijndevoortgang,de probleemmeldingenen/oftijdverantwoording.
• Ermoetwordenbeschrevendoorwiewordtgerapporteerd.Datkanzijndeprojectleideren/ofde testcoördinator.
• Defrequentievanrapporterenwordtweergegeven.
4.Organisatie
4.1Afbakening
Hierinstaateenkortebeschrijvingvanhettetestensysteemendetestomgeving.Ermoetzijnbeschrevenwaarop getestwordtenhoedatgebeurt.Ditdoejedoordetestfaseringendeuittevoerentestentebenoemen.Bij voorkeurdeeljehetsysteemopintestbaremodules.Demoduleswaarvooreenafzonderlijktestontwerpwordt gemaaktmoetenvooralniettegrootzijn.
4.2Takenenverantwoordelijkheden
Detakenenverantwoordelijkhedenwordenhiervastgesteldentoegewezen.Doorwiewordenwelketests uitgevoerd,wieheeftdeleiding,wieverwerktdewijzigingsvoorstellen?
4.3Overzichtproducten,kwaliteitseisenenstopcriteria
Eenopsommingvanproductendiegetestgaanwordenmetdaaraangekoppelddekwaliteitseisenenstopcriteria.
4.4Documentatie
Inhettestdossiermoetwordengedefinieerdwelkedocumentenwelwordenopgenomenenwelkeniet.
4.5Testomgeving
Detestomgevingmoetgedefinieerdworden.Bijvoorkeurbeschiktelkeindividueletesterovereeneigen testomgeving.
4.6Versiebeheer
Hetversiebeheerisbijhettestenergbelangrijk.Allesmoetondubbelzinnigvaststaan.Alletestwerkzaamheden zulleneensamenhanghebbenenindeloopvaneenprojectkunnennieuweversiesontstaanvanspecificaties, tetestenproductenentestproducten.Versiebeheerisessentieelomgefundeerdeuitsprakentekunnendoen overdekwaliteitvaneengetestproduct.
• Welkeversiesbestaanervandespecificatieswaaropgetestwordt?
• Welkeversiesbestaanervandetetestenproducten?
• Welkeversiesbestaanervandetestproducten?
• Waarbevindenzichdeverschillendeversies?
• Welkeversievanhettetestenproductisgetestenmetwelktestproduct?
4.7Planning
Decompletetestwordtvoorafgepland.Deplanningvanhettestprocesisafhankelijkvandeplanningvanhet projectalsgeheel.Debenodigdecapaciteitenmiddelenmoetentegendeactiviteitenwordenafgezet.Opbasis hiervankandedoorlooptijdberekendwordenenopleverdatawordengepland.
Bijhetopstellenvandeplanningwordtonderandererekeninggehoudenmet:
• devolgordewaarin(gewijzigde)delenvanhetsysteembeschikbaarkomen;
• deonderlingesamenhangvanfuncties;
• hetverwachteaantalhertesten;
• deprioriteitdieeendeelvanhetsysteemkanhebben.
CONCEPT
Testrapport
Wanneermeerdereontwikkelaarsaaneenapplicatiewerkenendezewordtgetestdooraangewezentesters,dan moetendetestersderesultatenvandeteststerugkoppelennaardeontwikkelaars.Ominditsoort ontwikkeltrajectenderesultatenvandeverschillendetestengoedtekunnenvergelijken,iseenstandaarduitvoering vandetestrapportagebelangrijk.
Eentestrapportbestaatuiteenaantalverplichtehoofdstukken.Alservooreenbepaaldhoofdstukgeen rapportage-inhoudaanwezigis,moethethoofdstuktochwordenopgenomenzodatbekendiswaaromdat hoofdstuknietverderisuitgewerkt.
Doormiddelvanhettestrapportleggendetestersverantwoordingafoverdewerkzaamhedendiezijhebben verricht.Eentestrapportkanuitdevolgendehoofdstukkenbestaan:
1. Identificatie(TestPlanIdentifier)
Hettestplanmoeteenidentificatiehebben.Ditwordtzogekozendathetgerelateerdisaandeversievande softwarediewordtgetest.
2. Inleiding(Introduction)
Indeinleidingwordteenkortemanagementsamenvattinggegevenvandeuitgevoerdetest.
3. Beschrijvingtestobjecten(Testitems)
Hierwordtaangegevenwelkeproductenwordengetest,welkefunctiedezeproductenhebbenenomwelke redenzebijdetestbetrokkenzijn.
4. Functiesdiemoetenwordengetest(Featurestobetested)
Kanonderanderewordenaangegevenmetbehulpvandesequentiediagrammen.Verderkunnenhierde testscenario’swordenopgenomen.
5. Functiesdienietmoetenwordengetest(Featuresnottobetested)
Kanonderanderewordenaangegevenmetbehulpvandeuse-sequentiediagrammen.
6. Uitvoeringtestplan
Hierbeschrijfjeofhettestplanvolledigkonwordenuitgevoerd.Alsdatnietkon,moethierderedenvande afwijkingwordenopgenomen.Perteststapuithettestplanmoetaangegevenwordenwatderesultatenzijn, wiedeteststapheeftuitgevoerd,omwelkeactiviteithetgaatenomwelkdeel(module)vandeapplicatie hetgaat.
7. Testresultaten(geslaagd/mislukt)
Resultatenvanelketest,inclusiefgeslaagde,mislukteenovergeslagentests.Zonodigaangevuldmet logbestandenenscreenshotsomdetestresultatenteondersteunen.
8. Conclusiesenaanbevelingen
Aandehandvanderesultatenwordeninhetkortdebelangrijksteconclusiesenaanbevelingenbeschreven.
9. Eindoordeelenadvies
Ermoetwordenbeschrevenwatdealgemeneindrukkenvanhetopgeleverdeproductzijnenofeen aanvaardbaarniveauvankwaliteitbereiktis.Wanneerermeerderemoduleszijngetestmoetereen opsommingkomen,zowelvanproductendieinproductiegenomenkunnenwordenalsvanproductendie (nog)nietgereedzijn.
10. Akkoordmanagement
Hetondertekenenendaterenvanhettestrapportdoorverantwoordelijkenbekrachtigtdegoedkeuringvan deproductendieinhetonderdeel‘Eindoordeelenadvies’alsgereedaangemerktworden.Tevensontslaat hetdetestersvanhunverantwoordelijkhedenenverdertestwerk.
Opdracht3 Testenvansoftware
Raadpleegzonodigdetheorieoverhettestenvansoftware.
a. Welkezakenzijnvanbelangbijhettesten?
CONCEPT
b. Ishetmogelijkomnahettestentestellendatdesoftwarefoutlooswerkt?
c. Nietallesoftwaregebrekenzijnhetgevolgvanhetcoderenvanfouten.Watzoueenredenvanduregebreken aansoftwarekunnenzijn?
d. Waaromishetzowelefficiëntalseffectiefopzettenvaneentestzeerbelangrijk?
e. Watzijnstatischetesten?
f. Watisdynamischtesten?
g. Welkebenamingwordtookwelvoorwhite-box-testengebruikt?
h. Watwordtergetestmetwhite-box-testen?
i. Watwordter niet getestmetwhite-box-testen?
CONCEPT
j. Welkemethodenwordengebruiktbijwhite-box-testen?
k. Wattestjemeteenblack-box-test?
l. Wathoudtdeblack-box-testmethodeEquivalencepartitioningin?
m. Wathoudtdeblack-box-testmethodeBoundaryvalueanalysisin?
n. Wathoudtdeblack-box-testmethodeFuzz-testenin?
o. Wathoudtdeblack-box-testmethodeSpecificatiegebaseerdetestenin?
CONCEPT
p. Wathoudtdeblack-box-testmethodevisueeltestenin?
q. Watishetvoordeelvandeblack-box-testmethodevisueeltesten?
r. Metwelketestkunnenwehetbestetestenofsoftware-onderdelencorrectsamenwerken?
s. Watisfunctioneeltesten?
t. Watisniet-functioneeltesten?
u. Watisdestructieftesten?
CONCEPT
v. Opwelkepuntenkansecuritygetestworden?
w. Watisbottom-up-testen?
Blok6 Realiserenentesten
x. Watistop-down-testen?
y. Hoeisdecyclusvoorhettesteninhoofdlijnenopgezet?
CONCEPT
6.3
Begrippenlijst
Acceptatietest
Eentestomvasttestellenofdesoftwarevoldoetaandeeisenenwensenvandeopdrachtgever.
Assembleertaal
Eenlaag-niveauprogrammeertaaldienauwverbondenismetdearchitectuurvaneenspecifiekecomputerof processor.
Authenticatie
Deidentiteitvaneenpersoonmoetwordenbevestigd.
Autorisatie
Ermoetgetestwordenofeengebruikervaneenbepaaldedienstdezewelmaggebruiken.
Availability
Ermoeteenwaarborgvaninformatie-encommunicatiedienstenzijn.
Black-box-test
Eenvormvansoftwaretestenwaarbijdetestergeenkennisheeftvandeinternestructuur,logicaofbroncode vandesoftwarediewordtgetest.
Bottom-up-testen
Eenbenaderingvantestswaarbijmodules,proceduresenfunctiesalseerstewordengetest.
Boundaryvalueanalysis(grenswaarde-analyse)
Eensoftwaretesttechniekwaarbijalleendegrenswaardenineentestrangewordenopgenomen
Broncode-editor
Eenteksteditordieisontworpenvoorhetbewerkenvandebroncodevancomputerprogramma’s.
Bug
CONCEPT
Eenfout,defect,ofonverwachtgedragineencomputerprogrammaofsysteem.Bugsontstaanmeestalalsgevolg vanprogrammeerfouten,logischefouten,ontwerpproblemen,ofonvoorzieneomstandighedentijdensde ontwikkelingvansoftware.
Compatibel
Bijelkaarpassend;kunnenwerkenmetouderebestanden.
Compatibiliteitstest
Eentestwaarmeedematewaarinprogramma’sofsoftwaresamenwerkengemetenwordt.
Compiler
Eenprogrammadateeninbrontaalgeschrevenprogrammavertaaltineendoeltaal.
Continutesten
Hetuitvoerenvangeautomatiseerdetestsalsonderdeelvandesoftware-ontwikkeling.
Destructieftesten
Bijdestructieftestenprobeerjebewustfoutenteveroorzaken.
Documentatiegenerator
Eenprogrammawaarmeeautomatischdocumentatiegegenereerdkanwordenuitcommentaarindecode.
Dynamischtesten
Eenvormvansoftwaretestenwaarbijdesoftwarewordtuitgevoerdomhetgedrag,deprestatiesenandere kenmerkenervanteevalueren.
Equivalencepartitioning
Deinvoergegevensvaneensoftware-eenheidwordenindelenequivalentegegevens(gelijkegegevens)opgedeeld.
Opbasishiervanwordendetestcasesgemaakt.
Functioneeltesten
Hettestenvaneenspecifiekeactieoffunctievandeapplicatie.
Fuzz-testen
Eensoftwaretesttechniekdievaakautomatischofsemi-automatischwordtuitgevoerd.
Gray-box-testing
Eentussenvormtussenwhite-enblack-box-testen.Detestenwordenopgezetmetkennisvaninternedatastructuren enalgoritmen.
IntegratedDevelopmentEnvironments
Eensoftwaretoepassingdieprogrammeursondersteuntbijhetontwikkelenvansoftware.EenIDEbiedtvaakeen geïntegreerdesetvantools,functiesenfaciliteitendiehetontwikkelingsprocesvergemakkelijkenenverbeteren.
Linkeditor(linker)
Eenprogrammadatdooreencompilergegenereerdeobjectbestandencombineerttotéénuitvoerbaarbestand.
Machinecode
CONCEPT
Delaagsteprogrammeertaaldiedirectbegrepenwordtdoordehardwarevaneencomputer,metnamedeCentral ProcessingUnit(CPU).Hetbestaatuitbinairecodes,diebestaanuitreeksenvanenenennullendiede basisinstructiesvoordecomputervertegenwoordigen.
Non-repudiation
Inbepaaldesystemenishetvanbelangdaterkanwordengegarandeerddateenafzendereenberichtheeft verzondenendateenontvangerditberichtheeftontvangen.
Prestatietests
Testsdiedienenomtekijkenofdesoftwareblijftpresterenondereenbepaaldebelastingenonderbepaalde condities.
Regressietesten
Testendiedienenvoorhetvindenvandefectennadatereengrotecodewijzigingisdoorgevoerd.
Requirements
Gedetailleerdebeschrijvingenvanwateensysteem,productofdienstmoetkunnendoenomtevoldoenaande verwachtingenenbehoeftenvanbelanghebbenden.
Security-testen
Security-testenisessentieelvoorsoftwarewaarmeevertrouwelijkegegevensverwerktmoetenworden.
Sequentiediagram
EentypeUML-diagramdatdeinteractiesencommunicatietussenverschillendeobjectenineensysteemweergeeft. Hetlegtdesequentiëlevolgordevanberichtenofoproepentussenobjectenvastenbiedteenvisueleweergave vanhoeeenspecifiekscenarioofproceszichontvouwtbinneneensysteem.
Specificatiegebaseerdetest
Eentestdiebedoeldisomdefunctionaliteitvandesoftwaretetestenvolgensdegeldendeeisen.
Statischetesten
Eenvormvansoftwaretestenwaarbijdeevaluatievanhetsoftwareproductwordtuitgevoerdzonderhet daadwerkelijkuittevoeren.
Teksteditor
Eencomputerprogrammawaarmeeonopgemaaktedigitaletekstgemaaktenbewerktkanworden.
Testdocumentatie
Deverzamelingdocumentendiewordengemaakttijdenshettestprocesomverschillendeaspectenvandetests tedocumenteren.
Testplan
Eengedetailleerddocumentdatdeaanpakenhetoverzichtvanhettestprocesvooreenspecifiekprojectofeen specifiekesoftwaretoepassingbeschrijft.
Testscenario
Eengedetailleerdebeschrijvingvaneenspecifiekeinteractieofsituatiediewordtgebruiktomeenbepaaldaspect vaneensysteemtetesten.
Teststrategie
Eenalgemeenplandatdeaanpakenhetontwerpvoorhettestenvansoftwarebeschrijft.
CONCEPT
Top-down-testen
Eenbenaderingvantestswaarbijmodulesaandetopwordengetest.Elketakvandemodulewordtstapvoor staptotheteindevandebijbehorendemodulegetest.
Usability-test
Eentestnaarhetgebruiksgemakvandesoftware.
Versiebeheer
Eensysteemwaarmeewijzigingenindocumenten,broncode,softwareconfiguratiesofanderesoortenbestanden kunnenwordengevolgdengecontroleerdoverdetijd.
Versienummer
Eennummerdataangeeftwelkeversievaneenprogrammaisgeïnstalleerd.
Visueeltesten
Visueeltestenlaatzienopwelkpuntvandesoftwareeenstoringzichvoordoet.Hetdoelisomontwikkelaarste voorzienvanextrainformatieomtrenteenstoring.
White-box-testen
Eenvormvansoftwaretestenwaarbijdetestertoegangheefttotdeinternestructuurendebroncodevande software.
6.4 Praktijkopdrachten
Opdracht4 LibreOfficetesten
Dezeopdrachtvoerjeuitineengroepjevandrieofvierstudenten.JegaatopensourcesoftwareLibreOffice gebruikenomtetesten.DeopzetvoorhettestplanvoordeLibreOfficeishierondergegeven.
Opdracht:
• InstalleerLibreOfficeopéén(ofmeer)vanjulliepc’s.
• Neemonderstaandtestplanoverengeefinvullingaandevolgendepunten:
– Vuldevakkentussendevierkantehaakjes[]in;
– Voerdetestactiviteiten,genoemdonderhetkopje“Testactiviteiten”,uit;
– Realiseerdeonderdelenonderhetkopje“Testafsluiting”.
TestplanvoorLibreOffice
Projectgegevens:
• Projectnaam:LibreOfficeTest
• Versie:[VersievanLibreOfficediewordtgetest]
• Projectleider:[Naamvandeprojectleider]
• Datum:[Datumvanhettestplan]
Inleiding:DittestplanheefttotdoelhettestprocesvoorLibreOfficetedefiniërenenteorganiseren.LibreOffice iseenpopulaireopensourcekantoorsoftwaredietekstverwerking,spreadsheets,presentatiesenanderefuncties biedt.HettestenisgerichtophetwaarborgenvandekwaliteitenbetrouwbaarheidvanLibreOffice.
Doelstellingen:
1. Desoftwarefunctioneelenprestatiegerichttesten.
2. Bugsenfoutenidentificerenendocumenteren.
3. DenalevingvanLibreOfficemetstandaardenenspecificatiesvalideren.
CONCEPT
Testomgeving:
• Besturingssysteem:[VermeldhetbesturingssysteemwaaropLibreOfficewordtgetest,bijvoorbeeldWindows, Linux,macOS.]
• Hardwarevereisten:[Vermeldeventuelespecifiekehardwarevereisten.]
• Testomgeving:[Beschrijfwaardetestenwordenuitgevoerd,bijvoorbeeldopeentestserveroflokalemachines.]
Teststrategie:
• Functioneletests:TestdefunctionaliteitenvanLibreOffice,zoalstekstverwerking,spreadsheets,enpresentaties.
• Prestatietests:EvalueerdeprestatiesvanLibreOfficebijhetopenenenbewerkenvandocumenten.
• Compatibiliteitstests:Controleerdecompatibiliteitmetverschillendebesturingssystemenenbestandsformaten.
• Gebruiksvriendelijkheidstests:BeoordeeldebruikbaarheidengebruikersinterfacevanLibreOffice.
• Veiligheidstests:Identificeereventuelebeveiligingskwesties.
• Stabiliteitstests:TestdestabiliteitenbetrouwbaarheidvanLibreOfficebijlangduriggebruik.
Testactiviteiten:
1. OpstellenvantestcasesvoorelkfunctioneelgebiedvanLibreOffice.
2. Uitvoerenvandetestcasesendocumenterenvanresultaten.
3. Rapporterenvangeïdentificeerdebugsenfouten.
4. Heruitvoerenvantestsnabugfixes.
5. Documenterenvantestrapportenenbevindingen.
Testschema:
• [Vermeldhierhetgeplandetestschema,inclusiefdedataentijdstippenvantestactiviteiten.]
Verantwoordelijkheden:
• [Vermelddenamenvandepersonenofteamsdieverantwoordelijkzijnvoorverschillendetestactiviteiten, zoalstestcase-ontwikkeling,testuitvoering,enrapportage.]
Risico's:
• [Identificeerpotentiëlerisico'sdievaninvloedkunnenzijnophettestproces,zoalstijdgebrek,onverwachte technischeproblemen,enzovoort.]
Testafsluiting:
• Evaluatievantestresultatenenbevindingen.
• Opstellenvaneentestrapportmetsamenvatting,geïdentificeerdefoutenenaanbevelingen.
• Documentatievangeleerdelessenenverbeterpuntenvoortoekomstigetestprojecten.
CONCEPT
6.5 Terugblik
Opdracht5 Terugblik
Zeteenkruisjeindekolomdievoorjouvantoepassingis.
Beoordelingscriteria
Ja
Jekunthetrealiserenentestenvansoftwarevoorbereidendoordekeuzevandejuiste tools.
Jekunteenontwikkelomgevinginstallerenentesten.
Jekuntsoftwarefunctioneeltestenendaarverslagvandoen.
Jekuntversiebeheeropeencorrectewijzetoepassen.
Opdracht6 Terugblik
Denknaoverwatjehebtgedaaninditblok. a. Noemtweedingenwaaroverjetevredenbent.
1. 2.
b. Noemtweedingendiejedevolgendekeeranderswiltdoen.
1. 2.
CONCEPT
c. Vraagjedocenten/ofleermeesteromfeedback.
Tops:
Tips:
NeeCONCEPT

Blok7
Ingebruiknemenvansoftware
CONCEPT
Leerdoelen
• Jekuntdebelangrijkstewet-enregelgevingrondlicentiesopadequatemaniertoepassen.
• Jekuntbijdeopleveringvaneenproductdejuistepresentatietechniekentoepassen.
• JekuntdebelangrijksteprocessenuitApplicationServicesLibraryindejuistecontextplaatsen.
• JekuntbeoordelenofhetbeheervandatagebeurtconformdeAlgemeneVerordeningGegevensbeveiliging.
Alsdesoftwareovergaatvanontwikkelaarnaargebruikerstartdeimplementatiefase.Ditgebeurtopbasisvan overeenkomsttussenontwikkelaarenopdrachtgever.Hierinstaanafsprakenoverfunctionaliteit,testenen aansprakelijkheid.Onvoldoendetestenkanleidentotonverwachtekostenendeovereenkomstbepaaltwie verantwoordelijkisnaacceptatie.Hetisvanbelangomgrondigtetesten.Deimplementatietestiscruciaalvoor allebetrokkenpartijenenvormteenintegraalonderdeelvandeimplementatie.
Opdracht1 OriëntatieopdrachtIngebruiknemenvansoftware

InhetRacketcentrumstaateenautomaatwaarpadellerseenpadelracketkunnenhuren.Omeenrackettehuren moetdepadellergeregistreerdzijn.Depadellermeldtzichmetzijnbankpasbijhetautomaat.Alsdepadeller bekendisinhetsysteem,kanhijeenracketkiezenenvervolgensbetalenmetzijnpas.Gaatditgoed,danrolter eenracketuitdeautomaat.
Beschrijfdevolgendesenario'sdiekunnenspelenbijditautomaat.
• scenario1.Klantneemtracketaf
• scenario2.Klantheeftonvoldoendesaldo
• scenario3.Geenpapierinprinter
• scenario4.Racketnietvoorradiginautomaat
CONCEPT
7.1 Implementatie

Deimplementatieishetmomentwaarophetsysteeminproductie wordtgenomen.Degebruikersgaanmethetsysteemwerken:het systeemgaatlive. Implementerenwordtvaakgedaandooreenspecialist.Bij implementerenwordendanookanderecompetentiesgevraagddan bijhetprogrammeren.Bijimplementerenligtdenadrukveelmeer opdeorganisatiedanoptechniek.Deimplementatiekentde volgendeactiviteiten:
Figuur 7.1Blok7 Ingebruiknemen
• plannenenorganiserenvanalleactiviteiten;
• testen;
• compleetmakenvansysteem-engebruikersdocumentatie;
• motiverenvangebruikers;
• startgegevensinhetsysteeminvoeren;
• ‘kinderziekten’enopstartproblemenbegeleiden;
• hetproductiesysteemvullenmetstartgegevens;
• evaluerenvandeimplementatie.
Plannenenorganiseren
Organiserenishetjuistencompleetbenoemenvanalleactiviteiten.Dezeactiviteitenmoetenwordengekoppeld aan(groepen)medewerkers.Welkemedewerkersmoetengeïnstrueerdengemotiveerdworden?Natuurlijkmoet iedereenzijndeelvandetaakgoedkunnenuitvoerenendebenodigdematerialenmoetenwordengeregeld. Plannenisactiviteitenzodaniguitzettenindetoekomstdatjenaareengo-live-datumtoewerkt.Eenplanning kanenkeledagen,wekenofmaandenbetreffen.Deplanningisbelangrijkvoorallebetrokkenen.Zekerde opdrachtgeverwilwetenwanneerzijnorganisatiemetdeapplicatiekanwerken.Tijdenshetuitvoerenvande acceptatietesthoudjetoezichtopdevoortgangvanactiviteiteninrelatietotdeplanning.Waarnodigstuurjebij eninformeerjedeopdrachtgeverendeoverigebetrokkenen.Eenplanninghalenisheelbelangrijk,maarvaak nieteenvoudig.

Testen
CONCEPT
Testeniscontrolerenofhetsysteemdoetwatisbeloofd.Detechnischetestenhebbenalplaatsgevondenineen eerderefasevandeontwikkelingvandeapplicatie. Nugaathethoofdzakelijkomfunctionaliteit.Hetresultaatvantechnischetestenisdatdesoftwaretechnisch werkt.Deerrorszijnverholpen,desoftwarelijkttewerkenendesnelheid(performance)isvoldoende.Defouten diekondenwordenvoorzienzijngetestenopgelost.Defunctioneletest(werkthetsysteemofonderdeelzoals hetisontworpen?)isuitgevoerd.Waarnodigzijnernogaanpassingengedaan.Dankomteenbelangrijkmoment: accepterendegebruikershetsysteemopbasisvandefunctiesenprestaties?
Figuur 7.2 PlanningCompleetmakenvansysteem-engebruikersdocumentatie
Ophetmomentdatdeapplicatiewordtgebruikt,moetendegebruikersentechnischmedewerkersantwoorden ophunvragenkunnenopzoeken.Hetkomttevaakvoordatgebruikersdocumentatietelaatafis.Indiegevallen blijftallekennisbeperkttotdehoofdenvanontwikkelaars,wateenrisicovormtvoordebedrijfsvoering.
Motiverenvangebruikers
Eensysteemwerktpasgoedalsdegebruikerstevredenzijn.Cursussen,nettedocumentatieenproblemenen wensenverwerkenzullenhierbijeenbijdrageleveren.Demeestegebruikershebbenweerstandtegeneennieuw ofaangepastsysteemenheneennieuwsysteemlatenaccepterenvraagtveelinspanning.
Startgegevensinhetsysteeminvoeren
Zolanghetsysteemwordtgebouwd,ishetgevuldmettestgegevens.Ophetgo-live-momentmoethetsysteem gevuldzijnmetderealtime-gegevens.Alsdegegevensnietup-to-datezijn,wordeniederprobleemeniedere kinderziekteuitvergroot,watdeacceptatievaneensysteemvermindert.
Kinderziektenenopstartproblemenbegeleiden
Demeestkritischefaseisdeperiodedirectnahetgo-live-moment.Tijdensheteerstegebruikkomenproblemen aanhetlichtdiezosnelmogelijkmoetenwordenopgelost.Iedersysteemdatnieuwingebruikwordtgenomen, zalproblemenkennendieniemandheeftvoorzien.Eriseenbepaaldehoeveelheidtegenslagendiedoorde gebruikerzalwordengeaccepteerd,maardiefoutenmoetenwelsnelenzichtbaarwordenopgelost.
‘BigBang’ofschaduwdraaien
Omeennieuwsysteemingebruiktenemenzijnertweeuitersten.DeeersteisdeBigBang,waarbijhetoude systeeminéénkeerwordtvervangendoorhetnieuwe.Hetnieuwesysteemwordtdirectingebruikgenomenen hetoudesysteemwordtgestopt.Meestalwordtdeconversievanhetoudenaarhetnieuwesysteemineen weekendgedaan.Degebruikerswordenhiervanvoorafopdehoogtegesteldenalsallesgoedgaat,startenze opmaandagmethetnieuwesysteem.

CONCEPT
Bijschaduwdraaiendraaienhetoudeennieuwesysteemgedurendeeenbepaaldetijdnaastelkaar.Afhankelijk vandeomvangencomplexiteitvanhetsysteemkanditdagen,wekenofmaandenduren.Indeperiodevan schaduwdraaienwordenbeidesystemennaastelkaargebruikt.
Figuur 7.3 Big Bang
Figuur 7.4 Schaduwdraaien
VaakwordtereentussenvormgebruikttussendeBig-Bang-methodeenschaduwdraaien.Ditnoemenweeen gefaseerdeovergang.Bijeengefaseerdeovergangwordthetnieuwesysteempermoduleopgeleverd.Elkemodule wordtdanmeteenBigBangingebruikgenomen.

Figuur 7.5 Tussenvorm Big-Bang-methode en schaduwdraaien
CONCEPT
VoordelenvandeBigBang-methodezijndelagekostenenhetfeitdatersprakeisvanmaaréénwerkwijze.Het nadeelisdateventuelekinderziektengrotegevolgenkunnenhebbenvoordebedrijfsvoering. Eenvoordeelvanschaduwdraaienisdateventuelekinderziektenweiniggevolgenhebbenvoordebedrijfsvoering. Nadelenzijndehogerekostenenhetdubbelewerkombeidesystemensynchroontelatenlopen.
Acceptatietest
Bijdeimplementatievansoftwarevindteenacceptatietestplaats.Hetdoelhiervanisvaststellenofdesoftware voldoetaandeeisenenwensenvandeopdrachtgever.Datdoejedoordeopgeleverdeapplicatiesystematisch tetestenentebeoordelen.Deconclusiezoumoetenzijndatdesoftwaregeschiktisvoorbedrijfsmatige ingebruikname.Daaromwordtafgesprokenbinneneenbepaaldetijd,conformvoorafvastgelegdeeisen,de applicatietetesten.
Hetresultaatvaneenacceptatietestmoetzijndatdegebruikersakkoordgaanmetdesoftwarezoalsdieopdat momentwerkt.Alsmenwildatdesoftwareandersmoetwerken,danmoethetontwerpwordenherzienenzet meneengrotestapteruginhetontwikkeltraject. Deacceptatietestvergelijktheteindresultaatvanhetontwikkelprocesmetdehuidigebehoeftenvandegebruikers. Eriseenkansdatmeninmiddelstotnieuweinzichtenisgekomen.Deoorspronkelijkgeformuleerdefunctionele eisenlopendanachterbijdehuidigevraag.Voordeontwikkelaarishetbelangrijkonderscheidtemakentussen onvolkomenhedenennieuweofgewijzigdefunctioneleeisen.Alsleveranciervandesoftwarezuljede onvolkomenhedenmoetenherstellen.Nieuweofgewijzigdefunctioneleeisenzuljealsmeerwerkaanbiedenom terealiseren.Eengoedopgezetteacceptatietestisdanookergbelangrijk.
Deacceptatietestwordtgebruiktomdevolgendezakentetesten:
• deconversie(procedure)waarmeejehetbestaandesysteemuiteindelijkzultoverzettenopdenieuwesoftware;
• dedocumentatievoorbeheerdersengebruikers;
• defunctionaliteitvanhetnieuwesysteem:jemoetalleaspectenvangedragenresultatenbeoordelenzoals zezijnovereengekomenindespecificaties;wordtinallerequirementsvoorzien?
• degebruiksvriendelijkheid;
• ofdeperformancevoldoetaandeminimumvoorwaardenvolgensdeovereengekomensysteemeisen;
• deproceduresvoorhandmatigewerkzaamheden;
• inhoeverredesoftwarevoldoetaankwaliteitsgarantieszoalsovereengekomen;
• koppelingenmetandereinformatiesystemen;
• robuustheid.
Meteenacceptatietestbeginjenadat:
• alleconversieszijnuitgevoerdensysteemkoppelingentotstandzijngebracht;
• alledocumentatiebeschikbaaris;
• deontwikkelingvandesoftwarevolledigisafgerond;
• desoftwarevanvoldoendekwaliteitis;
• desoftwarevolledigisopgeleverdengeïnstalleerd;
• ereensysteemtestisuitgevoerd.
Globaalkunjeeenacceptatietestalsvolgtopzetten:
• opstellenvaneentestplan;
• inrichtenvandetestomgeving;
• makenvantestscenario’softestcases;
• inrichtenvaneenadministratieveorganisatievoorhetverzamelenenadministrerenvantestresultaten;
• uitvoerenvandeacceptatietest;
• resultatenvandetestrapporteren.
Eentestplanopstellen
CONCEPT
Hettestplanisdeorganisatievandetest.DeeerdergebruiktezesW’szijnweervantoepassing:wie,wat,wanneer, welkemanier,waarenwaarom.

7.6 Testplan opstellen
Eentestplankandevolgendehoofdstukkenbevatten:
1.Inleiding
2.Opdrachtformulering(waarom)
3.Rapportage
4.Organisatie
4.1.Afbakening(wat)
4.2.Takenenverantwoordelijkheden(wieopwelkemanier)
4.3.Overzichtproducten,kwaliteitseisenenstopcriteria(wat)
4.4.Documentatie
4.5.Testomgeving(waar)
4.6.Versiebeheer
4.7.Planning(wanneer)
Detestomgevinginrichten
Deacceptatietestwordtineenrelatiefkorteperiodeuitgevoerd.Daaromishetbelangrijkomallesgoedvoorte bereiden.Devolgendestappenzijndaarinbelangrijk:
• Richtdetestomgevingoptijdin.Hetbeschikbaarmaken/hebbenvanhardware,software,documentatie, licentiesenwerkruimteishierbijdekern.Zorgdatdemedewerkerstijdigbeschikkenoverde gebruikershandleidingendefunctionelespecificatiesvandetetestensoftware.
• Informeerdemedewerkersdieaandeacceptatietestdeelnemenvantevoren.
• Medewerkersdiedetestgaanuitvoeren,moetenvooraanvangvandetestvoldoendebasisvaardigheden hebbenmethetoperatingsystemendeuserinterface.Zemoetendenieuweomgevingtestenennietallerlei zakendieerniettoedoen.
Testscenario’softestcasesmaken
Testcase
CONCEPT
Eentestcaseiseengedetailleerdebeschrijvingvandestappendiemoetenwordengenomentijdenshettesten. Hetverwachteresultaatmoetzijnbeschrevenenvandetestuitkomstmoetwordenvastgelegdofdezeaande verwachtingvoldoet.Bijdetoepassingvaneentestcaseishetdocumenterenvanderesultatenheelbelangrijk. Hetvoordeelvantestcasesschrijvenmetzoveeldetailsisdatdeontwikkelaarsaltijdenshetschrijvenvandetest scherpwordengehoudenopdefunctionaliteitvandesoftware.Eenandervoordeelisdateventuelebugsheel eenvoudigzijnterugtevindendoordetestcasenatespelen.Welkostdezemaniervantestenergveeltijd,waardoor hijkostbaaris.
Testscenario
Hettestscenarioiseentestconceptwaarbijinenkeleregelswordtbeschrevenwatdetetestenonderdelenzijn. Bijtestscenario’sgaatheteromdatdetesterszelfnadenkeneneventueeldetailsmetdeontwikkelaarbespreken. Dezemaniervantestenkostveelmindertijddantestcases,zowelbijhetschrijvenvanhetscenarioalstijdens hetuitvoerenvandetest.Tijdenshettesten,zekerbijuitgebreideomgevingen,zullendeverschillendetesters ideeënuitwisselen.Hierdoorontstaatruimteommetvoorstellentekomentotaanpassingenverbeteringvande verschillendemodules.Hetnadeelisdatalleeninhoudelijkdeskundigendetestscenario’skunnenuitvoeren.Om detesttekunnenuitvoeren,moetjewetenwaarhetovergaat.Jemoetbekendzijnmethetproductieproces waarvoordesoftwareisontwikkeld.
Methetschrijvenvantestscenario’s(gebruikershandelingen)entestsets(data)kunjealbeginnenzodrade functionelespecificatiesbeschikbaarzijn.Wachtjemethetschrijvenvandetestscenario’stothetlaatstemoment, danloopjekansdatjezakengaatvergeten.
Zoweltestcasesalstestscenario’skunneneenvoudigwordenopgezetopbasisvanhetuse-case-diagramende use-case-tabellen.
Voorbeeldwebshop
Alsvoorbeelduitdewebshophetonderdeelwinkelwagen.

Figuur 7.7 Use-case-diagram webshop
Bijeentestcasemoetelkeactiviteituithetuse-case-diagramzijnuitgewerktineenuse-case-tabel.
Naam
Versie
Actor
CONCEPT
Artikeltoevoegen–Winkelwagen
1.0
Klant
Preconditie
Beschrijving
Uitzonderingen
Niet-functioneleeisen
Postconditie
Webshopisonline
1 Klantkiestartikel
a.Kiesartikel
b.Geefspecificatiesop(maat,kleurenzovoort)
c.Kiesaantal
d.Kiestoevoegenwinkelwagen
2 Klantkiestartikelwaarvanonvoldoendeinvoorraadis
a.Kiesartikel
b.Geefspecificatiesop(maat,kleurenzovoort)
c.Kiesaantal
d.Kiestoevoegenwinkelwagen
e.Systeemmeldtonvoldoendevoorraad,kiesaantal
f.Scenariovanafc
Eentransactiemoetookopsmartphonezijnuittevoeren
Klantheeftzijnbestellinggeplaatstenkanovergaantotafrekenen
Debeschrijvingenallemogelijkeuitzonderingenmoetengetestworden.Eentestopzetzouerdanalsvolgtuit kunnenzien:
Artikeltoevoegen–Winkelwagen
Tester:
Datum:
Systeemstaatklaar,winkelwagenstaatopenophetscherm
Handeling
Kiesuitdewebshophetartikelharkvan hetmerkSkillsdooreropteklikken
Kiesvooraantal1enalskleurrood
KiesvoordeoptieOK
KiesvoordeoptieVerderwinkelen
Kiesuitdewebshophetartikelschoffel vanhetmerkSkillsdooreropteklikken
Kiesvooraantal12enalskleurrood
Kiesvooraantal1
CONCEPT
KiesvoordeoptieOK
KiesvoordeoptieVerderwinkelen
Enzovoort
Verwachtresultaat
Pop-upschermmetKeuzekleuren Keuzeaantalverschijnt
BevestigingsschermmetAantal=1en Kleur=roodverschijnt.Daaropde keuzeoptieOKofAnnuleren
Bevestigingvanaankoopin winkelwagenverschijnt.Keuzevoor VerderwinkelenofAfrekenen
Systeemstaatklaar,winkelwagenstaat openophetscherm
Pop-up-schermmetKeuzekleuren Keuzeaantalverschijnt
BevestigingsschermmetOnvoldoende aantalinvoorraadverschijnt.Daarop keuzeoptieKiesanderaantal
BevestigingsschermmetAantal=1en Kleur=roodverschijnt.Daaropde keuzeoptieOKofAnnuleren
Bevestigingvanaankoopin winkelwagenverschijnt.Keuzevoor VerderwinkelenofAfrekenen
Systeemstaatklaar,winkelwagenstaat openophetscherm
Opmerking J/N
Elkemogelijkcombinatievanhandelingenmoetwordengetestendusookindetestcasewordenopgenomen.
Bijeentestscenariogaanweookuitvanhetuse-case-diagram.Alsvoorbeeldgebruikenweweerhetvoorbeeld vandewebshop.Daarvanweetjeinmiddelswathetbetekentenwatdefunctieszijnzodatjeookbeterkunt overzienwaterallemaalgetestkan/moetworden.

Figuur 7.8 Use-case-diagram webshop
Detesterkrijgtalstestscenario:bestudeerdeusecase,probeerzoveelmogelijkoptiesuitomdewinkelwagente testen.Hetisaandetester(s)omtekijkenofallesnaarbehorenwerkteneventuelefoutenterugtekoppelenaan deontwikkelaars.Erwordtnietvanelkehandelingvastgelegdofdezenaarbehorenwerkt,hetgaatomhetgrote geheel.
Detoepassingvantestcaseswordenineenhoogtempovervangendoordetoepassingvantestscenario’s,mede onderinvloedvandeAgile-achtigeontwikkelmethodieken.
CONCEPT
Eenadministratieveorganisatieinrichten
Voorhetverzamelenenadministrerenvantestresultatenrichtjeeenadministratieveorganisatiein.
Bijhetuitvoerenvandeacceptatietestkunnenerfoutenenonvolkomenhedenwordenaangetroffen.Bijelkefout diezichvoordoetishetbelangrijkdaterwordtnagegaanofdefoutdevoortgangvandeacceptatietestkan belemmeren.Detestperiodekanwordenonderbrokentotdatdesoftwarezodanigisaangepastdatdeacceptatietest ongehinderddoorkangaan.Erkanookwordenbeslistdaterhelemaalopnieuwwordtgestartmetdetest.Fouten enonvolkomenhedenmoetenzorgvuldigengedetailleerdgeadministreerdworden.Wordtditnagelaten,dan kunnenerallerleiclaimsvolgendiemogelijkveelgeldgaankosten.
Onderdelendieinhettestrapportopgenomenmoetenwordenzijn:
• deversievandesoftwaredieisgetest;
• hettest-scenariodatisuitgevoerd;
• debegintoestandvandedatabaseen/ofdeapplicatie;
• detestgegevensdiezijngebruikt;
• hetwaargenomengedragvandesoftware;
• hetteverwachtengedragvandesoftware;
• deafwijkingtussenwaargenomengedragenhetverwachtegedrag;
• hoedefoutgereproduceerdkanworden;
• demogelijkeoorzakenvandefout;
• wateralgedaanisomdefoutteachterhalen;
Vaakzullendetestresultatenineentabelachtigestructuurwordenverwerkt.Hetisdanooknietzodatelkvan dezepunteneenapartonderdeelvormtinhettestresultatenoverzicht.
Deacceptatietestuitvoeren
Hetaspectvandereproduceerbaarheidvandefoutisvangrootbelang.Hetonderzoekenvaneen niet-reproduceerbarefoutkanheelveeltijdkosten.Desoftware-leverancierzaldaaromreproduceerbare testresultatenwillenenditzomogelijkookeisen.Deopdrachtgeverzalwillendatookniet-reproduceerbare foutenonderzochtenhersteldworden.Niet-reproduceerbarefoutenzijndanookeenbronvanconflictentussen leverancierenopdrachtgever.
Daarommoeteenacceptatietestzodanigzijnopgezetenuitgevoerddattenminstedetestresultaten reproduceerbaarzijn.Indepraktijkzullendandemeestefoutenreproduceerbaarblijkentezijn.
Naastconcretefoutenmoetenookkleineschoonheidsfoutenenandereongemakkengeregistreerdworden.Deze verbeterenkaneenonderdeelvanhetcontractzijnofkanalsmeerwerkinrekeningwordengebracht.
Bepalendvoordeacceptatieisofdeaangetroffenfoutenindewegstaanbijhetingebruiknemenvanhetsysteem.
Depraktijkleertdatkleinefoutenenonvolkomenhedenooknaacceptatie,inhetkadervaneengarantieregeling, wordenhersteld.
Resultatenvandetestrapporteren
Bijvoorkeurvoordelaatstedagvandeovereengekomentestperiodeleverjeeenschriftelijkengedetailleerd testrapportop.Eentestrapportkandevolgendehoofdstukkenbevatten:
• Inleiding
• Beschrijvingtestobjecten
• Uitvoeringtestplan
• Conclusiesenaanbevelingen
• Eindoordeelenadvies
• Akkoordmanagement
Testplan
CONCEPT
InBlok6bijTestenvansoftwareisaleenkeerhettestplanvoordetechnischetestenbeschreven.Deacceptatietest wijkthierietsvanafomdatwehiertemakenhebbenmeteenandertypetesters.Nugaanwetestenmetgebruikers vandesoftware.
Inleiding
Indeinleidinggeefjeeenkortemanagementsamenvattingvandetest.Destatusvanhettestplanwordtvermeld, ditkaneenconceptzijnofhetdefinitieveplan.
Opdrachtformulering
Indeopdrachtformuleringwordendetestopdrachtendedoelstellingenvandetestbeschreven.
Rapportage
• Ermoetwordenbeschrevenaanwiewordtgerapporteerd.Datkanzijndeprojectleider,detestcoördinator en/ofdeopdrachtgever.
• Ermoetwordenbeschrevenwaaruitdegewensteinformatiebestaat.Datkanzijndevoortgang,de probleemmeldingenen/oftijdverantwoording.
• Ermoetwordenbeschrevendoorwiewordtgerapporteerd.Datkanzijndeprojectleideren/ofde testcoördinator.
• Defrequentievanrapporterenwordtvermeld.
Organisatie
Afbakening
Eriseenkortebeschrijvingvanhettetestensysteemendetestomgeving.Handigkanzijnomhierde use-case-diagrammenenuse-case-tabellenoptenemenwaaropgetestwordt.Daarnaastmoeterzijnbeschreven waaropgetestwordtenhoegetestwordt.Bijvoorkeurdeeljehetsysteemopintestbaremoduleszoalsdieinde use-case-diagrammenzijnteherkennen.Eenafzonderlijktestontwerpmoetvooralniettegrootzijn.
Taken en verantwoordelijkheden
Detakenenverantwoordelijkhedenwordenhiervastgesteldentoegewezen.Doorwiewordtwelketestuitgevoerd, wieheeftdeleiding,wieverwerktdewijzigingsvoorstellen?
Overzicht producten, kwaliteitseisen en stopcriteria
Hiervolgteenopsommingvanproductendiegetestgaanwordenmetdaaraangekoppelddekwaliteitseisenen stopcriteria.
Documentatie
Inhettestdossiermoetwordengedefinieerdwelkedocumentenwelwordenopgenomenenwelkeniet.
Testomgeving
Detestomgevingmoetgedefinieerdworden.Bijvoorkeurbeschiktelkeindividueletesterovereeneigen testomgeving.
Versiebeheer
Hetversiebeheerisbijhettestenergbelangrijk.Allesmoetondubbelzinnigvaststaan.Alletestwerkzaamheden zulleneensamenhanghebbenenindeloopvaneenprojectkunnennieuweversiesontstaanvandespecificaties, tetestenproductenentestproducten.Versiebeheerisessentieelomgefundeerdeuitsprakentekunnendoen overdekwaliteitvaneengetestproduct.
• Welkeversiesbestaanervandespecificatieswaaropgetestwordt?
• Welkeversiesbestaanervandetetestenproducten?
CONCEPT
• Waarbevindenzichdeverschillendeversies?
• Welkeversievanhettetestenproductisgetestenmetwelketestproduct?
Planning
Decompletetestwordtvoorafgepland.Deplanningvanhettestprocesisafhankelijkvandeplanningvanhet projectalsgeheel.Debenodigdecapaciteitenmiddelenmoetentegendeactiviteitenwordenafgezet.Opbasis hiervankandedoorlooptijdberekendwordenenkunnendeopleverdatawordengepland.
Bijhetopstellenvandeplanningwordtonderandererekeninggehoudenmet:
• devolgordewaarin(gewijzigde)delenvanhetsysteembeschikbaarkomen;
• deonderlingesamenhangvanfuncties;
• hetteverwachtenaantalhertesten;
• deprioriteitdieeendeelvanhetsysteemkanhebben.
Testformulier
Hettestformulieruitdeacceptatietestisinhetgevalvaneentestcaseandersdanbijdetoepassingvaneen testscenario.Inbeidegevallenisereentestformuliervoorelkonderdeeldatgetestmoetworden.
Testformuliertestcase
Inhetgevalvaneentestcasehebjeminimaaldevolgendegegevensnodig:
<Naamtetestenonderdeel>
Tester:
Datum:
Preconditie
<Hierbeschrijfjehetuitgangspuntvandetest.Dathoeftnieteenheeluitgebreidverhaaltezijn,maarermag geenonduidelijkheidoverbestaan.>
Handeling
Handeling1
<Hierbeschrijfjeexactwelke handelingendetestermoetuitvoeren.
Jemagnieteenheleseriehandelingen combineren,omdaterdan onduidelijkheidontstaatovereen eventueeloptredendebug.>
Verwachtresultaat
<Hierbeschrijfjehetteverwachten resultaat.Ditmoetzonauwkeurig mogelijkzijnomschrevenzodatergeen onduidelijkheidoverkanbestaan.>
Handeling2
Handeling3
Handelingx
Testformuliertestscenario
Inhetgevalvaneentestscenarioziethettestformuliererietsandersuit:
CONCEPT
<Naamtetestenonderdeel>
Tester:
Datum:
Testscenario
Opmerking J/N
<Dezekolommenzijnvoorde tester.Dezegaathier aangevenofhetresultaat overeenkomtmethette verwachtenresultaat. Wanneererafwijkingen optreden,kandetestereen toelichtinggeven.>
<Hierstaatdetestopdrachtvoordetester,hettestscenario.Inéénofmaximaaleenpaarregelswordthier beschrevenwatergetestmoetworden.>
Testresultaat
<Dezeruimteisgereserveerdvoorhetcommentaarvandetester.Dezemoetzijntestervaringeneventuele suggestiestotverbeteringhierbeschrijven.>
Testrapport
Inhettestrapportofineenbegeleidendebriefkomteenconclusiewaarinwordtaangegevenofdegeleverde softwaregeaccepteerdwordt.Erkannatuurlijkookwordenopgegevendatherstelvanfoutenenonvolkomenheden wordtverlangd.Nietalleaangetoondefoutenzijndeverantwoordelijkheidvandeleverancier.Hetisdenkbaar datbepaaldefoutenveroorzaaktwordendoorfouteninhardwareofsoftwarevanderden.Deleverancierzalde verantwoordelijkheidvoorhetonderzoekenherstelvandergelijkefoutenwillenuitsluiteninzijnalgemene voorwaarden.
Deresultatenvantestenmoetenwordenteruggekoppeldnaardeapplicatie-ontwikkelaar.Wanneerjederesultaten vandeverschillendetestengoedwiltkunnenvergelijken,iseenstandaarduitvoeringvandetestrapportage belangrijk.
Eentestrapportbestaatuiteenaantalverplichtehoofdstukken.Alservooreenbepaaldhoofdstukgeen rapportage-inhoudaanwezigis,danmoethethoofdstuktochwordenopgenomen,zodatbekendiswaaromdat hoofdstuknietverderisuitgewerkt.
Doormiddelvanhettestrapportleggendetestersverantwoordingafoverdewerkzaamhedendiezijhebben verricht.Eentestrapportkanuitdevolgendehoofdstukkenbestaan:
Inleiding
Indeinleidingwordteenkortemanagementsamenvattinggegevenvandeuitgevoerdetest.
Beschrijvingtestobjecten
Hierwordtaangegevenwelkeproductengetestworden,welkefunctiedezeproductenhebbenenomwelkereden zeindetestbetrokkenzijn.
Uitvoeringtestplan
Hierbeschrijfjeofhettestplanvollediguitgevoerdkonworden.Alsdatnietkon,moethierderedenvande afwijkingwordenopgenomen.Perteststapuithettestplanmoetaangegevenwordenwat,wiedeteststapheeft uitgevoerd,omwelkeactiviteithetgaatenomwelkdeel(module)vandeapplicatiehetgaat.
Daarinstaat:
• welkefoutenenonvolkomenhedenindesoftwareaangetroffenzijn;
• welkefoutenenonvolkomenhedendeacceptatieindewegzullenstaan;
• welkefunctionaliteitnognietzijngetestalsgevolgvanaangetroffenfouten.
Categorieënvanonvolkomenhedendiejeineentestrapporttegenkomtzijn:
• ernstigefoutendiedevoortgangvandeacceptatietesthebbenbelemmerd;
• foutendieacceptatieindewegstaan;
• foutenenonvolkomenhedendieinhetkadervaneengarantieregelinghersteldofverbeterdmoetenworden nadatdesoftwareisgeaccepteerd;
CONCEPT
• schoonheidsfoutenenongemakkendievoorverbeteringinaanmerkingkomen.
Conclusiesenaanbevelingen
Aandehandvanderesultatenwordeninhetkortdebelangrijksteconclusiesenaanbevelingenbeschreven. Welkeconclusieswordenerverbondenaandegetesteomgeving?
Eindoordeelenadvies
Ermoetwordenbeschrevenwatdealgemeneindrukvanhetopgeleverdeproductisenofeenaanvaardbaar niveauvankwaliteitbereiktis.Wanneerermeerderemoduleszijngetestmoetereenopsommingkomenvan productendieinproductiegenomenkunnenwordenenvanproductendie(nog)nietgereedzijn.
Akkoordmanagement
Hetondertekenenendaterenvanhettestrapportdoorverantwoordelijkenbekrachtigtdegoedkeuringvande productendieinhethoofdstuk‘Eindoordeelenadvies’alsgereedaangemerktworden.Tevensontslaathetde testersvanhunverantwoordelijkhedenenverdertestwerk.
Opdracht2 Implementatie
RaadpleegzonodigdetheorieoverImplementatie.
a. Uitwelkestappenzaleengemiddeldeimplementatiebestaan?
b. Watwilhetbegripimplementatiezeggen?
c. Watverstaanweonderorganiserenvandeimplementatie?
d. Watverstaanweonderplannenvandeimplementatie?
e. Watishethoofddoelvandeacceptatietest?
f. Watishetbelangvanhetcompleetmakenvandedocumentatie?
g. Waaromzoujebijeenacceptatietestgebruikersmoetenmotiveren?
h. Wanneerwordendestartgegevensinhetsysteemingevoerd?
i. Wanneertredendekinderziektenop?
Opdracht3 Ingebruiknameapplicatie
RaadpleegzonodigdetheorieoverImplementatie.
a. Welketweeuiterstenzijneromeennieuwsysteemingebruiktenemen?
b. WatishetvoordeelvanhetingebruiknemenvaneenapplicatieopbasisvandeBig-Bang-methode?
c. WatishetnadeelvanhetingebruiknemenvaneenapplicatieopbasisvandeBig-Bang-methode?
d. Watishetvoordeelvanhetingebruiknemenvaneenapplicatieopbasisvanschaduwdraaien?
e. Watzijndenadelenvanhetingebruiknemenvaneenapplicatieopbasisvanschaduwdraaien?
f. Watzouhetresultaatvandeacceptatietestmoetenzijn?
g. Watkunjetestenmetdeacceptatietest?
CONCEPT
h. Wanneerstarteenacceptatietest?
i. Watisdeglobaleopzetvaneenacceptatietest?
Opdracht4 Testcase
RaadpleegzonodigdetheorieoverImplementatie.
a. Watiseentestcase?
b. Watiseentestscenario?
c. Watzijndevoordelenvaneentestcase?
CONCEPT
d. Watishetnadeelvaneentestcase?
e. Watzijndevoordelenvaneentestscenario?
f. Watiseennadeelvaneentestscenario?
g. Welkeonderdelenzoudeninhettestrapportopgenomenmoetenworden?
h. Waaromishetaspectvandereproduceerbaarheidvanfoutenvangrootbelang?
i. Watisbepalendvoordeacceptatie?
7.2 Productpresenteren
Voorbereidenvandepresentatie
Bepaaljedoelgroepenhetdoelvandepresentatie
CONCEPT
Voorwiegajepresenteren?GaathetomgebruikerszonderkennisvanICTofgaathetombeheerders?Door duidelijkinbeeldtebrengenwiedetoehoorderszijn,kunjedepresentatiemaximaalafstemmenophetniveau vanjepubliek.
Houdhetsimpel:concentreerjeopjekernboodschap
Gabijhetvoorbereidenvanjepresentatieuitvandevraag:‘Watisdebelangrijksteboodschap?’Jemoetinstaat zijnomdiebelangrijkeboodschapheelcompactovertebrengen.Alleswatnietbijdraagtaandeboodschaplaat jeweg.
Handigisomnaastjepresentatieeen‘elevatorpitch’temaken:dekernvanjeboodschapin15tot30seconden. Doordezegoedparaattehebbenzitjegoedindekernvanjeboodschapenzuljejezekervoelen.
Startsterk
Hetbeginvandepresentatieiscruciaal.Deaandachtvanhetpubliekgrijpenenvasthoudenvaltofstaatmeteen sterkbegin.Eengoedeopeningkanopheelveelverschillendemanieren.Zorgervoordathetiniedergevalte makenheeftmethetdoelvandepresentatie.Veelgebruiktemanierenomeenpresentatietebeginnenismeteen actualiteit,eenanekdote,eencitaat,humorofeenmetafoor.
Verteleenverhaal
Mensenreagerenopverhalen.Verhalenhelpenonsomaandachtopeenonderwerpterichten.Ookhelpenverhalen bijhetonthoudenvanzaken.Alsjesoftwareoplevert,kunjedatdoenaandehandvaneenverhaal.
Maakeenscenariovoordeverschillendegebruikersvandeapplicatie.Eenbijkomendvoordeelhiervanisdateen verhaalhetookmakkelijkermaaktomeenlijnindepresentatieaantebrengen.
Sluitgoedaf
Watjehetlaatstzegt,ligtversinhetgeheugen.Jekanopverschillendemanierenafsluiten,maarinallegevallen hebjevooreenafsluitingveelmindertijddanvooreenopening.Jekuntafsluitenmet:
• eenbelofte:‘Dezeapplicatiegaatdeomzetverhogen.’
• eenstelling:‘Doortoepassenvandezesoftwareisdekwaliteitvanhetverkoopprocesbeter.’
• eenvraag:‘Hoekrijgenwedeapplicatieonderdeaandachtvanhetpubliek?’
• eensamenvatting:dezemanierisverrewegdemeesttoegepastemanieromaftesluiten.
Depresentatiemaken
Gebruikvanhulpmiddelen
Presenterenopeenschermmetbehulpvaneenbeameren/ofsmartboardkanhelpenjeverhaalteverduidelijken.
Gebruikdehuisstijl
Gebruikeenduidelijkafgesprokenformat.Zorgervoordatjenietallerleiverschillendedia’slaatzienmetelkeen eigenlay-out.Hetkanzinvolzijnomhetlogovandeopdrachtgeverergensinjepresentatieeenplaatsjetegeven.
Gebruikde10-20-30-regelvoordiavoorstellingen
GuyKawasakivanApplegebruiktalsvuistregeldateendiavoorstellingen:
• nietmeerdan10dia’sbevat;
• nietmeerdan20minutenduurt;
• eenlettergroottevanminimaal30puntenheeft.
Delettergroottevan30puntenisvooralvanbelangomtevoorkomendatjeteveelinformatieopeenbepaalde diazet.Alsalgemeneregelgeldtdatdedia-slideshowzonderdepresentatorzinloosis.Eengoedesetvandia’s geeftdepresentatorondersteuningbijzijnverhaal.Dedia-slideshowmoetniethetverhaalvertellen. Alsjemeerinformatiewiltverstrekken,maakdaneenflyeroffolderendeeldienadepresentatieuit.
Gebruikvaneffecten
CONCEPT
BijgebruikvanPowerPointofPreziiseenoneindigaantaleffectenmogelijk.Maakergeenvisueleshowvan,tenzij hetindeapplicatiediejeoplevertdaarovergaat.Alleonnodigeeffectenleidenafvanhetwerkelijkedoelvanje presentatie.Schakelvanuitdepresentatietooleventueelnaareenlive-omgevingvandeopteleverenapplicatie. ProbeerAlt-Tab-schermwisselingtevoorkomen.Daarkanveelfoutgaanendatstaatknullig.
HetgebruikvanWordArtstaatvaakookergonprofessioneel.Gebruiklieverdetemplatevanhetbedrijf.

Figuur 7.9 Gebruik geen WordArt
Maakafbeeldingengroot
Toonafbeeldingenzomogelijkopeenvolledigschermenprobeergeenofweinigteksttoetevoegenaandedia. Jetoehoordersluisterenbeternaarjewoordenalszekijkennaareendiametweinigofgeentekst.

Figuur 7.10 Gebruik niet te veel tekst.
Lijntekstslechtsopéénmanieruit
CONCEPT

Figuur 7.11 Lijn tekst op één manier uit.
VeelPowerPoint-enKeynote-templatescentrerendekop.Datislangnietaltijddebesteoplossing.Ofjenuwel ofnietvooreengecentreerdekopkiest,zorgdatjedetekstnetjeslinksuitlijnt.Alsjekiestvooreenbepaalde opmaak,houddaardanaanvast,ganietvariëren.
Gebruikzominmogelijktekstomjeverhaalteondersteunen

Figuur 7.12 Gebruik zo min mogelijk tekst.
Alsjeveeltekstopdediazetzullenjetoehoordersproberenomallestelezen.Gevolgisdatzenietnaarjeluisteren. Ofergernog,zekunnendedianietlezenennegerenalles,inclusiefwatjezegt.Toonalleeneenverwijzingnaar debelangrijksteboodschapenlaatderestoveromtevertellen.
Gebruikmaaréénlettertype

Figuur 7.13 Gebruik maar één lettertype.
Hetcombinerenvanverschillendelettertypenmaakteenpresentatierommelig.Hetisindemeestegevallen verstandigomgeengebruiktemakenvanmeerderekleuren,tenzijjeeengoederedenhebt.
Probeereenswittetekstenafbeeldingenopeenzwarteachtergrond

CONCEPT
Figuur 7.14 Gebruik witte tekst op een zwarte achtergrond.
Ditiseentrucdieeenheelstijlvolgevoelgeeft,vooralbijgebruikvaneenstraklettertype.Bijprojectiewordtde randverborgenwaardoorhetlijktalsofalleendetekstwordtgeprojecteerd.
Presenteren
Tooninzetenpassieenmaakcontact
Doorcontacttemakenmetjepubliekzalhetmindermoeilijkzijnomzelfteontspannen.Vertelgeenonzin,wees eerlijkenvertelmetpassieoverdatgenewatjeoplevert. Terwijljepresenteert,moetjedereactiesgoedindegatenhouden.Reageerwanneerduidelijkwordtdathet publiekjenietbegrijptenpasjeverhaalaan.Alsereenvraagwordtgesteldwaaropjehetantwoordnietparaat hebt,kunjeantwoorden:‘Datweetikniet,datzalikvooruuitzoeken.’Datkomtbeteroverdandatjeeen onzinverhaalophangt.
Blijfbijhetonderwerp,maakzominmogelijkuitstapjes ‘Focusopdebehoeftenvandedoelgroep’.Jepresentatiemoetwordenopgebouwdronddeverwachtingenvan jetoehoorders.Zijverwachteneenproductpresentatie. Vertelenlaatzienwatzewillenweten.Inveelgevallenzegteenkijkjeindecodejepubliekniets.Jetoehoorders meenemeninhetgebruikvandeapplicatiezalhenboeien.
Zorgvooroogcontactenweesvriendelijk
Ditklinktheeleenvoudig,maarisietswatjepaskuntnaheelveeloefenen.Alsjeglimlachtenoogcontacthebt dankrijgjedesympathievanhetpubliek.Hethelptommindergespannentezijn.Jepraatnamelijkmetmensen enniettegeneengrotemassaonbekendemensen.Ditwordtmakkelijkeralsjezorgtvoorvoldoendelicht.Je publiekmoetjounetzogoedkunnenzienalsjediapresentatie.
Gebruikjestemeffectief
Hetgesprokenwoordiseigenlijkeenvrijinefficiëntcommunicatiemiddel.Jepubliekheeftvijfzintuigen.Alsje alleenjestemgebruikt,dangebruikjedusslechtséénvanjevijfzintuigen.Diemoetjedanookzooptimaal mogelijkgebruiken.Variërenvandesnelheidwaarmeejepraatenhetbenadrukkendoorveranderingenin toonhoogtezalhelpenomjesteminteressantertemakenendeaandachtvanjepubliekvasttehouden.
Gebruiklichaamstaal
Lichaamstaalspeelteenbelangrijkerolincommunicatieendraagtopverschillendemanierenbijaandeoverdracht vanboodschappen.Overhetalgemeendraagtlichaamstaalsubstantieelbijaandeeffectiviteitvancommunicatie. Ditdoorhetverrijken,aanvullenenverduidelijkenvanverbaleboodschappenénhettotstandbrengenvan emotioneleverbindingenénhetregulerenvaninteractiestussenmensen.Hetbewustzijnvanlichaamstaalis daarombelangrijkvoorhetverbeterenvancommunicatievevaardigheden.Zorgervoordatjehetjuistesignaal afgeeft.
CONCEPT

Figuur 7.15 Gebruik lichaamstaal.
Weesjebewustvanjehoudingenvoorkomgekruistearmen,handenachterjerugofhandeninjezakken.Maak opengebarenmetvertrouwen.Beweegopeennatuurlijkemanieropenrondjepodium.Alshetkandanhelpt hettussenjepubliekdoortebewegen.
Opdracht5 Productpresenteren
RaadpleegzonodigdetheorieoverhetProductpresenteren.
a. Waarletjeopbijdevoorbereidingvaneenpresentatie?
b. WatisdevuistregelvanGuyKawasaki?
c. Waarletjeopbijhetgebruikvaneffecten?
d. Waaromishetgebruikvanveeltekstopdia’sonverstandig?
e. Waaromisoogcontactbelangrijktijdenshetpresenteren?
CONCEPT
f. Waaromislichaamstaalbelangrijktijdenshetpresenteren?
7.3 Hetopgeleverdeproductevalueren
Hetprimairedoelvandeevaluatieishetbepalenofdeopgeleverdeapplicatievoldoet.Eenevaluatiekenteen cyclusdiebestaatuitvierstappen:
1. verzamelenvangegevens
2. registrerenvandeinformatie
3. interpreterenvaninformatie
4. conclusies
Ditalleskomtsameninhetevaluatierapport.
Verzamelenvangegevens
Voordathetevaluatierapportgeschrevenkanworden,moeteneerstallegegevensbeschikbaarzijn.Belangrijke onderdelenzijnnatuurlijkderesultatenvandeacceptatietest,maarookgegevensuithetProgrammavaneisen, hetFunctioneelontwerpenhetTechnischontwerp.Hetevaluatierapportmoethetmanagementlatenzienofde applicatievoldoet.InhetProgrammavaneisenzijndeuitgangspuntenvastgelegd,nietonbelangrijkomdit beschikbaartehebbenbijhettrekkenvanconclusies.
Evaluatierapport
Indelingevaluatierapport
Voorblad
Voorwoord
Inhoudsopgave
Samenvatting
Doelvandeapplicatie
Verloopvandeacceptatietest
Overzichtvanderesultaten
Conclusies
Bijlage
Voorwoord
Inhetvoorwoordschrijfjewaaromjeditdocumenthebtgemaakt.Jebeschrijfthetbedrijfwaarinjewerkt,het bedrijfvandeklantenhetdoelvanhetprojectvoorjeklant.
Inhoudsopgave
Deinhoudsopgavewordtzelfnietgenoemdindeinhoudsopgavemaarisweleenbelangrijkonderdeel.Elke tekstverwerkerkentdeoptieautomatischgenereren,natuurlijkgebruikjedie.
Samenvatting
CONCEPT
Opbasisvaneen(management)samenvattingmoetdeprojectmanageren/ofopdrachtgeverbesluitenofhet projectkandoorgaan.Desamenvattingiscompactenbevatconcretefeitendiebelangrijkzijnvoorde besluitvorming.
Doelvandeapplicatie
Beschrijfhierkernachtigwathetdoelisvandeapplicatieenaanwelkerequirementsdeapplicatiemoetvoldoen.
Verloopvandeacceptatietest
Hiervatjehetverloopvandeacceptatietestsamen.
Overzichtvanderesultaten
Probeerhierdebelangrijksteresultatenopeenoverzichtelijkemanierweertegeven.
Conclusies
Alleenconcluderendatdeapplicatienaarbehorenwerkt,iswatmager.Deopdrachtgeverheefterwataanalsje meedenkt.Wanneerhetmogelijkisomtoekomstigeaanpassingenen/ofuitbreidingentebenoemen,moetdat zekerwordenmeegenomen.
Bijlage
Nietalleshoeftanaloogtewordentoegevoegd.Maarzorgweldatallebrondocumentenbeschikbaarzijn:één plaatswaarallevoorgaandedocumentenstaan.HierbijmoetjedenkenaanhetProgrammavaneisen,het FunctioneelenTechnischontwerp,maarookalletestresultaten.
7.4 ApplicationServicesLibrary2(ASL2)
ApplicationServicesLibrary(ASL)iseenprocesmodel.Datwilzeggendatdewerkzaamhedenwordenbeschreven aandehandvanprocessen.Hetmanagementmoetervoorzorgendatallesovervijfjaarooknogwerkt.Dat plannenenorganiserenvoordetoekomstnoemtmensturendeprocessenendedagelijksegangvanzaken wordendeoperationeleprocessengenoemd.

7.5
Processenopstrategischniveau
CONCEPT
Alsjeineenbedrijfwerkt,hebjijalsontwikkelaarooktemakenmetdedagelijksegangvanzaken.Alshetgoed is,merkjeeigenlijknietzoveelvandemanagersdiezichbezighoudenmetdetoekomstvanhetbedrijf.Eénvan deaspectenwaaroverzemoetennadenkenvoordelangetermijnisdetoekomstvandemomenteelgebruikte applicaties.

ApplicationsCycleManagement
BijApplicationsCycleManagementwordtergekekennaarhetgebruikvanelkeapplicatieafzonderlijk.De belangrijkstevraagis:‘Watisnodigomervoortezorgendatmorgenallesooknoggoedwerkt?’Eenapplicatie aanpassenkosttijdendusgeld.Wanneerhetbeheerenonderhoudduurderwordendanoverstappenopeen nieuweapplicatie,zalmenervoorkiezendeoudeapplicatietevervangen.
OrganizationCycleManagement
OrganizationCycleManagement(OCM)gaatoverdeheleICT-organisatie.Hetmanagementmoeteenplanhebben voordetoekomst.Menmoetbedenkenwelkeapplicatieskunnenblijvenwordengebruiktenwelkeapplicaties vervangenmoetenworden.Alsontwikkelaarhebjijhiermeetemaken,omdatdezebeslissingenuiteindelijk gevolgenhebbenvoorjouwwerkzaamheden.
7.6 Processenoptactischniveau
Sturingisnoodzakelijkomprocessenopmanagementniveaugoedtelatenverlopen.Hierbijzijnoplevertijd, kosten,kwaliteitvoordemedewerkerenkwaliteitvoordeklantvanbelang.

Elkproceskentdriesoortenkernactiviteiten:
• Planvanaanpakmaken
• Voortgangbewaken
• Evalueren
CONCEPT
Contractmanagement
Hetcontractmanagementisverantwoordelijkvoordecontractbepalingendecontractonderhandelingmet afnemers.Hierbijzalvaakgebruikwordengemaaktvaneenchecklist,ookwelintake.Dezeintakegeefteen opsommingvanproductendietijdensdeovergangvaneeninformatiesysteemvanontwikkelingnaarbeheeren onderhoudaanwezigzoudenmoetenzijn.
EenServiceLevelAgreement(SLA)iseenbelangrijkhulpmiddelbijdeafsprakenmetdeklant.Opdeklantkaart komendekernpuntenvandeSLAtestaan.Ditisnodigomaandeservicedeskdeessentiëleafsprakenbeknopt enadequaatterbeschikkingtestellen.Deklantkaartiseenbelangrijkproductbijdeafsprakenmetdeklant.
IndeSLAstaanafsprakenwaarjealssoftwaredevelopermeetemakenkuntkrijgen.Onderandereomdaterin hetSLAisopgenomendatbepaaldemankementenbinneneenafgesprokentijdzullenwordenopgelost.
Planningencontrol
Debelangrijksteactiviteitenvanplanningencontrolzijn:
• opstellenjaar-/kwartaalplannen;
• plannenbenodigdemenscapaciteit;
• bepalentijdlijnen(ookvanafnemersenleveranciers);
• bewakenenbijstellenplanningenenkengetallen;
• reviewenplanningen.
Figuur 7.18 Processen op tactisch niveauAlssoftwaredeveloperkrijgjehieralleenindirectmeetemaken,bijvoorbeeldalserafsprakenzijngemaaktover debeschikbaarheidvanbepaaldeonderdelenwaarjijverantwoordelijkvoorbent.
Kwaliteitsmanagement
Hetkwaliteitsmanagementmoetdeinterneeningekochtekwaliteitvanproces,product,middelenenorganisatie waarborgen.Ditdoordezetedefiniërenentebewaken.Ookmoetkwaliteitsmanagementervoorzorgendat relevanteregelgevingophetgebiedvankwaliteitwordtgeïmplementeerdengevolgd.Belangrijkeactiviteiten zijn:
• plannengewensteenbestaandekwaliteitsniveau;
• makenenverbeterenkwaliteitsplan,kwaliteitssysteem;
• bewakenenbijstellenkwaliteit,uitvoerenprobleembeheer;
• reviewenkwaliteitproductenproces.
Dekwaliteitseisendieuitditprocesvoortkomenzullenvaninvloedzijnopjouwwerk.Zowelindeontwikkeling alsinhetonderhoudvanproductenmoetergekekenwordennaardekwaliteitseisen.
Financieelmanagement
Hetfinancieelmanagementisverantwoordelijkvoordekostenenbaten.Dekostendiegemaaktwordenomde applicatieteleverenenteonderhoudenmoeteninevenwichtzijnmetdebatenvanhetapplicatiemanagement. Vaakwordtergebruikgemaaktvaneenkostenmodeldatondersteuningbiedtbijhetopstellenvandejaarlijkse begrotingen.Dooreenstandaardmodeltegebruiken,heeftmenmeerinzichtindeopbouwvandetarievenvan deteleverendiensten.
Belangrijkeactiviteitenzijn:
• opzettenenbijstellenkosten-endoorbelastingstructuur;
• voorspellenkosteneigenorganisatieenleveranciersenbaten;
• bewakenenevaluerenkosten,batenendoorbelasting.
Jouwwerkalssoftwaredeveloperisvooralvaninvloedopfinancieelmanagementenveelminderandersom.
CONCEPT
Leveranciersmanagement
Netalsbijhetfinancieelmanagementgaathetbijleveranciersmanagementomdekostenenbaten.Hetdoelis omhetbesteproducttematentegendelaagstmogelijkekosten.Datiseencontinuproces,omdatdemarkt voortdurendinbewegingis.Leveranciersvangoederenendienstenontwikkelenzichcontinuenkomenmet aanbiedingenomeenplaatsteverwervendiezenogniethebben.
Belangrijkeactiviteitenzijn:
• selectieleveranciers;
• contractbepalingen-onderhandelingmetleveranciers;
• bewakenvoortgangenbijsturen;
• reviewenleveranciersprestaties.
7.7
Processenopoperationeelniveau
Operationeleprocessenzijndeprocessendieopkortetermijnwordenuitgevoerd.Hetgaatomhetoperationeel houdenvandelopendezaken.Daarvoorisineersteinstantieeengoedbeheernodig.Erzijnvijfverschillende beheerprocessen:Incidentbeheer,Configuratiebeheer,Beschikbaarheidsbeheer,Capaciteitsbeheeren Continuïteitsbeheer.
NaastdebeheerprocessenishetbinnendeOperationeleprocessennodigomhetonderhoudendevernieuwingen goedtemanagen.Hetbeheerendenodigeaanpassingenmoetengoedopelkaarwordenafgestemden gestroomlijnd.Wijzigingsbeheerenapplicatiebeheerzijndaarbinnendeprocessendiehiervoorzorgen.Wenoemen
ditdanookverbindendeprocessen.
Debeheerprocessenzijnbelangrijk,omdatzehetgebruikvandeapplicatiesondersteunenmetzoweinigmogelijk middelenenzoweinigmogelijkapplicatieonderbrekingen.Zemoetendecontinuïteitvandeautomatisering waarborgen.

Gebruikersondersteuning
Tijdensgebruikvaneenapplicatiekunnenstoringen,vragenofwensenontstaan.Dezewordenalsincidentgemeld bijeenhelpdeskofservicedesk,dieonderdeelisvanhetprocesGebruikersondersteuning.Voorheenheettedit procesIncidentbeheer,maaromdatdetermGebruikersondersteuningpositieverwordtopgevat,isdezeterm ingevoerd.
CONCEPT
Gebruikersondersteuninggaatomdienstverlening.Gebruikerswillendatvoldaanwordtaandeafgesproken service-levels.Ingewikkeldeincidentenofvaakoptredendeincidentenwordenalsprobleemdoorgezetnaarhet kwaliteitsmanagement.Daarnaastkanhetzijndatgebruikersgeïnformeerdmoetenwordenoverzakendieeraan komen.Ookdatvaltondergebruikersondersteuningennoemenwepro-actiefhandelen.Datkanbijvoorbeeld doorhetcommunicerenvanontwikkelingenrondeenbepaaldeapplicatie.Indemeestegevallenhebjeals softwaredeveloperhiernietmeetemaken.Alleenwanneereenincidentwordtdoorgezetnaarhet probleemmanagement,kanhetbijjouterechtkomen,alseraanpassingenaaneenapplicatienodigzijn.
Configuratiebeheer
Indeconfigurationmanagementdatabase(CMDB)staanallegegevensoverallesystemen(configuraties)inhet bedrijf–ookdeapplicatiesenonderdelendaarvan.Ookdeadministratievandeafgesprokendienstenen service-levelsmoetopordezijn.Ditisdetaakvanconfiguratiebeheer.Voordieadministratiewordtmeestaleen servicedesktoolgebruikt.InNederlandisdatheelvaakTOPdesk.Ditiswerkvoorbeheerdersenalssoftware developerzaljeslechtsgebruikmakenvanconfiguratiebeheerdoorzetevragenietsvoorjetedoen.
OperationeleICT-sturing
MetditdeelvanhetASL2-proceswordendeprocessenbeschikbaarheidsbeheerencapaciteitsbeheer samengebracht.Hetgaathierbijombedrijfszekerheid,beheersbaarheidendoelmatigheid.BijOperationele ICT-sturingishetbelangrijkdateenapplicatiedeafgesprokenengewenstefunctionaliteitkanbiedenopde afgesprokentijden–ofwel:deapplicatiedoetwatdiemoetdoen.Ookdecapaciteitvanhetsysteemisonderdeel vanOperationeleICT-sturing.Alsblijktdathetgeheugendateenapplicatiegebruiktnietvoldoetomdathette kleinis,moethetgeheugenwordenaangepast.Alseenapplicatienietvoldoet,kanvanuitOperationeleICTsturingviaprobleembeheerbijjoudevraagkomenomdeapplicatieaantepassen.
Figuur 7.19 Processen op operationeel niveauContinuïteitsbeheer
Bijcontinuïteitsbeheergaatheteromdatalleseropgerichtisdathetsysteemblijftfunctioneren.Hetgaathierbij omhetnemenvanmaatregelendiegaranderendatdeapplicatiesendedienstverlening–zegmaarhetsysteem –oplangeretermijnkunnenblijvenfunctioneren.Ermoettegenverschillendebedreigingenbeveiligdworden, zoalsvirussen,hackers,fraude,brandenoverstroming.Maarookmoeterrekeninggehoudenwordenmethet wegvallenvanleveranciersvanwiedeeigenaarvanhetsysteemafhankelijkis.Aldezeactiviteitenenmaatregelen wordenineencontinuïteitsplanvastgelegd.
7.8 Verbindendeprocessen
Onderhouds-envernieuwingsprocessen
MethetonderdeelWijzigingsbeheervanASL2zuljealssoftwaredeveloperregelmatigtemakenkrijgen,omdat ermetenigeregelmaatnieuweupdatesmoetenkomen.
BinnenhetASL2-modelzijnertweeverbindendeprocessen:WijzigingsbeheerenSoftwarebeheerendistributie. Dezetweeverbindendeprocessenzorgenervoordathetprocesbeheer,hetonderhoudendevernieuwingengoed opelkaarwordenafgestemd.
Wijzigingsbeheer
Wijzigingsbeheerisvanbelangomervoortezorgendatwijzigingengecontroleerdengeordendworden doorgevoerd,zonderonnodigerisico'svoordestabiliteitvandeinformatiesystemen.Wijzigingsbeheeristypisch ietswaarsoftwaredevelopersmeetemakenkrijgen.Hetbewaaktdeuitvoeringvanhetmakenvaneennieuwe releaseenkentdevolgendeonderdelen.
• Identificerenvanvoorgesteldewijzigingenaanapplicaties,beoordelenvandeimpactvanvoorgestelde wijzigingenopbestaandeapplicatiesensystemenenhetprioriterenvanwijzigingenopbasisvanhunurgentie enrelevantievoordeorganisatiedoelen.
• Definiërenvaneenformeelgoedkeuringsprocesvoorwijzigingenvoorhetverkrijgenvangoedkeuringdoor relevantebelanghebbenden,zoalsgebruikers,beheerders.
• Plannenenbeherenvandeimplementatievangoedgekeurdewijzigingen.
• Documenterenvanalleaspectenvandewijzigingen,inclusiefredenen,impactanalysesen implementatieplannen.
• Communicerenvanwijzigingenaanrelevantepartijen,zoalsgebruikersenanderebetrokkenen.
CONCEPT
• Evaluerenvandeeffectiviteitvandoorgevoerdewijzigingen.
Softwarebeheerendistributie
BinnenhetASL-frameworkrichthetsoftwarebeheerzichophetbeherenvandelevenscyclusvan softwareapplicaties.Hetomvatalleactiviteitendieverbandhoudenmetdeontwikkeling,implementatie,exploitatie enhetonderhoudvansoftware.
• Hetidentificerenenspecificerenvandefunctioneleenniet-functioneleeisenvandesoftware.
• Hetontwikkelenvannieuwesoftwareapplicatiesofhetaanpassenvanbestaandeapplicatiesomaannieuwe eisentevoldoen.
• Hetuitvoerenvantestsomervoortezorgendatdesoftwarecorrectfunctioneertenvoldoetaandegestelde eisen.
• Implementerenvandesoftwareindeoperationeleomgeving,inclusiefinstallatieenconfiguratie.
• Hetdocumenterenvanalleaspectenvandesoftware,inclusiefgebruikershandleidingen,technische documentatieenwijzigingsbeheer.
Distributieishetprocesvanhetverspreidenvansoftwarevanafdeontwikkelingsomgevingnaardeoperationele omgeving,dangaathetom:
• Hetplannenvandereleasevansoftware,inclusiefhetbepalenvandetimingenhetcoördinerenvande distributieactiviteiten.
• Hetbeherenvandeverschillendeversiesvandesoftware,inclusiefhetvaststellenvanwijzigingenenhet onderhoudenvanconfiguratiebeheer.
• Hetopstellenvaneenplanvoorhetdistribuerenvandesoftwarenaardeverschillendeomgevingen (bijvoorbeeldtestomgeving,acceptatieomgeving,productieomgeving).
• Hetdaadwerkelijkuitvoerenvandedistributie,inclusiefhetinstallerenvandesoftwareenhetbijwerkenvan configuraties.
• Hetbeoordelenvandeimpactvandedistributieopdeoperationeleomgevingenhetidentificerenvaneventuele problemen.
HetprocesSoftwarebeheerendistributiemoetvoorkomendaterongeautoriseerdewijzigingenplaatsvinden. Ditproceszorgtvoordedistributiezodatdejuisteapplicatie-onderdelenkunnenwordeningezet.
Opdracht6 ASL
RaadpleegzonodigdetheorieoverApplicationServicesLibrary2(ASL2).
a. WaarvoorstaandelettersASL?
b. WatisASL?
c. WaargaatOrganizationCycleManagementover?
CONCEPT
d. WaargaatApplicationsCycleManagementover?
e. WatzijnOperationeleprocessen?
f. WatisGebruikersondersteuning?
g. WatisConfiguratiebeheer?
h. WatisOperationeleICT-sturing?
i. WatisContinuïteitsbeheer?
j. WatisWijzigingsbeheer?
k. WatisSoftwarebeheerendistributie?
CONCEPT
l. Alshetversienummervansoftware4.5isenerwordteennieuwereleaseuitgebrachtomeenpaarkleinebugs optelossen,welkversienummerzaldezereleasedankrijgen?
m. Alshetversienummervansoftware7.3isenerwordteennieuwereleaseuitgebrachtwaarinnieuwe functionaliteitaandesoftwarewordttoegevoegd,welkversienummerzaldezereleasedankrijgen?
n. Watiseenservicepack?
o. Watiscompatibel?
7.9 Softwarelicenties
Softwareontwikkelenkostveeltijden‘tijdisgeld’.Eensoftwaredevelopermoetookgeldverdienen,evenalshet softwarebedrijf.Hetkantienduizendenofzelfsmiljoeneneuro’skostenvoordateenprogrammabeschikbaaris. Tochzijnerooksoftwaredevelopersdieditsysteemmaarnietsvindenenhunprogramma’sgewoonterbeschikking stellen.Dezedevelopersontwikkelenvaakietsals‘opensource’.Somsverzoekenzejeeenbepaaldbedragnaar henovertemaken.Dathoeftnietveeltezijn,omdatzenietcommercieelhoeventewerken.Deprogramma’sdie zijopdezemanieropdemarktbrengen,vallenonderdecategorieshareware.Debedragendiezevoorshareware vragenvariërenenliggenmeestaltussende€10,–en€100,–.Alsjeeenbetalingdoet,krijgjevandedeveloperde nieuwsteversiezonderreclame,eenlicentieeneenhandleiding. Erisookheelveelsoftwarebeschikbaardie‘gratis’is.Ditkanuitideologischeoverwegingenzijn,maarhetkan ookzijnomdatereenanderverdienmodelachterzit.Zokansoftwaregratiswordenaangebodenmetalsbedoeling datjeandereonderdelengaatkopen.Maarmenkanookgeldverdienenaan‘gratis’softwaredoordaterreclame wordtgemaaktviadesoftware.Nogeenandereredenomsoftwaregratisaantebiedenisdatmendegegevens vandegebruikerwilhebben,bijvoorbeeldomdiegegevensweerdoorteverkopen.Deredenwaaromsoftware opdemarktwordtgebrachtkanheelverschillendzijn.Inveelgevallenishetomergeldmeeteverdienen,maar hetkanookuitideologischeredenenzijn.
Commerciëlesoftware
Desoftware-industrielooptvoortientallenmiljardeneuro’saaninkomstenmisdoorpiraterijenillegaalkopiëren (stelen)vansoftware.Daaromisersteedsmeeraandachtvoorhetvoorkomenvanillegaalgebruikenvoorhet beveiligenvansoftwaretegenmisbruikenkopiëren.EengoedvoorbeeldhiervanisMicrosoft.Debedoelingwas datjemetWindowsVistaenWindows7alleenkonwerkenalsjejezouregistrerenbijMicrosoft.Erwerdendan gegevensvandeconfiguratieopgeslagen,zodatdezelfderegistratienietopeenanderecomputerzouwerken. Tochblijktachterafdat27%vandegebruikteversieswereldwijdillegaalgekopieerdwas.Natuurlijkmagditniet enbetrouwbarebedrijvenzullenzichhieraannietschuldigwillenmaken.
BSA:Gebruikvanillegalesoftwareneemtaf
CONCEPT
InNederlandheeftongeveer22procentvanallesoftwareopcomputersnietdejuistelicentie.Datistwee procentpuntenminderdanin2016,zoblijktuiteenstudievanBSA(BusinessSoftwareAlliance).Veelcio’s willenafvanillegalesoftwarevanwegedeveiligheidsrisico’s,zegtdeBSA.
Volgensde‘2018GlobalSoftwareSurvey’vandeBSAtiktdecommerciëlewaardevanillegalesoftwareinNederland nuafopzo’n448miljoendollar.DeNederlandsecijferswordenondermeerbeïnvloeddoormeeraandachtvoor softwareassetmanagement(sam),meerabonnementenopsoftwareenmeeroogvoorveiligheid.Daarnaast zorgendebewustwordingscampagnesvandeBSAvoormeeraandachtvoorhetbelangvanlegalesoftware,meent deorganisatie.
Ookwereldwijdneemthetgebruikvansoftwarezondereenlicentieaf,maardepraktijkvindtnogsteedsopgrote schaalplaats:overallelandenheengaathetomongeveer37procentvanalleprogramma’s.
Cybersecurityenjuridischeprocedures
Uitdeenquêteblijktookdatcio’szichvragenstellenbijhetgebruikvanillegalesoftware.Zogevenzeaandat diefstalvanpersoonlijkeenbedrijfsgegevenshunbelangrijkstezorgisalshetgaatommalware(datvaakonderdeel isvanillegalesoftware).Meerdandehelftvandeondervraagdecio’s(51procent)zegtdatcybersecurityde nummereenredenisomillegalesoftwaretemijden.Hetverlagenvanderisico’sopjuridischeprocedureskomt opdetweedeplaats(43procent).Malwarealsgevolgvanillegalesoftwarekostbedrijvenbijna359miljarddollar, aldusdeBSA.
Bovendienbiedthetverbeterenvansoftware-complianceeconomischeenveiligheidsvoordelen.Bedrijvendie hunsoftwarebeheerverbeteren,zienomzetstijgingentot11procent.Ookhetverbeterenvanhetsoftwarebeheer levertdirecteconomischvoordeelop.Bedrijvenkunnentotwel30procentperjaarbesparenopsoftwarekosten dooreenrobuustsam-enlicentie-optimaliseringsprogramma,merktdeBSAop.
Naar: FREDERIC PETITJEAN, BSA: Gebruik van illegale software neemt af, Computable, 5 juni 2018
Naasthetfeitdathetillegaalkopiërenvansoftwareonethischisennietmag,ishetookstrafbaar!Eenonderzoek in2015vanFlexeraSoftwarelaatziendatgrotesoftwaredevelopersalsMicrosoft,Adobe,Oracle,IBMenVMware –indievolgorde–actiefopzoekzijnnaarillegalegebruikers.Bijdeonderzochtebedrijvenbleekdatnabetalingen enboetesvaakbovende$100,000uitkomen.Maarookprivékanillegaaleenfilmkijkenjeopeenboetekomen testaan.Uitonderstaandartikeluit2022blijktdaternognietveelisveranderdindeafgelopenjaren.
Meer dan de helft van de PC-gebruikers wereldwijd gebruikt illegale software. Belangenclub BSA onderzocht softwarepiraterij en komt met indrukwekkende getallen.
DeBusinessSoftwareAlliance(BSA)iseensamenwerkingsverbandvangrotesoftwarefabrikanten,zoalsAdobe, AppleenMicrosoft.HoeweliedereenwelweetdathetgratisdownloadenvanMicrosoftWindowsofAdobe Photoshopillegaalis,doenveelmensendattoch.DeBSAgaatgewoonlijknietachterthuisgebruikersaan,maar richtzicheerderopbedrijvendienietnetjeshunlicentieskopen.Dooreenjaarlijksonderzoeknaarhetgebruik vanillegalesoftwarewildeBSAtochookdeaandachtvandeconsumenttepakkenkrijgen.Inhetonderzoek staandaaromeenaantalaansprekendegetallen.
CONCEPT
Wereldwijdwerdin2011door57%vandePC-gebruikersillegalesoftwaregebruikt.Dathogepercentagewordt echtervooralveroorzaaktdooropkomendeeconomieën,zoalsChina,waarmaarliefst77%vandesoftware illegaalis.PercomputerwordtinChinagemiddeld$8,89uitgegevenaanlegalesoftware–inandereopkomende marktenisdatvierkeerzoveel.InNederlanddoenwehetrelatiefgoed.27%vandegeïnstalleerdesoftwarein Nederlandisillegaal,watzorgtvooreencommercieelverliesvan€463miljoen.
Hetonderzoekwerduitgevoerdinopdrachtvansoftwarefabrikanten,duseenbelangomdecijfersaftezwakken hebbenzeniet.ErwordtdanookvooralaandachtgegenereerdvoorBSA-initiatievenalsBaasaandeBeurt,een verkliksitevoorwieopzijnwerkplekillegalesoftwaremoetgebruiken.
Naar: 57% PC-gebruikers heeft illegale software, id.nl, 17 november 2022
FIODpaktTwentenarenopvoorhandelinillegalenavigatiesoftware HENGELO/ALMELO/WEERSELO-DeFIODheeftopdinsdageen28-jarigemanuitHengeloeneen46-jarige manuitAlmeloaangehouden.Zijwordenverdachtvandehandelinillegalenavigatiesoftwarevoorauto’s. DeFIODdoorzochttweewoningeninHengelo,eenwoninginAlmeloeneenvakantiewoningindeomgeving vanWeerselo.Hierbijisondermeerbeslaggelegdopcomputerapparatuuromnavigatiesoftwaretekopiëren, 19.000eurocontantgeldentweeauto’s.
Detweeverdachtenhebbenopinternetnavigatiesoftwareaangebodenvoordiverseautomerken.Detweehebben gebruikgemaaktvanverschillendeaccountsenadverteerdenmetgekopieerdeennieuwesoftware.Daarnaast wordendetweemannenverdachtvanhetwitwassenvanhetgelddatzijmethunhandelverdienden.
Naar: STAN WANING, FIOD pakt Twentenaren op voor handel in illegale navigatiesoftware, Tubantia, 19 december 2018
Softwareaanschaffen
Waarin2010desoftwareindozenzat,wordentegenwoordiglicentiesverkochtvooronlinegebruik.Metname ontwikkelaarsvanspelletjesgebruiktenalseerstehetinternetomhunsoftwareaandemantebrengen. Softwareisvaakergduur,zekervoorparticulieren.Daarnaastgebruikenparticulierendoorgaansnietalle mogelijkhedenvanhetprogramma,terwijlzetochdevolleprijsmoetenbetalen.Ditbrengthenvaakinde verleidingmeteenillegalekopietewerken.BijWindowsheeftMicrosoftdelicentieproblematiekzoproberente regelen,datalleenpersonendiehetpakketregistrerenbijMicrosofthetdaadwerkelijkkunnengebruiken.Indeze registratiezitdanookinformatieoverdecomputerwaaropWindowsisgeïnstalleerd.Eenkopieopeenandere computerzettenkandanniet,omdatelkonderdeelineencomputervanuitdefabrikanteenuniekecodeheeft meegekregen.Tweeophetooggelijkecomputerszijndoordezecodedustochverschillend.
Sharewareenfreeware
Erzijndevelopersdiehunprogramma’sweggevenenernooitgeldvoorvragen.Zegaanervanuitdatzemethun programma’seenbescheidenbijdrageleverenaaneen‘betere’(computer)wereld.Dezegratisprogrammatuur noemenwefreewareofpublic-domain-software.Eenzeerbekendfreeware-ofpublic-domain-pakketisLinux. VoordeLinux-omgevingisveelfreewaretevindenopinternet,vanspelletjestotcompleteOffice-pakkettenzoals LibreOfficeenOpenOffice.
DeApp/Play-storesvanzowelApple,GooglealsWindowsbevattenveelvoorbeeldenvangoedkope(somszelf gratis)software.
Licenties
CONCEPT
Computerprogramma’szijnauteursrechtelijkbeschermd.Eensoftwarelicentieiseenvergunningomzo’n programmategebruiken.Depreciezewettelijkeregelskunnenvanlandtotlandverschillen,maarhetkomterop neerdatjehetprogrammanietmagkopiëren.
Devergunningomeencomputerprogrammatemogengebruikenwordtdusvastgelegdineencontractofwelde licentie.Indelicentiestaanonderanderedevoorwaardenmetbetrekkingtotkopiërenvanhetprogrammaof hetaantalgebruikersdathetprogrammagelijktijdigmaggebruiken.
Zoalswezagenwordtsoftwareindiversevormenaangeboden:vanstriktcommercieeltothelemaalgratis. Daardoorzijnookdelicentievormenverschillend.
Commercieel
Overcommerciëlesoftwarelicentieshebbenwehetinmiddelsgehad.Ontwikkelaarshebbentijdengeldgestoken indesoftwaremetalsdoelerietsaanteverdienen.Indelicentiezalmenoverhetalgemeenopnemendat verspreiden,aanpassenofaangepastverspreidenofverkopennietistoegestaan.Indemeestegevallenbeschikt menooknietoverdebroncode.
Shareware
Sharewareissoftwarediezonderofmetweinigbeperkingenverspreidmagworden.Wanneerdesoftwarevaker wordtgebruikt,moetermeestaleenbedragvoorwordenbetaald.Overhetalgemeenisookeendeelvande functionaliteitverwijderdindegratisversie,zodatdegebruikerzijnwerkbijvoorbeeldnietkanopslaan.Of bepaaldefunctieswerkenniet.
Indelicentiestaatmeestalwieerrechtenopdistributievandesoftwarehebben.Ditkaniedereenzijn,maarook
eenselectegroep.Hetkanookdatgebruikersdesoftwaremogenproberenineenproefperiodeendatnadeze periodebetaaldmoetgaanworden.Deversiesdienietdevolledigefunctionaliteithebbenwordenookwelliteware genoemd.
Freeware
Freewareisdebenamingvoorsoftwarediegratisgebruiktenverderverspreidmagworden.Voorwaardeisdan weldatditgebeurtinongewijzigdevormenzonderereenvergoedingvoortevragen.Freewareisnamelijkvolledig beschermddoorauteursrechten.Hetisdanookniettoegestaandesoftwareteverbeterenofaantepassen,te verspreidenofteverkopen.HetEngelsewoord‘free’vanfreewarebetekenthier‘gratis’enniet‘vrij’.Datisbij softwareondereenGPL-licentieanders,maardatwordtzobehandeld.
OpenSourceBSD
DeBSD-licentieskomenvanBerkeleySoftwareDistribution,softwarediezonderkostenwerdgedistribueerd doordeUniversiteitvanCalifornië,Berkeley.Dezelicentiewerdvoorheteerstgebruiktindejarenzeventig.
Deeisendieaangebruikerswordengesteldzijn:
• denaamvandeauteurendelicentiemoetenwordenvermeldalszedesoftwareinhuneigenproducten verwerken;
• denaamvanderechthebbenden/auteursmagnietzondertoestemminginadvertentiemateriaalworden gebruikt.
Verderzijnallegebruikenallevormenvanverderverspreidenzondermeertoegestaan.Ditmaaktdelicentie vooralgeschiktvoormensendiededoorhenontwikkeldesoftwaregraagdoorveelmensengebruiktzienworden energeenproblemenmeehebbendatanderenergeldmeekunnenverdienen.Onderanderede besturingssystemenFreeBSDenOpenBSDwordenonderdezelicentieverspreid.
OpenSourceApache
DeApache-licentieiseensoftwarelicentievoorvrijesoftwaredieisuitgebrachtdoordeApacheSoftware Foundation.Indelicentiestaatdatsoftwareaangepasten/ofopnieuwverspreidmagwordenopvoorwaardedat eenkopievandeApacheLicensewordtmeegeleverdendeeerderecopyrightvermeldingenbehoudenblijven.
CONCEPT

ErzijndrieverschillendeversiesvandeApacheLicensebeschikbaar:ApacheLicensev1.0,v1.1env2.0.
DeApacheLicensestaatiederegebruikertoeomdesoftwaretegebruikenvoorelkwillekeurigdoel.Jemagde softwarewijzigenen/ofopnieuwverspreiden.
OpenSourceLGPL
DeGNULesserGeneralPublicLicense(LGPL)iseenlicentievoorvrijesoftware.Dezelicentieisbedachtdoor RichardM.StallmanenEbenMoglen.
DeLGPLisbedoeldvoorcomputersoftwarediealsonderdeelvaneengeslotenprogrammagebruiktmagworden.
Figuur 7.20 Apache LicenseWijzigingenindebroncodevandeLGPL-delenvaneenproductmoetenterbeschikkingwordengesteldaande gebruikers.DenieuwgeschrevencodediealleenmaargelinktisaandeLGPL-codehoeftnietterbeschikkingte wordengesteld.

Figuur 7.21
OpenSourceGPL
DeGNUGeneralPublicLicense(GPL)isbedachtdoorRichardM.StallmanvanGNU.Delicentiehoudtindatje metdesoftwaremagdoenwatjewilt,inclusiefaanpassenenverkopen.Ditintegenstellingtotfreewarewaarje desoftwarevrijmaggebruikenmaarnietmagaanpassen.Voorwaardeisweldatjedatrechtookdoorgeeftaan anderenendatjedeauteur(s)vandesoftwarevermeldt.AlsjouwsoftwareonderdeGPLisgepubliceerdenje wiltdezeverderverspreiden,danmoetjedebroncodemeeleveren.Dezebroncodemagdanweerverderworden verspreidonderdeGPL.

CONCEPT
Figuur 7.22
SoftwaredieonderdeGPL-licentiewordtuitgegevenisvrij.Nogmaals,vrijisnietgratis!Metgeldheeftdelicentie weinigtemaken.HetgaatbijGPLoverhetrechtdesoftwaretemogenaanpassen,daarwaarhetbijfreeware juistnietmagwordenaangepast.WelishetzodatpraktischalleGPL-softwaregratistedownloadenisenalsmen ertochvoormoetbetalen,menhetrechtheeftomdesoftwarezelfwegtegevenofzelfsdoorteverkopen.
Opdracht
7 Softwarelicenties
RaadpleegzonodigdetheorieoverSoftwarelicenties.
a. Hoeveelprocentvandepc-gebruikersgebruiktillegalesoftware?
b. WaarvoorstaandelettersBSA?
c. WatisdeBSA?
d. WatdoetdeBSA?
e. Hoegrootwashetcommercieelverliesin2011doorgebruikvanillegalesoftware?
f. HoeveelprocentvandegeïnstalleerdebedrijfssoftwareinNederlandwordtillegaalgebruikt?
g. Watwasdewaardevanillegaalgebruiktebedrijfssoftwarein2013?
h. Watishetnutvanhetinvullenvanderegistratiekaartdiebijsoftwarezit?
CONCEPT
i. Watiseensoftwarelicentie?
j. Watstaaterineenlicentie?
k. Watzijndebelangrijkstekenmerkenvanshareware?
l. Waaromzoudensoftware-ontwikkelaarsgebruikmakenvandeshareware-licentie?
m. Watzijndebelangrijkstekenmerkenvanfreeware?
n. Welkebeperkingenstaanerindefreeware-licentie?
o. WatzijndevoornaamstevoorwaardenvandeOpenSourceBSD-licentie?
p. WatzijndevoornaamstevoorwaardenvandeOpenSourceApache-licentie?
CONCEPT
q. WatzijndevoornaamstevoorwaardenvandeOpenSourceGNULesserGeneralPublicLicense?
r. WathoudtdeOpenSourceGNUGeneralPublicLicensein?
s. IsdeGPL-softwarealtijdgratis?
7.10 Wetgeving
Algemeneverordeninggegevensbeveiliging(AVG)

CONCEPT
Figuur 7.23 AVG
DeAlgemeneVerordeningGegevensbescherming(AVG),inhetEngelsbekendalsdeGeneralDataProtection Regulation(GDPR),iseenEuropesewetdieinwerkingtradop25mei2018.DeAVGisontworpenomdeprivacy engegevensbeschermingvanEuropeseburgersteversterkenenteharmoniserenindeheleEuropeseUnie(EU). Deverordeninglegtstrikteregelsopaanorganisatiesdiepersoonlijkegegevensverwerken.HetdoelvandeAVG isdeinwonersvandeEUmeercontroletegevenoverzijnofhaarpersoonlijkeinformatie.Erzijnaanzienlijke boetesvoorniet-nalevingendaarmeeheeftdeAVGwereldwijdaandachtgekregen.Denormenvoor gegevensbeschermingmedehierdooropinternationaalniveauverhoogd.Hetvanvitaalbelangvoororganisaties omzichbewusttezijnvandeAVG-eisenenzichhieraantehoudenomdeprivacyvanindividuentewaarborgen. DaarmeeishetvoorsoftwaredevelopersvangrootbelangkennistehebbenvandeAVG.
OpdesitesvandeAutoriteitPersoonsgegevensstaatdevolledigetekst.
AVGenopslagvandata
Inessentiegaathetompersoonsgegevens.Datzijngegevensdieverbondenkunnenwordenaaneenindividu, ofwaarmeeeenindividukanwordengeïdentificeerd.Daarbijkunjedenkenaan:
• adres
• bankrekeningnummer
• berichtenopsocialemedia
• e-mailadres
• foto
• IP-adres
• klantenpas
• medischegegevens
• naam
• telefoonnummer
• vingerafdruk
• enzovoort
Dezelijstiszekernietuitputtend!Erzijnveelmeergegevensdietoteenbepaaldindividukunnenleiden.
Heelveelorganisatiesgebruikenpersoonsgegevenseninveelgevallenwisselenzedezeuit.Debelangrijkste regelsvoordeomgangmetpersoonsgegevensinNederlandzijnvastgelegdindeAlgemeneverordening gegevensbescherming(AVG).DeAVGgaatoverhetrechtmatigomgaanmetpersoonsgegevens.Debelangrijkste bepalingenuitdeAVGzijnalsvolgtsamentevatten: Persoonsgegevensmogenalleenwordenverwerktinovereenstemmingmetdewet.Voordebetrokkene(datis degenevanwiedepersoonsgegevensverwerktworden)moethetbehoorlijkentransparantzijn.Duidelijkmoet zijnhoeenwaaromdepersoonsgegevensverwerktworden.
Aandevolgenderegelsmoetwordenvoldaan
Transparantie
CONCEPT
Depersoonvanwiedegegevensverwerktwordenheefthiervoortoestemminggegevenenkentzijnrechten. Toestemmingvoorkinderenmoetdoordeouderofvoogdvanhetkindwordengegevenenditmoetcontroleerbaar zijn.Detoestemmingkanwordeningetrokkenendevoordeverwerkingverantwoordelijkenmoeten‘toestemming’ kunnenaantonen.
Doelbeperking
Depersoonsgegevenswordenvooreenbepaald,gewettigddoelverzameldenmogennietvooranderezaken gebruiktworden.
Gegevensbeperking
Alleendiegegevensdievoorhetdoelnoodzakelijkzijn,mogenwordenverzameld.Degegevensverwerkingmoet opeenpassendemanierwordenbeveiligd.Voorbijzonderegegevens,zoalsoverseksuelegeaardheid,ras, gezondheidengeloofsovertuiging,geldenextrastrengeregels.Bijvastleggingmoetaltijduitgegaanwordenvan ‘zominmogelijk’.Degegevensmoetpassenbijhetdoelwaarvoorzewordenverwerkt.
InonderstaandvoorbeeldheeftDUOzichwaarschijnlijknietaandevoorwaardegegevensbeperkinggehouden.
DUOovertradEuropeseprivacywetmettrackingmails
DeDienstUitvoeringOnderwijs(DUO)overtraddeEuropeseprivacywetdoormetspecialesoftwarebijtehouden ofstudentene-mailshaddengeopend.DatsteltdeAutoriteitPersoonsgegevensnaonderzoekvan de Volkskrant
Doorindegatentehoudenofstudentene-mailshebbengeopend,wistDUOzekerdateenberichtgoedontvangen engelezenwas.Hetgingdaarbijommailsoverwijzigingenindepersoonlijkesituatievanscholieren.
Detrackingsoftwarezougebruiktkunnenwordenalsbewijsinrechtszaken,alsiemandbeweerdenooitbericht tehebbengehadovereenwijziging.Bijhetopenenvaneenmailwerdeenonzichtbareafbeeldinggeopend,waar DUOvervolgensoverwerdgeïnformeerd.
Omdatdesoftwareherleidbareprivégegevensvastlegt,isdezevolgensdeAutoriteitPersoonsgegevensinstrijd metdeAlgemeneverordeninggegevensbescherming(AVG).DUOhieldbijvoorbeeldhetIP-adresvaneen mailontvangerbij,watnietzomaarmag.Bovendienwerdenmailontvangersernietovergeïnformeerddatze werdengevolgd.
InmiddelsisDUOgestoptmethetgebruikvandetrackingtechniek.
Naar: DUO overtrad Europese privacywet met trackingmails, NU.nl, 7 augustus 2019
Juistheid
Depersoonsgegevensmoetencorrectzijnenblijven.Alseenpersoonvindtdateronjuisthedeninstaanofals alleenopalgoritmischebasisbeslissingenzijngenomen,danheefteenpersoonrechtomvragentestellenente strijdentegendezebeslissingen.
Bewaarbeperking
CONCEPT
Depersoonsgegevensmogennietlangerbewaardwordendannodigvoorhetbeoogdedoel.Debewaartermijn voorpersoonsgegevensmoetsamenmetcontactinformatiewordenverstrektaandeverantwoordelijkevoorde verwerkingendefunctionarisvoorgegevensbescherming.
PolitiezetAI-camera'sinomautomobilistenmettelefooninhandtebeboeten
DeNederlandsepolitiezetvanafdinsdagspecialecamera'sindiedoordevoorruitvanvoorbijrijdende auto'skijken.Doordetoepassingvankunstmatigeintelligentiekunnendeapparatenherkennenofde bestuurdereenmobielelektronischapparaatvasthoudt.
Hetsysteemisdoormiddelvanmachinelearninggetraind,waarbijbeeldenvanbellendeautomobilistenzijn voorgeschoteldenbeeldenvanbestuurdersdienietaanhetbellenzijn.Zodoendekunnendecamera'sherkennen alsereenautolangsrijdtwaarineenbestuurderzitdiebijvoorbeeldzitteappenofbellen.Decameramaaktdan eenfotovandechauffeurenhetkentekenvandeauto.
Vervolgensbeoordeelteenagentofdecameraeenjuisteinschattingheeftgemaakt.Isdathetgeval,danzaler automatischeenboetevolgen,bijvoorbeeld240eurovoorhetvasthoudenvaneentelefoon.Alsdepersoon waarbijdeboeteopdedeurmatvaltnietdegefotografeerdebestuurderwas,moethijlatenwetenwieerdanwel achterhetstuurzat.
TegendeNOSmeldtEgbertJanvanHasselt,hethoofdvandeVerkeerspolitie,datgenomenfoto'sdirectverwijderd wordenophetmomentdatergeensprakevaneenovertredingis.Volgenshemwordenalleendefoto'sbewaard vandegenenwaarvanvaststaatdatereenovertredingisbegaan.Ookmogendegemaaktefoto'snietworden gebruiktvoordeopsporingvanverdachtenencriminelen.DeAutoriteitPersoonsgegevensheeftdezemethode goedgekeurd.
Decamera'swordenineersteinstantiegebruiktdoorpolitiemedewerkersvandeLandelijkeEenheidendeEenheid Midden-Nederlandenwordenvanaf1oktoberingezet.Voorlopigheeftdepolitieernogmaartweeingebruik, waarbijereenopdesnelwegeneneeninderegioUtrechtkanwordeningezet.Doordetoepassingvaninfrarood werkendecamera'sook'snachts.
Depolitiezegtdathethiermeeafleidinginhetverkeerwiltegengaanendeverkeersveiligheidwilvergroten.In 2018werdenruim80.000boetesopgelegdvoorbellenmetdetelefoonindehand;in2017lagditaantalop74.561.
Naar: JORIS JANSEN, Politie zet AI-camera's in om automobilisten met telefoon in hand te beboeten, Tweakers.net, 30 september 2019
Inhetartikelvantweakers.nluitseptember2019isindederdealineaduidelijkdatmenzichhierheefttehouden aanderegelmetbetrekkingtotdebewaarbeperkingzoalsdieisopgenomenindeAVG.
Integriteitenvertrouwelijkheid
Depersoonsgegevensmoetenbeschermdwordentegentoegangdooronbevoegden,verliesofvernietiging.
Verantwoording
Deverantwoordelijkemoetkunnenaantonenaandezeregelstevoldoen.MenmoetkunnentonendatdeAVG wordtnageleefd.Devoordeverwerkingverantwoordelijkemoetmaatregelennemendievoldoenaandebeginselen vangegevensbescherming.Zomoetenervoorbedrijfsprocessengegevensbeschermingsmaatregelenworden ontworpenengegevensbeschermingdoorstandaardinstellingenwordengerealiseerd.
CONCEPT
Rechtenvanbetrokkenen
Rechtopinzage
Personenhebbenhetrechtomtoegangtekrijgentothunpersoonlijkegegevens.Daarbijmoetenzijinformatie krijgenoverdemanierwaaropdezepersoonsgegevenswordenverwerkt.Erkaneenoverzichtvandecategorieën gegevensdiewordenverwerkteneenkopievandefeitelijkegegevensopgevraagdworden.Ookmoetenhetdoel vandeverwerking,metwiedegegevenswordengedeeldenhoedegegevenszijnverkregeninzichtelijkworden gemaakt.
Rechtopvergetelheid
Hetrechtomtewordenvergetenisin2014vervangendooreenbeperkterrechtopschrapping.HetEuropees
Parlementheeftinmaart2014inArtikel17bepaalddatdebetrokkenehetrechtheeftomopeenaantalgronden teverzoekenomverwijderingvandebetreffendepersoonsgegevens.
Rechtoprectificatieenaanvulling
Alseronjuistegegevenszijnopgeslagenmoeteenorganisatieopverzoekdezegegevenscorrigeren.Datisniet zoalshetgaatomsubjectieveinformatie.Subjectieveinformatieisinformatiedieniet‘meetbaar’is.Alsiemand eenschilderijmooivindtdanisdatsubjectief,eenanderkanjuisthettegendeelvinden.Voorbeeldenvan subjectievegegevenszijneenstagebeoordelingsrapportofeenpsychologischrapport.Welkanaaneenbetrokkene gevraagdwordenomdetekstaantevullenmetdeeigenvisieopdezaak.
Rechtopdataportabiliteit
Ditrechtwilzeggendatdedooreenpersoonverstrektepersoonsgegevensvanheteneelektronische verwerkingssysteemnaarhetanderemoetenkunnenwordenovergedragen.Ditmoetkunnenzonderdoorde verantwoordelijkevoordeverwerkingtewordengehinderd.Datzoubijvoorbeeldkunnengaanomgegevens zoalszezijnvastgelegdopschool.Wanneerjijoverstaptnaareenandereschool,danhebjehetrechtomalle gegevensdiejijhebtvastgelegdofaangeleverdhebtmeetenemen.
Gepseudonimiseerdegegevenszijngegevensdiezozijnopgeslagendatzemindergoedteherleidenzijntotéén persoon.Zezijnechternietanoniem.Dezegegevensengegevensvanderdendieduidelijkaandebetrokkene gekoppeldkunnenworden,vallenookonderhetrechtopdataportabiliteit.Zowelgegevensdiedoordepersoon ‘verstrekt’zijn,als‘waargenomen’vallenhieronder.Zozoujeookjepresentiegegevensmeemoetenkunnen nemen.Belangrijkhierbijisdatdegegevensaanjoumoetenwordenaangeleverdineengestructureerdeen algemeengebruikteelektronischeopenstandaard.
Rechtopbeperkingvandeverwerking
Alsgegevensnietkloppenofvooreendoelwordengebruiktwaarvoorzenietbedoeldzijn,dankunjehetverwerken vandegegevensbeperken.Voorschooldoeleindenhebjeeene-mailadresopgegeven.Nuheeftdeschoolhet slimmeplanomietsbijteverdienendoordestudentene-mailsmetreclametesturen.Dite-mailadresisdaar nietvoorbedoeld(doelbeperking).Alsstudenthebjedanhetrechtopbeperkingvanverwerking,kortom:jekunt dite-mailverkeerperdirectlatenstoppen.
Rechtopeenmenselijkeblikbijbesluiten
Bijgeautomatiseerdebesluitvormingheeftbetrokkenehetrechtombezwaartemakentegenhetbesluitente vragenomeennieuwbesluit.Ditnieuwebesluitmoetwordengenomenmettussenkomstvaneenmenselijke blik.Dezesituatiekomtveelvoorbijdeautomatischeacceptatie–enweigering–vanverzekerdendooreen verzekeraar.
Rechtvanbezwaar
CONCEPT
Eenbetrokkeneheefthetrechtombezwaartemakentegendeverwerkingvanzijngegevens.Bijdirectmarketing isditeenabsoluutrecht:deorganisatiemoetditbezwaaraltijdrespecteren.Inanderesituatiesgeldteenafweging vandebelangenvandebetrokkenetegendebelangenvandeorganisatie.Wanneerdeprocedureloopt,magde organisatiedegegevensvandebetrokkenenietverwerken.
GeldigheidvandeAVG
DeAVGgaatoverdegegevensvanalleburgersbinnendeEuropeseUnie,ookalshetbedrijfdatdiegegevens verwerktbuitendeEuropeseUnieisgevestigd.GevolgisdatelkelidstaatvandeEuropeseUnieeenonafhankelijke gegevensbeschermingsautoriteitmoethebben.Ditorgaanmoeteventueleklachtenbehandelenenonderzoeken. Alserovertredingenzijn,zaldegegevensbeschermingsautoriteitdeovertrederbestraffen.De gegevensbeschermingsautoriteitenuitdeverschillendelidstatenwerkensamen.AlsbedrijfindeEuropeseUnie inverschillendelandenvestigingenheeft,danzalhetlandwaarde‘hoofdvestiging’isde‘leidendeautoriteit’ hebben.HetEuropeesComitévoorgegevensbeschermingcoördineertdetoezichthoudendeautoriteiten.
ErzijneenaantalzakendienietonderdeAVGvallen.Daarbijgaathetom:
• nationaleveiligheid,hetleger,depolitie,justitie;
• statistischeenwetenschappelijkeanalyse,denkaanbigdata;
• overledenpersonen,dezevallenonderdenationalewetgevingdieperlandver-schilt;
• werkgever-werknemerrelaties,hiervooriseenspecialeEuropesewet;
• verwerkingvanpersoonsgegevensdooreennatuurlijkepersoonbijdeuitoefeningvaneenzuiverpersoonlijke ofhuishoudelijkeactiviteit.
Wettelijkebasisvoorverwerking
Gegevensmogenalleenwordenverwerktalsertenminsteaanéénwettelijkebasisisomdittedoen.Datkanzijn:
• Eenpersoonheefttoestemminggegevenvoordeverwerkingvanpersoonsgegevensvooréénofmeerspecifieke doeleinden.
• Deverwerkingisnoodzakelijkvoordeuitvoeringvaneencontractwaarbetrokkenedeelvanisofomop verzoekvandebetrokkenestappenteondernemenvoordathijeencontractsluit.
• Verwerkingisnoodzakelijkomtevoldoenaaneenwettelijkeverplichtingwaaraandevoordeverwerking verantwoordelijkeisonderworpen.
• Verwerkingisnoodzakelijkomdevitalebelangenvandebetrokkeneofvaneenanderenatuurlijkepersoon tebehartigen.
• Deverwerkingisnoodzakelijkvoordevervullingvaneentaakvanalgemeenbelangofvoordeuitoefening vanofficiëleautoriteitvandevoordeverwerkingverantwoordelijke.
• Verwerkingisnoodzakelijkmethetoogopderechtmatigebelangendiedoordevoordeverwerking verantwoordelijkeofdooreenderdewordenbehartigd,tenzijdezebelangenprevalerenbovendebelangen offundamentelerechtenenvrijhedenvandebetrokkene,diebeschermingvanpersoonsgegevensvereisen, metnamewanneerdebetrokkeneeenkindis.
Datalekken
Erissprakevaneendatalekalserongeoorloofdeofonbedoeldetoegangtotpersoonsgegevensisofalser ongewenstsprakeisvanvernietigen,verliezen,wijzigenenverstrekkenvanpersoonsgegevens.
Ingevalvaneendatalekisdevoordeverwerkingverantwoordelijkewettelijkverplichtdetoezichthoudende autoriteitzonderonnodigevertragingopdehoogtetestellen.Eriseenmaximumtermijnvan72uurna kennisnemingvanhetdatalekomhetverslagoptestellen.Degetroffenpersonenmoetenopdehoogteworden gebrachtwanneerernegatieveeffectenwordenvastgesteld.
Dekennisgevingaanbetrokkenenisnietnodigwanneerergebruikisgemaaktvantechnischeenorganisatorische beschermingsmaatregelenzoalsencryptie(versleuteling).Danzijndepersoonsgegevensonbegrijpelijkvoor eeniederdiegeentoegangsbevoegdheidheeft,watimpliceertdatdegegevensvoldoendezijnbeschermd.
APlegtUberboeteopvoortelaatmeldendatalek
CONCEPT
DeAutoriteitPersoonsgegevens(AP)legtUberB.V.enUberTechnologies,Inc(UTI)eenboetevan600.000 euroopvoorhetovertredenvandemeldplichtdatalekken.In2016vondeendatalekbijhetUber-concern plaatswaarbijonbevoegdentoegangtotpersoonsgegevensvanklantenenchauffeurskregen.Het
Uber-concernkrijgtdeboeteomdatzijdeAPenbetrokkenennietbinnen72uurnahetontdekkenvanhet lekheeftgeïnformeerd.
Wereldwijdwerdenruim57miljoenUber-gebruikersgetroffendoorditdatalekonderwieongeveer174.000 Nederlanders.Hetgingompersoonsgegevenszoalsnamen,e-mailadressenentelefoonnummersvanklantenen chauffeurs.
Naar: AP legt Uber boete op voor te laat melden datalek, Autoriteit Persoonsgegevens, 27 november 2018
Mogelijkesanctiesdiekunnenwordenopgelegd
• Eenschriftelijkewaarschuwingingevalvaneersteenniet-opzettelijkeniet-naleving.
• Periodiekecontrolesvangegevensbescherming.
Afhankelijkvanhetartikeldatisovertredenkanéénvandevolgendetweeboeteswordenopgelegd:
• Eenboetevanmaximaal10miljoeneuroofmaximaal2%vandewereldwijdejaaromzetvanhetvorigeboekjaar inhetgevalvaneenonderneming,afhankelijkvanwelkbedraghogeris.
• Eenboetevanmaximaal20miljoeneuroofmaximaal4%vandewereldwijdejaaromzetvanhetvorigeboekjaar inhetgevalvaneenonderneming,afhankelijkvanwelkbedraghogeris.
Categorieëndatalekken
Erzijndriecategorieëndatalekkenteonderscheiden:
• Inbreukopdevertrouwelijkheid
Wanneerersprakeisvaneenonbevoegdeofonopzettelijkeopenbaringvanoftoegangtotpersoonsgegevens.
• Inbreukopdeintegriteit
Wanneerersprakeisvaneenonbevoegdeofonopzettelijkewijzigingvanpersoonsgegevens.
• Inbreukopdebeschikbaarheid
Wanneerersprakeisvaneenonbevoegdofonopzettelijkverliesvantoegangtotofvernietigingvan persoonsgegevens.
Voorbeeldenvandatalekken:
• hetverliesvaneenlaptopofUSB-stickmetniet-versleuteldepersoonsgegevens;
• eencyberaanvalwaarbijpersoonsgegevenszijnbuitgemaakt;
• eenbesmettingmetransomwarewaarbijpersoonsgegevensontoegankelijkzijngemaakt.
Opdracht8 Gegevensbeveiliging
RaadpleegzonodigdetheorieoverdeAVGenopslagvandata.
a. EengroepvantweehonderdwinkeliersinUtrechtlegtfoto’sennamenvanwinkeldievenvastineendatabase, zodanigdatalleenzijerbijkunnen.Opdezemanierkunnenzewinkeldievenextraindegatenhoudenenhun waarbeschermen.Magdit?
CONCEPT
b. Eenvoetbalvereniginglegtdevolgendegegevensvastoverdeaangeslotenleden:Nummer,Naam,Foto,Adres, Geboortedatum,Geboorteplaats,Beroep(ouders),Inkomen(ouders),Burgerlijkestaat(ouders),Merkauto, Aantalzitplaatsenauto.
WelkegegevenszijnvolgensdeAVGtoegestaanenwelkezijnniettoegestaan?Geefvandeniettoegestane gegevensaanwaaromdezenietzijntoegestaan.
c. WiezorgtmetbetrekkingtotdeAVGvoordeafstemmingtussendeverschillendelanden?
d. Eenbriefmetdaarinpatiëntgegevenswordtnaareenverkeerdadresgestuurd.Debriefwordtongeopend retourontvangen.IshiersprakevaneenovertredingvolgensdeAVG?
e. Eenmedewerkervanhetschoonmaakbedrijfdatisgecontracteerddooreenhuisartsenpostisbijde werkzaamhedenalleen(zonderandereaanwezigen)ineenruimtegeweestwaareencomputerschermmet eendeelvaneenpatiëntendossieropenstond.IshiersprakevaneenovertredingvolgensdeAVG?
f. Bijcontrolevanlogging-gegevensblijktdateenwaarnemendhuisartsinzageheeftgehadineendossiervan eenpatiëntdiegeencontactheeftgehadmetdepraktijkindeperiodevanwaarneming.Hierdoorwasergeen sprakevaneenwaarneemsituatie.IshiersprakevaneenovertredingvolgensdeAVG?
CONCEPT
g. ZoekdrieartikelenuithetafgelopenjaarwaarbijsprakeisvaneenovertredingvandeAVG.Verzorgeenkorte presentatiewaarinjeuitlegtwatdeaardisvandeovertredingenenwelkesanctiedaaropstaat.
7.11 Begrippenlijst
10-20-30-regel
Eenpresentatieheeftnietmeerdan10dia’s,beslaatnietmeerdan20minutenenheefteenlettergroottevan minimaal30punten.
Acceptatietest
Eentestomvasttestellenofdesoftwarevoldoetaandeeisenenwensenvandeopdrachtgever.
Algemeneverordeninggegevensbescherming(AVG)
InhetEngelsbekendalsdeGeneralDataProtectionRegulation(GDPR),eenEuropesewetgevingdieisingevoerd omdeprivacyendebeschermingvanpersoonsgegevensvanindividuenbinnendeEUtewaarborgen.
ApplicationServicesLibrary(ASL)
Eenframeworkeneensetvanbestpracticesdiezijnontworpenomorganisatiesteondersteunenbijhetverbeteren vanhunapplicatiebeheerprocessen.
BSD-licenties
BerkeleySoftwareDistribution-licenties,zijneenfamilievanvrijeenopen-sourcesoftwarelicentieszestaan bekendomhuneenvoudenomdatzeontwikkelaarsrelatiefveelvrijheidgevenbijhetgebruik,wijzigenen verspreidenvandebroncode.
BigBang
Deimplementatiewaarbijhetoudesysteeminéénkeerwordtvervangendoorhetnieuwe.
Configurationmanagementdatabase
Indeconfigurationmanagementdatabase(CMDB)staanallegegevensoverallesystemen(configuraties)inhet bedrijf–ookdeapplicatiesenonderdelen.
Continuiteitsbeheer
CONCEPT
Bijcontinuiteitsbeheergaatheteromdatalleseropgerichtisdathetsysteemblijftfunctioneren.
Contractmanagement
Hetbeherenvanalleaspectenvaneencontract,vanafdeinitiëlecreatieenonderhandelingtotaandeuiteindelijke uitvoering,monitoringeneventuelebeëindigingvanhetcontract.
Cybersecurity
Ookbekendalsinformatiebeveiligingofcomputerbeveiliging,verwijstnaardepraktijken,technologieënen processendiezijnontworpenomcomputersystemen,netwerkenengegevenstebeschermentegenongeoorloofde toegang,aanvallen,schadeofdiefstal.
Datalek
Erissprakevaneendatalekalserongeoorloofdeofonbedoeldetoegangtotpersoonsgegevensisofalser ongewenstsprakeisvanvernietigen,verliezen,wijzigenenverstrekkenvanpersoonsgegevens.
Financieelmanagement
Hetfinancieelmanagementisverantwoordelijkvoordekostenenbaten.
Freeware
Gratissoftware.
GeneralDataProtectionRegulation(GDPR)
EenEuropesewet,inhetNederlandsdeAVG.Dewetisontworpenomdeprivacyengegevensbeschermingvan EuropeseburgersteversterkenenteharmoniserenindeheleEuropeseUnie(EU).
Kwaliteitsmanagement
Hetkwaliteitsmanagementmoetdeinterneeningekochtekwaliteitvanproces,product,middelenenorganisatie waarborgen.
Leveranciersmanagement
Bijleveranciersmanagementomdekostenenbaten.Menwilhetbesteproducttegendelaagstekosten.
OpenSource
Eentypesoftwarewaarvandebroncodevrijbeschikbaarisvoorhetpubliek.
Operationeleprocessen
Dedagelijksegangvanzaken.
Persoonsgegevens
Gegevensdieverbondenkunnenwordenaaneenindividu,ofwaarmeeeenindividukanwordengeïdentificeerd.
Schaduwdraaien
Bijschaduwdraaiendraaienhetoudeennieuwesysteemgedurendeeenbepaaldetijdnaastelkaar.
ServiceLevelAgreement(SLA)
Eenbelangrijkhulpmiddelbijdeafsprakenmetdeklant.
Shareware
Softwarediejerechtstreeksvandemakerkooptvooreenkleinbedrag.
Softwarebeheerendistributie
CONCEPT
Hetprocesvanhetverspreidenvansoftwarevanafdeontwikkelingsomgevingnaardeoperationeleomgeving.
Softwarelicentie
Eenjuridischbindendcontracttussendeeigenaarofdistributeurvansoftware(delicentiegever)endegebruiker vandesoftware(delicentienemer).Dezelicentiebepaaltdevoorwaardenwaaronderdegebruikerhetrechtheeft omdesoftwaretegebruiken,distribuerenofwijzigen.
Sturendeprocessen
Plannenenorganiserenvoordetoekomst.
Testcase
Eengedetailleerdebeschrijvingvandestappendiemoetenwordengenomentijdenshettesten.
Testscenario
Eengedetailleerdebeschrijvingvaneenspecifiekeinteractieofsituatiediewordtgebruiktomeenbepaaldaspect vaneensysteemtetesten.
Wijzigingsbeheer
Hetervoorzorgendatwijzigingengecontroleerdengeordendwordendoorgevoerd,zonderonnodigerisico's voordestabiliteitvandeinformatiesystemen.
7.12 Praktijkopdrachten
Opdracht9 Onderzoekopensoucesoftwarelicenties
Jewerktdezeopdrachtuitineengroepjevandrieofvierstudenten.
Kieséénvandevolgendeopensourcesoftwarepakketten.Onderzoekwelkeopensourcelicentiewordtgebruikt (opensourcesoftwarelicenties,zoalsdeGNUGeneralPublicLicense(GPL),MIT-licentie,Apache-licentie,enz.)
1. Linux(besturingssysteem):hetLinux-besturingssysteemiseenvandemeestbekendeopensource besturingssystemenenwordtgebruiktinverschillendedistributies,zoalsUbuntu,CentOSenDebian.
2. ApacheHTTPServer(webserver):Apacheiseenpopulaireopensourcewebserverdiewordtgebruiktom websitesenwebtoepassingentehosten.
3. MozillaFirefox(webbrowser):Firefoxiseenopensourcewebbrowserdiebekendstaatomzijnprivacy-en beveiligingsfuncties.
4. LibreOffice(kantoorsoftware):LibreOfficeiseengratisenopensourcekantoorsoftwarepakketdat tekstverwerking,spreadsheets,presentatiesenmeerbiedt.
5. GIMP(grafischebeeldbewerking):GIMPstaatvoorGNUImageManipulationProgrameniseenkrachtige opensourcetoolvoorhetbewerkenvanafbeeldingenengrafischeontwerpen.
6. VLCMediaPlayer(mediaspeler):VLCiseenopensourcemediaspelerdieverschillendeaudio-en videoformatenondersteunt.
7. WordPress(contentmanagementsysteem):WordPressiseenpopulaireopensourceCMSwaarmee gebruikerswebsitesenblogskunnenmakenenbeheren.
8. MySQL(relationeeldatabasebeheersysteem):MySQLiseenveelgebruiktopensourcedatabasesysteem datwordtgebruiktvoorhetopslaanenbeherenvangegevens.
9. PostgreSQL(relationeeldatabasebeheersysteem):PostgreSQLiseenopensourcedatabasesysteemdat bekendstaatomzijngeavanceerdefunctiesenuitbreidbaarheid.
10. Docker(containerorkestratie):Dockeriseenopensourceplatformvoorhetontwikkelen,implementeren enbeherenvancontainersvoorapplicaties.
11. Eclipse(geïntegreerdeontwikkelomgeving):EclipseiseenopensourceIDEdiewordtgebruiktvoorhet ontwikkelenvansoftwareinverschillendeprogrammeertalen.
CONCEPT
12. Audacity(audio-opnameen-bewerking):Audacityiseenopensourcetoolvoorhetopnemenenbewerken vanaudio.
13. Blender(3D-modelleringen-animatie):Blenderiseenopensource3D-modellerings-enanimatiesoftware diewordtgebruiktvoorhetmakenvan3D-graphicsenanimaties.
14. Joomla(contentmanagementsysteem):JoomlaiseenopensourceCMSdatwordtgebruiktvoorhet makenvanwebsitesenwebtoepassingen.
15. Git(versiebeheersysteem):Gitiseenopensourcesysteemvoorversiebeheerdatwordtgebruiktom wijzigingeninsoftwarecodetevolgenentebeheren.
Onderzoekhoejeeenbijdragekuntleverenaanhetonderhoudendeontwikkelingvandesoftware.Maakeen kortepresentatieoverdedoorjulliegekozensoftwarewaarbijdenadrukligtop:
• Toepassingvandesoftware.
• Soortlicentieendemogelijkheden/beperkingenbinnendelicentie.
• Demogelijkhedendieerzijnomeenbijdrageteleverenaandeontwikkelingenverbeteringvandesoftware.
7.13
Terugblik
Opdracht10 Terugblik
Zeteenkruisjeindekolomdievoorjouvantoepassingis.
Beoordelingscriteria
Ja
Jekuntdebelangrijkstewetenregelgevingrondlicentiesopadequatemaniertoepassen.
Jekuntbijdeopleveringvaneenproductdejuistepresentatietechniekentoepassen.
JekuntdebelangrijksteprocessenuitApplicationServicesLibraryindejuistecontext plaatsen.
JekuntbeoordelenofhetbeheervandatagebeurtconformdeAlgemeneVerordening Gegevensbeveiliging.
Opdracht11 Terugblik
Denknaoverwatjehebtgedaaninditblok.
a. Noemtweedingenwaaroverjetevredenbent.
b. Noemtweedingendiejedevolgendekeeranderswiltdoen.
1.
2.
CONCEPT
c. Vraagjedocenten/ofleermeesteromfeedback.
Tops:
Tips:
Nee10-20-30-regel221
A
Acceptatietest43,184,207
Actiefluisteren72
activiteitendiagram90,124
Aggregaties100
Agile35,68
Algemeneverordeninggegevensbescherming(AVG)242
ApplicationServicesLibrary(ASL)227
Assembleertaal167
Association98
Attributen98
Attribuut136
Attribuuttype136
Authenticatie186
Autorisatie186
Availability61,186
B
Bachman-diagram146
BelbinTeamCircle17
BelbinTeamrolmodel13
Bestpractices67
BigBang206
Black-box-systeemtests43
Coordinator14
Cybersecurity234
D
Dailycycle39
Databases134
Datalek246
Deployment57
Destructieftesten184
Documentatiegenerator168
Dynamischtesten179
E
Encryptie61
Equivalencepartitioning180
Extend92
Externesleutel137
EXtremeProgramming41
F
CONCEPT
Black-box-test180
Bottom-up-testen188
Boundaryvalueanalysis181
Broncode-editor167
BSD-licenties237
Bug68,168
Bullpen35
C
Cloud-computing61
Coderingsrichtlijnen68
Compatibel171
Compatibiliteitstest182
Compiler167
CompleterFinisher13
Compositie100
Confidentiality61
Configurationmanagementdatabase230
Consistent135
Continutesten184
Continuïteitsbeheer231
Contractmanagement228
FInancieelmanagement229
Firewall60
Freeware236
Functioneelleidinggevende11
Functioneelontwerp18,88
Functioneeltesten184
Fuzz-testen181
Fuzzing68
G
GeneralDataProtectionRegulation(GDPR)241
Gray-box-testing182
I
Implementer15
Include91
Inheritancerelationships100
Integer135
IntegratedDevelopmentEnvironment168
Integrity61
InternetofThings135
Iteratie35
Iteratievemethode12
Iteration43
K
Klasse97
Klassendiagram90
Kwaliteitsmanagement229
Kwaliteitswaarborging43
L
Leveranciersmanagement229
Lifeline132
Linkeditor167
Linking-pin-principe9
M
Machinecode167
Methods98
Mijlpaal19
Mijlpaalproduct31
Mijlpaalproducten20
MonitorEvaluator14
MoSCoW-methode81
N
Non-repudiation187
Normaliseren136,137
O
OpenSource237
Operationeelleidinggevende11
Operationeleprocessen227
P
PakketvanEisen12,57
Peer-review41
Release-plan41
Requirements18,81,88,174
ResourceInvestigator14
Retrospective40
Reviewmeeting40
S
S-SDLC62
Scenario94
Schaduwdraaien206
Scrum36
Scrum-team37
Scrummaster37
SDM31
Security-testen185
Sequence-diagram175
CONCEPT
Persoonsgegevens242
Phishing59
PlanvanAanpak(PvA)12
Plant15
Postconditie94
Precondities94
Prestatietests185
Primairesleutel137
PRINCE218
Productowner38
Project8
Projectgroep10
Projectmanagement9
Projectorganisatie7
Projectplan12
Prototyping12,46
R
Redundant103,135
Regressietesten183
Relationeledatabase135
SecurityRequirementsSpecification63
sequentiediagram90,131
ServiceLevelAgreement228
Shaper16
Shareware234,236
SoftwareDevelopmentLifeCycle(SDLC)56
SoftwareRequirementSpecification56
Softwarebeheerendistributie232
Softwarelicentie236
Specialist15
Specificatiegebaseerdetest181
Spike-oplossing43
Sprintplan38
SQL156
SQL-injection156
Stakeholders9
Stand-upmeeting44
Statischetesten179
Sturendeprocessen227
Stuurgroep9
Swimlane125
T
Teamworker14
Technischontwerp18,124
Technisch-ontwerp-rapport124
Teksteditor166
Testcase209
Testdocumentatie175
Testplan175
Testscenario176,209
Teststrategie174
Top-down-testen188
Training-on-the-job41
Tweefactorauthenticatie60
U
UnifiedModelingLanguage(UML)89
Usability-test185
Use-case-diagram90
Use-case-tabel93 userstories39,42,93
V
Versiebeheer173
Versienummer170
Visueeltesten181
W
Watervalmethode12,30
Werkgroep10
White-box-testen179
Wijzigingsbeheer231
Wireframes116