05 masmodelosdeprocesodesoftware isi

35
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 05

Transcript of 05 masmodelosdeprocesodesoftware isi

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 05

Otros Modelos / 2 Ingeniería de Software I

© MSc. Carlos Mera Gómez 2013

Agenda

• Terminología

• Modelo de desarrollo ágil

• Scrum

• Otros enfoques

– Prototipo

– Ingeniería Concurrente

• El mejor ciclo de vida para un proyecto

Otros Modelos / 3 Ingeniería de Software I

© MSc. Carlos Mera Gómez 2013

Terminología

Otros Modelos / 4 Ingeniería de Software I

© MSc. Carlos Mera Gómez 2013

Terminología

• Una metodología es un framework para la organización sistemática de una colección de métodos. Algunos ejemplos son:

– Structured Systems Analysis and Design SSADM

– Unified Software Development Process USDP o Rational Unified Process RUP

– Extreme Programming XP

– SCRUM

– Dynamic Systems Development DSDM

Otros Modelos / 5 Ingeniería de Software I

© MSc. Carlos Mera Gómez 2013

Modelo de desarrollo ágil

Otros Modelos / 6 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.

Otros Modelos / 7 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.

7

Otros Modelos / 8 Ingeniería de Software I

© MSc. Carlos Mera Gómez 2013

Modelo de desarrollo ágil

– Fuente: http://istqbexamcertification.com/

Otros Modelos / 9 Ingeniería de Software I

© MSc. Carlos Mera Gómez 2013

Modelo de desarrollo ágil

Otros Modelos / 10 Ingeniería de Software I

© MSc. Carlos Mera Gómez 2013

Modelo de desarrollo ágil

Otros Modelos / 11 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.

Otros Modelos / 12 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.

Otros Modelos / 13 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.

Otros Modelos / 14 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)

Otros Modelos / 15 Ingeniería de Software I

© MSc. Carlos Mera Gómez 2013

Scrum

Otros Modelos / 16 Ingeniería de Software I

© MSc. Carlos Mera Gómez 2013

Metodología Scrum

• Es una metodología de desarrollo ágil que estructura el desarrollo de aplicaciones en ciclos llamados Sprints.

Ciclo de Sprint

Seleccionar

Desarrollar

Revisar

Evaluar Bosquejo de

planeación y diseño de la arquitectura

Cierre del proyecto

16

Otros Modelos / 17 Ingeniería de Software I

© MSc. Carlos Mera Gómez 2013

Roles en Scrum

• El Product Owner describe los requerimientos del software en el Product Backlog.

• El Scrum Master es el facilitador que coordina reuniones diarias, hace seguimiento del Sprint Backlog, y se comunica con el Product Owner para evitar interrupciones.

• El Equipo de Desarrollo Scrum está conformado por las personas que desarrollan el software.

17

Otros Modelos / 18 Ingeniería de Software I

© MSc. Carlos Mera Gómez 2013

Características de Scrum

• Un Sprint es la fase central de Scrum, en donde se evalúa el trabajo, se seleccionan las características a ser desarrolladas y el software es implementado. Al final de un sprint, la funcionalidad producida es liberada a los usuarios.

• Los Sprints tienen una duración fija [1 – 4 semanas] y finalizan en la fecha establecida independiente de si se haya completado el trabajo o no.

18

Otros Modelos / 19 Ingeniería de Software I

© MSc. Carlos Mera Gómez 2013

Características de Scrum

• Sprint Planning: es la reunión que se realiza al inicio de cada Sprint entre el Product Owner y el Equipo de Desarrollo con la facilitación del Scrum Master para definir la lista de tareas en el Sprint Backlog.

• Daily Scrum Meeting: Es una reunión diaria de 15 minutos en la cual el equipo de desarrollo analiza el avance de tareas y define si es necesaria una replanificación de las mismas.

19

Otros Modelos / 20 Ingeniería de Software I

© MSc. Carlos Mera Gómez 2013

Documentos de Scrum

• El Product Backlog es un documento que contiene todos los requerimientos del software a desarrollar. Está abierto a modificaciones.

• El Sprint Backlog es un documento que contiene las tareas que el equipo va a desarrollar en el siguiente sprint. Ninguna tarea es mayor a 16 horas de trabajo.

20

Otros Modelos / 21 Ingeniería de Software I

© MSc. Carlos Mera Gómez 2013

Documentos de Scrum

21

Ejemplo de Sprint BackLog Fuente: Scrum Training Institute Press

Otros Modelos / 22 Ingeniería de Software I

© MSc. Carlos Mera Gómez 2013

Documentos de Scrum

