Metodologias y Ciclos de Vida

34
Ingeniería de Software Metodologías y Ciclos de Vida

description

Metodologias y Ciclos de Vida Metodologias y Ciclos de Vida Metodologias y Ciclos de Vida Metodologias y Ciclos de Vida Metodologias y Ciclos de Vida Metodologias y Ciclos de Vida Metodologias y Ciclos de Vida Metodologias y Ciclos de Vida Metodologias y Ciclos de Vida Metodologias y Ciclos de Vida Metodologias y Ciclos de Vida Metodologias y Ciclos de Vida Metodologias y Ciclos de Vida Metodologias y Ciclos de Vida Metodologias y Ciclos de Vida Metodologias y Ciclos de Vida Metodologias y Ciclos de Vida Metodologias y Ciclos de Vida Metodologias y Ciclos de Vida Metodologias y Ciclos de Vida Metodologias y Ciclos de Vida Metodologias y Ciclos de Vida Metodologias y Ciclos de Vida Metodologias y Ciclos de Vida Metodologias y Ciclos de Vida Metodologias y Ciclos de Vida Metodologias y Ciclos de Vida Metodologias y Ciclos de Vida Metodologias y Ciclos de Vida Metodologias y Ciclos de Vida Metodologias y Ciclos de Vida Metodologias y Ciclos de Vida Metodologias y Ciclos de Vida Metodologias y Ciclos de Vida Metodologias y Ciclos de Vida Metodologias y Ciclos de Vida Metodologias y Ciclos de Vida Metodologias y Ciclos de Vida Metodologias y Ciclos de Vida Metodologias y Ciclos de Vida Metodologias y Ciclos de Vida Metodologias y Ciclos de Vida Metodologias y Ciclos de Vida Metodologias y Ciclos de Vida Metodologias y Ciclos de Vida Metodologias y Ciclos de Vida Metodologias y Ciclos de Vida Metodologias y Ciclos de Vida Metodologias y Ciclos de Vida Metodologias y Ciclos de Vida Metodologias y Ciclos de Vida Metodologias y Ciclos de Vida Metodologias y Ciclos de Vida Metodologias y Ciclos de Vida Metodologias y Ciclos de Vida

