MODELOS DE PROCESOS
DE SOFTWARE
2
DESARROLLO ITERATIVO E
INCREMENTAL
 Iterativo: cada vez re-visitamos las etapas del modelo en
cascada, rehacemos, refinamos y extendemos lo
hecho.
 Incremental: regularmente integramos los avances para
generar una versión con sentido para el cliente.
MODELO ESPIRAL:
• Puede considerarse como un meta modelo
de proceso.
• Aparece el análisis de riesgo.
• Se divide en un número de actividades
estructurales.
• En el modelo de Boehm aparecen 4 regiones
de tareas: Planificación, Análisis de riesgos,
Ingeniería, Evaluación del cliente.
• El avance se realiza desde el centro de la
espiral hacia el exterior.
MODELOS EVOLUTIVOS
Son modelos que se adaptan a la evolución que sufren los
requisitos del sistema en función del tiempo
Es un modelo de proceso de software evolutivo,
que proporciona el potencial para el desarrollo
rápido de versiones incrementales del software.
MODELO INCREMENTAL
Modelo de desarrollo concurrente
Desarrollo evolutivo
 Se puede expresar de manera esquematizada.
 Las actividades llevan procesos concurrentes.
 Es aplicable a todo tipo de desarrollo de software.
 Es un modulo aplicable para cliente soñador.
 Esta dirigido por las necesidades del usuario.
 Es aplicable al cliente servidor.
 Se evitan proyectos largos y se
entrega “algo de valor” a los
usuarios con cierta frecuencia.
 El usuario se involucre más.
 Difícil de evaluar el costo total.
 Difícil de aplicar a los sistemas
transaccionales que tienden a ser
integrados y a operar como un
todo.
 Requiere gestores
experimentados.
 Los errores en los requisitos se
detectan tarde.
 El resultado puede ser muy
positivo.
MODELO DE PROCESO AGIL
Los procesos ágiles constituyen un nuevo enfoque en el desarrollo de
software cuyas principales características son:
 Menor énfasis en el análisis, diseño y documentación
 Equipos pequeños
 Desarrollo incremental
 Programación (planificación temporal) en cajas de tiempo
 Supervivencia en un entorno caótico.
TIPOS DE METODOLOGIA
• Algunos ejemplos de metodología ágil :
• Programación extrema (ejemplo mas exitosos de metodologías agiles)
• Scrum
• Crystal
• Evolutionary Project Management (Evo)
• Feature Driven Development (FDD)
• Adaptive Software Developmen(ASD)
• Lean Development (LD) y Lean Software Development (LSD)
• Proceso Unificado de Desarrollo Software
• PROGRAMACIÓN EXTREMA :
Es el desarrollo de software basado en el modelo incremental está
indicado para equipos de tamaño mediano o pequeño requisitos
imprecisos y cambiantes.
CARACTERÍSTICAS:
El juego de la planificación
Versiones pequeñas
Programación en parejas
Propiedad colectiva
Metáfora
Diseño sencillo
Hacer pruebas
• DESARROLLO DE SOFTWARE ADAPTIVO
Es basado en la colaboración y orientado al desarrollo de sistemas
complejos.
Fases de ciclo de vida:
ESPECULACIÓN
-Inicio del proyecto
-Planificación del ciclo adaptativo: enunciado, restricciones y requisitos básicos
-Plan de lanzamiento: definición de un conjunto de ciclos (incrementos)
COLABORACIÓN
-Construir la funcionalidad definida en la fase anterior
-Uso de técnicas JAD (Joint Application Development) y trabajo colaborativo
APRENDIZAJE
-Revisión de calidad al final de cada ciclo
-Aprendizaje
DESARROLLO DE SOFTWARE ADAPTATIVO
Modelos de proceso de software

Modelos de proceso de software

  • 1.
  • 2.
    2 DESARROLLO ITERATIVO E INCREMENTAL Iterativo: cada vez re-visitamos las etapas del modelo en cascada, rehacemos, refinamos y extendemos lo hecho.  Incremental: regularmente integramos los avances para generar una versión con sentido para el cliente.
  • 3.
    MODELO ESPIRAL: • Puedeconsiderarse como un meta modelo de proceso. • Aparece el análisis de riesgo. • Se divide en un número de actividades estructurales. • En el modelo de Boehm aparecen 4 regiones de tareas: Planificación, Análisis de riesgos, Ingeniería, Evaluación del cliente. • El avance se realiza desde el centro de la espiral hacia el exterior. MODELOS EVOLUTIVOS Son modelos que se adaptan a la evolución que sufren los requisitos del sistema en función del tiempo Es un modelo de proceso de software evolutivo, que proporciona el potencial para el desarrollo rápido de versiones incrementales del software.
  • 4.
    MODELO INCREMENTAL Modelo dedesarrollo concurrente Desarrollo evolutivo  Se puede expresar de manera esquematizada.  Las actividades llevan procesos concurrentes.  Es aplicable a todo tipo de desarrollo de software.  Es un modulo aplicable para cliente soñador.  Esta dirigido por las necesidades del usuario.  Es aplicable al cliente servidor.  Se evitan proyectos largos y se entrega “algo de valor” a los usuarios con cierta frecuencia.  El usuario se involucre más.  Difícil de evaluar el costo total.  Difícil de aplicar a los sistemas transaccionales que tienden a ser integrados y a operar como un todo.  Requiere gestores experimentados.  Los errores en los requisitos se detectan tarde.  El resultado puede ser muy positivo.
  • 5.
    MODELO DE PROCESOAGIL Los procesos ágiles constituyen un nuevo enfoque en el desarrollo de software cuyas principales características son:  Menor énfasis en el análisis, diseño y documentación  Equipos pequeños  Desarrollo incremental  Programación (planificación temporal) en cajas de tiempo  Supervivencia en un entorno caótico.
  • 6.
    TIPOS DE METODOLOGIA •Algunos ejemplos de metodología ágil : • Programación extrema (ejemplo mas exitosos de metodologías agiles) • Scrum • Crystal • Evolutionary Project Management (Evo) • Feature Driven Development (FDD) • Adaptive Software Developmen(ASD) • Lean Development (LD) y Lean Software Development (LSD) • Proceso Unificado de Desarrollo Software
  • 7.
    • PROGRAMACIÓN EXTREMA: Es el desarrollo de software basado en el modelo incremental está indicado para equipos de tamaño mediano o pequeño requisitos imprecisos y cambiantes. CARACTERÍSTICAS: El juego de la planificación Versiones pequeñas Programación en parejas Propiedad colectiva Metáfora Diseño sencillo Hacer pruebas
  • 8.
    • DESARROLLO DESOFTWARE ADAPTIVO Es basado en la colaboración y orientado al desarrollo de sistemas complejos. Fases de ciclo de vida: ESPECULACIÓN -Inicio del proyecto -Planificación del ciclo adaptativo: enunciado, restricciones y requisitos básicos -Plan de lanzamiento: definición de un conjunto de ciclos (incrementos) COLABORACIÓN -Construir la funcionalidad definida en la fase anterior -Uso de técnicas JAD (Joint Application Development) y trabajo colaborativo APRENDIZAJE -Revisión de calidad al final de cada ciclo -Aprendizaje
  • 9.