Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

04 modelosdeprocesodesoftware isi

modelos de proceso de software

Related Books

Free with a 30 day trial from Scribd

See all

Related Audiobooks

Free with a 30 day trial from Scribd

See all
  • Be the first to comment

  • Be the first to like this

04 modelosdeprocesodesoftware isi

  1. 1. Otros Modelos / 1 Ingeniería de Software I © MSc. Carlos Mera Gómez 2013 Modelos de Proceso de Software Ingeniería de Software I FIEC03046 Sesión 04
  2. 2. Otros Modelos / 2 Ingeniería de Software I © MSc. Carlos Mera Gómez 2013 Agenda • Terminología • Modelo de desarrollo incremental • Modelo orientado a reuso • Modelo de desarrollo iterativo • Modelo en espiral de Boehm • Modelo RUP • Modelo de desarrollo ágil
  3. 3. Otros Modelos / 3 Ingeniería de Software I © MSc. Carlos Mera Gómez 2013 Terminología
  4. 4. Otros Modelos / 4 Ingeniería de Software I © MSc. Carlos Mera Gómez 2013 Terminología • Ciclo de vida es otro denominación para proceso de software. • Un ciclo de vida es una colección de fases de un proyecto, define el trabajo en cada fase, los entregables a producir, cuándo/quién está involucrado y cómo manejar el control/aprobación de cada fase. • Los ciclos de vida no definen los métodos a ser utilizados en cada fase, eso lo hacen las metodologías de desarrollo de software.
  5. 5. Otros Modelos / 5 Ingeniería de Software I © MSc. Carlos Mera Gómez 2013 Modelo de desarrollo incremental
  6. 6. Otros Modelos / 6 Ingeniería de Software I © MSc. Carlos Mera Gómez 2013 Modelo de desarrollo incremental • Es un modelo que intercala las actividades de especificación, desarrollo y validación. El sistema es desarrollado como una serie de versiones o incrementos, con cada funcionalidad agregando funcionalidad a la versión anterior. • Es fundamental en las enfoques de desarrollo ágiles.
  7. 7. Otros Modelos / 7 Ingeniería de Software I © MSc. Carlos Mera Gómez 2013 Modelo de desarrollo incremental • Se basa en la idea de implementar una versión inicial, presentarla al usuario y evolucionar a través de varias iteraciones hasta que el sistema esté completo. • Los primeros incrementos del sistema incluyen las funcionalidades requeridas prioritariamente por el cliente. • El cliente evalúa cada incremento del sistema y si no satisface plenamente sus necesidades, solo este incremento se verá afectado.
  8. 8. Otros Modelos / 8 Ingeniería de Software I © MSc. Carlos Mera Gómez 2013 Modelo de desarrollo incremental
  9. 9. Otros Modelos / 9 Ingeniería de Software I © MSc. Carlos Mera Gómez 2013 Modelo de desarrollo incremental – Fuente: http://istqbexamcertification.com
  10. 10. Otros Modelos / 10 Ingeniería de Software I © MSc. Carlos Mera Gómez 2013 Modelo de desarrollo incremental
  11. 11. Otros Modelos / 11 Ingeniería de Software I © MSc. Carlos Mera Gómez 2013 Beneficios del modelo incremental • El costo de introducir cambios en los requerimientos del usuario es reducido. • Facilita la retroalimentación del usuario en el producto de software. Es más complicado obtener retroalimentación del usuario a partir de documentos de diseño. • Entrega más ágil de software al usuario, aún cuando toda la funcionalidad aún no ha sido incluida.
  12. 12. Otros Modelos / 12 Ingeniería de Software I © MSc. Carlos Mera Gómez 2013 Limitaciones del modelo incremental • No es rentable producir documentos que reflejen cada versión del sistema lo cual complica la medición de avances a los directores de proyecto. • La estructura del sistema se podría degradar con cada incremento si no se dedica tiempo y dinero a realizar un apropiado refactoring. • Se requiere una definición clara y completa de todo el sistema antes de dividirlo y contruirlo incrementalmente.
  13. 13. Otros Modelos / 13 Ingeniería de Software I © MSc. Carlos Mera Gómez 2013 Modelo de desarrollo incremental • Conveniente siempre y cuando…. – Los requerimientos están claramente definidos y entendidos. – Los principales requerimientos deben estar definidos, aunque los detalles pueden evolucionar con el tiempo. – Se requiere obtener un producto entregable en poco tiempo. – Se utilizará una nueva tecnología. – Recursos con las habilidades requeridas no están disponibles. – Existen algunos objetivos y características de alto riesgo.
  14. 14. Otros Modelos / 14 Ingeniería de Software I © MSc. Carlos Mera Gómez 2013 Modelo de desarrollo incremental • En proyectos grandes y de largos desarrollos, en los cuales diferentes equipos desarrollan diferentes partes del sistema se podría dificultar el garantizar una arquitectura y framework estables. Para evitarlo se debe definir claramente las responsabilidades a cada equipo. • Se puede desarrollar incrementalmente el sistema y a la vez desplegar estos incrementos en el ambiente del cliente para su uso.
  15. 15. Otros Modelos / 15 Ingeniería de Software I © MSc. Carlos Mera Gómez 2013 Modelo orientado al reuso
  16. 16. Otros Modelos / 16 Ingeniería de Software I © MSc. Carlos Mera Gómez 2013 Modelo orientado al reuso • En la mayoría de los proyectos de software, generalmente hay algún software a reutilizar. • Este enfoque se fundamenta en el reuso de componentes de software y un framework de integración para la composición de estos componentes. • Algunas veces estos componentes son son por sí mismos sistemas independientes (COTS) que pueden proveer funcionalidades específicas.
  17. 17. Otros Modelos / 17 Ingeniería de Software I © MSc. Carlos Mera Gómez 2013 Modelo orientado al reuso • Está basado en la existencia de un número significativo de componentes reusables. El desarrollo del sistema se centra en la integración de estos componentes en un sistema en vez de desarrollarlos desde cero.
  18. 18. Otros Modelos / 18 Ingeniería de Software I © MSc. Carlos Mera Gómez 2013 Etapas del modelo orientado al reuso 1. Análisis de componentes: Dada una especificación de requerimientos, buscar el componente que mejor se ajuste. 2. Modificación de requerimientos: De acuerdo a la disponibilidad de componentes, se ajustan ciertos requerimientos. 3. Diseño del sistema con reuso: Los diseñadores toman en consideración los componentes a reutilizar y organizan el framework para ello. Algún desarrollo si no hay componentes disponibles. 4. Desarrollo e integración: Componentes y sistemas COTS son integrados para crear el nuevo sistema.
  19. 19. Otros Modelos / 19 Ingeniería de Software I © MSc. Carlos Mera Gómez 2013 Modelo orientado al reuso
  20. 20. Otros Modelos / 20 Ingeniería de Software I © MSc. Carlos Mera Gómez 2013 Modelo orientado al reuso • Tipos de componentes que pueden ser utilizados en este modelo: – Servicios Web, los mismos que son desarrollados de acuerdo a los estándares de servicios y están disponibles por invocación remota. – Colecciones de objetos que son desarrollados como un paquete a fin de ser integrados en un framework de componentes tales como .Net o JEE. – Sistemas de software stand-alone que pueden ser configurados para su uso en un ambiente en particular.
  21. 21. Otros Modelos / 21 Ingeniería de Software I © MSc. Carlos Mera Gómez 2013 Ventajas del modelo orientado al reuso • Reduce la cantidad de software que debe ser desarrollado lo que reduce costos y riesgos. • Usualmente se disminuyen los tiempos de entrega del software.
  22. 22. Otros Modelos / 22 Ingeniería de Software I © MSc. Carlos Mera Gómez 2013 Limitaciones del modelo orientado al reuso • Se pierde el control sobre la evolución del software si las nuevas versiones de los componentes reusables no están bajo el control de la organización. • El ajuste de requerimientos podría producir un sistema que no satisface las necesidades reales del usuario.
  23. 23. Otros Modelos / 23 Ingeniería de Software I © MSc. Carlos Mera Gómez 2013 Modelo de desarrollo iterativo
  24. 24. Otros Modelos / 24 Ingeniería de Software I © MSc. Carlos Mera Gómez 2013 Modelo de desarrollo iterativo • El modelo de ciclo de vida iterativo no busca empezar con la especificación de requerimientos completa. • Mas bien, el desarrollo empieza especificando e implementando solo una parte del software, la cual puede luego ser revisada a fin de identificar más requerimientos. • Este proceso de repite, produciendo una nueva versión de software para cada ciclo.
  25. 25. Otros Modelos / 25 Ingeniería de Software I © MSc. Carlos Mera Gómez 2013 Ventajas del modelo de desarrollo iterativo • Se crea y se mejora el producto paso a paso, detectando así los defectos al principio. • Los primeras iteraciones sirven como un prototipo que ayudan a extraer requerimientos para posteriores iteraciones. • Funcionalidades prioritarias para el cliente pueden ser entregadas primero. • Brinda productos frecuentes a los clientes y se obtiene una retroalimentación confiable.
  26. 26. Otros Modelos / 26 Ingeniería de Software I © MSc. Carlos Mera Gómez 2013 Modelo de desarrollo iterativo
  27. 27. Otros Modelos / 27 Ingeniería de Software I © MSc. Carlos Mera Gómez 2013 Ventajas del modelo de desarrollo iterativo • Se dedica menor tiempo a la documentación y más tiempo para el diseño. • Los requerimientos y procesos de negocio cambian con el tiempo y los sistemas deben evolucionar de la misma forma.
  28. 28. Otros Modelos / 28 Ingeniería de Software I © MSc. Carlos Mera Gómez 2013 Desventajas del modelo de desarrollo iterativo • Cada fase de una iteración es rígida sin superposiciones. • Arquitecturas costosas o problemas de diseño podrían aparecer en vista que no se levantan todos los requerimientos al inicio de todo el ciclo. • Es complicado distribuir trabajo en varios equipos de trabajo.
  29. 29. Otros Modelos / 29 Ingeniería de Software I © MSc. Carlos Mera Gómez 2013 Desventajas del modelo de desarrollo iterativo • Es difícil negociar contratos con el cliente porque el producto final es incierto. • Requiere un significativo manejo del proyecto y experiencia en manejo de riesgos para tener éxito. • El software podría ser pobremente estructurado y difícil de mantener
  30. 30. Otros Modelos / 30 Ingeniería de Software I © MSc. Carlos Mera Gómez 2013 Modelo de desarrollo iterativo • Conveniente cuando… – El proyecto es grande – Los principales requerimientos han sido definidos; sin embargo, los detalles pueden evolucionar en el tiempo.
  31. 31. Otros Modelos / 31 Ingeniería de Software I © MSc. Carlos Mera Gómez 2013 Modelo en espiral de Boehm
  32. 32. Otros Modelos / 32 Ingeniería de Software I © MSc. Carlos Mera Gómez 2013 Modelo en espiral de Boehm • Similar al modelo incremental con mayor énfasis en el manejo de riesgo. • Un sistema completo incremental es entregado en cada iteración o ciclo del espiral. • Los riesgos son evaluados en cada evolución a fin de decidir si se debe o no proceder; y cómo hacerlo. • Cada lazo puede representar una parte del proceso de software o el desarrollo de un producto. • Cada lazo consiste en definir el objeto, analizar el riesgo, desarrollar, validar y planificar.
  33. 33. Otros Modelos / 33 Ingeniería de Software I © MSc. Carlos Mera Gómez 2013 Modelo en espiral de Boehm
  34. 34. Otros Modelos / 34 Ingeniería de Software I © MSc. Carlos Mera Gómez 2013 Modelo en espiral de Boehm
  35. 35. Otros Modelos / 35 Ingeniería de Software I © MSc. Carlos Mera Gómez 2013 Ventajas del modelo en espiral de Boehm • Significativo análisis de riesgos, por lo tanto se minimizan sus consecuencias. • Buenos para grandes proyectos de misión crítica. • Aprobación estricta y control de documentación. • Funcionalidad adicional puede ser agregada con posterioridad.
  36. 36. Otros Modelos / 36 Ingeniería de Software I © MSc. Carlos Mera Gómez 2013 Desventajas del modelo en espiral de Boehm • Puede ser un modelo costoso de usar. • El análisis de riesgos requiere un gran expertise específico en el área. • No funciona bien en proyectos pequeños.
  37. 37. Otros Modelos / 37 Ingeniería de Software I © MSc. Carlos Mera Gómez 2013 Modelo en espiral de Boehm • Conveniente cuando… – La evaluación de riesgos y costos es importante. – Existen proyectos de mediano a alto riesgo. – Nueva línea de productos – Se esperan cambios significativos (investigación y exploración) – Los usuarios no están seguros de sus necesidades – Los requerimientos son complejos – Se requiere compromiso con el proyecto a largo plazo debido a cambios en las prioridades económicas.
  38. 38. Otros Modelos / 38 Ingeniería de Software I © MSc. Carlos Mera Gómez 2013 Modelo Rational Unified Processs
  39. 39. Otros Modelos / 39 Ingeniería de Software I © MSc. Carlos Mera Gómez 2013 RUP
  40. 40. Otros Modelos / 40 Ingeniería de Software I © MSc. Carlos Mera Gómez 2013 RUP • Inception – Establece el caso de negocio para el sistema • Elaboration – Desarrollo y entendimiento del dominio del problema y de la arquitectura del sistema • Construction – Diseño del sistema, programación y pruebas • Transition – Despliegue del sistema en su ambiente de operación
  41. 41. Otros Modelos / 41 Ingeniería de Software I © MSc. Carlos Mera Gómez 2013 Modelo de desarrollo ágil
  42. 42. Otros Modelos / 42 Ingeniería de Software I © MSc. Carlos Mera Gómez 2013 Modelo de desarrollo ágil • Es un tipo de modelo iterativo e incremental. El software es desarrollado en incrementos de ciclos cortos. • Cada pequeño entregable es construido sobre los anteriores entregables. • Cada release es cuidadosamente probado para asegurar que se mantenga la calidad del sofware.
  43. 43. Otros Modelos / 43 Ingeniería de Software I © MSc. Carlos Mera Gómez 2013 Modelo de desarrollo ágil • Es un modelo para desarrollo de software iterativo e incremental en el cual los incrementos son pequeños y usualmente una nueva versión es presentada al usuario cada 2 o 3 semanas. • Se minimizan documentación y reuniones formales para dar paso a reuniones con comunicaciones informales. 43
  44. 44. Otros Modelos / 44 Ingeniería de Software I © MSc. Carlos Mera Gómez 2013 Modelo de desarrollo ágil – Fuente: http://istqbexamcertification.com/
  45. 45. Otros Modelos / 45 Ingeniería de Software I © MSc. Carlos Mera Gómez 2013 Modelo de desarrollo ágil
  46. 46. Otros Modelos / 46 Ingeniería de Software I © MSc. Carlos Mera Gómez 2013 Modelo de desarrollo ágil
  47. 47. Otros Modelos / 47 Ingeniería de Software I © MSc. Carlos Mera Gómez 2013 Ventajas del modelo de desarrollo ágil • Entregables frecuentes (semanas en vez de meses) • Se enfatiza las personas y sus interacciones más que procesos y herramientas • Satisfacción del cliente por las entregas constantes y rápidas de software. • Cooperación cercana entre los expertos de la lógica del negocio y los desarrolladores.
  48. 48. Otros Modelos / 48 Ingeniería de Software I © MSc. Carlos Mera Gómez 2013 Desventajas del modelo de desarrollo ágil • Falta de énfasis en diseño y documentación necesaria. • Solo desarrolladores senior son capaces de tomar las decisiones requeridas durante el proceso de desarrollo. Por lo tanto, no hay lugar para novatos, a menos que se mezclen con recursos experimentados.
  49. 49. Otros Modelos / 49 Ingeniería de Software I © MSc. Carlos Mera Gómez 2013 Modelo de desarrollo ágil • Conveniente cuando… – Existe una alta frecuencia de cambios. – Se requiere muy poca planificación para iniciar el proyecto.
  50. 50. Otros Modelos / 50 Ingeniería de Software I © MSc. Carlos Mera Gómez 2013 Modelo de desarrollo ágil • Metodologías de desarrollo ágil: – Scrum – Extreme programming (XP) – Test-driven development (TDD) – Agile Unified Process (AUP)
  51. 51. Otros Modelos / 51 Ingeniería de Software I © MSc. Carlos Mera Gómez 2013 Puntos para recordar • Actividades del modelo incremental • Actividades del modelo orientado a reuso • Fases del modelo en Espiral de Boehm • Ventajas y desventajas de los principales modelos de procesos software.
  52. 52. Otros Modelos / 52 Ingeniería de Software I © MSc. Carlos Mera Gómez 2013 Próxima Sesión • Scrum • Otros enfoques – Prototipo – Ingeniería Concurrente • El mejor ciclo de vida para un proyecto

    Be the first to comment

    Login to see the comments

modelos de proceso de software

Views

Total views

790

On Slideshare

0

From embeds

0

Number of embeds

3

Actions

Downloads

12

Shares

0

Comments

0

Likes

0

×