SlideShare ist ein Scribd-Unternehmen logo
1 von 24
Downloaden Sie, um offline zu lesen
Contenido
 2.1 Metodologías clásicas
 2.1.1 Cascada
 2.1.2 Incremental
 2.1.3 Evolutivo
 2.1.4 Espiral
 2.1.5 Prototipos
 2.1.6 Desarrollo basado en componentes
 2.2 Otras Metodologías
 2.2.1 Ganar-ganar
 2.2.2 Proceso Unificado (UP)
 2.2.3 Ingeniería Web
 2.2.4 Metodologías Ágiles
 2.2.5 Metodologías emergentes
 2.3 Reingeniería
Evaluación
Examen 60%
Tareas y trabajos 30%
Participaciones 10%
100%
2.1 Metodologías clásicas
Ingeniería de software
2.1.1 CASCADA
 Este modelo tiene una secuencia ordenada.
 El trabajo de una etapa previa es la entrada del siguiente proceso.
 Provee de un gran control sobre las fechas de entrega y entregables.
 Establece criterios de entrada y salida en cada fase claramente
definidos.
 Dado que provee pocos puntos de visibilidad da la impresión de que
es lento.
Daniel
Ingeniería de software.
Cascada
Ventajas
 Excelente cuando se tiene un producto estable y se conoce la tecnología.
 Es un método muy estructurado que funciona bien con gente de poca
experiencia.
 Provee estabilidad en los requerimientos.
 La planeación se puede hacer anticipadamente.
 Para proyectos grandes.
Desventajas
 Tiene poca flexibilidad.
 Los proyectos en la práctica raramente siguen un flujo secuencial.
 Siempre es difícil para el cliente mostrar todos los requerimientos
explícitamente y con mucha anticipación.
 El cliente debe tener paciencia.
 Es inflexible y no motiva al cambio.
 Poco apropiado para aplicaciones para la toma de decisiones.
 Los usuarios tienen una participación limitada.
Daniel
2.1.1 CASCADA
Ingeniería de software.2.1.2 INCREMENTAL
 Permite construir el proyecto en etapas incrementales en donde
cada etapa agrega funcionalidad.
 Cada etapa consiste de análisis, diseño, codificación y pruebas.
 Permite entregar al cliente un producto más rápido en
comparación del modelo de cascada.
 Reduce los riesgos ya que:
 Provee visibilidad sobre el progreso a través de sus nuevas
versiones.
 Provee retroalimentación a través de la funcionalidad
mostrada.
 Permite atacar los mayores riesgos desde el inicio.
 Se pueden hacer implementaciones parciales si se cuenta con la
suficiente funcionalidad.
 Las pruebas y la integración es constante.
 El progreso se puede medir en periodos cortos de tiempo.
 Resulta más sencillo acomodar cambios al acotar el tamaño de los
incrementos.
 Se puede planear en base a la funcionalidad que se quiere
entregar primero.
Daniel
Incremental
Ventajas
• Los clientes no esperan hasta el fin del desarrollo para utilizar el
sistema. Pueden empezar a usarlo desde el primer incremento.
• Los clientes pueden aclarar los requisitos que no tengan claros
conforme ven las entregas del sistema.
• Se disminuye el riesgo de fracaso de todo el proyecto, ya que se
puede distribuir en cada incremento.
• Las partes más importantes del sistema son entregadas primero,
por lo cual se realizan más pruebas en estos módulos y se
disminuye el riesgo de fallos.
Daniel
Incremental
Desventajas
• El modelo Incremental no es recomendable para casos de
sistemas de tiempo real, de alto nivel de seguridad, de
procesamiento distribuido, y/o de alto índice de riesgos.
• Requiere de mucha planeación, tanto administrativa como
técnica.
• Requiere de metas claras para conocer el estado del proyecto.
Daniel
2.1.2 INCREMENTAL
Ingeniería de software.2.1.3 Evolutivo
 La idea detrás de este modelo es el desarrollo de una implantación del
sistema inicial, exponerla a los comentarios del usuario, refinarla en N
versiones hasta que se desarrolle el sistema adecuado.
 Las actividades concurrentes son: especificación, desarrollo y
validación y se realizan durante el desarrollo de las versiones hasta
llegar al producto final.
 Existen dos tipos de desarrollo evolutivo:
