De ontwerpdocumentatie voor een webwinkel of webapplicatie bevat de volgende onderdelen met bijbehorende uitwerking. Sommige onderdelen kunnen (deels) niet relevant zijn, in dat geval geef je aan waarom dat stuk niet relevant is. Ontwerpdocumentatie wordt vooraf gemaakt. Je beschrijft hier wat je bedacht hebt. Gaandeweg merk je ongetwijfeld, dat sommige dingen anders moeten of niet kunnen. In dat geval pas je de documentatie aan. Dat is prima. Het is echter niet acceptabel als je achteraf je ontwerpdocumentatie nog helemaal maakt! Zorg altijd dat je de hele webwinkel of webapplicatie ontwerpt en beschrijft, ook al weet je van tevoren zeker dat je het niet helemaal kunt maken. Dit helpt je om te bepalen welke delen je zeker moet maken. doelgroep Beschrijving van je doelgroep. Wie behoren tot je doelgroep en waarom past je webwinkel of webapplicatie bij deze doelgroep. Deze beschrijving moet onderbouwd zijn. Je moet hier een link leggen naar je oriëntatierapport.
paginaontwerp Leg uit hoe de pagina's van je webwinkel of webapplicatie eruit gaan zien en waarom zo. Denk hierbij aan gebieden, waar je menu's zitten, waar afbeeldingen komen, kleuren, fonts enzovoorts. Dit doe je met behulp van schetsen en diagrammen. Je kunt ze bijvoorbeeld op papier maken, fotograferen en in de ontwerpdocumentatie plakken. Zorg dat ze goed leesbaar zijn. Je mag dingen natuurlijk ook digitaal uitwerken. Alleen tekst is niet voldoende. Je mag uiteraard met klassen van pagina's werken. Een klasse is een verzameling pagina's die een vergelijkbare lay-out hebben. Je beschrijft dan het meest uitgebreide pagina van de klasse. Hoeveel verschillende pagina's en lay-outs zijn er en waarom deze hoeveelheid? Per lay-out maak je een schets en beantwoord je de volgende vragen. o Waarom ziet de lay-out er zo uit? Hier ga je in op de gekozen gebieden, locaties voor afbeeldingen, menu's enzovoorts. o Welke kleurstellingen gebruik je en waarom deze? Hier ga je in op gekozen kleuren voor de achtergrond, tekst, links enzovoorts. o Welke fonts gebruik je en waarom deze? Hier ga je in op gekozen font types en grootte. o Welke delen van de lay-out worden dynamisch gegenereerd en waarom? Dynamisch gegenereerd wil zeggen dat code de elementen in de pagina vult met inhoud. o Per dynamisch gegenereerd deel geef je aan hoe de code werkt en waarom zo. Dit mag je natuurlijk achteraf beschrijven! - 2 -
informatiestructuur Leg uit hoe je de informatie over de webwinkel of webapplicatie verdeelt. Hoeveel verschillende pagina's ga je maken en waarom zoveel? Per pagina: o Welke informatie is terug te vinden op de pagina en waarom? o Welke media gebruik je op de pagina en waarom? Beginnen media automatisch te spelen of niet en waarom is dat zo? Hoe kan de gebruiker navigeren tussen de verschillende pagina's en waarom is dat zo? Hier kan een beschrijving alleen niet voldoende zijn, maak in dat geval een diagram waarin je de navigatiestructuur visueel laat zien. gebruik en gebruiksvriendelijkheid Beschrijf waarom de manier waarop de gebruiker de webwinkel of webapplicatie moet bedienen een logische manier is voor de gebruiker. technische aspecten Heb je een winkelmandje? Zo ja, hoe is deze geïmplementeerd en waarom zo? Zo nee, waarom niet? Hoe kan een gebruiker zoeken in je webwinkel of webapplicatie en waarom is dat zo? Heb je iets gedaan aan de beveiliging (security) van je webwinkel of webapplicatie? Zo ja, hoe is deze geïmplementeerd en waarom zo? Gebruik je cookies? Zo ja, hoe zijn deze geïmplementeerd en waarom zo? Zo nee, waarom niet? Gebruik je tracking informatie of preferences? Zo ja, hoe zijn deze geïmplementeerd en waarom zo? Zo nee, waarom niet? Beschrijf zaken die nodig zijn als administrator van de webwinkel of webapplicatie. Denk hierbij aan URLs, gebruikersnamen, wachtwoorden en dergelijke. - 3 -
opgeloste niet-triviale problemen Let op: Bij ieder opgelost probleem is duidelijk vermeld welk teamlid het probleem heeft opgelost; de oplosser. Voor elk opgelost probleem is er maar 1 oplosser! Het kan zijn dat je geholpen hebt bij het oplossen van een probleem, dan mag je dat aangeven, maar je bent dan niet de oplosser van het probleem! Beschrijf alle niet-triviale problemen die jullie zijn tegengekomen en hebben opgelost. Voor elk probleem beschrijf je het volgende: Wie de oplosser is. Eventueel welk teamlid (eventueel teamleden) er geholpen heeft. Hoe heb je het probleem opgelost en waarom zo. Tenminste 1 alternatieve oplossing die je hebt bedacht en waarom deze minder goed is dan de gekozen oplossing. Zoals je weet, is de eerste oplossing die je bedenkt voor een niet-triviaal probleem niet noodzakelijk de juiste of beste. Het is daarom belangrijk, dat je alternatieve oplossingen bedenkt, alle oplossingen tegen elkaar afweegt en uiteindelijk de beste oplossing kiest. Het beschrijven en afwegen van meer dan 1 alternatieve oplossing voor een niettriviaal probleem kan een positief effect hebben op je cijfer. andere niet-triviale problemen Soms kun je wel een theoretische oplossing bedenken voor een niet-triviaal probleem, maar kun je deze oplossing niet omzetten in code. Dat hoeft niet altijd erg te zijn. Beschrijf in dat geval hier de volgende dingen voor het probleem: Welke teamleden hebben zich bezig gehouden met dit probleem. Wat is de theoretische oplossing voor het probleem. Wat blokkeerde je om code te schrijven voor deze oplossing. - 4 -
gekopieerde niet-triviale oplossingen Soms zijn problemen echt te moeilijk of te tijdrovend om zelf op te lossen of er code voor te schrijven. Als dat het geval is, dan kan je leraar je toestemming geven om de oplossing van iemand anders te gebruiken. Bijvoorbeeld iemand die een oplossing voor jouw probleem op internet heeft gezet. Je moet altijd zorgen dat je toestemming van je leraar hebt. Het is verstandig om via de mail om toestemming te vragen. Simpelweg de eerste oplossing pakken is ook hier niet toegestaan. Je moet dan ook gaan zoeken naar tenminste 1 alternatief en uiteindelijk de beste oplossing kiezen en overnemen. Als je geen alternatief kunt vinden, neem je contact op met je leraar. Wanneer je een probleem niet zelf oplost, moet je de volgende dingen beschrijven: Welke teamleden hebben zich bezig gehouden met dit probleem. Welke oplossingen heb je gevonden (tenminste 2), welke heb je gebruikt en waarom. Wat blokkeerde je om zelf de oplossing te vinden. database ontwerp (optioneel) database model Teken en beschrijf het database model van de database die je gebruikt bij je webwinkel of webapplicatie. Dit doe je bijvoorbeeld via een strokendiagram of een ERD (Entity Relationship Diagram). Leg uit waarom je model er zo uitziet. Als je het geleerd hebt, leg dan ook uit welke normaalvormen je hebt gebruikt, hoe je deze hebt bereikt en waarom je deze gebruikt. database koppeling Leg uit hoe de webwinkel of webapplicatie aan de database gekoppeld is en waarom je dat zo gedaan hebt. query's Beschrijf de query's die je hebt gedefinieerd op de database en waarom je voor deze query's gekozen hebt. Leg voor elke query ook uit aan welk deel van de webwinkel of webapplicatie deze gekoppeld is en waarom daaraan. - 5 -