Title: Mtodos giles de Ingeniera de Software
1Métodos Ágiles de Ingeniería de Software
2Programación extrema (XP)
- Surge de la resistencia de desarrolladores a
seguir procedimientos rigurosos para crear,
diseñar, documentar y probar software. - Se crea un manifesto estableciendo el
pensamiento e ideología de estos desarrolladores. - Surge Agile Alliance 2001.
3Agile Alliance 2001 (1 de 3)
- Filosofía
- Se valora los individuos e interacciones por
encima de los procesos y las herramientas. - Se suple a los desarrolladores con todo lo que
necesiten y se confía en que harán bien su
trabajo. - Los grupos de trabajo se comunican cara a cara,
no a través de la documentación.
4Agile Alliance 2001 (2 de 3)
- Prefieren invertir tiempo en producir un software
que trabaje en vez de en una documentación
extensiva y clara. - La medida principal de éxito es el grado al cual
el software trabaja apropiadamente. - Se enfocan en la colaboración del cliente en el
proceso de desarrollo en vez de un contrato de
negociación. - Se envuelve a los clientes en aspectos claves del
proceso de desarrollo .
5Agile Alliance 2001 (3 de 3)
- Se concentran en responder al cambio en vez de
hacer un plan y seguirlo. - Creen que es imposible que todos los requisitos
del sistema queden establecidos desde el comienzo
del desarrollo.
612 Facetas de XP (1 de 12)
- The planning game
- El cliente establece los requisitos del sistema y
le da valor de modo que los desarrolladores
entiendan la necesidad y la importancia de los
mismos. - Los usuarios escriben historias acerca de lo
que el sistema debe hacer. Esto se convierte en
casos (use cases) y los desarrolladores los usan
para determinar los recursos que necesitan para
hacer realidad estas historias.
712 Facetas de XP (2 de 12)
- Small releases
- El sistema se diseña de modo que se presenten
versiones tempranas con funcionalidad. - Durante el proceso de desarrollo se van
expandiendo y mejorando las versiones tempranas.
812 Facetas de XP (3 de 12)
- Metaphor
- El equipo de desarrolladores se pone de acuerdo
para establecer una visión en común de cómo debe
operar el sistema. - El equipo escoge nombres en común y se pone de
acuerdo para resolver aspectos claves de una
manera uniforme.
912 Facetas de XP (4 de 12)
- Simple design
- El diseño se mantiene lo más simple posible de
modo que no se haga funcionalidad innecesaria. - Si el problema es complejo se hace un diseño e
implementación rápida para tomar la decisión de
cómo proceder con el sistema.
1012 Facetas de XP (5 de 12)
- Writing tests first
- Se escriben casos de uso para asegurarse de que
los requisitos sean claramente establecidos. - Los usuarios y los desarrolladores prueban los
casos en el sistema pruebas de funcionalidad. - Los desarrolladores escriben y hacen pruebas de
unidad para verificar que cada módulo
implementado trabaje como fue especificado.
1112 Facetas de XP (6 de 12)
- Refactoring
- Es el proceso de revisar los requisitos y el
diseño de modo que se reformulen para cumplir con
los necesidades nuevas y existentes.
1212 Facetas de XP (7 de 12)
- Pair programming
- Implica que los desarrolladores se reunen en
parejas, pero utilizando un sólo teclado, para
desarrollar el sistema a partir de las
especificaciones y el diseño. - Este procedimiento es flexible en términos de que
pueden tomar turnos para programar y que las
parejas no siempre van a estar compuestas de las
mismas personas.
1312 Facetas de XP (8 de 12)
- Collective Ownership
- Cualquier desarrollador del equipo tiene la
potestad de cambiar cualquier parte del sistema.
1412 Facetas de XP (9 de 12)
- Continuous integration
- Se le promete al cliente que se le añadirá
funcionalidad al sistema diariamente y hasta cada
hora. - El énfasis es proveer frecuentemente mejoras al
sistema en vez de ver cambios grandes entre
revisiones.
1512 Facetas de XP (10 de 12)
- Sustainable pace
- Los desarrolladores entienden que la fatiga
produce errores en el desarrollo del sistema. - Se establece que se trabaje 40 horas semanales y
que el presionar a los desarrolladores a que
inviertan demasiadas horas en cumplir fechas
límites es señal de que las fechas no son
razonables o que los recursos asignados no son
suficientes.
1612 Facetas de XP (11 de 12)
- On-site customer
- Idealmente se pretende que el cliente esté
presente en el área de trabajo de los
desarrolladores. Su función es ayudar a
establecer requisitos y proveer
retroalimentación de cómo probar el sistema.
1712 Facetas de XP (12 de 12)
- Coding standards
- Se establecen formatos, técnicas y estándares
entre los desarrolladores, de modo que el sistema
al final parezca que fue codificado por una sola
persona.