Wat is een functionele vereiste in software-engineering?

โšก Slimme samenvatting

Functionele eisen beschrijven elke dienst die een softwaresysteem moet bieden, inclusief invoer, gedrag en uitvoer, zodat ontwikkelaars, testers en zakelijke belanghebbenden een eenduidige, verifieerbare definitie hebben van wat het product daadwerkelijk moet doen.

  • ๐Ÿ“˜ Definitie: Een functionele eis, ook wel functionele specificatie genoemd, beschrijft wat het systeem moet doen: input, gedrag en output, vanuit het perspectief van de gebruiker of het bedrijf.
  • ๐Ÿ“„ Omvang van het document: Een document met functionele vereisten beschrijft schermbewerkingen, logica voor gegevensverwerking, rapporten, workflows, machtigingen en naleving van wet- en regelgeving.
  • ๐Ÿ—‚๏ธ Gewone types: Transactieverwerking, bedrijfsregels, rapportage, administratieve functies, autorisatieniveaus, audit trackoning, externe interfaces en wettelijke vereisten.
  • ๐Ÿ‘ Voorbeelden: Validatie van inloggegevens, registratie van verkopen, op rollen gebaseerde omzetweergave, integratie met bank-API's en naleving van toegankelijkheidsrichtlijnen vallen allemaal binnen de functionele vereisten.
  • ๐Ÿ†š Niet-functioneel contrast: Functionele eisen beschrijven wat een systeem doet; niet-functionele eisen beschrijven hoe goed het dat doet โ€“ prestaties, beveiliging en gebruiksgemak.
  • โœ… Praktische tips: Formuleer de eisen gedetailleerd, testbaar en koppel ze aan een bedrijfsdoelstelling, en achterhaal ze via interviews en workshops.

Functionele vereisten in software-engineering

Wat is een functionele vereiste?

A Functionele vereiste Een functionele specificatie (FR) is een beschrijving van de service die de software moet bieden. Het beschrijft een softwaresysteem of een component ervan. Een functie wordt gedefinieerd door inputs, gedrag en outputs. Het kan een berekening, gegevensmanipulatie, bedrijfsproces of gebruikersinteractie zijn die definieert wat het systeem moet doen. Functionele specificaties in software engineering worden ook wel genoemd Functionele specificatie.

Een functionele eis kan variรซren van een behoefte van belanghebbenden op hoog niveau tot een gedetailleerde wiskundige specificatie. Functionele software De vereisten beschrijven het beoogde gedrag van het systeem.

Wat moet er in een functioneel eisenpakket komen te staan?

Dit is wat een document met functionele eisen moet omvatten:

Voorbeeld functionele vereisten

Voorbeeld functionele vereisten

Een document met functionele eisen bevat doorgaans de volgende onderdelen:

  • Details van de uitgevoerde handelingen op elk scherm.
  • Logica voor gegevensverwerking die het systeem moet toepassen
  • Descriptionen van systeemrapporten en andere uitvoer
  • Volledige informatie over de werkprocessen die het systeem uitvoert.
  • Wie mag gegevens in het systeem aanmaken, wijzigen of verwijderen?
  • Hoe het systeem voldoet aan de toepasselijke wettelijke en nalevingsvereisten.

Voordelen van functionele vereisten

De belangrijkste voordelen van een goed geschreven document met functionele eisen zijn:

  • Controleert of de applicatie alle gespecificeerde functies levert.
  • Definieert de functionaliteit van het systeem en de bijbehorende subsystemen op รฉรฉn plek.
  • In combinatie met een behoefteanalyse helpen functionele vereisten bij het identificeren van ontbrekende behoeften en het verduidelijken van het verwachte systeemgedrag.
  • Fouten die in de vereistenfase worden ontdekt, zijn het goedkoopst te corrigeren.
  • Ondersteunt de doelen, taken en activiteiten van de gebruiker.

Soorten functionele vereisten

Veelvoorkomende categorieรซn functionele eisen zijn onder andere:

  • Transactieafhandeling
  • Bedrijfsregels
  • certificatie-eisen
  • Rapportage vereisten
  • Administratieve functies
  • Autorisatieniveaus
  • Audit Tracking
  • Externe interfaces
  • Historisch gegevensbeheer
  • Wettelijke en regelgevende vereisten

Voorbeelden van functionele vereisten

Hieronder volgen praktische voorbeelden van functionele eisen:

  • De software zal klanten automatisch valideren aan de hand van het ABC Contact Management Systeem.
  • Het verkoopsysteem moet gebruikers in staat stellen klantverkopen te registreren.
  • De achtergrondkleur voor alle vensters in de applicatie moet blauw zijn met de hexadecimale RGB-waarde 0x0000FF.
  • Alleen medewerkers op managementniveau hebben het recht om omzetgegevens in te zien.
  • Het softwaresysteem moet geรฏntegreerd worden met de API van de bank.
  • Het softwaresysteem moet voldoen aan sectie 508 toegankelijkheidsvereisten.

Functionele versus niet-functionele vereisten

Hieronder vindt u de belangrijkste verschillen tussen functionele en niet-functionele eisen in Software Engineering:

