BBO_Concept_SoftwareDeveloper

Page 1

SOFTWAREDEVELOPER

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

5 Inleiding 7 Projectmatigwerken 1 8 Project 1.1 12 Projectplan 1.2 20 Projectomschrijvingprojectplan 1.3 22 Begrippenlijst 1.4 25 Praktijkopdrachten 1.5 27 Terugblik 1.6 29 Ontwikkelmethode 2 30 Watervalmethode 2.1 35 Spiraalmethode 2.2 46 Prototyping 2.3 49 Begrippenlijst 2.4 52 Praktijkopdrachten 2.5 53 Terugblik 2.6 55 Veiligenbetrouwbaarsoftwareontwikkelen 3 56 SoftwareDevelopmentLifeCycle(SDLC) 3.1 58 Informatiebeveiliging 3.2 62 SecureSoftwareDevelopmentLifeCycle(S-SDLC) 3.3 71 Deopdrachtvaststellen 3.4 72 Luisteren,samenvattenendoorvragen(LSD) 3.5 80 Vragendiegesteldmoetenworden 3.6 81 Programmavaneisen 3.7 81 RapportProgrammavaneisen 3.8 83 Begrippenlijst 3.9 85 Praktijkopdrachten 3.10 86 Terugblik 3.11 87 Functioneelontwerp 4 88 Functioneelontwerp 4.1 97 Klasseenklassendiagram 4.2 115 Functioneel-ontwerp-rapport 4.3 118 Begrippenlijst 4.4 120 Praktijkopdrachten 4.5 121 Terugblik 4.6 123 Technischontwerp 5 124 Technischontwerp 5.1 124 Activiteitendiagram(activitydiagram) 5.2 131 Sequentiediagram(sequencediagram) 5.3 134 Relationeeldatamodel 5.4 154 Technisch-ontwerp-rapport 5.5 157 Begrippenlijst 5.6 159 Praktijkopdrachten 5.7 161 Terugblik 5.8 3 CONCEPT
INHOUD
163 Realiserenentestenvansoftware 6 166 Realiserenvansoftware 6.1 173 Testenvansoftware 6.2 196 Begrippenlijst 6.3 199 Praktijkopdrachten 6.4 201 Terugblik 6.5 203 Ingebruiknemenvansoftware 7 204 Implementatie 7.1 220 Productpresenteren 7.2 225 Hetopgeleverdeproductevalueren 7.3 227 ApplicationServicesLibrary2(ASL2) 7.4 227 Processenopstrategischniveau 7.5 228 Processenoptactischniveau 7.6 229 Processenopoperationeelniveau 7.7 231 Verbindendeprocessen 7.8 234 Softwarelicenties 7.9 241 Wetgeving 7.10 249 Begrippenlijst 7.11 251 Praktijkopdrachten 7.12 252 Terugblik 7.13 253 Index 4 CONCEPT

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

5

• 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

6

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.

8

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 pins
9 Blok1 Projectmatigwerken

Projectgroep

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.

10
Figuur 1.2 Werkgroep tijdens de daily stand-up

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?

11 Blok1 Projectmatigwerken

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)

12

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.

13
Projectmatigwerken
Blok1

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.

14

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.

15 Blok1 Projectmatigwerken

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

16
Figuur 1.3 Belbin Team Role Circle

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.

17
Projectmatigwerken

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

18

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?

19 Blok1 Projectmatigwerken

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.

20

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

21 Blok1 Projectmatigwerken

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.

22

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.

23 Blok1 Projectmatigwerken

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.

24

1.5 Praktijkopdrachten

Opdracht4 Projectplanning

a. VormmeteengroepjevanviertotzesstudenteneenteamenvuldeBelbinTeamCirclein.Bepaaleerstover welkeeigenschappenelkteamlidbeschikt.Neemvoorbeschrijvingvanderollendetheoriedoor.

Gaalsvolgttewerk:

• Elkedeelnemerkiestdrierollendiegoedbijzichzelfpassen.

• Elkteamlidlaatzichookdrieteamrollentoebedelendoorminimaaltweeandereteamleden.

• Vergelijkdeuitkomstenbepaalalsteaminwelkevolgordederollenhetbestebijdiepersoonpassen.

