Title: TEMA 14: PROCESO ITERATIVO E INCREMENTAL
1TEMA 14PROCESO ITERATIVO E INCREMENTAL
2DESARROLLO 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.
3LO QUE NO ES UNA ITERACIÓN
- Si el desarrollador pasa del ciclo de inicio
al de elaboración... - 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.
4POR QUÉ UN DESARROLLO ITERATIVO E INCREMENTAL?
- Para obtener un software mejor, dicho en otras
palabras para cumplir los hitos principales y
secundarios con los cuales controlamos el
desarrollo del proyecto. - Para tener
- Atenuación de riesgos
- Obtención de una arquitectura robusta
- Gestión de requisitos cambiantes
- Permitir cambios tácticos
- Conseguir una iteración continua
- Conseguir un aprendizaje temprano
5POR QUÉ UN DESARROLLO ITERATIVO E INCREMENTAL?
- Atenuación de Riesgos
- 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
- 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. - 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.
6POR QUÉ UN DESARROLLO ITERATIVO E INCREMENTAL?
- Gestión de Requisitos Cambiantes
- 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. -
7POR 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. - Si hubo un incremento y se han resueltos los
problemas entonces autorizará a los
desarrolladores a seguir con la siguiente
iteración. - Si el éxito fue parcial, se ampliará la iteración
hasta poder cumplir con lo requerido. - 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.
8POR QUÉ UN DESARROLLO ITERATIVO E INCREMENTAL?
- Conseguir un Aprendizaje Temprano
- 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.
9LA APROXIMACIÓN ITERATIVA ESTÁ DIRIGIDA POR LOS
RIESGOS
- 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.
10LAS ITERACIONES ALIVIAN LOS RIESGOS TÉCNICOS
- Hay 4 formas de tratar a un riesgo según su
prioridad - Evitarlo Quizás se tenga que replanificar el
proyecto o hacer un cambio de requisitos. - Limitarlo Achicarlo para que afecta una parte
pequeña del proyecto. - Atenuarlo Probar repetidas veces hasta ver si
aparecen o no. - 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.
11LA 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.
12PLANIFICACIÓ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
- 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. - La planificación y trabajo de una iteración
empieza cuando la anterior se está por entregar. - 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.
13EL 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.
14ITERACIONES 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
15Estas 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).