Sie sind auf Seite 1von 6

MODELOS DE DESARROLLO DE SOFTWARE

MODELO ENFOQUE VENTAJAS/DESVENTAJAS APLICABILIDAD


MODELO EN CASCADA El inicio de cada etapa
debe esperar a la
finalizacin de la
inmediatamente anterior.
Cualquier error de diseo
detectado en la etapa de
prueba conducen
necesariamente al
rediseo y programacin
del cdigo afectado as
aumenta costos del
desarrollo
Rara vez los proyectos siguen
una evolucin secuencial.
Es ampliamente criticado desde
mbito educativo y empresarial
Utilizado cuando existen
especificaciones amplias de
los requerimientos del
cliente
MODELO BASADO EN
PROTOTIPOS
No posee la funcionalidad
total del sistema pero sui
condensa la idea principal
del mismo, paso a paso
crece su funcionalidad, alto
grado de participacin del
usuario
El cliente puede pensar que el
prototipo es una versin
acabada.
Puede llegar a pasarse por alto
la calidad del software global o
el mantenimiento del largo
plazo.
Las herramientas elegidas
pueden ser inadecuadas.
La clave del xito de este modelo
consiste en definir bien, desde el
principio, las reglas del juego.
Se utiliza si en el mercado
no se encuentra el producto
pero el cliente desea
resultados inmediatos.
Para sistemas interactivos
pequeos o de tamao
pequeo.
Para sistemas con vida
corta.
MODELO INCREMENTAL
O EVOLUTIVO
Modelo Lineal-Secuencial
con el modelo basado en
Prototipos.
El Sistema no se entrega de
una vez, se divide y se
entrega incrementos.
Junto a cada incremento se
entrega una parte de
funcionalidad que se ha
establecido.
Los requisitos de un
incremento son
inamovibles; pero pueden
modificarse en los
incrementos posteriores
Los clientes no tienen que
esperar el producto completo. El
primero incremento debe
satisfacer o mejor dicho
satisface los requisitos crticos.
Los primeros incrementos
sirven de prototipos y ayudan a
la obtencin de los posteriores
requisitos.
Puede ser difcil ajustar los
requisitos a los incrementos.

Reemplazar el antiguo
desarrollo con uno nuevo
que satisfaga las nuevas
necesidades segn las
redefiniciones del
problema.

Manejo de Versiones
MODELO ESPIRAL Es una mejora del Modelo
Basado en prototipos
Cada vuelta en la espiral
representa una fase del
proceso.
No hay fases fijas, cada
vuelta en la espiral
determina las actividades a
realizar.
La dimensin radial
representa el coste
acumulado en la
financiacin de las fases.
La dimensin angular
representa el progreso
hecho en completar cada
ciclo de la espiral.
Un ciclo a travs de la
espiral es simular un paso
a travs de un modelo en
cascada

Requiere comunicacin
permanente con el cliente por lo
tanto si se cambia el contacto
con el cual se realiza desarrollo
es necesario que est al tanto de
lo realizado y lo pendiente,
cliente debe ser gran conocedor
del sistema.

Utilizado para el desarrollo
de aplicaciones complejas
y/o especficas. (Ej.
Investigacin Gentica)

MODELO BASADO EN
COMPONENTES
(ORIENTADO A OBJETOS)

Es programacin orientada
a Objetos. Se utilizan
objetos, clases y se
reutilizan en diferentes
partes del sistema.

Optimiza los tiempos de
respuesta a los requerimientos
del cliente y facilita la labor del
programador pues hay un alto
aprovechamiento del cdigo.
Facilita mantenimiento del
software.
Sistemas robustos y de alta
proyeccin.




CODE AND FIX

No requiere planeacin y
se trata de codificar y
corregir. Se trabaja
mediante prueba y error.
Especial para desarrollos
rpidos y sencillos

Desarrollo Rpido

No garantiza calidad

Desarrollo muy pequeos
con claridad de objetivos,
requerimientos pequeos o
de mantenimientos con
bajo impacto.

CASCADA CON
SUBPROYECTOS

Requiere planeacin.

Plantea Organizacin y
planeacin de un gran proyecto
Se pueden realizar varias partes
del proyecto al mismo tiempo
por diferentes desarrolladores

Adecuada para el desarrollo
de proyectos complejos que
estiman de 1 a 3 aos de
desarrollo.

ENTREGA POR ETAPAS

Cascada con entregas
grandes en diferentes
etapas del desarrollo.
Cascada con Evolutivo.

Debe entregarse una etapa para
continuar con la siguiente

Desarrollos robustos.
Desarrollo depende del
presupuesto directamente


3.
MODELOS EVOLUTIVOS

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:

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.



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.



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:

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.

Prototipos desechables, donde el objetivo del proceso de desarrollo evolutivo es comprender los requerimientos del
cliente y entonces desarrollar una definicin mejorada de los requerimientos para el sistema. El prototipo se centra en
experimentar con los requerimientos del cliente que no se comprenden del todo.

Ventajas

La especificacin puede desarrollarse de forma creciente.

Los usuarios y desarrolladores logran un mejor entendimiento del sistema. Esto se refleja en una mejora de la calidad
del software.

Es ms efectivo que el modelo de cascada, ya que cumple con las necesidades inmediatas del cliente.


Desventajas

Proceso no Visible: Los administradores necesitan entregas para medir el progreso. Si el sistema se necesita desarrollar
rpido, no es efectivo producir documentos que reflejen cada versin del sistema.

Sistemas pobremente estructurados: Los cambios continuos pueden ser perjudiciales para la estructura del software
haciendo costoso el mantenimiento.