• TekeneenBelbin-cirkelmetnegensecties,eenvoorelkvandeteamrollenvanBelbin.

• Zetvanelkteamliddenamenindesegmentendieovereenkomenmethunbovenstetweerollen.

• Beoordeel,opbasisvandeingevuldecirkel,ofjullieeengoedprojectteamzoudenzijnenbenoemaan welkekwaliteitjulliebehoeftehebbenomhetprojectkansvanslagentegeven.

CONCEPT

25 Blok1 Projectmatigwerken

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.

26

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 Ja
2.
1. 2.
27
Blok1 Projectmatigwerken

CONCEPT

28

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.

30

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;

31 Blok2 Ontwikkelmethode

• 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?

32

b. UitwelkefasenbestaatSDM?

c. WatzijnmijlpaalproductenbijSDM?

d. WatzijndemijlpaalproductenvandefaseInformatieplanningbijSDM?

e. WatishetbelangvandefaseDefinitiestudiebijSDM?

f. WatzijndemijlpaalproductenvandefaseDefinitiestudiebijSDM?

CONCEPT

g. WatgebeurterindefaseBasisontwerpbijSDM?

h. WatzijndemijlpaalproductenvandefaseBasisontwerpbijSDM?

i. WatgebeurterindefaseDetailontwerpbijSDM?

33 Blok2 Ontwikkelmethode

j. WatzijndemijlpaalproductenvandefaseDetailontwerpbijSDM?

k. WatgebeurterindefaseRealisatiebijSDM?

l. WatzijndemijlpaalproductenvandefaseRealisatiebijSDM?

m. WatgebeurterindefaseInvoeringbijSDM?

n. WatzijndemijlpaalproductenvandefaseInvoeringbijSDM?

CONCEPT

o. Waaromisfase6,Gebruikenbeheer,feitelijkgeenfasebijSDM?

p. WatzijndenadelenvandeWatervalmethode?

34

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.

35 Blok2 Ontwikkelmethode

• 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

36
Figuur 2.2 Maken sprintplan (Create sprint backlog)

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

37 Blok2 Ontwikkelmethode

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.

38

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
39 Blok2 Ontwikkelmethode

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

40

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 Programming
41 Blok2 Ontwikkelmethode

Commitment 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.

42

• 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.

43 Blok2 Ontwikkelmethode

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

44

e. Kijknaardevolgendefiguur.Plaatsdebegrippen Dagelijkse cyclus, Deelapplicatie, Idee, Maken sprintplan, Sprintcyclus, Sprintplan en Terugkoppeling achterhetjuistegetalindetabel.

CONCEPT

f. DagelijkswordterdoordeScrumMastergestuurdopdevoortgang.Aandehandvanwelkevragen?

g. WatisdebelangrijkesuccesfactorvanScrum?

h. WatisdeScrumMastervooralniet?

1 2 3 4 5 6 7
45 Blok2 Ontwikkelmethode

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

46

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.

47 Blok2 Ontwikkelmethode

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.

48

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.

49 Blok2 Ontwikkelmethode

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.

50

Userstory

Eenkorte,eenvoudigebeschrijvingvaneenfunctieofstukfunctionaliteitvanuithetperspectiefvande eindgebruiker.

Watervalmethode

Eentraditionelebenaderingvansoftwareontwikkeling.Indezemethodewordthetontwikkelingsprocesopgedeeld inverschillendefasenenelkefasemoetvolledigwordenvoltooidvoordatdevolgendebegint.

CONCEPT

51 Blok2 Ontwikkelmethode

2.5 Praktijkopdrachten

Opdracht5 Tijdlijnprojectwebomgeving

Dezeopdrachtvoerjeuitineengroepjevandrieofvierstudenten.

FirmaWatermanwileenwebomgevingmetdevolgendefunctionaliteiten:

• Informatie

• Webshop

• Contactpagina

• Reactie/referentiepagina

CONCEPT

Maakvoorditprojectmetjegroepjeeentijdlijnvan15wekenwaarinjegebruikmaaktvandefasenvanSDM.Zorg ervoordatjeelkefasedetijdtoekentdierechtdoetaandehoeveelheidwerkindefase.

52

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

Nee
53 Blok2 Ontwikkelmethode

CONCEPT

54

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),

