Omgevingsfactoren vaak onderschat

Omgevingsfactoren worden meestal helemaal
niet meegenomen bij IT-intensieve projecten
zodat bij donder en bliksem computers
uitvallen, systemen op tilt slaan, en de
interface met de gebruikers totaal foutieve
gegevens produceert.  Niet alleen
weersomstandigheden worden onderschat als
omgevingsfactoren.

Wat dacht je van de tank met electronische
onsteking?  Die ging ook af als de schutter
de ventilator aanzette.  De puls van de
inschakeling liep zo dicht langs de kabel van
de ontsteking dat de granaat meteen afging.
Gelukkig is dat ding niet met dit
ontwerpdefect in productie gekomen omdat het
overduidelijk vrij snel ontdekt werd.

Het kan ook subtieler.  Ik vroeg niets
vermoedend aan een moestuin eigenaar of hij
nog de winter doorgekomen was met zijn oogst.
Het antwoord was neen, maar de reden daarvoor
was onverwacht.  Uiteraard had hij alles
prachtig ingevroren en speciaal daarvoor een
nieuwe vrieskist aangeschaft.  Het nieuwste
van het nieuwste compleet met electronische
thermostaat en al.

So far so good.  Maar op een gegeven moment
toen hij iets uit de vriezer haalde leek het
ding helemaal niet meer zo koud.  Wat
bleek:  hij stond uit!  Omdat er geen enkele
verklaring was te vinden, belde hij de
technische servicedienst en zij vertelden
hem over de afslagbeveiliging.  Om de
electronica in de vriezer te beschermen
tegen fluctuaties in het 220 volt stroomnet
was die ingebouwd.

Prima idee dat bij (bijna altijd) tijdelijke
fluctuaties die buiten de norm vallen je een
maatregel neemt om gevoelige onderdelen te
beschermen.  Dat bevordert de betrouwbaarheid
van het ding.  Maar bij botweg uitzetten ga
je voorbij aan een andere hoofdfunctie van
het apparaat: betrouwbare en continue
koeling.  De meeste vriezers hebben
tegenwoordig een buffer bij abusievelijke
afslag door middel van koelelementen die nog
een etmaal de inhoud koel genoeg houden.  Dus
als eens een keer de stroom een tijdje uitvalt
is er niets aan de hand, en zodra er weer
prik is, neemt die de koeling weer op zich.

Zo ook dit apparaat.  Echter, als je zelf
bewust een afslag inbouwt dan moet je naar
mijn smaak meer doen dan afschakelen.  Dan
heb je naast een koelteaccu ook nog een
electrische accu nodig die ervoor zorgt dat
als de fluctuaties weer op acceptabel niveau
zijn, de zaak ook weer ingeschakeld wordt.

Die laatste stap was niet genomen.  Kennelijk
moet de eigenaar elke dag voor het ding gaan
liggen om de betrouwbaarheid ervan te borgen.
Wie weet was er net een fluctuatie in het
stroomnet en is de machine afgeslagen.  Zo
zie je maar dat hier een omgevingsfactor
dusdanig in het ontwerp is doorgeschoten dat
de integrale systeemprestatie volkomen uit
het oog is verloren.

Hoe kun je er nu voor zorgen dat je dit soort
dingen niet vergeet?  Immers je kunt niet
alles voorzien, wat zonneklaar is uit
bovenstaande voorbeelden.  Wat in ieder geval
helpt vanuit het technische perspectief is
het gebruik van bewezen standaards en
richtlijnen.  Zo zijn er tal van IEEE
standaards die uiterst nuttig zijn, en
opgesteld zijn voor en door de industrie.

Zo is er een richtlijn voor het opstellen van
software requirements.  Een goed eisenpakket
voldoet aan een aantal eigenschappen
(bijvoorbeeld SMART) en dat wordt daar prima
beschreven.  Wanneer zijn requirements
bijvoorbeeld compleet?  Daar vinden we meteen
de vriezer terug.  Een pakket van eisen is
compleet als het de volgende elementen bevat:
"all significant requirements, whether
relating to functionality, performance,
design constraints, attributes, or external
interfaces.  In particular any external
requirements imposed by a system
specification should be acknowledged and
treated."  Die laatste zin staat er niet voor
niets en de ontwerper wordt er nog eens
expliciet op gewezen dat in het bijzonder
omgevingsfactoren de aandacht vergen.

Nu kun je nog de importantie missen van de
zelfafschakelende vriezer, maar bij het
tweede onderdeel van compleetheid wordt dat
al bijna onmogelijk.  Namelijk eisen zijn niet
compleet zonder een: "definition of the
responses of the software to all realizable
classes of input data in all realizable
classes of situations. Note that it is
important to specify the responses to both
valid and invalid input values."  Hier zien
we de situatie dat de kast zich afschakelt
door foutieve input van het stroonmet, en de
response is: ik ga uit, basta.  Daar moet je
dus nog wat.

Om te voorkomen dat dat een "TBD" wordt,
staat in het volgende kopje van de standaard
dat elk eisenpakket waar "to be determined"
(TBD) in voorkomt niet compleet is.  En de
cirkel is rond.  Van zo'n standaard kan ik de
slogan "er is geen betere" nog wel waarderen.
Voor de vriezer is het devies echter: "het kan
stukken beter".

X

Meer weten over de wondere wereld van ICT
in Jip en Janneke taal? Ga dan naar de
knipselkrant van Chris Verhoef

Prof. dr Chris Verhoef is hoogleraar informatica
aan de Vrije Universiteit in Amsterdam en
wetenschappelijk adviseur voor overheid en
bedrijfsleven.  Hij schrijft regelmatig een
column in AG II.  Hij is te bereiken via email:
x@cs.vu.nl.  Deze tekst is copyright SDU.  Niets
van deze uitgave mag zonder schriftelijke
toestemming van de uitgever worden overgenomen of
worden gepubliceerd.