1. Modelo incremental
1.1. Es el cliente quien desecha los elementos al final de cada iteración
1.2. Se divide en cuatro fases: Análisis, Diseño, Código y Mantenimiento
1.2.1. Se usa el principio de trabajo en cadena
1.2.2. Al termino de una iteración se le entrega un producto operacional al cliente
1.3. Útil cuando no se cuenta con personal suficiente
1.4. Ventajas:
1.4.1. Al cliente se le entrega un sistema parcial de forma temprana
1.4.2. Resulta más sencillo acomodar cambios al acotar el tamaño de los incrementos
1.4.3. Es versátil y requiere planeación cuidadosa
1.5. Desventajas:
1.5.1. No es recomendable para sistemas en tiempo real, alto nivel de seguridad o alto índice de riesgos
1.5.2. Requiere metas claras
2. Modelo DRA (Desarrollo Rápido de Aplicaciones)
2.1. Ventajas:
2.1.1. Es muy rápido
2.1.2. Permite que trabajen varias personas en el proyecto
2.2. Desventajas:
2.2.1. Es malo para proyectos grandes
2.2.2. Inapropiado cuando riesgos son altos
2.2.3. Si no hay comunicación con el cliente, fallará el proyecto
2.3. Fases del DRA:
2.3.1. Modelado de gestión: La información que genera, quién la genera, a dónde va la información
2.3.2. Modelado de datos: Se definen las características de cada uno de los objetos y las relaciones entre los objetos
2.3.3. Modelado de proceso: Los objetos quedan transformados para lograr el flujo de información necesario para implementar una función de gestión
2.3.4. Generación de aplicaciones: Se trata de utilizar componentes de software reutilizables
2.3.5. Pruebas y entrega: Al reusar software, se reduce el tiempo de pruebas, pero se deben comprobar los nuevos
3. Modelo Espiral
3.1. Trabaja con iteraciones. Se divide en un número de actividades de marco de trabajo, llamadas regiones de tareas.
3.1.1. Comunicación con el cliente: Tareas requeridas para establecer comunicación entre el desarrollador y el cliente
3.1.2. Planificación Las tareas requeridas para definir recursos, el tiempo y otra información relacionadas con el proyecto
3.1.3. Ingeniería: Tareas para construir una o más representaciones de la aplicación
3.1.4. Construcción y acción Tareas para construir, probar, instalar y proporcionar soporte al usuario
3.1.5. Evaluación del cliente: Tareas requeridas para obtener la reacción del cliente según la evaluación de las representaciones del software creadas durante la etapa de ingeniería e implementada durante la etapa de instalación
3.2. Ventajas:
3.2.1. Es un enfoque realista si se trata de sistemas grandes
3.2.2. Puede adaptarse y aplicarse a lo largo de la vida del software
3.2.3. Mantiene el enfoque sistemático de los pasos sugeridos por el ciclo de vida clásico
3.2.4. Reduce los riesgos
3.3. Desventajas:
3.3.1. Puede resultar difícil de convencer al cliente de que el enfoque evolutivo es controlable
3.3.2. Requiere habilidad para la evaluación del riesgo
3.3.3. No se ha utilizado tanto como los paradigmas lineales secuenciales o de construcción de prototipos
4. Modelo de Prototipos
4.1. Se utiliza para para dar al usuario una vista preliminar de parte del software. Es básicamente prueba y error ya que si al usuario no le gusta una parte del prototipo significa que la prueba falló por lo cual se debe corregir el error que se tenga hasta que el usuario quede satisfecho
4.2. Etapas:
4.2.1. Recolección y refinamiento de requisitos
4.2.2. Modelado, diseño rápido
4.2.3. Construcción del prototipo
4.2.4. Desarrollo, evaluación del prototipo por el cliente
4.2.5. Refinamiento del prototipo
4.2.6. Producto de ingeniería
4.3. Ventajas:
4.3.1. No modifica el flujo del ciclo de vida
4.3.2. Reduce el riesgo de construir productos que no satisfagan las necesidades de los usuarios
4.3.3. Reduce el costo y aumenta la probabilidad de éxito
4.3.4. Exige disponer de las herramientas adecuadas
4.3.5. Es útil cuando el cliente conoce los objetivos generales del software
4.4. Desventajas:
4.4.1. Debido a que el usuario ve que el prototipo funciona piensa que este es el producto terminado y no entienden que recién se va a desarrollar el software
4.4.2. El desarrollador puede caer en la tentación de ampliar el prototipo para construir el sistema final sin tener en cuenta los compromisos de calidad y mantenimiento que tiene con el cliente
5. Proceso Unificado de Desarrollo (RUP)
5.1. Basado en componentes e interfaces bien definidas junto con el Lenguaje Unificado de Modelado
5.1.1. constituye la metodología estándar más utilizada para el análisis, implementación y documentación de sistemas orientados a objetos
5.2. No es un modelo con pasos firmemente establecidos, sino un conjunto de metodologías adaptables al contexto y necesidades de cada organización
5.3. Características:
5.3.1. Unifica los mejores elementos de metodologías anteriores
5.3.2. Preparado para desarrollar grandes y complejos proyectos
5.3.3. Orientado a objetos
5.3.4. Utiliza el UML como lenguaje de representación visual
5.4. Ventajas:
5.4.1. Coste del riesgo a un solo incremento
5.4.2. Reduce el riesgo de no sacar el producto en el calendario previsto
5.4.3. Acelera el ritmo de desarrollo
5.4.4. Se adapta mejor a las necesidades del cliente
6. Modelo Concurrente
6.1. Define una serie de acontecimientos que dispararán transiciones de estado a estado para cada una de las actividades de la ingeniería del software
6.2. Utilizado en los sistemas cliente/servidor
6.3. La concurrencia se logra de dos formas:
6.3.1. Las actividades de sistemas y de componentes ocurren simultáneamente y pueden modelarse con el enfoque orientado a objetos
6.3.2. Una aplicación cliente/servidor típica se implementa con mucho componentes, cada uno de los cuales se pueden diseñar y realizar concurrentemente
6.4. Ventajas:
6.4.1. Excelente para proyectos en los que se conforman grupos de trabajo independientes
6.4.2. Proporciona una imagen exacta del estado actual del proyecto
6.5. Desventajas:
6.5.1. Si no se dan las condiciones señaladas, no es aplicable
6.5.2. Si no existen grupos de trabajo, no se puede trabajar en este método
7. Modelo basado en componentes
7.1. Es evolutivo por naturaleza y exige un enfoque interactivo.
7.2. Conduce a la reutilización del software
7.3. Ventajas:
7.3.1. Reutilización del software
7.3.2. Simplifica las pruebas
7.3.3. Simplifica el mantenimiento del sistema
7.3.4. Mayor calidad
7.4. Desventajas:
7.4.1. Genera mucho tiempo en el desarrollo del sistema
7.4.2. Genera mucho trabajo adicional. Cuando un sistema falla, se pierde tiempo y coste dentro de la empresa. Exige una cierta habilidad en los analistas
8. Modelo unificado
8.1. Está dirigido por casos de uso, centrado en la arquitectura y por ser iterativo e incremental
8.2. Las cuatro fases son:
8.2.1. Inicio
8.2.2. Elaboración
8.2.3. Construcción
8.2.4. Transición