You are on page 1of 6

MODELOS DE DESARROLLO DE SOFTWARE

Para comenzar, tenemos que mencionar que un modelo de desarrollo de software


es una descripcin simplificada del proceso de un software.
Existen varios modelos para presentar el proceso de desarrollo de software, cada
uno cuenta con sus ventajas y desventajas. Por lo que es necesario elegir el ms
apropiado para satisfacer las necesidades de un proyecto dado. En algunas
ocasiones se puede dar el caso de que se ocupe ms de un modelo para llevar
acabo dicho proceso.
Aunque existen muchos modelos diferentes de desarrollo de software, stos
tienen algunas caractersticas en general:
1. Especificacin del software. Definir la funcionalidad y las restricciones del
software.
2. Diseo e implementacin del software. Desarrollar software que cumpla con
el paso anterior.
3. Validacin del software. Asegurarse que el software satisface la necesidad
del cliente.
4. Evolucin del software. Cubrir necesidades que pueden cambiar por parte
del cliente.











Modelo en cascada
Este modelo es el ms bsico de todos y muestra un proceso donde los
desarrolladores tienen que seguir las siguientes fases de forma sucesiva, es decir,
una fase no debe empezar hasta que la fase previa haya finalizado:
1. Especificacin de requisitos.
2. Diseo del software.
3. Construccin.
4. Pruebas.
5. Instalacin.
6. Mantenimiento.
Una de las ventajas de este modelo es que se planifica de una manera muy
sencilla y que, al finalizar cada etapa, se produce una documentacin para su
aprobacin. Como desventajas mencionar que los resultados se obtienen al final y
que es muy difcil que pueda haber una evolucin de los requisitos ya que stos se
especifican desde un principio.
Existe una mejora de este modelo, el modelo en cascada iterativo. Aparte de que
este mtodo deja de ser lineal y ahora trabaja de forma iterativa, su principal
diferencia y ventaja es que permite la retroalimentacin. Esto provoca que los
riesgos disminuyan, se reduzcan los costos y que se le pueda entregar al usuario
una versin con la cual trabajar.
Modelo RAD (Desarrollo Rpido de Aplicacin)
Es un modelo de desarrollo de software lineal secuencial que enfatiza un ciclo de
desarrollo extremadamente corto. Implica el desarrollo iterativo y la construccin
de prototipos. Las etapas del modelo RAD son las siguientes:
1. Planificacin de los requisitos.
2. Diseo.
3. Construccin.
4. Implementacin.
Como ventaja, mencionar que el sistema a desarrollar se puede dividir fcilmente
en mdulos. Cada equipo de desarrolladores se encarga de una parte del sistema
usando herramientas de pruebas automatizadas y en cada etapa, los avances
parciales son integrados, probados y liberados. Por otro lado, las desventajas
serian que se necesita comprender bien los requisitos, se necesitan muchos
desarrolladores y que exista un compromiso de stos y de los clientes para un
tiempo de entrega corto.
Modelo de prototipos
El modelo de prototipos propone que antes de llevar a cabo el desarrollo del
software real, debe ser construido un prototipo de trabajo del sistema. Un prototipo
es un bosquejo de lo que ser el sistema. Un prototipo suele mostrar
funcionalidades limitadas, baja confiabilidad y un desempeo ineficiente en
comparacin con el software real. En otras palabras, un prototipo es una versin
incompleta del software. Las fases de este modelo son las siguientes:
1. Obtencin de requisitos.
2. Diseo rpido.
3. Construccin del prototipo.
4. Evaluacin del prototipo por parte del cliente. Si el cliente lo acepta, se
desarrolla el softare real, de lo contrario, realiza la etapa 5 y se repite el
ciclo.
a. Diseo del software real.
b. Implementacin
c. Pruebas
d. Mantenimiento
5. Sugerencias del cliente y nueva definicin de requisitos.
Como ventajas podemos decir que ayuda en gran manera al desarrollo del
software real a travs de la retroalimentacin e interaccin del cliente. Sin
embargo, la construccin de los prototipos se vuelve compleja adems del tiempo
y los costos que stos pueden tomar. Una gran desventaja es que el cliente puede
llegar a creer que un prototipo sea el sistema.

