
1. Un modelo de ciclo de vida establece y muestra las distintas etapas y estados por los que pasa un producto software, desde su concepción inicial, pasando por su desarrollo, puesta en marcha y posterior mantenimiento, hasta la retirada del producto.
1.1. Un modelo de ciclo de vida del software:Describe las fases principales de desarrollo de software
1.2. Define las fases primarias esperadas de ser ejecutadas durante esas fases
1.3. Ayuda a administrar el progreso del desarrollo
1.4. Provee un espacio de trabajo para la definición de un proceso detallado de desarrollo de software
1.5. El primer ciclo de vida del software, "Cascada", fue definido por Winston Royce a fines del 70. Sin embargo, ya desde 10 a 15 años atrás, el modelo cascada ha sido sujeto a numerosas críticas, debido a que es restrictivo y rígido, lo cual dificulta el desarrollo de proyectos de software moderno.
2. El ciclo de vida de desarrollo de software nos ayuda a determinar el orden de las etapas y los criterios durante el desarrollo de un software.
2.1. El ciclo de vida del software: Determinar el orden de las fases del proceso de software
2.2. Establecer los criterios de transición para pasar de una fase a la siguiente
2.3. Definir las entradas y salidas de cada fase
2.4. Describir los estados por los que pasa el producto
2.5. Describir las actividades a realizar para transformar el producto
2.6. Definir un esquema que sirve como base para planificar, organizar, coordinar, desarrollar
3. Modelo Espiral
3.1. El esfuerzo de desarrollo es iterativo. Tan pronto como uno completa un esfuerzo de desarrollo, otro comienza. Determinar qué quieres lograr.
3.1.1. El modelo espiral captura algunos principios básicos o caracteristicas:
3.1.2. Decidir qué problema se quiere resolver.
3.1.3. Examinar múltiples alternativas de acción y elegir una de las más convenientes.
3.1.4. Evaluar qué se tiene hecho y qué se tiene que haber aprendido después de hacer algo.
3.1.5. Conocer los niveles de riesgo.
3.1.6. Es costoso ya que conlleva más trabajo.
3.1.7. Es mas utilizado en proyectos grandes.
3.2. En cada desarrollo ejecutado, puedes seguir estos cuatros pasos:
3.3. Determinar las rutas alternativas que puedes tomar para lograr estas metas.
3.4. Por cada una, analizar los riesgos y resultados finales, y seleccionar la mejor.
3.5. Seguir la alternativa seleccionada en el paso 2.
3.6. Establecer qué tienes terminado.
4. Modelo cascada
4.1. Este es el más básico de todos los modelos, y sirve como bloque de construcción para los demás modelos de ciclo de vida. La visión del modelo cascada del desarrollo de software es muy simple; dice que el desarrollo de software puede ser a través de una secuencia simple de fases. Cada fase tiene un conjunto de metas bien definidas, y las actividades dentro de una fase contribuye a la satisfacción de metas de esa fase o quizás a una subsecuencia de metas de la fase.
4.1.1. El modelo de ciclo de vida cascada, captura algunos principios básicos o características:
4.1.2. Planear un proyecto antes de embarcarse en él.
4.1.3. Definir el comportamiento externo deseado del sistema antes de diseñar su arquitectura interna.
4.1.4. Documentar los resultados de cada actividad.
4.1.5. Diseñar un sistema antes de codificarlo.
4.1.6. Testear un sistema después de construirlo.
5. Metodología tradicional
5.1. Centran su atención en llevar una documentación exhaustiva de todo el proyecto y en cumplir con un plan de proyecto, definido todo esto, en la fase inicial del desarrollo del proyecto.
5.2. Se focalizan en la documentación, planificación y procesos (plantillas, técnicas de administración, revisiones, etc.)
6. Modelo de prototipos
6.1. Pertenece a los modelos de desarrollo evolutivo. El prototipo debe ser construido en poco tiempo, usando los programas adecuados y no se debe utilizar muchos recursos.
6.1.1. Ventaja: 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. Desventaja: El usuario tiende a crearse unas expectativas cuando ve el prototipo de cara al sistema final. En aras de desarrollar rápidamente el prototipo, el desarrollador suele tomar algunas decisiones de implementación poco convenientes.
6.2. 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.
6.3. 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á
6.4. Etapas: Plan rápido. Modelado, diseño rápido Construcción del Prototipo Desarrollo, entrega y retroalimentación Comunicación Entrega del desarrollo final
7. Metodología Agil
7.1. Nace como respuesta a los problemas que puedan ocasionar las metodologías tradicionales y se basa en dos aspectos fundamentales, retrasar las decisiones y la planificación adaptativa.
7.1.1. Algunos métodos ágiles de desarrollo de software: Adaptive Software Development (ASD) Agile Unified Process Feature Driven Development (FDD) Lean Software Development (LSD) Open Unified Process (OpenUP) Programación Extrema (XP) Método de desarrollo de sistemas dinámicos Scrum