Está en la página 1de 81

CONCEPTOS DE SOFTWARE DEVELOPMENT

LIFE CYCLE (SDLC) Y SOFTWARE PRODUCT


LIFE CYCLE (SPLC).
CICLO DE VIDA DEL DESARROLLO DE
SOFTWARE

• El SDLC simplemente
describe todas las tareas que
son necesarias para crear y
desplegar una aplicación de
software, reduciendo el
desperdicio de recursos y
aumentando la eficiencia.
• La supervisión que se incluye en
el SDLC hace que las empresas
puedan comprobar que los plazos
y los presupuestos se cumplen y
que el software sigue siendo una
inversión factible.
• A menudo, el SDLC se describe
como un aprovechamiento de los
enfoques ágiles o de cascada, y lo
cierto es que muchas empresas
optan por utilizar una combinación
de ambas
FASES SDLC

• Recopilación y análisis de requisitos


• Diseño
• Implementación o codificación
• Pruebas
• Despliegue
• Mantenimiento
MODELOS DE CICLO DE VIDA DE
DESARROLLO DE SOFTWARE

• Un modelo de ciclo de vida de software es


una representación descriptiva del ciclo de
desarrollo de software. Los modelos
SDLC pueden tener un enfoque diferente,
pero las fases básicas y la actividad siguen
siendo las mismas para todos los modelos.
MODELO DE CASCADA

• Modelo de cascada es el primer modelo que se


utiliza en SDLC. También se conoce como modelo
secuencial lineal.

• En este modelo, el resultado de una fase es la


entrada para la siguiente fase. El desarrollo de la
siguiente fase comienza solo cuando se completa la
fase anterior.
Primero, se realiza la Una vez que se congela el requisito, solo
se puede iniciar el diseño del sistema.
recopilación y el
Aquí, el documento SRS creado es el
análisis de requisitos. resultado de la fase de Requisitos y actúa
como una entrada para el Diseño del
Sistema.
• En la arquitectura y el diseño
de software de diseño de
sistemas, se crean documentos
que actúan como entrada para
la siguiente fase, es decir,
implementación y codificación.
• En la fase de implementación,
se realiza la codificación y el
software desarrollado es la
entrada para la siguiente fase,
es decir, la prueba.
• En la fase de prueba, el código desarrollado se prueba
a fondo para detectar los defectos en el software. Los
defectos se registran en la herramienta de seguimiento
de defectos y se vuelven a probar una vez reparados.
Las pruebas de registro de errores, repetición de
pruebas y regresión continúan hasta que el software
está en estado de puesta en marcha.
• En la fase de implementación, el código
desarrollado se mueve a producción después
de que el cliente da la aprobación.
• Los desarrolladores que se encuentran bajo
mantenimiento resuelven cualquier
problema en el entorno de producción.
VENTAJAS DEL MODELO DE
CASCADA:

El modelo Waterfall es el modelo simple de


fácil comprensión y es aquel en el que todas las
fases se realizan paso a paso.

Los entregables de cada fase están bien


definidos, y esto no genera complejidad y hace
que el proyecto sea fácilmente manejable.
DESVENTAJAS DEL MODELO
WATERFALL

• El modelo de cascada requiere mucho


tiempo y no se puede utilizar en
proyectos de corta duración, ya que en
este modelo no se puede iniciar una
nueva fase hasta que se complete la
fase en curso.
• El modelo de cascada no se puede utilizar para
los proyectos que tienen requisitos inciertos o
en los que el requisito sigue cambiando, ya que
este modelo espera que el requisito sea claro en
la fase de recopilación y análisis de requisitos y
cualquier cambio en las etapas posteriores
conduciría a un costo más alto a medida que el
serían necesarios cambios en todas las fases.
MODELO EN FORMA DE V

• V- Modelo también se conoce como modelo de


verificación y validación.
• En este modelo, la verificación y validación van de la
mano, es decir, el desarrollo y las pruebas van en
paralelo. El modelo V y el modelo en cascada son los
mismos, excepto que la planificación y las pruebas
comienzan en una etapa temprana en V-Model.
ANÁLISIS DE REQUISITOS

