Wat zijn exploitatiecontracten?
Op het gebied van computerprogrammering en computerwetenschap zijn operatiecontracten een manier om te specificeren of documenteren hoe een bepaalde functie verschillende elementen binnen een programma zal veranderen. In tegenstelling tot een abstracte programmeerinterface (API) of een interfacecontroledocument, worden bedieningscontracten gebruikt om te helpen tijdens de ontwikkelings- en modelleringsfase van het maken van een computertoepassing of -systeem. Op het meest basale niveau definieert het contract vier kenmerken van de operatie, met name de naam van de operatie, eventuele verwijzingen naar de operatie in andere delen van het ontwerp, eventuele vereisten voor invoer of status voordat de operatie wordt uitgevoerd, en de staat van het systeem of de variabelen nadat de bewerking is uitgevoerd. Het contract definieert niets specifieks over hoe de operatie intern functioneert, en behandelt in plaats daarvan alleen hoe de status van een programma wordt beïnvloed door het gebruik ervan.
Operatiecontracten worden over het algemeen niet gebouwd voor elke operatie binnen een programmamodel. In plaats daarvan zijn ze gereserveerd voor bewerkingen die bijzonder complex of moeilijk te volgen zijn. Verschillende computermodelleringstalen, zoals de Unified Modelling Language (UML), ondersteunen bewerkingscontracten en hebben manieren om te visualiseren hoe de status van een programma kan veranderen nadat de bewerking is uitgevoerd.
De eerste twee definities die nodig zijn om bewerkingscontracten te maken, zijn de naam van de bewerking, die van alles kan zijn, en eventuele kruisverwijzingen. Een kruisverwijzing is een lijst met andere bewerkingen of gebieden van een programmamodel die de gedefinieerde bewerking gebruiken of die de bewerking bij de verwerking ervan zal gebruiken. Dit helpt om te zien hoe een algeheel ontwerp op elkaar inwerkt en is vooral handig om te zien hoe veranderingen in het ene gebied van het model andere gebieden beïnvloeden.
Operatiecontracten definiëren vervolgens de voorwaarden die nodig zijn om de operatie uit te voeren. Dit kan betekenen dat bepaalde variabelen moeten worden geladen met de juiste waarden, of het kan vereisen dat bepaalde delen van het programma zich in een bepaalde staat bevinden. Als niet aan de voorwaarden wordt voldaan wanneer de bewerking wordt uitgevoerd, vindt de bewerking niet plaats of kan deze volledig mislukken. Het contract wordt gebruikt als een abstract hulpmiddel, dus de randvoorwaarden zijn meestal vrij algemeen en hebben meer betrekking op de status van het programma dan op specifieke variabelen.
Het laatste deel van operationele contracten definieert eventuele postvoorwaarden. Post-voorwaarden zijn een lijst met items binnen het programmamodel die zijn gewijzigd vanwege de uitvoering van de bewerking. Dit kan wijzigingen in een gegevensstructuur of wijzigingen in de status van het programma specificeren, zoals besturingsbesturing naar een afzonderlijke module. Door het gebruik van goed gedefinieerde operationele contracten kunnen programma's worden gemodelleerd en effectief worden aangepast voordat de daadwerkelijke implementatie begint.