Een softwaregrens maakt een sensor verwisselbaar zonder de regelwet te herschrijven.
Hoe lees je een opdracht?
Drie tredenOefenenToepassenUitdagen
Elk hoofdstuk bouwt op: eerst oefenen (één stap, direct toepassen), dan toepassen (meerdere stappen, in een context), dan uitdagen (transfer, open problemen, andere leerlijnen erbij).
De StemExpert-schaal5
Eén moeilijkheidsschaal van 1 tot 9 over de drie niveaus heen: Fundamental loopt van 1 tot 4, Intermediate van 3 tot 7, Expert van 6 tot 9. Zo zie je dat de uitdaging van het ene niveau de oefening van het volgende is.
Oefenen
Oefenen
één stap, direct toepassen
35.1
Twee objecten, één foutlijst
Oefenen6Analyseren25 min
Een klasse definieert fouten=[] buiten __init__.
a
Leg uit wat er gebeurt als s1.fouten.append('oud') wordt uitgevoerd. Herstel het ontwerp.
35.2
Een eenheid in het contract
Oefenen6Rekenen25 min
De sensor levert 291,15 K; de regelaar verwacht graden Celsius en setpoint 20 °C, Kp 200 W/K.
a
Bereken de correcte vraag en toon de fout bij blind doorgeven.
35.3
Is of heeft
Oefenen6Begrijpen25 min
Een kamerregelaar gebruikt een SHT31 en een SSR.
a
Kies overerving of samenstelling en motiveer met het substitutiecontract.
Toepassen
Toepassen
meerdere stappen, in een context
35.4
Leeftijd exact op de grens
Toepassen7Programmeren25 min
Het contract staat leeftijden van 0 tot en met 5 s toe.
a
Schrijf tests op −0,1; 0; 5; 5,1 s en voor NaN. Geef het verwacht gedrag.
35.5
Een methode blokkeert
Toepassen7Analyseren25 min
Een wifi-sensor duurt soms 800 ms; lees() had maximaal 5 ms beloofd.
a
Beschrijf hoe de contractbreuk de regeling raakt en herstel de architectuur.
35.6
Wat zit in de commit?
Toepassen7Begrijpen25 min
Je voert git add model.py uit, wijzigt model.py opnieuw en doet git commit.
a
Welke versie wordt vastgelegd? Geef een veilige reviewvolgorde.
Uitdagen
Uitdagen
transfer, open problemen, leerlijnen combineren
35.7
Van lange functie naar ontwerp
Uitdagen9Ontwerpen55 min
Een functie leest I²C, rekent PID, stuurt MQTT, schrijft een SD-kaart en schakelt de pomp.
a
Verdeel verantwoordelijkheden en leg ten minste vier interfacecontracten vast. Toon welke integratietest een unit test aanvult.
Zo wordt dit beoordeeld
grenzen
Hardware, beslislogica en opslag onafhankelijk.
contract
Eenheid, tijd, fouten en eigenaar benoemd.
bewijs
Integratietest verbindt minstens twee onderdelen.
35.8
Stationssoftware vrijgeven
Uitdagen9Habitat60 min
De predictor wordt vervangen, terwijl de klimaatmodule moet blijven regelen.
a
Ontwerp een release- en terugrolprocedure met manifest, toetsing en actor-eigenaarschap.
Zo wordt dit beoordeeld
reproduceerbaarheid
Alle code-, data-, model- en configuratieversies vast.
veiligheid
Lokale sturing blijft eigenaar en begrenst.
terugrol
Vorige versie en migratiepad aantoonbaar getest.
35.9
Een groene testset tegenspreken
Uitdagen9Onderzoeken25 min
Alle tests slagen, maar elke test berekent verwacht vermogen met precies dezelfde functie als productie.
a
Leg uit waarom dit zwak bewijs is en ontwerp onafhankelijke orakels en minstens één mutatietest.
ZelfevaluatieKleur per doel: lukt al / bijna / nog niet
Ik kan een klasse met eigen objecttoestand en methoden ontwerpen.
Ik kan samenstelling en overerving afwegen met een interfacecontract.
Ik kan meetdata, hardware en beslislogica modulair scheiden.
Ik kan unit tests voor normale waarden, grenzen en fouten schrijven.
Ik kan met git een wijziging, review en reproduceerbare versie beschrijven.