MetodologíAs Y Ciclos De Vida

51,441 views
51,004 views

Published on

3 Comments
8 Likes
Statistics
Notes
No Downloads
Views
Total views
51,441
On SlideShare
0
From Embeds
0
Number of Embeds
1,184
Actions
Shares
0
Downloads
1,451
Comments
3
Likes
8
Embeds 0
No embeds

No notes for slide

MetodologíAs Y Ciclos De Vida

  1. 1. Ingeniería de Software Metodologías y Ciclos de Viva
  2. 2. Metodologias: Definición <ul><li>El conjunto de métodos que se utilizan en una determinada actividad con el fin de formalizarla y optimizarla. </li></ul><ul><li>Determina los pasos a seguir y cómo realizarlos para finalizar una tarea. </li></ul>
  3. 3. Metodologias: Aplicación a la Ingeniería de Software <ul><li>Optimiza el proceso y el producto software. </li></ul><ul><li>Métodos que guían en la planificación y en el desarrollo del software. </li></ul><ul><li>Define qué hacer, cómo y cuándo durante todo el desarrollo y mantenimiento de un proyecto </li></ul>
  4. 4. Metodologias: Aplicación a la Ingeniería de Software Sin metodología Con metodología
  5. 5. Metodologías: Elementos <ul><li>Define una estrategia global para enfrentarse con el proyecto: </li></ul><ul><li>Fases . </li></ul><ul><li>Tareas a realizar en cada fase. </li></ul><ul><li>Productos (final e intermedios). </li></ul><ul><li>E/S de cada fase, documentos. </li></ul><ul><li>Procedimientos y herramientas . </li></ul><ul><li>Apoyo a la realización de cada tarea. </li></ul><ul><li>Criterios de evaluación. </li></ul><ul><li>Del proceso y producto. Saber si se han logrado los objetivos. </li></ul>
  6. 6. Metodologías: Ventajas <ul><li>Desde el punto de vista de gestión: </li></ul><ul><ul><li>Facilitar la tarea de planificación. </li></ul></ul><ul><ul><li>Facilitar la tarea de control y seguimiento de un proyecto. </li></ul></ul><ul><ul><li>Mejorar la relación coste/beneficio. </li></ul></ul><ul><ul><li>Optimizar el uso de recursos disponibles. </li></ul></ul><ul><ul><li>Facilitar la evaluación de resultados y cumplimiento de los objetivos. </li></ul></ul><ul><ul><li>Facilitar la comunicación efectiva entre usuarios y desarrolladores. </li></ul></ul><ul><ul><li>Ayuda a la gestión del proyecto. </li></ul></ul>
  7. 7. Metodología: Ventajas <ul><li>Desde el punto de vista de los ingenieros del software: </li></ul><ul><ul><li>Ayudar a la comprensión del problema. </li></ul></ul><ul><ul><li>Optimizar el conjunto y cada una de las fases del proceso de desarrollo. </li></ul></ul><ul><ul><li>Facilitar el mantenimiento del producto final. </li></ul></ul><ul><ul><li>Permitir la reutilización de partes del producto. </li></ul></ul>
  8. 8. Metodología: Ventajas <ul><li>Desde el punto de vista del cliente o usuario final: </li></ul><ul><ul><li>Garantía de un determinado nivel de calidad en el producto final. </li></ul></ul><ul><ul><li>Confianza en los plazos de tiempo fijados en la definición del proyecto. </li></ul></ul><ul><ul><li>Definir el ciclo de vida que más se adecue a las condiciones y características del desarrollo. </li></ul></ul>
  9. 9. Metodología: Ventajas <ul><ul><li>Determinar las fases dentro del ciclo de vida especificando su orden de ejecución. </li></ul></ul><ul><ul><li>Definir los resultados intermedios y finales. </li></ul></ul><ul><ul><li>Proporcionar un conjunto de métodos, herramientas y técnicas para facilitar la tarea del ingeniero del software y aumentar suproductividad. </li></ul></ul>
  10. 10. Ciclos de Vida: Definición <ul><li>Conjunto 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”). </li></ul><ul><li>Se denomina a veces “paradigma” . </li></ul><ul><ul><li>Dos puntos de vista </li></ul></ul><ul><ul><li>Transformación del producto. </li></ul></ul><ul><ul><li>Proceso que transforma el producto. </li></ul></ul>
  11. 11. Ciclo de vida: funciones <ul><li>Un ciclo de vida debe: </li></ul><ul><ul><li>Determinar el orden de las fases del proceso software. </li></ul></ul><ul><ul><li>Establecer los criterios de transición para pasar de una fase ala siguiente. </li></ul></ul><ul><ul><li>Definir las entradas y salidas de cada fase. </li></ul></ul>
  12. 12. Ciclo de vida: funciones <ul><li>Describir los estados por los que pasa el producto. </li></ul><ul><li>Describir las actividades a realizar para transformar el producto. </li></ul><ul><li>Definir un esquema que sirve como base para: </li></ul><ul><ul><li>Planificar. </li></ul></ul><ul><ul><li>Organizar. </li></ul></ul><ul><ul><li>Coordinar. </li></ul></ul><ul><ul><li>Desarrollar. </li></ul></ul><ul><ul><li>... </li></ul></ul>
  13. 13. Ciclo de vida: Situación Real
  14. 14. Modelo ciclo de vida en cascada
  15. 15. Modelo ciclo de vida en cascada <ul><li>Características: </li></ul><ul><li>Es el más utilizado. </li></ul><ul><li>Es una visión del proceso de desarrollo de software como una sucesión de etapas que producen productos intermedios. </li></ul><ul><li>Para que el proyecto tenga éxito deben desarrollarse todas las fases. </li></ul><ul><li>Las fases continúan hasta que los objetivos se han cumplido. </li></ul><ul><li>Si se cambia el orden de las fases, el producto final será de inferior calidad, </li></ul>
  16. 16. Modelo ciclo de vida en cascada <ul><li>CRITICAS: </li></ul><ul><li>No refleja realmente el proceso de desarrollo del software </li></ul><ul><li>Se tarda mucho tiempo en pasar por todo el ciclo </li></ul><ul><li>Perpetua el fracaso de la industria del software en su </li></ul><ul><li>comunicación con el usuario final </li></ul><ul><li>El mantenimiento se realiza en el código fuente </li></ul><ul><li>Las revisiones de proyectos de gran complejidad son muy difíciles </li></ul><ul><li>Impone una estructura de gestión de proyectos </li></ul>
  17. 17. Modelo ciclo de vida en cascada <ul><li>Limitaciones: </li></ul><ul><li>No se permiten las iteraciones. </li></ul><ul><li>Los requisitos se congelan al principio del proyecto. </li></ul><ul><li>No existe un proyecto “enseñable” hasta el final del proyecto. </li></ul>
  18. 18. Modelo ciclo de vida en cascada
  19. 19. Modelo de ciclo de vida en espiral
  20. 20. Modelo de ciclo de vida en espiral
  21. 21. Modelo de ciclo de vida en espiral <ul><li>Trata de mejorar los ciclos de vida clásicos y prototipos. </li></ul><ul><li>Permite acomodar otros modelos </li></ul><ul><li>Incorpora objetivos de calidad y gestión de riesgos </li></ul><ul><li>Elimina errores y alternativas no atractivas al comienzo </li></ul><ul><li>Permite iteraciones, vuelta atrás y finalizaciones rápidas </li></ul><ul><li>Cada ciclo empieza identificando: </li></ul><ul><ul><li>Los objetivos de la porción correspondiente </li></ul></ul><ul><ul><li>Las alternativas </li></ul></ul><ul><ul><li>Restricciones </li></ul></ul><ul><li>Cada ciclo se completa con una revisión que incluye todo el ciclo anterior y el plan para el siguiente </li></ul>
  22. 22. Modelo de ciclo de vida en espiral <ul><li>Se usa en proyectos en los que se prevén riesgos. </li></ul><ul><li>Representa un enfoque dirigido por el riesgo para el análisis y estructuración del proceso software. </li></ul><ul><li>Ventajas: </li></ul><ul><ul><li>Utiliza las fases de modelos tradicionales. Se centra en la eliminación de errores y alternativas poco atractivas. </li></ul></ul><ul><ul><li>Su orientación a detectar y prevenir el riesgo evita muchas dificultades. </li></ul></ul><ul><li>Desventajas: </li></ul><ul><ul><li>Complicado: Consume muchos recursos. </li></ul></ul><ul><ul><li>Las etapas y sus E/S no están claramente definidas. </li></ul></ul>
  23. 23. Modelos de refinamiento sucesivo por pasos o por mejora iterativa
  24. 24. Iterativo
  25. 25. Iterativo
  26. 26. Iterativo <ul><li>Es una repetición de varios ciclos de vida en cascada. </li></ul><ul><li>Al final de cada ciclo se entrega una versión completa del software mejorada respecto a la anterior. </li></ul><ul><li>Los ciclos se repiten hasta obtener un producto satisfactorio. </li></ul><ul><li>Los usuarios deben evaluar el producto en cada iteración y proponer mejoras. </li></ul><ul><li>Se suele aplicar en desarrollos en los que los requisitos no están claros, las primeras versiones pueden ser prototipos que se desechan posteriormente. </li></ul>
  27. 27. Incremental
  28. 28. Incremental <ul><li>Es una repetición de varios ciclos de vida en cascada. </li></ul><ul><li>Al final de cada ciclo se entrega una versión parcial del software incrementada con cierta funcionalidad nueva respecto a las entregas anteriores. </li></ul><ul><li>Los ciclos se repiten hasta obtener un producto completo. </li></ul><ul><li>Los usuarios disponen antes del software, aunque no sea completo, por lo que pueden sugerir mejoras. </li></ul><ul><li>Se suele aplicar a desarrollos de gran tamaño. </li></ul>
  29. 29. Incremental <ul><li>Se evitan proyectos largos y se entrega “ Algo de valor ” a los usuarios con cierta frecuencia </li></ul><ul><li>El usuario se involucra más </li></ul><ul><li>Difícil de evaluar el coste total </li></ul><ul><li>Requiere gestores experimentados </li></ul><ul><li>Los errores en los requisitos se detectan tarde. </li></ul><ul><li>El resultado es ser muy positivo </li></ul>
  30. 30. Modelo ciclo de vida prototipado
  31. 31. Modelo ciclo de vida prototipado
  32. 32. Modelo ciclo de vida prototipado <ul><li>No modifica el flujo del ciclo de vida </li></ul><ul><li>Reduce el riesgo de construir productos que no satisfagan las necesidades de los usuarios </li></ul><ul><li>Reduce costos y aumenta la probabilidad de éxito </li></ul><ul><li>Exige disponer de las herramientas adecuadas </li></ul><ul><li>No presenta calidad ni robustez </li></ul><ul><li>Una vez identificados todos los requisitos mediante el prototipo, se construye el producto de ingeniería. </li></ul>
  33. 33. Modelo ciclo de vida prototipado <ul><li>EL PROTOTIPADO </li></ul><ul><li>PARA QUE SEA EFECTIVO: </li></ul><ul><li>Debe ser un sistema con el que se pueda experimentar </li></ul><ul><li>Debe ser comparativamente barato (< 10%) </li></ul><ul><li>Debe desarrollarse rápidamente </li></ul><ul><li>Enfasis en la interfaz de usuario </li></ul><ul><li>Equipo de desarrollo reducido </li></ul><ul><li>Herramientas y lenguajes adecuados </li></ul><ul><li>“ El prototipado es un medio excelente para recoger el ‘feedback’ (realimentación) del usuario final” </li></ul>
  34. 34. Modelo ciclo de vida prototipado <ul><li>PELIGROS DEL PROTOTIPO </li></ul><ul><li>El cliente ve funcionando lo que para el es la primera versión del prototipo que ha sido construido con “plastilina y alambres”, y puede desilusionarse al decirle que el sistema aun no ha sido construido. </li></ul><ul><li>El desarrollador puede caer en la tentación de </li></ul><ul><li>ampliar el prototipo para construir el sistema final </li></ul><ul><li>sin tener en cuenta los compromisos de calidad y de </li></ul><ul><li>mantenimiento que tiene con el cliente. </li></ul>

×