De beschrijving van wat een programma moet doen als de invoergegevens ongeldig zijn, moet het volgende specificeren:
1. Invoervalidatie: Definieer duidelijk wat ongeldige invoer is. Dit moet nauwkeurig en alomvattend zijn en alle mogelijke scenario's bestrijken. Voorbeelden zijn onder meer:
* Gegevenstype: Verkeerd gegevenstype (bijvoorbeeld tekst invoeren wanneer een getal wordt verwacht).
* Bereik: Waarde buiten een acceptabel bereik (bijvoorbeeld negatieve leeftijd, gewicht boven een fysieke limiet).
* Formaat: Onjuist formaat (bijvoorbeeld ongeldige datum, onjuist opgemaakt e-mailadres).
* Ontbrekende gegevens: Verplichte velden blijven leeg.
* Dubbele gegevens: Invoer met dubbele vermeldingen waarbij uniciteit vereist is.
* Logische inconsistenties: Gegevenswaarden die elkaar tegenspreken (de besteldatum ligt bijvoorbeeld na de leverdatum).
* Beveiligingsproblemen: Invoer die kan worden misbruikt voor kwaadaardige doeleinden (bijvoorbeeld SQL-injectie, cross-site scripting).
2. Foutafhandeling: Beschrijf hoe het programma met ongeldige invoer omgaat. Veel voorkomende benaderingen zijn onder meer:
* De invoer weigeren: Het programma weigert de ongeldige invoer en geeft de gebruiker een passend foutbericht weer, waarin hij wordt gevraagd de gegevens opnieuw correct in te voeren. Dit is vaak de eenvoudigste en veiligste aanpak.
* Standaard ingesteld op een waarde: Het programma gebruikt een vooraf gedefinieerde standaardwaarde als de invoer ongeldig is. Dit moet duidelijk worden gedocumenteerd en alleen worden gebruikt als dat nodig is, en de standaardinstelling doet geen afbreuk aan de functionaliteit van het programma.
* Een terugvalmechanisme gebruiken: Het programma probeert de fout te herstellen door alternatieve methoden of gegevensbronnen te gebruiken. Het kan bijvoorbeeld proberen de ontbrekende gegevens van een andere locatie op te halen. Dit is complexer en moet zorgvuldig worden gebruikt.
* De fout registreren: Het programma registreert de ongeldige invoer en de foutdetails in een logbestand voor foutopsporing en analyse. Dit is cruciaal voor het onderhouden van het systeem en het identificeren van trends in ongeldige gegevens.
* Gracieuze degradatie: Het programma blijft functioneren, maar met verminderde mogelijkheden. Een functie kan bijvoorbeeld worden uitgeschakeld, maar de rest van de applicatie blijft operationeel.
3. Foutrapportage: Geef op hoe het programma de fout aan de gebruiker zal communiceren. Dit zou moeten zijn:
* Duidelijk en beknopt: De gebruiker moet begrijpen wat er mis is gegaan en hoe dit kan worden gecorrigeerd.
* Gebruiksvriendelijk: Vermijd waar mogelijk technisch jargon.
* Nuttig: Geef specifieke informatie op, zoals het ongeldige gegevenspunt en wat er wordt verwacht.
* Consistent: Gebruik in het hele programma dezelfde foutafhandelings- en rapportagemechanismen.
4. Afhandeling van uitzonderingen (voor programmeurs): Als u een programmeertaal gebruikt die de afhandeling van uitzonderingen ondersteunt, beschrijf dan hoe uitzonderingen worden opgevangen en afgehandeld om te voorkomen dat het programma crasht.
Voorbeeld:
"Als de gebruiker een negatief getal voor leeftijd invoert, geeft het programma een foutmelding:'Leeftijd moet een niet-negatief getal zijn.' Het invoerveld blijft gemarkeerd en de gebruiker wordt gevraagd opnieuw een geldige leeftijd in te voeren. De ongeldige invoer wordt geregistreerd met een tijdstempel in een speciaal foutenlogbestand."
Door deze aspecten duidelijk te specificeren, waarborgt u de robuustheid en betrouwbaarheid van uw programma bij ongeldige invoer. Het vereiste detailniveau zal afhangen van de complexiteit en kriticiteit van het programma. |