Modelo Iterativo

MODELO ITERATIVO



Este modelo, también conocido como Evolutivo, es una derivación del ciclo de vida en cascada puro, que busca reducir el riesgo que surge entre las necesidades del Usuario y el Producto final por malos entendidos durante la etapa de solicitud de requerimientos.

En el ciclo de vida iterativo, en cada Iteración se reproduce el ciclo de vida en cascada a menor escala. Los objetivos de una Iteración se establecen en función de la evaluación de las Iteraciones precedentes. Desde el principio, al final de cada Iteración se le entrega al Cliente una versión completa y mejorada del Producto. El Cliente es quien luego de cada Iteración evalúa el Producto y lo corrige o propone mejoras. Estas Iteraciones irán Refinando el sistema y se repetirán hasta obtener un Producto que satisfaga al Cliente.
La Especificación de requisitos se realiza en forma creciente: a medida que los Usuarios logran un mejor entendimiento del problema, éste es reflejado en el sistema software. Es decir, el Producto de cada etapa de Especificación de requisitos es un agregado o mejora al Producto de la etapa de especificación anterior.
Este modelo se basa en dos premisas:

1) Los Usuarios a menudo no saben bien lo que quieren o necesitan.
2) Por lo general, los requisitos en algún momento van a cambiar.
Para solucionar el primer punto, los requisitos se determinan en base a alguna forma operacional del sistema (por ejemplo, un prototipo) para ser revisado por los Usuarios. Para atender el segundo punto, se realizan entregas parciales del sistema que permiten incorporar nuevos requisitos o cambios en requisitos existentes en la siguiente entrega. Es decir, cada versión es una mejora sobre la predecesora.
Este modelo se utiliza cuando no se puede especificar a priori “todos” los requisitos del software, sino que el proceso ayudará a ir descubriendo paso a paso los requisitos a partir de cada nueva Entrega.

Modelo Iterativo.png




INDICE: LISTA DE SÍMBOLOS

Nro
Símbolo
Clasificación
Sinónimos
1
Analista
Sujeto

2
Analizar
Verbo

3
Casos de prueba funcionales
Objeto

4
Cliente involucrado
Sujeto

5
Desarrollador
Sujeto

6
Desarrollar
Verbo

7
Diseñar
Verbo

8
Entregable
Objeto

9
Especificación de requisitos
Objeto

10
Gestor de proyecto
Sujeto
Gerente de Proyecto
11
Hito
Objeto

12
Implementar
Verbo

13
Iteración
Objeto

14
Modelo de análisis
Objeto

15
Obtención de requisitos
Verbo

16
Parche
Objeto

17
Plan de desarrollo del software
Objeto

18
Plan de iteración
Objeto

19
Producto final
Objeto

20
Propuesta de mejoras
Objeto
Mejora
21
Prueba de integración
Verbo

22
Rediseño
Verbo

23
Refinamiento
Verbo

24
Retroalimentación
Verbo
Feedback
25
Usuario
Sujeto

26
Validación
Verbo
Evaluación

Símbolos Estado: 0
Símbolos Objeto: 11
Símbolos Sujeto: 5
Símbolos Verbo: 10

Cantidad Total de Símbolos: 26


DEFINICIÓN DE SÍMBOLOS


Analista
Sujeto
1
Noción
  1. Es aquella persona que tiene como objetivo Analizar y describir un problema con soluciones de tipo informático.
  2. Interviene en las actividades de Obtención de requisitos y Análisis.
Impacto
  1. Releva los requerimientos del Cliente involucrado.
  2. Es el responsable de mantener actualizada la Especificación de requisitos.
  3. Diseña los Casos de prueba funcionales, con la colaboración del Cliente involucrado.


Analizar
Verbo
2
Noción
  1. Es la actividad en la cual el Analista se ocupa del análisis del sistema.
  2. Se inicia una vez concluida la actividad de Obtención de requisitos.
Impacto
  1. Se realiza el estudio de factibilidad.
  2. Se genera un Modelo de análisis.
  3. Se analizan los requerimientos solicitados por el Cliente involucrado.
  4. Es la actividad previa a Diseñar.


Casos de prueba funcionales
Objeto
3
Noción
  1. Conjunto de pruebas que se aplican sobre el Entregable en cada Iteración y finalmente en el Producto final.
  2. Actividad realizada por el Analista.
Impacto
  1. Permite chequear si el Entregable o Producto final es parcial o completamente satisfactorio.
  2. Permiten detectar errores que serán contemplados en etapa de Rediseño.


Cliente involucrado
Sujeto
4
Noción
  1. Es aquella persona que conoce acerca de la estructura organizacional y sobre el área de interés.
  2. Se encuentra en condiciones de hacer alguna contribución a la definición de requisitos para ser incorporados a la Especificación de requisitos del producto software a desarrollar.
  3. Se relaciona activamente con el Analista de sistemas para aportar conocimientos sobre el área de interés.
Impacto
  1. Participa en la Validación de los requisitos de funcionalidad del sistema.
  2. Define los requerimientos relativos a la efectividad, estructura organizacional, costos del proyecto, aplicación global, metas de ejecución.
  3. Define el efecto deseado para el Producto final.


Desarrollador
Sujeto
5
Noción
  1. Aquella persona involucrada con el desarrollo del sistema software.
  2. Entran en esta clasificación los programadores, testers, diseñadores de base de datos y arquitectos de software.
Impacto
  1. El arquitecto de software arma el diseño preliminar durante la etapa de Análisis y Diseño.
  2. Los programadores llevan a cabo la codificación de los distintos módulos del software a presentar durante la actividad de Desarrollo.
  3. Los testers realizan las Pruebas de integración.
  4. Los programadores generan un prototipo del sistema durante la Implementación.


Desarrollar
Verbo
6
Noción
  1. Este estado se inicia con la finalización de la actividad Diseñar.
  2. Es la actividad en la cual se lleva a cabo la construcción de los distintos módulos que componen el sistema de software por parte de los Desarrolladores.
  3. Durante esta actividad se obtienen los distintos módulos que componen el sistema de software más refinados a medida que se realiza una nueva Iteración.
Impacto
  1. Los Desarrolladores llevan a cabo la codificación de los distintos módulos del software a presentar.
  2. El Gestor del proyecto controla los plazos de tiempos de entrega de cada iteración y los recursos del proyecto.
  3. El Gestor interactúa con el Cliente involucrado ante cualquier consulta del desarrollo del módulo.


Diseñar
Verbo
7
Noción
  1. Es la etapa en la cual los Desarrolladores desarrollan las actividades de diseño y Rediseño del sistema.
  2. Se inicia una vez finalizada la actividad de Analizar.
Impacto
  1. El arquitecto de software arma el diseño preliminar.
  2. Producto de cada Iteración, puede involucrar o no un Rediseño del sistema.
  3. Es la actividad previa a Desarrollar.


Entregable
Objeto
8
Noción
  1. Es la versión obtenida luego de realizar una Iteración.
  2. El Desarrollador es el responsable de esta versión.
Impacto
  1. Es sometido al test realizado por parte del Usuario en conjunto con el Analista de sistemas.
  2. Si el test orientado al Usuario es exitoso, se guardará la versión y se continuará con la próxima Iteración.
  3. Si se trata de la última Iteración, este Entregable representará la versión final del sistema.
  4. Si el test orientado al Usuario no es exitoso, se le realizara el mantenimiento correctivo correspondiente.


Especificación de requisitos
Objeto
9
Noción
  1. Es el documento que contiene los requisitos relevados del sistema hasta un determinado momento.
  2. En su creación están plasmados las necesidades del Cliente involucrado.
Impacto
  1. Es refinada por el Analista en cada una de las Iteraciones.
  2. Su creación y modificación es realizada durante la etapa de Requisitos.


Gestor de proyecto
Sujeto
10
Noción
  1. Es la persona que tiene la responsabilidad total del planeamiento y la ejecución acertados del proyecto.
  2. Es el responsable del reconocimiento de los riesgos que afectan directamente las probabilidades de éxito del proyecto.
Impacto
  1. Ajusta el número de Iteraciones requeridas para completar el desarrollo.
  2. Interviene en la elaboración del Plan de iteración.
  3. Tiene a cargo la revisión del Plan de desarrollo del software.


Hito
Objeto
11
Noción
  1. Es un conjunto de artefactos, es decir, un conjunto de modelos o documentos que han sido desarrollados hasta alcanzar un estado predefinido.
  2. Lo situamos al concluir cada una de las actividades (Obtención de requisitos, Analizar, Diseñar, Desarrollar, Prueba de integración, Implementar).
>
Impacto
  1. Se realiza el planeamiento de los Hitos de cada actividad del modelo.
  2. El Gestor de proyecto toma decisiones en base a los Hitos antes de avanzar con la siguiente etapa del proceso.
  3. La información que se obtiene de los documentos de los Hitos sirven como métricas para la estimación de la próxima iteración.


Implementar
Verbo
12
Noción
  1. Es la actividad en la cual los Desarrolladores instalan la versión ejecutable del sistema ó Entregable para el conocimiento del Usuario.
  2. Es realizada en cada Iteración, finalizada la Prueba de integración.
Impacto
  1. Se crea una versión Entregable del sistema.
  2. Da inicio a la Validación del sistema por parte del Usuario.
  3. En caso de ser la última Iteración, se implanta el Producto final del sistema, dando inicio al mantenimiento del software.


Iteración
Objeto
13
Noción
  1. Es un ciclo de desarrollo el cual involucra las etapas de requisitos, análisis/diseño, desarrollo, prueba e integración y implementación.
  2. Dura un periodo de tiempo determinado y estricto.
  3. La duración de cada Iteración es definida al comienzo del proyecto.
Impacto
  1. Se realiza el planeamiento de la Iteración.
  2. Se realiza la tarea de Obtención de requisitos.
  3. Se realiza la tarea de Analizar.
  4. Se realiza la tarea de Diseñar.
  5. Se realiza la tarea de Desarrollar.
  6. Se realiza la tarea de Prueba de integración.
  7. Se realiza la tarea de Implementar.


Modelo de análisis
Objeto
14
Noción
  1. Modelado de los elementos de análisis (datos, proceso, control o comportamiento) generado en etapa de análisis.
  2. Actividad realizada por el Analista.
Impacto
  1. Permite identificar y describir lo que requiere el Usuario.
  2. Permite establecer la base para la etapa de diseño.


Obtención de requisitos
Verbo
15
Noción
  1. Es la actividad en la cual se realizan las tareas de relevamiento de requisitos del producto software a desarrollar.
  2. Es llevada a cabo por los Analistas.
  3. Tiene lugar al comienzo de cada Iteración.
Impacto
  1. Se realiza la Validación de los requisitos con el Cliente involucrado.
  2. La información obtenida durante esta etapa es volcada en la Especificación de requisitos del software.
  3. En esta etapa se plasma por escrito la Retroalimentación del sistema.


Parche
Objeto
16
Noción
  1. Es la corrección inmediata de errores durante la actividad de Implementación que posibilita llegar al Entregable omitiendo las actividades de Diseño.
  2. Es llevada a cabo por los Desarrolladores.
Impacto
  1. Deben permanecer solo por una o dos Iteraciones.
  2. Se debe evitar la proliferación excesiva de Parches al sistema.
  3. Reducen el Rediseño durante una etapa de implementación.


Plan de desarrollo del software
Objeto
17
Noción
  1. Es un documento que contiene una visión global del enfoque de Desarrollo propuesto.
  2. Su creación y actualización es realizada por el Gestor y Desarrollador.
  3. Es revisado semanalmente y se redefine al comienzo de cada Iteración.
Impacto
  1. Proporciona la información necesaria para controlar el proyecto que derivará en la generación del Producto final.
  2. Permiten identificar Hitos principales del modelo y consideraciones sobre control de calidad y manejo de riesgos pertinentes al desarrollo.
  3. Permite visualización del esfuerzo involucrado para la obtención del Producto final.

Plan de iteración
Objeto
18
Noción
  1. Es el conjunto de actividades y tareas ordenadas temporalmente, con recursos asignados, a realizarse en cada Iteración.
  2. El número de Iteraciones planeado dependerá básicamente de la complejidad del sistema en cuestión.
  3. Es elaborado por el Gestor de proyecto.
Impacto
  1. Lista los recursos (Analistas, Desarrolladores) que se utilizarán para cada Iteración.
  2. Permite conocer el tiempo que se otorgará a cada una de las Iteraciones.
  3. Proporciona la información necesaria para realizar un seguimiento a cada Iteración y asegurar que se cumple con las expectativas.

Producto final
Objeto
19
Noción
  1. Producto obtenido luego de realizadas todas las Iteraciones necesarias del modelo.
  2. Producto que utilizará finalmente el Usuario.
Impacto
  1. Permite satisfacer las necesidades del Usuario.
  2. Permite realizar el cierre de las Iteraciones.




Propuesta de mejoras
Objeto
20
Noción
  1. Conjunto de opciones que permiten perfeccionar el Producto.
  2. Documento elaborado por el Cliente involucrado en colaboración con el Usuario.
Impacto
  1. Se basa en las necesidades del Usuario.
  2. Posibilita la obtención de un Producto final de calidad.


Prueba de integración
Verbo
21
Noción
  1. Esta actividad se inicia con la finalización del Desarrollo.
  2. Es la etapa en la cual los Desarrolladores prueban e integran los diferentes módulos que componen el sistema de software.
  3. Se realiza en cada Iteración, y se obtiene un software con la menor cantidad de errores no detectados.
Impacto
  1. Se realizan pruebas unitarias de cada uno de los módulos del sistema.
  2. Se realizan Pruebas de integración a un conjunto de módulos cohesivos entre sí.
  3. Se corrigen los defectos o errores que surjan de los resultados de las pruebas realizadas.
  4. Es la actividad previa a Implementar una versión del software en el entorno del cliente.
  5. En caso de ser la última Iteración, se da por finalizado el desarrollo del software, obteniéndose un Producto final del sistema, dando inicio al mantenimiento del software.



Rediseño
Verbo
22
Noción
  1. Actividad realizada por los Desarrolladores.
  2. Se realiza luego de haber pasado previamente por la actividad de Diseño.
Impacto
  1. Se contemplan necesidades que no se contemplaron en Iteraciones anteriores.
  2. Se establece en caso de existir la necesidad del mismo luego de cada Entregable.
  3. Es posible siempre que exista un Diseño previo modular.


Refinamiento
Verbo
23
Noción
  1. Es el proceso por el cual se realiza una mejora de las funcionalidades desarrolladas en la Iteración anterior.
  2. Es resultante de la retroalimentación entregada del Cliente involucrado.
Impacto
  1. Esta actividad define el nivel de percepción con la cual será desarrollada la funcionalidad del sistema de la Iteración actual.
  2. Es planificada por el Gestor durante la etapa de análisis/diseño.


Retroalimentación
Verbo
24
Noción
  1. Es el proceso que tiene como objetivo proporcionar información sobre la apreciación del Cliente involucrado frente a cada versión de software desarrollado al momento de finalización de cada Iteración.
  2. Es realizado por el Usuario y el Cliente involucrado en conjunto con el Analista.
Impacto
  1. La información obtenida es utilizada para planificar la siguiente Iteración y se vuelva en el Plan de iteración.
  2. Provee información que se utilizará para actualizar la definición preliminar de la Obtención de requisitos de la siguiente Iteración.


Usuario
Sujeto
25
Noción
  1. Es el real destinatario del Producto final.
  2. No necesariamente es el Cliente involucrado, pueden o no coincidir.
Impacto
  1. Realiza el test de los Entregables del desarrollo realizado.
  2. Genera una Retroalimentación del sistema en cada una de las Iteraciones.


Validación
Verbo
26
Noción
  1. Es el proceso de control que asegura que el software cumple con la especificación detallada en la Obtención de requisitos.
  2. Indica la consistencia del software respecto de la Especificación de requisitos.
Impacto
  1. Ésta actividad se lleva a cabo por parte del Usuario y Cliente involucrado luego de Implementar el Entregable de cada Iteración.
  2. En caso de existir sugerencias o encontrar alguna inconsistencia, estas deberán ser documentadas en la Propuesta de mejoras.

REFERENCIAS BIBLIOGRÁFICAS

  • An iterative Cyclic Software Process Model (Autor: Matthias Rauterberg, 1992)
  • Life Cycle concept considered harmful (Autor: Daniel D. McCraken & Michael Jackson, 1982)
  • Apunte de la catedra de Procesos de Software (Autor: Graciela Hadad, Gladys Kaplan y Jorge Doorn, 2011)
  • Benefits of user-oriented software development based on an iterative cyclic process model for simultaneous engineering
    ( Autor: Matthias Rauterberg, Oliver Strohm , Christina Kirsch, 1995)
  • Optimisation cycle: A concept for optimal software developtment (Autor: Matthias Rauterberg, 1992)

AUTORES

  • Cuesta, Cristian
  • Suárez, Mariela
  • Urli, Alexis
Usuario