a) Desarrollo Exploratorio: El objetivo de este enfoque es explorar con el usuario
los requisitos hasta llegar a un sistema final. El desarrollo comienza con las
partes que se tiene más claras. El sistema evoluciona conforme se añaden
nuevas características propuestas por el usuario.
b) Enfoque utilizando prototipos: El objetivo es entender los requisitos del usuario
y trabajar para mejorar la calidad de los requisitos. A diferencia del desarrollo
exploratorio, se comienza por definir los requisitos que no están claros para el
usuario y se utiliza un prototipo para experimentar con ellos. El prototipo ayuda
a terminar de definir estos requisitos.
Daniel
Ingeniería de software.2.1.3 Evolutivo
Ventajas
 La especificación puede desarrollarse de forma creciente.
 Los usuarios y desarrolladores logran un mejor entendimiento del
sistema. Esto se refleja en una mejora de la calidad del software.
 Es más efectivo que el modelo de cascada, ya que cumple con las
necesidades inmediatas del cliente.
Desventajas
 Proceso no Visible: Los administradores necesitan entregas para medir
el progreso. Si el sistema se necesita desarrollar rápido, no es efectivo
producir documentos que reflejen cada versión del sistema.
 Sistemas pobremente estructurados: Los cambios continuos pueden
ser perjudiciales para la estructura del software haciendo costoso el
mantenimiento.
 Para el rápido desarrollo se necesitan herramientas que pueden ser
incompatibles con otras o que poca gente sabe utilizar.
 Este modelo es efectivo en proyectos pequeños o medianos con poco
tiempo para su desarrollo y sin generar documentación para cada
versión.
Daniel
2.1.3 EVOLUTIVO
Ingeniería de software
2.1.4 ESPIRAL
 El modelo de desarrollo en espiral es actualmente uno de los más
conocidos y fue propuesto por Barry Boehm en 1986.
 El ciclo de desarrollo se representa como una espiral, en lugar de una
serie de actividades sucesivas con retrospectiva de una actividad a otra.
 Este modelo a diferencia de los otros toma en consideración
explícitamente el riesgo, esta es una actividad importante en la
administración del proyecto.
 Utiliza un enfoque evolutivo para la ingeniería de software, puesto que le
permite al desarrollador y al cliente entender y reaccionar conforme a los
riesgos en cada nivel evolutivo. De igual forma, utiliza la creación de
prototipos como un mecanismo de reducción de riesgo. Y conserva
aquellas propiedades del modelo en cascada.
Daniel
Introducción a los sistemas de información.
Espiral
Ventajas
 El producto avanza a pasos firmes solucionando riesgos en cada
iteración.
 El producto termina con todos los riesgos resueltos.
 Se pueden incluir otros métodos de desarrollo en las iteraciones.
 A medida que el costo aumenta, los riesgos se reducen.
 Se tienen puntos de control en cada interacción.
Desventajas
 Es complicado.
 Requiere de mucha administración.
 Difícil de definir los objetivos, metas que indiquen que podemos
avanzar al siguiente ciclo.
 Se puede caer en un desarrollo de nunca acabar.
Daniel
Ingeniería de software
2.1.5 PROTOTIPOS
 Un prototipo es una versión preliminar de un sistema de información
con fines de demostración o evaluación.
 Es un método menos formal de desarrollo.
 El prototipo es una técnica para comprender las especificaciones.
 Un prototipo puede ser eliminado.
 Un prototipo puede llegar a ser parte del producto final.
Daniel
2.1.4 ESPIRAL
Introducción a los sistemas de información.
Prototipos
Ventajas
 Útiles cuando los requerimientos son cambiantes.
 Cuando no se conoce bien la aplicación.
 Cuando el usuario no se quiere comprometer con los requerimientos.
 Cuando se quiere probar una arquitectura o tecnología.
 Cuando se requiere rapidez en el desarrollo.
Desventajas
 No se conoce cuando se tendrá un producto aceptable.
 No se sabe cuantas iteraciones serán necesarias.
 Da una falsa ilusión al usuario sobre la velocidad del desarrollo.
 Se puede volver el producto aún y cuando no este con los estándares.
