You are on page 1of 4

MODELO DE DESARROLLO EVOLUTIVO

El modelo de desarrollo evolutivo


El desarrollo evolutivo es una metodologa de desarrollo de software muy relacionada con, pero claramente distinta de, desarrollo por prototipos. El nfasis esta puesto sobre la importancia de obtener un sistema de produccin flexible y expandible. As, si los requerimientos cambian durante el desarrollo del sistema, entonces con un mnimo de esfuerzo y tiempo se puede desarrollar un sistema de trabajo flexible. La diferencia fundamental entre desarrollo evolutivo y prototipos de software es que el desarrollo evolutivo busca reemplazar el viejo sistema con uno nuevo que tendra la propiedad de satisfacer los nuevos requerimientos lo ms rpido posible. En contraste, prototipos usa un enfoque iterativo solo para determinar los requerimientos organizacionales. Por lo tanto el tiempo tomado entre cada iteracin es mucho ms importante para el desarrollo evolutivo. El desarrollo evolutivo asume que los requerimientos de un proyecto estn sujetos a cambios continuos, por lo cual es necesario definir una estrategia de desarrollo que refleje esta situacin. En cambio, el desarrollo orientado a prototipos, as como los anteriores, asume que los requerimientos "reales" existen y se vale de las iteraciones del prototipo para establecerlos y modelarlos. La idea entonces de la metodologa de desarrollo evolutivo es estar liberando constantemente una nueva versin del sistema que sea completamente funcional; as, cada sistema producto de las iteraciones sucesivas del mtodo tendra incorporado los nuevos requerimientos que ha sido posible identificar y que no estaran considerados en la anterior versin. As, las etapas del desarrollo evolutivo tienen por objetivo extender los incrementos de un producto de software operacional, en las direcciones determinadas por la evolucin de la experiencia operacional. El modelo de desarrollo evolutivo puede ser idealmente asociado a un lenguaje de aplicacin de cuarta generacin y mejor an a situaciones en que el usuario dice, "yo no puedo hablarte sobre lo que yo quiero, pero yo lo reconocera si lo viese". As, este mtodo entregara al usuario rpidamente una capacidad operativa inicial y, adems, establecera una base real operacin para determinar las mejoras subsecuentes en el producto. Pero, existiran algunas dificultades tcnicas que no pueden dejar de ser mencionadas, por ejemplo: No facilita la integracin de aplicaciones que han sido desarrolladas como sistemas independientes. Facilita la posibilidad de que existan casos de "esclerosis de informacin", en el sentido que trabajos temporales alrededor de algunas deficiencias del software se solidifican como poderes inmodificables a la evolucin. Es decir, en la medida que se evoluciona, esta misma facilidad a la evolucin llevara a que no sea posible seguir evolucionando. Pueden ocurrir que el software nuevo es un reemplazo incremental de un subsistema dentro de un gran sistema existente. Si el sistema existente est pobremente Pgina 1

MODELO DE DESARROLLO EVOLUTIVO

modularizado, entonces es obvia la dificultad en hacer que la nueva versin se acople con facilidad al resto. El mtodo evolutivo tiene la gran ventaja de reconocer la existencia de una constante de cambios en los requerimientos y, desde esta premisa, propone una solucin, la cual es vlida para la solucin de ese problema pero que no resolvera la inquietud original, esto es que el mtodo no facilita elementos que permitan reducir la distancia conceptual entre los dominios del desarrollador y del usuario. Con la existencia del mtodo evolutivo se configura una nueva problemtica en el desarrollo de sistemas, es decir, la crisis se expande ahora en el sentido que no slo se requiere reflejar lo ms fielmente posible las necesidades del usuario, sino que ahora los ambientes en que el sistema est inserto estn sujetos a cambios y estos cambios inciden en la efectividad del software desarrollado. Lo anterior fue articulado por Meir M. Lehman a principio de la dcada de los ochenta, al definir las leyes de la evolucin del software, en que las dos primeras leyes tienen directa relacin con lo que se describe. Veamos a Lehman citado por Ian Sommerville, en el libro Ingeniera de Software: Lehman propone que la evolucin de un sistema de software est sujeta a varias leyes. Ha determinado estas leyes a partir de observaciones experimentales de varios sistemas, como los grandes sistemas operativos. Dice Lehman que hay cinco leyes de la evolucin de los programas: Cambio Continuo. Un programa que se utiliza en un ambiente del mundo real debe cambiar o ser cada vez menos til en ese ambiente. Complejidad creciente. A medida que un programa en evolucin cambia, su estructura se hace ms compleja, a menos que se lleven a cabo esfuerzos activos para evitar este fenmeno. Evolucin del programa. La evolucin del programa es un proceso autorregulador, y una medicin de atributos del sistema, como el tamao, el tiempo entre versiones, el nmero de errores advertidos, etc., revela las tendencias estadsticas significativas y las caractersticas invariantes. Conservacin de la estabilidad organizativa. Durante el tiempo de vida de un programa, su rapidez de desarrollo es casi constante e independiente de los recursos dedicados al desarrollo del sistema. Conservacin de la familiaridad. Durante el tiempo de vida de un sistema, la evolucin del cambio del sistema en cada versin es, aproximadamente, constante.

Pgina 2

MODELO DE DESARROLLO EVOLUTIVO