56

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?

57 Blok3 Veiligenbetrouwbaarsoftwareontwikkelen

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

58

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

59 Blok3 Veiligenbetrouwbaarsoftwareontwikkelen

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".

60

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.

61
betrouwbaarsoftwareontwikkelen
Blok3 Veiligen

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

62
Figuur 3.3 Cyclus S-SDLC proces

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

63
Blok3 Veiligenbetrouwbaarsoftwareontwikkelen

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)
64

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.

65
softwareontwikkelen
Blok3 Veiligenbetrouwbaar

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.

66

• 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.

67
betrouwbaarsoftwareontwikkelen
Blok3 Veiligen

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.

68

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

69 Blok3 Veiligenbetrouwbaarsoftwareontwikkelen

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?

70

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.

A B C D E F G H
71 Blok
Veilig
betrouwbaarsoftwareontwikkelen
Figuur 3.7 De opdracht vaststellen
3
en

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.

72

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.

73
betrouwbaarsoftwareontwikkelen
Blok3 Veiligen

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?

74

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.

75 Blok
betrouwbaarsoftwareontwikkelen
3 Veiligen

d. Schrijfineenaantalkernwoordenopwatjezietbijdebovenstefiguuralshetgaatomluisteren.

e. Schrijfineenaantalkernwoordenopwatjezietbijdeonderstefiguuralshetgaatomluisteren.

CONCEPT

f. Schrijfineenaantalkernwoordenopwatjezietbijdemeestlinkselijnfiguuralshetgaatomluisteren.

g. Schrijfineenaantalkernwoordenopwatjezietbijdemiddelstelijnfiguuralshetgaatomluisteren.

h. Schrijfineenaantalkernwoordenopwatjezietbijdemeestrechtselijnfiguuralshetgaatomluisteren.

76

Blok3 Veiligenbetrouwbaarsoftwareontwikkelen

i. Bespreekjewaarnemingenmetbetrekkingtotvraagat/mhmeteenmedeleerling.Watzijndeovereenkomsten endeverschilleninjulliewaarnemingen?

j. Beschrijfwatdehoudingvandebovenstaandefigurenuitdrukt.

CONCEPT

k. Welkevoordelenlevertsamenvattenjeop?

l. Hetgrootstedeelvandeboodschapwordtdoornon-verbalesignalengegeven.Hoekunjedieinjesamenvatting teruglatenkomen?

77

m. Watisheteerstewatjeprobeertduidelijktekrijgenalsjemeteenopdrachtgeveringesprekgaat?

n. Welkevragensteljeomhetdoelendedoelgroeptebepalenalsjeopdrachtkrijgtomeenwebomgevingte ontwikkelen?

o. Jezalmoetenwetenhoeeenenandereruitgaatzien,dezogenoemde‘lookandfeel’.Metwelkevragenkan jedaarachterkomen?

p. Jezalmoetenwetenwelkefunctionaliteitermoetzijn.Welkevragenkanjeaandeopdrachtgeverstellenom daarachtertekomen?

CONCEPT

q. Alsjeweethoeallesmoetfunctionerenenhoeheteruitmoetzienisdevraaghoehetonderhoudgeregeld moetworden.Welkevragenkanjehieroveraandeopdrachtgeverstellen?

78

Opdracht6 Uitsprakenverbeteren

RaadpleegzonodigdetheorieoverLuisteren,SamenvattenenDoorvragen(LSD).

Hieronderstaateenaantaluitspraken.Noteerperuitspraak:

• Watvoorsoortbeweringbetrefthet?

• Watisdeuitdagingbijdoorvragen?

• Welkevraagzougesteldkunnenworden?

a. Opaisbeterafinzijneigenflat.

b. Duitseauto’szijngeweldig!

c. Wegaandezaakreorganiseren.

d. Iedereenvindtgroenmooi.

CONCEPT

e. Ikkannietzomaarweggaan.

f. Ditmoetdoorallegebruikerswordengetest.

79
3 Veiligenbetrouwbaarsoftwareontwikkelen
Blok

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?

80

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-methode
81
betrouwbaarsoftwareontwikkelen
Blok3 Veiligen

Samenvatting