Daniel
Introducción a los sistemas de información.
2.1.6 DESARROLLO BASADO EN
COMPONENTES
El desarrollo de software basado en componentes (DSBC) describe,
construye y utiliza técnicas software para la elaboración de sistemas
abiertos y distribuidos mediante el ensamblaje de partes software
reutilizables.
El DSBC es utilizado para reducir los costes, tiempos y esfuerzos de
desarrollo del software, a la vez que ayuda a mejorar la fiabilidad,
flexibilidad y la reutilización de la aplicación final.
Es referida como una filosofía conocida como “compre, y no
construya” y que abogaba por la utilización de componentes
prefabricados sin tener que desarrollarlos de nuevo.
Etimológicamente hablando, el término “componente” procede de la
palabra cumponere, que en latín significa cum “junto” y ponere
“poner”.
Daniel
Introducción a los sistemas de información.
2.1.6 DESARROLLO BASADO EN
COMPONENTES
Brown 1999. El proceso esta dividido en cuatro etapas:
(a) La selección de componentes.
La “selección de componentes” es un proceso que determina que componentes
ya desarrollados pueden ser utilizados.
(b) La adaptación de componentes.
Debido a que los componentes son creados para recoger diferentes necesidades
basadas en el contexto donde se crearon, estos tienen que ser adaptados
cuando se usan en un nuevo sistema.
(c) El ensamblaje de los componentes al sistema.
A través de una infraestructura bien definida y un estilo determinado: Se procede
a unir los componentes por medio de sus interfaces
(d) La evolución del sistema.
Los componentes pueden evolucionar y actualizarse
Daniel
Introducción a los sistemas de información.
2.1.6 DESARROLLO BASADO EN
COMPONENTES
Desventajas
La sustitución de un componente por otro suele ser una tarea tediosa y que
consume mucho tiempo, ya que el nuevo componente nunca será idéntico al
componente sustituido, y antes de ser incorporado en el sistema, este debe ser
perfectamente analizado de forma aislada y de forma conjunta con el resto de
los componentes con los que debe ensamblar dentro del sistema.
Daniel
2.1.6 DESARROLLO BASADO EN
COMPONENTES

Weitere ähnliche Inhalte

Was ist angesagt?

Sesión 3: Modelos prescriptivos de proceso
Sesión 3: Modelos prescriptivos de procesoSesión 3: Modelos prescriptivos de proceso
Sesión 3: Modelos prescriptivos de procesoCoesi Consultoria
 
Proceso del software
Proceso del softwareProceso del software
Proceso del softwareTensor
 
Fundamentos y metodos de analisis de requerimientos.
Fundamentos y metodos de  analisis de requerimientos.Fundamentos y metodos de  analisis de requerimientos.
Fundamentos y metodos de analisis de requerimientos.raquel yendez avila
 
Técnicas para la Obtención de Requerimientos
Técnicas para la Obtención de RequerimientosTécnicas para la Obtención de Requerimientos
Técnicas para la Obtención de RequerimientosJuan Carlos Olivares Rojas
 
Modelo de Ciclo de Vida de Prototipado Evolutivo
Modelo de Ciclo de Vida de Prototipado EvolutivoModelo de Ciclo de Vida de Prototipado Evolutivo
Modelo de Ciclo de Vida de Prototipado EvolutivoIván Cornejo
 
Modelos de Procesos de Software
Modelos de Procesos de SoftwareModelos de Procesos de Software
Modelos de Procesos de SoftwareJiuseppe Flores
 
Metodologia web
Metodologia webMetodologia web
Metodologia webAnel Sosa
 
Cuadro comparativo
Cuadro comparativo Cuadro comparativo
Cuadro comparativo Seba Briones
 
Modelo en cascada
Modelo en cascadaModelo en cascada
Modelo en cascadahome
 
Modelos Prescriptivos del Desarrollo del Sistema de Información
Modelos Prescriptivos del Desarrollo del Sistema de InformaciónModelos Prescriptivos del Desarrollo del Sistema de Información
Modelos Prescriptivos del Desarrollo del Sistema de InformaciónIsaias Toledo
 
2 2 estilos arquitectonicos
2 2 estilos arquitectonicos2 2 estilos arquitectonicos
2 2 estilos arquitectonicoslandeta_p
 

Was ist angesagt? (20)

Modelos evolutivos. incremental y espiral
Modelos evolutivos. incremental y espiralModelos evolutivos. incremental y espiral
Modelos evolutivos. incremental y espiral
 
Sesión 3: Modelos prescriptivos de proceso
Sesión 3: Modelos prescriptivos de procesoSesión 3: Modelos prescriptivos de proceso
Sesión 3: Modelos prescriptivos de proceso
 
Metodologia kendall y Kendall
Metodologia kendall y KendallMetodologia kendall y Kendall
Metodologia kendall y Kendall
 
Modelo evolutivo
Modelo evolutivoModelo evolutivo
Modelo evolutivo
 
Proceso del software
Proceso del softwareProceso del software
Proceso del software
 
Fundamentos y metodos de analisis de requerimientos.
Fundamentos y metodos de  analisis de requerimientos.Fundamentos y metodos de  analisis de requerimientos.
Fundamentos y metodos de analisis de requerimientos.
 