• En esta fase, toda la información


requerida se recopila y analiza.
Las actividades de verificación
incluyen la revisión de los
requisitos.
DISEÑO DEL SISTEMA

• Una vez que el requisito está claro,


se diseña un sistema, es decir, la
arquitectura, los componentes del
producto se crean y documentan en
un documento de diseño.
DISEÑO DE ALTO NIVEL

• El diseño de alto nivel define la


arquitectura / diseño de módulos.
• Define la funcionalidad entre los
dos módulos.
DISEÑO DE BAJO NIVEL:

• El diseño de bajo nivel define la arquitectura / diseño de


componentes individuales.
CODIFICACIÓN

• El desarrollo del código se realiza en esta


fase.
B) FASE DE VALIDACIÓN

(i) Prueba unitaria:

• Examen de la unidad se realiza utilizando los casos


de prueba unitarios que están diseñados y se realiza
en la fase de diseño de bajo nivel. Las pruebas
unitarias las realiza el propio desarrollador. Se
realiza en componentes individuales que conducen
a la detección temprana de defectos.
(II) PRUEBA DE INTEGRACIÓN

• Pruebas de integración se realiza


utilizando casos de prueba de integración
en la fase de diseño de alto nivel.
• La prueba de integración es la prueba
que se realiza en módulos integrados. Lo
realizan probadores.
PRUEBA DEL SISTEMA

• Prueba del sistema se realiza en la fase


de Diseño del Sistema. En esta fase, se
prueba el sistema completo, es decir,
se prueba toda la funcionalidad del
sistema.
PRUEBA DE ACEPTACIÓN

• Las pruebas de aceptación están


asociadas con la fase de análisis
de requisitos y se realizan en el
entorno del cliente.
VENTAJAS DEL MODELO V

• Es un modelo sencillo y de fácil comprensión.


• El enfoque del modelo V es bueno para proyectos
más pequeños en los que el requisito está definido y
se congela en la etapa inicial.
• Es un modelo sistemático y disciplinado que da
como resultado un producto de alta calidad.
DESVENTAJAS DEL MODELO V

• El modelo en forma de V no es bueno para


proyectos en curso.
• El cambio de requisitos en la etapa posterior
costaría demasiado.
MODELO DE PROTOTIPO

• El modelo prototipo es un
modelo en el que se
desarrolla el prototipo antes
que el software real.
• Los modelos de prototipos tienen capacidades
funcionales limitadas y un rendimiento
ineficiente en comparación con el software
real. Las funciones ficticias se utilizan para
crear prototipos. Este es un mecanismo
valioso para comprender las necesidades de
los clientes.
• Los prototipos de software se crean antes que el
software real para obtener comentarios valiosos del
cliente.
• Se implementan las retroalimentaciones y el cliente
vuelve a revisar el prototipo para detectar cualquier
cambio.
• Este proceso continúa hasta que el cliente acepta el
modelo.
• Una vez que se realiza la
recopilación de requisitos, se crea el
diseño rápido y se construye el
prototipo que se presenta al cliente
para su evaluación.
• Los comentarios del cliente y los requisitos
refinados se utilizan para modificar el
prototipo y se presentan nuevamente al cliente
para su evaluación. Una vez que el cliente
aprueba el prototipo, se utiliza como requisito
para crear el software real. El software real se
crea utilizando el enfoque del modelo
Waterfall.
VENTAJAS DEL MODELO DE
PROTOTIPO

• El modelo de prototipo reduce el costo


y el tiempo de desarrollo ya que los
defectos se encuentran mucho antes.
• En la fase de evaluación se puede
identificar una característica o
funcionalidad que falta o un cambio en
el requisito y se puede implementar en
el prototipo refinado.
• La participación de un cliente desde la
etapa inicial reduce cualquier
confusión en el requisito o
comprensión de cualquier
funcionalidad.
DESVENTAJAS DEL MODELO DE
PROTOTIPO

