# KT1 # Planning ### Planning
Datum | Onderwerp 1 | Onderwerp 2 | Huiswerk |
27 aug (korte les) | Introductie KT1 | Introductie Yii | Intro Yii en intro KT1 |
3 sep | PvE | Yii Crud | PvE - Yii Crud (les 1) |
10 sep | PP | ERD 1 | PP en ERD (opgaven 1 en 2) |
17 sep | FO | ERD 2 (uitleg) | FO en ERD (opgave 5) |
24 sep | FO | ERD 3 toets | FO en ERD (opgave 5) |
1 okt | TO | Yii Crud | TO incl ERD |
9 okt | Yii | ERD toets II | Yii les 1 t/m 4 |
15 okt | Vakantie | - | Proefexamen - start |
22 okt | Proefexamen PvE en PP | PvE en PP | |
29 okt | Proefexamen FO | FO | |
5 nov | Proefexamen TO | TO | |
12 nov | Laatste voorbereidingen en check |
#### | #### Inleiding In de examen-template is deze vaak al ingevuld; besteed hier dus niet te veel tijd aan). #### Bedrijf In de examen-template is deze vaak al ingevuld; besteed hier dus niet te veel tijd aan. In deze paragraaf staat een korte beschrijving van het bedrijf en de aanleiding wordt kort beschreven. #### Probleemstelling *Beschrijf kort waarom er een nieuwe applicatie wordt gebouwd. Geef een algemene beschrijving van de applicatie en van de belangrijkste doelen van de applicatie. Betrek hierbij ook de consequenties voor de organisatie en haar medewerkers.* Beschrijf het probleem dat moet worden opgelost (dus niet de oplossing). #### Doelgroepen *Beschrijf voor wie de applicatie bestemd is.* Wie gaat het systeem, de website gebruiken. Beschrijf de rollen. TIP: gebruik je (klad) ERD en denk in CRUD #### De vormgeving *Beschrijf de vormgeving van de website (kleuren, lettertypes). Gebruik eventueel een vlekkenplan om de grove indeling van de vensters weer te geven* (Een vlekkenplan is een ruwe voorlopige indeling.) Geef een algemene indruk van hoe de site er uit gaat zien. Kleur en stijl zijn belangrijk. Je kunt eventueel naar een voorbeeld website verwijzen. Maak ook een schets. Of dit erg belangrijk is, hangt ook van de opdrachtgever. Soms worden er hele duidelijke eisen gesteld aan de vormgeving en soms ligt dat nog open. #### Informatie *Beschrijf globaal welke informatie door de applicatie gegeven wordt en welke overzichten en rapportages door de applicatie gegenereerd worden.* Beschrijf alle eisen, zeg maar alles wat de website moet kunnen. Je kunt dit in use-case formaat doen. TIP: beter een eis te veel dan te weinig! TIP: denk in CRUD, je hebt je (klad) ERD al gemaakt. Ga uit van CRUD op de tabellen. #### Overig *Geef hier andere relevante informatie, indien nodig.* Beschrijf hier de niet-fucntionele eisen (security, performance, backup etc.) en geef eventueel ook wat je *niet* gaat doen binnen dit project. TIP: waar houd je project op? Lever je code of ga je de site ook hosten? Ga je ook back-ups inregelen? |
#### | #### Voorbereiding gesprek (0 of 1 punt) Je hebt je wel of niet voorbereid. #### Gespreksvorm (0 tot 3 punten) 1. je leidt het gesprek in 2. je stel vragen en als het nodig is vraag je door 3. je gaat in op wat de opdrachtgever zegt 4. je vat het gesprek samen en legt uit hoe het proces verder gaat. #### Gespreksinhoud (0 tot 3 punten) 1. de vragen zijn altijd goed (hebben betrekking op de opdracht). 2. je gebruikt weinig vaktaal en legt alles begrijpelijk uit. #### Inhoud van het programma van eisen (0 tot 3 punten **cruciaal**) Het gaat hier om de eisen die je hebt opgeschreven die moeten minimaal in de meeste gevallen goed aansluiten bij de opdracht en je mag maar een paar eisen vergeten zijn. Je mag ook niet te veel vaktaal gebruiken. #### Vorm van het programma van eisen (0 tot 3 punten) Alle onderdelen zijn goed en duidelijk beschreven. Tips: Zorg dat alles er **verzorgd** uit ziet. Haal ook de template-aanwijzingen weg en vul je naam netjes in. geef tenslotte het document ook een duidelijke naam. #### Onderbouwing programma van eisen (0 tot 3 punten) Er is goed gebruik gemaakt van aanvullende bronnen en/of onderzoek. Je moet dus laten zien dat je actief op zoek bent gegaan naar oplossingen. Je beschrijft duidelijk wat mogelijk is maar ook als er iets niet mogelijk is. #### Communiceren programma van eisen (0 of 1 punten) Je draagt het PvE over, geeft een korte toelichting en **vraagt om goedkeuring**. |
##### Project Zeilschool WindMee Zeilschool WindMee is een bedrijf met 2 directeuren, 2 administratief medewerkers en een 10-tal instructeurs. Bij de zeilschool kan je boten huren of leren zeilen. Tijdens een cursus van een week leren cursisten de fijne kneepjes van het vak of worden hun capaciteiten verbeterd. Voor dit onderdeel moet een nieuwe website komen. Naast een contactpagina en een home pagina met algemene informatie moet een cursist zich kunnen inloggen (na eventuele registratie). Een cursist kan zich daarna inschrijven voor één of meerdere cursussen. Er zijn 3 typen cursussen: beginners, gevorderd of expert. Elke cursus duurt een week en begint op zaterdag. Als een cursus vol zit kan een cursist zich daar niet meer voor inschrijven. Bij de inschrijving ziet een cursist ook hoe duur een cursus is en hoeveel hij totaal kwijt is. Er wordt een nota gegenereerd in PDF. Medewerkers van zeilschool kunnen, als zij ingelogd zijn, cursussen toevoegen, wijzigen en eventueel (bij geen deelnemers) verwijderen. Medewerkers kunnen een deelnemersoverzicht per cursus opvragen. Voor elke cursus zijn schepen nodig. Voor de beginners cursus is dat per 4 deelnemers 1 schip, voor de gevorderden en experts 2 per schip. Medewerkers kunnen zien welke schepen er beschikbaar zijn (een schip kan in onderhoud zijn). Bij het begin van de cursus is bekend welke schepen er gebruikt gaan worden. Elk schip heeft een naam en een unieke code (WM- gevolgd door 2 cijfers). De administratie kan medewerkers toevoegen, wijzigen en verwijderen en op verzoek de gegevens van een cursist aanpassen. Ook heeft de administratie inzicht in alle cursisten. |
##### Project Kinderopvang Je bent als applicatieontwikkelaar werkzaam bij internetbedrijf FastDevelopement. Dit bedrijf maakt in opdracht maatwerk (web)applicaties voor haar opdrachtgevers. Aan jou is gevraagd een webapplicatie te ontwikkelen voor de administratie van Kinderopvang Klavertje Vier. Kinderopvang Klavertje Vier is een kinderdagverblijf (KDV) gevestigd in Diemen Noord, die de opvang verzorgt voor 0 tot 4 jarigen. Ouders brengen hun kinderen wekelijks 1 of meer dagen naar het KDV. Er zijn momenteel drie groepen, Loor, Kanga en Poeh. Per groep is ruimte voor maximaal 10 kinderen en per groep zijn 2 leidsters. Ouders hebben per kind een contract met het KDV waarop staat op welke weekdagen zij hun kind brengen. Indien een ouder een contract wil voor meer dagen per week en er is geen plek vrij, dan komt dat kind voor die dag(en) op de wachtlijst. Indien er een plek vrij komt, dan hebben deze kinderen voorrang boven nieuwe kinderen. Onlangs is er veel nieuwbouw in de buurt gerealiseerd. Hier zijn veel jonge gezinnen komen wonen. Hierdoor is de vraag naar kinderopvang dermate toegenomen dat het bestuur van Klavertje Vier heeft besloten om een extra groep te starten. Deze uitbreiding heeft ook geleid tot een toename van het administratieve werk. Om de administratie efficiënt te laten verlopen heeft het bestuur besloten om hiervoor een webapplicatie te laten ontwikkelen. Directeur Boris Brand van Klavertje Vier heeft de volgende aanvraag bij FastDevelopement ingediend: Wij hebben behoefte aan een webapplicatie waarmee we op eenvoudige wijze de administratie van het kinderdagverblijf kunnen bijhouden. Deze applicatie moet ons de volgende functionaliteit bieden: • Een alfabetische lijst van alle kinderen van het KDV met voornaam, achternaam, geboortedatum, naam van de ouder en telefoonnummer en bijzonderheden. • Een weekoverzicht met per dag welke kinderen verwacht worden. • Een weekoverzicht met per dag welke kinderen naar het KDV komen: Kinderen worden in principe op de afgesproken dagen naar het KDV gebracht, maar ze komen niet als ze ziek zijn of op vakantie zijn. In dat geval kan een ouder hun kind een extra dag brengen. Een extra dag brengen is bestemd voor de kinderen die in de afgelopen tijd een of meer dagen gemist hebben omdat zij ziek waren of op vakantie. • Eens per kwartaal een uitdraai van de nota’s volgens de bijlage. Hierop worden de contractueel vastgelegde aantal dagen in rekening gebracht. • Een uitdraai van de wachtlijst. Op de wachtlijst staan de reeds geplaatste kinderen (die meer dagen willen) en nieuwe kinderen die nog niet op het KDV zitten. |
#### | #### Inleiding
In de inleiding van het projectplan staat voor welk bedrijf een applicatie wordt gemaakt, wat het bedrijf globaal doet en wat de opdracht is. Uiteraard kunnen hier nog andere onderwerpen aan toegevoegd worden.
Voorbeeld
Dhr Muntjes van bedrijf ABC.com heeft aSoft de opdracht gegeven om een webapplicatie te bouwen waarmee zij reserveringen kunnen maken voor ..... In dit projectplan wordt een planning gemaakt voor dit project.
Tip: 'be smart' en gebruik de inleiding vanuit het PvE als basis. Houd het kort en krachtig.
#### Doelstelling
Waarom doen we dit? Wat willen we bereiken?
Voorbeeld
ABC.com gaat uitbreiden waardoor de administratie van de reserveringen van xxx zoveel werk wordt dat er een extra medewerker moet worden aangenomen. De handmatige administratie leidt verder tot fouten en is lastig toegankelijk voor alle medewerkers. Een nieuw te ontwikkelen applicatie zou ervoor moeten zorgen dat de uitbreiding met de huidige capaciteit kan worden uitgevoerd en dat er minder fouten zouden worden gemaakt. Daarbij is het dan ook eenvoudigere voor alle medewerkers
#### Benodigdheden
Wat heb je nodig om het project uit te voeren? Maak een opsomming van zaken die je nodig hebt, te denken valt aan: technische IT-midellen (computer e.d.), software, netwerk en werkplek.
#### Takenlijst
Dit is een opsomming van taken. Dit zijn de taken op de hoofdpunten die later in de planning, in het volgende hoofdstuk, verder worden gespecificeerd.
- - Ontwerpen van de applicatie
- Projectplan, opstellen, toelichting geven, eventueel verwerken feedback en overdracht naar opdrachtgever
- Functioneel ontwerp, opstellen en overdracht aan opdrachtgever
- Technisch ontwerp opstellen en overdracht aan opdrachtgever
- Inventariseren benodigde hard- en software voor ontwikkelomgeving, installeren en configureren van de ontwikkelomgeving, testen van de ontwikkelomgeving, configuratiebericht maken
- Realiseren van de applicatie
- Opleveren van de applicatie
#### Planning
Dit is de kern van de projectplanning. Het mooie is dat elke planning ongeveer dezelfde onderdelen heeft.
De onderdelen die hierboven staan vermeld dienen in het **schema** te worden uitgewerkt.
|
#### | #### Project Doelstelling (0 tot 3 punten) De projectdoelstellingen zijn in lijn met de opdracht, ze zijn duidelijk beschreven en ze zijn reëel (=haalbaar). #### Projectactiviteiten (0 tot 3 punten) 1. alle werkzaamheden zijn volledig, correct en overzichtelijk weergegeven. 2. benodigdheden zijn beschreven 3. de ontwikkelmethode is benoemd; dat zijn alle stappen die je gaat uitvoeren: Projectplan schrijven, projectplan toelichten en aanpassen, functioneel ontwerp schrijven, functioneel ontwerp toelichten, technisch ontwerp opstellen, technisch ontwerp uitleggen en aanpassen, ontwikkelomgeving inrichten en documenteren. (Deze methode is wat ouderwets en wordt de *watervalmethode* genoemd; weet je waarom deze naam zo is gekozen?) #### Planning (0 tot 3 punten) De planning is inclusief voortgangsgesprekken volledig, realistisch en overzichtelijk weergegeven. Denk aan de verzorgde uitstraling! #### Afstemmen / goedkeuring (0 of 1 punt) Het projectplan wordt afgestemd en er wordt om **goedkeuring** gevraagd. |
Het FO is heel veel tekenen en schetsen. Bepaal voor jezelf welke tools jij wilt gaan gebruiken en dat je alles klaar hebt staan voor het examen.
#### | #### Inleiding
In dit functioneel ontwerp wordt een overzicht gegeven van de functionaliteiten waaraan de applicatie XYZ moet voldoen.
#### Functionaliteiten
(*dit is een cruciaal criterium*)
Hier vermeld je alle functionaliteiten. Dit mag in 'use case formaat' (kan met Lucichart en/of Creatly) en als je een heel duidelijk PvE hebt gemaakt dan kan je daar veel uit kopiëren. Beschrijf de eisen duidelijk en geeft prioriteiten aan. Zet alles duidelijk en netjes op papier gebruik bijvoorbeeld tabellen of schema's.
Voorbeelden:
**Fout** (waarom?)
\- de applicatie moet er mooi uit zien en mag geen fouten bevatten
\- de applicatie moet veilig zijn
\- als admin kan ik de applicatie beheren
\- buttons zullen met Bootstrap 4.0 worden vormgegeven
**Goed** (waarom?)
\- als ingelogde gebruiker kan ik zien van welke cursus nog plaatsen beschikbaar zijn.
\- als ingelogd gebruiker kan ik mij inschrijven voor een cursus als er ten miste nog voldoende plaatsen zijn
\- als ik als admin ben aangelogd dan kan ik alle cursus gegevens beheren, ik kan alleen geen cursussen weggooien waar inschrijvingen aan gekoppeld zijn.
\- als ik als admin ben aangelogd kan ik de inschrijvingen op een cursus beheren. Ik kan dus inschrijvingen toevoegen en verwijderen.
#### Basisschermlay-out
Hoe ziet de website eruit; kleurgebruik, lettertype, en standaardcomponenten. Is er een voorbeeld website, zijn er logo's of banners die moeten worden gebruikt?
Gebruik een voorbeeld van hoe de website er uit ziet. Maar een proto-type, dat kan met een wireframe of met een schermvoorbeeld. Je krijgt hierdoor een algemeen beeld van hoe de website er uit komt te zien:
[](https://www.roc.ovh/uploads/images/gallery/2020-09/image-1600270097335.png)
Als tool wordt [https://balsamiq.cloud](https://balsamiq.cloud) aangeraden. Op verzoek kan je via teams een licentie key aanvragen.
##### Tool
Een ander voorbeeld van een wireframe vind je op: [https://www.roc.ovh/books/examentraining-b1-k1/page/w3-functioneel-ontwerp---flow](https://www.roc.ovh/books/examentraining-b1-k1/page/w3-functioneel-ontwerp---flow)
#### Uitvoerontwerp
Laat minimaal één of twee uitvoerontwerpen zien. Dit is een plaatje. Uitvoer is het resultaat van het programma. Bijvoorbeeld een overzicht van alle cursusreserveringen of een overzicht van de klassenindeling. Geeft dit in een proto-type weer.
Voorbeeld:

[](https://www.roc.ovh/uploads/images/gallery/2020-09/image-1601476434174.png)
##### Tool
Hier kun je HTML gebruiken, zeker als je daar handig en snel in bent. Je kunt ook [https://app.lucidchart.com](https://app.lucidchart.com) of [https://balsamiq.cloud/](https://balsamiq.cloud/) gebruiken. Gebruik bij Lucichart de "Website blockframe" als uitgangspunt.
#### Formulierontwerp
Laat *minimaal* één invoerscherm zien (niet alleen de log-in). Dit is een plaatje. Zelfde als bij uitvoer, maar een duidelijk proto-type.
Voorbeeld:
[](https://www.roc.ovh/uploads/images/gallery/2020-09/image-1600269958271.png)
Tip: je kunt proto-types ook gewoon met HTML maken, voor formulieren gebruik je dan natuurlijk forms. Deze prototypes helpen je dan straks met de bouw van de applicatie. Je kunt ook de eerder genoemde tools gebruiken.
Tool: [http://www.phpform.org/](http://www.phpform.org/)
##### Tool speciaal voor formulierontwerp
Er zijn diverse programma's op het internet te vinden die je kunne helpen met het snel maken van een formulier, bijvoorbeeld: http://www.phpform.org/
#### Navigatiestructuur
Hoe navigeer je door de website, hoe zijn de schermen met elkaar verbonden. Gebruik een schema.
Voorbeeld:
![]() Elk schermnummer verwijst naar een scherm met de nummers kan je in de verwijzen naar het juiste scherm.
|
#### | #### Functionaliteiten (0 tot 3 punten) Cruciaal criterium! Minimale eis: "bijna alle eisen en wensen uit het PvE zijn opgenomen en deze zijn begrijpelijk en eenduidig beschreven". #### Toegepaste schematechnieken (0 tot 3 punten) De juiste schematechnieken zijn gekozen en verduidelijken de functionaliteit. #### User Interface (0 tot 3 punten) Het is duidelijk hoe het systeem eruit gaat zien en de relaties tussen de schermen is ook duidelijk. Hiervoor is een sitemap of navigatiestructuur-schema opgenomen. #### Communiceren FO Cruciaal (0 of 1 punt) Het FO wordt duidelijk toegelicht en er wordt om **goedkeuring** gevraagd. |
#### | #### Technische Specificaties
##### Functionaliteiten
Laat met een schema zien hoe de flow van de (belangrijkste) functies is.
Bijvoorbeeld (de meeste TO's bevatten een hele serie van deze diagrammen, elk diagram komst vaak overeen met een Use Case):
![]() |
#### | #### Technische specificateis (0 tot 3 punten) De technische specificaties zijn duidelijk omschreven en/of met de juiste schematechnieken verduidelijkt. De specificaties zijn goed als de proces flows (use cases) zijn beschreven, er de belangrijkste in- en uitvoer schermen zijn geschetst en of zijn beschreven. #### Relationeel datamodel Cruciaal (0 tot 3 punten) Alle entiteiten moeten zijn beschreven. Daarnaast moet je de meeste attributen en relaties goed hebben weergegeven. Zorg dus voor een goed ERD en benoem alle entiteiten (desnoods één te veel). #### Communiceren TO (0 of 1 punt) Het FO wordt duidelijk toegelicht en er wordt om **goedkeuring** gevraagd. |
De **ERFDAK** - methode -> **E**ntiteiten - **R**elaties - **F**ilter - **D**iagram - **A**ttributen - **K**eys
#### Stap 1 - Entiteiten Bepaal alle entiteiten. Een entiteit is een groep van dingen, personen, gebeurtenissen. Bijvoorbeeld: leerlingen, klaslokalen, adres, belastingaanslag, verkeersboete, rekening, kassabon, docenten, developers, medewerkers, etc. Van entiteiten leg je gegevens vast, dit heten attributen. Zo kan je van een medewerker, zijn naam, zijn adres, zijn bankrekeningnummer, etc vastleggen. Voorbeeld: Een bedrijf wil een planning maken voor de telefonische hulpdienst die zij bieden aan hun klanten. Zij willen vastleggen welke medewerker wanneer moet meedraaien met de telefonisch hulpdienst. De entitetiten zijn: bedrijf, hulpdienst, klanten en medewerker. **MAAR** let op! Je wilt alleen gegevens vastleggen van medewerkers en de planning (van de hulpdienst). Je legt namelijk vast *welke* medewerker *wanneer* moet meedraaien. *Welke medewerker* bepaal je door de entiteit *medewerker* te maken en *wanneer* leg e vast in de entiteit *planning*. #### Stap 2 - Relaties Leg de directe relaties. Gebruik daarvoor een tabel. Stel je hebt vier entiteiten, entiteit 1, entiteit 2, entiteit 3 en entiteit 4. Bij 4 entiteiten heb je 6 mogelijke relaties (3+2+1), bij 5 10 (4+3+2+1)en bij 6 15 (5+4+3+2+1), etc. Stel van alle combinaties de relatie vast en kies daarbij uit: - 1:1 - 1:N - N:1 - N:M - geen directe relatieEntiteit 1 | Entiteit 2 | Relatie (*voorbeelden*) |
entiteit 1 | entiteit 2 | N:M |
entiteit 1 | entiteit 3 | 1:1 |
entiteit 1 | entiteit 4 | 1:N |
entiteit 2 | entiteit 3 | geen (directe) relatie |
entiteit 2 | entiteit 4 | 1:N |
entiteit 3 | entiteit 4 | geen (directe) relatie |
Entiteit 1 | Entiteit 2 | Relatie (*voorbeelden*) |
entiteit 1 | entiteit 2 | N:M |
entiteit 1 | entiteit 3 | 1:1 |
entiteit 1 | entiteit 4 | 1:N |
entiteit 2 | entiteit 3 | geen (directe) relatie |
entiteit 2 | entiteit 4 | 1:N |
entiteit 3 | entiteit 4 | geen (directe) relatie |
#### | #### Te gebruiken hardware Geef een overzicht van welke hardware je nodig hebt, specificeer de minimale eisen ten aanzien van scherm, harddisk, geheugen en CPU. #### Software Maak een lijst met alle software componenten met de versienummers die je nodig hebt voor de ontwikkeling. Denk aan: \- Editor \- PHP engine (XAMMP) \- PHP versie \- SQL versie \- Framework en versie \- etc. |
#### | #### Benodigde onderdelen (0 tot 3 punten) De benodigde onderdelen voor de ontwikkelomgeving is volledig beschreven. #### Installeren en configureren (0 of 1 punten) De ontwikkelomgeving is juist geïnstalleerd en geconfigureerd. #### Testen (cruciaal onderdeel) (0 of 1 punten) Alles is getest en werkt. #### Documenteren (0 of 1 punt) Documentatie is duidelijk en volledig. |