trac: gestión de proyectos de desarrollo de software
DESCRIPTION
Trac: Gestiónde proyectos de desarrollode SoftwareTRANSCRIPT
Gestion de Proyectos de desarrollo de Software - Trac
Esteban Saavedra Lopez
CEO Opentelematics Internacional [email protected]
http://jesaavedra.opentelematics.orghttp://esteban.profesionales.org
Esteban Saavedra Lopez (Opentelematics) Gestion de Proyectos de desarrollo de Software - Trac Oct. 2007 1 / 28
Introduccion
Actualidad
La gestion de proyectos de desarrollo de Software, hoy por hoy se haconvertido en un elemento indispensable en el proceso dedesarrollo de un producto software
Se ha convertido en un aliado importante de la ingenierıa de softwareen la tarea de conseguir como resultado un producto de software decalidad.
Esteban Saavedra Lopez (Opentelematics) Gestion de Proyectos de desarrollo de Software - Trac Oct. 2007 2 / 28
Gestion de Proyectos
La gestion de proyectos de desarrollo de Software actualmente precisa decontar con algunas herramientas:
Sistema de planicacion
Sistema de gestion documental
Sistema de control de versiones
Sistema de gestion de incidencias
Esteban Saavedra Lopez (Opentelematics) Gestion de Proyectos de desarrollo de Software - Trac Oct. 2007 3 / 28
Sistema de planicacion
Objetivo
Que permita organizar el proyecto en funcion de hitos, tareas, subtareas,asignacion y control de tiempos, recursos materiales y humanos.
Idealmente
Permitir hacer el seguimiento y reajustar la planicacion en funcion de laevolucion del proyecto.
Recomendacion
Disponer de herramientas para llevar el control de tiemposestimados y empleados para cada tarea; para poder controlar laevolucion del proyecto.
Es importante que as personas inmersas en el proyecto debenreportar el tiempo que dedican a cada tarea y actualicen el estadode las mismas con relativa frecuencia (recomendable diariamente)
Esteban Saavedra Lopez (Opentelematics) Gestion de Proyectos de desarrollo de Software - Trac Oct. 2007 4 / 28
Sistema de gestion documental
Objetivo
Servira para almacenar y mantener los documentos obtenidos ogenerados durante el desarrollo del proyecto y acceder a elloscomodamente.
Cada hito, tarea o subtarea implica la obtencion o generacion dedocumentacion (actas de reuniones, documentos de diseno, etc.).
Idealmente
Debe permitir que almacenemos esa documentacion en el propio sistema.
Esteban Saavedra Lopez (Opentelematics) Gestion de Proyectos de desarrollo de Software - Trac Oct. 2007 5 / 28
Sistema de control de versiones
Objetivo
Permitira el desarrollo concurrente y para mantener la historia delcodigo fuente y parte de la documentacion producida en elproyecto.
Al tratarse de proyectos informaticos lo normal es que se trabaje concodigo fuente y con documentos que van evolucionando a lo largo deldesarrollo y que deben ser modicados por multiples personas.
Idealmente
Disponer de un sistema de control de versiones que permita mantener lahistoria de los cheros generados y que mas de una persona trabajeconcurrentemente sobre el mismo codigo.
Esteban Saavedra Lopez (Opentelematics) Gestion de Proyectos de desarrollo de Software - Trac Oct. 2007 6 / 28
Sistema de gestion de incidencias
Objetivo
Permitira hacer el seguimiento de los errores detectados y suscorrecciones, tanto aquellos reportados por los responsables de laprueba del software como por los desarrolladores o los usuarios nales.
Tambien se puede utilizar como sistema de seguimiento de tareasde corta duracion asociadas a fases del proyecto, a erroresdetectados o a cambios relacionados con solicitudes de mejorasolicitadas por el cliente.
Idealmente
Debera controlar todas y cada una de las posibles incidencias quepuedan ocurrir en el desarrollo de un producto software.
Esteban Saavedra Lopez (Opentelematics) Gestion de Proyectos de desarrollo de Software - Trac Oct. 2007 7 / 28
Herramientas para gestion de proyectos
Existen multitud de paquetes de software especializados queproporcionan las funcionalidades necesarias para la gestion deproyectos, ya sea por separado o integrando multiples funcionalidadesen un unico producto (generalmente de pago)
Esteban Saavedra Lopez (Opentelematics) Gestion de Proyectos de desarrollo de Software - Trac Oct. 2007 8 / 28
Alternativas Libres
Trac es un sistema que integra varios componentes con capacidadessucientes para la gestion de proyectos de desarrollo de software.
Trac es un programa pensado para desarrolladores que necesitanmantener un proyecto. Programado en python y ejecutado a travesde mod_python o como cgi o fastcgi usando un servidor web,permite llevar una serie de utilidades propias para un proyecto.
Que es Trac?
Trac es un sistema web multiplataforma ligero y extensible.
Esteban Saavedra Lopez (Opentelematics) Gestion de Proyectos de desarrollo de Software - Trac Oct. 2007 9 / 28
Funcionalidades (1)
Wiki
Empleado para documentar cualquier aspecto del proyecto de modocolaborativo y sin necesidad de herramientas especiales.
La sintaxis del wiki considera:
Empleo de macrosUso de sintaxis para formatos especiales
Esteban Saavedra Lopez (Opentelematics) Gestion de Proyectos de desarrollo de Software - Trac Oct. 2007 10 / 28
Funcionalidades (2)
Planificacion (Roadmap)
Sistema para denir y visualizar el estado de los hitos de un proyecto(un hito incluye una descripcion y una fecha y se usa como atributo de lostickets, que se asocian a hitos concretos).
Esteban Saavedra Lopez (Opentelematics) Gestion de Proyectos de desarrollo de Software - Trac Oct. 2007 11 / 28
Funcionalidades (3)
Manejo de eventos (Timeline)
Sistema de seguimiento de eventos en el sistema:
Historico de cambios en el wiki
En el sistema de control de versiones,
En el sistema de gestion de incidencias o vencimiento de un hito
Esteban Saavedra Lopez (Opentelematics) Gestion de Proyectos de desarrollo de Software - Trac Oct. 2007 12 / 28
Funcionalidades (4)
Busquedas
Permite localizar paginas del wiki, comentarios dentro de los conjuntosde cambios o tickets en los que aparece una palabra.
Esteban Saavedra Lopez (Opentelematics) Gestion de Proyectos de desarrollo de Software - Trac Oct. 2007 13 / 28
Funcionalidades (5)
Visor de Codigo
Integrado con algun sistema de control de versiones (asociado alproyecto), nos permite ver los cambios que se han producido en elprograma de una forma visual (estado actual del repositorio, loscambios que se han ido produciendo, comparar distintas versiones decheros en lınea, etc).
Importante Trac unicamente es un interfaz de lectura delrepositorio, recordemos que para acceder al Subversion se pueden usarmultiples medios (https://, svn://, svn+ssh://, etc.).
Una opcion comoda para acceder a estos servicios es montar unacceso comn con apache2.
Esteban Saavedra Lopez (Opentelematics) Gestion de Proyectos de desarrollo de Software - Trac Oct. 2007 14 / 28
Funcionalidades (7)
Administracion
Permite realizar la gestion de varios aspectos de un proyecto:
ConfiguracionUsuariosPermisosPluginsetc
Esteban Saavedra Lopez (Opentelematics) Gestion de Proyectos de desarrollo de Software - Trac Oct. 2007 15 / 28
Funcionalidades (8)
Notificaciones
Permite realizar notificaciones de cambios realizados en el proyecto, viaemail.
Esteban Saavedra Lopez (Opentelematics) Gestion de Proyectos de desarrollo de Software - Trac Oct. 2007 16 / 28
Componentes del sistema
Trac ha sido concebido de forma modular donde se pueden anadirplugins que proporcionan distintas funcionalidades. (casi todos loscomponentes estandar son modulos que pueden ser activados,desactivados o reemplazados o modicados por otros).
Actualmente existen plugins para anadir funcionalidades a Trac como:
Autenticacion con formularios y usuarios en LDAP, BBDD o fichero.Uso de otros VCS como Bazaar, GIT, Mercurial o Monotone.Servicios adicionales como blogs, foros, etc.
Esteban Saavedra Lopez (Opentelematics) Gestion de Proyectos de desarrollo de Software - Trac Oct. 2007 17 / 28
Funcionamiento
Trac puede funcionar de dos formas:
Mediante su propio servidor (tracd)Mediante un servidor estandar (lighttpd, apache2) que tenga soportepara ejecutar codigo python usando scripts de CGI, FastCGI omod_python.
Esteban Saavedra Lopez (Opentelematics) Gestion de Proyectos de desarrollo de Software - Trac Oct. 2007 18 / 28
Como se crea un proyecto?
Se emplea un programa que se invoca desde la lınea de comandos yque genera una estructura de directorios con la conguracion delproyecto y los cheros relacionados
Nota: Si usamos Subversion o una BBDD distinta de SQLite seranecesario crear el repositorio y/o la BBDD antes de crear el proyecto).
Esteban Saavedra Lopez (Opentelematics) Gestion de Proyectos de desarrollo de Software - Trac Oct. 2007 19 / 28
Que pasa con el Acceso?
El acceso a los distintos componentes se controla utilizando unsistema de permisos sencillo:
Cada componente dene un conjunto de acciones posibles.Para que un usuario pueda realizar la accion su identicador debe estarasociado con esa accion.
La asociacion puede ser:
Ligando un identicador con un nombre de accion.Ligando un identicador con otro, lo que equivale a ligar al primero conla lista de acciones validas del segundoHay acciones que engloban a otras (un usuario asociado a la accionTRAC_ADMIN tiene permiso realizar cualquier accion).
Esteban Saavedra Lopez (Opentelematics) Gestion de Proyectos de desarrollo de Software - Trac Oct. 2007 20 / 28
Permisos de usuarios
Los usuarios sin identicar son usuarios anonymous.
Los usuarios identicados tienen como mınimo los permisos deanonymous mas los del usuario authenticated (es como si se lesasignara ).
El sistema no integra ningun sistema de gestion de usuarios, losnombres de usuario se consideran validos si nos los pasa el servidorWeb.
Esteban Saavedra Lopez (Opentelematics) Gestion de Proyectos de desarrollo de Software - Trac Oct. 2007 21 / 28
Sistema de administracion
Se puede hacer desde la lınea de comandos (trac-admin) o usando elWebAdminPlugin.
Estas herramientas permiten:
Control de permisos de los usuarios.Denicion de campos en los tickets.Instalacion de otros plugins (solo desde el plugin).Edicion del chero de conguracion (solo el plugin).
Esteban Saavedra Lopez (Opentelematics) Gestion de Proyectos de desarrollo de Software - Trac Oct. 2007 22 / 28
Requisitos de instalacion
Los requisitos de las versiones actuales (0.10.x) son:
Python: por estar desarrollado en python, ademas precisa los enlaces(bindings) con algunos de los subsistemas que emplea, como porejemplo: ClearSilver, SQLite o Subversion.
Sistema de proceso de plantillas ClearSilver.
Soporte de la BBDD que vayamos a utilizar (SQLite, PostgreSQL oMySQL).
Esteban Saavedra Lopez (Opentelematics) Gestion de Proyectos de desarrollo de Software - Trac Oct. 2007 23 / 28
Cambios para la proxima version (0.11)
El WebAdminPlugin pasa a formar parte del nucleo.
Eliminada dependencia en ClearSilver (reemplazado por Genshi).
Eliminado el uso de programas externos para analisis sintactico decheros (usa pygments: coloreo de sintaxis).
Nuevo sistema de permisos exible.
Posibilidad de denir ujos de trabajo para los tickets.
Soporte de internacionalizacion.
Soporte para multiples proyectos con vista unicada.
Mejoras en el sistema de gestion de usuarios y sesiones, el sistema debusquedas, en la documentacion, en la interaccion con sistemas decontrol de versiones, etc.
Busquedas avanzadas
Esteban Saavedra Lopez (Opentelematics) Gestion de Proyectos de desarrollo de Software - Trac Oct. 2007 24 / 28
Resumen de Caracterısticas
Sistema de gestin de proyectos de desarrollo de software.
Gestion de incidencias internas
Trabajo colaborativo
Mantenimiento del codigo
Sistema de ticketing como herramienta de seguimiento de errores
Interfaz externa para proyectos
Esteban Saavedra Lopez (Opentelematics) Gestion de Proyectos de desarrollo de Software - Trac Oct. 2007 25 / 28
Referencias
Proyecto Trac: http://trac.edgewall.org/
Componentes adicionales: http://trac-hacks.org/
Acceso a repositorios libres: https://opensvn.csie.org/
Esteban Saavedra Lopez (Opentelematics) Gestion de Proyectos de desarrollo de Software - Trac Oct. 2007 26 / 28
Preguntas
Preguntas
Preguntas, dudas, consultas, ...
Esteban Saavedra Lopez (Opentelematics) Gestion de Proyectos de desarrollo de Software - Trac Oct. 2007 27 / 28
Agradecimientos
Gracias...
Esteban Saavedra Lopez (Opentelematics) Gestion de Proyectos de desarrollo de Software - Trac Oct. 2007 28 / 28