viernes, 15 de abril de 2016

Reporte de Investigación - Modelo Incremental



INSTITUTO POLITECNICO NACIONAL

Unidad Profesional Interdisciplinaria de Ingeniería y Ciencias

Sociales y Administrativas

MODELO INCREMENTAL

Álvarez Hernández Ma. Isabel

García Ayala Martín

Hernández Figueroa Luis Javier

López Jiménez Viridiana Nayeli

Muñoz Valencia Raziel Kuauhtzin

Álvarez Hernández Ma. Isabel

Introducción

Propuesto por Harlan Mills en 1980. Sugirió el enfoque incremental de desarrollo como una
forma de reducir la repetición del trabajo en el proceso de desarrollo y dar oportunidad de retrasar la toma de decisiones en los requisitos hasta adquirir experiencia con el sistema.
Profesor del Instituto Tecnológico de Florida aunque también tuvo una amplia experiencia en el sector privado tanto trabajando por cuenta ajena en IBM como siendo fundador de su propia empresa de desarrollo de software.

Índice

Modelo Incremental ¿Qué es?
¿Cuándo Utilizarlo?
Ventajas Desarrollador
Referencias Fotográficas
Referencias Documentales


MODELO INCREMENTAL

El modelo incremental combina elementos del Modelo Lineal Secuencial (Cascada) con el
Modelo Iterativo. Los cuales se mencionarán a continuación para una mayor comprensión.
El modelo Lineal Secuencial, también conocido como el “Ciclo de vida básico” sugiere un
enfoque sistemático del desarrollo de software en donde se plantean etapas que se tienen
que seguir en un riguroso orden.
  • Análisis de los requerimientos
  • Generación del código
  • Integración y pruebas del sistema
  • Operación y mantenimiento


Por otra parte el Modelo iterativo consiste en la iteración de varios ciclos de vida en cascada. Al finalizar cada iteración se le muestra el cliente, el cliente evalúa el avance; lo corrige y a su vez propone mejoras, de manera que cada vez se entrega una versión mejorada a la anterior, este proceso se repite hasta obtener un producto que satisfaga todas las necesidades del cliente.

De esta manera podemos definir el modelo incremental como un modelo tipo cascada el cual origina una primera versión con su respectiva funcionalidad, posteriormente se aplica de nuevo cascada sobre aquella primera versión y se obtiene una segunda versión con más
funcionalidad. Este proceso se repite hasta terminar el desarrollo, es decir, bajo este modelo se entrega software “por partes más pequeñas”, pero reutilizables, llamadas incrementos en donde cada incremento se construye sobre aquel que ya fue entregado, al dividirlo se puede manejar cada funcionalidad por separados e ir integrándolas para formar el sistema final.

El modelo aplica secuencias lineales de manera escalonada. Cada secuencia lineal pasa por las siguientes fases:


  • Análisis de requerimientos: En esta etapa, como su nombre se indica se recopilan todos los requisitos que debe llegar a cubrir el software terminado.
  • Diseño: De acuerdo a los requerimientos se estructura la arquitectura que poseerá el software; estableciendo actores, casos de uso y posteriormente el algoritmo formando con esto parte de la documentación.
  • Codificación: En esta etapa se transforma el diseño en instrucciones comprensibles para el ordenador, es decir, la codificación es totalmente dependiente al diseño.
  • Pruebas: Esta etapa tiene como finalidad concentrarse en que todos los procesos lógicos funcionen adecuadamente, de no ser así deberán de ser bien identificados para su modificación.



El modelo aplica secuencias lineales de manera escalonada de acuerdo a fechas estipuladas en un calendario, previamente acordado con el cliente.

El primer incremento, se denomina como “núcleo” y estará conformado con las funcionalidades más importantes, básicas, o bien de ser posible de las de mayor índice de riesgo, con la finalidad de reducir problemas en incrementos posteriores, cuya modificación sería más complicada y por ende más costosa para el cliente.

Durante el desarrollo se puede llevar a cabo un análisis adicional de requisitos para los
requisitos posteriores, pero no se aceptan cambios en los requisitos para el incremento
actual. Esto evita el retroceso del proyecto. En síntesis, este modelo posee una determinada holgura para la modificación de requerimientos, ayudando al cliente a encontrar los faltantes de una manera tangible para la obtención de un sistema óptimo.

Una vez que un incremento se completa, es integrado al sistema y se le entrega al cliente un producto operacional. Esto significa que tienen una entrega temprana de la parte de la funcionalidad del sistema. Pueden experimentar con el sistema lo cual les ayuda a calificar sus requisitos para los incrementos posteriores.

Anteriormente se han mencionado las etapas generales del modelo incremental, pero con la finalidad de tener más claridad en su proceso se enumerarán estas fases más peculiares en el desarrollo del sistema.


  • Definición de un bosquejo de requisitos
  • Priorización de requisitos y asignación a incrementos
  • Diseño de la arquitectura del sistema
  • Desarrollo de los incrementos del sistema
  • Validación del incremento del sistema
  • Integración del incremento
  • Validación el sistema


Si el sistema está completo, este estará listo para la entrega final, de lo contrario regresará a la fase del desarrollo de un nuevo incremento del sistema.

CARACTERÍSTICAS


  • Aplica el enfoque lineal secuencial escalonadamente (Método Cascada).
  • Cada incremento agrega funcionalidad adicional o mejorada sobre el sistema.
  • Cada etapa debe cumplir con los requisitos establecidos conjuntamente con el cliente.
  • La propuesta del modelo es diseñar sistemas que puedan entregarse por plazos
  • A partir de la evaluación se planea el siguiente incremento y así sucesivamente.
  • Es interactivo por naturaleza.
  • Es útil cuando el personal no es suficiente para la implementación completa.
  • En lugar de entregar el sistema en una sola entrega, el desarrollo y la entrega están distribuidos entre incrementos.
  • Los requerimientos del usuario se priorizan y los requerimientos de prioridad más alta son incluidos en los incrementos tempranos.
  • La entrega de incrementos tempranos como un prototipo, ayudan a obtener requisito para los incrementos más tardíos.
  • El desarrollo incremental es el proceso de construcción siempre incrementando subconjuntos de requerimientos del sistema.
  • El usuario se involucra más y su opinión y retroalimentación en cada iteración es fundamental para el desarrollo del sistema.
  • Requiere gestores expertos.


¿CUÁNDO UTILIZARLO?

Este modelo se utiliza cuando no se puede especificar todos los requisitos del software en la fase principal, sino que el proceso ayudará a ir descubriendo paso a paso los requisitos a partir de cada nueva entrega.

Útil cuando se cuenta con un tiempo límite y no se dispone del personal suficiente para que el propósito sea implementado completamente.


VENTAJAS

Dentro de las ventajas que ofrece este modelo, lo podemos agrupar en dos partes. Las
ventajas del usuario y las ventajas del equipo de desarrollo del software.

VENTAJAS USUARIO

  • Permite entregar al cliente un producto más rápido en comparación del modelo de cascada. 
  • Se evitan proyectos largos y se entrega “algo de valor” a los usuarios con cierta
  • El usuario se involucra más en el desarrollo del sistema.
  • Provee un impacto ventajoso frente al cliente, que es la entrega temprana de partes operativas del Software.
  • Brinda flexibilidad para que durante el desarrollo se incluyan cambios en los requisitos por parte del usuario.
  • El resultado puede ser muy positivo.


VENTAJAS DESARROLLADOR


  • Resulta más sencillo acomodar cambios al acortar el tamaño de los incrementos.
  • Construir un sistema pequeño es siempre menos riesgoso que construir un sistema
  • Si un error importante es realizado, sólo la última iteración necesita ser descartada.
  • Reduciendo el tiempo de desarrollo de un sistema, decrecen las probabilidades que los requerimientos de usuarios puedan cambiar durante el desarrollo.
  • Si un error importante es realizado, el incremento previo puede ser usado.
  • Los errores de desarrollo realizados en un incremento, pueden ser arreglados antes del comienzo del próximo incremento.


DESVENTAJAS


  • El modelo Incremental no es recomendable para casos de sistemas de tiempo real, de alto nivel de seguridad, de procesamiento distribuido, y/o de alto índice de riesgos (sistemas complejos o robustos).
  • Requiere de un alto nivel de planeación, tanto administrativa como técnica, para la gestión de las iteraciones. Por lo que requiere de equipos de trabajo con personal experimentado y consiente de las habilidades de cada miembro.
  • Requiere de metas claras para conocer el estado del proyecto y se solventa con la ayuda de un experto presente a lo largo del desarrollo del sistema, no siempre viable en todos los casos.
  • Se necesitan pruebas de regresión y su costo puede aumentar dado el trabajo que se involucra en cada etapa, en función a la aceptación del cliente.



CONCLUSIÓN

Un modelo incremental lleva a pensar en un desarrollo modular, con entregas parciales del producto Software denominados "incrementos" del sistema, que son escogidos en base a prioridades predefinidas de algún modo.

El modelo permite una implementación con refinamientos sucesivos (ampliación y/o Con cada incremento se agrega nueva funcionalidad o se cubren nuevos requisitos o bien se
mejora la versión previamente implementada del producto software.


Referencia Fotográfica

[Figura 1. El modelo incremental]. Recuperado de:
https://procesosoftware.wikispaces.com/file/view/imagen.png/379099348/imagen.png



Referencia documental


  • Alarcos. (2012).Ciclo de vida del software. Universidad de Castilla-La Mancha. Retrieved from http://alarcos.inf-cr.uclm.es/doc/ISOFFTAREI/Tema03.pdf
  • scruz334. (2007). MODELOS DE PROCESO ITERATIVOS E INCREMENTALES. 2007, deBlogdiario.com Sitio web: http://scruz334.blogspot.es/1193793960/
  • Proceso software (2011). Modelo Incremental. 2011, de Procesosoftware.wikispaces.com Sitio web: https://procesosoftware.wikispaces.com/Modelo+Incremental#discussion
  • Trejo, A. & Rodríguez, R.. (2013). Modelo Incremental y Modelo Cascada. Febrero 20,2016, de SlideShare Sitio web: http://es.slideshare.net/RdXD/diapositiva-21962997