SlideShare une entreprise Scribd logo
1  sur  44
Télécharger pour lire hors ligne
Desarrollo centrado
en tareas en Eclipse con Mylyn
Integración de Eclipse, Bugzilla y Subversion
sidelab
Software & Integrated
Development Environments Lab
Mylyn
Francisco Gortázar Bellas - Micael Gallego Carrillo
Noviembre 2009
http://www.gavab.es/wiki/tallermylyn
2
Desarrollo centrado en tareas
en Eclipse con Mylyn
 Introducción a Eclipse y Mylyn
 Gestión de Tareas
 Integración con gestores de tareas/bugs
 Interfaz centrado en tareas (Task Focused Interface)
 Cambios en el código asociados a las tareas (Change
Sets)
 Tasktop
 Conclusiones
3
Desarrollo centrado en tareas
en Eclipse con Mylyn
 Introducción a Eclipse y Mylyn
 Gestión de Tareas
 Integración con gestores de tareas/bugs
 Interfaz centrado en tareas (Task Focused Interface)
 Cambios en el código asociados a las tareas (Change
Sets)
 Tasktop
 Conclusiones
4
Introducción
 Eclipse es una fundación de software libre
 Licencia Eclipse Public License (similar a la Mozilla
Public License)
 La fundación mantiene muchos proyectos
 Framework de desarrollo de aplicaciones con interfaz de usuario en
Java
 RCP, JFace, SWT
 Eclipse Tools:
 Jetty: Servidor Web
 BIRT: Sistema de generación de informes
 Eclipse Link (Implementación de referencia de JPA 2)
 Equinox (Implementación de OSGi)
http://www.eclipse.org
5
Introducción
 Entorno de desarrollo integrado Eclipse (IDE)
 Multiplataforma (Linux, Windows, Solaris, …)
 Multilenguaje (Java, C/C++, Cobol, PHP,
JavaScript, Pascal, Ruby...)
 Ampliable mediante plugins
 Desarrollo en equipo
 Sistemas de control de versiones
 Subversion, CVS, Git, Mercurial...
 Desarrollo colaborativo
 Eclipse Communication Framework, Saros
6
Introducción
7
Introducción
 Subversive
 Plugin para Subversion
 Commits, Updates...
 Checkout, Checkin...
 Repository
Exploring
 Compare
Editor
 Show History
www.eclipse.org/subversive
8
Introducción
 Subversive Show History
9
Introducción
 Mylyn
 Plugin de Eclipse para gestionar tareas
 Tiene un gestor de tareas local
 Se puede conectar a gestores de tareas remotos
 Bugzilla, JIRA, Trac, …
 Tiene un editor avanzado de tareas
 Task Focused Interface: Oculta los elementos
que no son necesarios para la tarea “activa”
http://www.eclipse.org/mylyn
10
Desarrollo centrado en tareas
en Eclipse con Mylyn
 Introducción a Eclipse y Mylyn
 Gestión de Tareas
 Integración con gestores de tareas/bugs
 Interfaz centrado en tareas (Task Focused Interface)
 Cambios en el código asociados a las tareas (Change
Sets)
 Tasktop
 Conclusiones
11
Gestión de Tareas
 Añadir tarea
 Vista por categorías o
planificación
 Búsqueda de tareas
 Iconos, colores y
estilos para mostrar
el estado de la tarea
12
Gestión de Tareas
 Leyenda de los Iconos,
colores y estilos para
mostrar el estado de la
tarea
13
Gestión de Tareas
 Editor de tareas
 Descripción
 Prioridad
 Estado
 Planificada
para...
 Fecha de
finalización
 Notas/Comenta
rios
14
Gestión de tareas
 Gestión de la
planificación
 Tareas
terminadas frente
a las planificadas
 Modo “trabajo
semanal”
15
Desarrollo centrado en tareas
en Eclipse con Mylyn
 Introducción a Eclipse y Mylyn
 Gestión de Tareas
 Integración con gestores de tareas/bugs
 Interfaz centrado en tareas (Task Focused Interface)
 Cambios en el código asociados a las tareas (Change
Sets)
 Tasktop
 Conclusiones
16
Integración con gestores de tareas
 Mylyn puede conectarse a gestores de
tareas/bugs/tickets
 Bugzilla 3.4
 JIRA
 Trac
 Mantis
 Sourceforge, Google code...
 Gmail & Google Calendar (Comercial)
17
Integración con gestores de tareas
18
Integración con gestores de tareas
 Creación de tareas en gestores
 La creación de tareas en un gestor remoto es
similar que las tareas locales salvo que hay
campos adicionales
 ¿A quién se asigna la tarea?
 Campos específicos del gestor de tareas
 Comentarios
 Adjuntos
 ...
19
20
Integración con gestores de tareas
 Consultas (Queries) en un gestor de tareas
 Cuando se usa un gestor hay múltiples usuarios y
cualquier puede crear, comentar y hacer el trabajo indicado
en una tarea
 En Mylyn muestra sólo aquellas tareas/bugs que cumplan
unos determinados criterios especificados en las consultas
 Hay que hacer consultas al gestor con algunos criterios
específicos, por ejemplo...
 Las tareas que tengo asignadas para realizar yo
 Bugs que tengo interés en que se resuelvan
 Tareas de gente a la que superviso/ayudo
21
Integración con gestores de tareas
 Consultas en
un gestor de
tareas
queries
22
Desarrollo centrado en tareas
en Eclipse con Mylyn
 Introducción a Eclipse y Mylyn
 Gestión de Tareas
 Integración con gestores de tareas/bugs
 Interfaz centrado en tareas (Task Focused Interface)
 Cambios en el código asociados a las tareas (Change
Sets)
 Tasktop
 Conclusiones
