TEMA 14 PROCESO ITERATIVO E INCREMENTAL DESARROLLO EN

  • Slides: 15
Download presentation
TEMA 14: PROCESO ITERATIVO E INCREMENTAL

TEMA 14: PROCESO ITERATIVO E INCREMENTAL

DESARROLLO EN PEQUEÑOS PASOS Las iteraciones en las primeras fases tratan la determinación del

DESARROLLO EN PEQUEÑOS PASOS Las iteraciones en las primeras fases tratan la determinación del ámbito del proyecto, la eliminación de los riesgos críticos, y la creación de la línea base de la arquitectura. El ciclo de vida de un proyecto se divide en miniproyectos, siendo cada uno de ellos una iteración compuesta por sus respectivos flujos de trabajo. Las iteraciones ayudan a la dirección a organizar, planificar, hacer el seguimiento y controlar el proyecto.

LO QUE NO ES UNA ITERACIÓN Si el desarrollador pasa del ciclo de inicio

LO QUE NO ES UNA ITERACIÓN Si el desarrollador pasa del ciclo de inicio al de elaboración. . . l l l Sin resolver los riesgos más críticos o significativo. Sin establecer una línea base de la arquitectura. Sin implementar los casos de usos importantes. Se está construyendo un proyecto no fiable y no vale la pena que siga con él.

¿POR QUÉ UN DESARROLLO ITERATIVO E INCREMENTAL? l Para obtener un software mejor, dicho

¿POR QUÉ UN DESARROLLO ITERATIVO E INCREMENTAL? l Para obtener un software mejor, dicho en otras palabras para cumplir los hitos principales y secundarios con los cuales controlamos el desarrollo del proyecto. l Para tener: v Atenuación de riesgos v Obtención de una arquitectura robusta v Gestión de requisitos cambiantes v Permitir cambios tácticos v Conseguir una iteración continua v Conseguir un aprendizaje temprano

¿POR QUÉ UN DESARROLLO ITERATIVO E INCREMENTAL? Atenuación de Riesgos: l Lo que necesita

¿POR QUÉ UN DESARROLLO ITERATIVO E INCREMENTAL? Atenuación de Riesgos: l Lo que necesita la disciplina del software, es un modelo de proceso que cree una "Aproximación al Proceso de Desarrollo Dirigido por Riesgos": El Proceso Unificado reconoce los riesgos más importantes en las primeras 2 fases y reduce los mismos mediante las iteraciones. En consecuencia, los riesgos no identificados o ignorados no emergen más tarde. Obtención de una Arquitectura Robusta: l Método cascada: Es en las últimas fases donde se sabe con certeza si la arquitectura que se diseñó es la adecuada. Si no lo es, se habrá perdido mucho dinero y no podremos cumplir con la fecha de entrega. l Método iterativo: Es al final de la fase de elaboración donde se evalúa la arquitectura; si aún no está madura se trabaja en una nueva iteración; esto es posible ya que es muy poco lo que se invierte en esta fase y las fechas aún no están definidas.

¿POR QUÉ UN DESARROLLO ITERATIVO E INCREMENTAL? Gestión de Requisitos Cambiantes: l l Cada

¿POR QUÉ UN DESARROLLO ITERATIVO E INCREMENTAL? Gestión de Requisitos Cambiantes: l l Cada iteración debe progresar mediante una serie de construcciones hasta alcanzar el resultado esperado, es decir, el incremento. Es más fácil para el usuario ver un sistema ejecutable en funcionamiento que leer cientos de páginas de documentos. Esto permite a que los usuarios opinen y sugieran modificar o agregar cosas que se nos pasó de largo. En método cascada los usuarios ven al sistema funcionando recién en la integración y prueba, y si desea cambiar algo deberán aumentar presupuesto y atrasar las fechas.

¿POR QUÉ UN DESARROLLO ITERATIVO E INCREMENTAL? Permitir cambios tácticos: Con un método iterativo

¿POR QUÉ UN DESARROLLO ITERATIVO E INCREMENTAL? Permitir cambios tácticos: Con un método iterativo los directores se encargan de ver al final de cada iteración. l Si hubo un incremento y se han resueltos los problemas; entonces autorizará a los desarrolladores a seguir con la siguiente iteración. l Si el éxito fue parcial, se ampliará la iteración hasta poder cumplir con lo requerido. l Si el resultado es negativo puede llegar a cancelarse el proyecto Conseguir una Iteración Continua: Método iterativo: Ya desde un principio se hacen frecuentes construcciones, y con éstas aparecen los errores que se tratarán a lo largo de todo el proyecto. No habrá sorpresas para el final.

¿POR QUÉ UN DESARROLLO ITERATIVO E INCREMENTAL? Conseguir un Aprendizaje Temprano: l l Después

¿POR QUÉ UN DESARROLLO ITERATIVO E INCREMENTAL? Conseguir un Aprendizaje Temprano: l l Después de un par de iteraciones, todas las personas del equipo tienen una buena compresión de lo que significan los diferentes flujos de trabajo. Es fácil formar a gente nueva debido a que pueden formarse con el propio trabajo dado que tienen una formación adecuada y trabajan con gente con experiencia, rápidamente se ajustan a la velocidad adecuada.

