05 masmodelosdeprocesodesoftware isi
-
Upload
christian-bueno -
Category
Software
-
view
84 -
download
0
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 / 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 / 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 / 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 / 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