desarrollo ágil-ingenieria de softwaare
desarrollo ágil-ingenieria de softwaare
desarrollo ágil-ingenieria de softwaare
desarrollo ágil-ingenieria de softwaare
Próximo SlideShare
MetodologiasagilesMetodologiasagiles
Cargando en ... 3
1 de 4

Más contenido relacionado

desarrollo ágil-ingenieria de softwaare

  1. DESARROLLO ÁGIL RESUMEN DEL CAPITULO 4 INGENIERÍA DE SOFTWARE – UNIVERSIDAD LA SALLE María Inés Cahuana Lázaro - 2015
  2. RESUMEN DEL CAPITULO 4 DESARROLLO ÁGIL Se desarrollan por un intento de superar las debilidades en ingeniería de software convencional. Proporciona beneficios importantes pero imposible aplicarlo a todos los proyectos, productos, etc. Una ingeniería de software ágil combina una filosofía que busca la satisfacción del cliente y entrega temprana de software, con las directrices que hacen referencias al Análisis y Diseño. Un desarrollo ágil puede ser una ingeniería de software ligera. 1.- ¿Qué es la agilidad? Para Ivar Jacobson la agilidad es la palabra para describir un proceso del software moderno, un equipo ágil es diestro y capaz al poder responder apropiadamente a los cambios. Se debe introducir cambios en todo lo que se haga en el software, un equipo ágil trabaja en equipo y su capacidad, colaboración es el fundamento para el éxito del proyecto. Así el cambio es el motor principal de la agilidad, debe ver comunicación entre los miembros del equipo, tecnólogos y gente de negocios, el cliente también es parte del equipo, un plan de proyecto debe ser flexible. La agilidad puede aplicarse a cualquier proceso del software, es esencial que este se diseñe de manera que permita al equipo del proyecto adaptar las tareas y hacerlas directas, dar énfasis a las entregas incrementales para dar funcionalidad al software tan rápido como sea posible. 2. ¿Qué es un proceso ágil? Están son las suposiciones clave que aborda un proceso ágil: - No se sabe que requerimientos de software persistirán y cuales cambiaran, no se sabe si las prioridades del cliente cambiaran. - El diseño y la construcción están encadenados para ejecutarse simultáneamente. - Análisis, diseño, construcción y pruebas no son tan predecibles desde la perspectiva de la planeación. Para alcanzar la agilidad en equipo se define 12 principios: 1. La mayor prioridad es satisfacer al cliente con la entrega temprana del software. 2. Bienvenidos los requisitos cambiantes, incluso en fases tardías del desarrollo; 3. Entregar software en funcionamiento, con escala de tiempo lo más corta posible; 4. La gente de negocios y los desarrolladores deben trabajar juntos a diario; 5. Construir proyectos alrededor de individuos motivados; 6. Incentivar la conversación cara a cara; 7. El software en funcionamiento es la medida primaria de progreso; 8. Los procesos ágiles promueven el desarrollo sustentable; 9. La atención continua a la excelencia técnica y al buen diseño mejora la agilidad; 10. La simplicidad es esencial 11. Las mejores arquitecturas, requisitos y diseños emergen de equipos auto organizados; 12. Los equipos se vuelven más efectivos a intervalos regulares.
  3. Factores humanos El desarrollo ágil, según Cockburn y Highsmith, se centra en los talentos y las habilidades de los individuos, puesto que el proceso se ajusta a personas y equipos específicos. Si los miembros del equipo de software van a manejar las características del proceso que se aplica para construirlo, deben existir rasgos clave “ágiles” y los demás miembros del equipo. Los rasgos son los siguientes:  Competencia;  Enfoque común;  Colaboración;  Habilidad para la toma de decisiones;  Capacidad de resolución de problemas confusos;  Confianza y respeto mutuo;  Organización propia. 3. Modelos ágiles de proceso Estos modelos se ajustan al manifiesto para el desarrollo de software y a los 12 principios. Programación Extrema (XP) Es una metodología para el desarrollo de proyectos de software trata de dar solución a los problemas de ingeniería de software, define un enfoque radical, lleva al extremo las metodologías tradicionales, así: “si diseñar es bueno, diseñemos todo el tiempo”. “Si las pruebas son buenas, probemos todo el tiempo” El proceso XP XP utiliza un enfoque orientado a objetos, abarca un conjunto de reglas y prácticas que ocurren en 4 actividades del marco de trabajo:  Planeación.- comienza escuchando para entender el contexto del negocio, así se intenta describir la salida necesaria, características y funcionalidad del software.  Diseño.- sigue el principio MS (mantenlo sencillo), si el cliente cambia sus prioridades continuamente para que hacer un diseño sofisticado, es mejor proporcionar cuanto antes un prototipo.  Codificación.- antes se desarrollan una serie de pruebas unitarias para las historias de usuario, ya creada la prueba unitaria se pasa a la programación en parejas, comparten un ordenador y colaboran para escribir el código.  Prueba.- es la única forma de tener confianza en el código ya que se pone a prueba el software y se verifican posibles errores.  Refactorización.- es un proceso disciplinado por el cual se modifica el diseño de un módulo sin afectar a su comportamiento externo. El coraje para refactorizar proviene de la disponibilidad de pruebas automáticas. Otros modelos ágiles de proceso Desarrollo adaptativo del software (DAS).- Lo propuso Highsmith, como una técnica para construir software y sistemas complejos. Los apoyos filosóficos del DAS se enfocan en la colaboración humana y la organización propia del equipo.
  4. Argumenta que un enfoque de desarrollo ágil y adaptativo basado en la colaboración es “tanto como una fuente de orden en las complejas interacciones entre disciplina e ingeniería”. SCRUM.- Es un modelo (propuesto por Schwaber y Beedle) ágil de proceso. Los principios de la melé son consistentes con el manifiesto ágil:  Los equipos de trabajo pequeños están organizados para “maximizar la comunicación, minimizar los gastos generales y maximizar el hecho de compartir conocimiento tácito e informal”.  El proceso debe adaptarse a los cambios técnicos y de negocios “para asegurar que se produzca el mejor producto posible”.  El proceso produce incrementos frecuentes de software “los cuales se pueden inspeccionar, ajustar, probar, documentar y construir”.  El trabajo de desarrollo y la gente que lo realiza están divididos en “particiones o paquetes de bajo acoplamiento”. Método de desarrollo de sistemas dinámicos (MDSD).- Es un enfoque de desarrollo de software ágil que “proporciona un marco de trabajo para construir y mantener sistemas con restricciones de tiempo muy estrechas mediante el empleo de la construcción de prototipos incrementales en un ambiente de proyecto controlado”. Este método define 3 ciclos iterativos diferentes, a los cuales preceden 2 actividades del ciclo de vida adicionales:  Estudio de factibilidad  Estudio de factibilidad  Iteración del modelo funcional  Iteración de construcción y diseño  Implementación