Software
Es el conjunto conformado por los programas, la documentación y la configuración necesaria para que estos programas funcionen adecuadamente.
Ciclo de vida del software
Describe el desarrollo de software desde la fase inicial hasta la fase final, proponiendo etapas que sirven como referencia para realizar este proceso. Las fases que conforman el ciclo de vida son:
Preanálisis
Análisis
Diseño
Desarrollo
Pruebas
Implantación
Mantenimiento
El modelo en cascada
También llamado ciclo de vida clásico o tradicional, es el modelo más antiguo cuya propuesta de trabajo se fundamenta en un proceso ordenado y secuencial donde el producto de cada etapa, es el insumo para la etapa posterior. Las características principales de este modelo son:
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjjx7AzVvk7AlZdCTA0hYIvZdT-maFFhTqxS0PL9NVPd_vJb6830aEOoz2Ula7Lj9-_jzuR0VaH-gq4g7jboj75dB7ISE3HSDIs0cMDSF5MlbCuznnkxTqULGGwySd9c3PB_QQzB25_a3bZ/s640/Cascada.jpg)
Se recomienda para el desarrollo de productos de gran tamaño cuyo tiempo de entrega sea largo.
No se requiere demasiada experiencia por parte del equipo de trabajo
El inicio de una etapa debe esperar la finalización de la etapa anterior
La documentación del proceso realizado, se produce en cada etapa
Se pueden presentar iteraciones entre las etapas del desarrollo, pero resultan costosas e implican repetir el trabajo.
Cuando se trata de nuevos desarrollos, los requisitos del producto deben estar bien definidos y ser estables.
Si se trata de una adaptación o una mejora de un producto existente, los requisitos deben entenderse de manera razonable.
Un error encontrado en la etapa de pruebas, conduce al rediseño del producto
Los primeros resultados se obtienen después de un tiempo considerable
El modelo en V
Se considera como una versión mejorada del modelo en cascada y por tanto, conserva las características de secuencialidad y organización. El modelo en V fundamenta su enfoque en la minimización de riesgos, la mejora de calidad, la reducción total de gastos y el perfeccionamiento de la comunicación entre los participantes del proyecto de desarrollo de software. Además, incorpora procesos de verificación y validación. Las características de este modelo son:
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg5ZBp7cQzpyfexyLP2iMLImIVKd86kzrUxHIh-m6nEDcvXOQGbF3Ob00W0Wys9WSwWMJHTGZCHe0YE-GRjamZtWJOA00mf4sU5bJvs-O9xefP51ysSeINZT9e9a8rTxigpyikcha2p4Ych/s640/V.jpg)
Se recomienda para el desarrollo de productos pequeños con equipos de trabajo de hasta cinco integrantes.
Ideal para los analistas que no han programado siguiendo un modelo
El inicio de una etapa debe esperar la finalización de la etapa anterior
La documentación del proceso realizado, se produce en cada etapa
Contiene etapas de retroalimentación para facilitar correcciones
El modelo no contempla la posibilidad de retornar a etapas inmediatamente anteriores, situación que en la realidad puede ocurrir.
Las pruebas comienzan a efectuarse después de la implantación, esto puede conducir a un retroceso de todo un proceso que costó tiempo y dinero.
Prototipos
Este
modelo también se ha llamado evolutivo, se fundamenta en el desarrollo de un
producto inicial que se presenta al usuario para obtener su aprobación y se
perfecciona, a través de diferentes versiones, hasta obtener el producto
adecuado. El modelo por prototipo se caracteriza por:
- Es
un modelo menos formal de desarrollo
- Se
recomienda para el desarrollo de productos pequeños o de tamaño medio
- Útil
cuando se desconocen los requerimientos del producto o son poco estables
- Proporciona rapidez en el proceso de desarrollo
- Conveniente
en desarrollos que requieren probar arquitecturas y tecnologías
- La
posibilidad de establecer el número de iteraciones necesarias para obtener el
producto definitivo, es mínima.
- La
documentación del proceso se realiza sobre la versión final del producto
- A
medida que avanza el proceso, incorporar cambios en los prototipos se convierte
en una tarea difícil y costosa.
- La
técnica de los prototipos se puede implementar dentro de cualquier modelo de
proceso.
Espiral
Se
trata de una propuesta que combina las propiedades de los modelos cascada y
prototipos. Se fundamenta en un proceso de desarrollo en el cual se hacen
entregas del producto -cada una más evolucionada o completa que la anterior-
teniendo en cuenta los riesgos que pueden afectar el proceso. Cada ciclo del
espiral representa una etapa del ciclo de vida del software. Las características principales del modelo en espiral son:
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgQNAWaugh8z4T2XbnraC5RSV6xycMU6pl51VDd7cxPwoVUlpY9YtvHQERxrZyG_CS2QqcPf9vaSKt4D9GrNmghuU5-5NCEojsYpH3J1hUTDBBHRxkngMcOHzy_J00UNdljUSAqtLF2jKkn/s640/Espiral.JPG)
- Es un enfoque acertado para el desarrollo de software a
gran escala
- Cada iteración incluye definición de objetivos,
evaluación y reducción de riesgos, desarrollo y validación y planificación.
- Exige cuidado con el tratamiento de los riesgos que se
presentan en el proceso
- Requiere habilidad para evaluar el riesgo y resolverlo
efectivamente
- Si se pasa por alto un riesgo, surgirán dificultades en
el proceso
- El producto evoluciona conforme avanza el proceso de
desarrollo
Desarrollo Rápido de Aplicaciones (DRA)
El modelo DRA es una versión que integra las
características de los modelos cascada y prototipos, añadiendo velocidad de
desarrollo. Propone la división del proyecto en módulos que son desarrollados
por cada equipo de trabajo y luego se integran para configurar el producto
definitivo.
- Ofrece flexibilidad al proceso de desarrollo
- Requiere el compromiso de los desarrolladores y los
clientes
- Los requisitos del producto deben ser comprendidos desde
el inicio
- Aquellos productos de software que se puedan dividir en
módulos, cuyo tiempo de desarrollo no exceda los tres meses, pueden abordarse
con este modelo.
- Resalta el uso de componentes de software existente
- Apoya la construcción del producto con la generación
automática de código
Modelo incremental
Combina
elementos del modelo tradicional aplicado en forma iterativa. Este modelo
emplea secuencias lineales escalonadas que proporcionan incrementos del
producto.
- Requiere
de la planeación del desarrollo del producto de acuerdo con las prioridades de
funcionalidad establecidas por el cliente.
- Requiere
poco personal para el desarrollo de los incrementos iniciales, pero se puede
vincular nuevo personal si los incrementos así lo exigen.
- El
primer incremento es un producto que incorpora las funcionalidades prioritarias
completamente funcionales.
- La
evaluación del incremento, por parte del cliente, origina un plan para el
desarrollo del incremento siguiente.
- Cada
incremento integra nuevas funcionalidades al producto
Modelo de proceso de software
Los seis modelos analizados anteriormente, son marcos de trabajo que guían el proceso de desarrollo de un producto software, es decir son modelos de proceso de software. Obsérvese que cada uno de ellos aplica un enfoque particular.
Ingeniería del software
Disciplina de la ingeniería que comprende
todos los aspectos de la producción de software.
Fuentes
PRESSMAN, Roger. Ingeniería del software, un enfoque práctico. Sexta edición. Editorial McGrawHill.
SOMMERVILLE, Ian. Ingeniería del software. Editorial Pearson. 2005.