23
Interfaz centrado en tareas
 Mylyn no es sólo una interfaz a un Bugzilla
integrada en Eclipse...
 Si le decimos la tarea que estamos
realizando, Mylyn nos puede ayudar a:
 Puede medir el tiempo empleado en la tarea (sólo
en la versión comercial)
 Mostrarnos en el interfaz sólo aquellos
“elementos” que son relevantes para la tarea
actual → Task Focused Interface
24
Interfaz centrado en tareas
 El software cada vez es más grande y tiene multitud de
elementos
 Decenas de proyectos
 Cientos de clases por proyecto
 Decenas de métodos por clase
 …
 La mayor parte de los elementos no son relevantes en
la “tarea actual”
 Los elementos relevantes a una tarea se denominan
“contexto” de la tarea
25
Cientos de elementos,
posiblemente
irrelevantes para la tarea
actual
26
Interfaz centrado en tareas
 Mylyn filtra (oculta) los elementos que no son
relevantes para la tarea actual
 Package explorer
Activa/Desactiva
el filtrado
27
Interfaz centrado en tareas
 Mylyn filtra (oculta) los elementos que no son
relevantes para la tarea actual
 Editor
 Colapsa los métodos
no relevantes
Activa/Desactiva
el filtrado
28
Interfaz centrado en tareas
 Mylyn filtra (oculta) los elementos que no son
relevantes para la tarea actual
 Búsqueda de clases/interfaces (Ctrl+Shift+T)
 Muestra primero las clases/interfaces relevantes para la
tarea actual
 Autocompletar (Ctrl+Espacio)
 Muesta primero los métodos/Clases relevantes para la tarea
actual
29
Interfaz centrado en tareas
 ¿Cómo sabe Mylyn el contexto de una tarea?
 Por los ficheros que abres en el editor
 Si pulsamos Alt+Shift+Click en el Package Explorer se deshabilita
temporalmente el filtrado para poder abrir nuevos ficheros que no
estaban en el contexto
 Por los métodos/atributos que revisas o visitas (haciendo click
en ellos)
 Por los métodos o atributos que implementas o modificas
 Si Mylyn detecta que hace tiempo que no visitas un
elemento de interés... considera que ya no es de interés
y por tanto lo oculta
30
Interfaz centrado en tareas
 Para activar una tarea basta con pulsar un botón en la
vista de tareas
 Si cambiamos de tarea “activa” se muestra el contexto
de la nueva tarea activa y se guarda el contexto de la
tarea anterior (para recuperarlo si vuelve a estar
activa)
Botón que activa
una tarea
31
Interfaz centrado en tareas
 Como cada tarea guarda su contexto, es mucho
más fácil “centrarse” cuando cambiamos de
tarea
 No tenemos que recordar las clases/métodos
relevantes para una tarea porque Mylyn las
guarda
 No tenemos que buscar por todo el proyecto
porque los elementos no relevantes no se
muestran, esto reduce el tiempo de desarrollo
32
Interfaz centrado en tareas
 Para facilitar el trabajo
en equipo se puede
adjuntar el contexto a
una tarea remota
 Otros desarrolladores
pueden focalizar el
trabajo en la tarea
aprovechando el
contexto de otro
usuario
33
Desarrollo centrado en tareas
en Eclipse con Mylyn
 Introducción a Eclipse y Mylyn
 Gestión de Tareas
 Integración con gestores de tareas/bugs
 Interfaz centrado en tareas (Task Focused Interface)
 Cambios en el código asociados a tareas (Change
Sets)
 Tasktop
 Conclusiones
34
Cambios en el código asociados a tareas
 En un desarrollo en equipo es una buena práctica
“asociar” los commits a tareas/bugs en el gestor de tareas
 Permite a los demás desarrolladores conocer la
motivación y los comentarios de cada cambio en el
código
 Habitualmente la asociación se hace manualmente
 Eligiendo manualmente los ficheros que están involucrados en
la tarea/bug
 Poniendo a mano un comentario en el commit que indica la
tarea/bug que motiva ese commit
35
Cambios en el código asociados a tareas
 La asociación manual es propensa a errores
 Si no seleccionamos adecuadamente los ficheros
podemos “romper” la compilación en el repositorio
 No incluimos todos los ficheros que hemos modificado/creado
 Incluimos cambios que pertenecen a otras tareas/bugs que
están sin terminar
 Hay que “recordar” el código de tarea en la que estamos
trabajando
 Hay que “recordar” el formato exacto del comentario
36
Cambios en el código asociados a tareas
 Mylyn sabe el contexto de una tarea y puede
ayudarnos en los commits
 Agrupa los cambios por tareas
Vista de
sincronización de
Eclipse en la que se
seleccionan los
ficheros que forman
parte del commit
37
Cambios en el código asociados a tareas
 Crea el comentario del
commit automáticamente
con el número de
tarea/bug
 El formato es
configurable
38
Cambios en el código asociados a
tareas
 Comentarios con referencia al bug
39
Cambios en el código asociados a tareas
 Con herramientas externas podemos
cambiar el estado de la tarea/bug con el
comentario del commit
 Habitualmente se configura un hook en
Subversion que se comunica con el gestor de
tareas/bugs y cambia el estado
 Trac y Subversion: trac-post-commit-hook
 Bugzilla y otros: Scmbug
