1. Gesti´n de Proyectos de desarrollo de Software - Trac
o
Esteban Saavedra L´pez
o
CEO Opentelematics Internacional Bolivia
jesaavedra@opentelematics.org
http://jesaavedra.opentelematics.org
http://esteban.profesionales.org
Esteban Saavedra L´pez (Opentelematics) Gesti´n de Proyectos de desarrollo de Software - Trac
o o Oct. 2007 1 / 28
2. Introducci´n
o
Actualidad
La gesti´n de proyectos de desarrollo de Software, hoy por hoy se ha
o
convertido en un elemento indispensable en el proceso de
desarrollo de un producto software
Se ha convertido en un aliado importante de la ingenier´ de software
ıa
en la tarea de conseguir como resultado un producto de software de
calidad.
Esteban Saavedra L´pez (Opentelematics) Gesti´n de Proyectos de desarrollo de Software - Trac
o o Oct. 2007 2 / 28
3. Gesti´n de Proyectos
o
La gesti´n de proyectos de desarrollo de Software actualmente precisa de
o
contar con algunas herramientas:
Sistema de planicaci´n
o
Sistema de gesti´n documental
o
Sistema de control de versiones
Sistema de gesti´n de incidencias
o
Esteban Saavedra L´pez (Opentelematics) Gesti´n de Proyectos de desarrollo de Software - Trac
o o Oct. 2007 3 / 28
4. Sistema de planicaci´n
o
Objetivo
Que permita organizar el proyecto en funci´n de hitos, tareas, subtareas,
o
asignaci´n y control de tiempos, recursos materiales y humanos.
o
Idealmente
Permitir hacer el seguimiento y reajustar la planicaci´n en funci´n de la
o o
evoluci´n del proyecto.
o
Recomendaci´no
Disponer de herramientas para llevar el control de tiempos
estimados y empleados para cada tarea; para poder controlar la
evoluci´n del proyecto.
o
Es importante que as personas inmersas en el proyecto deben
reportar el tiempo que dedican a cada tarea y actualicen el estado
de las mismas con relativa frecuencia (recomendable diariamente)
Esteban Saavedra L´pez (Opentelematics) Gesti´n de Proyectos de desarrollo de Software - Trac
o o Oct. 2007 4 / 28
5. Sistema de gesti´n documental
o
Objetivo
Servir´ para almacenar y mantener los documentos obtenidos o
a
generados durante el desarrollo del proyecto y acceder a ellos
c´modamente.
o
Cada hito, tarea o subtarea implica la obtenci´n o generaci´n de
o o
documentaci´n (actas de reuniones, documentos de dise˜o, etc.).
o n
Idealmente
Debe permitir que almacenemos esa documentaci´n en el propio sistema.
o
Esteban Saavedra L´pez (Opentelematics) Gesti´n de Proyectos de desarrollo de Software - Trac
o o Oct. 2007 5 / 28
6. Sistema de control de versiones
Objetivo
Permitir´ el desarrollo concurrente y para mantener la historia del
a
c´digo fuente y parte de la documentaci´n producida en el
o o
proyecto.
Al tratarse de proyectos inform´ticos lo normal es que se trabaje con
a
c´digo fuente y con documentos que van evolucionando a lo largo del
o
desarrollo y que deben ser modicados por m´ltiples personas.
u
Idealmente
Disponer de un sistema de control de versiones que permita mantener la
historia de los cheros generados y que m´s de una persona trabaje
a
concurrentemente sobre el mismo c´digo.
o
Esteban Saavedra L´pez (Opentelematics) Gesti´n de Proyectos de desarrollo de Software - Trac
o o Oct. 2007 6 / 28
7. Sistema de gesti´n de incidencias
o
Objetivo
Permitir´ hacer el seguimiento de los errores detectados y sus
a
correcciones, tanto aquellos reportados por los responsables de la
prueba del software como por los desarrolladores o los usuarios nales.
Tambi´n se puede utilizar como sistema de seguimiento de tareas
e
de corta duraci´n asociadas a fases del proyecto, a errores
o
detectados o a cambios relacionados con solicitudes de mejora
solicitadas por el cliente.
Idealmente
Deber´ controlar todas y cada una de las posibles incidencias que
a
puedan ocurrir en el desarrollo de un producto software.
Esteban Saavedra L´pez (Opentelematics) Gesti´n de Proyectos de desarrollo de Software - Trac
o o Oct. 2007 7 / 28
8. Herramientas para gesti´n de proyectos
o
Existen multitud de paquetes de software especializados que
proporcionan las funcionalidades necesarias para la gesti´n de
o
proyectos, ya sea por separado o integrando m´ltiples funcionalidades
u
en un unico producto (generalmente de pago)
Esteban Saavedra L´pez (Opentelematics) Gesti´n de Proyectos de desarrollo de Software - Trac
o o Oct. 2007 8 / 28
9. Alternativas Libres
Trac es un sistema que integra varios componentes con capacidades
sucientes para la gesti´n de proyectos de desarrollo de software.
o
Trac es un programa pensado para desarrolladores que necesitan
mantener un proyecto. Programado en python y ejecutado a trav´s e
de mod_python o como cgi o fastcgi usando un servidor web,
permite llevar una serie de utilidades propias para un proyecto.
Qu´ es Trac?
e
Trac es un sistema web multiplataforma ligero y extensible.
Esteban Saavedra L´pez (Opentelematics) Gesti´n de Proyectos de desarrollo de Software - Trac
o o Oct. 2007 9 / 28
10. Funcionalidades (1)
Wiki
Empleado para documentar cualquier aspecto del proyecto de modo
colaborativo y sin necesidad de herramientas especiales.
La sintaxis del wiki considera:
Empleo de macros
Uso de sintaxis para formatos especiales
Esteban Saavedra L´pez (Opentelematics) Gesti´n de Proyectos de desarrollo de Software - Trac
o o Oct. 2007 10 / 28
11. Funcionalidades (2)
Planificacion (Roadmap)
Sistema para denir y visualizar el estado de los hitos de un proyecto
(un hito incluye una descripci´n y una fecha y se usa como atributo de los
o
tickets, que se asocian a hitos concretos).
Esteban Saavedra L´pez (Opentelematics) Gesti´n de Proyectos de desarrollo de Software - Trac
o o Oct. 2007 11 / 28
12. Funcionalidades (3)
Manejo de eventos (Timeline)
Sistema de seguimiento de eventos en el sistema:
Hist´rico de cambios en el wiki
o
En el sistema de control de versiones,
En el sistema de gesti´n de incidencias o vencimiento de un hito
o
Esteban Saavedra L´pez (Opentelematics) Gesti´n de Proyectos de desarrollo de Software - Trac
o o Oct. 2007 12 / 28
13. Funcionalidades (4)
B´squedas
u
Permite localizar p´ginas del wiki, comentarios dentro de los conjuntos
a
de cambios o tickets en los que aparece una palabra.
Esteban Saavedra L´pez (Opentelematics) Gesti´n de Proyectos de desarrollo de Software - Trac
o o Oct. 2007 13 / 28
14. Funcionalidades (5)
Visor de Codigo
Integrado con algun sistema de control de versiones (asociado al
proyecto), nos permite ver los cambios que se han producido en el
programa de una forma visual (estado actual del repositorio, los
cambios que se han ido produciendo, comparar distintas versiones de
cheros en l´
ınea, etc).
Importante Trac unicamente es un interfaz de lectura del
repositorio, recordemos que para acceder al Subversion se pueden usar
m´ltiples medios (https://, svn://, svn+ssh://, etc.).
u
Una opci´n c´moda para acceder a estos servicios es montar un
o o
acceso comn con apache2.
Esteban Saavedra L´pez (Opentelematics) Gesti´n de Proyectos de desarrollo de Software - Trac
o o Oct. 2007 14 / 28
15. Funcionalidades (7)
Administraci´n
o
Permite realizar la gestion de varios aspectos de un proyecto:
Configuraci´n
o
Usuarios
Permisos
Plugins
etc
Esteban Saavedra L´pez (Opentelematics) Gesti´n de Proyectos de desarrollo de Software - Trac
o o Oct. 2007 15 / 28
16. Funcionalidades (8)
Notificaciones
Permite realizar notificaciones de cambios realizados en el proyecto, via
email.
Esteban Saavedra L´pez (Opentelematics) Gesti´n de Proyectos de desarrollo de Software - Trac
o o Oct. 2007 16 / 28
17. Componentes del sistema
Trac ha sido concebido de forma modular donde se pueden a˜adirn
plugins que proporcionan distintas funcionalidades. (casi todos los
componentes est´ndar son m´dulos que pueden ser activados,
a o
desactivados o reemplazados o modicados por otros).
Actualmente existen plugins para a˜adir funcionalidades a Trac como:
n
Autenticaci´n con formularios y usuarios en LDAP, BBDD o fichero.
o
Uso de otros VCS como Bazaar, GIT, Mercurial o Monotone.
Servicios adicionales como blogs, foros, etc.
Esteban Saavedra L´pez (Opentelematics) Gesti´n de Proyectos de desarrollo de Software - Trac
o o Oct. 2007 17 / 28
18. Funcionamiento
Trac puede funcionar de dos formas:
Mediante su propio servidor (tracd)
Mediante un servidor est´ndar (lighttpd, apache2 ) que tenga soporte
a
para ejecutar c´digo python usando scripts de CGI, FastCGI o
o
mod_python.
Esteban Saavedra L´pez (Opentelematics) Gesti´n de Proyectos de desarrollo de Software - Trac
o o Oct. 2007 18 / 28
19. Como se crea un proyecto?
Se emplea un programa que se invoca desde la l´
ınea de comandos y
que genera una estructura de directorios con la conguraci´n del
o
proyecto y los cheros relacionados
Nota: Si usamos Subversion o una BBDD distinta de SQLite ser´ a
necesario crear el repositorio y/o la BBDD antes de crear el proyecto).
Esteban Saavedra L´pez (Opentelematics) Gesti´n de Proyectos de desarrollo de Software - Trac
o o Oct. 2007 19 / 28
20. Que pasa con el Acceso?
El acceso a los distintos componentes se controla utilizando un
sistema de permisos sencillo:
Cada componente dene un conjunto de acciones posibles.
Para que un usuario pueda realizar la acci´n su identicador debe estar
o
asociado con esa acci´n.
o
La asociaci´n puede ser:
o
Ligando un identicador con un nombre de acci´n.
o
Ligando un identicador con otro, lo que equivale a ligar al primero con
la lista de acciones v´lidas del segundo
a
Hay acciones que engloban a otras (un usuario asociado a la acci´no
TRAC_ADMIN tiene permiso realizar cualquier acci´n).
o
Esteban Saavedra L´pez (Opentelematics) Gesti´n de Proyectos de desarrollo de Software - Trac
o o Oct. 2007 20 / 28
21. Permisos de usuarios
Los usuarios sin identicar son usuarios anonymous.
Los usuarios identicados tienen como m´
ınimo los permisos de
anonymous m´s los del usuario authenticated (es como si se les
a
asignara ).
El sistema no integra ning´n sistema de gesti´n de usuarios, los
u o
nombres de usuario se consideran v´lidos si nos los pasa el servidor
a
Web.
Esteban Saavedra L´pez (Opentelematics) Gesti´n de Proyectos de desarrollo de Software - Trac
o o Oct. 2007 21 / 28
22. Sistema de administraci´n
o
Se puede hacer desde la l´
ınea de comandos (trac-admin) o usando el
WebAdminPlugin.
Estas herramientas permiten:
Control de permisos de los usuarios.
Denici´n de campos en los tickets.
o
Instalaci´n de otros plugins (s´lo desde el plugin).
o o
Edici´n del chero de conguraci´n (solo el plugin).
o o
Esteban Saavedra L´pez (Opentelematics) Gesti´n de Proyectos de desarrollo de Software - Trac
o o Oct. 2007 22 / 28
23. Requisitos de instalaci´n
o
Los requisitos de las versiones actuales (0.10.x) son:
Python: por estar desarrollado en python, adem´s precisa los enlaces
a
(bindings) con algunos de los subsistemas que emplea, como por
ejemplo: ClearSilver, SQLite o Subversion.
Sistema de proceso de plantillas ClearSilver.
Soporte de la BBDD que vayamos a utilizar (SQLite, PostgreSQL o
MySQL).
Esteban Saavedra L´pez (Opentelematics) Gesti´n de Proyectos de desarrollo de Software - Trac
o o Oct. 2007 23 / 28
24. Cambios para la pr´xima versi´n (0.11)
o o
El WebAdminPlugin pasa a formar parte del n´cleo.
u
Eliminada dependencia en ClearSilver (reemplazado por Genshi).
Eliminado el uso de programas externos para an´lisis sint´ctico de
a a
cheros (usa pygments: coloreo de sintaxis).
Nuevo sistema de permisos exible.
Posibilidad de denir ujos de trabajo para los tickets.
Soporte de internacionalizaci´n.
o
Soporte para m´ltiples proyectos con vista unicada.
u
Mejoras en el sistema de gesti´n de usuarios y sesiones, el sistema de
o
b´squedas, en la documentaci´n, en la interacci´n con sistemas de
u o o
control de versiones, etc.
B´squedas avanzadas
u
Esteban Saavedra L´pez (Opentelematics) Gesti´n de Proyectos de desarrollo de Software - Trac
o o Oct. 2007 24 / 28
25. Resumen de Caracter´
ısticas
Sistema de gestin de proyectos de desarrollo de software.
Gesti´n de incidencias internas
o
Trabajo colaborativo
Mantenimiento del c´digo
o
Sistema de ticketing como herramienta de seguimiento de errores
Interfaz externa para proyectos
Esteban Saavedra L´pez (Opentelematics) Gesti´n de Proyectos de desarrollo de Software - Trac
o o Oct. 2007 25 / 28
26. Referencias
Proyecto Trac: http://trac.edgewall.org/
Componentes adicionales: http://trac-hacks.org/
Acceso a repositorios libres: https://opensvn.csie.org/
Esteban Saavedra L´pez (Opentelematics) Gesti´n de Proyectos de desarrollo de Software - Trac
o o Oct. 2007 26 / 28
27. Preguntas
Preguntas
Preguntas, dudas, consultas, ...
Esteban Saavedra L´pez (Opentelematics) Gesti´n de Proyectos de desarrollo de Software - Trac
o o Oct. 2007 27 / 28
28. Agradecimientos
Gracias...
Esteban Saavedra L´pez (Opentelematics) Gesti´n de Proyectos de desarrollo de Software - Trac
o o Oct. 2007 28 / 28