Opbasisvaneen(management)samenvattingmoetdeprojectmanageren/ofopdrachtgeverbesluitenofhet projectdoorkangaan.Desamenvattingiscompactenbevatconcretefeitendiebelangrijkzijnvoorde besluitvorming.

Eisen

Hetisheelbelangrijkallesexactvastteleggen.Ditdoejeom:

• tevoorkomendatersteedsnieuwevragenbijkomen;

• datjeachteraftehorenkrijgtdatwatjegemaakthebtnietiswatmenbedoelde;

• dateronderdelenontbrekendiewarenafgesproken.

CONCEPT

AlswedeMoSCoW-methodegebruikenwordendeafsprakeneenstukduidelijker.Eenprojectisgeluktalsalle must-have-eiseninheteindproductverwerktzijn.Inallegevallenishetbelangrijkeenduidelijkverslagopte leveren.Schroomnietomgebruiktemakenvantekeningenenschema’s.

82

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.

83 Blok3 Veiligenbetrouwbaarsoftwareontwikkelen

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.

84

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.

85 Blok3 Veiligenbetrouwbaarsoftwareontwikkelen

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
86 CONCEPT

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

88

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.

89 Blok4 Functioneelontwerp

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.

90

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.

91

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.

92

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.

93 Blok4 Functioneelontwerp

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

Geldautomaat Naam 1.0 Versie
Actor
Klant
94

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.

95 Blok4 Functioneelontwerp

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.

96

• 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.

97 Blok4 Functioneelontwerp

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 school
98

Indepraktijkkomthetvoordatermeerstudentenopéé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)

0..1
0..*
1..*
n
0..*
1..n 99 Blok4 Functioneelontwerp

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.

100

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

101 Blok4 Functioneelontwerp

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..*).

102

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

103 Blok4 Functioneelontwerp

• 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

104

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).

105 Blok4 Functioneelontwerp

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

106

Dezetabellengevenweeenadequatenaamenwehalendesynoniemenweg.Danhoudenwedevolgendeklassen over:

Figuur 4.17 Klassendiagram Air-concepts zonder synoniemen

Depilootendebemanningzijngeplandopeenbepaaldevlucht.Hieraanisnatuurlijkookeenvliegtuiggekoppeld. Datzouerzouitkunnenzien:

CONCEPT

Figuur 4.18 Klassendiagram Air-concepts met vliegtuigen

107
Blok4 Functioneelontwerp

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.

108

Hetgeheleklassendiagramzieterdanzouit:

CONCEPT

109 Blok4 Functioneelontwerp
Figuur 4.20 Gehele klassendiagram Air-concepts

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

110

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?

111 Blok4 Functioneelontwerp

j. Welkevandeonderstaandeafbeeldingengeeftdecompositietussenhuisenkamerweer?

k. Welkevandeonderstaandeafbeeldingenbeeldtuit:geenautozondereenwiel?

CONCEPT

112

l. Welkevandeonderstaandeafbeeldingenbeeldtuit:eenviskanvinnenhebben?

m. Welkebeweringoveronderstaandefiguurisjuist?

CONCEPT

eenautoheefteenmotor eenautoheeftminimaaléénwiel eenautoheeftéénchassis eenautokaneencarrosseriehebben

n. BoomBeroepsonderwijsgeeftboekenuitvanverschillendeauteurs.Erzijnauteursdieéénboekhebben geschreven,maarerzijnookauteursdiemeerdereboekenhebbengeschreven.Ookkomthetvoordateen collectiefvanschrijversaanéénboekheeftgewerkt. Boomberoeponderwijswerktmetverschillendedrukkerijen,afhankelijkvandeaardvanhetboek.Iederboek

113 Blok
Functioneelontwerp
4

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.

114

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.

115 Blok4 Functioneelontwerp

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.

116

4 Functioneelontwerp

Technische consequenties

Allewijzigingenaandeinfrastructuur,allematerialen/apparatuurdieextramoetenwordenaangeschaftmoeten hierwordenvermeld.

Kosten

Indezefaseishetalleenmogelijkeenglobalebeschrijvingvandekostentemaken.Hetisonmogelijkomnual voorhetheleprojectallestotopdeeurotespecificeren.Tochishetbelangrijkdekostenvoorhardware,software envoorontwikkelingtenoemen.Deurenvoordefaseontwerpzijnnatuurlijkwelgespecificeerd.