Técnicas para la Obtención de Requerimientos
Técnicas para la Obtención de RequerimientosTécnicas para la Obtención de Requerimientos
Técnicas para la Obtención de Requerimientos
 
Modelo de Ciclo de Vida de Prototipado Evolutivo
Modelo de Ciclo de Vida de Prototipado EvolutivoModelo de Ciclo de Vida de Prototipado Evolutivo
Modelo de Ciclo de Vida de Prototipado Evolutivo
 
Capas de la ingenieria de software
Capas de la ingenieria de softwareCapas de la ingenieria de software
Capas de la ingenieria de software
 
Modelos de Procesos de Software
Modelos de Procesos de SoftwareModelos de Procesos de Software
Modelos de Procesos de Software
 
Modelo basado en clases
Modelo basado en clasesModelo basado en clases
Modelo basado en clases
 
Metodologia web
Metodologia webMetodologia web
Metodologia web
 
Fundamentos de ingenieria del software (2)
Fundamentos de ingenieria del software (2)Fundamentos de ingenieria del software (2)
Fundamentos de ingenieria del software (2)
 
Cuadro comparativo
Cuadro comparativo Cuadro comparativo
Cuadro comparativo
 
Modelo incremental
Modelo incrementalModelo incremental
Modelo incremental
 
Modelo en cascada
Modelo en cascadaModelo en cascada
Modelo en cascada
 
Modelos Prescriptivos del Desarrollo del Sistema de Información
Modelos Prescriptivos del Desarrollo del Sistema de InformaciónModelos Prescriptivos del Desarrollo del Sistema de Información
Modelos Prescriptivos del Desarrollo del Sistema de Información
 
8.conceptos de diseño
8.conceptos de diseño8.conceptos de diseño
8.conceptos de diseño
 
Diseño arquitectónico
Diseño arquitectónicoDiseño arquitectónico
Diseño arquitectónico
 
2 2 estilos arquitectonicos
2 2 estilos arquitectonicos2 2 estilos arquitectonicos
2 2 estilos arquitectonicos
 

Andere mochten auch

Metodologías de Desarrollo de Software Tradicionales y Emergentes
Metodologías de Desarrollo de Software Tradicionales y EmergentesMetodologías de Desarrollo de Software Tradicionales y Emergentes
Metodologías de Desarrollo de Software Tradicionales y EmergentesMiguel Rodríguez
 
Metodologias De Desarrollo De Software
Metodologias De Desarrollo De SoftwareMetodologias De Desarrollo De Software
Metodologias De Desarrollo De Softwareguesta1695670
 
toma de desiciones
toma de desicionestoma de desiciones
toma de desicionescharly.oscar
 
Metodologia de desarrollo de software
Metodologia de desarrollo de softwareMetodologia de desarrollo de software
Metodologia de desarrollo de softwareVictor Varela
 
4 Clase Metodologia De Desarrolo De Software
4 Clase Metodologia De Desarrolo De Software4 Clase Metodologia De Desarrolo De Software
4 Clase Metodologia De Desarrolo De SoftwareJulio Pari
 
Clasificación de las metodologías de desarrollo de software
Clasificación de las metodologías de desarrollo de softwareClasificación de las metodologías de desarrollo de software
Clasificación de las metodologías de desarrollo de softwareElvisAR
 
Modelo De Desarrollo Evolutivo
Modelo De Desarrollo EvolutivoModelo De Desarrollo Evolutivo
Modelo De Desarrollo Evolutivocamilosena89
 
Modelos de desarrollo de software
Modelos de desarrollo de softwareModelos de desarrollo de software
Modelos de desarrollo de softwarekellypt1
 
Modelo incremental
Modelo incrementalModelo incremental
Modelo incrementalJose Caicedo
 
Desarrollo iterativo e incremental
Desarrollo iterativo e incrementalDesarrollo iterativo e incremental
Desarrollo iterativo e incrementalnoriver
 
Metodologías de desarrollo de software
Metodologías de desarrollo de softwareMetodologías de desarrollo de software
Metodologías de desarrollo de softwareJesenia Escobar
 
Metodologías emergentes
Metodologías emergentesMetodologías emergentes
Metodologías emergentesAnibal Ulibarri
 
Tipos de modelo y metodologias
Tipos de modelo y metodologiasTipos de modelo y metodologias
Tipos de modelo y metodologiasJosafat Mtz
 
