Anzeige

Modelos de desarrollo de software

8. Jul 2020
Anzeige

Más contenido relacionado

Anzeige

Modelos de desarrollo de software

  1. República Bolivariana de Venezuela Ministerio del Poder Popular para la Educación Universitaria I.U.P. “Santiago Mariño” Cabimas, Edo. Zulia Modelos de desarrollo de software Realizado por: Alejandro Silva V-29.679.468 Ing. de Sistemas Fecha: julio de 2020
  2. Introducción Los modelos de desarrollo de software representan un enfoque común, que puede ser modificado y adaptado según las necesidades del software en proceso de desarrollo. Existen varios modelos para el proceso de desarrollo, cada uno con pros y contras. Se recomienda elegir el más adecuado a las necesidades del proyecto, sin embargo, a veces conviene utilizar una combinación de varios modelos.
  3. Modelo en cascada Define estas etapas que deben cumplirse sucesivamente:1. Especificación de los requerimientos 2. Diseño del software 3. Implementación o construcción 4. Integración 5. Pruebas o validación 6. Despliegue o instalación 7. Mantenimiento Al seguir este modelo estrictamente, una fase comienza solamente si la anterior ha terminado. A veces se hace una revisión antes de comenzar la siguiente fase, lo cual da lugar a un proceso de control formal de cambio. Con ellas también se asegura la finalización completa de la fase previa; los criterios para completar una fase a menudo se conocen como “gate” (puerta en inglés). Este modelo no recomienda revisar fases ya completadas, lo que lo hace objeto de crítica por su falta de flexibilidad.
  4. Modelo en espiral Su principal característica es la gestión periódica de riesgos en el proceso de desarrollo. La espiral se representa como un proceso que pasa a través de unas interacciones con el diagrama de los cuatro cuadrantes correspondientes a las siguientes actividades:1. Crear planes con el fin de identificar los objetivos del software, elegidos para implementar el programa y aclarar las restricciones en su desarrollo. 2. Analizar riesgos evaluando analíticamente los programas seleccionados, para buscar cómo identificar y eliminar esos riesgos. 3. Implementar el proyecto para hacer las verificaciones que hagan falta.
  5. Modelo en espiral El modelo en espiral enfatiza los riesgos, y hace hincapié en las condiciones de las opciones y limitaciones para facilitar la reutilización de software. La calidad del software puede ayudar como una meta propia en la fase de integración. Sin embargo, este modelo también tiene sus limitaciones, entre las que destacan: 1. Como el énfasis está en el análisis de riesgo, requiere de clientes que lo acepten y actúen al respecto, para lo cual se necesita confianza en los desarrolladores y gastar más dinero para solventar los temas.2. Este modelo no se debe utilizar si la implementación del análisis de riesgos afecta esencialmente a los beneficios del proyecto. 3. Los desarrolladores de software tienen que buscar riesgos de forma explícita, y analizarlos exhaustivamente para hacer que el modelo funcione. Primero se busca un plan para conseguir los objetivos con las limitaciones del proyecto, para localizar y eliminar todo riesgo potencial mediante un análisis cuidadoso, e incluyendo la fabricación de un prototipo a ser necesario. Si resulta imposible descartar algunos riesgos, el cliente debe decidir si es seguro terminar el proyecto o seguir adelante ignorando esos riesgos. Finalmente, se evalúan los resultados y se procede a diseñar la siguiente fase.
  6. Modelo de prototipos Pertenece a los modelos evolutivos, en los que el prototipo debe construirse rápidamente y con pocos recursos. El prototipo se construye para mostrárselo al cliente, obtener críticas y retroalimentación, con lo cual se obtienen requisitos específicos para la aplicación partiendo de las metas gráficas mostradas. Sus etapas son las siguientes:1. Planificación rápida 2. Modelo 3. Construcción del prototipo 4. Entrega y retroalimentación 5. Comunicación 6. Entrega del desarrollo final Una de sus ventajas es que es apto para el cliente que conoce grosso modo el objetivo del software; al mismo tiempo, el equipo de desarrollo goza de una mejor visibilidad de la interacción del cliente con el software y el ambiente en donde debe realizarse.
  7. Desarrollo iterativo e incremental Solventa los problemas del modelo de cascada y ofrece entornos de trabajo con técnicas para su utilización correcta. Este tipo de modelo es fundamental para el método de programación extrema (XP), el cual consiste en realizar programas de manera incremental, y sirve para obtener ventaja de lo que se ha realizado a lo largo del proyecto. Se hacen varias iteraciones, cada vez más cercanas al software final y a su vez, se agregan nuevas funcionalidades en cada etapa. Se subdivide en los siguientes procesos:1. Etapa de inicialización: construcción de un producto en el cual se pueda obtener retroalimentación por parte del usuario final. 2. Etapa de iteración: análisis, rediseño e implementación del producto de las iteraciones previas.3. Lista de control del proyecto: son tareas que se crean para describir las partes que conforman el proyecto; son implementadas y rediseñadas en cada iteración del producto.
  8. Desarrollo concurrente También llamado ingeniería concurrente, se utiliza mayormente para aplicaciones cliente-servidor, en el cual se describen los diversos procesos que ocurren simultáneamente en la aplicación. Este proceso se aboca a las necesidades del usuario, las decisiones de la gestión y los resultados de las revisiones. Por un lado, está orientado a grupos de trabajo independientes, ofreciendo una visión exacta de lo que se lleva del proyecto. Por otro lado, se necesitan grupos de trabajo y las condiciones necesarias para su implementación.
  9. Modelo orientado a la reutilización La reutilización de software es un proceso donde se recurre a usar activos de software en las especificaciones de análisis, diseños, implementación y pruebas de una aplicación o sistemas de software. La reutilización tiene algunos indicadores, por ejemplo: 1. Entre 40% y 60% de una aplicación es reutilizable en otra.2. Alrededor del 0% de una aplicación administrativa es reutilizable.3. Alrededor del 75% de las funciones son comunes a más de un programa.4. Solo el 15% del código encontrado en muchos sistemas es único y novedoso a una aplicación específica.El rango general de uso recurrente está entre 15% y 85%. La reutilización tiene principios como la existencia de parecidos en otros sistemas del mismo dominio, donde el software puede representarse como una combinación de módulos y los sistemas nuevos pueden distinguirse respecto a los antiguos.
  10. Espiral Incremental Reutilización Ventajas - Su estructura es cíclica - Gestiona los riesgos cada cierto tiempo - Participación y feedback del cliente - Ideal para proyectos grandes - Tiempo de desarrollo reducido - Implementa la funcionalidad parcial - Entrega rápida del producto al cliente - Es más sencillo acomodar cambios con cada incremento - Reduce los costos y el tiempo - Incrementa la productividad - No se reinventan las soluciones - Facilita compartir productos del ciclo de vida Desventajas - Requiere de mucho dinero - Complejidad muy alta - Hay que saber gestionar el tiempo - Mucha planificación - No recomendado para algunos sistemas - Necesita metas claras - Necesidad de inversión - Falta de métodos adecuados - Necesidad de formar personal - Convencer al Cuadro comparativo
  11. Conclusión De todos los modelos expuestos en esta presentación, yo me iría por el modelo orientado a la reutilización, principalmente porque implica menos trabajo al comenzar con un producto ya hecho, lo que facilita su modificación; al mismo tiempo reduce el tiempo necesario para terminar un programa al igual que su costo, esto significa más puntualidad para entregarlo al cliente. Sin embargo, esto también requiere un mínimo de conocimiento previo en el ámbito de programación, para poder entender el código que se está manejando al momento de elaborar el programa. Igualmente, este modelo es una buena opción cuando no se tienen los requisitos necesarios para emplear otros modelos.
  12. Bibliografía https://es.wikipedia.org/wiki/Proceso_para_el_desarrollo_de_software https://www.elconspirador.com/2013/08/19/modelos-de-desarrollo-de-software/
Anzeige