Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

SwingImprover - end of career project defense - 2006

450 views

Published on

This was the slides that we used at the defense of our end of career project. This was about the development of a software prototype (called SwingImprover) that allows the analysis of a golf player swing movement (using personal videos). The software has to let the user study their moves during the various stages of the swing, allowing the comparison with theoretical measures and with movements of professional players.

Published in: Education
  • Be the first to comment

  • Be the first to like this

SwingImprover - end of career project defense - 2006

  1. 1. Proyecto Final ORT – Software Factory 2006Alejandro CharbonnierDarío MacchiFernando Nicolet
  2. 2. • Líneas Generales• Proceso de Desarrollo• Requerimientos• Arquitectura• Tecnologías• SQA• SCM• Gerencia• Métricas• Conclusiones
  3. 3. • Líneas Generales Idea general, propuesta y dominio• Proceso de Desarrollo• Requerimientos• Arquitectura• Tecnologías• SQA• SCM• Gerencia• Métricas• Conclusiones
  4. 4. Líneas GeneralesIdea Original• Chuck Crawford, Presidente de Nujit. Nos presenta la idea del proyecto basándose en su experiencia como instructor de Golf, y conocimiento del mercado como empresario• Detalle no menor: el cliente reside en Canadá. Esto dificulta comunicación debido a distancia y lenguaje
  5. 5. Líneas GeneralesPropuesta• Realizar un software capaz de ayudar a jugadores de golf a mejorar su swing• También será utilizado por instructores de golf para mostrar los avances de sus alumnos• Realizar comparaciones de swings de principiantes contra videos de profesionales• Utilizar modelos teóricos para comparar las medidas tomadas para calificar el swing a los efectos de medir nivel de mejora• Asistir al usuario a identificar elementos a medir
  6. 6. Líneas GeneralesPropuesta• Debe poder medir ángulos, distancias y distintos indicadores en dos dimensiones• Crear el background necesario para generar un modelo 3D del swing
  7. 7. Líneas Generales¿Qué es un Swing?Es la base de la técnica del Golf. Consiste en rotar elcuerpo de forma de acelerar el “clubhead” a granvelocidad para efectuar el golpe a la bola. - Cinco etapas: - Setup - Back Swing - Top of the swing - Down Swing - Follow through
  8. 8. Líneas Generales¿Qué es un Swing?Es la base de la técnica del Golf. Consiste en rotar elcuerpo de forma de acelerar el “clubhead” a granvelocidad para efectuar el golpe a la bola. - Cinco etapas: - Setup - Back Swing - Top of the swing - Down Swing - Follow through
  9. 9. Líneas Generales¿Qué es un Swing?Es la base de la técnica del Golf. Consiste en rotar elcuerpo de forma de acelerar el “clubhead” a granvelocidad para efectuar el golpe a la bola. - Cinco etapas: - Setup - Back Swing - Top of the swing - Down Swing - Follow through
  10. 10. Líneas Generales¿Qué es un Swing?Es la base de la técnica del Golf. Consiste en rotar elcuerpo de forma de acelerar el “clubhead” a granvelocidad para efectuar el golpe a la bola. - Cinco etapas: - Setup - Back Swing - Top of the swing - Down Swing - Follow through
  11. 11. Líneas Generales¿Qué es un Swing?Es la base de la técnica del Golf. Consiste en rotar elcuerpo de forma de acelerar el “clubhead” a granvelocidad para efectuar el golpe a la bola. - Cinco etapas: - Setup - Back Swing - Top of the swing - Down Swing - Follow through
  12. 12. Líneas Generales¿Qué se Puede Medir en un Swing?Modelo teórico basado en investigacionescientíficas del swing (Dr. Ralph Mann) - Posición inicial de la bola - Inclinación de la columna - Distancia del hombro al club - Movimiento de brazos y hombros como unidad - “Inside path” - Etc
  13. 13. Producto
  14. 14. • Líneas Generales Proceso de Desarrollo Metodología, adaptación y puesta en práctica• Requerimientos• Arquitectura• Tecnologías• SQA• SCM• Gerencia• Métricas• Conclusiones
  15. 15. Proceso de Desarrollo-¿Por qué una Metodología Ágil? - Alto riesgo tecnológico - Colaboración del cliente - Prototipo (alta probabilidad de cambio) - Conformidad del cliente - Gestión de la calidad - Grupo pequeño - Disposición de un lugar común de trabajo
  16. 16. Proceso de Desarrollo- Adaptación de XP - 12 Practicas - Estudio de los beneficios de cada practica de XP - Adaptación y utilización de las mismas.
  17. 17. Proceso de Desarrollo- Beneficios de XP - Desventajas de XP - Uso de Spikes - Riesgo de fracaso por falta de - Mantener un diseño simple compromiso de los integrantes - Programación de a pares - Aprendizaje de la metodología - Integración contínua. - Cliente reside en Canadá - Uso de TDD
  18. 18. Proceso de DesarrolloRoles • Coach: Alejandro • Manager: Darío • Tracker: Fernando • Customer: Chuck Crawford (Nujit) • Programmer: Alejandro/Darío/Fernando • Tester: Alejandro/Darío/Fernando/Chuck
  19. 19. • Líneas Generales• Proceso de Desarrollo Requerimientos Cliente, historias. Estrategia y priorización• Arquitectura• Tecnologías• SQA• SCM• Gerencia• Métricas• Conclusiones
  20. 20. RequerimientosRequerimientos Funcionales• Reproducción de video• Posiciones de distintas partes del cuerpo• Medición de distancias y ángulos• Dos videos en simultaneo para efectuar comparaciones• Modalidad de trabajo libre con ángulos, puntos y líneas• Asistencia al usuario en el marcado de elementos a medir• Permitir ingreso de coordenadas desde una fuente externa a la aplicación
  21. 21. RequerimientosRequerimientos no Funcionales• Requerimientos mínimos de sistema: Pentium III 800Mhz, 256MB, 32MB VGA• Lenguaje de desarrollo: C# Framework .NET 1.1• Plataforma: Windows (XP, 2000 y 98)• Idioma de la GUI: Inglés• Interfaz de usuario amigable
  22. 22. RequerimientosEstrategia de Relevamiento• Reuniones virtuales (MSN) - Construcción de historias en conjunto (equipo y cliente) - Priorización de las mismas según: Riesgo e Importancia• Investigación: productos similares, sitios web, bibliografía• Asesoramiento con expertos: tecnología, deporte• Visitas del cliente (3 instancias durante el proyecto)• Uso de prototipos: comunicación y mitigar riesgo• Estudio de factibilidad: presentado a SF
  23. 23. RequerimientosEstudio del Modelado 3D- Contacto con Universidad en Singapur (criterion function) - Modelo con restricciones biomecánicas- Standard ISO/IEC FCD 19774:200x (H-Anim) - Uso de humanoides para entornos virtuales vía web
  24. 24. • Líneas Generales• Proceso de Desarrollo• Requerimientos• Arquitectura Diseño y patrones• Tecnologías• SQA• SCM• Gerencia• Métricas• Conclusiones
  25. 25. Arquitectura SwinImproverCommon Measures VideoPlayers GUI Engine Rendering Repositorio Frames Draw Objects XML FrameRepository
  26. 26. ArquitecturaMeasures <<Abstract>> MeasureFactory Measure + result(): string[] RightKneeAngle TeeToLeftFoot + result(): string[] + result(): string[] Calc MeasureStep
  27. 27. ArquitecturaVideoPlayers <<library>> SwingImproverDomain IVideoPlayback IVideoPlaybackTextured <<library>> SwingImproverVideoPlayers TDDVideoPlayback VMR9VideoPlayback DXAVPVideoPlayback
  28. 28. Arquitectura – Características de CalidadObservables en T. de Ejecución No Observables en T. de Ejecución(producto) (prototipo) • Eficiencia • Modificabilidad • Funcionalidad • Reusabilidad • Usabilidad • Facilidad de prueba.
  29. 29. • Líneas Generales• Proceso de Desarrollo• Requerimientos• Arquitectura• Tecnologías Reproducción de video y controles• SQA• SCM• Gerencia• Métricas• Conclusiones
  30. 30. TecnologíasReproducción de Video • DirectX 9.0c • Windows Media Player • DirectShow - GDI / GDI+ - DirectX 9.0c
  31. 31. TecnologíasDirectX 9.0c - AudioVideoPlaybackVentajas Desventajas• Facilidad de uso • Cerrado• Integración directa con Direct3D • Libertad y control limitados• Manejo automático de distintos • Desconoce FPS formatos de video • Bugs!!!• Obtención de los frames• Performance aceptable• Salida Hardware / Software
  32. 32. TecnologíasDirectX 9.0c - AudioVideoPlaybackFuncionamiento 2• Abrir video• Modos 1 - Directo (Hardware) - Textured (Software)• Control de reproducción 0 -1 -2
  33. 33. TecnologíasWindows MediaPlayerVentajas Desventajas• Facilidad de uso • Cerrado• Compatibilidad directa con • Libertad y control excesivamente Windows limitados – No sirve• Manejo automático de distintos • Salida hardware-dependiente formatos de video• Performance aceptable
  34. 34. TecnologíasDirectShowVentajas Desventajas• Gran libertad • Complejidad• Documentación • Curva de aprendizaje lenta• Altamente performante • Ausencia de una API managed• Salida Hardware / Software oficial File Source AVI Splitter AVI Decompressor Video Renderer (Async) Default DirectSound Device
  35. 35. TecnologíasDirectShow – GDI/GDI+Ventana transparente SlideShow• Visualmente inaceptable • Visualmente aceptable• Altamente impredecible • Excelente Control• Buena performance • Extremadamente poco• Salida hardware-dependiente performante • Salida por software
  36. 36. TecnologíasDirectShow – VMR9 VMR9• Integración con Direct3D• Tecnología en crecimiento• Complejidad muy alta• Performance aceptable• Salida por software
  37. 37. TecnologíasControles Personalizados • Toolbars • Trackbar • Paneles • Botones 8 4 1 1 4 8
  38. 38. TecnologíasControles PersonalizadosVentajas Desventajas• Visualización mejorada • Consumo de recursos• Globalmente modificables • Pérdida de performance• Funcionamiento deseado• Satisface requerimiento de usabilidad
  39. 39. TecnologíasControles PersonalizadosTecnología utilizada Técnicas - GDI - Backbuffer - GDI+ - Canal alfa - Código unsafe
  40. 40. • Líneas Generales• Proceso de Desarrollo• Requerimientos• Arquitectura• Tecnologías• SQA Plan, aseguramiento de la calidad y pruebas• SCM• Gerencia• Métricas• Conclusiones
  41. 41. SQAPlan de Calidad • Programación de a pares, código compartido • Estándar de codificación • Integración continua • Diseño Incremental • Refactoreo • Test Driven Development (TDD)
  42. 42. SQATest Driven Development (TDD) Cálculos Medidas Calc SpineAngle InsidePath SwingImprover. Measures AngleTest DistanceTest InsidePathTest SwingImprover.Test
  43. 43. SQATestingCasos de Prueba Según su Tipo Funcionales TDD Hardware dependiente
  44. 44. • Líneas Generales• Proceso de Desarrollo• Requerimientos• Arquitectura• Tecnologías• SQA• SCM Herramientas, proceso y estrategia de backup• Gerencia• Métricas• Conclusiones
  45. 45. SCMHerramientas - Versionado de código y documentación - CVS NT como servidor de CVS - Tortoise CVS como cliente de CVS - Versionado de documentos informales - Fitneese – Wiki
  46. 46. SCMProceso 1. Realizar un update antes de realizar un commit de un cambio. 2. En caso de ser necesario, solucionar los posibles conflictos de versiones. 3. Realizar un Add content para agregar posibles elementos nuevos. 4. Hacer un commit del proyecto.
  47. 47. • Líneas Generales• Proceso de Desarrollo• Requerimientos• Arquitectura• Tecnologías• SQA• SCM• Gerencia Proceso, planificación y herramientas• Métricas• Conclusiones
  48. 48. GerenciaSe apoyó en los siguientes principios • Compromiso en la responsabilidad • Adaptación Incremental • No agregar overhead al programador (travel light) • Mediciones Honestas
  49. 49. GerenciaPlanificación de Iteraciones Plan de Release Historias Planificación de Iteración
  50. 50. GerenciaPlanificación de Iteraciones Plan de Release Historias Planificación Desarrollo de Iteración Plan de Iteración
  51. 51. GerenciaPlanificación de Iteraciones Nuevas Historias, Plan de Velocidad de Proyecto Release Historias Comunicación y Tereas Pendientes Aprendizaje Planificación Desarrollo de Iteración Plan de Iteración
  52. 52. GerenciaPlanificación de Iteraciones Nuevas Historias, Plan de Velocidad de Proyecto Release Historias Comunicación y Tereas Pendientes Aprendizaje Nuevas Funcionalidades Planificación Desarrollo Última de Iteración Plan de Versión Iteración
  53. 53. GerenciaPlanificación de Iteraciones Nuevas Historias, Plan de Velocidad de Proyecto Release Historias Comunicación y Tereas Pendientes Aprendizaje Nuevas Velocidad Funcionalidades de Proyecto Planificación Desarrollo ÚltimaIteración de Iteración Plan de Versión Iteración Bugs Corregidos Anterior Pruebas de Dia a Dia Aceptación Fallidas Bugs
  54. 54. GerenciaPlanificaciónPlan de proyecto - Versión 1 • R1: Octubre (final de it. 3) • R2: Mitad de diciembre (final de it. 8) • R3: Mitad de febrero (final de it. 12) - Versión 2 • R1: Mitad de diciembre (final de it. 8) • R2: Mitad de febrero (final de it. 12)• Velocidad = Puntos/Hrs. trabajadas
  55. 55. Gerencia Iteraciones 1 2 3 4 5 6 7 8 9 10 11 12 Release 1 Release 2 Release 3 Historias
  56. 56. Gerencia Iteraciones 1 2 3 4 5 6 7 8 9 10 11 12 Release 1 Release 2 Historias
  57. 57. GerenciaPlanificaciónHerramientas utilizadas • XPPlanner • ToDoList • Excel (evolución de planillas) 
  58. 58. GerenciaRiesgos• Riesgos tecnológicos - Spikes• Otros riesgos - Compromiso con XP - Confianza con el cliente - Error• Falta de un plan de riesgos y planes de contingencia - Soluciones espontáneas
  59. 59. • Líneas Generales• Proceso de Desarrollo• Requerimientos• Arquitectura• Tecnologías• SQA• SCM• Gerencia Métricas De proceso, producto e interpretaciones• Conclusiones
  60. 60. MétricasAl final del Proyecto • Releases: 2 • Iteraciones: 11 • Historias: 63 • Puntos de complejidad: 455 • Hrs. Trabajadas: 1428 • Velocidad: 0.41 puntos/hora • Hrs./persona/día: 4:00 (4 días a la semana)
  61. 61. Métricas - Proyecto Historias / Puntos 10 70 60 8 Cantidad de Historias 50 6 40 Puntos 4 30 20 2 10 0 0 1 2 3 4 5 6 7 8 9 10 11 Historias 6 5 9 2 5 5 5 8 4 3 3 Puntos 21 38 26 66 52 62 38 64 26 24 38
  62. 62. Métricas - Proyecto Velocidad / Hrs. trabajadas respecto a Hrs. estimadas 240:00 0.60 0.50 192:00 Cantida de Horas 0.40 Puntos/Hrs. 144:00 0.30 96:00 0.20 48:00 0.10 0:00 0.00 1 2 3 4 5 6 7 8 9 10 11 Hrs. Estimadas Hrs. trabajadas Velocity
  63. 63. Métricas - Producto60 5450 SwingImprover40 SIDomain 29 SICommon30 27 SIControls 22 VideoInfo20 17 15 SIVideoPlayers SIToobar10 5 SITest 00 Max Complexity
  64. 64. • Líneas Generales• Proceso de Desarrollo• Requerimientos• Arquitectura• Tecnologías• SQA• SCM• Gerencia• Métricas Conclusiones De proyecto y personales
  65. 65. Conclusiones del ProyectoMetas Alcanzadas Lecciones Aprendidas• Satisfacción del Cliente • No desviarse del proceso• Cumplimiento de alcance inicial • Necesidad de pruebas mas• Adaptación exitosa de XP exhaustivas • Ser concientes de potenciales riesgos y generar plan de contingencia (mas allá del uso de spikes) • Llevar una bitácora de proyecto
  66. 66. Conclusiones PersonalesMetas Alcanzadas Lecciones Aprendidas• Conocimiento de nuevas • Ventajas de programación a pares tecnologías • Capacidad de afrontar desafíos• Uso de una metodología de atípicos exitosamente desarrollo ágil (XP) • Necesidad de delegar actividades• Compromiso hacia el grupo por parte de sus integrantes
  67. 67. Estado Actual del Productohttp://www.nextgenerationsrt.com/ Partner: Company:
  68. 68. FIN

×