Kenmerken Functionele vereiste Niet-functionele vereiste
Wat het is Werkwoord Attributen
eis Het is verplicht Het is niet verplicht
Soort vastleggen Het wordt vastgelegd in een use case. Het wordt vastgelegd als een kwaliteitsattribuut.
Eindresultaat product-functie Producteigenschappen
Het vastleggen Gemakkelijk vast te leggen Moeilijk vast te leggen
Objectief Helpt u de functionaliteit van de software te verifiรซren. Helpt u bij het verifiรซren van de prestaties van de software.
Aandachtsgebied Focus op de gebruikersbehoefte Concentreert zich op de verwachting van de gebruiker.
Documentatie Beschrijf wat het product doet Beschrijft hoe het product werkt
Type testen Functioneel testen zoals systeem-, integratie-, end-to-end-, API-testen, Etc. Niet-functionele tests zoals prestaties, stress, bruikbaarheid, Beveiligingstests, Etc.
Testuitvoering De testuitvoering vindt plaats vรณรณr de niet-functionele tests. Na het functioneel testen
Product informatie Producteigenschappen Producteigenschappen

Beste werkwijzen voor het schrijven van functionele eisen

De belangrijkste best practices voor het schrijven van een functioneel eisenpakket zijn:

  • Combineer geen twee vereisten tot รฉรฉn; houd elke vereiste afzonderlijk.
  • Formuleer alle vereisten zo volledig en nauwkeurig mogelijk.
  • Beschrijf alle technische vereisten in het document.
  • Koppel elke vereiste aan de doelstellingen en principes die leiden tot succesvolle softwareontwikkeling.
  • Verzamel de benodigde informatie via interviews, workshops en informele gesprekken.
  • Documenteer elke bekende, geverifieerde beperking die een wezenlijke invloed heeft op een vereiste.
  • Leg alle aannames vast in het document.

Veelgemaakte fouten bij het schrijven van functionele eisen

Veelvoorkomende fouten bij het opstellen van een functioneel eisenpakket zijn onder andere:

  • Het toevoegen van onnodige extra informatie die ontwikkelaars in verwarring brengt
  • Het weglaten van de details die ontwikkelaars nodig hebben om de functionaliteit te bouwen.
  • Regels voor het mengen, voorbeelden, scoreping verklaringen of doelstellingen in de eis zelf opnemen.
  • Het weglaten van informatie die essentieel is om de eis volledig en nauwkeurig te formuleren.
  • Het verdedigen van een bestaande eis wanneer een wijzigingsverzoek binnenkomt, in plaats van het juiste antwoord te zoeken.
  • Het formuleren van eisen die niet gekoppeld zijn aan een doelstelling of principe.

Veelgestelde vragen

AI-tools groeperen interviewnotities, genereren conceptuele user stories, signaleren dubbelzinnige formuleringen en detecteren duplicaten in grote sets met vereisten. Businessanalisten valideren echter nog steeds elke suggestie aan de hand van de daadwerkelijke behoeften van de stakeholders voordat deze in de goedgekeurde basislijn wordt opgenomen.

Copilot en GPT genereren conceptuele gebruikersverhalen, acceptatiecriteria en 'shall-statements' op basis van korte prompts. Een businessanalist bewerkt elk resultaat op testbaarheid en bevestigt de afstemming met de bedrijfsdoelstellingen voordat een formele beoordeling plaatsvindt.

Een bedrijfsvereiste beschrijft het bestaansrecht van een project, bijvoorbeeld omzetgroei of naleving van regelgeving. Een functionele vereiste beschrijft wat het systeem moet doen om dat resultaat te bereiken, zoals een betaling valideren of een rapport genereren.

Gebruik een duidelijk onderwerp, het woord 'moet' en รฉรฉn toetsbare actie per bewering. Vermijd dubbelzinnige woorden zoals 'snel' en beschrijf รฉรฉn gedragspatroon, zodat de eis met รฉรฉn enkele 'geslaagd' of 'niet geslaagd' controle kan worden getoetst.

EARS, Easy Approach to Requirements Syntax, biedt vijf sjablonen: alomtegenwoordig, gebeurtenisgestuurd, statusgestuurd, optionele functie en ongewenst gedrag. Elk sjabloon dwingt een testbare structuur af, zoals: Wanneer TRIGGER optreedt, moet het systeem REAGEREN.

Een softwarevereistenspecificatie is het overkoepelende document dat beschrijft wat een systeem moet doen. Functionele vereisten vormen het grootste deel, samen met interfaces, niet-functionele vereisten, gebruiksscenario's en beperkingen.

Functionele eisen vormen de basis voor testgevallen in systeem-, integratie-, end-to-end-, API- en gebruikersacceptatietesten. Elke eis komt overeen met ten minste รฉรฉn testgeval, en de eisen TracEability Matrix bevestigt de dekking vรณรณr de release.

Agile teams formuleren functionele eisen als user stories in de volgende vorm: "Als een bepaalde rol wil ik een bepaalde mogelijkheid, zodat waarde wordt gecreรซerd." Acceptatiecriteria die aan de user story zijn gekoppeld, zetten de eis om in een testbare definitie van 'klaar'.

Vat dit bericht samen met: