 Un modelo de desarrollo ágil, generalmente es un proceso Incremental, (pequeños y frecuentes releases o entregas con ciclos rápidos), también Cooperativo.

Slides:



Advertisements
Presentaciones similares
EL PROCESO DE DESARROLLO DEL SOFTWARE
Advertisements

Ciclo de vida de desarrollo de software
Metodologías ágiles.
Desarrollo de software innovador con métodos ágiles
Los Principios del Sistema de Gestión de la Calidad
Metodologías Ágiles Patricio Letelier
Guía metodológica para la gestión de proyectos de software en PyMEs que no son fábricas de software por medio de Metodologías ágiles.
Arquitectura Orientada a Servicios (SOA)
METODOLOGÍAS ÁGILES “PROCESO UNIFICADO ÁGIL (AUP)
METODOLOGIAS AGILES DE CONSTRUCCION DE SOFWARE
Guía metodológica para la gestión de proyectos de software en PyMEs que no son fábricas de software por medio de Metodologías ágiles.
“8 Principios de la Gestión Administrativa”
Modelos de Proceso del Software
Ingeniería del Software
Una explicación de la programación extrema XP
Modelo de Desarrollo XP
Erique Gaspar, Carlos Alfredo
En este libro la filosofía y las experiencias japonesas en este campo y su K. Ishikawa Kaoru Ishikawa, impulsador del proceso permanente de mejoramiento,
HERRAMIENTAS CASE.
ITERASOFT. OBJETIVOS DEL GRUPO Producir un sistema Manejador de Itinerarios de alta calidad y confiabilidad Realizar un proyecto bien administrado y productivo.
Ciclos de vida ágiles.  Es una metodología ágil que plantea: ◦ Iteraciones cortas ◦ Entregables periódicos ◦ Colaboración con el cliente full time ◦
Metodologías Ágiles.
DATA WAREHOUSE Equipo 9.
¿Cómo surge? Metodologías ágiles de desarrollo de software Se entiende como Desarrollo ágil de Software a un paradigma de Desarrollo de Software basado.
Ingenieria de software
Ciclo de Vida del Software Paradigmas de Desarrollo
Gestión de Proyectos Informáticos Sesión N° 5 Ciclo de Vida de un Proyecto Roberto Jijena I.
EXtreme Programming.
Mas allá de su implantación
Planificación, Reingeniería y Plan de Proyecto
Administración Proyectos Jorge Baracaldo Robin Ochoa.
Ingeniería de Software: Metodologías Agustín J. González ElO329: Diseño y Programación Orientados a Objeto Adaptado de:
Ingeniería de Software
Ingeniería del Software
Ingeniería de Requerimiento
Extreme Programming Diego Rincón Sebastian Miranda.
Tema 1: Introducción a la Ingeniería de Software
INTRODUCCIÓN A LA INGENIERÍA DEL SOFTWARE
VISIÓN GENERAL DE LA IS Con independencia del modelo de proceso hay tres fases genéricas: Fase de definición Fase de desarrollo Fase de mantenimiento Cada.
TEMA: DESARROLLO DE UN SISTEMA INFORMÁTICO PARA EL CONTROL DE USO Y EL MANTENIMIENTO DE VEHÍCULOS DE UNA INSTITUCIÓN PÚBLICA AUTOR: EDISON GUAMAN   DIRECTOR:
PROGRAMACIÓN EXTREMA (eXtreme Programing)
Medición y Métricas del Software
ASIGNACIÓN DE ROLES.
Alexander Aristizabal Ángelo flores herrera
Ingeniería de Software
Diseño de Sistemas.
INGENIERÍA DEL SOFTWARE GESTIÓN DE PROYECTOS
Guía metodológica para la gestión de proyectos de software en PyMEs que no son fábricas de software por medio de metodologías ágiles Tatiana Alejandra.
Gestión Ágil de Proyectos Colaborador: Anónimo
Scrum Una Alternativa Ágil para el desarrollo de Software
METODOLOGÍAS ÁGILES “PROCESO UNIFICADO ÁGIL (AUP)
INGENIERIA DEL CONOCIMIENTO Toribio Sarmiento Miguel Sesarego Cruz Rosmery.
 Capacidad para adaptar el curso del desarrollo a la evolución de los requisitos y a las circunstancias del entorno de los proyectos.
problemas de la calidad del software
Estructurar tus ideas para hacerlas realidad
Ciclo de Vida del Software
Ingeniería en Informática F UNDAMENTOS DE C OMPUTACIÓN B ACHILLERATO EN I NGENIERÍA I NFORMÁTICA L IC. C ARLOS H. G UTIÉRREZ L EÓN.
INGENIERIA DE SOFTWARE
Desarrollar un buen software depende de un gran número de actividades y etapas, donde el impacto de elegir la metodología para un equipo en un determinado.
CONCEPTO DE CICLO DE VIDA 1 En los departamentos de Sistemas se debe definir un marco de referencia común que debe ser:  Pueda ser empleado por todos.
UTFSM - Departamento de Electrónica1 Noviembre de 2003 “Beneficios del Uso de Metodologías en el Desarrollo de Proyectos”
Fundamentos de Computación
RAPID APPLICATION DEVELOPMENT RAD. Proceso de RAD Involucrar en todos los aspectos al usuario en el desarrollo del sistema Uso continuo y repetitivo de.
Modelo de procesos de software
ELO-329: Diseño y Programación Orientados a Objetos1 Proceso de Desarrollo de SW Agustín J. González ElO329: Diseño y Programación Orientados a Objeto.
Metodologías de Programación II UNAJ - Instituto de Ingeniería y Agronomía - Ingeniería en Informática 1 4 Clase Clase 4 Programación extrema (Parte 2)
Es una metodología ágil diseñada para el desarrollo de software, basada en la calidad y el monitoreo constante del proyecto. Consiste esencialmente en.
Integrantes: Mejía Zúñiga Yoselin Taco Apaza Pamela Ychuta Torres John.
Sistemas de calidad en el desarrollo de software.
Metodologías de Desarrollo Ágil
Transcripción de la presentación:

 Un modelo de desarrollo ágil, generalmente es un proceso Incremental, (pequeños y frecuentes releases o entregas con ciclos rápidos), también Cooperativo (Clientes y desarrolladores trabajan constantemente con una comunicación muy fina y constante), sencillo (El método es fácil de aprender y modificar para el equipo, es bien documentado por medio de libros o la Web) y finalmente adaptativo (capaz de permitir cambios de último momento).  Las metodologías ágiles proporcionan una serie de pautas y principios junto a técnicas pragmáticas que puede que no curen todos los males pero harán la entrega del proyecto menos complicada y más satisfactoria tanto para los clientes como para los equipos de entrega. El desarrollo de software ágil hace referencia a un grupo de metodologías de desarrollo que se basan en principios similares. Generalmente promueven:  Un proceso de gestión de proyectos que fomenta la inspección y adaptación frecuente.  Una filosofía líder que fomenta trabajo en equipo, organización propia y responsabilidad.

 Un conjunto de mejores prácticas de ingeniería que permite la entrega rápida de software de alta calidad.  Un enfoque de negocio que alinea el desarrollo con las necesidades de los clientes y los objetivos de la compañía  Están especialmente orientadas para proyectos pequeños, las metodologías ágiles constituyen una solución a medida para ese entorno, aportando una elevada simplificación que a pesar de ello no renuncia a las prácticas esenciales para asegurar la calidad del producto.  Las metodologías ágiles son sin duda uno de los temas recientes en la ingeniería de software que están acaparando gran interés. En la comunidad de la ingeniería del software, se está viviendo con intensidad un debate abierto entre los partidarios de las metodologías tradicionales y aquellos que apoyan las ideas surgidas del “manifiesto ágil”.  Nacen como respuesta a los problemas tradicionales y se basa en dos aspectos puntuales, el retrasar las decisiones y la planificación adaptativa; permitiendo potencia aún más el desarrollo de software a gran escala.

Esta nueva teoría de Manifiesto Ágil establece las siguientes principales ideas:  Los individuos y las interacciones entre ellos son más importantes que las herramientas y los procesos empleados.  Es más importante crear un producto software que funcione que escribir documentación exhaustiva.  La colaboración con el cliente debe prevalecer sobre la negociación de contratos.  La capacidad de respuesta ante un cambio es más importante que el seguimiento estricto de un plan. Entre los principales métodos ágiles tenemos el XP (eXtreme Programming), Scrum, Iconix, Cristal Methods, AUP entre otras. Estas metodologías ponen de relevancia que la capacidad de respuesta a un cambio es más importante que el seguimiento estricto de un plan. Lo que proponen es porque para muchos clientes esta flexibilidad será una ventaja competitiva y porque estar preparados para el cambio significar reducir su coste.

Retrasar las decisiones y Planificación Adaptativa Es el eje en cual gira la metodología ágil, el retrasar las decisiones tan como sea posible de manera responsable será ventajoso tanto para el cliente como para la empresa, lo cual permite siempre mantener una satisfacción en el cliente y por ende el éxito del producto, las principales ventajas de retrasar las decisiones son:  Reduce el número de decisiones de alta inversión que se toman.  Reduce el número de cambios necesario en el proyecto.  Reduce el coste del cambio La planificación adaptativa permite estar preparados para el cambio ya que se ha de introducir en el proceso de desarrollo, además hacer una planificación adaptativa consiste en tomar decisiones a lo largo del proyecto, se estará entonces transformando el proyecto en un conjunto de proyectos pequeños. Esta planificación a corto plazo permitirá tener software disponible para los clientes y además ir aprendiendo del feedback para hacer la planificación más sensible, sea ante inconvenientes que aceleren o retrasen el producto.

E XTREME P ROGRAMMING (XP) M ODELO DE E XTREME P ROGRAMMING

 Es la más destacada de los de desarrollo de software formulada por Kent Beck. La programación extrema se diferencia de las metodologías tradicionales principalmente en que pone más énfasis en la adaptabilidad que en la previsibilidad.  Es la más destacada de los procesos ágiles de desarrollo de software formulada por Kent Beck. La programación extrema se diferencia de las metodologías tradicionales principalmente en que pone más énfasis en la adaptabilidad que en la previsibilidad.  Los defensores de XP consideran que los cambios de requisitos sobre la marcha son un aspecto natural, inevitable e incluso deseable del desarrollo de proyectos. Creen que ser capaz de adaptarse a los cambios de requisitos en cualquier punto de la vida del proyecto es una aproximación mejor y más realista que intentar definir todos los requisitos al comienzo del proyecto e invertir esfuerzos después en controlar los cambios en los requisitos.  Las características fundamentales del método son: Desarrollo iterativo e incremental: pequeñas mejoras, unas tras otras. Desarrollo iterativo e incremental: pequeñas mejoras, unas tras otras. Pruebas unitarias continuas, frecuentemente repetidas y automatizadas, incluyendo pruebas de regresión. Se aconseja escribir el código de la prueba antes de la codificación. Pruebas unitarias continuas, frecuentemente repetidas y automatizadas, incluyendo pruebas de regresión. Se aconseja escribir el código de la prueba antes de la codificación. Programación por parejas: se recomienda que las tareas de desarrollo se lleven a cabo por dos personas en un mismo puesto. Supone que la mayor calidad del código escrito de esta manera (código es revisado y discutido mientras se escribe). Programación por parejas: se recomienda que las tareas de desarrollo se lleven a cabo por dos personas en un mismo puesto. Supone que la mayor calidad del código escrito de esta manera (código es revisado y discutido mientras se escribe).

 Frecuente interacción del equipo de programación con el cliente o usuario. Se recomienda que un representante del cliente trabaje junto al equipo de desarrollo.  Corrección de todos los errores antes de añadir nueva funcionalidad. Hacer entregas frecuentes.  Refactorización del código, es decir, reescribir ciertas partes del código para aumentar su legibilidad y mantenibilidad pero sin modificar su comportamiento. Las pruebas han de garantizar que en la refactorización no se ha introducido ningún fallo.  Propiedad del código compartida: en vez de dividir la responsabilidad en el desarrollo de cada módulo en grupos de trabajo distintos, este método promueve el que todo el personal pueda corregir y extender cualquier parte del proyecto. Las frecuentes pruebas de regresión garantizan que los posibles errores serán detectados.  Simplicidad en el código: es la mejor manera de que las cosas funcionen. Cuando todo funcione se podrá añadir funcionalidad si es necesario. La programación extrema apuesta que en más sencillo hacer algo simple y tener un poco de trabajo extra para cambiarlo si se requiere, que realizar algo complicado y quizás nunca utilizarlo.

Ventajas  Apropiado para entornos volátiles  Estar preparados para el cambio, significa reducir su coste.  Planificación más transparente para nuestros clientes, conocen las fechas de entrega de funcionalidades. Vital para su negocio  Permitirá definir en cada iteración cuales son los objetivos de la siguiente  Permite tener realimentación de los usuarios muy útil.  La presión esta a lo largo de todo el proyecto y no en una entrega final Desventajas  Delimitar el alcance del proyecto con nuestro cliente Para mitigar esta desventaja se plantea definir un alcance a alto nivel basado en la experiencia.

AUP (A GIL U NIFIED P ROCESS ) E SQUEMA DE TRABAJO AUP

El AUP es un acercamiento aerodinámico a desarrollo del software basado en el Proceso Unificado Rational de IBM (RUP), basado en disciplinas y entregables incrementales con el tiempo. El ciclo de vida en proyectos grandes es serial mientras que en los pequeños es iterativo. Las disciplinas de Aup son:  Modelado  Implementación  Prueba  Despliegue  Administración de la configuración  Administración o gerencia del Proyecto  Entorno

S CRUM E SQUEMA DE TRABAJO SCRUM

Scrum: es un proceso ágil y liviano que sirve para administrar y controlar el desarrollo de software. El desarrollo se realiza en forma iterativa e incremental (una iteración es un ciclo corto de construcción repetitivo). Cada ciclo o iteración termina con una pieza de software ejecutable que incorpora nueva funcionalidad. Las iteraciones en general tienen una duración entre 2 y 4 semanas. Se focaliza en priorizar el trabajo en función del valor que tenga para el negocio, maximizando la utilidad de lo que se construye y el retorno de inversión. Está diseñado especialmente para adaptarse a los cambios en los requerimientos, por ejemplo en un mercado de alta competitividad. Los requerimientos y las prioridades se revisan y ajustan durante el proyecto en intervalos muy cortos y regulares. De esta forma se puede adaptar en tiempo real el producto que se está construyendo a las necesidades del cliente. Se busca entregar software que realmente resuelva las necesidades, aumentando la satisfacción del cliente En Scrum, el equipo se focaliza en una única cosa: construir software de calidad. Por el otro lado, la gestión de un proyecto Scrum se focaliza en definir cuales son las características que debe tener el producto a construir (qué construir, qué no y en qué orden) y en remover cualquier obstáculo que pudiera entorpecer la tarea del equipo de desarrollo. Se busca que los equipos sean lo más efectivos y productivos posible.

Scrum tiene un conjunto de reglas muy pequeño y muy simple y está basado en los principios de inspección continua, adaptación, auto-gestión e innovación. El cliente se entusiasma y se compromete con el proyecto dado que ve crecer el producto iteración a iteración y encuentra las herramientas para alinear el desarrollo con los objetivos de negocio de su empresa. Por otro lado, los desarrolladores encuentran un ámbito propicio para desarrollar sus capacidades profesionales y esto resulta en un incremento en la motivación de los integrantes del equipo.

I CONIX El proceso de ICONIX maneja casos de uso, como el RUP, pero le falta mucho para llegar al nivel del RUP. También es relativamente pequeño y firme, como XP, pero no desecha el análisis y diseño que hace XP. Este proceso también hace uso aerodinámico del UML mientras guarda un enfoque afilado en el seguimiento de requisitos. E SQUEMA DE TRABAJO ICONIX

El proceso se queda igual a la visión original de Jacobson sobre el manejo de casos de uso, esto produce un resultado concreto, específico y casos de uso fácilmente entendibles, que un equipo de un proyecto puede usar para conducir el esfuerzo hacia un desarrollo real. Como se ve en el diagrama, retrata la esencia del enfoque aerodinámico al desarrollo del software, que incluye un juego mínimo de diagramas de UML y algunas valiosas técnicas que se toman de los casos del uso para codificar rápida y eficazmente. El enfoque es flexible y abierto; siempre se puede seleccionar de los otros aspectos del UML para complementar los materiales básicos.