FDD (Feature Driven Development)
FDD (Feature Driven Development)FDD (Feature Driven Development)
FDD (Feature Driven Development)urumisama
 

Andere mochten auch (20)

Metodologías de Desarrollo de Software Tradicionales y Emergentes
Metodologías de Desarrollo de Software Tradicionales y EmergentesMetodologías de Desarrollo de Software Tradicionales y Emergentes
Metodologías de Desarrollo de Software Tradicionales y Emergentes
 
Metodologias De Desarrollo De Software
Metodologias De Desarrollo De SoftwareMetodologias De Desarrollo De Software
Metodologias De Desarrollo De Software
 
toma de desiciones
toma de desicionestoma de desiciones
toma de desiciones
 
Metodologia clasica en cascada
Metodologia clasica en cascadaMetodologia clasica en cascada
Metodologia clasica en cascada
 
Metodología Clásica
Metodología ClásicaMetodología Clásica
Metodología Clásica
 
Metodologia de desarrollo de software
Metodologia de desarrollo de softwareMetodologia de desarrollo de software
Metodologia de desarrollo de software
 
Metodología de desarrollo de software
Metodología de desarrollo de softwareMetodología de desarrollo de software
Metodología de desarrollo de software
 
4 Clase Metodologia De Desarrolo De Software
4 Clase Metodologia De Desarrolo De Software4 Clase Metodologia De Desarrolo De Software
4 Clase Metodologia De Desarrolo De Software
 
Clasificación de las metodologías de desarrollo de software
Clasificación de las metodologías de desarrollo de softwareClasificación de las metodologías de desarrollo de software
Clasificación de las metodologías de desarrollo de software
 
Metodologia estructurada
Metodologia estructuradaMetodologia estructurada
Metodologia estructurada
 
Modelo De Desarrollo Evolutivo
Modelo De Desarrollo EvolutivoModelo De Desarrollo Evolutivo
Modelo De Desarrollo Evolutivo
 
Modelos de desarrollo de software
Modelos de desarrollo de softwareModelos de desarrollo de software
Modelos de desarrollo de software
 
Modelo incremental
Modelo incrementalModelo incremental
Modelo incremental
 
Desarrollo iterativo e incremental
Desarrollo iterativo e incrementalDesarrollo iterativo e incremental
Desarrollo iterativo e incremental
 
Metodologías de desarrollo de software
Metodologías de desarrollo de softwareMetodologías de desarrollo de software
Metodologías de desarrollo de software
 
Metodologías emergentes
Metodologías emergentesMetodologías emergentes
Metodologías emergentes
 
Enterprise Unified Process (EUP)
Enterprise Unified Process (EUP)Enterprise Unified Process (EUP)
Enterprise Unified Process (EUP)
 
Tipos de modelo y metodologias
Tipos de modelo y metodologiasTipos de modelo y metodologias
Tipos de modelo y metodologias
 
Modelo incremental
Modelo incrementalModelo incremental
Modelo incremental
 
FDD (Feature Driven Development)
FDD (Feature Driven Development)FDD (Feature Driven Development)
FDD (Feature Driven Development)
 

Ähnlich wie Metodologías de ingeniería de software clásicas y emergentes

metodologia de prototipos
metodologia de prototiposmetodologia de prototipos
metodologia de prototiposKeiner Valerio
 
Cuadro comparativo
Cuadro comparativoCuadro comparativo
Cuadro comparativojorge paez
 
Ciclo vida DESARROLLO DE SOFTWARE
Ciclo vida DESARROLLO DE SOFTWARECiclo vida DESARROLLO DE SOFTWARE
Ciclo vida DESARROLLO DE SOFTWAREJ Martin Luzon
 
Modelo de desarrollo del software
Modelo de desarrollo del softwareModelo de desarrollo del software
Modelo de desarrollo del softwareRazielLira
 
Modelo Descrptivos Del Proceso Del Sofware
Modelo Descrptivos  Del  Proceso Del SofwareModelo Descrptivos  Del  Proceso Del Sofware
Modelo Descrptivos Del Proceso Del Sofwareluisfe
 
Modelos o metodología en la is trabajo uniregminton
Modelos o metodología en la is trabajo uniregmintonModelos o metodología en la is trabajo uniregminton
Modelos o metodología en la is trabajo uniregmintonnerosita
 
Ciclo de vida
Ciclo de vidaCiclo de vida
Ciclo de vidamiguelgv
 
Modelo de cascadaa
Modelo de cascadaaModelo de cascadaa
Modelo de cascadaamendez45
 
