Bij het maken van zo’n systeem is het handig om probleem op te delen in kleinere stukjes. Dat heeft allerlei voordelen:
Het probleem wordt overzichtelijker en makkelijk, je probeert steeds een klein deel van het probleem op te lossen in plaats van het hele probleem in één keer aan te pakken.
Door steeds een deelprobleem op te lossen ervaar je regelmatig een succeservaring.
Je kunt elke deeloplossing apart testen. Als iets niet werkt, wordt het duidelijker waar het probleem precies zit.
Je kunt het werk makkelijker verdelen binnen het team waarin je werkt.
Je kunt het probleem van de parkeersensor bijvoorbeeld opdelen in twee deelproblemen:
Zorg dat het systeem detecteert dat een object binnen afstand_A of afstand_B is.
Zorg dat het systeem een zoemer aan en uit kan zetten, met twee verschillende frequenties (langzaam piepen en snel piepen).
Vervolgens kun je die deelproblemen ook weer opdelen. Het eerste deelprobleem kun je als volgt opdelen:
1a. Zorg dat het systeem detecteert dat een object binnen afstand_A is.
1b. Zorg dat het systeem detecteert dat een object binnen afstand_A of afstand_B is.
Het tweede deelprobleem:
2a. Zorg dat het systeem een zoemer aan en uit kan zetten (bijvoorbeeld met 1 seconde pauze)
2b. Zorg dat het systeem een zoemer aan en uit kan zetten (bijvoorbeeld met 1 seconde pauze, maar ook met 0,5 seconde pauze).
In de rest van dit hoofdstuk ga je de toestandsdiagrammen ontwerpen voor deze deelproblemen. Het daadwerkelijke bouwen van de parkeersensor staat beschreven in het platformafhankelijke deel (Micro:bit, Arduino, Lego Mindstorms). Toch is het verstandig om eerst een deelprobleem helemaal uit te werken en te testen, en pas daarna verder te gaan het volgende toestandsdiagram. Het is dus goed om na het maken van een eerste toestandsdiagram (bijvoorbeeld voor deelprobleem 1a) dit uit te werken op bijvoorbeeld de Micro:bit. Als dat lukt, ga je verder met het toestandsdiagram voor deelprobleem 1b.