Modelo evolutivo
Este modelo tambin es llamado modelo incremental e iterativo. Consiste en una
mejora del modelo en cascada integrando el modelo de prototipos. En este modelo
la etapa de anlisis de requisitos y diseo son iguales que en el modelo en
cascada. Luego se dividen las etapas que implican el diseo detallado y la
implementacin.
Este modelo acelera el desarrollo temprano de funcionalidades del software de
alta prioridad. Adems, una cuidadosa programacin de las diferentes versiones
puede conducir a un uso eficiente de los recursos disponibles. La caracterstica
ms importante y principal de este modelo es que permite aadir nuevos requisitos
en el proceso de desarrollo. As se facilita el desarrollo dinmico de las
especificaciones del sistema.
Modelo de espiral
Es un modelo de proceso de software evolutivo que combina algunas
caractersticas claves del modelo en cascada, modelo RAD y del modelo evolutivo.
Fue desarrollado por Barry Boehm quien lo define como un generador de modelo
de proceso guiado por el riesgo que se emplea para conducir sistemas intensivos
de ingeniera de software concurrente y a la vez con muchos usuarios. En pocas
palabras, incorpora un anlisis de riesgos y contempla cuatro etapas principales:
1. Planificacin. Se determinan objetivos y restricciones.
2. Anlisis de riesgos. Se evalan alternativas, identifica y resuelve riesgos.
3. Ingeniera. Se desarrolla y se verifica el software.
4. Evaluacin del cliente. Se realiza una valoracin de los resultados y
empieza de nuevo la primera etapa.
Con cada iteracin o cada ciclo alrededor de la espiral, se van construyendo
sucesivas versiones del software cada vez ms completas.
La ventaja principal es la deteccin y solucin de riesgos a temprano tiempo, as
como la verificacin continua de la calidad y la gran utilidad para sistemas con
requisitos inestables. Creemos que este mtodo solo tiene una desventaja: que no
es recomendable para proyectos simples, los cuales, determinados para un tiempo
corto de desarrollo, pueden extenderse (en cuanto al tiempo) sin necesidad de que
suceda esto.
Modelo basado en componentes (CBSE)
Este enfoque de desarrollo se basa en la reutilizacin ya sea de diseo o de
cdigo de proyectos con los que se haya trabajado anteriormente. Si bien, la
primera y ltima etapa son similares a la de la mayora del resto de los modelos,
las etapas intermedias son muy diferentes ya que en este modelo estn orientadas
a la reutilizacin.
1. Anlisis de componentes. Una vez especificados los requisitos, se buscan
los componentes para implementar esa especificacin.
2. Modificacin de requerimientos. Se analizan los requerimientos con
respecto al anlisis de componentes y se realizan las posibles
modificaciones.
3. Diseo del sistema con reutilizacin. Aqu se puede reutilizar un diseo o
emplear un nuevo diseo de software.
4. Desarrollo e integracin. Si no se pudo reutilizar un diseo entonces se
procede a desarrollar el software.
Entonces como ventajas propias de este modelo son la reduccin de costos,
tiempos, riesgos y software a desarrollar. Aunque, el levantamiento de requisitos
siempre estar presente y la modificacin de los mismos pueda llevar a una difcil
modificacin del sistema.
Conclusiones
El modelo de cascada tradicional puede considerarse como el modelo bsico y
todos los dems modelos como los adornos o mejoras de este modelo. Sin
embargo, el modelo de cascada tradicional no se puede utilizar en proyectos de
desarrollo prcticos, ya que este modelo no es compatible con ningn mecanismo
para manejar los errores cometidos durante cualquiera de las fases.
Este problema se supera en el modelo de cascada iterativo. El modelo de cascada
iterativo es probablemente el modelo de desarrollo de software ms utilizado
evolucionado hasta ahora. Este modelo es fcil de entender y usar. Sin embargo,
este modelo es adecuado slo para problemas bien entendidos; no es adecuado
para proyectos de gran tamao ni para proyectos que estn sujetos a numerosos
riesgos.
El modelo de prototipo es adecuado para proyectos que no son bien entendidos es
decir, las necesidades de los usuarios o los aspectos tcnicos no se comprenden
correctamente. Este modelo es especialmente para el desarrollo de la parte de la
interfaz de usuario de los proyectos.
El enfoque evolutivo es adecuado para grandes problemas que se puede
descomponer en una serie de mdulos para el desarrollo y entrega de software
progresivo. Por supuesto, este modelo slo se puede utilizar si la entrega
incremental del sistema es aceptable para el cliente.
El modelo en espiral abarca todos los dems modelos de desarrollo de software.
Este modelo se basa en el manejo de riesgos. El modelo en espiral es adecuado
para el desarrollo de productos de software tcnicamente desafiantes que son
propensos a varios tipos de riesgos. Sin embargo, este modelo es mucho ms
complejo que los otros modelos. Esto es probablemente un factor de desnimo de
su uso en proyectos comunes.
Los modelos de desarrollo de software diferentes pueden compararse desde el
punto de vista del cliente. Inicialmente, la confianza del cliente en el equipo de
desarrollo es generalmente alta, independientemente del modelo de desarrollo
seguido. Durante el largo proceso de desarrollo, la confianza del cliente
normalmente cae, ya que ningn producto de trabajo es inmediatamente visible.
Los desarrolladores pueden responder a las consultas de los clientes utilizando un
lenguaje tcnico, y tambin pueden ocurrir retrasos durante el desarrollo. Esto da
lugar a un posible resentimiento por parte cliente. Por otro lado, un enfoque
evolutivo permite la experimentacin del cliente con un producto de trabajo mucho
antes que el resto de los modelos.
Otra ventaja importante del modelo incremental es que reduce el enfoque del
cliente de acostumbrarse a un sistema completamente nuevo. La introduccin
gradual del producto a travs de las fases incrementales proporciona tiempo para
que el cliente pueda adaptarse al nuevo producto. Asimismo, desde el punto de
vista econmico del cliente, el desarrollo incremental no requiere un gran
desembolso de capital inicial. El cliente puede pedir las versiones incrementales
como y cuando se puedan comprar.
Podemos terminar diciendo que, la eleccin del modelo para desarrollar software
depender mucho del tipo de aplicacin a la que nos enfrentemos, as como los
riegos, tiempos y costos que esta conlleve; y tomar en cuenta que tan importante
ser la interaccin que tendr el cliente durante el desarrollo del software.

Fuentes de consulta

Alonso, F., Martnez, L., & Segovia, F. J. (2005). Introduccin a la ingeniera de
software. DELTA PUBLICACIONES.
Godoy, J. D. (s.f.). El modelo RAD. Recuperado el 7 de Octubre de 2014, de
https://docs.google.com/presentation/d/1KkRkeaqM5O8QuYyIjk4fYs-
JgwtwdfBJJ5uBffColB8/embed#slide=id.i0
Modelos de desarrollo de software. (s.f.). Recuperado el 7 de Octubre de 2014, de
http://es.slideshare.net/kellypt1/modelos-de-desarrollo-de-software
Pressman, R. S. (1997). Ingeniera del software: un enfoque prctico. Mikel
Angoar.
Sommerville, I. (2005). Ingeniera de software. Addison Wesley.

You might also like