modelos para el desarrollo de software v3
TRANSCRIPT
![Page 1: Modelos para el desarrollo de software V3](https://reader034.vdocuments.pub/reader034/viewer/2022042607/55a2b93f1a28ab92548b45d3/html5/thumbnails/1.jpg)
Paradigmas para el desarrollo de softwareMarco GuerreroEdith CarreñoLuis ZapateroIngeniería en Informática.UNIDEG Juventino Rosas
![Page 2: Modelos para el desarrollo de software V3](https://reader034.vdocuments.pub/reader034/viewer/2022042607/55a2b93f1a28ab92548b45d3/html5/thumbnails/2.jpg)
Introducción
Desde el principio de los tiempos, el ser humano –en busca deuna sociedad organizada- ha creado “paradigmas”.
Un “paradigma” no es más que un conjunto de compromisoscompartidos dentro de los cuales yacen supuestos que permitencrear un marco conceptual a partir del cual se le da ciertosentido y significado al mundo.
Por ello, también dentro del mundo de la informática existenmodelos y estipulaciones a seguir si deseamos desarrollarsoftware funcional y practico.
![Page 3: Modelos para el desarrollo de software V3](https://reader034.vdocuments.pub/reader034/viewer/2022042607/55a2b93f1a28ab92548b45d3/html5/thumbnails/3.jpg)
Modelos para el desarrollo de software
• Si se quiere hacer algocorrectamente, es necesarioque se sigan reglas yestipulaciones para hacerlo. Espor ello que el “Paradigmapara el desarrollo de software”nace de la agrupación de lasideas de la gente sobre elcómo construir programas ysobre cómo combinarlos engrandes sistemas de software.
![Page 4: Modelos para el desarrollo de software V3](https://reader034.vdocuments.pub/reader034/viewer/2022042607/55a2b93f1a28ab92548b45d3/html5/thumbnails/4.jpg)
«La crisis del software»
• El termino «crisis del software» fue creadodurante la primer conferencia sobre laingeniería de software de la NATO en1967.
• Durante las primeras décadas de la«ciencia de las computadoras» nosenfrentábamos con la dificultad de escribirprogramas útiles y eficientes en un rangode tiempo definido.
![Page 5: Modelos para el desarrollo de software V3](https://reader034.vdocuments.pub/reader034/viewer/2022042607/55a2b93f1a28ab92548b45d3/html5/thumbnails/5.jpg)
«La crisis del software»
Las causas del la «crisis del software» fueronligadas a la complejidad del desarrollo dehardware y software.
Esta crisis se manifestó de diferentes maneras:
• Los proyectos requerían de mayor presupuesto y tiempode lo establecido.
• El software no cumplía los requisitos, pues eraineficiente y de baja calidad.
• Era difícil darle mantenimiento al software y el códigoera complicado de entender.
![Page 6: Modelos para el desarrollo de software V3](https://reader034.vdocuments.pub/reader034/viewer/2022042607/55a2b93f1a28ab92548b45d3/html5/thumbnails/6.jpg)
Modelos para el desarrollo de software
Es por ello que podemosdecir que el “Paradigmapara el desarrollo desoftware” es un modelopara afrontar problemasque compartencaracterísticas comunes.
![Page 7: Modelos para el desarrollo de software V3](https://reader034.vdocuments.pub/reader034/viewer/2022042607/55a2b93f1a28ab92548b45d3/html5/thumbnails/7.jpg)
Existen varios paradigmas. Latarea del ingeniero es ver cuál esel que se adecua a su problema aresolver. En caso de no encontraruno exacto, el ingeniero puedecombinarlos entre ellos.
Modelos para el desarrollo de software
![Page 8: Modelos para el desarrollo de software V3](https://reader034.vdocuments.pub/reader034/viewer/2022042607/55a2b93f1a28ab92548b45d3/html5/thumbnails/8.jpg)
Existen varios modelos principales para el desarrollo desoftware.
• Modelo cascada
• Modelo Incremental
• Modelo de desarrollo concurrente
• Modelo espiral
• Modelo de ensamblaje de componentes
Modelos para el desarrollo de software
![Page 9: Modelos para el desarrollo de software V3](https://reader034.vdocuments.pub/reader034/viewer/2022042607/55a2b93f1a28ab92548b45d3/html5/thumbnails/9.jpg)
Propuesto por Royce en 1970.Es el paradigma más antiguo,por lo que fue el más utilizadodurante la creación del modeloestructurado.
Modelo cascada
![Page 10: Modelos para el desarrollo de software V3](https://reader034.vdocuments.pub/reader034/viewer/2022042607/55a2b93f1a28ab92548b45d3/html5/thumbnails/10.jpg)
Aplicación
Es necesario completar cada nivel antes de iniciar la siguiente actividad
Modelo cascada
![Page 11: Modelos para el desarrollo de software V3](https://reader034.vdocuments.pub/reader034/viewer/2022042607/55a2b93f1a28ab92548b45d3/html5/thumbnails/11.jpg)
Revisiones del ciclo de vida
Las «revisiones de ciclo de vida» deben de ser utilizadas para evaluar el progreso y determinar si debe o no proceder a la siguiente fase de desarrollo de software.
Modelo cascada
![Page 12: Modelos para el desarrollo de software V3](https://reader034.vdocuments.pub/reader034/viewer/2022042607/55a2b93f1a28ab92548b45d3/html5/thumbnails/12.jpg)
Sistemas precedentes
Para algunas categorías de sistemas intensivos de software, el paradigma de cascada puede ser una buena opción.
• Este tipo de sistemas están los “sistemas precedentes”
• Un “sistema precedente” está caracterizado por:
• Arquitectura del sistema y un diseño de software maduro y capaz de cumplir los requisitos.
• Equipos de sistemas de ingeniería y de desarrollo de software que tengan buena comunicación y que tengan experiencia previa con sistemas similares.
Modelo cascada
![Page 13: Modelos para el desarrollo de software V3](https://reader034.vdocuments.pub/reader034/viewer/2022042607/55a2b93f1a28ab92548b45d3/html5/thumbnails/13.jpg)
Ventajas
• Formaliza un marco para las fases de desarrollo de software
• Hace hincapié por adelantado en los requisitos de softwareestables y en las actividades de diseño
• Produce los requisitos de software y documentación de diseñodurante las primeras fases
• Es un modelo de un solo paso y por lo tanto puede ser rápidoy de bajo costo cuando se utiliza en las condiciones adecuadas
![Page 14: Modelos para el desarrollo de software V3](https://reader034.vdocuments.pub/reader034/viewer/2022042607/55a2b93f1a28ab92548b45d3/html5/thumbnails/14.jpg)
Desventajas
• Su mayor ventaja también es su desventaja. Si algo ha salidomal, no se puede volver atrás.
• Muchas veces el cliente no sabe lo que quiere, lo que puedetraer confusión y malentendidos al equipo, pues ya no sepueden hacer cambios avanzado el proceso.
• Pequeños errores que surgen al estar terminado el softwarecausa grandes problemas.
![Page 15: Modelos para el desarrollo de software V3](https://reader034.vdocuments.pub/reader034/viewer/2022042607/55a2b93f1a28ab92548b45d3/html5/thumbnails/15.jpg)
• El paradigma de desarrollo de software incremental implica el desarrollo de software en 'piezas' o incrementos. Por ello – a diferencia del modelo cascada – no necesita una secuencia lineal.
Modelo Incremental
![Page 16: Modelos para el desarrollo de software V3](https://reader034.vdocuments.pub/reader034/viewer/2022042607/55a2b93f1a28ab92548b45d3/html5/thumbnails/16.jpg)
• La idea principal está en el razonamiento en que algunas áreas presentan problemas únicos a analizar, pero otras no, entonces ¿Por qué retrasar el desarrollo de estas áreas?
• El proyecto se desarrolla características básicas y sencillas primero, después avanza a las más complicadas poco a poco hasta completar el modelo completo.
• La desventaja está en que los errores se detectan tarde y es costoso corregirlos.
Modelo Incremental
![Page 17: Modelos para el desarrollo de software V3](https://reader034.vdocuments.pub/reader034/viewer/2022042607/55a2b93f1a28ab92548b45d3/html5/thumbnails/17.jpg)
Ventajas
• Permite que el cliente se involucre mas en el desarrollo.
• El cliente se sentirá agradecido de la entrega temprana departes operativas del software.
• El desarrollo del software es mas veloz en comparación con elmodelo de cascada.
• En caso de que se detecte un error en el sistema, puedecorregirse.
![Page 18: Modelos para el desarrollo de software V3](https://reader034.vdocuments.pub/reader034/viewer/2022042607/55a2b93f1a28ab92548b45d3/html5/thumbnails/18.jpg)
Desventajas
• Es difícil calcular el coste total del proyecto.
• Los errores en los requisitos se detectan tarde.
• Requiere metas claras para conocer el estado del proyecto.
• Este modelo no se recomienda para casos de sistemas detiempo real, de alto nivel de seguridad de procesamientodistribuido y/o de alto índice de riesgos.
![Page 19: Modelos para el desarrollo de software V3](https://reader034.vdocuments.pub/reader034/viewer/2022042607/55a2b93f1a28ab92548b45d3/html5/thumbnails/19.jpg)
• Desarrollado en la década de 1980.
• El modelo espiral hace hincapié en prototiposimpulsados por riesgo.
• El análisis de riesgo se utiliza para identificar a loscandidatos de alto riesgo para la creación de prototipos. Laretroalimentación de los resultados de la creación deprototipos controlados se evalúa y el conocimientoobtenido se utiliza para mitigar los riesgos.
Modelo espiral
![Page 20: Modelos para el desarrollo de software V3](https://reader034.vdocuments.pub/reader034/viewer/2022042607/55a2b93f1a28ab92548b45d3/html5/thumbnails/20.jpg)
• Este proceso impulsado riesgo continúa hasta que se comprendan los principales riesgos del desarrollo de software.
Modelo espiral
![Page 21: Modelos para el desarrollo de software V3](https://reader034.vdocuments.pub/reader034/viewer/2022042607/55a2b93f1a28ab92548b45d3/html5/thumbnails/21.jpg)
Sistemas sin precedentes
• Es un sistema para el que no existen ejemplos de diseño y los requisitos y los riesgos todavía no se conocen.
• El modelo en espiral para el desarrollo de software es especialmente apropiado para sistemas sin precedentes (como en el departamento de defensa de Estados Unidos).
Modelo espiral
![Page 22: Modelos para el desarrollo de software V3](https://reader034.vdocuments.pub/reader034/viewer/2022042607/55a2b93f1a28ab92548b45d3/html5/thumbnails/22.jpg)
Ventajas
• Permite que se desarrolle un prototipo y que después elsistema base se idealice sobre el mismo.
• Se adapta a cualquier numero de cambios durante cualquierfase del proceso.
• Dado que el desarrollo del sistema se hace en pequeñosfragmentos, la estimación de costos es sencilla.
• Conforme el desarrollo se acerca al final, la experiencia delcliente con el sistema crece, por lo que se pueden analizar lasnecesidades del mismo a detalle.
![Page 23: Modelos para el desarrollo de software V3](https://reader034.vdocuments.pub/reader034/viewer/2022042607/55a2b93f1a28ab92548b45d3/html5/thumbnails/23.jpg)
Desventajas
• El desarrollo del sistema es tardado.
• Es un modelo costoso.
• Requiere experiencia para la identificación de riesgos.
![Page 24: Modelos para el desarrollo de software V3](https://reader034.vdocuments.pub/reader034/viewer/2022042607/55a2b93f1a28ab92548b45d3/html5/thumbnails/24.jpg)
La idea principal detrás de estemodelo es que en lugar decongelar un proyecto mientras setrata de asentar losrequerimientos; se desarrolla unprototipo con los puntos que setienen hasta el momento. Estopermite comprender mas afondo los requerimientos ynecesidades.
Modelo por prototipos
![Page 25: Modelos para el desarrollo de software V3](https://reader034.vdocuments.pub/reader034/viewer/2022042607/55a2b93f1a28ab92548b45d3/html5/thumbnails/25.jpg)
El cliente –al usar el prototipo-adquiere un entendimientomayor del sistema, pues «puedesentirlo» y verlo en acción.
Poco a poco, el sistema vatomando forma.
Por ello, a este modelo tambiénse le llama «evolutivo».
Modelo por prototipos
![Page 26: Modelos para el desarrollo de software V3](https://reader034.vdocuments.pub/reader034/viewer/2022042607/55a2b93f1a28ab92548b45d3/html5/thumbnails/26.jpg)
Ventajas
• Perfecto cuando los usuarios estan embueltos en el desarrollo.Pues permite adaptarlo a necesidades en las cuales no sehabia pensado.
• Aumenta el entendimiento que los usuarios tienen por elsistema mientras el desarrollo avanza.
• Funcionalidades olvidadas pueden ser identificadasfacilmente.
![Page 27: Modelos para el desarrollo de software V3](https://reader034.vdocuments.pub/reader034/viewer/2022042607/55a2b93f1a28ab92548b45d3/html5/thumbnails/27.jpg)
Desventajas
• Por su estilo, el sistema puede aumentar de tamaño hastasuperar los planes originales.
• Puede llegar a ser mas tardado que otros modelos.
• Es mas complicado llevar un orden a comparación de otrosmodelos.
![Page 28: Modelos para el desarrollo de software V3](https://reader034.vdocuments.pub/reader034/viewer/2022042607/55a2b93f1a28ab92548b45d3/html5/thumbnails/28.jpg)
Incorpora características delmodelo espiral.
Es evolutivo por naturaleza, yaque se identifican las clasesorientadas a objetos candidatas,esto se hace examinando losdatos que se manejan por laaplicación (por medio de unalgoritmo), las cuales –en unfuturo- pueden ser reutilizadas
Modelo de ensamblaje de componentes
![Page 29: Modelos para el desarrollo de software V3](https://reader034.vdocuments.pub/reader034/viewer/2022042607/55a2b93f1a28ab92548b45d3/html5/thumbnails/29.jpg)
Modelo de ensamblaje de componentes
![Page 30: Modelos para el desarrollo de software V3](https://reader034.vdocuments.pub/reader034/viewer/2022042607/55a2b93f1a28ab92548b45d3/html5/thumbnails/30.jpg)
Ventajas
• El análisis de riesgo se hace de forma explicita y clara.
• Une los mejores elementos de varios modelos.
• Reduce los riesgos del proyecto.
• Incorpora objetivos de calidad.
• Integra el desarrollo con el mantenimiento.
![Page 31: Modelos para el desarrollo de software V3](https://reader034.vdocuments.pub/reader034/viewer/2022042607/55a2b93f1a28ab92548b45d3/html5/thumbnails/31.jpg)
Desventajas
• Genera mucho tiempo en el desarrollo del sistema.
• Modelo costoso.
• Genera mucho trabajo adicional. Cuando un sistema falla, sepierde tiempo y presupuesto dentro de la empresa.
![Page 32: Modelos para el desarrollo de software V3](https://reader034.vdocuments.pub/reader034/viewer/2022042607/55a2b93f1a28ab92548b45d3/html5/thumbnails/32.jpg)
• Es un modelo de tipo de red donde todas las personas actúan simultáneamente desarrollando una serie de actividades técnicas importantes, tareas y estados asociados a ellas.
• Una gran ventaja es que proporciona una imagen actualizada del proyecto, pues no se restringe a una secuencia de sucesos. También es excelente para proyectos en los que se conforman grupos de trabajo independientes.
Modelo de desarrollo concurrente
![Page 33: Modelos para el desarrollo de software V3](https://reader034.vdocuments.pub/reader034/viewer/2022042607/55a2b93f1a28ab92548b45d3/html5/thumbnails/33.jpg)
Modelo de desarrollo concurrente
![Page 34: Modelos para el desarrollo de software V3](https://reader034.vdocuments.pub/reader034/viewer/2022042607/55a2b93f1a28ab92548b45d3/html5/thumbnails/34.jpg)
Ventajas
• Excelente para proyectos donde se conforman grupos detrabajos independientes.
• Proporciona una imagen exacta del estado actual de unproyecto.
![Page 35: Modelos para el desarrollo de software V3](https://reader034.vdocuments.pub/reader034/viewer/2022042607/55a2b93f1a28ab92548b45d3/html5/thumbnails/35.jpg)
Desventajas
• Si no existen grupos de trabajo, no se puede trabajar estemétodo.
• Si se cuenta con un solo grupo de trabajo incompetente, todoel proyecto peligrara.
![Page 36: Modelos para el desarrollo de software V3](https://reader034.vdocuments.pub/reader034/viewer/2022042607/55a2b93f1a28ab92548b45d3/html5/thumbnails/36.jpg)
Conclusiones
El avance se da a partir de expandir nuestros horizontes; deaceptar ideas nuevas
El análisis correcto de los problemas que se tienen en frente esla tarea de cualquier ingeniero que quiera tener éxito. Esto solopuede ser alcanzado teniendo los conocimientos necesarios ylas ganas de aplicarlos.
Por algo existen los paradigmas en el desarrollo de software.Han sido probados y funcionan.
![Page 37: Modelos para el desarrollo de software V3](https://reader034.vdocuments.pub/reader034/viewer/2022042607/55a2b93f1a28ab92548b45d3/html5/thumbnails/37.jpg)
Fuentes• http://www.sites.upiicsa.ipn.mx/polilibros/portal/Polilibros/P_proceso/ANALISIS_Y_DISEnO_DE_SISTEMAS/IngenieriaDeSoft
ware/CIS/UNIDAD%20I/1.5.htm
• http://revistavirtual.ucn.edu.co/index.php/RevistaUCN/article/viewFile/62/129
• http://asignaturasunimetaingeluzespita.bligoo.com/media/users/22/1135477/files/303935/Modelo_de_desarrollo_concurrente.pdf
• http://ldc.usb.ve/~vtheok/cursos/ci3711/apuntes/99-01-14/Info/Modelo%20de%20Ensamblaje.htm
• http://paradigmasiut.blogspot.mx/2013/04/metodologia-de-desarrollo-de-software.html
• http://www.paradigmas.mx/que-es-un-paradigma/
• http://proyectosinformaticoscht2009.wordpress.com/antes-de-empezar/marco-teorico/paradigmas-de-desarrollo-de-software/
• http://216.54.19.111/~mountaintop/sam101/scopage_dir/l5_acqstrat/l5_t3sdp.html
• http://ingenieraupoliana.blogspot.mx/2010/10/modelo-de-desarrollo-concurrente.html
• http://ingenieraupoliana.blogspot.mx/2010/10/modelo-de-desarrollo-basado-en.html
• http://es.wikipedia.org/wiki/Desarrollo_en_espiral
• http://quecomputadoracomprar.com/ventajas-y-desventajas-del-modelo-en-espiral/
• http://ingenieraupoliana.blogspot.mx/2010/10/modelo-incremental.html
• http://en.wikipedia.org/wiki/Software_crisis
• http://istqbexamcertification.com/what-is-prototype-model-advantages-disadvantages-and-when-to-use-it/
• Y material presente en la plataforma.