# Desenvolupament iteratiu i incremental

El desenvolupament iteratiu i incremental és qualsevol combinació d'ambdós disseny iteratiu o mètode iteratiu i el Model de generació incremental de desenvolupament de programari. La combinació és de llarga data i ha estat àmpliament recomanat per als esforços de desenvolupament de grans dimensions. Per exemple, el 1985 DOD-STD-2167 esmenta (a la secció 4.1.2): "Durant el desenvolupament de programari, més d'una iteració del cicle de desenvolupament de programari pot estar en progrés a la vegada." i "Aquest procés pot ser descrit com una" adquisició evolutiva 'o enfocament de "acumulació gradual'." La relació entre iteracions i increments està determinada en general per la metodologia de desenvolupament de programari i procés de desenvolupament de programari. El nombre exacte i la naturalesa de composicions incrementals particulars i el que és iterat seran específics per a cada esforç de desenvolupament individual.
El desenvolupament iteratiu i incremental són parts essencials dels Models de cascada modificats, Procès Unificat Racional, Programació Extrema i en general els diversos marcs de desenvolupament de programari àgil.

## Descripció

La idea bàsica darrere d'aquest mètode és desenvolupar un sistema a través de cicles repetits (iteratius) i en porcions més petites alhora (incremental), permetent als desenvolupadors de programari per prendre avantatge del que s'ha après durant el desenvolupament de les parts o versions anteriors del sistema. L'aprenentatge ve de tant el desenvolupament i l'ús del sistema, on els possibles passos clau en el procés comencen amb una implementació simple d'un subconjunt dels requisits de programari i de forma iterativa milloren les versions en evolució fins que s'implementi el sistema complet. A cada iteració, es fan modificacions de disseny i s'afegeixen noves capacitats funcionals.
El procediment en si consisteix en el pas d'inicialització, el pas de la iteració, i la Llista de Control del Projecte. El pas d'inicialització crea una versió bàsica del sistema. L'objectiu d'aquesta implementació inicial és crear un producte al qual l'usuari pot reaccionar. Ha d'oferir una mostra dels aspectes clau del problema i oferir una solució prou simple per entendre i implementar fàcilment. Per guiar el procés d'iteració, es crea una llista de control de projecte que conté un registre de totes les tasques que cal realitzar. Inclou elements com noves característiques per ser implementada i àrees de redisseny de la solució existent. La llista de control es revisa constantment com a resultat de la fase d'anàlisi.
La iteració implica que el redisseny i implementació d'iteració ha de ser simple, directe, i modular, recolzant redisseny en aquesta etapa o com una tasca afegida a la llista de control del projecte. El nivell de detall de disseny no està dictat per l'enfocament iteratiu. En un projecte iteratiu de pes lleuger el codi pot representar la principal font de documentació del sistema; no obstant això, en un projecte iteratiu crític pot ser utilitzat un Document de Disseny de Programari formal. L'anàlisi d'una iteració es basa en comentaris dels usuaris i les instal·lacions d'anàlisi de programa disponible. Es tracta d'una anàlisi de l'estructura, modularitat, facilitat d'ús, la fiabilitat, l'eficiència i l'assoliment de metes. La llista de control de projecte es modifica amb resultats de l'anàlisi obtingudes.

## Referències

* ↑ Cockburn, Alistair. «Using Both Incremental and Iterative Development» (en anglès). web.archive, 26-05-2012. Arxivat de l'original el 2012-05-26. [Consulta: 14 octubre 2022].
* ↑ Larman, Craig; Basili, Victor R. «Iterative and Incremental Development: A Brief History» (en anglès). craiglarman.com, 01-06-2003.