Xp y Entornos de Desarrollo Software
-
Upload
david-de-francisco-marcos -
Category
Software
-
view
35 -
download
2
Transcript of Xp y Entornos de Desarrollo Software
![Page 1: Xp y Entornos de Desarrollo Software](https://reader030.fdocuments.us/reader030/viewer/2022032618/55b7c31dbb61eba47b8b4616/html5/thumbnails/1.jpg)
David de Francisco Marcos Msc, MBA, PMP y CSM
XP y Entornos
de Desarrollo
Ágil
Máster en Informática
Universidad de Valladolid
2014-2015 Sesión 3
www.linkedin.com/in/daviddefco
![Page 2: Xp y Entornos de Desarrollo Software](https://reader030.fdocuments.us/reader030/viewer/2022032618/55b7c31dbb61eba47b8b4616/html5/thumbnails/2.jpg)
Notas Rápidas sobre XP
![Page 3: Xp y Entornos de Desarrollo Software](https://reader030.fdocuments.us/reader030/viewer/2022032618/55b7c31dbb61eba47b8b4616/html5/thumbnails/3.jpg)
Desarrollar
Análisis Incremental
Tests de Cliente
TDD
Refactorización
Diseño Simple
Desarrollo Incremental
Spikes
Optimización
Tests Exploratorios
Prácticas XP
Pensar
Programación Pares
Trabajo con Energía
Controles Visuales
Análisis Causa – Efecto
Retrospectivas
Colaborar
Confianza
Sentarse Juntos
Cliente Involucrado
Daily Meetings
Estándares de Código
Demos Continuas
Informar y Comunicar
Planificar
Visión
Planificar Entregas
Juegos de Planificación
Gestión de Riesgos
Historias
Backlogs
Entregar
Definición de Hecho
No Bugs
Control de Versiones
Build en 10 Minutos
Autoría Compartida
Documentación
![Page 4: Xp y Entornos de Desarrollo Software](https://reader030.fdocuments.us/reader030/viewer/2022032618/55b7c31dbb61eba47b8b4616/html5/thumbnails/4.jpg)
Desarrollar
Análisis Incremental
Tests de Cliente
TDD
Refactorización
Diseño Simple
Desarrollo Incremental
Spikes
Optimización
Tests Exploratorios
Prácticas XP
Pensar
Programación Pares
Trabajo con Energía
Controles Visuales
Análisis Causa – Efecto
Retrospectivas
Colaborar
Confianza
Sentarse Juntos
Cliente Involucrado
Daily Meetings
Estándares de Código
Demos Continuas
Informar y Comunicar
Planificar
Visión
Planificar Entregas
Juegos de Planificación
Gestión de Riesgos
Historias
Backlogs
Entregar
Definición de Hecho
No Bugs
Control de Versiones
Build en 10 Minutos
Autoría Compartida
Documentación
![Page 5: Xp y Entornos de Desarrollo Software](https://reader030.fdocuments.us/reader030/viewer/2022032618/55b7c31dbb61eba47b8b4616/html5/thumbnails/5.jpg)
Análisis Causa - Efecto
5 Whys
Para llegar al fondo de algo
continuar preguntando por qué
hasta que llegamos a un motivo
de peso
Diagrama de Raspa de Pez
1) Dibujar el problema a resolver
2) Categorizar las causas
3) Detallar las causas
4) Analizar causas principales
5) Buscar correlaciones entre ellas
![Page 6: Xp y Entornos de Desarrollo Software](https://reader030.fdocuments.us/reader030/viewer/2022032618/55b7c31dbb61eba47b8b4616/html5/thumbnails/6.jpg)
Ejemplo Cucumber
Característica: Proceso de login de mi tienda online
Como cliente de la tienda online
Quiero poder autenticarme en la tienda
De forma que pueda acceder al contenido de la aplicación y mi autenticación quede registrada a lo largo de toda la sesión
Antecedentes:
Dado que me encuentro en la vista de autenticacion de la Web
Y que no estoy autenticado dentro de la aplicación
Escenario: proceso de autenticación
Esquema del escenario: autenticación
Cuando relleno el campo de identificador de usuario con el valor <username>
Y relleno el campo de password con el valor <password>
Entonces al pulsar en el botón de acción debería estar en la pagina <page>
Ejemplos:
| username | password | page | | user01 | claveerronea | LoginPage |
| inexistente | user01pass | LoginPage |
| super | user01pass | RootPage |
TDD y BDD
TDD: Ciclo rápido de:
Prueba
Desarrollo
Refactorización
Reduce el efecto de errores y
mejora el diseño del código
Behaviour Driven Development
Lleva TDD un paso más allá, al
diseño guiado por dominio,
involucrando a los BSE en los
procesos de test / aceptación
![Page 7: Xp y Entornos de Desarrollo Software](https://reader030.fdocuments.us/reader030/viewer/2022032618/55b7c31dbb61eba47b8b4616/html5/thumbnails/7.jpg)
Refactorización
Refactorizar es cambiar el
código fuente sin alterar su
funcionalidad.
Beneficios
Mejora el diseño del software
Contribuye a detectar errores
Facilita la comprensión del SW
Ayuda a programar más rápido
Imagen obtenida de www.flickr.com/photos/danisarda
![Page 8: Xp y Entornos de Desarrollo Software](https://reader030.fdocuments.us/reader030/viewer/2022032618/55b7c31dbb61eba47b8b4616/html5/thumbnails/8.jpg)
Ejemplo Refactorización
public class CalcSal { private static final int meses = 12; private static final double ss = 6.3; private static final double imp = 14; public static double calcSalNet(double s) { if (s < 0) throw new IllegalArgumentException(); double sMens = s/meses; return sMens - (s/meses * (ss/100)) - (sMens * (imp/100)); } }
![Page 9: Xp y Entornos de Desarrollo Software](https://reader030.fdocuments.us/reader030/viewer/2022032618/55b7c31dbb61eba47b8b4616/html5/thumbnails/9.jpg)
Ejemplo Refactorización
public class Salario { private static final int CUOTAS_ANUALES_DE_SEGURIDAD_SOCIAL = 12; private static final int NUMERO_DE_PAGAS_ANUALES = 12; private static final double PORCENTAJE_RETENCION_SEGURIDAD_SOCIAL = 6.3; private static final double PORCENTAJE_RETENCION_IRPF = 14; public static double calcularSalarioMensualNeto(double salarioAnualBruto) { validarCifraDeSalario(salarioAnualBruto); double salarioMensualBruto = salarioAnualBruto / NUMERO_DE_PAGAS_ANUALES; return salarioMensualBruto - getRetencionesMensualesSeguridadSocial(salarioAnualBruto) - getRetencionesMensualesIrpf(salarioMensualBruto); } private static void validarCifraDeSalario(double salarioParaValidar) { if (salarioParaValidar < 0) throw new IllegalArgumentException( "El valor de un salario no puede ser menor que 0" ); } private static double getRetencionesMensualesSeguridadSocial(double salarioAnualBruto) { double decimalRetencionSeguridadSocial = PORCENTAJE_RETENCION_SEGURIDAD_SOCIAL / 100; return (salarioAnualBruto / CUOTAS_ANUALES_DE_SEGURIDAD_SOCIAL) * decimalRetencionSeguridadSocial; } private static double getRetencionesMensualesIrpf(double salarioMensualBruto) { double decimalRetencionIrpf = PORCENTAJE_RETENCION_IRPF / 100; return (salarioMensualBruto * decimalRetencionIrpf); } }
![Page 10: Xp y Entornos de Desarrollo Software](https://reader030.fdocuments.us/reader030/viewer/2022032618/55b7c31dbb61eba47b8b4616/html5/thumbnails/10.jpg)
Entornos de Desarrollo
![Page 11: Xp y Entornos de Desarrollo Software](https://reader030.fdocuments.us/reader030/viewer/2022032618/55b7c31dbb61eba47b8b4616/html5/thumbnails/11.jpg)
Ejemplo Entorno de Desarrollo
![Page 13: Xp y Entornos de Desarrollo Software](https://reader030.fdocuments.us/reader030/viewer/2022032618/55b7c31dbb61eba47b8b4616/html5/thumbnails/13.jpg)
Servidor CI
![Page 14: Xp y Entornos de Desarrollo Software](https://reader030.fdocuments.us/reader030/viewer/2022032618/55b7c31dbb61eba47b8b4616/html5/thumbnails/14.jpg)
Métricas de Calidad (Sonar)
![Page 15: Xp y Entornos de Desarrollo Software](https://reader030.fdocuments.us/reader030/viewer/2022032618/55b7c31dbb61eba47b8b4616/html5/thumbnails/15.jpg)
Próximos Pasos:
1) Encuesta: https://es.surveymonkey.com/s/WJSJVNS
2) Bibliografía y PPTs en la plataforma y Slideshare
3) Cualquier duda / comentario es bienvenido
David de Francisco Marcos Msc, MBA, PMP y CSM
www.linkedin.com/in/daviddefco
Gracias por la Atención