Date post: | 15-Jan-2017 |
Category: |
Software |
Upload: | micael-gallego |
View: | 83 times |
Download: | 0 times |
Desarrollo centrado en tareas en Eclipse con Mylyn
Integración de Eclipse, Bugzilla y Subversion
sidelabSoftware & 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 mostrarel 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étodosno 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 queincorpora 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
sidelabSoftware & Integrated Development Environments Lab
Mylyn
Francisco Gortázar Bellas - Micael Gallego Carrillo
Noviembre 2009
http://www.gavab.es/wiki/tallermylyn