4
DESARROLLO ÁGIL RESUMEN DEL CAPITULO 4 INGENIERÍA DE SOFTWARE – UNIVERSIDAD LA SALLE María Inés Cahuana Lázaro - 2015

desarrollo ágil-ingenieria de softwaare

Embed Size (px)

Citation preview

Page 1: desarrollo ágil-ingenieria de softwaare

DESARROLLO ÁGIL RESUMEN DEL CAPITULO 4

INGENIERÍA DE SOFTWARE – UNIVERSIDAD LA SALLE

María Inés Cahuana Lázaro - 2015

Page 2: desarrollo ágil-ingenieria de softwaare

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.

Page 3: desarrollo ágil-ingenieria de softwaare

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.

Page 4: desarrollo ágil-ingenieria de softwaare

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