Model de desenvolupament iteratiu i incrementalEl model de desenvolupament iteratiu i incremental és qualsevol combinació d'ambdós disseny iteratiu o mètode iteratiu i el model de generació incremental per al desenvolupament. La combinació és de llarga data[1] i ha estat àmpliament suggerit per als esforços de desenvolupament de grans dimensions. Per exemple, el 1985 DOD-STD-2167[2] 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 curs a la vegada. " i "Aquest procés pot ser descrit com una adquisició evolutiva o enfocament de generació incremental. "La relació entre iteracions i increments es determina pel procés general de desenvolupament de la metodologia de desenvolupament de programari i el programari. El nombre exacte i la naturalesa de l'increment concret construeix i el que es va reiterar seran específics per a cada esforç de desenvolupament individual. El desenvolupament iteratiu i incremental són parts essencials dels models de cascada modificats, Rational Unified Process, Programació Extrema i en general els diversos marcs de desenvolupament de programari àgil.[3] 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. FasesEl desenvolupament incremental divideix la funcionalitat del sistema en increments (porcions). A cada increment, una part de la funcionalitat es lliura a través del treball interdisciplinari, des dels requisits fins a la implantació. Els increments dels grups de processos unificats/iteracions en fases: creació, elaboració, construcció i transició.
Cadascuna de les fases es poden dividir en una o més iteracions, que solen està dividides en sessions (temps o hores de dedicació). Els arquitectes i analistes treballen les iteracions per davant dels desenvolupadors i provadors per tal de poder mantenir la seva cartera de comandes del producte i no acumular feina. ÚsMolts exemples d'ús d'hora es proporcionen en l'article de Craig Larman i Victor Basili "Desenvolupament iteratiu i incremental: Una breu història", amb Projecte Mercury de la NASA dels anys 1960.[4] Un altre és "un exemple ràpid sorprenent d'un important èxit de IID és el cor mateix del sistema de programari d'aviònica de la NASAel sistema de programmari del transbordador espacial primari que FSD va construir entre 1977 i 1980. L'equip va aplicar IID en una sèrie de 17 repeticions en 31 mesos, amb una mitjana al voltant de vuit setmanes a iteració. seva motivació per evitar el cicle de vida cascada va ser que els requisits del programa de transport canvien durant el procés de desenvolupament de programari". Algunes organitzacions, com el Departament de Defensa dels Estats Units, tenen una preferència per mètodes iteratius, començant amb la norma MIL-STD-498 "encoratjar clarament adquisició evolutiva i IID". L'actual Instrucció DoD 5000.2, llançada en 2000, estableix una clara preferència per IID: "Hi ha dos enfocaments, pas evolutiu i pas únic [cascada], per emplenar capacitat. Es prefereix un enfocament evolutiu. ... [En aquesta] enfocament, la capacitat final lliurada a l'usuari es divideix en dos o més blocs, amb l'augment d'increments de capacitat ... el desenvolupament de programari ha de seguir un procés de desenvolupament en espiral iteratiu en el qual les versions de programari en contínua expansió es basen en l'aprenentatge de desenvolupament anterior. També es pot fer en fases. Contrast amb desenvolupament de la cascadaEl desenvolupament de la cascada completa els productes de treball de tot el projecte de cada disciplina en un sol pas abans de passar a la següent disciplina en el següent pas. El valor del negoci es lliura una sola vegada, i només al final del projecte. Backtracking és possible en un enfocament iteratiu. Directrius d'aplicacióDirectrius que impulsen la implementació i l'anàlisi inclouen:
Referències
Vegeu també |
Portal di Ensiklopedia Dunia