¿Qué son los modelos de desarrollo de software?
Los modelos de desarrollo de software son los múltiples procesos que se permanecen seleccionando para el desarrollo del plan en funcionalidad de las metas y metas del plan. Hay varios modelos de periodo de vida de desarrollo que se han desarrollado para poder hacer diferentes fines requeridos.
Contenido
Un modelo de desarrollo de software es una abstracción del proceso de desarrollo de programa. Los modelos especifican los periodos y el orden de un proceso. Entonces, piense en esto como una representación del orden de las ocupaciones del proceso y la sucesión en la que se hacen.
Un modelo definirá lo próximo:
- Las labores a hacer
- La acceso y salida de cada labor.
- Las condiciones previas y posteriores para cada labor.
- El flujo y la sucesión de cada labor.
Factores en la elección de modelos de desarrollo de software
Escoger el modelo de desarrollo de software conveniente para su plan podría ser difícil. Si conoce bien sus requisitos, va a ser más simple elegir el modelo de desarrollo de software que mejor se adapte a sus necesidades. Debería considerar los próximos componentes al elegir su modelo de proceso de programa:
Requerimientos del plan
Previo a escoger un modelo de desarrollo de software, tómese una época para verificar los requisitos del plan y aclararlos junto con las expectativas de su organización o equipo. ¿El cliente tendrá que especificar los requisitos en detalle luego de cada sesión iterativa? ¿ Cambiarán los requisitos a lo largo de el proceso de desarrollo?
Tamaño del plan
Considere la magnitud del plan en el cual trabajará. Los proyectos mayores significan conjuntos mayores, por lo cual requerirá planes de administración de proyectos más extensos y producidos.
Complejidad del plan
Los proyectos complicados tienen la posibilidad de no tener requisitos claros. Los requisitos tienen la posibilidad de modificar a menudo y el precio de la demora es elevado. Pregúntate si el plan necesita un seguimiento constante o retroalimentación por parte del comprador.
costo de la demora
¿El plan está bastante reducido en la época con un monumental precio de retraso, o los plazos son flexibles?
Involucramiento del comprador
¿Necesita consultar a los consumidores a lo largo de el proceso? ¿El cliente requiere participar en cada una de las fases?
familiaridad con la tecnología
Esto involucra el razonamiento y la vivencia de los desarrolladores con el dominio del plan, los instrumentos de programa, el lenguaje y los procedimientos necesarios para el desarrollo.
recursos del plan
Esto involucra la porción y disponibilidad de fondos, personal y otros recursos.
¿Cómo se clasifican los modelos de desarrollo de software?
Cada equipo, plan y sus restricciones son diferentes. No existe un modelo de desarrollo de programa que se adapte a todos los proyectos.
En este artículo, aprenderá sobre los modelos de desarrollo de programa predictivos y adaptativos, incrementales e iterativos.
Predictivo y Adaptativo
Predictivo supone que comprende realmente bien los requisitos del producto que está creando. El comprador sabe exactamente lo cual desea.
SDLC (Software Development Life Cycle): Requisitos—Diseño—Implementación—Pruebas—Despliegue. El producto está listo de una sola vez. No se anhelan cambios en los requisitos.
Adaptativo supone que tienes una iniciativa de lo cual vas a edificar empero no estás 100% seguro.
SDLC: Idea—Creación de una versión pequeña—Obtención de comentarios—Ajustes basados en los comentarios—Nueva versión—Obtención de comentarios — Ajustes basados en los comentarios — Nueva versión — ….. Finalmente, es viable que obtenga algo distinto de su iniciativa inicial.
Incremental e Iterativo, los dos o ninguno
En el modelo incremental, tiene una iniciativa bastante buena de lo cual va a edificar, sin embargo en vez de construirlo de una sola vez, lo construye en incrementos.
Ejemplo: si quiere edificar un carro, en el primer crecimiento crea llantas, en el segundo, el chasis, en el tercero, el motor, etcétera. Y al final, construyes un auto.
El modelo incremental es eficaz si la organización puede beneficiarse de productos intermedios o si va a modificar sus incrementos posteriores en funcionalidad de la retroalimentación de incrementos anteriores.
El modelo incremental puede ajustarse si obtiene retroalimentación y cambia sus incrementos futuros. Si no cambia sus incrementos futuros, es un modelo predictivo.
En el modelo iterativo, no tienes una iniciativa clara de lo cual vas a edificar, sin embargo tienes una iniciativa.
Ejemplo: si quiere contribuir a ir del sitio A al sitio B y no está seguro de lo cual es necesario, en la primera iteración construye una bicicleta, en la segunda, una moto, en la tercera, un coche, y de esta forma sucesivamente.
Ciertos modelos son solo incrementales, ciertos, solo iterativos, ciertos, tanto iterativos como incrementales, ciertos, ni iterativos ni incrementales.
Modelos de desarrollo que se utilizan en la fabricación de software
Los más importantes son:
- Modelo de cascada
- Modelo incremental
- Modelo RAD
- Modelo de prototipo
¿Cuántos modelos de desarrollo de software existen?
Son ocho tipos de modelos en ingeniería de software.
Tipos de Modelos de Desarrollo de Software
Los modelos especifican las distintas etapas del proceso y el orden en que se llevan a cabo.
La selección del modelo tiene un impacto muy alto en las pruebas que se realizan. Definirá el qué, dónde y cuándo de nuestras pruebas planificadas, influirá en las pruebas de regresión y determinará en gran medida qué técnicas de prueba utilizar.
Existen varios modelos de desarrollo de software , son los siguientes:
- Modelo de cascada
- Modelo V
- Modelo incremental
- Modelo RAD
- Modelo ágil
- Modelo iterativo
- Modelo espiral
- Modelo de prototipo
Es muy importante elegir el modelo correcto para el desarrollo del producto o la aplicación de software. Sobre la base del modelo se llevan a cabo los procesos de desarrollo y prueba.
Diferentes empresas en función de la aplicación o producto de software, seleccionan el tipo de modelo de desarrollo que se adapta a su aplicación. Pero estos días en el mercado la ‘ Metodología Agile ‘ es el modelo más utilizado.
‘ Waterfall Model ‘ es el modelo muy antiguo. En el ‘Modelo de cascada’, las pruebas comienzan solo después de que se completa el desarrollo. Por lo cual hay muchos defectos y fallas que se informan al final. Por lo tanto, el costo de solucionar estos problemas es alto. Por lo tanto, en estos días la gente prefiere el ‘modelo ágil’. En ‘Modelo ágil’ después de cada sprint hay una función de demostración para el cliente. Por lo tanto, el cliente puede ver las características si está satisfaciendo su necesidad o no.
El ‘ modelo V ‘ también es utilizado por muchas de las empresas en su producto. El ‘modelo V’ no es más que el modelo de ‘Verificación’ y ‘Validación’. En ‘V-model’, el ciclo de vida del desarrollador y el ciclo de vida del probador se asignan entre sí. En este modelo, las pruebas se realizan en paralelo al desarrollo.
Asimismo, también se utilizan ‘Modelo incremental’, ‘Modelo RAD’, ‘Modelo iterativo’ y ‘Modelo en espiral’ en función del requerimiento del cliente y la necesidad del producto.
Modelos ágiles de desarrollo de software
Lo demás de los modelos desarrollo de software que hemos escogido se hallan bajo el paraguas de Agile. En la actualidad, más del 70% de las empresas emplean este o ese enfoque Agile en sus proyectos de TI. Generalmente, en el corazón de Agile se hallan el desarrollo iterativo, la comunicación intensa y los primeros comentarios de los consumidores.
Cada iteración de Agile suele tardar algunas semanas y da una versión completa del programa que funciona. Los modelos de este conjunto se enfocan más en dar velozmente una sección servible de la aplicación.
Prestan menos atención a la documentación descriptiva del programa (especificación descriptiva de los requisitos, explicación descriptiva de la arquitectura) y más a las ocupaciones de prueba del programa. Esto fomenta un desarrollo veloz sin embargo alarga de manera considerable la transferencia de programa al equipo de soporte y provoca que su mantenimiento sea más difícil debido a que se dedica más tiempo a hallar el problema una vez que no existe una especificación descriptiva del programa.
Agile hablamos de laborar en estrecha participación tanto en los accesorios como con los consumidores. Finalmente de cada iteración, las piezas interesadas revisan el desarrollo del desarrollo y vuelven a evaluar la prioridad de las labores para la iteración futura con la intención de incrementar el retorno de la inversión (ROI) y asegurar la alineación con las necesidades del cliente y las metas comerciales.
De manera, los lanzamientos comunes son peculiares de los modelos ágiles. Además permiten la optimización continua del programa con correcciones y cambios simples, actualizaciones rápidas y suma de funcionalidades, y ayudan a dar aplicaciones que satisfacen mejor las necesidades de los usuarios. No obstante, la carencia de una organización descriptiva y la abertura a los cambios dificultan la estimación estricta del presupuesto, la era y los individuos elementales para el plan.
Casos de uso:
Fundamentalmente cualquier idea de inicio, una vez que es necesario la retroalimentación temprana de los usuarios finales.
La mayor parte de los proyectos de tamaño mediano en el desarrollo de programa personalizado donde los requisitos comerciales no se pueden traducir con confianza a requisitos de programa detallados.
Enormes proyectos que son sencillos de dividir en pequeñas piezas funcionales y tienen la posibilidad de desarrollar de manera incremental en cada iteración.
Agile viene en diferentes sabores. En la actualidad, sus subtipos más frecuentes son Scrum, Extreme Programming y Kanban.
Ventajas del modelo Agile:
Satisfacción del comprador por medio de la entrega inmediata y continua de programa eficaz.
Se enfatizan los individuos y las colaboraciones en vez de los procesos y los instrumentos. Los consumidores, desarrolladores y evaluadores interactúan una y otra vez entre sí.
El programa servible se entrega a menudo (semanas en vez de meses).
Ventajas y desventajas de los modelos de desarrollo de software
El modelo de desarrollo de software es una representación abstracta del proceso. Cada etapa del modelo de programa consta de numerosas ocupaciones para desarrollar productos de programa gradualmente.
Además especifica el orden en que se debería llevar a cabo cada etapa.
Dichos son diversos modelos de ingeniería de programa y sus ventajas y desventajas:
Modelo de cascada:
Necesita una buena comprensión y entendimiento de los requisitos y la tecnología relacionada con él.
ventajas: Es bastante simple y correcto llevar a cabo el modelo de cascada. Para la utilización de pequeños sistemas, es bastante eficaz.
Desventajas: Puede provocar cierta confusión si ciertos de los cambios se hacen en varias etapas. Antes que nada, se hace la exploración de requisitos y, al inicio, en ocasiones no es viable entablar todos los requisitos de manera explícita. Solo finalmente, el comprador puede ver el modelo de trabajo del plan.
La naturaleza lineal del modelo de cascada induce estados de bloqueo.
Modelo Espiral:
Se lleva a cabo en iteraciones y se usa para la administración de peligros. Por consiguiente, en novedosas iteraciones, los requisitos tienen la posibilidad de ser ubicados.
Ventajas : Por medio de la obra del primer ejemplar, el modelo de trabajo del sistema se puede diseñar velozmente. A lo largo de la fase de desarrollo, el inventor y el cliente tienen la posibilidad de refinar el Plan. Implicación del cliente en el plan.
Es bastante rentable y simple de conservar. La investigación y la reducción de peligros tienen la posibilidad de hacer de manera sistemática y idónea.
Desarrollo de proyectos bien planificado y eficiente.
Desventajas: En una secuencia de incrementos, el programa se lleva a cabo. Si la comunicación con el comprador no es buena o correcta, el resultado es la derrota total del plan o la carencia de triunfo o el plan que podría conducir a la omisión del plan.
Modelo Incremental :
Es un proceso de desarrollo de programa y se enfoca en iteraciones continuas cortas.
Ventajas: Si hay menos personas accesibles para el desarrollo del plan, este modelo es bastante eficaz. Los peligros técnicos tienen la posibilidad de gestionar de manera eficaz y bien estructurada. El producto primordial o final se puede enseñar al comprador en un breve lapso de tiempo.
Desventajas: Para este plan se necesitan desarrolladores y consumidores enormemente involucrados. Adoptar novedosas tecnologías y desarrollar el plan usando este modelo es bastante difícil y problemático. Se tienen la posibilidad de solicitar monumentales recursos.