Transcript of Metodologias y Ciclos de Vida

  • Ingeniera de SoftwareMetodologas y Ciclos de Vida

  • Metodologias: DefinicinEl conjunto de mtodos que se utilizan en una determinada actividad con el fin de formalizarla y optimizarla.

    Determina los pasos a seguir y cmo realizarlos para finalizar una tarea.

  • Metodologias: Aplicacin a la Ingeniera de SoftwareOptimiza el proceso y el producto software.

    Mtodos que guan en la planificacin y en el desarrollo del software.

    Define qu hacer, cmo y cundo durante todo el desarrollo y mantenimiento de un proyecto

  • Metodologias: Aplicacin a la Ingeniera de SoftwareSin metodologaCon metodologa

  • Metodologas: ElementosDefine una estrategia global para enfrentarse con el proyecto:

    Fases.Tareas a realizar en cada fase.

    Productos (final e intermedios).E/S de cada fase, documentos.

    Procedimientos y herramientas. Apoyo a la realizacin de cada tarea.

    Criterios de evaluacin.Del proceso y producto. Saber si se han logrado los objetivos.

  • Metodologas: VentajasDesde el punto de vista de gestin:

    Facilitar la tarea de planificacin.Facilitar la tarea de control y seguimiento de un proyecto.Mejorar la relacin coste/beneficio.Optimizar el uso de recursos disponibles.Facilitar la evaluacin de resultados y cumplimiento de los objetivos.Facilitar la comunicacin efectiva entre usuarios y desarrolladores.Ayuda a la gestin del proyecto.

  • Metodologa: VentajasDesde el punto de vista de los ingenieros del software:

    Ayudar a la comprensin del problema.

    Optimizar el conjunto y cada una de las fases del proceso de desarrollo.

    Facilitar el mantenimiento del producto final.

    Permitir la reutilizacin de partes del producto.

  • Metodologa: VentajasDesde el punto de vista del cliente o usuario final:

    Garanta de un determinado nivel de calidad en el producto final.

    Confianza en los plazos de tiempo fijados en la definicin del proyecto.

    Definir el ciclo de vida que ms se adecue a las condiciones y caractersticas del desarrollo.

  • Metodologa: VentajasDeterminar las fases dentro del ciclo de vida especificando su orden de ejecucin.

    Definir los resultados intermedios y finales.

    Proporcionar un conjunto de mtodos, herramientas y tcnicas para facilitar la tarea del ingeniero del software y aumentar suproductividad.

  • Ciclos de Vida: DefinicinConjunto de fases por las que pasa el sistema que se est desarrollando desde que nace la idea inicial hasta que el software es retirado o reemplazado (muere).

    Se denomina a veces paradigma.Dos puntos de vistaTransformacin del producto.Proceso que transforma el producto.

  • Ciclo de vida: funcionesUn ciclo de vida debe:

    Determinar el orden de las fases del proceso software.

    Establecer los criterios de transicin para pasar de una fase ala siguiente.

    Definir las entradas y salidas de cada fase.

  • Ciclo de vida: funcionesDescribir los estados por los que pasa el producto.

    Describir las actividades a realizar para transformar el producto.

    Definir un esquema que sirve como base para:

    Planificar.Organizar.Coordinar.Desarrollar....

  • Ciclo de vida: Situacin Real

  • Modelo ciclo de vida en cascada

  • Modelo ciclo de vida en cascadaCaractersticas:

    Es el ms utilizado.

    Es una visin del proceso de desarrollo de software como una sucesin de etapas que producen productos intermedios.

    Para que el proyecto tenga xito deben desarrollarse todas las fases.

    Las fases continan hasta que los objetivos se han cumplido.

    Si se cambia el orden de las fases, el producto final ser de inferior calidad,

  • Modelo ciclo de vida en cascadaCRITICAS:

    No refleja realmente el proceso de desarrollo del softwareSe tarda mucho tiempo en pasar por todo el cicloPerpetua el fracaso de la industria del software en sucomunicacin con el usuario finalEl mantenimiento se realiza en el cdigo fuenteLas revisiones de proyectos de gran complejidad son muy difcilesImpone una estructura de gestin de proyectos

  • Modelo ciclo de vida en cascadaLimitaciones:

    No se permiten las iteraciones.

    Los requisitos se congelan al principio del proyecto.

    No existe un proyecto enseable hasta el final del proyecto.

  • Modelo ciclo de vida en cascada

  • Modelo de ciclo de vida en espiral

  • Modelo de ciclo de vida en espiral

  • Modelo de ciclo de vida en espiralTrata de mejorar los ciclos de vida clsicos y prototipos.

    Permite acomodar otros modelos

    Incorpora objetivos de calidad y gestin de riesgosElimina errores y alternativas no atractivas al comienzo Permite iteraciones, vuelta atrs y finalizaciones rpidas

    Cada ciclo empieza identificando:

    Los objetivos de la porcin correspondienteLas alternativasRestricciones

    Cada ciclo se completa con una revisin que incluye todo el ciclo anterior y el plan para el siguiente

  • Modelo de ciclo de vida en espiralSe usa en proyectos en los que se prevn riesgos.

    Representa un enfoque dirigido por el riesgo para el anlisis y estructuracin del proceso software.

    Ventajas:

    Utiliza las fases de modelos tradicionales. Se centra en la eliminacin de errores y alternativas poco atractivas. Su orientacin a detectar y prevenir el riesgo evita muchas dificultades.

    Desventajas:

    Complicado: Consume muchos recursos. Las etapas y sus E/S no estn claramente definidas.

  • Modelos de refinamiento sucesivo por pasos o por mejora iterativa

  • Iterativo

  • Iterativo

  • IterativoEs una repeticin de varios ciclos de vida en cascada.Al final de cada ciclo se entrega una versin completa del software mejorada respecto a la anterior.Los ciclos se repiten hasta obtener un producto satisfactorio.Los usuarios deben evaluar el producto en cada iteracin y proponer mejoras. Se suele aplicar en desarrollos en los que los requisitos no estn claros, las primeras versiones pueden ser prototipos que se desechan posteriormente.

  • Incremental

  • IncrementalEs una repeticin de varios ciclos de vida en cascada.Al final de cada ciclo se entrega una versin parcial del software incrementada con cierta funcionalidad nueva respecto a las entregas anteriores.Los ciclos se repiten hasta obtener un producto completo.Los usuarios disponen antes del software, aunque no sea completo, por lo que pueden sugerir mejoras.Se suele aplicar a desarrollos de gran tamao.

  • IncrementalSe evitan proyectos largos y se entrega Algo de valor a los usuarios con cierta frecuencia

    El usuario se involucra ms

    Difcil de evaluar el coste total

    Requiere gestores experimentados

    Los errores en los requisitos se detectan tarde.

    El resultado es ser muy positivo

  • Modelo ciclo de vida prototipado

  • Modelo ciclo de vida prototipado

  • Modelo ciclo de vida prototipadoNo modifica el flujo del ciclo de vidaReduce el riesgo de construir productos que no satisfagan las necesidades de los usuariosReduce costos y aumenta la probabilidad de xitoExige disponer de las herramientas adecuadasNo presenta calidad ni robustezUna vez identificados todos los requisitos mediante el prototipo, se construye el producto de ingeniera.

  • Modelo ciclo de vida prototipadoEL PROTOTIPADOPARA QUE SEA EFECTIVO:

    Debe ser un sistema con el que se pueda experimentar Debe ser comparativamente barato (< 10%) Debe desarrollarse rpidamente Enfasis en la interfaz de usuario Equipo de desarrollo reducido Herramientas y lenguajes adecuados

    El prototipado es un medio excelente para recoger el feedback (realimentacin) del usuario final

  • Modelo ciclo de vida prototipadoPELIGROS DEL PROTOTIPO

    El cliente ve funcionando lo que para el es la primera versin del prototipo que ha sido construido con plastilina y alambres, y puede desilusionarse al decirle que el sistema aun no ha sido construido.

    El desarrollador puede caer en la tentacin deampliar el prototipo para construir el sistema finalsin tener en cuenta los compromisos de calidad y demantenimiento que tiene con el cliente.