LA APROXIMACIÓN ITERATIVA ESTÁ DIRIGIDA POR LOS RIESGOS l l Se analizan los riesgos,

LA APROXIMACIÓN ITERATIVA ESTÁ DIRIGIDA POR LOS RIESGOS l l Se analizan los riesgos, luego se priorizan y se organizan las iteraciones para: Evaluar tecnologías nuevas. Tratar los requisitos pedido por los usuarios. Obtener una arquitectura robusta: para incorporar los cambios con un riesgo bajo de tener que rediseñar algo. Tratar otros riesgos importantes como temas de rendimiento, disponibilidad, portabilidad.

LAS ITERACIONES ALIVIAN LOS RIESGOS TÉCNICOS Hay 4 formas de tratar a un riesgo

LAS ITERACIONES ALIVIAN LOS RIESGOS TÉCNICOS Hay 4 formas de tratar a un riesgo según su prioridad: l Evitarlo: Quizás se tenga que replanificar el proyecto o hacer un cambio de requisitos. l Limitarlo: Achicarlo para que afecta una parte pequeña del proyecto. l Atenuarlo: Probar repetidas veces hasta ver si aparecen o no. l Controlarlo: Ver si el proyecto puede convivir con éste. Caso contrario no se podrá continuar: algo que no es tan malo ya que se detectó en un principio y los gastos fueron mínimos.

LA ITERACIÓN GENÉRICA Una iteración es un miniproyecto donde se tiene como resultado una

LA ITERACIÓN GENÉRICA Una iteración es un miniproyecto donde se tiene como resultado una versión interna. Las Fases están divididas en N iteraciones. Descripción de cada fase: Inicio: Hacer análisis del negocio y reducir los riesgos más importantes. Elaboración: Obtener línea base de la arquitectura, capturar requisitos, reducir demás riesgos. Construcción: Desarrollar el sistema entero. Ofrecer funcionalidad operativa a clientes. Transición: Tener el producto preparado para la entrega. Se enseña a usuarios a utilizar el software.

PLANIFICACIÓN Y SECUENCIACIÓN DE LAS ITERACIONES Planificación: Método iterativo: No se planifica proyecto entero

PLANIFICACIÓN Y SECUENCIACIÓN DE LAS ITERACIONES Planificación: Método iterativo: No se planifica proyecto entero en la fase de inicio, solo da los primeros pasos. Es al final de la fase de elaboración donde se tiene una base para planificar el resto del proyecto y poner en marcha un plan detallado para cada iteración de la fase de construcción. Secuenciación: l Los casos de usos establecen una meta. La arquitectura establece un patrón. Con esto en mente los desarrolladores planifican la secuencia que seguirán en el desarrollo del producto. l La planificación y trabajo de una iteración empieza cuando la anterior se está por entregar. l El objetivo más importante es ordenar el trabajo en secuencia de modo que puedan desarrollarse antes decisiones importantes, aquellas que implican tecnologías, casos de uso y arquitecturas nuevas.

EL RESULTADO DE UNA ITERACIÓN ES UN INCREMENTO Definiciones de Incremento: Diferencia entre la

EL RESULTADO DE UNA ITERACIÓN ES UN INCREMENTO Definiciones de Incremento: Diferencia entre la versión interna de la iteración anterior y la siguiente. Al final de una iteración, el conjunto de modelos que representa al sistema queda en un estado concreto, llamamos a este estado la línea base. Habiendo diferencia entre 2 líneas bases sucesivas. Hay más incrementos a medida que nos acercamos a la fase de transición. La integración del último incremento se convierte en el sistema final.

ITERACIONES SOBRE EL CICLO DE VIDA Cada una de las 4 fases termina con

ITERACIONES SOBRE EL CICLO DE VIDA Cada una de las 4 fases termina con un hito principal. Inicio: Objetivos del ciclo de vida. Establecer ámbito del sistema Reducir peores riesgos Preparar el análisis del negocio Elaboración: Arquitectura del ciclo de vida. Obtener línea base de la arquitectura Capturar mayoría de requisitos Reducir siguientes riesgos Construcción: Funcionalidad operativa inicial. Desarrollo del sistema entero Transición: Versión del producto. Producto preparado para su entrega al usuario Se enseña a los usuarios a utilizarlo

Estas divisiones ayudan a la dirección y a otros usuarios implicados a evaluar lo

Estas divisiones ayudan a la dirección y a otros usuarios implicados a evaluar lo hecho durante las fases de bajo coste (número pequeño de personas), de inicio y elaboración antes de tomar la decisión de comprometerse con la fase de construcción de alto coste (aumenta el número de personas). Flujos de trabajo / Fases Gestación Elaboración Construcción Transición Requisitos Análisis Diseño Implementac. Test Iter #1 Iter #2 --- --- --- Iter #n -1 Iter #n