Desarrollo Evolutivo: Metodología INCREMENTAL
No existe programas que aplique netamente este modelo
LINK: Metodología INCREMENTAL
Metodología de Desarrollo de Software
Desarrollo Evolutivo: METODOLOGÍA INCREMENTAL
DESCRIPCIÓN
El modelo incremental aplica secuencias lineales de forma escalonada mientras progresa el tiempo en el calendario. Cada secuencia lineal produce un “incremento” de software.
El modelo incremental entrega el software en partes pequeñas, pero utilizables, llamadas incrementos. En general cada incremento se construye sobre aquel que ya ha sido entregado. Cada secuencia lineal produce un incremento del software. El primer incremento generalmente es un producto esencial denominado núcleo.
CREADORES
El modelo incremental fue propuesto por Harlan Mills en el año 1980.
ETAPAS DE LA INGENIERÍA DE SOFTWARE CUBRE
Las etapas de ingeniería de software que cubre el modelo incremental son Definición y Desarrollo.
- Definición:
- Análisis
- Desarrollo:
- Diseño
- Código
- Prueba
CLASIFICAR LA METODOLOGÍAS
Los modelos evolutivos son iterativos. Se caracterizan por la manera en la que permiten
desarrollar versiones cada vez más completas del software.
El Modelo Incremental combina elementos del Modelo Lineal Secuencial (aplicados repetidamente) con la filosofía interactiva de Construcción de Prototipos.
OBJETIVOS
El enfoque incremental de desarrollo surge 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.
En los primeros desarrollos se podía esperar largo tiempo hasta que el software estuviese listo. Las reglas del negocio de hoy no lo permiten.
ETAPAS, FASES Y/O PROCESOS
En una visión genérica, el proceso se divide en 4 partes:
- Análisis
- Diseño
- Código
- Prueba
ROLES Y/O INTERVINIENTES
Dado que cada incremento es un modelo en cascada lineal secuencial, los roles intervinientes son los mismos para ambos modelo.
Saber distinguir las obligaciones y limitaciones de cada uno de los roles del equipo ayuda a que el trabajo lo realicen las personas mejor capacitadas para ello, lo que se traduce en mayor calidad. Roles distintos no necesariamente significa personas distintas, sobre todo en equipos muy reducidos. Una persona puede adoptar más de un rol, puede ir adoptando distintos roles con el paso del tiempo, o rotar de rol a lo largo del día. Hagamos un repaso a los papeles más comunes en un proyecto software.
- Dueño del producto
- Cliente
- Analista de negocio
- Desarrolladores
Dueño del producto: Su misión es pedir lo que necesita (no el cómo, sino el qué) y aceptar o pedir correcciones sobre lo que se le entrega.
Cliente: Es el dueño del producto y el usuario final.
Analista de negocio: También es el dueño del producto porque trabaja codo a codo con el cliente y traduce los requisitos en tests de aceptación para que los desarrolladores los entiendan, es decir, les explica qué hay que hacer y resuelve sus dudas.
Desarrolladores: Toman la información del analista de negocio y deciden cómo lo van a resolver además de implementar la solución. Aparte de escribir código, los desarrolladores deben tener conocimientos avanzados sobre usabilidad y diseño de interfaces de usuario, aunque es conveniente contar con una persona experimentada para asistir en casos particulares. Lo mismo para la accesibilidad.
VENTAJAS Y DESVENTAJAS
Ventajas:
- Con un paradigma incremental se reduce el tiempo de desarrollo inicial, ya que se implementa la funcionalidad parcial.
- También provee un impacto ventajoso frente al cliente, que es la entrega temprana de partes operativas del Software.
- El modelo proporciona todas las ventajas del modelo en cascada realimentado, reduciendo sus desventajas sólo al ámbito de cada incremento.
- Permite entregar al cliente un producto más rápido en comparación del modelo de cascada.
- Resulta más sencillo acomodar cambios al acotar el tamaño de los incrementos.
- Por su versatilidad requiere de una planeación cuidadosa tanto a nivel administrativo como técnico.
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.
- Requiere de mucha planeación, tanto administrativa como técnica.
- Requiere de metas claras para conocer el estado del proyecto.
HERRAMIENTAS QUE SOPORTA LA METODOLOGÍA
Las herramientas que soportan la metodología elegida son:
- Mathlab
- Enterprise
- Project Gantt
PLANTEO DE EJERCICIO
APLICACIÓN DEL MÉTODO EVOLUTIVO INCREMENTAL EN EL DESARROLLO DE UN SIMULADOR DIDÁCTICO DE TRAYECTORIAS PLANAS
Se requiere desarrollar un simulador que pueda ser usado como herramienta didáctica para asignaturas como Física Básica, Cálculo Diferencial e Integral, Dinámica y Mecatrónica.
Análisis: El análisis de los incrementos se realiza mediante casos de uso. Las fórmulas requeridas para la programación se obtuvieron del modelo matemático del análisis vectorial del problema de trayectoria.
Para desarrollar el software se establecieron los siguientes cinco incrementos:
- Análisis Funcional. El cliente espera tener un software que realice las gráficas de los perfiles teóricos de velocidad, aceleración y desplazamiento partiendo de un perfil de velocidades. Y por otra parte que se realice una evaluación de los perfiles teóricos en un tiempo dado por el usuario.
- Suavización. El cliente espera un software que realice las gráficas de los perfiles suavizados de velocidad, aceleración y desplazamiento partiendo del perfil de velocidades (incremento 1) y los puntos geométricos del lugar geométrico por el cual se desplaza la partícula. De igual forma se requiere una evaluación de los perfiles suavizados en un tiempo dado por el usuario.
-
Análisis Vectorial. En esta etapa el cliente sólo requiere que el software realice la gráfica de lugar geométrico por el cual se desplaza la partícula y que las ecuaciones de espacio – tiempo se muestren en pantalla en función del tiempo.
- Animación de Trayectoria. En esta etapa el cliente pide que se muestre en pantalla el movimiento de la partícula en tiempo real. Se ofrezca al usuario la posibilidad de reducir o aumentar la escala de tiempo de la reproducción, pausarla o detenerla. De igual forma pide que se muestren la información necesaria para comprender el movimiento de la partícula.
- Optimización. El cliente espera el software final, es decir, crear una aplicación desde la cual se tenga acceso a los incrementos anteriores. Pide que se le muestre al usuario la información necesaria de las actividades que se pueden realizar con el software. Cada incremento requiere en una pantalla separada.
Diseño: La etapa de diseño se dividió en dos partes la de la interfaz del usuario y la de la estructura del sistema.
Codificación: La codificación de los diseños de interfaz y del sistema se realizó en la plataforma de MATLAB GUIDE (MATWORKS).
Pruebas: Este caso en particular es muy complicado realizar la comprobación de resultados, puesto que el objetivo principal del incremento es presentar al usuario la simulación. Sin embargo, el software también arroja resultados que pueden ser verificados, por ello se realiza una prueba de unidades.
CONCLUSIÓN
Llegamos a la conclusión de que el modelo incremental se aplica cuando en un proyecto no se dispone de tiempo y personal suficiente para entregar el proyecto (completo) en el lapso establecido.
En ese caso el proyecto es dividido en partes para que se puedan realizar pequeñas entregas (incompletas) al cliente. Si bien estas entregas son incompletas proporciona al usuario parte de la funcionalidad que precisa y también una plataforma para la evaluación.
Las primeras entregas pueden realizarse con menos personas trabajando en ellas.
Esta metodología que si bien se sigue utilizando, esta siendo lentamente reemplazada por metodologías ágiles similares, como Scrum.
BIBLIOGRAFIAS:
- Roger S. Pressman - “INGENIERÍA DEL SOFTWARE - Un enfoque práctico” - 5ta Edición.
- Roger S. Pressman - “INGENIERÍA DEL SOFTWARE - Un enfoque práctico” - 7ma Edición.
Alumnos:
- Gastón Nicolás Jara Rodríguez LU: 50542
- Débora Mattos LU: 43852