CICLO DE VIDA DEL SOFTWARE
ELEMENTOS BASE DEL DESARROLLO DE SOFTWARE
Lo organicemos como lo organicemos, cualquier proceso de desarrollo de
software tiene más o menos los
siguientes elementos:
• REQUISITOS: toma de requisitos de alto nivel sobre qué tiene que hacer el
sistema que hay que
desarrollar.
• ANÁLISIS: revisión de los requisitos componiéndolos como un todo coherente,
revisando si existen
carencias o inconsistencias.
• DISEÑO: descripción de los diferentes componentes tecnológicos y cómo van a
interactuar entre ellos
• PROGRAMACIÓN / PARAMETRIZACIÓN: implementación de las diferentes
funcionalidades por medio de
lenguajes de programación o parametrización de paquetes o sistemas
preexistentes
• PRUEBAS: confirmación que los desarrollos no contienen errores (pruebas
unitarias), que el diseño es
completo y consistente (pruebas de integración) y que los requisitos y objetivos se
cumplen (pruebas
funcionales y de usuario).
• DESPLIEGUE: aunque en ocasiones se olvida, el despliegue y capacitación de los
usuarios también es parte
del ciclo de vida del software y debe ser tenido en cuenta dentro de su gestión.
La organización de estos elementos definen los diferentes modelos del ciclo de
vida del desarrollo de
software que se han ido utilizando a través del tiempo en las diferentes
organizaciones. Vamos a dar un
repaso a algunos de estos modelos.
CICLO DE VIDA “PRIMITIVO”
Aunque parezca increíble, más de un desarrollo se realiza en base a programar y
probar, sin una definición
clara de los objetivos o un diseño general de las diferentes piezas.
En muy pocas ocasiones da buen resultado y sólo es práctico en el caso de que el
usuario y el programador
sean la misma persona. En este desarrollo de tipo “personal” se puede encontrar
sistemas de macros en
Excel, desarrollos de aplicaciones en Access o pequeñas utilidades de
productividad personal, pero no es,
en general, un modelo aplicable a nivel empresarial
CICLO DE VIDA EN CASCADA
MODELO EN CASCADA
1. ANÁLISIS
El primer paso, denominado análisis, es la etapa de preparación de tu proyecto, es
decir, el punto de
partida en donde vas a plasmar cada detalle de la idea y tomar el impulso
necesario para desarrollarla.
Entonces, en esta fase del modelo de cascada, tu trabajo será determinar cuáles
son las necesidades y los
objetivos, para luego reunir todos los requisitos que se deben cumplir en el
desarrollo del software para
llevar a cabo todo el proceso.
Por lo general, esta también es la fase del modelo de cascada en la que debes
presentar tu propuesta del
proyecto si estás trabajando para un cliente. Y, en el caso de que tengas un trabajo
como freelance, no deja
de ser una buena práctica realizar esta propuesta y añadirla a tu portafolio de
trabajo.
2. DISEÑO
No hay dudas de que el diseño representa a una de las etapas preferidas del
modelo de cascada, ya que
es el momento en que te pondrás creativo y te convertirás en un arquitecto por
un rato, mientras diseñas y
realizas los primeros esbozos del resultado final del desarrollo de tu software.
En conclusión, durante esta fase del modelo de cascada, debes:
Definir la organización de la estructura y la de todos los elementos que necesitas
para el desarrollo de tu
software.
Describir cómo se relacionan cada uno de los elementos entre sí para que
funcionen de manera correcta,
teniendo siempre en cuenta el diseño de la interfaz.
3. IMPLEMENTACIÓN
Una vez que llegues a implementación, el desarrollo en cascada te exigirá realizar
una
traducción de todos los elementos del diseño que preparaste en la etapa previa al
lenguaje de
programación.
Posteriormente, tienes que integrar cada uno dentro del código y programación
del software,
realizando pruebas para verificar que no existan errores y dando forma poco a
poco a tu
producto terminado. ¡Y listo! Así dominarás esta fase del modelo de cascada.
4. VERIFICACIÓN
Durante la cuarta fase del modelo de cascada debes probar y ejecutar el código
final y verificar
su funcionamiento. Aquí también es necesario que compares tus resultados del
cierre con los
objetivos iniciales y compruebes si cumpliste con cada uno de ellos.
Y, por otro lado, te recomendamos que realices pruebas de cada uno de los
elementos que
hayas utilizado y que tomes en cuenta los comentarios que recibas si realizas
alguna encuesta o
presentas el resultado ante tu cliente, luego de completar el trabajo en cascada.
5. MANTENIMIENTO
Finalmente, una vez que ingreses en la quinta y última fase del modelo de
cascada, es momento
de analizar los resultados del paso anterior y realizar los cambios pertinentes (si es
que son
necesarios), para dar por concluido el proyecto.
Llegado este momento, es probable que tengas que regresar a esta fase del
modelo en cascada
más de una vez, cada cierto tiempo, para comprobar que se adapta a los cambios
de su
entorno.
Y este proceso no significa que hayas fallado al aplicar la metodología de la
cascada, sino
que con lo rápido que se dan los cambios en la tecnología hoy en día, es esencial
que mantengas
tu software constantemente actualizado para que siga siendo relevante.
VENTAJAS DEL MODELO EN CASCADA
• Te ayuda a llevar un orden y organizar tu trabajo.
• Es muy útil si no tienes demasiada experiencia.
• Funciona de manera óptima en la mayoría de los dispositivos.
• Es sencillo y fácil de seguir.
• Te brinda las herramientas necesarias para tener claridad en tus objetivos desde
el comienzo
del proyecto.
• Al encontrar un problema, ofrece la oportunidad de detectar la fase del modelo
en cascada
en la que surgió y así arreglarlo lo más rápido posible.
DESVENTAJAS
• Si estás realizando un proyecto grande o muy complejo, puede que sea más
difícil dividirlo en fases
ordenadas, por lo que este sistema puede no ser el más adecuado.
• Debido a la forma de trabajo lineal, tienes menos tiempo para concluir cada una
de las fases del
modelo en cascada.
• No puedes pasar a la etapa siguiente hasta que completes la anterior.
• En ocasiones, los fallos no se detectan hasta la última fase del desarrollo, por lo
que, para resolverlo
tendrás que regresar a las fases anteriores y repetirlas o modificarlas.
MODELO INTERACTIVO
Es un modelo derivado del ciclo de vida en cascada. Este modelo busca reducir el
riesgo que surge entre las
necesidades del usuario y el producto final por malos entendidos durante la etapa
de recogida de
requisitos.
Consiste en la iteración de varios ciclos de vida en cascada. Al final de cada
iteración se le entrega al cliente
una versión mejorada o con mayores funcionalidades del producto. El cliente es
quien después de cada
iteración evalúa el producto y lo corrige o propone mejoras. Estas iteraciones se
repetirán hasta obtener un
producto que satisfaga las necesidades del cliente.
VENTAJAS Y DESVENTAJAS
VENTAJAS
• Una de las principales ventajas que ofrece este modelo es que no hace falta que
los
requisitos estén totalmente definidos al inicio del desarrollo, sino que se pueden ir
refinando
en cada una de las iteraciones.
• Igual que otros modelos similares tiene las ventajas propias de realizar el
desarrollo en
pequeños ciclos, lo que permite gestionar mejor los riesgos, gestionar mejor las
entregas…
INCONVENIENTES
• La primera de las ventajas que ofrece este modelo, el no ser necesario tener los
requisitos
definidos desde el principio, puede verse también como un inconveniente ya que
pueden
surgir problemas relacionados con la arquitectura.
MODELO EVOLUTIVO ESPIRAL
PLANIFICACIÓN
• Incluye la estimación del coste, el calendario y los recursos para la
iteración.
• Implica también la comprensión de los requisitos del sistema para la
comunicación continua entre el analista de requerimientos y el cliente.
ANÁLISIS DEL RIESGO
• La identificación de los riesgos potenciales se realiza mientras se planifica y
finaliza la estrategia de mitigación de riesgos.
INGENIERÍA
• Incluye la codificación, pruebas y el despliegue del software.
EVALUACIÓN
• Evaluación del software por parte del cliente.
Además, incluye la identificación y el seguimiento de riesgos tales como los
retrasos en los plazos y los sobrecostes.
¿CUÁNDO IMPLEMENTAR MODELO ESPIRAL ?
• El proyecto es grande.
• Se quiere que las liberaciones de software sean frecuentes.
• Aplica la creación de un prototipo.
• Es primordial un control de riesgos y costos.
• En proyectos catalogados de riesgo medio-alto y alto.
• Los requisitos son poco claros y complejos.
• Hay un alto grado de cambios y estos pueden aparecer en cualquier
momento.
VENTAJAS
• La funcionalidad adicional o los cambios se pueden hacer en una etapa
posterior.
• La estimación del coste se hace fácil, ya que la construcción del prototipo se
hace en pequeños fragmentos.
• El desarrollo continuo o repetido ayuda en la gestión de riesgos.
• El desarrollo es rápido y las características se añaden de forma sistemática.
• Siempre hay espacio para atender los comentarios de los clientes.
DESVENTAJAS
• Riesgo de no cumplir con la planificación o el presupuesto.
• Funciona mejor para proyectos grandes, aunque en estos también requiera de
una estricta evaluación de riesgos.
• Para su buen funcionamiento, el protocolo del modelo en espiral debe ser
seguido estrictamente.
• Se genera más documentación al tener fases intermedias.
• No es aconsejable para proyectos pequeños, la ratio coste beneficio no es
rentable.
MODELO DE CONSTRUCCIÓN DE PROTOTIPOS
En INGENIERIA DE SOFTWARE -> el Modelo de prototipos
pertenece a los modelos de desarrollo evolutivo.
El prototipo debe ser construido en poco tiempo, usando los
programas adecuados y no se debe utilizar mucho dinero
pues a partir de que este sea aprobado nosotros podemos
iniciar el verdadero desarrollo del software.
El diseño rápido se centra en una representación de aquellos
aspectos del software que serán visibles para el cliente o el
usuario final. Este diseño conduce a la construcción de un
prototipo, el cual es evaluado por el cliente para una
retroalimentación; gracias a ésta se refinan los requisitos del
software que se desarrollará. La interacción ocurre cuando el
prototipo se ajusta para satisfacer las necesidades del cliente.
Esto permite que al mismo tiempo el desarrollador entienda
mejor lo que se debe hacer y el cliente vea resultados a corto
plazo.
ETAPAS
* PLAN RÁPIDO
* MODELADO, DISEÑO RÁPIDO
* CONSTRUCCIÓN DEL
PROTOTIPO
* DESARROLLO, ENTREGA Y
RETROALIMENTACIÓN
* COMUNICACIÓN
VENTAJAS
• Este modelo es útil cuando el cliente conoce los objetivos generales para el
software, pero no
identifica los requisitos detallados de entrada, procesamiento o salida.
• También ofrece un mejor enfoque cuando el responsable del desarrollo del
software está inseguro
de la eficacia de un algoritmo, de la adaptabilidad de un sistema operativo o de la
forma que
debería tomar la interacción humano-máquina.
DESVENTAJAS
• En horas de desarrollar rápidamente el prototipo, el desarrollador suele
tomar algunas decisiones de implementación poco convenientes (por
ejemplo, elegir un lenguaje de programación incorrecto porque proporcione
un desarrollo más rápido). Con el paso del tiempo, el derrollador puede
olvidarse de la razón que le llevó a tomar tales decisiones, con lo que se corre
el riesgo de que dichas elecciones pasen a formar parte del sistema final.
CASOS PRÁCTICOS
Dados los siguientes casos prácticos implementar un tipo de desarrollo de
software adecuado para el
mismo. Justificar su elección y detallar brevemente el proceso que se realizaría en
cada fase.
CASO PRACTICO 1
Aplicación de gestión de flota de transporte
La empresa de logística se acerca a nuestro equipo de desarrollo de software, y
nos comunica el objetivo de
querer tener un software que permita:
• Rastrear a los camiones en ruta.
• Conocer su carga y datos personales del conductor.
• Ver los kilómetros recorridos.
• Cantidad de litros de combustibles utilizado en el recorrido.
Se trata de un proyecto a largo plazo que representa un gran gasto para la
empresa.
CASOS PRÁCTICO 2
Sistema web de ventas de suplementos.
Una empresa de suplementos recién inicia su estructura y pide a su equipo de
programadores
que le desarrollen una pagina web para :
• Mostrar los suplementos deportivos
• Los suplementos deben estar separados por categoría y deben tener el precio
actualizado con
sus composiciones y nombre genéricos
• Cada suplemento tendrá un valor en pesos
• Debe mostrar promociones de cada día
• Stock de suplementos.
Se trata de un proyecto mediano y no de largo plazo.
CASO PRACTICO 3
Usted es desarrollador y tiene un Drugstore ,por lo tanto decide desarrollar un
programa con las siguientes funciones
• Control de mercadería
• Stock de mercadería
• Precio de los productos
• Ganancias por día
• Ganancias semanales
• Ganancias mensuales
Se trata de un proyecto personal.
CASO PRACTICO 4
Una empresa de productos tecnológicos, llama a su equipo de programadores y
solicita de suma urgencia realizar una pagina web con las siguientes funciones
• Mostrar los productos disponibles
• Mostrar los precios de cada producto
• Los productos deben estar separados por categorías.
• Información de la empresa como ser la visión, misión.
• Reflejados la ubicación en una mapa
Se trata de un proyecto que requiere de entregas inmediatas y rapidas.