Deze toets bestaat uit drie onderdelen. Deze testen je vaardigheid voor het uitleggen en toepassen van software ontwikkelprincipes.
Je kunt een totaal van 16 punten behalen. Deze punten zijn als volgt verdeeld:
Onderdeel | Aantal punten | Tijd suggestie |
---|---|---|
Deel 1 | 2 | 15 min |
Deel 2 | 4 | 30 min |
Deel 3 | 10 | 90 min |
De volgende websites zijn beschikbaar tijdens de toets:
Beantwoord de volgende vragen.
Schrijf je antwoorden in de studentAnswers.md
file. Er staat een .md bestand voor Engels en voor Nederlands. Kies welke taal je voorkeur heeft. (Geen andere talen!)
Wat wordt er bedoelt met een declaratie? Hoe zou je definieren wat dit is? Geef twee voorbeelden.
Schrijf je antwoord in het antwoord bestand van het project.
Wat wordt er bedoelt met “KISS”? Geef hier ook een voorbeeld van.
Schrijf je antwoord in het antwoord bestand van het project.
De resources folder bevat een bestand met een lijst van pokemon en eigenschappen. Sommige velden zijn:
Het laatste veld is een boolean.
Bijvoorbeeld, de eerste pokemen in de lijst is “Bulbasaur”, welke types “Grass” en “Poison” heeft. Het heeft 45 hitpoints. Het behoort aan generatie 1. En het is NIET legendary. Let op dat verder op: “Squirtle” heeft alleen type “Water” en het andere type veld is leeg.
Er zijn met vier methoden zonder zinnige inhoud (doStream1(), doStream2(), etc.) Deze worden gebruikt om de informatie van de dataset weer te geven.
Implementeer de vier methoden met java streams. Elk andere implementatie levert geen punten op.
In dit onderdeel ga je een slecht geschreven stuk code verbeteren op een aantal onderdelen. De vragen hieronder zullen je begeleiden in deze verbeteringen.
Je hoeft ALLEEN aanpassingen in de code te maken in de klasse TourismManager
. De Application
en de PointOfInterest
klasse hoeven niet aangepast te worden.
Het programma laad een lijst van Punten van Interesse (PointsOfInterest
) of POI’s. Het lastige is dat mijn databron verschillende “velden” per item bevat. Sommige hebben een veld “artist”, anderen hebben “webpage” of andere codes die we niet hoeven te begrijpen.
Er zijn maar vier velden gegarandeerd:
De lat en long identificeren de POI’s locatie. Het tourism veld kan de volgende waarden bevatten: “statue”, “museum”, “viewpoint”, “hotel”. Maar er kunnen ook veel andere waarden mogelijk zijn!
Het lezen van POI’s uit een bestand levert data in een niet-generieke lijst structuur.
Controlleer dat alle constanten die worden gebruikt, op een logische plek staan.
Ter herinnering, de implementatie van de class TourismReader
moet niet aangepast worden behalve het volgende.
De POIManager
is nu direct afhankelijk van de TourismReader
, dit maakt testen lastig.
Wij willen dat je dependency injection gebruikt zo dat we de POIManager
los kunnen testen
zonder een file te hoeven lezen..
Schrijf tests voor de volgende klassen en situaties:
PointOfInterest
klasse data en wijzigingen correct opslaat.PointOfInterest
klasse de juiste excepties gooit bij illegale waarden.Zorg ervoor, bij het maken van wijzigingen, dat de code duidelijk verbeterd.
Maak packages en verdeel de code in duidelijke onderdelen.
Zorg dat door jou geschreven testen aan de volgende regels voldoen: