Lectura PFC Events

  • 319 views
Uploaded on

Diapositivas usadas para la presentación de Events en la lectura del proyecto final de carrera de pablo Rivera

Diapositivas usadas para la presentación de Events en la lectura del proyecto final de carrera de pablo Rivera

More in: Education , Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
319
On Slideshare
0
From Embeds
0
Number of Embeds
2

Actions

Shares
Downloads
2
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Events Red social para compartir documentos y podcasts Autor: Pablo Rivera Conde Director: César Fernández Acebal sábado 19 de diciembre de 2009
  • 2. ¿Cuál es el problema? Aislamiento de personas con conocimientos o intereses comunes. Información muy dispersa. Falta de publicidad de congresos con poco presupuesto. Introducción > Teóricamente > Diseño > Conclusiones > Demostración sábado 19 de diciembre de 2009
  • 3. ¿Que es events? Se trata de una red social... Introducción > Teóricamente > Diseño > Conclusiones > Demostración sábado 19 de diciembre de 2009
  • 4. ¿Que es events? ...para compartir documentos y eventos... Introducción > Teóricamente > Diseño > Conclusiones > Demostración sábado 19 de diciembre de 2009
  • 5. ¿Que es events? ...y aumentar la comunicación entre personas. Introducción > Teóricamente > Diseño > Conclusiones > Demostración sábado 19 de diciembre de 2009
  • 6. ¿Qué me aporta? Buscar más fácilmente documentos y congresos que me interesen. Buscar compañeros de trabajo, y gente con gustos afines. Compartir más fácilmente mi trabajo para ayudar a los demás. Introducción > Teóricamente > Diseño > Conclusiones > Demostración sábado 19 de diciembre de 2009
  • 7. ¿Qué me aporta? Encontrar Buscar más fácilmente documentos y congresos que me interesen. Buscar compañeros de trabajo, y gente con gustos afines. Compartir más fácilmente mi trabajo para ayudar a los demás. Introducción > Teóricamente > Diseño > Conclusiones > Demostración sábado 19 de diciembre de 2009
  • 8. ¿Inferir los gustos de cada usuario? Sobre gustos no hay nada escrito Introducción > Teóricamente > Diseño > Conclusiones > Demostración sábado 19 de diciembre de 2009
  • 9. ¿Inferir los gustos de cada usuario? Hasta que aparecieron las matemáticas Sobre gustos no hay nada escrito Filtrado colaborativo Introducción > Teóricamente > Diseño > Conclusiones > Demostración sábado 19 de diciembre de 2009
  • 10. Filtrado colaborativo “Aquello que coincide en el pasado tenderá a coincidir en el futuro.” Uso de la Inteligencia Colectiva. Introducción > Teóricamente > Diseño > Conclusiones > Demostración sábado 19 de diciembre de 2009
  • 11. Metodología del filtrado colaborativo Primero busca entidades cuya información de gustos sea similar al que va a recibir recomendaciones. Después se calcula que ítems que no haya visto van a ser de su gusto, basándose en la recopilación anteriormente filtrada. Introducción > Teóricamente > Diseño > Conclusiones > Demostración sábado 19 de diciembre de 2009
  • 12. Y todo esto, ¿Cómo? Ruby Introducción > Teóricamente > Diseño > Conclusiones > Demostración sábado 19 de diciembre de 2009
  • 13. Ruby Lenguaje de programación dinámico. De alto nivel. Interpretado. Orientación a objetos pura. Introducción > Teóricamente > Diseño > Conclusiones > Demostración sábado 19 de diciembre de 2009
  • 14. Ruby Gracias a su semántica y a la orientación pura a objetos, es muy expresivo. 5.times{“Me encanta Ruby”} Su capacidad de dinamismo añade una gran flexibilidad al lenguaje. class Numeric def mi_suma(y) z = 5.mi_suma 6 self.+(y) #Ahora z vale 11 end end Introducción > Teóricamente > Diseño > Conclusiones > Demostración sábado 19 de diciembre de 2009
  • 15. Ruby On Rails Framework web basado en Ruby Creado en 2005 por David Heinemeier Hansson. “Un framework creado por desarrolladores y para desarrolladores.” Introducción > Teóricamente > Diseño > Conclusiones > Demostración sábado 19 de diciembre de 2009
  • 16. Ruby on Rails Sigue el patrón MVC. Filosofía REST. Convención sobre configuración. DRY (Don’t Repeat Yourself) Introducción > Teóricamente > Diseño > Conclusiones > Demostración sábado 19 de diciembre de 2009
  • 17. don’t Repeat Yourself Se basa en que no haya nada redundante en la aplicación. No es solo refactorización de código, sino ahorro real. Introducción > Teóricamente > Diseño > Conclusiones > Demostración sábado 19 de diciembre de 2009
  • 18. Convention over configuration Intenta evitar todo fichero de configuración posible. Para ello establece una serie de convenciones que, de seguirse, minimizan el código a escribir. Introducción > Teóricamente > Diseño > Conclusiones > Demostración sábado 19 de diciembre de 2009
  • 19. Ejemplo de Coc Para manipular Películas: Objeto de modelo: Movie Tabla de la base de datos: movies Controlador: MoviesController Vistas: Dentro de la carpeta movies: new, index, show, edit Introducción > Teóricamente > Diseño > Conclusiones > Demostración sábado 19 de diciembre de 2009
  • 20. Ejemplo de Coc Siguiendo este Para manipular Películas: convenio no hace falta especificar Objeto de modelo: Movie nada más. Rails sabrá cual es el comportamiento. Tabla de la base de datos: movies Controlador: MoviesController Vistas: Dentro de la carpeta movies: new, index, show, edit Introducción > Teóricamente > Diseño > Conclusiones > Demostración sábado 19 de diciembre de 2009
  • 21. Problemas de Ruby on rails Tanta convención resulta difícil de recordar al principio. Desarrollo muy rápido si se tiene buena memoria. Introducción > Teóricamente > Diseño > Conclusiones > Demostración sábado 19 de diciembre de 2009
  • 22. Pero no fueron los únicos Introducción > Teóricamente > Diseño > Conclusiones > Demostración sábado 19 de diciembre de 2009
  • 23. ¿Como fue el desarrollo? Metodología de desarrollo ágil: AUP. Se trata de una versión ágil del proceso unificado (RUP) basándose en los riesgos. Desarrollo mediante iteraciones. Desarrollo guiado por las pruebas. Introducción > Teóricamente > Diseño > Conclusiones > Demostración sábado 19 de diciembre de 2009
  • 24. Planificación sábado 19 de diciembre de 2009
  • 25. Tarea Esfuerzo jun 2009 1) Desarrollo del proyecto 56s 1d 5h 1.1) Análisis 3s 1d 1.1.1) Análisis de requisitos 1s 1.1.2) Especificación de requisitos 3d 1.1.3) Análisis de subsistemas 4d 1.1.4) Análisis de clases 1d 1.1.5) Análisis de interfaces de usuario 1d 1.1.6) Especificación del plan de… 2d 1.2) Diseño 8s 4d 1.2.1) Estudio general de diseño 3d 1.2.2) Diseño del incremento 1 3d 1.2.3) Diseño del incremento 2 3d 1.2.4) Diseño del incremento 3 3d 1.2.5) Diseño del incremento 4 3d 1.2.6) Diseño del incremento 5 3d 1.2.7) Diseño del incremento 6 3d 1.2.8) Diseño del incremento 7 3d 1.2.9) Diseño del incremento 8 3d 1.2.10) Diseño del incremento 9 3d 1.2.11) Diseño del incremento 10 1s 1.2.12) Diseño del incremento 11 3d 1.2.13) Diseño del incremento 12 3d 1.2.14) Diseño del incremento 13 3d 1.3) Implementación 13s 1.3.1) Implementación del incremento… 1s 1.3.2) Implementación del incremento… 1s 1.3.3) Implementación del incremento… 1s 1.3.4) Entrega 1 1.3.5) Implementación del incremento… 1s 1.3.6) Implementación del incremento… 1s 1.3.7) Implementación del incremento… 1s 1.3.8) Entrega 2 1.3.9) Implementación del incremento… 1s 1.3.10) Implementación del incremento… 1s 1.3.11) Implementación del incremento… 1s 1.3.12) Implementación del incremento… 1s 1.3.13) Entrega 3 1.3.14) Implementación del incremento… 1s 1.3.15) Implementación del incremento… 1s 1.3.16) Implementación del incremento… 1s 1.3.17) Entrega 4 1.4) Pruebas unitarias y de integración 13s 1.4.1) Pruebas del incremento 1 1s 1.4.2) Pruebas del incremento 2 1s 1.4.3) Pruebas del incremento 3 1s 1.4.4) Pruebas del incremento 4 1s 1.4.5) Pruebas del incremento 5 1s Planificación 1.4.6) Pruebas del incremento 6 1s 1.4.7) Pruebas del incremento 7 1s 1.4.8) Pruebas del incremento 8 1s 1.4.9) Pruebas del incremento 9 1s 1.4.10) Pruebas del incremento 10 1s 1.4.11) Pruebas del incremento 11 1s 1.4.12) Pruebas del incremento 12 1s 1.4.13) Pruebas del incremento 13 1s 1.5) Pruebas de sistema 1s 1.6) Implantación 1s 1.7) Formación 2s 1.8) Documentación 14s 1d 5h sábado 19 de diciembre de 2009
  • 26. jul 2009 ago 2009 sep 2009 Planificación sábado 19 de diciembre de 2009
  • 27. Tarea Esfuerzo jun 2009 jul 2009 ago 2009 sep 2009 1) Desarrollo del proyecto 56s 1d 5h 1.1) Análisis 3s 1d 1.1.1) Análisis de requisitos 1s 1.1.2) Especificación de requisitos 3d 1.1.3) Análisis de subsistemas 4d 1.1.4) Análisis de clases 1d 1.1.5) Análisis de interfaces de usuario 1d 1.1.6) Especificación del plan de… 2d 1.2) Diseño 8s 4d 1.2.1) Estudio general de diseño 3d 1.2.2) Diseño del incremento 1 3d 1.2.3) Diseño del incremento 2 3d 1.2.4) Diseño del incremento 3 3d 1.2.5) Diseño del incremento 4 3d 1.2.6) Diseño del incremento 5 3d 1.2.7) Diseño del incremento 6 3d 1.2.8) Diseño del incremento 7 3d 1.2.9) Diseño del incremento 8 3d 1.2.10) Diseño del incremento 9 3d 1.2.11) Diseño del incremento 10 1s 1.2.12) Diseño del incremento 11 3d 1.2.13) Diseño del incremento 12 3d 1.2.14) Diseño del incremento 13 3d 1.3) Implementación 13s 1.3.1) Implementación del incremento… 1s 1.3.2) Implementación del incremento… 1s 1.3.3) Implementación del incremento… 1s 1.3.4) Entrega 1 1.3.5) Implementación del incremento… 1s 1.3.6) Implementación del incremento… 1s 1.3.7) Implementación del incremento… 1s 1.3.8) Entrega 2 1.3.9) Implementación del incremento… 1s 1.3.10) Implementación del incremento… 1s 1.3.11) Implementación del incremento… 1s 1.3.12) Implementación del incremento… 1s 1.3.13) Entrega 3 1.3.14) Implementación del incremento… 1s 1.3.15) Implementación del incremento… 1s 1.3.16) Implementación del incremento… 1s 1.3.17) Entrega 4 1.4) Pruebas unitarias y de integración 13s 1.4.1) Pruebas del incremento 1 1s 1.4.2) Pruebas del incremento 2 1s 1.4.3) Pruebas del incremento 3 1s 1.4.4) Pruebas del incremento 4 1s 1.4.5) Pruebas del incremento 5 1s 1.4.6) Pruebas del incremento 6 1s 1.4.7) Pruebas del incremento 7 1s 1.4.8) Pruebas del incremento 8 1s 1.4.9) Pruebas del incremento 9 1s 1.4.10) Pruebas del incremento 10 1s 1.4.11) Pruebas del incremento 11 1s 1.4.12) Pruebas del incremento 12 1s 1.4.13) Pruebas del incremento 13 1s 1.5) Pruebas de sistema 1s 1.6) Implantación 1s 1.7) Formación 2s 1.8) Documentación 14s 1d 5h Planificación sábado 19 de diciembre de 2009
  • 28. Diseño Importancia de la modularidad para la visualización de documentos. Conseguido mediante el uso de gemas. Introducción > Teóricamente > Diseño > Conclusiones > Demostración sábado 19 de diciembre de 2009
  • 29. Diseño modular Componentes Youtube Events PDF Slideshare Introducción > Teóricamente > Diseño > Conclusiones > Demostración sábado 19 de diciembre de 2009
  • 30. Diseño modular Componentes Youtube Podcast Events PDF SlideShare Introducción > Teóricamente > Diseño > Conclusiones > Demostración sábado 19 de diciembre de 2009
  • 31. Convenio de las gemas YoutubeDocument - document: Document + <<static>> parseable?(document):boolean + to_html():XMLMarkup:Builder + method_missing(sym, params) method_missing hace que todas los métodos no redefinidos en esta decoración se deleguen en el objeto document Introducción > Teóricamente > Diseño > Conclusiones > Demostración sábado 19 de diciembre de 2009
  • 32. ¿Y las recomendaciones? Se trata de una parte primordial de la aplicación. Debe ser lo suficientemente flexible para poder recomendar cualquier objeto a otro objeto cualquiera. Debe ser también lo suficientemente flexible para poder cambiar los datos con los que hacer las recomendaciones. Introducción > Teóricamente > Diseño > Conclusiones > Demostración sábado 19 de diciembre de 2009
  • 33. Recomendaciones Se necesita tal flexibilidad que se desarrolla como plugin. Este plugin permitirá que cualquier objeto de modelo pueda recibir recomendaciones de cualquier otro objeto a partir de las valoraciones que indique. Uso de azúcar sintáctico. Introducción > Teóricamente > Diseño > Conclusiones > Demostración sábado 19 de diciembre de 2009
  • 34. Recomendaciones: Azúcar sintáctico class User recommend :documents do |user| #código para recopilar las valoraciones #como un hash {documento => valor} end end añade a las instancias de User los métodos recommend_documents y similar_users Introducción > Teóricamente > Diseño > Conclusiones > Demostración sábado 19 de diciembre de 2009
  • 35. Conclusiones El desarrollo guiado por pruebas es una opción realmente buena de desarrollar software. El uso de repositorios de código y servidores de integración continua son de gran ayuda. Los lenguajes de alto nivel permiten una gran mejora de la velocidad de desarrollo. Introducción > Teóricamente > Diseño > Conclusiones > Demostración sábado 19 de diciembre de 2009
  • 36. Ampliaciones Añadir soporte a más visualizaciones. Creación de grupos que puedan figurar como autores. Cambio de paradigma de recogida de la información para las recomendaciones. sábado 19 de diciembre de 2009
  • 37. Demostración sábado 19 de diciembre de 2009
  • 38. Autoría de las fotos http://www.flickr.com/photos/49503019876@N01/1659321885 http://www.flickr.com/photos/24183489@N00/91682524 http://www.flickr.com/photos/49462908@N00/4012030328 http://www.flickr.com/photos/22406241@N00/127707517 sábado 19 de diciembre de 2009