Professional Documents
Culture Documents
Tics
Análisis de Requerimientos
El equipo de desarrollo se reúne con el Cliente para entender la problemática y lo
que se espera que resuelva “el software”. El entregable esperado en esta etapa es
un documento que concentre los REQUERIMIENTOS DEL USUARIO.
Especificación
Considerando los Requerimientos, se genera una especificación de la “funcionalidad”
a ser incluida. Además establece una metodología de desarrollo y una estimación de
tiempos y costos.
Diseño
Tomando la especificación funcional, los diseñadores generan el diseño detallado y la
arquitectura general del software, así como la interfaz para el usuario.
Implementación
Basados en el diseño, los programadores codifican todos los componentes
relacionados.
Integración
Los componentes y módulos se combinan y prueban.
Jhonis Bermudez
Tics
Mantenimiento
Una vez aceptado el producto original, cualquier modificación posterior se considera
como mantenimiento.
Retiro
Cuando el producto es eliminado.
Mantenimiento de Software
Tipos de actividades durante el mantenimiento de software:
Corregir errores (mantenimiento correctivo)
Adaptación (revisión, funciones)
Perfectivo (mejoras o modificaciones)
Preventivo (reingeniería)
Problemas en el mantenimiento
Es difícil o imposible seguir el proceso de evolución del software a través de
varias versiones. Los cambios no están documentados adecuadamente.
Es muy difícil entender el programa de “alguien” más.
Ese “alguien” muy a menudo no se encuentra para explicarlo, debido a la
rotación de personal.
La documentación no existe o es inadecuada.
Mucho software no está diseñado para el cambio.
utilizando este ciclo de vida fallan por no haber entendido los requerimientos del
usuario (documentos ambiguos y difíciles de leer) y por lo tanto, generando un
producto que el cliente no necesita y no va a utilizar. Otro problema con este ciclo de
vida es que ignora que los requerimientos no son estáticos sino que cambian
rápidamente y que el producto generado debe irse ajustando a dichos cambios.
A fin de garantizar que los requerimientos sean claros y que el producto se ajuste a
cambios en éstos, se han creado otros ciclos de vida como los siguientes:
Prototipo rápido
Incremental
Evolutivo
Espiral
Acorde con Craig Larman (2005) el ciclo de vida iterativo y evolutivo consiste de una
serie de iteraciones cortas y fijas en duración (entre dos y seis semanas). Al final de
cada iteración se tiene una parte del producto que se ha probado e integrado a la
anterior. Cada iteración a su vez, sigue las fases del ciclo de cascada. En las
primeras iteraciones se buscará implementar los requerimientos centrales del
sistema o los que impliquen mayor riesgo.
Ya que las iteraciones tienen duración fija, las fechas de entrega son inamovibles así
que si no se puede cumplir con los requerimientos establecidos, se cambiará el
alcance dejando requerimientos para una iteración posterior.
Los principales beneficios de este tipo de desarrollo son: [Larman, 2005]:
Menor probabilidad de que el proyecto falle.
Mayor productividad.
Mitigación de riesgos en iteraciones tempranas.
Progreso visible en un corto tiempo.
Retroalimentación oportuna.
En cada iteración se genera conocimiento que permitirá mejorar las subsecuentes
iteraciones.