Sommerville considera las "leyes" de Lehman como elementos positivos en la configuracin del mbito en que se desarrollan los sistemas, por ejemplo, dice que las dos primeras hiptesis de Lehman son casi con certeza vlidas. Interpretando la primera como: El razonamiento subyacente en la primera ley... es que cuando un sistema de software (sobre todo uno grande) se construye para modelar algn ambiente y despus se introduce en l, modificndose as el ambiente original con la presencia del sistema de software. No puede ser ms interesante para los propsitos de esta revisin la caracterstica planteada por esta hiptesis, es decir, si se desarrolla software no se podra pensar desde la perspectiva de estabilidades, todo lo contrario, necesariamente es el cambio el motor y el configurador de los sistemas de software. Aqu el punto es la introduccin de una nueva perspectiva al problema del desarrollo de software, perspectiva que ser determinante en el planteamiento de un modelo que permita reflejarla. Lo expresado en la primera ley, configura un nuevo problema -como se haba anticipadopara el desarrollo de software, adems de la distancia conceptual entre desarrollador y usuario, existira el problema de la evolucin constante de la organizaciones o, ms claramente, la connaturalizad de las organizaciones al cambio como elemento subyacente en su ser organizacional. La segunda ley en el anlisis de Somerville corresponde El hecho de que la estructura del programa original se estableci para aplicarlo a un conjunto de necesidades iniciales. A medida que se produce el cambio evolutivo de esas necesidades, la estructura original se degrada Y con ello se va haciendo ms compleja ya que al ir incrementndose la distancia conceptual entre el software y el medio que lo contiene, ste va estando cada vez ms presente en el hacer cotidiano, formulando quiebres constantes sobre el sistema de trabajo lo que imprime un sello de complejidad a la utilizacin del software. Las siguientes leyes tienen relacin con las caractersticas de las organizaciones y de los individuos que participan en el proceso de desarrollo de software. Lehman afirma que las organizaciones se esfuerzan por lograr la estabilidad e intentan evitar cambios drsticos o repentinos. Por tanto, a medida que se aaden ms recursos a un proyecto de software, el efecto evolutivo de la adicin de nuevos recursos se va reduciendo, hasta que la adicin de nuevos recursos no produce ningn efecto. Si bien, estas ltimas leyes no resultan tan obvias como las primeras y podran ser cuestionadas, es posible que la ltima, que tiene que ver con la conservacin de la familiaridad sea la ms til, como tambin la de reduccin de personal, en el sentido que: Cuanta ms gente trabaje, menos productivo ser cada miembro del proyecto .

Pgina 3

MODELO DE DESARROLLO EVOLUTIVO

Las proposiciones de Lehman se orientaron a la creacin de un mtodo de desarrollo que considerase estas caractersticas. En el modelo evolutivo, los requerimientos son cuidadosamente examinados, y slo esos que son bien comprendidos son seleccionados para el primer incremento. Los desarrolladores construyen una implementacin parcial del sistema que recibe slo estos requerimientos. El sistema es entonces desarrollado, los usuarios lo usan, y proveen retroalimentacin a los desarrolladores. Basada en esta retroalimentacin, la especificacin de requerimientos es actualizada, y una segunda versin del producto es desarrollada y desplegada. El proceso se repite indefinidamente. Todo lo que uno tiene que hacer es construir un subconjunto de requerimientos conocidos (incremental), y comprender al principio que muchos nuevos requerimientos es probable que aparezcan cuando el sistema sea desplegado o desarrollado. El desarrollo de software en forma evolutiva requiere un especial cuidado en la manipulacin de documentos, programas, datos de test, etc. desarrollados para distintas versiones del software. Cada paso debe ser registrado, la documentacin debe ser recuperada con facilidad, los cambios deben ser efectuados de una manera controlada. Ejemplo: Un procesador de texto que sea desarrollado bajo el paradigma Incremental podra aportar, en principio, funciones bsicas de edicin de archivos y produccin de documentos (algo como un editor simple). En un segundo incremento se le podra agregar edicin ms sofisticada, y de generacin y mezcla de documentos. En un tercer incremento podra considerarse el agregado de funciones de correccin ortogrfica, esquemas de paginado y plantillas; en un cuarto capacidades de dibujo propias y ecuaciones matemticas. As sucesivamente hasta llegar al procesador final requerido. As, el producto va creciendo, acercndose a su meta final, pero desde la entrega del primer incremento ya es til y funcional para el cliente, el cual observa una respuesta rpida en cuanto a entrega temprana; sin notar que la fecha lmite del proyecto puede no estar acotada ni tan definida, lo que da margen de operacin y alivia presiones al equipo de desarrollo. Como se dijo, el Iterativo Incremental es un modelo del tipo evolutivo, es decir donde se permiten y esperan probables cambios en los requisitos en tiempo de desarrollo; se admite cierto margen para que el software pueda evolucionar. Aplicable cuando los requisitos son medianamente bien conocidos pero no son completamente estticos y definidos. Con cada incremento se agrega nueva funcionalidad o se cubren nuevos requisitos o bien se mejora la versin previamente implementada del producto software. Este modelo brinda cierta flexibilidad para que durante el desarrollo se incluyan cambios en los requisitos por parte del usuario, un cambio de requisitos propuesto y aprobado puede analizarse e implementarse como un nuevo incremento o, eventualmente, podr constituir una mejora/adecuacin de uno ya planeado. Pgina 4

You might also like