Planning

HierneemjedebijgesteldeplanninguithetProjectplanover.

CONCEPT

117 Blok

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.

118

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.

119 Blok4 Functioneelontwerp

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.

120

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 Ja
121 Blok4 Functioneelontwerp

CONCEPT

122

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.

124

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).

125 Blok5 Technischontwerp

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.

126

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

Naam 1.0
127 Blok5 Technischontwerp

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:

128

5.7 Uitslagverwerking van tennisvereniging

Voorbeeldbestellingmetparallelleverwerking:

CONCEPT

Figuur TopSpin
129 Blok5 Technischontwerp
Figuur 5.8 Bestelling webshop

Opdracht2 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

130

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.

131 Blok5 Technischontwerp

Figuur 5.9 Sequentiediagram snoepautomaat en klant

CONCEPT

Figuur 5.10

Bijhetopzettenvaneensequentiediagramwordendeactorendesysteemonderdelenmeestalaandebovenkant vanhetdiagram,naastelkaar,gezet.Detijdlooptdanvanbovennaarbeneden.Vanelkeactorofelkobjectwordt eenlijngetrokkenvanbovennaarbeneden,de‘lifeline’.Demeestetoolslatendelifelineactiefofinactiefworden ophetaangegevenmoment,meestaldoorhembredertetekenen.

132

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.

133
Blok5 Technischontwerp

• 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

134

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.

135 Blok5 Technischontwerp

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

136
Figuur
Attributen en entiteiten

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.

137 Blok5 Technischontwerp

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

138

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

139
Technischontwerp
Blok5

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

140

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

141 Blok5 Technischontwerp

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

142

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.

143

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.

144

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.

145 Blok5
ontwerp
Technisch

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.

146

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

147 Blok5 Technischontwerp

a. BepaaldeeerstenormaalvormvolgensdemethodevanCodd.

b. BepaaldetweedenormaalvormvolgensdemethodevanCodd.

c. BepaaldederdenormaalvormvolgensdemethodevanCodd.

d. Tekenhetstrokendiagram.

e. TekenhetERD.

Opdracht7 Normaalvormen,strokendiagramenERD

a. BepaaldeeerstenormaalvormvolgensdemethodevanCodd.

CONCEPT

b. BepaaldetweedenormaalvormvolgensdemethodevanCodd.

c. BepaaldederdenormaalvormvolgensdemethodevanCodd.

d. Tekenhetstrokendiagram.

e. TekenhetERD.

148

Opdracht8 Normaalvormen,strokendiagramenERD

a. BepaaldeeerstenormaalvormvolgensdemethodevanCodd.

b. BepaaldetweedenormaalvormvolgensdemethodevanCodd.

c. BepaaldederdenormaalvormvolgensdemethodevanCodd.

d. Tekenhetstrokendiagram.

CONCEPT

e. TekenhetERD.

149 Blok5 Technischontwerp

Opdracht9 Normaalvormen,strokendiagramenERD

a. BepaaldeeerstenormaalvormvolgensdemethodevanCodd.

b. BepaaldetweedenormaalvormvolgensdemethodevanCodd.

CONCEPT

c. BepaaldederdenormaalvormvolgensdemethodevanCodd.

d. Tekenhetstrokendiagram.

e. TekenhetERD.

150

Opdracht10 Normaalvormen,strokendiagramenERD

a. BepaaldeeerstenormaalvormvolgensdemethodevanCodd.

b. BepaaldetweedenormaalvormvolgensdemethodevanCodd.

c. BepaaldederdenormaalvormvolgensdemethodevanCodd.

CONCEPT

d. Tekenhetstrokendiagram.

e. TekenhetERD.

151 Blok5 Technischontwerp

Opdracht11 Normaalvormen,strokendiagramenERD

a. BepaaldeeerstenormaalvormvolgensdemethodevanCodd.

b. BepaaldetweedenormaalvormvolgensdemethodevanCodd.

c. BepaaldederdenormaalvormvolgensdemethodevanCodd.

CONCEPT

d. Tekenhetstrokendiagram.

e. TekenhetERD.

152

Opdracht12 Normaalvormen,strokendiagramenERD

CONCEPT

