Iteratie is het herhalen van een proces, om een reeks resultaten te genereren (mogelijk onbeperkt), met als doel een gewenst doel of resultaat te benaderen. In de context van wiskunde of informatica is iteratie (samen met de gerelateerde techniek van recursie) een standaardbouwsteen van algoritmen.
In computerprogrammering is iteratie, ook wel de Engelse term lus genoemd, een besturingsstructuur binnen een algoritme dat een bepaald probleem oplost, dat de computer opdraagt herhaaldelijk een reeks instructies uit te voeren, in het algemeen tot het optreden van specifieke logische voorwaarden.
Het is belangrijk op te merken dat de volgorde en selectie een van de drie fundamentele structuren vormen voor de algoritmische oplossing van een specifiek probleem volgens de stelling van Böhm-Jacopini. Er zijn verschillende vormen van iteratie; de bekendste zijn de MENTRE, de REPEAT en de PER. Men kan zeggen dat iteratie de sterke schakel is van programmeren waarmee u de uitvoering van een proces kunt automatiseren, wat niet voldoende is om simpelweg een reeks instructies uit te voeren.
De zogenaamde "oneindige loop" is een geval van iteratie door een programmering fout die de uitvoering van het programma stopt, terwijl in sommige programmeertechnieken, vooral met microcontrollers, wordt bewust gebruikt om oneindig herhalen binnen het programma.
Bij softwareontwikkeling wordt de iteratieve gebruikt om een heuristisch plannings- en ontwikkelingsproces te beschrijven waarbij een applicatie wordt ontwikkeld in kleine secties die iteraties worden genoemd. Elke iteratie wordt beoordeeld en bekritiseerd door het softwareteam en potentiële eindgebruikers; De inzichten die zijn opgedaan bij het bekritiseren van een iteratie worden gebruikt om de volgende stap in de ontwikkeling te bepalen. Datamodellen of sequentiediagrammen, die vaak worden gebruikt om iteraties uit te zetten, houden bij wat is geprobeerd, goedgekeurd of weggegooid en dienen uiteindelijk als een soort blauwdruk voor het eindproduct.
De uitdaging bij iteratieve ontwikkeling is om ervoor te zorgen dat alle iteraties compatibel zijn. Wanneer elke nieuwe iteratie wordt goedgekeurd, kunnen ontwikkelaars een techniek gebruiken die bekend staat als backward engineering, een systematische review- en verificatieprocedure om ervoor te zorgen dat elke nieuwe iteratie compatibel is met de vorige. Het voordeel van iteratieve ontwikkeling is dat de eindgebruiker bij het ontwikkelproces wordt betrokken. In plaats van te wachten tot de applicatie een eindproduct is, wanneer wijzigingen niet gemakkelijk mogelijk zijn, worden problemen geïdentificeerd en opgelost in elke ontwikkelingsfase. Iteratieve ontwikkeling wordt ook wel circulaire of evolutionaire ontwikkeling genoemd.