modelos para el desarrollo de software v3

Post on 13-Jul-2015

133 Views

Category:

Documents

3 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Paradigmas para el desarrollo de softwareMarco GuerreroEdith CarreñoLuis ZapateroIngeniería en Informática.UNIDEG Juventino Rosas

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.

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.

«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.

«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.

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.

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

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

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

Aplicación

Es necesario completar cada nivel antes de iniciar la siguiente actividad

Modelo cascada

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

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

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

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.

• 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

• 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

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.

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.

• 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

• Este proceso impulsado riesgo continúa hasta que se comprendan los principales riesgos del desarrollo de software.

Modelo espiral

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

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.

Desventajas

• El desarrollo del sistema es tardado.

• Es un modelo costoso.

• Requiere experiencia para la identificación de riesgos.

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

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

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.

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.

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

Modelo de ensamblaje de componentes

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.

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.

• 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

Modelo de desarrollo concurrente

Ventajas

• Excelente para proyectos donde se conforman grupos detrabajos independientes.

• Proporciona una imagen exacta del estado actual de unproyecto.

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.

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.

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.

top related