Está en la página 1de 4

Modelos Evolutivos

MODELOS EVOLUTIVOS DEL SOFTWARE


Qu es un modelo de desarrollo?
Un modelo de desarrollo es una representacin abstracta de un
proceso de software, cada modelo representa el proceso de
desarrollo de software de una manera en particular. A pesar de
estar definidos claramente, no representan necesariamente la
realidad de cmo se debe desarrollar el software, sino que
establece un enfoque comn. Un modelo puede ser modificado y
adaptado de acuerdo a las necesidades del software en
desarrollo.
En forma general podemos clasificar los modelos de desarrollo
en 3 grupos:
1. El
modelo
en
cascada. Considera
las
actividades
fundamentales del proceso de especificacin, desarrollo,
validacin y evolucin, y los representa como fases separadas
del proceso, tales como la especificacin de requerimientos, el
diseo del software, la implementacin, las pruebas, etctera.
2. Desarrollo evolutivo. Este enfoque entrelaza las actividades
de especificacin, desarrollo y validacin. Un sistema inicial se
desarrolla rpidamente a partir de especificaciones abstractas.
ste se refina basndose en las peticiones del cliente para
producir un sistema que satisfaga sus necesidades.
3. Ingeniera del software basada en componentes. Este enfoque
se basa en la existencia de un nmero significativo de
componentes reutilizables. El proceso de desarrollo del sistema
se enfoca en integrar estos componentes en el sistema ms que
en desarrollarlos desde cero.
Aunque existen muchos tipos de modelos de desarrollo, de
forma genrica la mayora est clasificada en una de estas 3
categoras, y estos a pesar de ser diferentes a veces son usados
de manera simultneamente especialmente en sistemas
grandes.
Desarrollo Evolutivo
El desarrollo evolutivo consta del desarrollo de una versin
inicial que luego de exponerse se va refinando de acuerdo de los
comentarios o nuevos requerimientos por parte del cliente o del
usuario final. Las fases de especificacin, desarrollo y validacin
se entrelazan en vez de separarse.

Existen dos tipos de desarrollo evolutivo:


1. Desarrollo exploratorio, donde el objetivo del proceso es
trabajar con el cliente para explorar sus requerimientos y
entregar un sistema final. El desarrollo empieza con las partes
del sistema que se comprenden mejor. El sistema evoluciona
agregando nuevos atributos propuestos por el cliente.
2. Prototipos desechables, donde el objetivo del proceso
desarrollo evolutivo es comprender los requerimientos
cliente y entonces desarrollar una definicin mejorada de
requerimientos para el sistema. El prototipo se centra
experimentar con los requerimientos del cliente que no
comprenden del todo.

de
del
los
en
se

Desde el punto de vista de desarrollo de sistema el enfoque


evolutivo suele traer ms ventajas en comparacin con un
enfoque en cascada ya que el sistema se va ajustando a las
necesidades del cliente, a la vez que l mismo entiende mejor
sus propios requerimientos. Sin embargo el enfoque evolutivo
desde una perspectiva de ingeniera y gestin suele tener dos
grandes problemas:
1. El proceso no es visible. Los administradores tienen que hacer
entregas regulares para medir el progreso. Si los sistemas se
desarrollan rpidamente, no es rentable producir documentos
que reflejen cada versin del sistema.
2. A menudo los sistemas tienen una estructura deficiente. Los
cambios continuos tienden a corromper la estructura del
software. Incorporar cambios en l se convierte cada vez ms en
una tarea difcil y costosa.
Aunque supone grandes ventajas el desarrollo evolutivo solo es
recomendado para sistemas pequeos y medianos. En los
sistemas grandes, los constantes cambios en el desarrollo solo
dificultan la estabilidad y la integracin de los avances de los
distintos grupos de trabajo que puedan existir. La mayora de las
empresas que desarrollan grandes sistemas usan un modelo
mixto que usa las mayores fortalezas de los enfoques evolutivos
y de cascada.
Modelo Espiral
Es un modelo de desarrollo evolutivo propuesto por Barry
Boehm, que utiliza prototipos como apoyo. La forma de espiral
representa una iteracin (repeticin) de procesos que, a medida

que se van entregando prototipos y stos son revisados por los


clientes o usuarios finales, el tiempo empleado para desarrollar
la prxima versin es cada vez mayor. Cada divisin recibe el
nombre de regin de tareas.
Aunque el modelo espiral representa ventajas por sobre el
desarrollo lineal, el clculo de los riesgos puede ser muy
complicado y no es tan usado en la realidad.

Modelo Espiral WINWIN (gana & gana)


Una variante interesante del Modelo Espiral es el Modelo espiral
Win-Win. El Modelo Espiral previo (clsico) sugiere la
comunicacin con el cliente para fijar los requisitos, en que
simplemente se pregunta al cliente qu necesita y l
proporciona la informacin para continuar, sin embargo, esta es
una situacin que rara vez ocurre. Normalmente el cliente y
desarrollador entran en una negociacin, se negocia coste frente
a funcionalidad, rendimiento, calidad, etc.
Las mejores negociaciones se fuerzan en obtener Victoria &
Victoria (Win & Win), es decir que el cliente gane obteniendo el
producto que lo satisfaga, y el desarrollador tambin gane
consiguiendo presupuesto y fecha de entrega realista.
Evidentemente, este modelo requiere fuertes habilidades de
negociacin.
Modelo de desarrollo concurrente
Es un modelo de tipo de red donde todas las personas actan
simultneamente o al mismo tiempo.
Davis Sitaram ha descrito el modelo de desarrollo concurrente,
llamado algunas veces ingeniera concurrente, de la siguiente
forma:
Los gestores de proyectos que siguen los pasos del estado del
proyecto en lo que se refiere a las fases importantes [del ciclo
de vida clsico] no tiene ideal del estado de sus proyectos. Estos
son ejemplos de un intento por seguir los pasos
extremadamente simples. Tenga en cuenta que aunque un
proyecto [grande] este en la fase de codificacin, hay personal
de ese proyecto implicado en actividades asociadas
generalmente a muchas fases de desarrollo simultneamente.
Por ejemplo,...el personal est escribiendo requisitos diseando,
codificando, haciendo pruebas y probando la integracin (todo al
mismo tiempo). Los modelos de proceso de ingeniera del
software de Humphrey y Kellner han mostrado la concurrencia
que existe para actividades que ocurren para cualquier fase. El
trabajo ms reciente de Kellner utiliza diagramas de estado para
representar la relacin concurrente que existe entre actividades
asociadas a un acontecimiento especifico, pero falla en capturar

la riqueza de la concurrencia que existe en todas las actividades


del desarrollo y de gestin del software en mi proyecto...La
mayora de los modelos de procesos de desarrollo del software
son dirigido por el tiempo; cuanto ms tarde sea, ms atrs se
encontrara en el proceso de desarrollo. (Un modelo de proceso
concurrente) est dirigido por las necesidades del usuario, las
decisiones de la gestin y los resultados de las revisiones.
Modelo Incremental
El modelo incremental es una unin de las mejores
funcionalidades del modelo de cascada y del modelo de
prototipos. A medida que se presenta un prototipo se produce
un incremento, que es una iteracin del proceso anterior pero
aplicando las experiencias aprendidas del proceso anterior. A
diferencia del modelo de prototipos, los prototipos de este
modelo estn orientados a ser operacionales en cada
incremento y no ser solo una previa de cmo sera el sistema
en su versin final.

También podría gustarte