a. BepaaldeeerstenormaalvormvolgensdemethodevanCodd.

153 Blok5 Technischontwerp

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.

154

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.

155 Blok5 Technischontwerp

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

156

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.

157 Blok5 Technischontwerp

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

158

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

159 Blok5 Technischontwerp

CONCEPT

Opdracht:

1. Bepaalde0e normaalvormvandezefactuur.

2. Bepaalde1e normaalvormvandezefactuur.

3. Bepaalde2e normaalvormvandezefactuur

4. Bepaalde3e normaalvormvandezefactuur.

5. Tekenhetstrokendiagram.

6. TekenhetBachman-diagram.

160

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 Ja
161 Blok5 Technischontwerp
CONCEPT

CONCEPT

162

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 C# C++ Go Java JavaScript Kotlin Perl 164

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.

165 Blok6 Realiserenentestenvansoftware

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.

166

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.

167 Blok6 Realiserenentestenvansoftware

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 Debugger
168

Deontwikkelomgevingtesten

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.

169 Blok6 Realiserenentestenvansoftware

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.

170

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).

171
6 Realiserenentestenvansoftware

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?

172

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.

173 Blok6 Realiserenentestenvansoftware

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.

174

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:

175 Blok6 Realiserenentestenvansoftware

Figuur 6.4 Sequence-diagram van de aanmeldprocedure

Wanneerwevoorditsequence-diagrameentestscenariomakendanzoudateralsvolgtuitkunnenzien:

CONCEPT

176

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

177

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.

178

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-
179

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.

180

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.

181 Blok6 Realiserenentestenvansoftware

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.

182

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.

183
6 Realiserenentestenvansoftware
Blok

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.

184
Figuur 6.12 Destructief testen

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.

185 Blok6 Realiserenentestenvansoftware

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.

186

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:

187
software

• 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.

188

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?

189 Blok6 Realiserenentestenvansoftware

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.

190

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?

191 Blok6 Realiserenentestenvansoftware

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?

192

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?

193 Blok
6 Realiserenentestenvansoftware

r. Metwelketestkunnenwehetbestetestenofsoftware-onderdelencorrectsamenwerken?

s. Watisfunctioneeltesten?

t. Watisniet-functioneeltesten?

u. Watisdestructieftesten?

CONCEPT

v. Opwelkepuntenkansecuritygetestworden?

w. Watisbottom-up-testen?

194

Blok6 Realiserenentesten

x. Watistop-down-testen?

y. Hoeisdecyclusvoorhettesteninhoofdlijnenopgezet?

CONCEPT

195
software
van

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.

196

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.

197
6 Realiseren
testenvansoftware
Blok
en

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.

198

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.

199 Blok6 Realiserenentestenvansoftware

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

200

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:

Nee
201 Blok6 Realiserenentestenvansoftware

CONCEPT

202

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.1
204

Blok7 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 Planning
205
vansoftware

Compleetmakenvansysteem-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
206

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.

207 Blok7 Ingebruiknemenvansoftware

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

208
Figuur

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.

209 Blok7 Ingebruiknemenvansoftware

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

210

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.

211 Blok7 Ingebruiknemenvansoftware

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;

212

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.

213 Blok7 Ingebruiknemenvansoftware

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.

214

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.

215 Blok7 Ingebruiknemenvansoftware

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.

216

Opdracht2 Implementatie

RaadpleegzonodigdetheorieoverImplementatie.

a. Uitwelkestappenzaleengemiddeldeimplementatiebestaan?

b. Watwilhetbegripimplementatiezeggen?

c. Watverstaanweonderorganiserenvandeimplementatie?

d. Watverstaanweonderplannenvandeimplementatie?

e. Watishethoofddoelvandeacceptatietest?

f. Watishetbelangvanhetcompleetmakenvandedocumentatie?

g. Waaromzoujebijeenacceptatietestgebruikersmoetenmotiveren?

h. Wanneerwordendestartgegevensinhetsysteemingevoerd?

i. Wanneertredendekinderziektenop?

217 Blok7 Ingebruiknemenvansoftware
CONCEPT

Opdracht3 Ingebruiknameapplicatie

RaadpleegzonodigdetheorieoverImplementatie.

