1. Definición Características Aplicación Ventajas Desventajas
Modelo de
Cascada
También llamado
Lineal secuencial, es el
enfoque metodológico
que ordena
rigurosamente las
etapas del proceso para
el desarrollo de
software, de tal forma
que el inicio de cada
etapa debe esperar a la
finalización de la etapa
anterior.
*Se debe
comprobar el
Software después
de unirlo y antes
de operarlo.
*Es el más
utilizado
*Deben
desarrollarse todas
las fases
*Las fases
continúan hasta
que los objetivos
se han cumplido
La aplicación del
modelo en
cascada se orienta
mejor al
desarrollo de
proyectos de corto
plazo, de poca
innovación y
proyectos
definitivos y
detallados.
*Modelo y
planificación fácil y
sencilla.
*Sus fases son
conocidas por los
desarrolladores.
*Los usuarios lo
pueden comprender
fácilmente.
*En la vida real, un
proyecto rara vez
sigue una secuencia
lineal, esto crea una
mala
implementación del
modelo, lo cual
hace que lo lleve al
fracaso.
*El proceso de
creación del
software tarda
mucho tiempo ya
que debe pasar por
el proceso de
prueba y hasta que
el software no esté
completo no se
opera. Esto es la
base para que
funcione bien.
*Cualquier error de
diseño detectado en
la etapa de prueba
conduce
necesariamente al
rediseño y nueva
programación del
código afectado,
aumentando los
costos del
desarrollo.
Desarrollo
Evolutivo
Los evolutivos son
modelos iterativos,
permiten desarrollar
versiones cada vez más
completas y complejas,
hasta llegar al objetivo
final deseado; incluso
evolucionar más allá,
durante la fase de
operación.
*Gestionan bien la
naturaleza
evolutiva del
software
*Son iterativos:
construyen
versiones de
software cada vez
más completas Se
adaptan bien:
*Los cambios de
requisitos del
producto
*Especificaciones
parciales del
producto
Se basa en la idea
de desarrollar una
implementación
inicial,
exponiéndola a
los comentarios
del usuario y
refinándola a
través de las
diferentes
versiones hasta
que se desarrolla
un sistema
adecuado.
*La especificación
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 más efectivo
que el modelo de
cascada, ya que
cumple con las
necesidades
inmediatas del
cliente.
*Proceso no
Visible: Los
administradores
necesitan entregas
para medir el
progreso. Si el
sistema se necesita
desarrollar rápido,
no es efectivo
producir
documentos que
reflejen cada
versión del sistema.
*Sistemas
pobremente
estructurados: Los
cambios continuos
pueden ser
perjudiciales para
la estructura del
software haciendo
costoso el
2. mantenimiento.
*Se requieren
técnicas y
herramientas: Para
el rápido desarrollo
se necesitan
herramientas que
pueden ser
incompatibles con
otras o que poca
gente sabe utilizar.
Desarrollo
Formal de
Sistemas
Un método formal es
un camino a la
construcción y análisis
de modelos
matemáticos que
permitan una
automatización del
desarrollo de sistemas
informáticos.
Se caracterizan por
emplear técnicas y
herramientas
matemáticas para
lograr una
facilitación a la
hora de encarar la
construcción o el
análisis de un
modelo
matemático de un
sistema.
Permiten
representar la
especificación del
software,
verificación y
diseño de
componentes
mediante
notaciones
matemáticas. El
uso de métodos
formales permite
plantear de
manera clara la
especificación de
un sistema,
generando
modelos que
definen el
comportamiento
en términos del
“qué debe hacer”
y no del “cómo lo
hace”.
*Se comprende
mejor el sistema.
*La comunicación
con el cliente
mejora ya que se
dispone de una
descripción clara y
no ambigua de los
requisitos del
usuario.
*El sistema se
describe de manera
más precisa.
*El sistema se
asegura
matemáticamente
que es correcto
según las
especificaciones.
*Mayor calidad en
el software respecto
al cumplimiento de
las
especificaciones.
*Mayor
productividad.
*El desarrollo de
herramientas que
apoyen la
aplicación de
métodos formales
es complicado y los
programas
resultantes son
incómodos para los
usuarios.
*Los
investigadores por
lo general no
conocen la realidad
industrial.
*Es escasa la
colaboración entre
la industria y el
mundo académico,
que en ocasiones se
muestra demasiado
dogmático.
*Se considera que
la aplicación de
métodos formales
encarece los
productos y
ralentiza su
desarrollo.
Desarrollo
Orientado a la
Reutilización
Consiste en u enfoque
de desarrollo que trata
de maximizar la
reutilización de
software existente.
El diseño basado en
reutilización puro
busca construir un
producto software
integrando
componentes pre-
Se caracteriza por
que
*existen
similitudes entre
distintos sistemas
de un mismo
dominio de
aplicación.
*El software
puede
representarse
Su aplicación
consiste en 6
etapas:
*especificación
de
requerimientos.
*análisis de
componentes.
*modificación de
requerimientos.
*diseño del
*Tiempos de
desarrollos cortos.
*Disminución de
errores.
*Disminución de
costos y riesgos ya
que se reduce los
componentes a
desarrollar.
*Existe un aumento
de la confiabilidad
*Al no poseer
algún componente
que cubra con un
requisito dado por
el usuario, este
debe ser
modificado para
adaptarlo a los
componentes
almacenados en el
repositorio de
3. existentes. como una
combinación de
módulos: Diseñar
aplicaciones =
especificar
módulos +
interrelaciones
*Los sistemas
nuevos se pueden
caracterizar por
diferencias
respecto a los
antiguos.
sistema con
reutilización.
*desarrollo e
integración.
*validación del
sistema
ya que los
componentes a
utilizar ya fueron
testeados y
utilizados en otro
momento previo al
comienzo del
proyecto.
componentes. Esto
se da en el modulo
puro. En cambio en
el modelo real si no
se puede adaptar un
requisito de
usuario, se
conseguirá o se
desarrollara ese
modulo para que
cumpla con lo
pedido por el
usuario.
*Una vez finalizada
la etapa de
modificación de
requisitos, y ante la
eventual necesidad
de cambio de estos
últimos, puede
pasar que no haya
componentes que
se adapten a las
nuevas
modificaciones.
Desarrollo
Incremental
El modelo incremental
combina elementos del
modelo lineal
secuencial (aplicados
repetidamente) con la
filosofía interactiva de
construcción 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
*Se evitan
proyectos largos y
se entrega “algo de
valor” a los
usuarios con cierta
frecuencia.
*El usuario se
involucre más.-
Difícil de evaluar
el costo total.
*Difícil 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
muy positivo.
El modelo
permite una
implementación
con refinamientos
sucesivos
(ampliación y/o
mejora). Con cada
incremento se
agrega nueva
funcionalidad o se
cubren nuevos
requisitos o bien
se mejora la
versión
previamente
implementada del
producto
software.
*Con un paradigma
incremental se
reduce el tiempo de
desarrollo inicial,
ya que se
implementa la
funcionalidad
parcial.
*También 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 sólo al
ámbito de cada
incremento.
*Permite entregar
al cliente un
producto más
rápido en
comparación del
modelo de cascada.
*Resulta más
*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 planeación,
tanto administrativa
como técnica.
*Requiere de metas
claras para conocer
el estado del
proyecto.
4. sencillo acomodar
cambios al acotar el
tamaño de los
incrementos.
*Por su versatilidad
requiere de una
planeación
cuidadosa tanto a
nivel administrativo
como técnico.
Desarrollo en
Espiral
Es un modelo de ciclo
de vida del software
definido por primera
vez por Barry Boehm
en 1986,1 utilizado
generalmente en la
Ingeniería de software.
Las actividades de este
modelo se conforman
en una espiral, en la
que cada bucle o
iteración representa un
conjunto de
actividades. Las
actividades no están
fijadas a ninguna
prioridad, sino que las
siguientes se eligen en
función del análisis de
riesgo, comenzando
por el bucle interior.
*En cada giro se
construye un
nuevo modelo del
sistema completo.
*Este modelo
puede combinarse
con otros modelos
de proceso de
desarrollo
(cascada,
evolutivo)
*Mejor modelo
para el desarrollo
de grandes
sistemas.
*El análisis de
riesgo requiere la
participación de
personal con alta
calificación.
*No hay un
número definido
de iteraciones. Las
iteraciones debe
decidirlas el
equipo de gestión
de proyecto.
*Mas realista que
el ciclo de vida
clásico.
*Este es el
enfoque más
realista
actualmente.
Este tiene su
aplicación en
cuatro fases:
Análisis de
requisitos, diseño
e implementación,
pruebas y
planificación del
próximo ciclo de
desarrollo.
*Reduce riesgos
del proyecto
*Incorpora
objetivos de calidad
*Integra el
desarrollo con el
mantenimiento, etc.
*Genera mucho
tiempo en el
desarrollo del
sistema
*Modelo costoso
*Requiere
experiencia en la
identificación de
riesgos