Cuadro Comparativo de Diseño de sistema: Modelo de Cascada
Desarrrollo Evolutivo
Desarrollo Formal de Sistemas
Desarrollo Orientado a la Reutilizacion
Desarrollo Incremental
Desarrollo en Espiral
1. Definicion Caracteristicas Implantacion 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
En esta fase se programan los
requisitos especificados
haciendo uso de las estructuras
de datos diseñadas en la fase
anterior.
La programación es el proceso
que lleva de la formulación de
un problema de computación, a
un programa que se ejecute
produciendo los pasos
necesarios para resolver dicho
problema. Al programar,
tenemos que realizar
actividades como el análisis de
las condiciones, la creación de
algoritmos, y la implementación
de éstos en un lenguaje de
programación específico.
El tiempo que se pasa en diseñar
el producto en las primeras fases
del proceso puede evitar
problemas que serían más
costosos cuando el proyecto ya
estuviese en fase de desarrollo.
La documentación es muy
exhaustiva y si se une al equipo
un nuevo desarrollador, podrá
comprender el proyecto leyendo
la documentación.
Al ser un proyecto muy
estructurado, con fases bien
definidas, es fácil entender el
proyecto.
Ideal para proyectos estables,
donde los requisitos son claros y
no van a cambiar a lo largo del
proceso de desarrollo.
En muchas ocasiones, los
clientes no saben bien los
requisitos que necesitarán antes
de ver una primera versión del
software en funcionamiento.
Entonces, cambiarán muchos
requisitos y añadirán otros
nuevos, lo que supondrá volver
a realizar fases ya superadas y
provocará un incremento del
coste.
No se va mostrando al cliente el
producto a medida que se va
desarrollando, si no que se ve el
resultado una vez ha terminado
todo el proceso. Esto cual
provoca inseguridad por parte
del cliente que quiere ir viendo
los avances en el producto
Modelo o
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 del
software.
• Son iterativos:
construyen versiones
del software cada vez
mas completa.
• Se adactan bien:
• Los cambios de
requisitos del
producto.
• Especificaciones
parciales del producto.
Un buen ejemplo de un
modelo evolutivo seria
el software de
Windows.
Donde brinda
actualizaciones del
producto regularmente
para mejorar los
requerimientos de los
usuarios o corregir
errores del sistema.
· 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 noVisible: 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
mantenimiento.
2. Definicion Caracteristicas Implementacion Ventejas Desventajas
Desarrollo de
modelo Formal
Los métodos formales
surgieron como puntos
de vista
analíticos con los que es
posible verificar el
desarrollo de sistemas
mediante la lógica y las
matemáticas, lo que
aporta grandes
ventajas para
mejorar la calidad de
los programas y por
tanto la Ingeniería de
Software.
• Una ingeniería
del software
exitosa.
• Cambios en el
mercado.
• Ámbito limitado
de los métodos
formales.
• Escalabilidad
limitada de los
métodos
formales
• Se comprende
mejor el sistema.
• El sistema se
describe de manera
más precisa.
• Mayor calidad en el
software respecto
al cumplimiento de
las
especificaciones.
• Mayor
productividad.
• 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
Reutilizacion
Es el proceso de
creación de
sistemas de
software a partir
de un software
existente, en lugar
de tener que
rediseñar desde el
principio.
Especificaciones de
requerimientos
previamente concebidas
ü Diseños previamente
definidos (Estructuras de
datos, algoritmos, etc.)
ü Código probado y
depurado con anterioridad
ü Planes y casos de prueba
previamente utilizados
ü Personal cualificado
(aprovechamiento de la
experiencia de los
ingenieros de un proyecto a
otro)
ü Paquetes de software de
propósito general
Tiempos de desarrollos
cortos
-Disminución de errores
-Disminución de costos y
riegos ya que se reduce los
componentes a desarrollar
-Existe un aumento de la
confiabilidad ya que los
componentes a utilizar ya
fueron testeados y
utilizados en otro momento
previo al comienzo del
proyecto
Modelo puro:
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
componentes.
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.
3. Definicion Caracteriasticas Implementacion Ventajas Desventajas
Desarrollo
Incremental
es un proceso de
desarrollo de software
creado en respuesta a
las debilidades del
modelo tradicional de
cascada.
Básicamente este
modelo de desarrollo,
que no es más que un
conjunto de tareas
agrupadas en pequeñas
etapas repetitivas
Provee de soporte para
determinar la
efectividad de los
procesos y de la calidad
del producto.
Permite estudiar y
después mejorar y
ajustar el proceso para
el ambiente en
particular.
• En este modelo los usuarios no
tienen que esperar hasta que el
sistema completo se entregue para
hacer uso de él. El primer
incremento cumple los
requerimientos más importantes
de tal forma que pueden utilizar el
software al instante.
• Los usuarios pueden utilizar los
incrementos iniciales como
prototipos y obtener experiencia
sobre los requerimientos de los
incrementos posteriores del
sistema.
• Existe muy pocas probabilidades
de riesgo en el sistema. Aunque se
pueden encontrar problemas en
algunos incrementos, lo normal es
que el sistema se entregue sin
inconvenientes al usuario.
• Requiere de un cliente
involucrado durante todo el curso
del proyecto. Hay clientes que
simplemente no estarán
dispuestos a invertir el tiempo
necesario.
• El trato con el cliente debe
basarse en principios éticos y
colaboración mutua, más que
trabajar cada parte
independientemente,
defendiendo sólo su propio
beneficio.3
• La entrega de un programa que
es parcial pero funcional puede
hacer vulnerable al programa
debido a la falta de robustez en
su sistema, provocando que
agentes ajenos puedan interferir
con el correcto funcionamiento
del programa en sí.
Desarrollo en
Espiral
es un modelo de
proceso de software
evolutivo que conjuga la
naturaleza iterativa de
construcción de
prototipos con los
aspectos controlados y
sistemáticos del modelo
lineal secuencial.
Proporciona el potencial
para el desarrollo rápido
de versiones
incrementales del
software.
• Contiene una nueva
etapa que es el análisis de
riesgos, no incluida
anteriormente.
• Este modelo es el
indicado para desarrollar
software con diferentes
versiones actualizadas
como se hace con los
programas modernos de
PC´s.
• La ingeniería puede
desarrollarse a través del
ciclo de vida clásico o el
de construcción de
prototipos.
• El modelo en espiral
puede adaptarse y
aplicarse a lo largo de la
vida del software de
computadora.
• Como el software
evoluciona a medida que
progresa el proceso, el
desarrollador y el cliente
comprenden y reaccionan
mejor ante riesgos en
cada uno de los nivele
evolutivos.
• En la utilización de
grandes sistemas a
doblado la productividad.
• Resulta difícil
convencer a grandes
clientes de que el
enfoque evolutivo es
controlable.
• Debido a su elevada
complejidad no se
aconseja utilizarlo en
pequeños sistemas.
• Genera mucho tiempo
en el desarrollo del
sistema
• Modelo costoso
• Requiere experiencia
en la identificación de
riesgos