a. Welketweeuiterstenzijneromeennieuwsysteemingebruiktenemen?

b. WatishetvoordeelvanhetingebruiknemenvaneenapplicatieopbasisvandeBig-Bang-methode?

c. WatishetnadeelvanhetingebruiknemenvaneenapplicatieopbasisvandeBig-Bang-methode?

d. Watishetvoordeelvanhetingebruiknemenvaneenapplicatieopbasisvanschaduwdraaien?

e. Watzijndenadelenvanhetingebruiknemenvaneenapplicatieopbasisvanschaduwdraaien?

f. Watzouhetresultaatvandeacceptatietestmoetenzijn?

g. Watkunjetestenmetdeacceptatietest?

CONCEPT

h. Wanneerstarteenacceptatietest?

218

i. Watisdeglobaleopzetvaneenacceptatietest?

Opdracht4 Testcase

RaadpleegzonodigdetheorieoverImplementatie.

a. Watiseentestcase?

b. Watiseentestscenario?

c. Watzijndevoordelenvaneentestcase?

CONCEPT

d. Watishetnadeelvaneentestcase?

e. Watzijndevoordelenvaneentestscenario?

f. Watiseennadeelvaneentestscenario?

g. Welkeonderdelenzoudeninhettestrapportopgenomenmoetenworden?

219 Blok
gebruiknemenvansoftware
7 In

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.

220

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

221 Blok7 Ingebruiknemenvansoftware

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.

222

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.

223 Blok7 Ingebruiknemenvansoftware

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.

224

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.

225
vansoftware
Blok7 Ingebruiknemen

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.

226

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.

Figuur 7.16 Sturende processen
227 Blok7 Ingebruiknemenvansoftware
Figuur 7.17 Processen op strategisch niveau

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 niveau
228

Alssoftwaredeveloperkrijgjehieralleenindirectmeetemaken,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

229
7 Ingebruiknemenvansoftware
Blok

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 niveau
230

Continuï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.

231
7 Ingebruiknemenvansoftware
Blok

• 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?

232

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?

233 Blok7 Ingebruiknemenvansoftware

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.

234

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.

235 Blok7 Ingebruiknemenvansoftware

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

236

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 License
237
software
Blok7 Ingebruiknemenvan

WijzigingenindebroncodevandeLGPL-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?

238

c. WatisdeBSA?

d. WatdoetdeBSA?

e. Hoegrootwashetcommercieelverliesin2011doorgebruikvanillegalesoftware?

f. HoeveelprocentvandegeïnstalleerdebedrijfssoftwareinNederlandwordtillegaalgebruikt?

g. Watwasdewaardevanillegaalgebruiktebedrijfssoftwarein2013?

h. Watishetnutvanhetinvullenvanderegistratiekaartdiebijsoftwarezit?

CONCEPT

i. Watiseensoftwarelicentie?

j. Watstaaterineenlicentie?

k. Watzijndebelangrijkstekenmerkenvanshareware?

l. Waaromzoudensoftware-ontwikkelaarsgebruikmakenvandeshareware-licentie?

239 Blok7
gebruiknemenvansoftware
In

m. Watzijndebelangrijkstekenmerkenvanfreeware?

n. Welkebeperkingenstaanerindefreeware-licentie?

o. WatzijndevoornaamstevoorwaardenvandeOpenSourceBSD-licentie?

p. WatzijndevoornaamstevoorwaardenvandeOpenSourceApache-licentie?

CONCEPT

q. WatzijndevoornaamstevoorwaardenvandeOpenSourceGNULesserGeneralPublicLicense?

r. WathoudtdeOpenSourceGNUGeneralPublicLicensein?

s. IsdeGPL-softwarealtijdgratis?

240

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.

241
gebruiknemenvansoftware
Blok7 In

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.

242

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.

243 Blok7 Ingebruiknemenvansoftware

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.

244

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.

245 Blok7 Ingebruiknemenvansoftware

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.

246

• 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?

247 Blok7 Ingebruiknemenvansoftware

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.

248

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.

249 Blok7 Ingebruiknemenvansoftware

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.

250

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.

251 Blok7 Ingebruiknemenvansoftware

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:

Nee
1. 2.
252

10-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

253
INDEX

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

254

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

CONCEPT

255

Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.