• Dado que el cliente está involucrado en cada fase,


el cliente puede cambiar el requisito del producto
final, lo que aumenta la complejidad del alcance y
puede aumentar el tiempo de entrega del producto.
MODELO EN ESPIRAL

• El modelo en espiral incluye enfoque iterativo y prototipo.

• Las fases del modelo en espiral se siguen en las iteraciones. Los


bucles en el modelo representan la fase del proceso SDLC, es
decir, el bucle más interno es de recopilación y análisis de
requisitos que sigue a la planificación, el análisis de riesgos, el
desarrollo y la evaluación. El siguiente ciclo es el diseño, luego
la implementación y luego las pruebas.
EL MODELO EN ESPIRAL TIENE
CUATRO FASES:

1. Planificación
2. Análisis de riesgo
3. Ingeniería
4. Evaluación
MODELO ESPIRAL
(I) PLANIFICACIÓN:

• La fase de planificación incluye la recopilación de


requisitos en la que toda la información requerida
se recopila del cliente y se documenta.
• Se crea un documento de especificación de
requisitos de software para la siguiente fase.
(II) ANÁLISIS DE RIESGO:

• En esta fase, se selecciona la mejor


solución para los riesgos involucrados y
el análisis se realiza mediante la
construcción del prototipo.
POR EJEMPLO

• El riesgo que implica acceder a los datos


desde una base de datos remota puede ser que
la velocidad de acceso a los datos sea
demasiado lenta.
• El riesgo se puede resolver construyendo un
prototipo del subsistema de acceso a datos.
(III) INGENIERÍA:

• Una vez que se realiza el análisis de


riesgo, se realizan la codificación y
las pruebas.
(IV) EVALUACIÓN:

• El cliente evalúa el sistema desarrollado y


planifica la siguiente iteración.
VENTAJAS DEL MODELO EN ESPIRAL

• El análisis de riesgos se realiza ampliamente


utilizando los modelos prototipo.
• Cualquier mejora o cambio en la funcionalidad
se puede realizar en la siguiente iteración.
DESVENTAJAS DEL MODELO EN
ESPIRAL

• El modelo en espiral es el más adecuado solo para


proyectos grandes.
• El costo puede ser alto, ya que puede requerir una
gran cantidad de iteraciones, lo que puede llevar a
un mayor tiempo para llegar al producto final.
MODELO INCREMENTAL ITERATIVO

• El modelo incremental iterativo divide el producto


en pequeños trozos.
MODELO INCREMENTAL
• Se decide e implementar la característica a
desarrollar en la iteración.
• Cada iteración pasa por las fases, a saber,
análisis de requisitos, diseño, codificación y
pruebas. No se requiere una planificación
detallada en las iteraciones.
• Una vez que se completa la iteración, un
producto se verifica y se entrega al cliente
para su evaluación y comentarios. Los
comentarios del cliente se implementan en
la siguiente iteración junto con la función
recién agregada.
• Por lo tanto, el producto aumenta en
términos de características y una vez que se
completan las iteraciones, la compilación
final contiene todas las características del
producto.
FASES DEL MODELO DE DESARROLLO
ITERATIVO E INCREMENTAL

• Fase de comienzo
• Fase de elaboración
• Fase de construcción
• Fase de transición
(I) FASE DE INICIO

• La fase de inicio incluye


el requisito y el alcance
del Proyecto.
(II) FASE DE ELABORACIÓN:

• En la fase de elaboración, se entrega la


arquitectura de trabajo de un producto
que cubre el riesgo identificado en la fase
de inicio y también cumple los requisitos
no funcionales.
(III) FASE DE CONSTRUCCIÓN

• En la fase de Construcción, la
arquitectura se completa con el
código que está listo para ser
implementado y se crea a través del
análisis, diseño, implementación y
prueba del requisito funcional.
(IV) FASE DE TRANSICIÓN

• En la fase de transición, el producto se