Se requieren tcnicas y herramientas: Para el rpido desarrollo se necesitan herramientas que pueden ser
incompatibles con otras o que poca gente sabe utilizar.


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.

El modelo incremental fue propuesto por Harlan Mills en el ao 1980. Surgi el enfoque incremental de desarrollo como una
forma de reducir la repeticin del trabajo en el proceso de desarrollo y dar oportunidad de retrasar la toma de decisiones en
los requisitos hasta adquirir experiencia con el sistema. Este modelo se conoce tambin bajo las siguientes denominaciones:

Mtodo de las comparaciones limitadas sucesivas.
Ciencia de salir del paso.
Mtodo de atacar el problema por ramas.



El Modelo Incremental combina elementos del Modelo Lineal Secuencial con la filosofa interactiva de Construccin de
Prototipos. El modelo incremental aplica secuencias lineales de forma escalonada mientras progresa el tiempo en el
calendario. Cada secuencia lineal produce un incremento del software. El primer incremento generalmente es un producto
esencial denominado ncleo.

En una visin genrica, el proceso se divide en 4 partes:

Anlisis
Diseo
Cdigo
Prueba



Sin embargo, para la produccin del Software, se usa el principio de trabajo en cadena o Pipeline. Con esto se mantiene al
cliente en constante contacto con los resultados obtenidos en cada incremento. Es el mismo cliente el que incluye o desecha
elementos al final de cada incremento a fin de que el software se adapte mejor a sus necesidades reales. El proceso se repite
hasta que se elabora el producto completo. De esta forma el tiempo de entrega se reduce considerablemente.

El Modelo Incremental es de naturaleza interactiva brindando al final de cada incremento la entrega de un producto
completamente operacional. Este modelo es particularmente til cuando no se cuenta con una dotacin de personal
suficiente. Los primeros pasos los pueden realizar un grupo reducido de personas y en cada incremento se aadir personal,
de ser necesario. Por otro lado los incrementos se pueden planear para gestionar riesgos tcnicos.


Durante el proceso se trata de llevar a cabo al proyecto en diferentes partes que al final terminar siendo la solucin
completa requerida por el cliente, pero stas partes no se pueden realizar en cualquier orden, sino que dependen de lo que el
cliente este necesitando con ms urgencia, de los puntos ms importantes del proyecto, los requerimientos ms bsicos,
difciles y con mayor grado de riesgo, ya que estos se deben hacer al comienzo, de manera que se disminuya la dificultad y el
riesgo en cada versin.
De este modo podemos terminar una aplicacin ejecutable (primera versin) que podr ser entregada al cliente para que
ste pueda trabajar en ella y el programador pueda considerar las recomendaciones que el cliente efecte para hacer
mejoras en el producto. Estas nuevas mejoras debern esperar a ser integradas en la siguiente versin junto con los dems
requerimientos que no fueron tomados en cuenta en la versin anterior.

El modelo incremental consiste en un desarrollo inicial de la arquitectura completa del sistema, seguido de sucesivos
incrementos funcionales. Cada incremento tiene su propio ciclo de vida y se basa en el anterior, sin cambiar su funcionalidad
ni sus interfaces. Una vez entregado un incremento, no se realizan cambios sobre el mismo, sino nicamente correccin de
errores. Dado que la arquitectura completa se desarrolla en la etapa inicial, es necesario conocer los requerimientos
completos al comienzo del desarrollo.

Al iniciar del desarrollo, los clientes o los usuarios, identifican a grandes rasgos, las funcionalidades que proporcionar el
sistema. Se confecciona un bosquejo de requisitos funcionales y ser el cliente quien se encarga de priorizar que
funcionalidades son mas importantes. Con las funcionalidades priorizadas, se puede confeccionar un plan de incrementos,


donde en cada incremento se indica un subconjunto de funcionalidades que el sistema entregar. La asignacin de
funcionalidades a los incrementos depende de la prioridad dada a los requisitos. Finalizado el plan de incrementos, se puede
comenzar con el primer incremento.


Caractersticas:
Se evitan proyectos largos y se entrega "algo de valor" a los usuarios con cierta frecuencia.
El usuario se involucra ms.
Difcil de evaluar el costo total.
Difcil de aplicar a los sistemas transaccionales que tienden a ser integrados y a operar como un todo.
Requiere gestores experimentados.
Los errores en los requisitos se detectan tarde.
El resultado puede ser positivo.


Ventajas:
Con un paradigma incremental se reduce el tiempo de desarrollo inicial, ya que se implementa la funcionalidad
parcial.
Tambin provee un impacto ventajoso frente al cliente, que es la entrega temprana de partes operativas del
software.
El modelo proporciona todas las ventajas del modelo en Cascada realimentado, reduciendo sus desventajas slo al
mbito de cada incremento.
Resulta ms sencillo acomodar cambios al acotar el tamao de los incrementos.


Desventajas:
El modelo incremental no es recomendable para casos de sistemas de tiempo real, de alto nivel de seguridad, de
procesamiento distribuido y/o de alto ndice de riesgos.
Requiere de mucha planeacin, tanto administrativa como tcnica.
Requiere de metas claras para conocer el estado del proyecto.


Conclusin:

Un modelo incremental lleva a pensar en un desarrollo modular, con entregas parciales del producto Software denominados
"incrementos" del sistema, que son escogidos en base a prioridades predefinidas de algn modo.
El modelo permite una implementacin con refinamientos sucesivos (ampliacin y/o mejoras).
Con cada incremento se agrega nueva funcionalidad o se cubren nuevos requisitos o bien se mejora la versin previamente
implementada del producto software.

Requisitos

Das könnte Ihnen auch gefallen