Modelos de Ing de soft
Modelos de Ing de softModelos de Ing de soft
Modelos de Ing de softJazmin Cr
 
Desarrollo de aplicaciones web en el entorno servidor
Desarrollo de aplicaciones web en el entorno servidorDesarrollo de aplicaciones web en el entorno servidor
Desarrollo de aplicaciones web en el entorno servidorJomicast
 
Desarrollo Evolutivo
Desarrollo EvolutivoDesarrollo Evolutivo
Desarrollo EvolutivoFABIO
 
Desarrollo Evolutivo
Desarrollo EvolutivoDesarrollo Evolutivo
Desarrollo EvolutivoFABIO
 
Desarrollo Evolutivo
Desarrollo EvolutivoDesarrollo Evolutivo
Desarrollo Evolutivolorenislemus
 

Ähnlich wie Metodologías de ingeniería de software clásicas y emergentes (20)

prueva
pruevaprueva
prueva
 
metodologia de prototipos
metodologia de prototiposmetodologia de prototipos
metodologia de prototipos
 
Cuadro comparativo
Cuadro comparativoCuadro comparativo
Cuadro comparativo
 
Ciclo Vida del Software
Ciclo Vida del SoftwareCiclo Vida del Software
Ciclo Vida del Software
 
Apuntes
ApuntesApuntes
Apuntes
 
Ciclo vida DESARROLLO DE SOFTWARE
Ciclo vida DESARROLLO DE SOFTWARECiclo vida DESARROLLO DE SOFTWARE
Ciclo vida DESARROLLO DE SOFTWARE
 
Modelo de desarrollo del software
Modelo de desarrollo del softwareModelo de desarrollo del software
Modelo de desarrollo del software
 
Modelo Descrptivos Del Proceso Del Sofware
Modelo Descrptivos  Del  Proceso Del SofwareModelo Descrptivos  Del  Proceso Del Sofware
Modelo Descrptivos Del Proceso Del Sofware
 
Modelos o metodología en la is trabajo uniregminton
Modelos o metodología en la is trabajo uniregmintonModelos o metodología en la is trabajo uniregminton
Modelos o metodología en la is trabajo uniregminton
 
Ciclo de vida
Ciclo de vidaCiclo de vida
Ciclo de vida
 
Modelo de cascadaa
Modelo de cascadaaModelo de cascadaa
Modelo de cascadaa
 
Doc grupo2-webquest
Doc grupo2-webquestDoc grupo2-webquest
Doc grupo2-webquest
 
Modelos de Ing de soft
Modelos de Ing de softModelos de Ing de soft
Modelos de Ing de soft
 
Inf162 diapositiva...
Inf162 diapositiva...Inf162 diapositiva...
Inf162 diapositiva...
 
Modelos clasicos
Modelos clasicosModelos clasicos
Modelos clasicos
 
Modelos clasicos
Modelos clasicosModelos clasicos
Modelos clasicos
 
Desarrollo de aplicaciones web en el entorno servidor
Desarrollo de aplicaciones web en el entorno servidorDesarrollo de aplicaciones web en el entorno servidor
Desarrollo de aplicaciones web en el entorno servidor
 
Desarrollo Evolutivo
Desarrollo EvolutivoDesarrollo Evolutivo
Desarrollo Evolutivo
 
Desarrollo Evolutivo
Desarrollo EvolutivoDesarrollo Evolutivo
Desarrollo Evolutivo
 
Desarrollo Evolutivo
Desarrollo EvolutivoDesarrollo Evolutivo
Desarrollo Evolutivo
 