• El burn down chart es una gráfica que muestra la cantidad de requisitos pendientes en el product backlog al inicio de cada sprint.

22 Scrum

Fuente: http://en.wikipedia.org

Otros Modelos / 23 Ingeniería de Software I

© MSc. Carlos Mera Gómez 2013

Documentos de Scrum

23

Burn down chart Fuente: http://en.wikipedia.org

Otros Modelos / 24 Ingeniería de Software I

© MSc. Carlos Mera Gómez 2013

Beneficios del uso de Scrum

• Entrega de un producto funcional al final de cada Sprint

• El producto es dividido en subconjuntos plenamente manejables y entendibles.

• Requerimientos inestables son identificados a tiempo.

• Todo el equipo de desarrollo conoce el estado del proyecto.

• Se establece una relación de confianza entre clientes y desarrolladores.

24

Otros Modelos / 25 Ingeniería de Software I

© MSc. Carlos Mera Gómez 2013

Limitaciones del uso de Scrum

• Difícil de aplicar en grandes proyectos

• Requiere de un equipo con habilidades transversales

• Presupone un cliente muy activo e involucrado continuamente en el desarrollo.

• No se genera documentación que diversas normativas internacionales solicitan.

25

Otros Modelos / 26 Ingeniería de Software I

© MSc. Carlos Mera Gómez 2013

Otros enfoques a considerar

Otros Modelos / 27 Ingeniería de Software I

© MSc. Carlos Mera Gómez 2013

Prototipo

• Identifica los requerimientos del cliente más explícitamente o evalúa la factibilidad del diseño de una solución.

• Muy útil cuando los requerimientos son inciertos o para clarificar la interfaz de usuario.

• Podría ser también utilizada en pruebas ya que los resultados de las pruebas podrían ser verificados con el prototipo.

• Mejora el involucramiento del usuario a través de un modelo tangible del sistema.

Otros Modelos / 28 Ingeniería de Software I

© MSc. Carlos Mera Gómez 2013

Ingeniería Concurrente

• Utilizado para acelerar la entrega de desarrollos incrementales en paralelo.

• Usado cuando el tiempo es esencial.

• Los problemas surgen cuando los primeros incrementos son inmediatamente incorporados en los siguientes incrementos.

• Incrementa esfuerzo en términos de planificación y comunicación.

• Requiere el involucramiento del cliente en un número de iteraciones concurrentes.

Otros Modelos / 29 Ingeniería de Software I

© MSc. Carlos Mera Gómez 2013

El mejor ciclo de vida para un proyecto

Otros Modelos / 30 Ingeniería de Software I

© MSc. Carlos Mera Gómez 2013

El mejor ciclo de vida para un proyecto

• Cascada – Proyectos medianos/pequeños

– Requerimientos claros y bien entendidos

– Restricciones de tiempo y costo

• Incremental – Proyecto puede ser divididos en una serie de mini

proyectos

– Útil para proyectos de alto riesgo o cuando los recursos son limitados

– Bosquejo de requerimientos puede ser bien entendido

– Tiempo y restricciones de costo pueden ser especificados para cada incremento

Otros Modelos / 31 Ingeniería de Software I

© MSc. Carlos Mera Gómez 2013

El mejor ciclo de vida para un proyecto

• Iterativo o Evolutivo – Proyectos con requerimientos inciertos – Útil cuando la calidad es más importante que el tiempo o

costo – Útil para equipos colaborativos pequeños de

usuarios/desarrolladores con restricciones de tiempo y costo

– Tienden a ser inapropiados para sistemas de misión críticos y sistemas con requerimientos regulatorios.

• Enfoques híbridos son posibles

– Proyectos grandes para los cuales una arquitectura estable puede ser definida pero aún existe cierta incertidumbre.

Otros Modelos / 32 Ingeniería de Software I

© MSc. Carlos Mera Gómez 2013

David Boddy’s project profile tool

Otros Modelos / 33 Ingeniería de Software I

© MSc. Carlos Mera Gómez 2013

David Boddy’s project profile tool

Otros Modelos / 34 Ingeniería de Software I

© MSc. Carlos Mera Gómez 2013

Puntos para recordar

• Scrum es una metodología de desarrollo ágil

• La principal fase del modelo Scrum es el Sprint

• Los roles de Scrum son Product Owner, Scrum Master y el Equipo de Desarrollo

• Scrum entrega un producto funcional al final de cada Sprint

• Scrum es difícil de aplicar en grandes proyectos

• David Boddy’s project profile tool

34

Otros Modelos / 35 Ingeniería de Software I

© MSc. Carlos Mera Gómez 2013

Próxima Sesión

• Visión y gestión de proyectos