40
Desarrollo centrado en tareas
en Eclipse con Mylyn
 Introducción a Eclipse y Mylyn
 Gestión de Tareas
 Integración con gestores de tareas/bugs
 Interfaz centrado en tareas (Task Focused Interface)
 Cambios en el código asociados a tareas (Change Sets)
 Tasktop
 Conclusiones
41
Tasktop
 Versión comercial de Mylyn que
incorpora nuevas funcionalidades
 Conectores para repositorios de bugs
 Gestión del tiempo dedicado a cada tarea
 Considera el contexto de una tarea lo que ocurre
fuera de Eclipse
 Documentos abiertos
 Páginas visitadas en el navegador
 Integra las tareas con Google Calendar o Outlook
 Crea tareas desde correos electrónicos
42
Desarrollo centrado en tareas
en Eclipse con Mylyn
 Introducción a Eclipse y Mylyn
 Gestión de Tareas
 Integración con gestores de tareas/bugs
 Interfaz centrado en tareas (Task Focused Interface)
 Cambios en el código asociados a tareas (Change Sets)
 Tasktop
 Conclusiones
43
Conclusiones
 Mylyn integra Bugzilla en Eclipse
 Integra Bugzilla con Subversion, facilitando
la asociación de commits a tareas
 Con el task focused interface
 Se reduce el tiempo dedicado a “buscar”
 No hay que acordarse del contexto de una tarea
 Permite compartir el contexto con otros
Desarrollo centrado
en tareas en Eclipse con Mylyn
Integración de Eclipse, Bugzilla y Subversion
sidelab
Software & Integrated
Development Environments Lab
Mylyn
Francisco Gortázar Bellas - Micael Gallego Carrillo
Noviembre 2009
http://www.gavab.es/wiki/tallermylyn

Contenu connexe

Tendances

Ha2 nm50 eq4-teamfoundationserver
Ha2 nm50 eq4-teamfoundationserverHa2 nm50 eq4-teamfoundationserver
Ha2 nm50 eq4-teamfoundationserverLuis Pérez
 
Tutorial de eclipse_denisse
Tutorial de eclipse_denisseTutorial de eclipse_denisse
Tutorial de eclipse_denissedenisse_98
 
Administracion de proyectos
Administracion de proyectosAdministracion de proyectos
Administracion de proyectosJuliana Monsalve
 
Cuadro comparativo de herramientas de programacion eclipse, java
Cuadro comparativo de herramientas de programacion eclipse, javaCuadro comparativo de herramientas de programacion eclipse, java
Cuadro comparativo de herramientas de programacion eclipse, javaCCCRiis
 
Programas Y Procesos
Programas Y ProcesosProgramas Y Procesos
Programas Y ProcesosUNDP
 
Programas y procesos de computación
Programas y procesos de computaciónProgramas y procesos de computación
Programas y procesos de computaciónCelso
 
Eclipse para novatos java
Eclipse para novatos javaEclipse para novatos java
Eclipse para novatos javamartaferrari
 
Presentacion eclipse - grupo 6
Presentacion   eclipse - grupo 6Presentacion   eclipse - grupo 6
Presentacion eclipse - grupo 6Maga Lasic
 
Programacion basica-en-java
Programacion basica-en-javaProgramacion basica-en-java
Programacion basica-en-javaDaniel Martinez
 
Frameworks y herramientas para la web del futuro
Frameworks y herramientas para la web del futuroFrameworks y herramientas para la web del futuro
Frameworks y herramientas para la web del futuroBBVA API Market
 
Mi primera-hora-con-eclipse
Mi primera-hora-con-eclipseMi primera-hora-con-eclipse
Mi primera-hora-con-eclipseariannalizeeth
 
ECLIPSE PANTALLA INICIO
ECLIPSE PANTALLA INICIOECLIPSE PANTALLA INICIO
ECLIPSE PANTALLA INICIOAlfa Mercado
 
Artículo 2 sobre la plataforma ECLIPSE
Artículo 2 sobre la plataforma ECLIPSEArtículo 2 sobre la plataforma ECLIPSE
Artículo 2 sobre la plataforma ECLIPSEtorrubia
 

Tendances (19)

Ha2 nm50 eq4-teamfoundationserver
Ha2 nm50 eq4-teamfoundationserverHa2 nm50 eq4-teamfoundationserver
Ha2 nm50 eq4-teamfoundationserver
 
Tutorial de eclipse_denisse
Tutorial de eclipse_denisseTutorial de eclipse_denisse
Tutorial de eclipse_denisse
 
Administracion de proyectos
Administracion de proyectosAdministracion de proyectos
Administracion de proyectos
 
Test Driven Development
Test Driven DevelopmentTest Driven Development
Test Driven Development
 
Conociendo Nuestro Fua interno
Conociendo Nuestro Fua internoConociendo Nuestro Fua interno
Conociendo Nuestro Fua interno
 
Cuadro comparativo de herramientas de programacion eclipse, java
Cuadro comparativo de herramientas de programacion eclipse, javaCuadro comparativo de herramientas de programacion eclipse, java
Cuadro comparativo de herramientas de programacion eclipse, java
 
Tarea nayeli
Tarea nayeliTarea nayeli
Tarea nayeli
 
Programas Y Procesos
Programas Y ProcesosProgramas Y Procesos
Programas Y Procesos
 
TDD Course (Spanish)
TDD Course (Spanish)TDD Course (Spanish)
TDD Course (Spanish)
 
Programas y procesos de computación
Programas y procesos de computaciónProgramas y procesos de computación
Programas y procesos de computación
 
Eclipse para novatos java
Eclipse para novatos javaEclipse para novatos java
Eclipse para novatos java
 
Presentacion eclipse - grupo 6
Presentacion   eclipse - grupo 6Presentacion   eclipse - grupo 6
Presentacion eclipse - grupo 6
 
Programacion basica-en-java
Programacion basica-en-javaProgramacion basica-en-java
Programacion basica-en-java
 
Jbuilder
JbuilderJbuilder
Jbuilder
 
Java desde cero
Java desde ceroJava desde cero
Java desde cero
 
Frameworks y herramientas para la web del futuro
Frameworks y herramientas para la web del futuroFrameworks y herramientas para la web del futuro
Frameworks y herramientas para la web del futuro
 
Mi primera-hora-con-eclipse
Mi primera-hora-con-eclipseMi primera-hora-con-eclipse
Mi primera-hora-con-eclipse
 
ECLIPSE PANTALLA INICIO
ECLIPSE PANTALLA INICIOECLIPSE PANTALLA INICIO
ECLIPSE PANTALLA INICIO
 
Artículo 2 sobre la plataforma ECLIPSE
Artículo 2 sobre la plataforma ECLIPSEArtículo 2 sobre la plataforma ECLIPSE
Artículo 2 sobre la plataforma ECLIPSE
 

Similaire à Desarrollo centrado en tareas en Eclipse con Mylyn 2009

MS Project
MS ProjectMS Project
MS Projectphilip_c
 
Code bloks tutorial_terminado
Code bloks tutorial_terminadoCode bloks tutorial_terminado
Code bloks tutorial_terminadoLEFR202
 
C++ BUILDER APUNTES .pdf
C++ BUILDER APUNTES .pdfC++ BUILDER APUNTES .pdf
C++ BUILDER APUNTES .pdfkabern
 
Modulo Visual Basic 6.0
Modulo Visual Basic 6.0Modulo Visual Basic 6.0
Modulo Visual Basic 6.0Free TIC
 
21158360 visual-basic
21158360 visual-basic21158360 visual-basic
21158360 visual-basicmflormc
 
Developing for Office 2007
Developing for Office 2007Developing for Office 2007
Developing for Office 2007Ezequiel Jadib
 
Trabajo de programacion (visual basic)
Trabajo de programacion (visual basic)Trabajo de programacion (visual basic)
Trabajo de programacion (visual basic)Luis Enrique Arrieta
 
Fundamentos de Diseño Orientado a Objetos
Fundamentos de Diseño Orientado a ObjetosFundamentos de Diseño Orientado a Objetos
Fundamentos de Diseño Orientado a Objetosforwer1223
 
Taller de MS Project 2010 para la Gestion de Proyectos
Taller de MS Project 2010 para la Gestion de ProyectosTaller de MS Project 2010 para la Gestion de Proyectos
Taller de MS Project 2010 para la Gestion de ProyectosDharma Consulting
 

Similaire à Desarrollo centrado en tareas en Eclipse con Mylyn 2009 (20)

MS Project
MS ProjectMS Project
MS Project
 
Code bloks tutorial_terminado
Code bloks tutorial_terminadoCode bloks tutorial_terminado
Code bloks tutorial_terminado
 
Code bloks tutorial_terminado
Code bloks tutorial_terminadoCode bloks tutorial_terminado
Code bloks tutorial_terminado
 
Programacion visual
Programacion visualProgramacion visual
Programacion visual
 
C++ BUILDER APUNTES .pdf
C++ BUILDER APUNTES .pdfC++ BUILDER APUNTES .pdf
C++ BUILDER APUNTES .pdf
 
Modulo Visual Basic 6.0
Modulo Visual Basic 6.0Modulo Visual Basic 6.0
Modulo Visual Basic 6.0
 
21158360 visual-basic
21158360 visual-basic21158360 visual-basic
21158360 visual-basic
 
21158360 visual-basic
21158360 visual-basic21158360 visual-basic
21158360 visual-basic
 
Apuntes vb6
Apuntes vb6Apuntes vb6
Apuntes vb6
 
Developing for Office 2007
Developing for Office 2007Developing for Office 2007
Developing for Office 2007
 
Macros exce vperez1
Macros exce vperez1Macros exce vperez1
Macros exce vperez1
 
Macros-para-microsoft-excel
Macros-para-microsoft-excelMacros-para-microsoft-excel
Macros-para-microsoft-excel
 
Trabajo de programacion (visual basic)
Trabajo de programacion (visual basic)Trabajo de programacion (visual basic)
Trabajo de programacion (visual basic)
 
Fundamentos de Diseño Orientado a Objetos
Fundamentos de Diseño Orientado a ObjetosFundamentos de Diseño Orientado a Objetos
Fundamentos de Diseño Orientado a Objetos
 
Met2 07 01-introduccion_poo
Met2 07 01-introduccion_pooMet2 07 01-introduccion_poo
Met2 07 01-introduccion_poo
 
Taller de MS Project 2010 para la Gestion de Proyectos
Taller de MS Project 2010 para la Gestion de ProyectosTaller de MS Project 2010 para la Gestion de Proyectos
Taller de MS Project 2010 para la Gestion de Proyectos
 
Pres 1
Pres 1Pres 1
Pres 1
 
Pres 1
Pres 1Pres 1
Pres 1
 
Generalidades de visual basic 8
Generalidades de visual basic 8Generalidades de visual basic 8
Generalidades de visual basic 8
 
Generalidades de visual basic 8
Generalidades de visual basic 8Generalidades de visual basic 8
Generalidades de visual basic 8
 

Plus de Micael Gallego

Software libre para videoconferencias
Software libre para videoconferenciasSoftware libre para videoconferencias
Software libre para videoconferenciasMicael Gallego
 
La evaluación con realimentación y posibilidad de recuperación para evitar el...
La evaluación con realimentación y posibilidad de recuperación para evitar el...La evaluación con realimentación y posibilidad de recuperación para evitar el...
La evaluación con realimentación y posibilidad de recuperación para evitar el...Micael Gallego
 
WebRTC en tu web con OpenVidu
WebRTC en tu web con OpenViduWebRTC en tu web con OpenVidu
WebRTC en tu web con OpenViduMicael Gallego
 
Curso Angular 9 - CodeURJC - Marzo 2020
Curso Angular 9 - CodeURJC - Marzo 2020Curso Angular 9 - CodeURJC - Marzo 2020
Curso Angular 9 - CodeURJC - Marzo 2020Micael Gallego
 
Concurrencia y asincronía: Lenguajes, modelos y rendimiento: GDG Toledo Enero...
Concurrencia y asincronía: Lenguajes, modelos y rendimiento: GDG Toledo Enero...Concurrencia y asincronía: Lenguajes, modelos y rendimiento: GDG Toledo Enero...
Concurrencia y asincronía: Lenguajes, modelos y rendimiento: GDG Toledo Enero...Micael Gallego
 
Herramientas y plugins para el desarrollo de aplicaciones cloud native para K...
Herramientas y plugins para el desarrollo de aplicaciones cloud native para K...Herramientas y plugins para el desarrollo de aplicaciones cloud native para K...
Herramientas y plugins para el desarrollo de aplicaciones cloud native para K...Micael Gallego
 
Dev Tools para Kubernetes - Codemotion 2019
Dev Tools para Kubernetes - Codemotion 2019Dev Tools para Kubernetes - Codemotion 2019
Dev Tools para Kubernetes - Codemotion 2019Micael Gallego
 
Testing cloud and kubernetes applications - ElasTest
Testing cloud and kubernetes applications - ElasTestTesting cloud and kubernetes applications - ElasTest
Testing cloud and kubernetes applications - ElasTestMicael Gallego
 
Curso Kubernetes CodeURJC
Curso Kubernetes CodeURJCCurso Kubernetes CodeURJC
Curso Kubernetes CodeURJCMicael Gallego
 
Testeando aplicaciones Kubernetes: escalabilidad y tolerancia a fallos
Testeando aplicaciones Kubernetes: escalabilidad y tolerancia a fallosTesteando aplicaciones Kubernetes: escalabilidad y tolerancia a fallos
Testeando aplicaciones Kubernetes: escalabilidad y tolerancia a fallosMicael Gallego
 
OpenVidu Commitconf 2018
OpenVidu Commitconf 2018 OpenVidu Commitconf 2018
OpenVidu Commitconf 2018 Micael Gallego
 
Introducción a las Pruebas Software
Introducción a las Pruebas SoftwareIntroducción a las Pruebas Software
Introducción a las Pruebas SoftwareMicael Gallego
 
Node para Javeros: Conoce a tu enemigo
Node para Javeros: Conoce a tu enemigoNode para Javeros: Conoce a tu enemigo
Node para Javeros: Conoce a tu enemigoMicael Gallego
 
Testing fácil con Docker: Gestiona dependencias y unifica entornos
Testing fácil con Docker: Gestiona dependencias y unifica entornosTesting fácil con Docker: Gestiona dependencias y unifica entornos
Testing fácil con Docker: Gestiona dependencias y unifica entornosMicael Gallego
 
Using Docker to build and test in your laptop and Jenkins
Using Docker to build and test in your laptop and JenkinsUsing Docker to build and test in your laptop and Jenkins
Using Docker to build and test in your laptop and JenkinsMicael Gallego
 
TypeScript: Un lenguaje aburrido para programadores torpes y tristes
TypeScript: Un lenguaje aburrido para programadores torpes y tristesTypeScript: Un lenguaje aburrido para programadores torpes y tristes
TypeScript: Un lenguaje aburrido para programadores torpes y tristesMicael Gallego
 
Docker para Data Scientist - Master en Data Science URJC
Docker para Data Scientist - Master en Data Science URJCDocker para Data Scientist - Master en Data Science URJC
Docker para Data Scientist - Master en Data Science URJCMicael Gallego
 
El Aprendizaje Basado en Proyectos y la Clase Invertida para acercar el mundo...
El Aprendizaje Basado en Proyectos y la Clase Invertida para acercar el mundo...El Aprendizaje Basado en Proyectos y la Clase Invertida para acercar el mundo...
El Aprendizaje Basado en Proyectos y la Clase Invertida para acercar el mundo...Micael Gallego
 
El mundo real en el aula, con la ayuda del profesor
El mundo real en el aula, con la ayuda del profesorEl mundo real en el aula, con la ayuda del profesor
El mundo real en el aula, con la ayuda del profesorMicael Gallego
 
Angular 2 Campus Madrid Septiembre 2016
Angular 2 Campus Madrid Septiembre 2016Angular 2 Campus Madrid Septiembre 2016
Angular 2 Campus Madrid Septiembre 2016Micael Gallego
 

Plus de Micael Gallego (20)

Software libre para videoconferencias
Software libre para videoconferenciasSoftware libre para videoconferencias
Software libre para videoconferencias
 
La evaluación con realimentación y posibilidad de recuperación para evitar el...
La evaluación con realimentación y posibilidad de recuperación para evitar el...La evaluación con realimentación y posibilidad de recuperación para evitar el...
La evaluación con realimentación y posibilidad de recuperación para evitar el...
 
WebRTC en tu web con OpenVidu
WebRTC en tu web con OpenViduWebRTC en tu web con OpenVidu
WebRTC en tu web con OpenVidu
 
Curso Angular 9 - CodeURJC - Marzo 2020
Curso Angular 9 - CodeURJC - Marzo 2020Curso Angular 9 - CodeURJC - Marzo 2020
Curso Angular 9 - CodeURJC - Marzo 2020
 
Concurrencia y asincronía: Lenguajes, modelos y rendimiento: GDG Toledo Enero...
Concurrencia y asincronía: Lenguajes, modelos y rendimiento: GDG Toledo Enero...Concurrencia y asincronía: Lenguajes, modelos y rendimiento: GDG Toledo Enero...
Concurrencia y asincronía: Lenguajes, modelos y rendimiento: GDG Toledo Enero...
 
Herramientas y plugins para el desarrollo de aplicaciones cloud native para K...
Herramientas y plugins para el desarrollo de aplicaciones cloud native para K...Herramientas y plugins para el desarrollo de aplicaciones cloud native para K...
Herramientas y plugins para el desarrollo de aplicaciones cloud native para K...
 
Dev Tools para Kubernetes - Codemotion 2019
Dev Tools para Kubernetes - Codemotion 2019Dev Tools para Kubernetes - Codemotion 2019
Dev Tools para Kubernetes - Codemotion 2019
 
Testing cloud and kubernetes applications - ElasTest
Testing cloud and kubernetes applications - ElasTestTesting cloud and kubernetes applications - ElasTest
Testing cloud and kubernetes applications - ElasTest
 
Curso Kubernetes CodeURJC
Curso Kubernetes CodeURJCCurso Kubernetes CodeURJC
Curso Kubernetes CodeURJC
 
Testeando aplicaciones Kubernetes: escalabilidad y tolerancia a fallos
Testeando aplicaciones Kubernetes: escalabilidad y tolerancia a fallosTesteando aplicaciones Kubernetes: escalabilidad y tolerancia a fallos
Testeando aplicaciones Kubernetes: escalabilidad y tolerancia a fallos
 
OpenVidu Commitconf 2018
OpenVidu Commitconf 2018 OpenVidu Commitconf 2018
OpenVidu Commitconf 2018
 
Introducción a las Pruebas Software
Introducción a las Pruebas SoftwareIntroducción a las Pruebas Software
Introducción a las Pruebas Software
 
Node para Javeros: Conoce a tu enemigo
Node para Javeros: Conoce a tu enemigoNode para Javeros: Conoce a tu enemigo
Node para Javeros: Conoce a tu enemigo
 
Testing fácil con Docker: Gestiona dependencias y unifica entornos
Testing fácil con Docker: Gestiona dependencias y unifica entornosTesting fácil con Docker: Gestiona dependencias y unifica entornos
Testing fácil con Docker: Gestiona dependencias y unifica entornos
 
Using Docker to build and test in your laptop and Jenkins
Using Docker to build and test in your laptop and JenkinsUsing Docker to build and test in your laptop and Jenkins
Using Docker to build and test in your laptop and Jenkins
 
TypeScript: Un lenguaje aburrido para programadores torpes y tristes
TypeScript: Un lenguaje aburrido para programadores torpes y tristesTypeScript: Un lenguaje aburrido para programadores torpes y tristes
TypeScript: Un lenguaje aburrido para programadores torpes y tristes
 
Docker para Data Scientist - Master en Data Science URJC
Docker para Data Scientist - Master en Data Science URJCDocker para Data Scientist - Master en Data Science URJC
Docker para Data Scientist - Master en Data Science URJC
 
El Aprendizaje Basado en Proyectos y la Clase Invertida para acercar el mundo...
El Aprendizaje Basado en Proyectos y la Clase Invertida para acercar el mundo...El Aprendizaje Basado en Proyectos y la Clase Invertida para acercar el mundo...
El Aprendizaje Basado en Proyectos y la Clase Invertida para acercar el mundo...
 
El mundo real en el aula, con la ayuda del profesor
El mundo real en el aula, con la ayuda del profesorEl mundo real en el aula, con la ayuda del profesor
El mundo real en el aula, con la ayuda del profesor
 
Angular 2 Campus Madrid Septiembre 2016
Angular 2 Campus Madrid Septiembre 2016Angular 2 Campus Madrid Septiembre 2016
Angular 2 Campus Madrid Septiembre 2016
 

Desarrollo centrado en tareas en Eclipse con Mylyn 2009

  • 1. Desarrollo centrado en tareas en Eclipse con Mylyn Integración de Eclipse, Bugzilla y Subversion sidelab Software & Integrated Development Environments Lab Mylyn Francisco Gortázar Bellas - Micael Gallego Carrillo Noviembre 2009 http://www.gavab.es/wiki/tallermylyn
  • 2. 2 Desarrollo centrado en tareas en Eclipse con Mylyn  Introducción a Eclipse y Mylyn  Gestión de Tareas  Integración con gestores de tareas/bugs  Interfaz centrado en tareas (Task Focused Interface)  Cambios en el código asociados a las tareas (Change Sets)  Tasktop  Conclusiones
  • 3. 3 Desarrollo centrado en tareas en Eclipse con Mylyn  Introducción a Eclipse y Mylyn  Gestión de Tareas  Integración con gestores de tareas/bugs  Interfaz centrado en tareas (Task Focused Interface)  Cambios en el código asociados a las tareas (Change Sets)  Tasktop  Conclusiones
  • 4. 4 Introducción  Eclipse es una fundación de software libre  Licencia Eclipse Public License (similar a la Mozilla Public License)  La fundación mantiene muchos proyectos  Framework de desarrollo de aplicaciones con interfaz de usuario en Java  RCP, JFace, SWT  Eclipse Tools:  Jetty: Servidor Web  BIRT: Sistema de generación de informes  Eclipse Link (Implementación de referencia de JPA 2)  Equinox (Implementación de OSGi) http://www.eclipse.org
  • 5. 5 Introducción  Entorno de desarrollo integrado Eclipse (IDE)  Multiplataforma (Linux, Windows, Solaris, …)  Multilenguaje (Java, C/C++, Cobol, PHP, JavaScript, Pascal, Ruby...)  Ampliable mediante plugins  Desarrollo en equipo  Sistemas de control de versiones  Subversion, CVS, Git, Mercurial...  Desarrollo colaborativo  Eclipse Communication Framework, Saros
  • 7. 7 Introducción  Subversive  Plugin para Subversion  Commits, Updates...  Checkout, Checkin...  Repository Exploring  Compare Editor  Show History www.eclipse.org/subversive
  • 9. 9 Introducción  Mylyn  Plugin de Eclipse para gestionar tareas  Tiene un gestor de tareas local  Se puede conectar a gestores de tareas remotos  Bugzilla, JIRA, Trac, …  Tiene un editor avanzado de tareas  Task Focused Interface: Oculta los elementos que no son necesarios para la tarea “activa” http://www.eclipse.org/mylyn
  • 10. 10 Desarrollo centrado en tareas en Eclipse con Mylyn  Introducción a Eclipse y Mylyn  Gestión de Tareas  Integración con gestores de tareas/bugs  Interfaz centrado en tareas (Task Focused Interface)  Cambios en el código asociados a las tareas (Change Sets)  Tasktop  Conclusiones
  • 11. 11 Gestión de Tareas  Añadir tarea  Vista por categorías o planificación  Búsqueda de tareas  Iconos, colores y estilos para mostrar el estado de la tarea
  • 12. 12 Gestión de Tareas  Leyenda de los Iconos, colores y estilos para mostrar el estado de la tarea
  • 13. 13 Gestión de Tareas  Editor de tareas  Descripción  Prioridad  Estado  Planificada para...  Fecha de finalización  Notas/Comenta rios
  • 14. 14 Gestión de tareas  Gestión de la planificación  Tareas terminadas frente a las planificadas  Modo “trabajo semanal”
  • 15. 15 Desarrollo centrado en tareas en Eclipse con Mylyn  Introducción a Eclipse y Mylyn  Gestión de Tareas  Integración con gestores de tareas/bugs  Interfaz centrado en tareas (Task Focused Interface)  Cambios en el código asociados a las tareas (Change Sets)  Tasktop  Conclusiones
  • 16. 16 Integración con gestores de tareas  Mylyn puede conectarse a gestores de tareas/bugs/tickets  Bugzilla 3.4  JIRA  Trac  Mantis  Sourceforge, Google code...  Gmail & Google Calendar (Comercial)
  • 18. 18 Integración con gestores de tareas  Creación de tareas en gestores  La creación de tareas en un gestor remoto es similar que las tareas locales salvo que hay campos adicionales  ¿A quién se asigna la tarea?  Campos específicos del gestor de tareas  Comentarios  Adjuntos  ...
  • 19. 19
  • 20. 20 Integración con gestores de tareas  Consultas (Queries) en un gestor de tareas  Cuando se usa un gestor hay múltiples usuarios y cualquier puede crear, comentar y hacer el trabajo indicado en una tarea  En Mylyn muestra sólo aquellas tareas/bugs que cumplan unos determinados criterios especificados en las consultas  Hay que hacer consultas al gestor con algunos criterios específicos, por ejemplo...  Las tareas que tengo asignadas para realizar yo  Bugs que tengo interés en que se resuelvan  Tareas de gente a la que superviso/ayudo
  • 21. 21 Integración con gestores de tareas  Consultas en un gestor de tareas queries
  • 22. 22 Desarrollo centrado en tareas en Eclipse con Mylyn  Introducción a Eclipse y Mylyn  Gestión de Tareas  Integración con gestores de tareas/bugs  Interfaz centrado en tareas (Task Focused Interface)  Cambios en el código asociados a las tareas (Change Sets)  Tasktop  Conclusiones
  • 23. 23 Interfaz centrado en tareas  Mylyn no es sólo una interfaz a un Bugzilla integrada en Eclipse...  Si le decimos la tarea que estamos realizando, Mylyn nos puede ayudar a:  Puede medir el tiempo empleado en la tarea (sólo en la versión comercial)  Mostrarnos en el interfaz sólo aquellos “elementos” que son relevantes para la tarea actual → Task Focused Interface
  • 24. 24 Interfaz centrado en tareas  El software cada vez es más grande y tiene multitud de elementos  Decenas de proyectos  Cientos de clases por proyecto  Decenas de métodos por clase  …  La mayor parte de los elementos no son relevantes en la “tarea actual”  Los elementos relevantes a una tarea se denominan “contexto” de la tarea
  • 26. 26 Interfaz centrado en tareas  Mylyn filtra (oculta) los elementos que no son relevantes para la tarea actual  Package explorer Activa/Desactiva el filtrado
  • 27. 27 Interfaz centrado en tareas  Mylyn filtra (oculta) los elementos que no son relevantes para la tarea actual  Editor  Colapsa los métodos no relevantes Activa/Desactiva el filtrado
  • 28. 28 Interfaz centrado en tareas  Mylyn filtra (oculta) los elementos que no son relevantes para la tarea actual  Búsqueda de clases/interfaces (Ctrl+Shift+T)  Muestra primero las clases/interfaces relevantes para la tarea actual  Autocompletar (Ctrl+Espacio)  Muesta primero los métodos/Clases relevantes para la tarea actual
  • 29. 29 Interfaz centrado en tareas  ¿Cómo sabe Mylyn el contexto de una tarea?  Por los ficheros que abres en el editor  Si pulsamos Alt+Shift+Click en el Package Explorer se deshabilita temporalmente el filtrado para poder abrir nuevos ficheros que no estaban en el contexto  Por los métodos/atributos que revisas o visitas (haciendo click en ellos)  Por los métodos o atributos que implementas o modificas  Si Mylyn detecta que hace tiempo que no visitas un elemento de interés... considera que ya no es de interés y por tanto lo oculta
  • 30. 30 Interfaz centrado en tareas  Para activar una tarea basta con pulsar un botón en la vista de tareas  Si cambiamos de tarea “activa” se muestra el contexto de la nueva tarea activa y se guarda el contexto de la tarea anterior (para recuperarlo si vuelve a estar activa) Botón que activa una tarea
  • 31. 31 Interfaz centrado en tareas  Como cada tarea guarda su contexto, es mucho más fácil “centrarse” cuando cambiamos de tarea  No tenemos que recordar las clases/métodos relevantes para una tarea porque Mylyn las guarda  No tenemos que buscar por todo el proyecto porque los elementos no relevantes no se muestran, esto reduce el tiempo de desarrollo
  • 32. 32 Interfaz centrado en tareas  Para facilitar el trabajo en equipo se puede adjuntar el contexto a una tarea remota  Otros desarrolladores pueden focalizar el trabajo en la tarea aprovechando el contexto de otro usuario
  • 33. 33 Desarrollo centrado en tareas en Eclipse con Mylyn  Introducción a Eclipse y Mylyn  Gestión de Tareas  Integración con gestores de tareas/bugs  Interfaz centrado en tareas (Task Focused Interface)  Cambios en el código asociados a tareas (Change Sets)  Tasktop  Conclusiones
  • 34. 34 Cambios en el código asociados a tareas  En un desarrollo en equipo es una buena práctica “asociar” los commits a tareas/bugs en el gestor de tareas  Permite a los demás desarrolladores conocer la motivación y los comentarios de cada cambio en el código  Habitualmente la asociación se hace manualmente  Eligiendo manualmente los ficheros que están involucrados en la tarea/bug  Poniendo a mano un comentario en el commit que indica la tarea/bug que motiva ese commit
  • 35. 35 Cambios en el código asociados a tareas  La asociación manual es propensa a errores  Si no seleccionamos adecuadamente los ficheros podemos “romper” la compilación en el repositorio  No incluimos todos los ficheros que hemos modificado/creado  Incluimos cambios que pertenecen a otras tareas/bugs que están sin terminar  Hay que “recordar” el código de tarea en la que estamos trabajando  Hay que “recordar” el formato exacto del comentario
  • 36. 36 Cambios en el código asociados a tareas  Mylyn sabe el contexto de una tarea y puede ayudarnos en los commits  Agrupa los cambios por tareas Vista de sincronización de Eclipse en la que se seleccionan los ficheros que forman parte del commit
  • 37. 37 Cambios en el código asociados a tareas  Crea el comentario del commit automáticamente con el número de tarea/bug  El formato es configurable
  • 38. 38 Cambios en el código asociados a tareas  Comentarios con referencia al bug
  • 39. 39 Cambios en el código asociados a tareas  Con herramientas externas podemos cambiar el estado de la tarea/bug con el comentario del commit  Habitualmente se configura un hook en Subversion que se comunica con el gestor de tareas/bugs y cambia el estado  Trac y Subversion: trac-post-commit-hook  Bugzilla y otros: Scmbug
  • 40. 40 Desarrollo centrado en tareas en Eclipse con Mylyn  Introducción a Eclipse y Mylyn  Gestión de Tareas  Integración con gestores de tareas/bugs  Interfaz centrado en tareas (Task Focused Interface)  Cambios en el código asociados a tareas (Change Sets)  Tasktop  Conclusiones
  • 41. 41 Tasktop  Versión comercial de Mylyn que incorpora nuevas funcionalidades  Conectores para repositorios de bugs  Gestión del tiempo dedicado a cada tarea  Considera el contexto de una tarea lo que ocurre fuera de Eclipse  Documentos abiertos  Páginas visitadas en el navegador  Integra las tareas con Google Calendar o Outlook  Crea tareas desde correos electrónicos
  • 42. 42 Desarrollo centrado en tareas en Eclipse con Mylyn  Introducción a Eclipse y Mylyn  Gestión de Tareas  Integración con gestores de tareas/bugs  Interfaz centrado en tareas (Task Focused Interface)  Cambios en el código asociados a tareas (Change Sets)  Tasktop  Conclusiones
  • 43. 43 Conclusiones  Mylyn integra Bugzilla en Eclipse  Integra Bugzilla con Subversion, facilitando la asociación de commits a tareas  Con el task focused interface  Se reduce el tiempo dedicado a “buscar”  No hay que acordarse del contexto de una tarea  Permite compartir el contexto con otros
  • 44. Desarrollo centrado en tareas en Eclipse con Mylyn Integración de Eclipse, Bugzilla y Subversion sidelab Software & Integrated Development Environments Lab Mylyn Francisco Gortázar Bellas - Micael Gallego Carrillo Noviembre 2009 http://www.gavab.es/wiki/tallermylyn