2. Introducción
Desde el principio de los tiempos, el ser humano
una sociedad organizada- ha creado “paradigmas”.
–en busca de
Un “paradigma” no es más que un conjunto de
compartidos dentro de los cuales yacen supuestos
compromisos
que permiten
crear un marco conceptual a partir
sentido y significado al mundo.
del cual se le da cierto
Por ello,
modelos
software
también dentro del mundo de la informática existen
y estipulaciones a seguir si deseamos desarrollar
funcional y practico.
3. Modelospara el desarrollo de software
• Si se quiere hacer algo
correctamente, es necesario
que se sigan reglas y
estipulaciones para hacerlo. Es
por ello que el “Paradigma
para el desarrollo de software”
nace de la agrupación de las
ideas
cómo
sobre
de la gente sobre el
construir programas y
encómo combinarlos
grandes sistemas de software.
4. «La crisis del software»
• El termino «crisis del software» fue creado
durante la primer conferencia sobre la
eningeniería
1967.
de software de la NATO
• Durante
«ciencia
las
de
primeras décadas de la
noslas computadoras»
enfrentábamos con la dificultad de escribir
programas útiles y eficientes en un rango
de tiempo definido.
5. «La crisis del software»
Las causas del la «crisis del software» fueron
ligadas a la complejidad
y
del desarrollo de
hardware software.
Esta crisis se manifestó de diferentes maneras:
• Los proyectos requerían de mayor presupuesto y tiempo
de lo establecido.
• El software no cumplía los requisitos, pues era
ineficiente y de baja calidad.
• Era difícil darle mantenimiento
era complicado de entender.
al software y el código
6. Modelospara el desarrollo de software
Es por ello que podemos
decir
para
que
el
el “Paradigma
desarrollo de
software” es un modelo
para
que
afrontar problemas
comparten
características comunes.
7. Modelospara el desarrollo de software
Existen varios paradigmas. La
estarea del ingeniero es ver cuál
el que se adecua a su problema a
resolver. En caso de no encontrar
uno exacto, el ingeniero puede
combinarlos entre ellos.
8. Modelos para el desarrollo de software
Existen varios modelos principales para el desarrollo de
software.
•
•
•
•
•
Modelo
Modelo
Modelo
Modelo
Modelo
cascada
Incremental
de desarrollo concurrente
espiral
de ensamblaje de componentes
9. Modelo cascada
Propuesto por Royce en 1970.
Es el paradigma más antiguo,
por lo que fue el más utilizado
durante la creación del modelo
estructurado.
11. Modelo cascada
Revisiones del ciclo de vida
Las «revisiones de ciclo de vida» deben de ser utilizadas para evaluar el
progreso y determinar si debe o no proceder a la siguiente fase de
desarrollo de software.
12. Modelo cascada
Sistemas precedentes
Para algunas categorías de sistemas intensivos de software, el paradigma
de cascada puede ser una buena opción.
• Este tipo de sistemas están los “sistemas precedentes”
• Un “sistema precedente” está caracterizado por:
• Arquitectura del sistema y un diseño de software maduro y capaz de
cumplir los requisitos.
• Equipos de sistemas de ingeniería y de desarrollo de software que
tengan buena comunicación y que tengan experiencia previa con
sistemas similares.
13. Ventajas
• Formaliza un marco para las fases de desarrollo de software
• Hace hincapié por adelantado en los requisitos de software
estables y en las actividades de diseño
• Produce los requisitos de software y documentación de diseño
durante las primeras fases
• Es un modelo de un solo paso y por lo tanto puede ser rápido
y de bajo costo cuando se utiliza en las condiciones adecuadas
14. Desventajas
• Su mayor ventaja también es su desventaja. Si algo ha salido
mal, no se puede volver atrás.
• Muchas veces el cliente no sabe lo que quiere, lo que puede
traer confusión y malentendidos al equipo,
pueden hacer cambios avanzado el proceso.
pues ya no se
• Pequeños errores que surgen al estar terminado el software
causa grandes problemas.
15. Modelo Incremental
• El paradigma de desarrollo de software incremental implica el
desarrollo de software en 'piezas' o incrementos. Por ello – a
diferencia del modelo cascada – no necesita una secuencia
lineal.
16. Modelo Incremental
• La idea principal está en el razonamiento en que algunas áreas
presentan problemas únicos a analizar, pero otras no,
entonces ¿Por qué retrasar el desarrollo de estas áreas?
• El proyecto se desarrolla características básicas y sencillas
primero, después avanza a las más complicadas poco a poco
hasta completar el modelo completo.
• La desventaja está en que los errores se detectan tarde y es
costoso corregirlos.
17. Ventajas
• Permite que el cliente se involucre mas en el desarrollo.
• El cliente se sentirá agradecido
partes operativas del software.
de la entrega temprana de
• El desarrollo del software es mas
modelo de cascada.
veloz en comparación con el
• En caso de que se detecte un
corregirse.
error en el sistema, puede
18. Desventajas
• Es difícil calcular el coste total del proyecto.
• Los errores en los requisitos se detectan tarde.
• Requiere metas claras para conocer el estado del proyecto.
• Este modelo no se recomienda para casos de sistemas de
tiempo real, de alto nivel de seguridad de procesamiento
distribuido y/o de alto índice de riesgos.
19. Modelo espiral
• Desarrollado en la década de 1980.
• El modelo espiral hace hincapié en prototipos
impulsados por riesgo.
• El análisis de riesgo se utiliza para identificar a los
candidatos de alto riesgo para la creación de prototipos. La
retroalimentación de los resultados de la creación de
prototipos controlados se evalúa y el conocimiento
obtenido se utiliza para mitigar los riesgos.
20. Modelo espiral
• Este proceso impulsado riesgo continúa hasta que se
comprendan los principales riesgos del desarrollo de software.
21. Modelo espiral
Sistemas sin precedentes
• Es un sistema para el que no existen ejemplos de diseño y los
requisitos y los riesgos todavía no se conocen.
• El modelo en espiral para el desarrollo de software es
especialmente apropiado para sistemas sin precedentes
(como en el departamento de defensa de Estados Unidos).
22. Ventajas
• Permite que se desarrolle un prototipo y que después el
sistema base se idealice sobre el mismo.
• Se adapta a cualquier numero de cambios durante cualquier
fase del proceso.
• Dado que el desarrollo del sistema se hace en pequeños
fragmentos, la estimación de costos es sencilla.
• Conforme el desarrollo se acerca al final, la experiencia del
cliente con el sistema crece, por lo que se pueden analizar las
necesidades del mismo a detalle.
23. Desventajas
• El desarrollo del sistema es tardado.
• Es un modelo costoso.
• Requiere experiencia para la identificación de riesgos.
24. Modelo por prototipos
La idea principal detrás de este
modelo
congelar
trata
es que en lugar de
un proyecto mientras se
de asentar los
requerimientos; se desarrolla un
prototipo con los puntos que se
tienen hasta el momento. Esto
permite comprender mas a
yfondo los requerimientos
necesidades.
25. Modelo por prototipos
El cliente –al usar el prototipo-
adquiere
mayor del
sentirlo» y
un entendimiento
sistema, pues «puede
verlo en acción.
Poco a poco, el sistema va
tomando forma.
Por ello, a este modelo también
se le llama «evolutivo».
26. Ventajas
• Perfecto cuando los usuarios estan embueltos en el desarrollo.
Pues permite adaptarlo a necesidades en las cuales no se
habia pensado.
• Aumenta el entendimiento que los usuarios tienen por el
sistema mientras el desarrollo avanza.
• Funcionalidades
facilmente.
olvidadas pueden ser identificadas
27. Desventajas
• Por su estilo, el sistema puede aumentar de tamaño
superar los planes originales.
hasta
• Puede llegar a ser mas tardado que otros modelos.
• Es mas complicado llevar un orden a comparación de
modelos.
otros
28. Modelo de ensamblaje de componentes
Incorpora características del
modelo espiral.
Es evolutivo por naturaleza, ya
que se identifican las clases
orientadas a objetos candidatas,
esto
datos
se hace examinando los
la
un
un
que se manejan por
de
–en
aplicación
algoritmo),
(por medio
las cuales
futuro- pueden ser reutilizadas
30. Ventajas
• El análisis de riesgo se hace de forma explicita y clara.
• Une los mejores elementos de varios modelos.
• Reduce los riesgos del proyecto.
• Incorpora objetivos de calidad.
• Integra el desarrollo con el mantenimiento.
31. Desventajas
• Genera mucho tiempo en el desarrollo del sistema.
• Modelo costoso.
• Genera mucho trabajo adicional. Cuando un sistema falla, se
pierde tiempo y presupuesto dentro de la empresa.
32. Modelo de desarrollo concurrente
• Es un modelo de tipo de red donde todas las personas actúan
simultáneamente desarrollando una serie de actividades
técnicas importantes, tareas y estados asociados a ellas.
• Una gran ventaja es que proporciona una imagen actualizada
del proyecto, pues no se restringe a una secuencia de sucesos.
También es excelente para proyectos en los que se conforman
grupos de trabajo independientes.
34. Ventajas
• Excelente para proyectos donde se conforman grupos de
trabajos independientes.
• Proporciona
proyecto.
una imagen exacta del estado actual de un
35. Desventajas
• Si no existen grupos
método.
de trabajo, no se puede trabajar este
• Si se cuenta con un solo grupo de trabajo incompetente, todo
el proyecto peligrara.
36. Conclusiones
El avance se da a partir de
aceptar ideas nuevas
expandir nuestros horizontes; de
El análisis correcto de los problemas que se tienen en frente es
la tarea de cualquier ingeniero que quiera tener éxito. Esto solo
puede ser alcanzado teniendo los conocimientos necesarios y
las ganas de aplicarlos.
Por algo existen los paradigmas en el desarrollo de software.
Han sido probados y funcionan.