Metodologías de ingeniería de software clásicas y emergentes

  • 1.
  • 2. Contenido  2.1 Metodologías clásicas  2.1.1 Cascada  2.1.2 Incremental  2.1.3 Evolutivo  2.1.4 Espiral  2.1.5 Prototipos  2.1.6 Desarrollo basado en componentes  2.2 Otras Metodologías  2.2.1 Ganar-ganar  2.2.2 Proceso Unificado (UP)  2.2.3 Ingeniería Web  2.2.4 Metodologías Ágiles  2.2.5 Metodologías emergentes  2.3 Reingeniería
  • 3. Evaluación Examen 60% Tareas y trabajos 30% Participaciones 10% 100%
  • 5. Ingeniería de software 2.1.1 CASCADA  Este modelo tiene una secuencia ordenada.  El trabajo de una etapa previa es la entrada del siguiente proceso.  Provee de un gran control sobre las fechas de entrega y entregables.  Establece criterios de entrada y salida en cada fase claramente definidos.  Dado que provee pocos puntos de visibilidad da la impresión de que es lento. Daniel
  • 6. Ingeniería de software. Cascada Ventajas  Excelente cuando se tiene un producto estable y se conoce la tecnología.  Es un método muy estructurado que funciona bien con gente de poca experiencia.  Provee estabilidad en los requerimientos.  La planeación se puede hacer anticipadamente.  Para proyectos grandes. Desventajas  Tiene poca flexibilidad.  Los proyectos en la práctica raramente siguen un flujo secuencial.  Siempre es difícil para el cliente mostrar todos los requerimientos explícitamente y con mucha anticipación.  El cliente debe tener paciencia.  Es inflexible y no motiva al cambio.  Poco apropiado para aplicaciones para la toma de decisiones.  Los usuarios tienen una participación limitada. Daniel
  • 8. Ingeniería de software.2.1.2 INCREMENTAL  Permite construir el proyecto en etapas incrementales en donde cada etapa agrega funcionalidad.  Cada etapa consiste de análisis, diseño, codificación y pruebas.  Permite entregar al cliente un producto más rápido en comparación del modelo de cascada.  Reduce los riesgos ya que:  Provee visibilidad sobre el progreso a través de sus nuevas versiones.  Provee retroalimentación a través de la funcionalidad mostrada.  Permite atacar los mayores riesgos desde el inicio.  Se pueden hacer implementaciones parciales si se cuenta con la suficiente funcionalidad.  Las pruebas y la integración es constante.  El progreso se puede medir en periodos cortos de tiempo.  Resulta más sencillo acomodar cambios al acotar el tamaño de los incrementos.  Se puede planear en base a la funcionalidad que se quiere entregar primero. Daniel
  • 9. Incremental Ventajas • Los clientes no esperan hasta el fin del desarrollo para utilizar el sistema. Pueden empezar a usarlo desde el primer incremento. • Los clientes pueden aclarar los requisitos que no tengan claros conforme ven las entregas del sistema. • Se disminuye el riesgo de fracaso de todo el proyecto, ya que se puede distribuir en cada incremento. • Las partes más importantes del sistema son entregadas primero, por lo cual se realizan más pruebas en estos módulos y se disminuye el riesgo de fallos. Daniel
  • 10. Incremental Desventajas • El modelo Incremental no es recomendable para casos de sistemas de tiempo real, de alto nivel de seguridad, de procesamiento distribuido, y/o de alto índice de riesgos. • Requiere de mucha planeación, tanto administrativa como técnica. • Requiere de metas claras para conocer el estado del proyecto. Daniel
  • 12. Ingeniería de software.2.1.3 Evolutivo  La idea detrás de este modelo es el desarrollo de una implantación del sistema inicial, exponerla a los comentarios del usuario, refinarla en N versiones hasta que se desarrolle el sistema adecuado.  Las actividades concurrentes son: especificación, desarrollo y validación y se realizan durante el desarrollo de las versiones hasta llegar al producto final.  Existen dos tipos de desarrollo evolutivo: a) Desarrollo Exploratorio: El objetivo de este enfoque es explorar con el usuario los requisitos hasta llegar a un sistema final. El desarrollo comienza con las partes que se tiene más claras. El sistema evoluciona conforme se añaden nuevas características propuestas por el usuario. b) Enfoque utilizando prototipos: El objetivo es entender los requisitos del usuario y trabajar para mejorar la calidad de los requisitos. A diferencia del desarrollo exploratorio, se comienza por definir los requisitos que no están claros para el usuario y se utiliza un prototipo para experimentar con ellos. El prototipo ayuda a terminar de definir estos requisitos. Daniel
  • 13. Ingeniería de software.2.1.3 Evolutivo Ventajas  La especificación puede desarrollarse de forma creciente.  Los usuarios y desarrolladores logran un mejor entendimiento del sistema. Esto se refleja en una mejora de la calidad del software.  Es más efectivo que el modelo de cascada, ya que cumple con las necesidades inmediatas del cliente. Desventajas  Proceso no Visible: Los administradores necesitan entregas para medir el progreso. Si el sistema se necesita desarrollar rápido, no es efectivo producir documentos que reflejen cada versión del sistema.  Sistemas pobremente estructurados: Los cambios continuos pueden ser perjudiciales para la estructura del software haciendo costoso el mantenimiento.  Para el rápido desarrollo se necesitan herramientas que pueden ser incompatibles con otras o que poca gente sabe utilizar.  Este modelo es efectivo en proyectos pequeños o medianos con poco tiempo para su desarrollo y sin generar documentación para cada versión. Daniel
  • 15. Ingeniería de software 2.1.4 ESPIRAL  El modelo de desarrollo en espiral es actualmente uno de los más conocidos y fue propuesto por Barry Boehm en 1986.  El ciclo de desarrollo se representa como una espiral, en lugar de una serie de actividades sucesivas con retrospectiva de una actividad a otra.  Este modelo a diferencia de los otros toma en consideración explícitamente el riesgo, esta es una actividad importante en la administración del proyecto.  Utiliza un enfoque evolutivo para la ingeniería de software, puesto que le permite al desarrollador y al cliente entender y reaccionar conforme a los riesgos en cada nivel evolutivo. De igual forma, utiliza la creación de prototipos como un mecanismo de reducción de riesgo. Y conserva aquellas propiedades del modelo en cascada. Daniel
  • 16. Introducción a los sistemas de información. Espiral Ventajas  El producto avanza a pasos firmes solucionando riesgos en cada iteración.  El producto termina con todos los riesgos resueltos.  Se pueden incluir otros métodos de desarrollo en las iteraciones.  A medida que el costo aumenta, los riesgos se reducen.  Se tienen puntos de control en cada interacción. Desventajas  Es complicado.  Requiere de mucha administración.  Difícil de definir los objetivos, metas que indiquen que podemos avanzar al siguiente ciclo.  Se puede caer en un desarrollo de nunca acabar. Daniel
  • 17. Ingeniería de software 2.1.5 PROTOTIPOS  Un prototipo es una versión preliminar de un sistema de información con fines de demostración o evaluación.  Es un método menos formal de desarrollo.  El prototipo es una técnica para comprender las especificaciones.  Un prototipo puede ser eliminado.  Un prototipo puede llegar a ser parte del producto final. Daniel
  • 19. Introducción a los sistemas de información. Prototipos Ventajas  Útiles cuando los requerimientos son cambiantes.  Cuando no se conoce bien la aplicación.  Cuando el usuario no se quiere comprometer con los requerimientos.  Cuando se quiere probar una arquitectura o tecnología.  Cuando se requiere rapidez en el desarrollo. Desventajas  No se conoce cuando se tendrá un producto aceptable.  No se sabe cuantas iteraciones serán necesarias.  Da una falsa ilusión al usuario sobre la velocidad del desarrollo.  Se puede volver el producto aún y cuando no este con los estándares. Daniel
  • 20.
  • 21. Introducción a los sistemas de información. 2.1.6 DESARROLLO BASADO EN COMPONENTES El desarrollo de software basado en componentes (DSBC) describe, construye y utiliza técnicas software para la elaboración de sistemas abiertos y distribuidos mediante el ensamblaje de partes software reutilizables. El DSBC es utilizado para reducir los costes, tiempos y esfuerzos de desarrollo del software, a la vez que ayuda a mejorar la fiabilidad, flexibilidad y la reutilización de la aplicación final. Es referida como una filosofía conocida como “compre, y no construya” y que abogaba por la utilización de componentes prefabricados sin tener que desarrollarlos de nuevo. Etimológicamente hablando, el término “componente” procede de la palabra cumponere, que en latín significa cum “junto” y ponere “poner”. Daniel
  • 22. Introducción a los sistemas de información. 2.1.6 DESARROLLO BASADO EN COMPONENTES Brown 1999. El proceso esta dividido en cuatro etapas: (a) La selección de componentes. La “selección de componentes” es un proceso que determina que componentes ya desarrollados pueden ser utilizados. (b) La adaptación de componentes. Debido a que los componentes son creados para recoger diferentes necesidades basadas en el contexto donde se crearon, estos tienen que ser adaptados cuando se usan en un nuevo sistema. (c) El ensamblaje de los componentes al sistema. A través de una infraestructura bien definida y un estilo determinado: Se procede a unir los componentes por medio de sus interfaces (d) La evolución del sistema. Los componentes pueden evolucionar y actualizarse Daniel
  • 23. Introducción a los sistemas de información. 2.1.6 DESARROLLO BASADO EN COMPONENTES Desventajas La sustitución de un componente por otro suele ser una tarea tediosa y que consume mucho tiempo, ya que el nuevo componente nunca será idéntico al componente sustituido, y antes de ser incorporado en el sistema, este debe ser perfectamente analizado de forma aislada y de forma conjunta con el resto de los componentes con los que debe ensamblar dentro del sistema. Daniel
  • 24. 2.1.6 DESARROLLO BASADO EN COMPONENTES