implementa en el entorno de
producción.
V E N TA J A S D EL M O D E L O I T E RAT I V O E
I N C R EM E N TA L:

• Cualquier cambio en el requisito se


puede realizar fácilmente y no tendría
ningún costo, ya que existe la
posibilidad de incorporar el nuevo
requisito en la próxima iteración.
VENTAJAS DEL MODELO ITERATIVO E
INCREMENTAL:

• El riesgo se analiza e identifica en las iteraciones.


• Los defectos se detectan en una etapa temprana.
• Como el producto se divide en trozos más
pequeños, es fácil de administrar el producto.
DESVENTAJAS DEL MODELO
ITERATIVO E INCREMENTAL

• Se requieren requisitos y comprensión


completos de un producto para
descomponerse y construir de manera
incremental.
MODELO DE BIG BANG

• Big Bang Model no tiene ningún proceso


definido. El dinero y los esfuerzos se
combinan cuando la entrada y la salida
llegan como un producto desarrollado que
puede ser o no lo mismo que lo que necesita
el cliente.
MODELO BIG BANG
• Big Bang Model no requiere mucha
planificación y programación.
• El desarrollador realiza el análisis y la
codificación de requisitos y desarrolla
el producto según su comprensión.
• Este modelo se utiliza solo para proyectos
pequeños. No hay un equipo de pruebas y
no se realizan pruebas formales, y esto
podría ser una causa del fracaso del
proyecto.
VENTAJAS DEL MODELO BIG BANG:

• Es un modelo muy simple.

• Se requiere menos planificación y programación.

• El desarrollador tiene la flexibilidad de crear su propio


software.
DESVENTAJAS DEL MODELO BIG
BANG

• Los modelos Big Bang no se pueden utilizar


para proyectos grandes, en curso y
complejos.
• Alto riesgo e incertidumbre.
MODELO ÁGIL

• Agile Model es una combinación del


modelo iterativo e incremental. Este modelo
se centra más en la flexibilidad durante el
desarrollo de un producto que en los
requisitos.
• En Agile, un producto se divide en pequeñas
compilaciones incrementales. No se desarrolla
como un producto completo de una sola vez.
Cada compilación se incrementa en términos de
características. La siguiente compilación se basa
en la funcionalidad anterior.
• En iteraciones ágiles se denominan sprints.
Cada sprint dura de 2 a 4 semanas. Al final
de cada sprint, el propietario del producto
verifica el producto y, después de su
aprobación, se lo entrega al cliente.
• Los comentarios de los clientes se toman
para mejorar y sus sugerencias y mejoras se
trabajan en el siguiente sprint. Las pruebas
se realizan en cada sprint para minimizar el
riesgo de fallas.
VENTAJAS DEL MODELO ÁGIL

• Permite más flexibilidad para adaptarse a los


cambios.
• La nueva función se puede agregar fácilmente.
• Satisfacción del cliente, ya que los comentarios y
sugerencias se toman en cada etapa.
DESVENTAJAS:

• Falta de documentación.
• Agile necesita recursos experimentados y
altamente calificados.
• Si un cliente no tiene claro exactamente cómo
quiere que sea el producto, el proyecto fracasará.
• La adherencia a un ciclo de vida
adecuado es muy importante
para la finalización exitosa del
Proyecto. Esto, a su vez, facilita
la gestión.
• Los diferentes modelos de ciclo de vida de
desarrollo de software tienen sus propios pros y
contras. El mejor modelo para cualquier proyecto
se puede determinar mediante factores como el
requisito (si es claro o no), la complejidad del
sistema, el tamaño del proyecto, el costo, la
limitación de habilidades, etc.
• En caso de un requisito poco claro,
es mejor utilizar los modelos Spiral
y Agile, ya que el cambio requerido
puede adaptarse fácilmente en
cualquier etapa.
• El modelo Waterfall es un modelo básico y
todos los demás modelos SDLC se basan
únicamente en eso.
ACTIVIDAD/TAREA

• Mapa mental
relacionado con el tema

También podría gustarte