modelos para el desarrollo de software v3

37
Paradigmas para el desarrollo de software Marco Guerrero Edith Carreño Luis Zapatero Ingeniería en Informática. UNIDEG Juventino Rosas

Upload: marco-guerrero

Post on 13-Jul-2015

133 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: Modelos para el desarrollo de software V3

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

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

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

«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

«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

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

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

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

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

Aplicación

Es necesario completar cada nivel antes de iniciar la siguiente actividad

Modelo cascada

Page 11: Modelos para el desarrollo de software V3

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

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

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

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

• 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

• 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

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

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

• 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

• 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

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

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

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

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

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

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

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

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

Modelo de ensamblaje de componentes

Page 30: Modelos para el desarrollo de software V3

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

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

• 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

Modelo de desarrollo concurrente

Page 34: Modelos para el desarrollo de software V3

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

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

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

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.