Anda di halaman 1dari 77

Promocin del desarrollo de SW libre en un entorno de calidad y confianza adaptando las metodologas, procesos, modelos de negocio y ltimas tecnologas

FIT-350503-2007-7

Entregable D3
Compendio de herramientas SW Libre para la calidad del software

Fecha lmite del entregable: 1/12/2008 Fecha de entrega: 12/02/2008

Este trabajo se bajo Creative Commons Attribution-Share Alike 3.0. Para ver una copia de esta , visite http://creativecommons.org/licenses/by-sa/3.0/ o enve una carta a Creative Commons, 171 Second Street, Suite 300, San Francisco, California, 94105, USA. Este trabajo est parcialmente financiado por el Ministerio de Industria, Turismo y Comercio espaol.

Vulcano FIT-350503-2007-7 Versin 1.0 12/02/2008 Pgina 1 de 77

Historial de Cambios
Versin 1.0 1.1 1.2 1.3 Fecha 12-02-08 08-01-08 30-01-08 29-01-09 Estado Autor (Partner) Descripcin del Borrador Informtica Gesfor, Primera versin Atos, documento Borrador Informtica Gesfor Revisin herramientas herramientas herramientas

Borrador Informtica Gesfor, Nuevas UPM aadidas Versin final Informtica Gesfor, Nuevas UPM aadidas

Vulcano FIT-350503-2007-7 Versin 1.0 12/02/2008 Pgina 2 de 77

RESUMEN EJECUTIVO
El objetivo de este documento es revisar herramientas de cdigo abierto que faciliten y automaticen las tareas de desarrollo software definidas en la metodologa, y que sern posteriormente integradas en la forja de Vulcano.

Vulcano FIT-350503-2007-7 Versin 1.0 12/02/2008 Pgina 3 de 77

Informacin del Documento


Proyecto FIT Nmero Ttulo completo FIT-350503-2007-7 Acrnimo Vulcano

Promocin del desarrollo de SW libre en un entorno de calidad y confianza adaptando las metodologas, procesos, modelos de negocio y ltimas tecnologas http://www.ines.org.es/vulcano

URL URL del documento

Entregable Paquete de Trabajo Tarea

Nmero D3.3 Nmero 3 Nmero T3.2

Ttulo Compendio de herramientas SW Libre para la calidad del software Ttulo Estudio metodolgico de la calidad para la aplicacin en la forja Vulcano Ttulo Aplicacin de herramientas de cdigo abierto a los procesos de calidad de software

Fecha de Entrega Estado Tipo Nivel de Diseminacin Resumen (para diseminacin) Palabras Clave

Contractual

/12/

Entregado /12/ final

Versin 1.3 29/01/2009 Informe Demo Otro Pblico Consorcio

El objetivo de este documento es el estudio de las diferentes herramientas disponibles de software libre en la actualidad que den soporte a los procesos de desarrollo software Software libre, desarrollo software, open source, GPL

Vulcano FIT-350503-2007-7 Versin 1.0 12/02/2008 Pgina 4 de 77

Autores (Partner)1 Pablo Martn, Carlos A. Iglesias(Informtica Gesfor) Miguel ngel Barcelona (ITA) Jos Nieto Rubio (ATOS) Manuel Bollan(UPM) Responsable de Autora Jos Nieto Partner Atos Origin Email josenietor@atosresearch.eu

Este documento se basa en [Vu07], que ha sido revisado y extendido.


Vulcano FIT-350503-2007-7 Versin 1.0 12/02/2008 Pgina 5 de 77

TABLA DE CONTENIDOS
RESUMEN EJECUTIVO.....................................................................................3 TABLA DE CONTENIDOS.............................................................................................6 1 INTRODUCCIN.......................................................................................................8 1.1 Metodologa de trabajo...............................................................................8 1.2 Estructura del documento...........................................................................9 1.3 Participantes en el estudio..........................................................................9 2 ESTUDIO DE HERRAMIENTAS....................................................................................11 2.1 Estado actual de este tipo de herramientas en G-Forge .........................11 2.1.1 Herramientas existentes.....................................................................11 2.1.2 Nuevas herramientas para Gforge.....................................................12 2.2Herramientas de gestin de requisitos......................................................13 2.2.1 OSRMT...............................................................................................13 2.2.2 REM....................................................................................................17 2.2.3 RTH....................................................................................................21 2.2.4 TIGER PRO........................................................................................23 2.3 Herramientas de planificacin y gestin de proyectos.............................25 2.3.1 DotProject...........................................................................................26 2.3.2 GanttProject........................................................................................31 2.3.3 XPlanner.............................................................................................33 2.3.4 Trac.....................................................................................................35 2.3.5 GanttPV..............................................................................................39 2.3.6 Openproj.............................................................................................41 2.3.7 Project Open.......................................................................................43 2.4 Herramientas de gestin de la configuracin...........................................45 2.4.1 CVS....................................................................................................46 2.4.2 SVN....................................................................................................48 2.4.3 Bazaar................................................................................................52 2.4.4 GNU Arch...........................................................................................54 2.4.5 Darcs..................................................................................................56 2.5 Herramientas de gestin de incidencias...................................................57 2.5.1 BugZilla...............................................................................................57 2.5.2 Mantis bug tracker..............................................................................61 2.5.3 Bug Tracker........................................................................................63 2.5.4 Scarab................................................................................................64 2.6 Herramientas de preparacin y compilacin de proyectos.......................65
Vulcano FIT-350503-2007-7 Versin 1.0 12/02/2008 Pgina 6 de 77

2.6.1 Ant......................................................................................................65 2.6.2 Maven.................................................................................................67 2.6.3 SCons.................................................................................................69 2.7 Herramientas de pruebas de sistemas software......................................70 2.7.1 TOPEN...............................................................................................70 2.7.2 Wapiti..................................................................................................72 3 CONCLUSIONES....................................................................................................75 4 REFERENCIAS .....................................................................................................76

Vulcano FIT-350503-2007-7 Versin 1.0 12/02/2008 Pgina 7 de 77

INTRODUCCIN

Este documento corresponde al entregable D3.3 Compendio de herramientas SW Libre para la calidad del software correspondiente al paquete de trabajo 3 Estudio metodolgico de la calidad para la aplicacin en la forja Vulcano. El objetivo de este subproyecto es facilitar a las empresas espaolas un conjunto de herramientas basadas en sistemas open source que, mediante mecanismos de interoperabilidad de sistemas, estn integradas y faciliten la implantacin de procesos de desarrollo de software.

1.1

Metodologa de trabajo
T.3.1 Estudio del estndar de certificacin del nivel de madurez de los procesos de desarrollo: CMMI T.3.2 Aplicacin de herramientas de cdigo abierto a los procesos de calidad de software. T.3.3 Desarrollo de herramientas para cubrir el proceso de madurez de CMMI2

El paquete de trabajo 3 est dividido en las siguientes tareas:

Siguiendo la metodologa general del proyecto Vulcano, todas las actividades del proyecto se desarrollarn siguiendo un modelo de desarrollo en espiral, donde las actividades se desarrollarn durante todo el proyecto de forma cclica e incremental, de tal manera que en cada fase, los resultados de una actividad sern las entradas en la siguiente fase de las actividades que dependan de sta. Este documento en particular es el resultado de la tarea T3.2 que, a su vez, depende de la tarea T.3.1. Las herramientas que van a ser analizadas se han clasificado en las siguientes categoras (reflejadas en la estructura del documento que se describe en el apartado siguiente):

Gestin de requisitos Planificacin y gestin de proyectos Gestin de la configuracin Gestin de incidencias Preparacin y compilacin de proyectos Pruebas de sistemas

Para cada herramienta se ha elaborado un cuestionario que permita su comparacin y anlisis, dichos cuestionarios han sido enviados a cada colaborador del proyecto que participa en la elaboracin de este estudio.

Vulcano FIT-350503-2007-7 Versin 1.0 12/02/2008 Pgina 8 de 77

1.2

Estructura del documento

Este documento se ha dividido en dos secciones: la introduccin y el estudio de herramientas. La segunda seccin, a su vez, est dividida en 6 subsecciones:

En la primera Estado actual de este tipo de herramientas en G-Forge se ha realizado un estudio de las herramientas que pueden encontrarse actualmente en las forjas con funcionalidades de soporte al desarrollo de proyectos y se ha propuesto una lista de mejoras para que G-Forge cubra dichas funcionalidades. En la segunda subseccin Herramientas de gestin de requisitos se describen las distintas herramientas de apoyo a las tareas relacionadas con la gestin de requisitos. En la tercera: Herramientas de planificacin y gestin de proyectos se ha hecho un estudio de las herramientas de software libre disponibles para este campo La cuarta subseccin, llamada Herramientas de gestin de la configuracin recoge las herramientas ms relevantes que ayudan en las tareas de gestin de la configuracin Software En la quinta subseccin Herramientas de gestin de incidencias al igual que en las anteriores se realiza un estudio detallado de las herramientas open source que dan soporte a las tareas de gestin de incidencias En la sexta subseccin Herramientas de preparacin y compilacin de proyectos se analizan las herramientas que permiten mecanizar y automatizar las tareas relacionadas con la preparacin y compilacin de proyectos. Por ltimo, en la sptima subseccin Herramientas de pruebas de sistemas software se analizan las herramientas que permiten mecanizar y automatizar las tareas relacionadas con el diseo, preparacin y ejecucin de pruebas de sistemas software.

En siguientes versiones del documento podrn incluir en el anlisis otras herramientas que den soporte a procesos de desarrollo de software.

1.3

Participantes en el estudio
Telefnica I+D ITA Atos Origin Yaco Informtica Gesfor Universidad Politcnica de Madrid
Vulcano FIT-350503-2007-7 Versin 1.0 12/02/2008 Pgina 9 de 77

Este documento ha sido desarrollado por las siguientes organizaciones:

2 2.1

ESTUDIO DE HERRAMIENTAS Estado actual de este tipo de herramientas en G-Forge

Una de las deficiencias de GForge, comn en la mayora de los CDE por haber estado orientados en un primer momento al software libre, es el no proporcionar un mayor soporte a los procesos de la ingeniera del software. Un avance en esa direccin es la reciente contribucin por parte de IBM a la comunidad OpenSource, en concreto a la Eclipse Foundation, de un subconjunto de RUP. Generalmente el modelo de desarrollo del software libre tiende a ser informal, bsicamente porque el equipo de desarrolladores realiza las tareas de forma voluntaria, y no por una ganancia econmica, al menos de forma directa. El modo en que se realiza la captura de los requisitos depende del tiempo y el tamao del proyecto; en las primeras etapas, el creador y usuario del proyecto son la misma persona, posteriormente, si el proyecto crece, aparecen diferenciados el grupo de usuarios y el de desarrolladores, y la captura de requisitos se lleva a cabo mediante listas de correo. En proyectos grandes, los requisitos se capturan haciendo uso de la misma herramienta empleada para la gestin de errores, como por ejemplo los trackers de GForge. El uso de este tipo de herramientas de planificacin es relativamente reciente, y es indicativo de cmo se est evolucionando de una carencia total de sistemas de gestin, a una gestin centralizada, aunque todava limitada. Pese a todo, la carencia de un diseo general del sistema no slo incluye dificultades en la posibilidad de reutilizacin del cdigo, tambin es una lacra importante en la incorporacin de nuevos desarrolladores, puesto que supone unas pronunciadas curvas de coste y aprendizaje. En la fase de implementacin, que es donde los desarrolladores de software libre centran la mayor parte de sus esfuerzos, el paradigma de programacin suele ser el clsico de prueba-error. La automatizacin de pruebas an no est ampliamente implantada, normalmente son los usuarios, con distintas arquitecturas y usos, los que prueban el producto, teniendo como desventaja la dificultad de conseguir una realimentacin eficiente. 2.1.1 Herramientas existentes Para cubrir funcionalidades tales como la gestin de configuracin, seguimiento de tareas y ediciones, gestin de proyecto, gestin de conocimiento, gestin de comunicaciones, gestin del ciclo de vida de software y otras relacionadas, las forjas pueden disponer de algunas de estas herramientas:

Herramientas para la gestin del proyecto, como la jerarquizacin de relaciones dentro del proyecto, creacin sencilla de entornos, configuraciones y planes para un nuevo proyecto, etc. Herramientas de gestin de lneas base, control de riesgos, gestin de configuracin, factores humanos, gestin de empleados, niveles de madurez en la empresa segn distintos modelos de proceso (CMMi, CMM, etc.), guas para alcanzar niveles de madurez 5 (en ingeniera del
Vulcano FIT-350503-2007-7 Versin 1.0 12/02/2008 Pgina 10 de 77

software esto se traduce en tener un proceso de trabajo totalmente refinado y mejorado, hasta las cotas ms altas alcanzables).

Conjunto de herramientas y caractersticas orientadas a ofrecer una gua concreta a los miembros de un proyecto para cada paso del ciclo de vida del mismo. Se permite gestionar cada aspecto del proyecto, de ciclos de vida de su software, y de ingeniera SW en general.

Gestin de fases de madurez, gestin del proyecto bajo distintos modelos de proceso, gestin de comunicaciones internas, gestin de mediciones e informes de progreso e integracin, etc. Gestin del proyecto orientada a alcanzar un nivel de madurez 5 segn los modelos de proceso actuales: herramientas de ayuda y gua de procesos, integracin del equipo, seguridad, localizacin de problemas y riesgos frecuentes durante el proceso, etc. Gestin integrada en la herramienta de las lneas base del proyecto, fundamental para la gestin de configuracin de todo proyecto en el mbito de la ingeniera software. Aplicaciones orientadas a ofrecer una visibilidad amplia del proyecto desde el punto de vista de excepciones, gestin de riesgos, etc. para informar a ejecutivos y lderes de proyecto. Aplicaciones que interpretan planes de proyecto y los traducen a planes concretos de actuacin mucho ms especficos. Pueden presentar compatibilidad con Microsoft Project, de tal forma que se permite a los gestores y jefes de proyecto comprobar el estado actual de un proyecto respecto a su planificacin, generar informes descriptivos en tiempo real, etc.

Herramientas especficas de gestin de proyectos:

2.1.2 Nuevas herramientas para Gforge Actualmente, Gforge no dispone de herramientas para cubrir las funcionalidades vistas en el apartado anterior. Con el fin de incluir las ms importantes de estas funcionalidades en la forja, se ha elaborado la siguiente lista de mejoras para Gforge:

Proporcionar soporte a un proceso de desarrollo SW concreto o subconjunto del mismo, como por ejemplo RUP, de IBM, o modelos de proyecto como CMM o CMMi. Dentro de esta mejora se deberan incluir herramientas de gestin de configuracin, etc. que faciliten la realizacin de los procesos. Se gestionar la supervisin de hitos, as como compatibilidad con Global Development Dashboard, o desarrollo de una herramienta creada con software libre que tenga funcionalidades similares orientadas a la gestin de proyectos en la misma lnea, manejo de costes, roles, hitos, etc. Con esta mejora se pretende complementar lo propuesto en la mejora anterior, con un enfoque de proyecto hacia la ingeniera del SW.
Vulcano FIT-350503-2007-7 Versin 1.0 12/02/2008 Pgina 11 de 77

Ofrecer compatibilidad directa con herramientas externas de gestin de proyectos. Workflows configurables para permitir dar de alta, configurar, seguir y gestionar procesos propios de las empresas cliente. Incluir procesos de desarrollo e instanciaciones de workflows por defecto para facilitar la disposicin y administracin de nuevos proyectos gestionados por la herramienta, cuando la empresa o cliente no cuente con modelos de proceso propios. Herramientas de certificacin de calidad para uso de los proyectos. Calidad para documentos, procesos, productos concretos de las empresas, productos Web, etc. Herramientas de verificacin de estndares de derecho libres de patentes y pago de royalties que los distintos proyectos pueden usar para estar conforme a los mismos

2.2 Herramientas de gestin de requisitos


Los requisitos constituyen uno de los primeros entregables, si no el primero, en el proceso de desarrollo de aplicaciones software. De hecho, es la aparicin de unas determinadas necesidades lo que motiva el desarrollo de un sistema o aplicacin, el cual tiene como fin solucionar esas necesidades o deficiencias detectadas. Los requisitos son estas necesidades plasmadas de forma clara y concisa. Resulta por tanto evidente que esta parte de gestin de requisitos, es una de las ms importantes del proceso de desarrollo y que, en mayor o menor medida, condicionar el xito del proceso global. El proceso de gestin de requisitos no se basa nicamente en la educcin de los mismos si no que implica ms tareas. Por ello surge la necesidad de ayudarse de herramientas que apoyen o den soporte a todas estas tareas entre las cuales podemos destacar:

Recogida de requisitos Formalizacin de requisitos Revisin Gestin

Las herramientas que dan soporte a estas tareas son las conocidas como Herramientas de Gestin de Requisitos. 2.2.1 OSRMT El nombre completo de la herramienta es Open Source Requirement Management Tool. Es una herramienta de software libre, bajo licencia GPL, escrita en java y desarrollada actualmente por Aron Smith y Paul Spencer [OsrURL].

Vulcano FIT-350503-2007-7 Versin 1.0 12/02/2008 Pgina 12 de 77

Se trata de una herramienta de gestin de requisitos, que permite la descripcin avanzada de diversos tipos de requisitos y garantiza la trazabilidad entre todos los documentos relacionados con la ingeniera de requisitos (funcionalidades, requisitos, casos de uso, casos de prueba).

Caractersticas y funcionalidad bsica


Administracin y Configuracin Gestin de documentos de ingeniera de requisitos (funcionalidades, requisitos, casos de uso, casos de prueba) Trazabilidad entre documentos de trabajo Informes y estadsticas Las funcionalidades ofrecidas por la herramienta son: Gestin de requisitos, diferenciando entre

Requisitos Funcionalidades Requisitos tcnicos Casos de prueba Requisito-Requisito (control de versiones) Requisito-Requisito (dependencia entre requisitos) Requisito-Funcionalidad Requisito-Caso de Prueba Visualizacin de la matriz de trazabilidad rbol de trazabilidad para facilitar las auditorias Grfico de dependencias entre documentos de trabajo para poder determinar el impacto de un cambio Definicin de los atributos de una funcionalidad Definicin de los atributos de un requisito Definicin de los atributos de un caso de prueba Valores predefinidos para cada usuario (prioridades por defecto, estado por defecto, etc) Personalizacin de vistas

Trazabilidad entre todos los documentos de trabajo


Personalizacin y configuracin

Representacin jerrquica de los documentos de trabajo Definicin de casos de prueba mediante pruebas para cada uno de los pasos del caso de uso
Vulcano FIT-350503-2007-7 Versin 1.0 12/02/2008 Pgina 13 de 77

Descripcin de un requisito mediante la secuencia de pasos de su caso de uso Gestin de la configuracin


Almacenamiento de quin y cundo cambia qu Versionado de los documentos de trabajo

Posibilidad de almacenamiento de ficheros binarios adjuntos o hipervnculos Gestin de usuarios Acceso restringido a usuarios registrados

Gestin de privilegios para determinadas tareas Autenticacin LDAP

Bsquedas avanzadas (filtros, rdenes) sobre los documentos de trabajo registrados Informes y estadsticos

Bsicos Especficos creados por el usuario A partir de los resultados de bsquedas avanzadas Exportados a HTML o PDF

Importar informacin en XML y mediante lnea de comandos Exportar informacin en XML y HTML y mediante lnea de comandos Herramientas de migracin para los diversos cambios de versiones Mltiples idiomas (importacin y exportacin para dar soporte a diversos idiomas)

Integrabilidad Web o con el IDE Eclipse mediante plugin Hasta la fecha no es posible acceder a ningn formulario de la herramienta va Web, ni existe ningn plugin para Eclipse disponible para esta herramienta.

Ventajas e inconvenientes La herramienta presenta las siguientes ventajas:

La visualizacin de requisitos en forma jerrquica es intuitiva y fcil de manejar Existen diversas distribuciones, tanto para un equipo en local como para un servidor de aplicaciones J2EE para permitir desarrollo colaborativo Su licencia es GPL Es un desarrollo basado en Java, por lo que es multiplataforma

Vulcano FIT-350503-2007-7 Versin 1.0 12/02/2008 Pgina 14 de 77

Las nuevas versiones incorporan un cliente Web para permitir accesos desde internet Como herramienta open source de gestin de requisitos no tiene mucha competencia en cuanto a la funcionalidad ofrecida Tiene una buena documentacin El ritmo de mejoras y nuevas versiones es constante Existen muchas opciones para configurar y personalizar la herramienta a las necesidades concretas de una organizacin Lleva incorporado un sistema de gestin de la configuracin que permite definir lneas base Existe un gran soporte para mantener la trazabilidad entre los documentos Existen mecanismos que facilitan la importacin y exportacin de la informacin en XML No existe un soporte empresarial Las nuevas versiones no estn planificadas ni se anuncian claramente las mejoras que sern incorporadas. Es posible que las nuevas versiones no sean compatibles con las anteriores. No es posible generar automticamente un documento de requisitos para entregar al cliente Algunas funcionalidades no han sido desarrolladas completamente y estn a medias La interfaz de usuario es en ocasiones lenta Se ofrecen pocos mensajes de confirmacin y aviso al usuario (la interaccin con el usuario es pobre)

Los principales inconvenientes que se han observado son los siguientes:


Valoracin general Dentro de las herramientas open source que abarcan la ingeniera de requisitos, se trata sin duda de una de las que mejores funcionalidades ofrece. Con muchas opciones de configuracin, que permite personalizar la herramienta a las necesidades concretas de una organizacin, esta aplicacin cubre los principales aspectos relacionados con la gestin de requisitos: su registro, definicin, categorizacin, seguimiento y trazabilidad con el resto de documentos de trabajo. Su principal inconveniente radica en que se trata de un proyecto llevado a cabo nicamente por dos desarrolladores, por lo que se hace preciso de un entorno empresarial que permita dar sostenibilidad al proyecto. Su reciente inclusin dentro de la forja sourceforge puede disminuir este riesgo, permitiendo que nuevos desarrolladores colaboren y que el sistema sea sostenible en el tiempo.
Vulcano FIT-350503-2007-7 Versin 1.0 12/02/2008 Pgina 15 de 77

Ilustracin 1: Pantalla principal de la herramienta OSRMT

2.2.2 REM El nombre completo de la herramienta es REquisite Management. Esta herramienta ha sido desarrollada por la Universidad de Sevilla. REM es una herramienta experimental gratuita de Gestin de Requisitos, diseada para soportar la fase de Ingeniera de Requisitos de un proyecto de desarrollo software de acuerdo con la metodologa definida en la Tesis Doctoral "Un Entorno Metodolgico de Ingeniera de Requisitos para Sistemas de Informacin", realizada por el profesor Amador Durn del Departamento de Lenguajes y Sistemas Informticos de la Universidad de Sevilla [RemURL].

Caractersticas y funcionalidad bsica Los diversos mdulos integrados en la herramienta son:


Gestin de documentos de ingeniera de requisitos Trazabilidad entre documentos de trabajo Informes y estadsticas Generacin de documento html Las funcionalidades ofrecidas por la herramienta son: Gestin de requisitos, diferenciando entre

Requisitos
Vulcano FIT-350503-2007-7 Versin 1.0 12/02/2008 Pgina 16 de 77

Funcionalidades Requisitos tcnicos Casos de prueba Requisito-Requisito (control de versiones) Requisito-Requisito (dependencia entre requisitos) Requisito-Funcionalidad Requisito-Caso de Prueba Visualizacin de la matriz de trazabilidad rbol de trazabilidad para facilitar las auditorias Grfico de dependencias entre documentos de trabajo para poder determinar el impacto de un cambio Definicin de los atributos de una funcionalidad Definicin de los atributos de un requisito Definicin de los atributos de un caso de prueba Valores predefinidos para cada usuario (prioridades por defecto, estado por defecto, etc) Personalizacin de vistas

Trazabilidad entre todos los documentos de trabajo


Personalizacin y configuracin

Representacin jerrquica de los documentos de trabajo Definicin de casos de prueba mediante pruebas para cada uno de los pasos del caso de uso Descripcin de un requisito mediante la secuencia de pasos de su caso de uso Gestin de la configuracin

Almacenamiento de quin y cundo cambia qu Versionado de los documentos de trabajo

Posibilidad de almacenamiento de ficheros binarios adjuntos o hipervnculos Gestin de usuarios


Acceso restringido a usuarios registrados Gestin de privilegios para determinadas tareas Autenticacin LDAP

Bsquedas avanzadas (filtros, rdenes) sobre los documentos de trabajo registrados


Vulcano FIT-350503-2007-7 Versin 1.0 12/02/2008 Pgina 17 de 77

Informes y estadsticos

Bsicos Especficos creados por el usuario A partir de los resultados de bsquedas avanzadas Exportados a HTML o PDF

Importar informacin en XML y mediante lnea de comandos Exportar informacin en XML y HTML y mediante lnea de comandos Herramientas de migracin para los diversos cambios de versiones Mltiples idiomas (importacin y exportacin para dar soporte a diversos idiomas)

Integrabilidad Web o con el IDE Eclipse mediante plugin Hasta la fecha no es posible acceder a ningn formulario de la herramienta va Web, ni existe ningn plugin para Eclipse disponible para esta herramienta.

Ventajas e inconvenientes La herramienta presenta las siguientes ventajas:

La visualizacin de requisitos en forma jerrquica es intuitiva y fcil de manejar. A la vez que se introduce la informacin va generando un documento html. Tiene una interfaz muy intuitiva, por lo que la curva de aprendizaje es mnima. Su sencillez conceptual (plantillas y patrones lingsticos) Es una buena herramienta para comenzar el hbito de realizar la gestin de requisitos en aquellas organizaciones que no estuvieran acostumbradas a hacerlo Aunque no es open source, es de uso gratuito Permite incluir trazabilidad entre los requisitos Da soporte a dependencias entre requisitos Almacena los autores de cada requisito Es posible vincular la definicin de los requisitos con reuniones o con solicitudes de cambios realizadas por el cliente Dispone de una herramienta de anlisis de impacto de cambios a los requisitos En realidad almacena la informacin en una base de datos Access, por lo que es posible importar y exportar la informacin (aunque se hace preciso conocer en detalle el modelo de datos)
Vulcano FIT-350503-2007-7 Versin 1.0 12/02/2008 Pgina 18 de 77

Los inconvenientes que se han observado son los siguientes:

Requiere de las ADO por lo que slo funciona en entornos con el sistema operativo Windows Tras la ponencia realizada por el autor en las jornadas SoloRequisitos 2006, se ha anunciado que en principio no va a ser actualizada y se plantea un nuevo desarrollo desde cero usando otra tecnologa dentro del proyecto WebFactories No es una herramienta Open Source y en principio el autor no plantea liberar su cdigo No se pueden generar lneas base Tiene algunos errores No tiene soporte (no es una herramienta comercial) No es eficiente (lenta cuando hay muchos objetos) La calidad del HTML generado es mejorable y el desarrollo de nuevas hojas de estilo XSLT requiere amplios conocimientos de XML, XSLT, HTML, El metamodelo interno no se puede cambiar (aadir nuevas propiedades a los objetos o nuevos tipos de objetos) El metamodelo de casos de uso dificulta la especificacin de caminos alternativos en los casos de uso No es multiusuario No incorpora gestin de versiones No es posible controlar la numeracin de los requisitos No se puede aadir formato al texto El numero de documentos por proyecto es siempre 4

Valoracin general Se trata de una herramienta con una gran sencillez conceptual, basada en plantillas y en patrones lingsticos, que hacen de ella la mejor aplicacin para empezar el camino de la madurez en el proceso de ingeniera de requisitos con una iniciacin suave. Su principal inconveniente radica en que se trata de un proyecto llevado a cabo de forma individual dentro de una tesis doctoral y los planes a corto plazo expresados por el autor pasan por su generacin desde cero usando otra tecnologa, por lo que se trata de un proyecto que no va a tener sostenibilidad.

Vulcano FIT-350503-2007-7 Versin 1.0 12/02/2008 Pgina 19 de 77

Ilustracin 2: Pantalla de la herramienta REM

2.2.3 RTH RTH es una herramienta web que permite gestionar requisitos, pruebas, resultados de pruebas e incidencias de una aplicacin durante su ciclo de vida. La herramienta proporciona un enfoque estructurado a las pruebas del software y aumenta la visibilidad del proceso de pruebas creando un repositorio comn para requisitos, casos de pruebas, as como planes de pruebas y los resultados de las mismas. RTH permite a desarrolladores, analistas, gerentes, etc. monitorizar la aplicacin independientemente de su localizacin geogrfica. La herramienta incluye mdulos para gestin de requisitos, planificacin de pruebas, ejecucin de pruebas, gestin de errores y elaboracin de informes.

Caractersticas y funcionalidad bsica RTH presenta las siguientes caractersticas a nivel general.

Permite trabajar en localizaciones remotas sin problema, ya que se puede ver el estado del proyecto a travs de la web Se puede ver el progreso de requisitos, ejecucin de pruebas y estado de errores en tiempo real Todos los documentos (requisitos, pruebas, planes de pruebas, etc.) son almacenados bajo control de versiones Automatizacin de pruebas de forma sencilla Almacena en registros o ficheros los requisitos en funcin de las necesidades de informacin. Informa sobre los manuales y los resultados de las pruebas automatizadas.
Vulcano FIT-350503-2007-7 Versin 1.0 12/02/2008 Pgina 20 de 77

Las funcionalidades de esta herramienta en relacin con la gestin de requisitos son:


Los requisitos se almacenan bajo control de versiones Los requisitos se pueden vincular con uno o ms requisitos proporcionando as una trazabilidad completa entre requisitos Las pruebas se pueden vincular con uno o ms requisitos proporcionando as una trazabilidad completa entre requisitos y pruebas Caractersticas estndar de workflow como por ejemplo notificaciones automticas por e-mail cuando cambia un requisito. Permite a los usuarios el bloqueo y desbloqueo de requisitos Proporciona un foro de discusin para cada uno de los requisitos Los requisitos se pueden visualizar como una tabla o en carpetas Se permite la asociacin de meta-datos especficos a un proyecto y definidos por el usuario con los requisitos (prioridad, cobertura, tipo de requisito, etc.), siendo totalmente configurable. Se pueden asociar los requisitos a una determinada versin (permitiendo gestin de versiones, gestin de mbito, etc.) Aumento de la eficiencia del usuario mediante la actualizacin masiva de requisitos Los cambios en requisitos pueden realizarse usando cualquier sistema web de gestin de cambios o el sistema de gestin de errores de RTH. Permite exportar los requisitos a un documento Excel Requisitos Pruebas Versiones Resultados Errores Informes Administracin

La herramienta est formada por los siguientes mdulos:


Integrabilidad Web o con el IDE Eclipse mediante plugins Al ser una herramienta web, la posibilidad de integrarla en la forja de una forma sencilla y correcta aumenta considerablemente. No se ha encontrado hasta el momento ningn plugin que permita el uso de esta herramienta desde el entorno de desarrollo Eclipse.

Ventajas e inconvenientes Algunas de las ventajas de esta herramienta son las siguientes:
Vulcano FIT-350503-2007-7 Versin 1.0 12/02/2008 Pgina 21 de 77

Aunque est configurado para emplear una base de datos MySQL, se puede configurar para utilizar casi cualquier base de datos, ya que utiliza el nivel de abstraccin ADOdv Puede ejecutar sobre servidores web Apache o IIS La ltima versin de la herramienta proporciona integracin con MS Excel Ofrecen soporte (no gratuito) tanto a nivel de consulta como a nivel de resolucin de problemas. La documentacin sobre la herramienta es escasa, slo se ha encontrado una gua para su instalacin Tiene algunas deficiencias y errores, aunque se irn solucionando puesto que esta herramienta sigue en desarrollo

Algunos inconvenientes que presenta esta herramienta son los siguientes:

Valoracin general Es una herramienta open source potente y completa para gestin de requisitos, que adems permite la automatizacin de pruebas y registro de errores, con una interfaz web bastante intuitiva. Adems, puesto que su desarrollo est activo en Sourceforge, es de esperar que se irn aadiendo nuevas funcionalidades. En Sourceforge tenemos tambin la ventaja de disponer de foros, wikis y listas de correos para comunicarnos con otros usuarios de la herramienta y compartir as conocimientos.

2.2.4 TIGER PRO TIGER PRO son las siglas de Tool to InGest and Elucidate Requirements PROfessional. Esta herramienta shareware permite evaluar el grado de calidad de los requisitos de un proyecto utilizando tcnicas de inteligencia artificial [TigURL].

Caractersticas y funcionalidad bsica Las funcionalidades ofrecidas por la herramienta son:


Almacenar los requisitos en formato textual en una base de datos Distinguir los requisitos basados en palabras malas y sealar los defectos potenciales de cada requisito (mltiples requisitos en un prrafo, requisito no verificable, identificacin de palabras malas definidas por el usuario) Modificar requisitos Aadir palabras malas a medida que stas se vayan identificando. Se pueden crear excepciones en las que el requisito sea vlido an conteniendo estas palabras
Vulcano FIT-350503-2007-7 Versin 1.0 12/02/2008 Pgina 22 de 77

Utilizacin de un agente que, utilizando una gramtica determinista para la ingeniera de requisitos, ayude a la escritura de requisitos en forma correcta. Generar un informe documentando cada ocurrencia de una palabra mala en la definicin de requisitos Gestin de requisitos permitiendo definir para cada uno:

Criterio de aceptacin Consistencia Trazabilidad Prioridad Riesgo Coste (estimado, base y total)

Generacin de informes globales con informacin grfica y textual sobre los requisitos

Integrabilidad Web o con el IDE Eclipse mediante plugins Esta herramienta est pensada para utilizarse en un entorno docente como aplicacin de escritorio por lo que no tiene integrabilidad web ni con el entorno eclipse.

Ventajas e inconvenientes Las ventajas ofrecidas por esta herramienta son las siguientes:

Establece una medida adicional para establecer la calidad de los requisitos Fcil manejo e implantacin Ayuda a escribir requisitos de forma correcta nicamente disponible para entornos Windows Slo funciona en ingls Orientado al uso docente, difcilmente implantable en proyectos grandes

Las principales desventajas encontradas son las siguientes:


Valoracin general Es comn que, en la prctica, la definicin de requisitos contenga un vocabulario pobre y ambiguo a pesar de existir numerosa documentacin al respecto. En este sentido esta herramienta es muy til, dado que utiliza un sistema experto para analizar sintcticamente el lenguaje empleado en los requisitos y detectar posibles defectos en ellos. Aparte de esto, la herramienta ofrece escasa funcionalidad y soporte dado que est concebida para su uso docente.

Vulcano FIT-350503-2007-7 Versin 1.0 12/02/2008 Pgina 23 de 77

Ilustracin 3: Grfico generado por TIGER PRO

2.3

Herramientas de planificacin y gestin de proyectos

La planificacin de un proyecto es una tarea que se puede ubicar a lo largo de todo el ciclo de vida del mismo, desde que se empieza con la toma de requisitos, hasta que se cierra el proyecto, pasando por la entrega de hitos intermedios, fase de pruebas, entrega final del producto y fase de soporte. Existirn fases que en determinados proyectos, por unas circunstancias u otras, no se tengan en cuenta y no necesiten ser planificadas, pero que en lneas generales tendrn que ser consideradas. Gestionar todas estas fases incluyendo los recursos, tanto humanos como materiales, de los que se dispone en cada una de ellas, controlando sus tiempos de duracin y sus porcentajes de dedicacin es una labor compleja, y prcticamente inabordable sin la ayuda de determinadas herramientas que den soporte a esta tarea de planificacin y gestin de proyectos. Estas
Vulcano FIT-350503-2007-7 Versin 1.0 12/02/2008 Pgina 24 de 77

herramientas son las denominadas Herramientas de Planificacin y Gestin de Proyectos. 2.3.1 DotProject DotProject es una herramienta de software libre para la gestin de proyectos.

Caractersticas y funcionalidad bsica Se trata de una herramienta bsica de gestin de proyectos, que permite la gestin de las siguientes entidades:

Recursos

Recursos humanos Recursos materiales Planes de recursos Contactos Empresas Tareas Hitos

Contactos

Planes de proyectos

Igualmente, dispone de un calendario con la vista de tareas y eventos para facilitar el trabajo colaborativo, un sistema de gestin de incidencias, un repositorio de ficheros y unos foros de discusin. Los diversos mdulos integrados en la herramienta son:

Calendario Plan de proyecto Informes Foros Contactos Ficheros Tareas Tickets (incidencias) Administracin Vista de eventos y tareas en una calendario, con posibilidad de filtrado por:

Las funcionalidades ofrecidas por la herramienta son:

Proyecto
Vulcano FIT-350503-2007-7 Versin 1.0 12/02/2008 Pgina 25 de 77

Empresa Periodo Temporal Estado de la actividad

Patrn CRUDEL (alta, baja, modificacin, borrado, listado y exportacin) de las entidades:

Empresa Contacto Usuario Proyecto Tarea Hito Recurso Incidencia Rol

Creacin de planes de proyecto mediante la descomposicin en tareas e hitos, as como la asignacin a los diversos recursos disponibles. Visualizacin de informes y estadsticas sobre los proyectos registrados Foros de discusin para los usuarios registrados Sistema de gestin de incidencias Sistema de registro de ficheros Sistema de administracin y configuracin del portal

Integrabilidad Web o con el IDE Eclipse mediante plugins Su integrabilidad Web es total ya que toda su interfaz es Web. En cuanto a la integrabilidad con Eclipse, actualmente existe un plugin desarrollado por la universidad de los andes en Colombia y disponible en su pgina web [DepURL].

Ventajas e inconvenientes La herramienta presenta las siguientes ventajas:


Su instalacin es muy sencilla y est bien documentada. Es posible gestionar proyectos desde que se inicia el proceso de creacin del mismo y aun cuando finalmente no sean aceptados por el cliente. Es posible crear plantillas de proyecto, de forma que cuando se crea un nuevo proyecto se copien todas las tareas de la plantilla anteriormente creada.
Vulcano FIT-350503-2007-7 Versin 1.0 12/02/2008 Pgina 26 de 77

Es posible crear tareas que agrupan a tareas hijas y cuyos valores (esfuerzos, fechas) se calculan automticamente ("tareas dinmicas") Se pueden calcular las fechas de inicio y fin automticamente mediante dependencias (fecha inicio) y esfuerzo estimado (fecha fin) Se pueden desplazar todas las tareas dependientes de una tarea a la vez. Al imputar (historiales/log) se puede marcar la tarea como "con problema". En las vistas de proyectos aparecen marcados, por lo que se simplifica la monitorizacin y el control del proyecto. Se dispone del esfuerzo estimado y de la suma de imputaciones (esfuerzo real). Horas Trabajadas - Horas Programadas = Horas de proyecto El sistema de ticketing puede utilizarse como gestin de issues (incidencias), aunque en la versin actual es independiente de los proyectos (est prevista su integracin en futuras versiones) Es posible imputar el avance de una tarea de forma independiente al esfuerzo Existen filtros (por usuario y empresa) para visualizar las diversas tareas y proyectos registrados Es posible visualizar las tareas a realizar y los eventos (citas) en un calendario compartido para favorecer el trabajo colaborativo Existe el filtro por empresa para visualizar las diversas tareas y eventos registrados en el calendario Es posible visualizar la lista de tareas a realizar y los eventos registrados para el da actual Existe una gran cantidad de informes para extraer la informacin registrada, como por ejemplo:

Las horas asignadas (por usuario o proyecto) para un periodo de tiempo. Las horas asignadas y las realmente incurridas, para poder extraer porcentajes de trabajos realizados y porcentajes de eficiencia en base a tareas completadas. Estado de un proyecto: tareas completas, tareas que sufren desviaciones, etc. Estadsticas sobre proyectos: el porcentaje de avance de las diversas tareas, las horas incurridas por los usuarios, etc.

En la versin 2.04 se integra una gestin de permisos para los diversos usuarios registrados. Para la versin 3 se incluirn permisos a nivel de departamento (grupos de usuarios)

Vulcano FIT-350503-2007-7 Versin 1.0 12/02/2008 Pgina 27 de 77

Existe la posibilidad de visualizar las tareas a realizar mediante diagramas Gantt (a nivel de proyecto o de las tareas asignadas a un usuario) Los desplazamientos de tareas con dependencias no siempre funcionan bien (especialmente cuando se realiza sobre tareas dinmicas). Estimamos que sera deseable guardar una serie de informacin adicional a los proyectos, como por ejemplo: probabilidad de concesin, lista de recursos materiales y humanos que seran necesarios, fecha real de inicio, fecha real de fin. El valor fecha real del resumen no coincide con el del detalle "fecha de finalizacin real" No es posible anidar proyectos Creemos que sera deseable guardar una serie de informacin adicional a los tareas, como por ejemplo: fecha prevista de inicio, fecha real de inicio, fecha real de finalizacin, atributos para caracterizar la estimacin realizada, valores de incurridos estimados y reales, recursos materiales dependencias diferentes a FC (Fin a Comienzo) y retrasos No se incluye ningn tipo de soporte para llevar a cabo la gestin de los riesgos del proyecto Un hito es considerado como una tarea, por lo que tiene su propio avance e incurrido de horas. La edicin del calendario en lo relativo a las fechas de las tareas y a las dependencias entre las mismas no es amigable para el usuario No es posible realizar modificaciones sobre la visualizacin del diagrama Gantt La forma en la que se lleva a cabo la imputacin de las actividades no es amigable para el usuario, ya que se debe realizar a nivel de tarea, sin posibilidad de tener una vista semanal en la que cuadrar la actividad diaria El reparto del esfuerzo por el usuario es lineal en el periodo del tiempo y, en ocasiones, sera deseable poder decir que una persona trabaja 20 horas en una tarea durante una semana, pero que el lunes y martes debe estar 8h y las otras 4 restantes a repartir de forma lineal El informe de horas asignadas por usuario realiza un clculo simplificado. Divide el esfuerzo de una tarea por los das que abarca y reparte ese esfuerzo de forma uniforme (independientemente de que la tarea empiece a ultima hora). Aunque se planifiquen tareas seguidas no muestra una carga uniforme. La divisin entre semanas suma mal el esfuerzo El botn de calcular "fecha fin" no siempre funciona correctamente Los eventos no asocian esfuerzos en el informe de horas asignadas
Vulcano FIT-350503-2007-7 Versin 1.0 12/02/2008 Pgina 28 de 77

La herramienta presenta los siguientes inconvenientes:

No se mantiene coherente la relacin porcentaje de asignacin, esfuerzo y duracin de la tarea Las diversas actualizaciones de versiones no garantizan la compatibilidad con las anteriores, por lo que es posible que no se liberen mecanismos para actualizar la versin de manera transparente a los datos que ya estuvieran registrados

Valoracin general Se trata de una herramienta que facilita la planificacin y gestin de los proyectos en los que se trabaja de forma colaborativa, ya que su tecnologa web hace posible que los miembros del equipo trabajen de forma distribuida, compartiendo la informacin sobre el servidor central. Permite mantener un control de la actividad de varios departamentos de una organizacin mediante la descomposicin de tareas de cada uno de los proyectos, si bien la tarea de replanificacin y movimiento de fechas y dependencias entre proyectos es tediosa comparada con otras herramientas (como Ms. Project o ganttProject), por lo que el mantenimiento de los planes de proyecto es costoso, siendo ste su principal inconveniente.

Ilustracin 4: Diagrama de Gantt generado con DotProject

Vulcano FIT-350503-2007-7 Versin 1.0 12/02/2008 Pgina 29 de 77

2.3.2 GanttProject GanttProject es una herramienta de software libre que permite realizar la planificacin de proyectos [GnpURL]. Se trata de un editor grfico de diagramas Gantt escrito totalmente en Java que permite dividir un proyecto en tareas y subtareas, asignar recursos y mostrar las dependencias entre tareas.

Caractersticas y funcionalidad bsica Las funcionalidades ofrecidas por la herramienta son:


GanttProject permite importar y exportar archivos de MS Project. Exporta el proyecto a pginas html GanttProject permite publicar un informe en formato PDF. Posibilita la carga de recursos de otro proyecto al actual. GanttProject permite trabajar con proyectos almacenados en servidores web. Permite personalizar las funciones de los recursos en el dilogo de configuracin Permite importar una lista de tareas desde un fichero de texto utilizando el men Importar, cada fila se aade al proyecto como una tarea nueva. Permite enviar correos electrnicos a los recursos GanttProject le permite resaltar el camino crtico de su proyecto. Si se modifican las tareas el diagrama de Gantt se modifica automticamente y viceversa.

Existen una serie de mdulos o extras para ampliar las funcionalidades del Programa:

Colsin Gantt: versin de Ganttproject que se ejecuta como un applet de java Ganttjector: aplicacin que permite gestionar varios proyectos a la vez Gantt2Html in Perl: script en perl que transforma un fichero de GanttProject en una pgina html. planner2gantt: archivo Xslt que transforma ficheros de Planner a ficheros de GanttProject. Ganttweb: representa en una web los archivos xml generados por Ganttproject. gan2mm y mm2gan: xsl que transforman de GanttProject a Freemind y viceversa. gantt2svg: xsl que transforma archivos de GanttProject a imgenes SVG. gantt2fig: herramienta que exporta un proyecto a una imagen xfig.
Vulcano FIT-350503-2007-7 Versin 1.0 12/02/2008 Pgina 30 de 77

Integrabilidad Web o con el IDE Eclipse mediante plugins El programa permite abrir y guardar el archivo creado en un servidor web. El programa puede ejecutarse remotamente con un navegador gracias a la tecnologa WebStart de Java. Existe una extensin que integra el programa en un applet para ejecutarlo desde un navegador web. Adems existe un plugin para eclipse por lo que se puede afirmar que el programa tiene una muy buena integrabilidad.

Ventajas e inconvenientes La herramienta presenta las siguientes ventajas:

Interfaz estndar de Windows con un nmero razonable de botones y opciones. Fcil de usar Disponible en todas las plataformas Exporta los diagramas a varios formatos que pueden ser ledos por otros programas No es muy robusto. Con ms de 300 tareas (sin enlaces) ya tiene problemas No aparece explcitamente el concepto de esfuerzo. Se puede asignar un % de cada recurso a cada tarea de manera independiente de la duracin (a diferencia del MSProject) No permite la edicin de mltiples proyectos a la vez. No esta implementada la divisin de tareas (split de MS) El esfuerzo de una tarea no se puede poner en horas. No permite copiar al portapapeles. La importacin de ficheros MSProject tiene restricciones

La herramienta presenta los siguientes inconvenientes:

Valoracin general Es una herramienta sencilla para realizar diagramas de Gantt y asignar recursos a tareas. No permite que los miembros de un proyecto actualicen a la vez sus avances por lo que no puede ser utilizada de manera colaborativa para monitorizar la evolucin del citado proyecto.

Vulcano FIT-350503-2007-7 Versin 1.0 12/02/2008 Pgina 31 de 77

Ilustracin 5: Diagrama de recursos generado con GanttProject

2.3.3 XPlanner XPlanner es un herramienta de software libre para planificacin y seguimiento de proyectos para equipos que siguen la metodologa XP (eXtreme Programming). Ofrece una interfaz web para la definicin de historias de usuario y la planificacin de iteraciones.

Caractersticas y funcionalidad bsica Las funcionalidades ofrecidas por la herramienta son:


Definicin y seguimiento de iteraciones Tarjetas virtuales para la definicin de historias de usuario y tareas Soporte para grabar y registrar tareas, historias de usuario e iteraciones Seguimiento de esfuerzo consumido y generacin de informes por individuo o equipo Informes y grficas de velocidades de iteracin, distribucin de tipos de tareas, horas estimadas an no consumidas (scrum burn-down), Posibilidad de adjuntar documentos a tareas e historias de usuario Vista para medir la precisin de las estimaciones Generacin de informes multiformato (MS Excel, MSProject, PDF, XML) Facilidad de integracin de Wikis externos
Vulcano FIT-350503-2007-7 Versin 1.0 12/02/2008 Pgina 32 de 77

Autenticacin integrada y extensible Interfaces SOAP para integrar la funcionalidad de XPlanner o extenderla Interfaz internacionalizada y localizada en espaol, ingls, francs, alemn, italiano, portugus de Brasil, dans, ruso, chino y japons.

Integrabilidad Web o con el IDE Eclipse mediante plugins XPlanner es una herramienta web, y ofrece una API SOAP para facilitar su integracin. XPlanner se integra con los principales IDES del mercado, como Netbeans, Eclipse o Idea IntelliJ.

Ventajas e inconvenientes La herramienta presenta las siguientes ventajas:

XPlanner es sencillo de usar y ofrece una herramienta potente para un seguimiento de las estimaciones y planificaciones seguidas en segn una metodologa XP. El seguimiento pormenorizado de las estimaciones permite la mejora continua de las mismas. La interfaz web facilita el trabajo en grupo distribuido geogrficamente. El uso de tarjetas virtuales tiene desventajas a la hora de hacer una modificacin o seguimiento de las tareas con el cliente y el equipo. No obstante el mantenimiento digital de las tarjetas es una herramienta valiosa para la mejora continua y para evitar prdidas de informacin.

La herramienta presenta los siguientes inconvenientes:

Valoracin general XPlanner es una herramienta que facilita el seguimiento y gestin de proyectos que siguen metodologas XP, de fcil uso e instalacin.

Vulcano FIT-350503-2007-7 Versin 1.0 12/02/2008 Pgina 33 de 77

Ilustracin 6: Grficas generadas con Xplanner

2.3.4 Trac Trac es un herramienta open source de gestin de proyectos y seguimiento de tareas basada en web [TrcURL]. Trac permite hiper-enlazar informacin entre la base de datos de las tareas (tickets), las pginas wiki de contenido y el control de revisiones. Tambin sirve
Vulcano FIT-350503-2007-7 Versin 1.0 12/02/2008 Pgina 34 de 77

como una sofisticada interfaz para el sistema de control de versiones Subversion.

Caractersticas y funcionalidad bsica Las funcionalidades ofrecidas por la herramienta son:

Creacin de planes de proyecto mediante la descomposicin en tareas e hitos. Desglosado de hitos en componentes a los que sern asignadas las tareas. Pginas wiki. Vista del histrico de eventos y tareas de un proyecto con posibilidad de filtrado por:

Hitos Cambios en el ticket Repositorio Edicin en la wiki

Visualizacin de informes de estado sobre las tareas. Vista del repositorio y muestra de los cambios realizados (diff) entre ficheros de cdigo fuente. Autenticacin contra base de datos, servicio de directorio LDAP, OpenID, basado en CAS, etc.

Trac dispone de una infinidad de plugins que aumenta cada da gracias a las contribuciones de los usuarios [TrhURL]:

Diagramas de Gannt Soporte para sistema de control de versiones Bazaar, Monotone, Mercurial, etc. ChangeLog para el repositorio. Mover datos entre distintos tracs. Soporte para el sistema de documentacin Doxygen. Visor de documentos Excel. Foros de discusin. Sistema de estadsticas FireStats. Soporte para incluir las salidas de Maven2. Editor de las opciones de Trac (trac.ini). Exportar pginas wiki a PDF. Publicar y revertir todos los ficheros asociados a un ticket. Traduccin de los ficheros REST de un directorio Subversion a HTML.
Vulcano FIT-350503-2007-7 Versin 1.0 12/02/2008 Pgina 35 de 77

Bsqueda en los respositorios Vista grfica del navegador de control de versiones. Diagramas Burndown (usados en Scrum y otras metodologas giles). Blogs. Sistema de tags. Calendario para el histrico (timeline) en DHTML. Editor TinyMCE para las wikis. Soporte multiproyecto. Administracin web del proyecto y de la herramienta. Integracin con BugZilla. Asignacin de permisos basada en los grupos de Unix. Soporte XML-RPC. Gestin de capturas de pantalla.

Integrabilidad Web o con el IDE Eclipse mediante plugins La integrabilidad Web es total, puesto que se trata de una interfaz Web en s. No obstante tiene algunos scripts para facilitar tareas no contempladas en principio, como creacin de listas o de repositorios subversion; scripts que fcilmente son adaptables a una pgina de administracin web-based. Adems en la pgina de plugins del producto existe un plugin para integrar Trac en el entorno Eclipse.

Ventajas e inconvenientes La herramienta presenta las siguientes ventajas:

Tanto la decisin del lenguaje de programacin python, como su arquitectura basada en componentes nos parece muy acertada, dado que simplifica la creacin de plugins. Cada proyecto tiene su propia base de datos, lo que facilitara realizar copias de un proyecto a cualquier parte. El desarrollo mediante plugins puede ser la mejor forma de extender la funcionalidad, para realizar nuestro proyecto sin alterar el proceso de desarrollo del TRAC. El ritmo de desarrollo es impresionante. Gran calidad en cuanto a limpieza de cdigo y nivel de reusabilidad, separacin entre capas, escalabilidad y consistencia. El sistema de plantillas Genshi es bastante legible y separa la lgica de la presentacin (MVC). Se est convirtiendo en un estndar de facto en la gestin de proyectos libres [TruURL].
Vulcano FIT-350503-2007-7 Versin 1.0 12/02/2008 Pgina 36 de 77

Estn previstas las siguientes mejoras:


Internacionalizacin. Integracin del ORM Alchemy, el mejor ORM escrito en python.

La calidad del cdigo fuente es excelente, resultando muy cmodo su mantenimiento y elevando as la productividad conseguida. Su instalacin es sencilla y est bien documentada. Permite la insercin de nuevos informes en cada proyecto (mediante su interfaz), seleccionando los criterios de concordancia. Mediante un plugin, se puede visualizar el diagrama de Gantt de las tareas asignadas a un proyecto. Est 100% basado en estilos CSS, con lo que la adaptacin del look&feel se realizara sin ninguna complicacin. La herramienta no fue pensada para la gestin de proyectos en s, sino desde el punto de vista del desarrollo software (ticketing, svn, etc.). Cada proyecto es independiente y no se comparte la base de datos entre ellos, aunque existe un plugin multiproyecto que palia este defecto. El workflow del sistema de tareas no es extensible desde la interfaz web. Actualmente hay desarrollos para paliar este defecto. El sistema de permisos no es actualmente muy flexible, aunque se est trabajando en ello. No hay integrados motores de bsqueda avanzada, aunque hay plugins que suplen buena parte de esta carencia. No permite generacin de snapshots de un proyecto, aunque SVN s que permite esta posibilidad.

Los principales inconvenientes que se han detectado son los siguientes:

Valoracin general Trac es una herramienta que permitira una gran productividad de desarrollo y mantenibilidad de cdigo. En el mbito de proyectos de software es la herramienta que actualmente est ms implantada, con lo que su grado de madurez es excelente. Sin embargo carece de algunas funcionalidades propias de una forja de proyectos.

Vulcano FIT-350503-2007-7 Versin 1.0 12/02/2008 Pgina 37 de 77

Ilustracin 7: Prioridades de las tareas en Trac

2.3.5 GanttPV GanttPV es una herramienta de cdigo abierto para la gestin de proyectos en Windows, MacOS y Linux. Permite la gestin de varios proyectos simultneos, opciones de bsqueda, seguridad, trabajo en grupo, etc. [GntURL].

Caractersticas y funcionalidad bsica Las funcionalidades ofrecidas por la herramienta son:

Gestin de tareas, permitiendo definir duraciones, dependencias, fecha de inicio y vacaciones. Clculo de la fecha de finalizacin a partir de la informacin proporcionada y generacin de diagramas de Gantt Permite identificar recursos y asignarlos a tareas en mltiples proyectos. Asignacin de prioridades a las tareas. Monitorizacin de proyectos midiendo la productividad del equipo y los costes. Clculo del camino crtico Generacin de informes

Integrabilidad Web o con el IDE Eclipse mediante plugins GanttPV permite exportar los diagramas de Gantt a pginas web y la versin servidor permite introducir algunos valores a travs del navegador. Por otra parte, todava no existe ningn plugin para integrar esta herramienta en el entorno Eclipse.
Vulcano FIT-350503-2007-7 Versin 1.0 12/02/2008 Pgina 38 de 77

Ventajas e inconvenientes Las ventajas ofrecidas por esta herramienta son las siguientes:

Fcil de instalar ya que no necesita instalar libreras adicionales Permite introducir scripts ya que proporciona el lenguaje Python Independiente de plataforma debido a que est escrito en lenguaje Java No se puede gestionar a traves del web No ofrece soporte a empresas La interfaz no es muy intuitiva ni fcil de utilizar No dispone de wiki

Las principales desventajas encontradas son las siguientes:


Valoracin general GanttPV es otro programa de gestin de proyectos con funcionalidades muy tiles como la gestin de tareas y la generacin de diagramas de Gantt. Cabe destacar la posibilidad de aadir funcionalidad fcilmente aadiendo scripts ya que se trata de una herramienta de cdigo abierto. Es una buena opcin para proyectos de no mucha envergadura que no impliquen distribucin geogrfica ya que la integrabilidad web es escasa.

Ilustracin 8: Diagrama de Gantt generado con GanttPV

Vulcano FIT-350503-2007-7 Versin 1.0 12/02/2008 Pgina 39 de 77

2.3.6 Openproj Openproj es un herramienta de cdigo abierto para la gestin de proyectos multiplataforma ya que est desarrollado en Java, funciona bajo Windows, Linux o Mac OS X. Permite exportar e importar documentos con formato .mpp (MS Project) y permite visualizar grficas de Gantt o diagramas PERT. [OpenpURL]

Caractersticas y funcionalidad bsica Las funcionalidades ofrecidas por la herramienta son:

Permite importar proyectos realizados con la herramienta Microsoft project. Gestin de tareas, permitiendo definir duraciones, dependencias, fecha de inicio y vacaciones. Clculo de la fecha de finalizacin a partir de la informacin proporcionada y generacin de diagramas de Gantt Permite identificar recursos y asignarlos a tareas en mltiples proyectos. Asignacin de prioridades a las tareas. Monitorizacin de proyectos midiendo la productividad del equipo y los costes. Existe una versin de pago denominada Project-ON-Demand, con mayor funcionalidad que permite manejar los proyectos a travs de la web. Gestin de multiproyectos en la versin de pago. Clculo del camino crtico mediante diagramas de PERT. Generacin de informes de diferentes tipos (Gant, PERT, tareas, recursos). Generacin de diagramas WBS and RBS.

Integrabilidad Web o con el IDE Eclipse mediante plugins Openproj no permite exportar los diagramas de Gantt o de PERT a pginas web. Por otra parte, todava no existe ningn plugin para integrar esta herramienta en el entorno Eclipse.

Ventajas e inconvenientes Las ventajas ofrecidas por esta herramienta son las siguientes:

Fcil de instalar ya que no necesita instalar libreras adicionales. Existe paquetes de instalacin .deb, rpm y de windows. Permite importar y exportar ficheros Microsoft Project (*.mpp), con lo que las migraciones y la interoperabilidad es muy sencilla. Independiente de plataforma debido a que est escrito en lenguaje Java. Interfaz y funcionalidad muy similar a Microsoft project.
Vulcano FIT-350503-2007-7 Versin 1.0 12/02/2008 Pgina 40 de 77

Por defecto, los archivos se guardarn con la extensin .pod pero tambin pe puede hacer en .xml para que luego se pueda abrir desde MS Project. Existe la posibilidad de acceder a la ayuda via on-line nicamente con la versin de pago se puede gestionar a travs de la web los proyectos. No dispone de wiki. No permite importar los diagramas como imgenes. No permite integrar en la web los resultados de manera directa.

Las principales desventajas encontradas son las siguientes:

Valoracin general Openproj es otro programa de gestin de proyectos con funcionalidades muy tiles como la gestin de tareas y recursos, y la generacin de diagramas de Gantt, de PERT. Cabe destacar la posibilidad de aadir funcionalidad fcilmente aadiendo scripts ya que se trata de una herramienta de cdigo abierto. Es una buena opcin para proyectos de no mucha envergadura que no impliquen distribucin geogrfica ya que la integrabilidad web es escasa.

Ilustracin 9: Diagrama de Gant generado con OpenProj

Vulcano FIT-350503-2007-7 Versin 1.0 12/02/2008 Pgina 41 de 77

2.3.7 Project Open Project Open integra diferentes soluciones ERP para la gestin empresarial orientada a proyectos. Estas soluciones se dividen en diferentes reas como: CRM, ventas, planificacin (y seguimiento) de proyectos, administracin tiempos y hasta control de ingresos y gastos. Es una completa herramienta de gestin de proyectos, totalmente Web. [ProjOpenURL] Cubre completamente el ciclo de vida de un proyecto, desde las ventas, gestin de personal, ejecucin (hojas de tiempos, incidentes, discusiones, control), facturas y pagos. La arquitectura esta diseada para aplicaciones criticas con alta escalabilidad y sofisticados sistemas de permisos basados en roles. Caractersticas y funcionalidad bsica Las funcionalidades ofrecidas por la herramienta son:

Project Management Gestin de Proyectos / Portafolio y colaboracin va Internet Gestin de Finanzas Seguimiento y evaluacin de los resultados de la compaa Customer Management Incluye funcionalidades de un "CRM-Light" Supplier Management Gestin de Proveedores (freelancers, etc.) Human Resources Management Staff de Empleados y Skills Knowledge Management Soporta procesos de conocimiento Data-Warehouse y Business Intelligence Analiza y descubre los patrones de comportamiento de sus negocios Contenido y Comunidad Dispone de mdulos opcionales orientados a crear comunidades On Line y Transacciones en Internet sobre sus negocios

Integraciones e Interfaces con otros Sistemas Dispone de mdulos que permiten conectar Project Open con otros sistemas

Vulcano FIT-350503-2007-7 Versin 1.0 12/02/2008 Pgina 42 de 77

Integrabilidad Web o con el IDE Eclipse mediante plugins El programa permite abrir y guardar el archivo creado en un servidor web. El programa puede ejecutarse remotamente con un navegador. Por otra parte, todava no existe ningn plugin para integrar esta herramienta en el entorno Eclipse.

Ventajas e inconvenientes La herramienta presenta las siguientes ventajas:

Interfaz web con multitud de funcionalidades y opciones, orientada a la gestin de tareas y de costes de los proyectos. Fcil de usar Permite la gestin concurrente de los proyectos. Definicin de roles de usuario que permiten controlar el acceso a ciertas funcionalidades segn el perfil d los usuarios. Rpida implementacin y adaptacin a los cambios gracias a una interfaz muy intuitiva Estructura modular que permite instalar y usar nicamente las funciones necesarias para la empresa Seguridad a todos los niveles:

A nivel de aplicacin, a fin de evitar usos no autorizados A nivel de usuario, mediante la implantacin de autorizaciones para grupos e individuales segn las funciones Adems se puede completar la proteccin con el mdulo one time password

Basado sobre el uso a travs de la web, no requiere de ninguna instalacin en las estaciones de trabajo: los empleados pueden conectarse al sistema desde el exterior Multiplataforma: funciona con Windows, Linux y Mac OS X Fcilmente personalizable con DynField, sin tener que recurrir a la programacin No dispone de wiki. Instalacin poco automatizada y costosa de llevar a cabo. La administracin de la plataforma es un poco compleja y esta orientada a usuarios con cierta formacin en el campo de las IT.

La herramienta presenta los siguientes inconvenientes:


Vulcano FIT-350503-2007-7 Versin 1.0 12/02/2008 Pgina 43 de 77

Valoracin general Es una herramienta sencilla pero muy completa para gestionar proyectos orientados a empresas de servicios mediante la utilizacin de un sistema CRM ligero mediante el cual se puede realizar diagramas de Gantt, asignar recursos a tareas, gestionar los gastos, gestionar el personal de manera colaborativa. La interfaz es bastante intuitiva y permite gestionar los proyectos haciendo uso de un navegador web.

Ilustracin 10: Presentacin de un proyecto en Project Open

2.4

Herramientas de gestin de la configuracin

A lo largo del ciclo de vida del proceso de software, los productos que lo componen suelen cambiar, evolucionan, ya sea debido al avance que estas tecnologas experimentan hoy en da o bien debido a la propia evolucin de los propios requisitos software, lo cual se traduce en modificaciones en el software. Estas modificaciones implican a su vez cambios en la documentacin asociada. La gestin de la configuracin del software es la encargada de controlar la evolucin de todos estos componentes, tanto software, como documentacin. El proceso de gestin de configuracin implica tareas como identificar y definir los elementos en el sistema, controlar el cambio de estos elementos a lo largo del ciclo de vida del producto, registrar y reportar el estado de los elementos y las solicitudes de cambio y verificar que los elementos estn completos y sean los correctos. Este es un proceso complejo que cuenta con la existencia de aplicaciones que facilitan la realizacin de sus actividades. Son las conocidas como Herramientas de Gestin de Configuracin del Software.
Vulcano FIT-350503-2007-7 Versin 1.0 12/02/2008 Pgina 44 de 77

2.4.1 CVS CVS (Concurrent Versions System) es un sistema open source de control de versiones que permite guardar y mantener accesibles las diferentes versiones que se van generando de un mismo fichero (generalmente se emplea para ficheros de cdigo) [CvsURL].

Caractersticas y funcionalidad bsica La ventaja fundamental de CVS no es el control de versiones, sino el control de concurrencia que proporciona. En los sistemas de control de versiones tradicionales, un desarrollador obtiene una copia del fichero, lo modifica y despus agrega la nueva versin al sistema; durante el tiempo que tenga el fichero ningn otro desarrollador podr acceder al mismo. A diferencia de estos sistemas, CVS permite que varios desarrolladores trabajen simultneamente sobre un mismo fichero, proporcionando adems la resolucin automtica de los conflictos que se puedan producir al entregar las modificaciones. CVS es muy til en los proyectos open-source desarrollados a travs de Internet, ya que permite a cada desarrollador trabajar de forma independiente y sin preocuparse de las modificaciones que otros desarrolladores puedan estar haciendo, ya que CVS se ocupar de ese trabajo. CVS utiliza una arquitectura cliente servidor. Un servidor guarda las versiones actuales del proyecto y su historial. Los clientes se conectan al servidor para sacar una copia completa del proyecto, de esta forma los desarrolladores pueden trabajar con esa copia y despus introducir sus cambios con comandos GNU. Habitualmente cliente y servidor se comunican a travs de Internet, aunque tambin ser permite que el cliente y el servidor estn en la misma mquina. El servidor CVS normalmente se instala en un sistema operativo similar a Unix, mientras que los clientes pueden funcionar en cualquier sistema operativo para el que se distribuya el mismo. CVS permite que varios clientes obtengan copias del proyecto al mismo tiempo. Cuando intentan introducir las modificaciones, el servidor intenta acoplarlas. Si no es posible, por ejemplo porque dos clientes estn intentando cambiar la misma lnea de un mismo archivo, entonces el servidor deniega el segundo ingreso e informa al cliente sobre el conflicto, que el usuario deber resolver manualmente. Si la introduccin de la modificacin tiene xito, entonces los nmeros de versin de todos los archivos implicados se incrementan automticamente, y el servidor CVS escribe una lnea de descripcin suministrada por el usuario, la fecha y el nombre del autor. Otras funcionalidades que ofrece CVS a los clientes son: comparar diferentes versiones de archivos, solicitar una historia completa de los cambios, ver el estado del proyecto en una fecha determinada o en un nmero de revisin determinado. Muchos proyectos open source permiten el acceso de lectura annimo, este tipo de acceso permite a los clientes
Vulcano FIT-350503-2007-7 Versin 1.0 12/02/2008 Pgina 45 de 77

sacar y comparar versiones sin necesidad de introducir una contrasea, la cual slo ser necesaria si se quieren introducir modificaciones en los archivos. Los clientes tambin disponen de una orden de actualizacin que les permite tener sus copias al da con la ltima versin que se encuentra en el servidor, evitndose as el tener que repetir las descargas del proyecto completo. CVS tambin puede mantener distintas ramas de un proyecto. Por ejemplo, una versin difundida de un proyecto puede formar una rama y ser utilizada para corregir errores. Todo esto se puede realizar siempre que la versin que se encuentra actualmente en desarrollo y posee cambios mayores con nuevas caractersticas se encuentre en otra lnea formando otra rama separada. Existen una serie de clientes o frontales grficos de CVS para distintos sistemas operativos:

Windows:

WinCVS TortoiseCVS, plug-in para el Microsoft Explorer gCVS, para Gnome pharmacy, para Gnome TkCVS cervisia, para KDE MacCVS jCVS, basado en Java smartCVS, basado en Java

Linux:

Mac:

Multiplataforma:

Integrabilidad Web o con el IDE Eclipse mediante plugins CVS tiene el inconveniente de que no permite la navegacin web por el repositorio de archivos. Sin embargo, forjas como GForge s que incluyen un mdulo de exploracin del repositorio CVS. Por otro lado, s se dispone de un plugin para Eclipse que permite el uso de la herramienta desde dentro de dicho entorno. Este plugin se distribuye con el Standard Development Kit de Eclipse.

Ventajas e inconvenientes Las principales ventajas de esta herramienta son:

Registra todos los cambios efectuados sobre los archivos de un proyecto.


Vulcano FIT-350503-2007-7 Versin 1.0 12/02/2008 Pgina 46 de 77

Permite recuperar versiones anteriores del cdigo de un proyecto. Permite conocer qu cambios se han efectuado sobre un archivo determinado, quin los ha realizado y cundo. Gestiona los conflictos que pueden producirse en entornos en los que los desarrolladores se encuentran distribuidos geogrficamente. Viene integrada en el Standard Development Kit de Eclipse. No se gestionan los archivos binarios No se permite renombrar archivos (habra que copiar el actual y eliminar el anterior, con la consiguiente prdida de informacin) Para comprobar los cambios hechos en tu copia de trabajo, o ver las diferencias con la versin del repositorio es imprescindible tener conexin con el mismo No permite navegacin web por el repositorio

Los principales inconvenientes de esta herramienta son:


Valoracin general CVS es una herramienta muy usada por comunidades de desarrollo de software libre debido a que permite que distintos desarrolladores ubicados en zonas geogrficas distantes puedan trabajar sobre un mismo fichero, gestionando de forma eficiente las modificaciones realizadas en el mismo. A pesar de ello CVS tiene algunas deficiencias, algunas de las cuales son solucionadas por Subversion, es por esto por lo que muchos proyectos estn migrando su sistema de control de versiones de CVS a SVN.

2.4.2 SVN El nombre completo de la herramienta es Subversion. Se trata de una herramienta para controlar las versiones de los elementos que forman parte de un producto, es decir, desde el cdigo fuente hasta los documentos pasando por ejecutables, imgenes, etc. en definitiva cualquier cosa que sea susceptible de tener mltiples versiones [SubURL]. En lineas generales, la herramienta permite:

Mantener el histrico de archivos y directorios a travs de copias y renombrados. Creacin de ramas y etiquetas de forma eficiente Gestin eficiente de archivos binarios

Caractersticas y funcionalidad bsica Las funcionalidades ofrecidas por la herramienta son:

Las operaciones de confirmacin de cambios son verdaderamente atmicas. La interrupcin de una confirmacin no causa inconsistencia ni corrupcin en el repositorio.
Vulcano FIT-350503-2007-7 Versin 1.0 12/02/2008 Pgina 47 de 77

Mantiene el histrico de todos los cambios que se producen en ficheros y directorios (renombrar, copiar, mover y eliminar) Permite mover o copiar directorios completos manteniendo el historial de versiones. Puede usar Apache como servidor con el protocolo WebDav/DeltaV. Versiona los enlaces simblicos Proporciona soporte nativo para ficheros binarios con almacenamiento eficiente de las diferencias. Ofrece un servidor independiente que puede funcionar como un servicio de inetd o como demonio Operaciones eficientes de creacin de ramas y etiquetas. Las diferencias se envan tanto del cliente al servidor como del servidor al cliente Permite configurar accesos a directorios o a ficheros a grupos de usuarios o a usuarios individuales. Permite el uso de base de datos (BerkeleyDB) o ficheros para almacenar la informacin. Los salida esta diseada para que sea fcilmente comprensible por personas o que se pueda leer automticamente por otros programas. Los mensajes de error, de informacin y de ayuda se muestran en el idioma local. Soporta tipos MIME.

Existe una gran cantidad de mdulos, utilidades y aplicaciones que se pueden integrar con la herramienta:

Clientes de escritorio

eSvn, cliente basado en Qt-based. Gsvn, su desarrollo ha sido abandonado por los autores originales, debido a falta de tiempo; est totalmente desarrollado en python, usando GTK+. Hay un nuevo proyecto desarrollado en C# con Mono llamado tambin gsvn. JSVN, un cliente Java Swing. Kdesvn, cliente para KDE. psvn.el, interfaz para Emacs. PushOk SVN SCC PlugIn, plugin para Visual Studio. QSvn, cliente basado en Qt. RapidSVN, cliente que se puede usar en Linux, Win32 y Mac OS X. SCPlugin, plugin para Finder de Mac OS X.
Vulcano FIT-350503-2007-7 Versin 1.0 12/02/2008 Pgina 48 de 77

SmartSVN, cliente java que puede ser usado en cualquier plataforma. Subcommander, cliente basado en Qt que se puede usar en Linux, Win32 y Mac OS X svnX, cliente para Mac OS X. TortoiseSVN, cliente que se integra en el Explorer de Windows. ZigVersion, cliente comercial para Mac OS X. SVN::Web Insurrection WebSVN WebClient for SVN Sventon SubEclipse Subversive EasyEclipse AnkhSVN es un aadido para Visual Studio .NET VisualSVN integracin con Visual Studio 2003 y 2005 Xcode es un IDE para Mac OS X DelphiSVN Subversion es la integracin con Borland Delphi Zend Studio JDeveloper Eric Python IDE KDevelop Emacs NetBeans CIA, programa que notifica a los usuarios la actividad del repositorio SVN Importer, herramientas para importar el contenido de otros sistemas de control de versiones a Subversion Svnmerge, herramienta que ayuda en la mezcla de ramas/ficheros SVNManager, herramienta web para administrar un servidor SVN
Vulcano FIT-350503-2007-7 Versin 1.0 12/02/2008 Pgina 49 de 77

Clientes web

Integracin en Eclipse

Integracin con otros IDEs


Otro software relacionado


SVN2Log, programa que genera informes de cambios de un repositorio Subversion. Svnwiki, integracion de Subversion con Wiki

Integrabilidad Web o con el IDE Eclipse mediante plugins Se puede acceder al repositorio Subversion va web gracias a un mdulo que se instala en Apache. Adems existen otros scripts/clientes nombrados en el apartado anterior para acceder al repositorio SVN con un navegador. Tambin en el apartado anterior se nombran los plugins para acceder al repositorio desde Eclipse lo que convierte a esta herramienta en una solucin muy integrable.

Ventajas e inconvenientes La herramienta presenta las siguientes ventajas:


Las operaciones de confirmacin son atmicas. El tiempo en ejecutar una operacin es proporcional al tamao de cambio y no al tamao de los datos. Permite renombrar y mover ficheros y directorios. El interfaz web est integrado en el servidor. La administracin del servidor es sencilla. Permite crear ramas de forma sencilla y eficiente. Se pueden migrar los repositorios que usan CVS a SVN manteniendo el histrico de cambios. El uso de WebDav permite acceder a servidor aunque se est detrs de un firewall. Existen interfaces de usuario en todas las plataformas y se integra con varios IDEs Permite la ejecucin de scripts confirmacin. antes y despus de operaciones de

Permite espacios en los nombres de fichero. Est reemplazando a CVS en el desarrollo de proyectos Open Source No hay diferencia entre ramas y etiquetas. No proporciona scripts para ejecutarlos antes y despus de las operaciones de confirmacin. Necesita software adicional para proporcionar repositorios privados y distribuidos. La integracin con Bugzilla no es simple. Hay que introducir unas cadenas en los comentarios para informar qu error corrigen los
Vulcano FIT-350503-2007-7 Versin 1.0 12/02/2008 Pgina 50 de 77

Los inconvenientes que presenta son los siguientes:


cambios y hay que instalar programas adicionales en el servidor que lean esas cadenas.

Valoracin general Se trata de una herramienta gratuita que facilita el control de versiones de cualquier fichero que se genere en el desarrollo de un proyecto. Esta herramienta mejora a CVS ya que permite el renombrado y el movimiento de archivos. El uso de una arquitectura cliente/servidor y de los mltiples mtodos de acceso hacen posible que los miembros del equipo trabajen de forma distribuida, compartiendo la informacin sobre el servidor central, adems existe una gran cantidad de clientes para acceder al servidor desde cualquier plataforma y se integra en la mayora de los IDEs. El inconveniente ms importante que encontramos es la dificultad para integrarlo con bugzilla y as mantener la traza de errores y parche, aunque existen proyectos que estn intentando mejorar esta integracin.

2.4.3 Bazaar Bazaar es una nueva herramienta para el control distribuido de versiones adaptada a los flujos de trabajo. Est disponible bajo licencia GPL (versin 2 en adelante) y funciona en cualquier sistema operativo. Es especialmente indicada para el desarrollo de proyectos de cdigo abierto [BazURL].

Caractersticas y funcionalidad bsica Las funcionalidades ofrecidas por la herramienta son:

Bazaar maneja conceptos de:

Revisin Una instantnea de los archivos con los que se est trabajando rbol de trabajo El directorio que contiene los subdirectorios y archivos cuyas versiones se estn controlando Ramas Conjunto de revisiones que describen la historia de un conjunto de archivos Repositorio Un historial de revisiones

Ofrece repositorios compartidos Diferentes formas de trabajar basndose en flujos de trabajo:


Solo Colaboracin entre socios Centralizado Centralizado con actualizaciones locales Descentralizado con linea principal compartida
Vulcano FIT-350503-2007-7 Versin 1.0 12/02/2008 Pgina 51 de 77

Descentralizado con un revisor humano o automtico Flujo de trabajo implementado por un usuario

Proporciona plugins con diversas aplicaciones

Integrabilidad Web o con el IDE Eclipse mediante plugins Existen algunas interfaces web para Bazaar y en la actualidad est disponible un plugin para el entorno Eclipse que facilita la integracin de esta herramienta [BzpURL].

Ventajas e inconvenientes Las ventajas que ofrece esta herramienta son:


Adaptable. Permite varias formas de trabajo en grupo Multiplataforma. Desarrollado en python No requiere mucho trabajo de administracin. Se puede acceder por FTP o SFTP y no requiere un servidor especial Abundantes metadatos que permiten correctamente archivos y directorios Gran nmero de plugins Integracin con productos y servicios como PQM, Bundle Buggy y Launchpad Ofrece servicios de soporte y formacin El uso de la herramienta no est muy extendido El hecho de ser un CVS distribuido y el uso de flujos de trabajo privados hace que sea ms difcil a los usuarios acceder a toda la informacin de los diferentes repositorios mezclar y renombrar

Por contra, los principales inconvenientes son:


Valoracin general A diferencia de otras herramientas como CVS o Subversion, Bazaar no depende de un servidor central para almacenar y comprobar las diferentes versiones sino que tiene varios repositorios distribuidos. Esto le confiere algunas ventajas sobre todo para el desarrollo de aplicaciones de cdigo abierto que suelen tener desarrolladores distribuidos geogrficamente. Por otro lado, su reciente desarrollo hace que su uso este poco extendido en la actualidad aunque ofrece soporte y formacin proporcionada por la empresa Canonical (patrocinadora de Ubuntu). Todas estas caractersticas hacen de sta una herramienta ms que recomendable para el control de versiones en entornos de software libre.

Vulcano FIT-350503-2007-7 Versin 1.0 12/02/2008 Pgina 52 de 77

Ilustracin 11: Anotaciones en Eclipse realizadas con Bazaar

2.4.4 GNU Arch GNU Arch (tambin conocido como TLA) es un sistema de control de versiones, es decir, ofrece una funcionalidad similar a CVS o Subversion. Se encuadra dentro del rea de herramientas de gestin de la configuracin software, si bien focaliza su actividad en el control de versiones. Permite a los programadores combinar y manipular los cambios realizados por diferentes personas o integrantes de un equipo de desarrollo, de manera concurrente en el tiempo. Se trata de un proyecto OpenSource mantenido por una comunidad de usuarios que aportan mejoras con relativa frecuencia. Su uso y extensin es escasa en la comunidad de desarrollo.

Caractersticas y funcionalidad bsica GNU Arch es una aplicacin que permite la gestin de versiones peer to peer. Por s misma se trata de una aplicacin de lnea de comandos al estilo Unix. Las funcionalidades ofrecidas por la herramienta son:

Repositorios distribuidos: permite mantener diferentes ramas por equipo o subgrupo dentro de un proyecto, manteniendo un espacio de nombres
Vulcano FIT-350503-2007-7 Versin 1.0 12/02/2008 Pgina 53 de 77

global a todo el contexto. Permite mantener mirrors del proyecto en diferentes ubicaciones sin duplicar completamente los contenidos.

Combinacin de ficheros avanzada: adems de la combinacin (merge) habitual, debido a la funcionalidad descrita previamente, Arch posibilita la recombinacin de diferentes repositorios distribuidos. Fcil de adoptar: empleando tecnologa HTTP, FTP, SFTP o WebDAV, ser suficiente para poder realizar las operaciones habituales a travs de estos protocolos. Gestin de renombrados: est contemplada para directorios y ficheros. Operacin no bloqueante ni intrusiva: la gestin de los cambios se realiza de forma transparente pero manteniendo traza de la informacin de ejecucin. rboles de revisin: se incorporan utilidades para la visualizacin de todas las versiones de libreras en forma de rbol. GUI Front-ends : existen varias versiones en funcin de la plataforma en la que operan: Octopy, xtla (emacs), tlator (GTK2), ArchWay, ArchLog Browsers de revisin: Navegadores para ArchZoom) o de bibliotecas (perspective, PAB) archivos (viewARCH,

Existen una serie de componentes adicionales para el sistema GNU Arch:

Mdulos adicionales: existen mdulos python para migracin de repositorios CVS, representacin grfica, simplificacin de interfaces, etc.

Integrabilidad Web o con el IDE Eclipse mediante plugins Hasta el momento no se ha encontrado nada que facilite la integracin de GNU Arch en una web, ni ningn plugin que permita integrar esta herramienta en el IDE Eclipse.

Ventajas e inconvenientes La herramienta presenta las siguientes ventajas:

Se trata de una aplicacin de servidor que incorpora sincronizacin peer to peer, con libreras y repositorios distribuidos entre miembros del equipo de trabajo. Descentraliza el repositorio e incorpora funcionalidades avanzadas de mezcla de versiones. Poco extendido, no aporta capacidades adicionales frente a otros gestores de versiones como cvs y svn. El desarrollo de GUI y mdulos adicionales es escaso y carece de una versin para trabajo en plataformas Microsoft.

La herramienta presenta los siguientes inconvenientes:

Vulcano FIT-350503-2007-7 Versin 1.0 12/02/2008 Pgina 54 de 77

Valoracin general GNU ARCH se trata de una innovadora solucin para mantener una gestin de versiones distribuida, mediante relaciones 1 a 1. Su grado de empleo no es elevado.

2.4.5 Darcs Darcs es una herramienta OpenSource para control de versiones. Es sencilla de instalar y manejar [DrcURL].

Caractersticas y funcionalidad bsica Las funcionalidades ofrecidas por la herramienta son:

Modo stand-alone, para commit de cambios localmente hasta alcanzar al servidor. Registro de cambios interactivo, permite, si se configura, navegar por las modificaciones previo a su registro en el repositorio. Acceso http, ftp, etc, a los repositorios de software. Gestin de los permisos de escritura Portable (Unix, Windows, Mac OS) Posibilidad de renombrado de ficheros, directorios y bibliotecas Reemplazo de tokens en el repositorio Test suites: Permite integrar un test de integridad en las operaciones habituales de commit, upload, etc. Este test de integridad se ejecuta en limpio previo a cualquier cambio en el repositorio central. CGI script: se puede configurar un script CGI para navegar por los repositorios alojados en un determinado servidor.

Algunos de los mdulos de esta herramienta son:

Integrabilidad Web o con el IDE Eclipse mediante plugins Actualmente existen scripts cgi como darcs-server [DrpURL] para acceder a Darcs a travs de la web. Por otro lado, existe un plugin en SourceForge denominado EclipseDarcs, que proporciona la integracin del sistema de control de versiones Darcs en el entorno de desarrollo integrado Eclipse. De esta forma los usuarios de Eclipse pueden gestionar el desarrollo de su cdigo en repositorios Darcs.

Ventajas e inconvenientes La herramienta presenta las siguientes ventajas:

Se trata de un desarrollo muy cuidado que incorpora funcionalidades no presentes en otras soluciones. Para un uso personal la administracin es mnima, lo que lo hace ideal para principiantes en el uso de herramientas CVS
Vulcano FIT-350503-2007-7 Versin 1.0 12/02/2008 Pgina 55 de 77

Su arquitectura descentralizada hace ms fcil de administrar las diferentes ramas del proyecto Emplea Haskell como lenguaje de desarrollo lo que limita posibles ampliaciones y mejoras. Incorpora cambios terminolgicos que puede dificultar, al menos inicialmente, el empleo de la herramienta.

La herramienta presenta los siguientes inconvenientes:

Valoracin general La herramienta no ofrece funcionalidades adicionales a otras, por contra emplea Haskell como base tecnolgica para su desarrollo y emplea GHC como compilador. Este compilador tiene bastantes problemas y adems el uso de Haskell como lenguaje de programacin puede coartar el desarrollo y avance del producto.

2.5

Herramientas de gestin de incidencias

En todos los sistemas existen fallos, tanto a nivel software como a nivel hardware. La deteccin, registro y solucin de estas incidencias es una tarea que si bien no presenta la complejidad que se ha visto en procesos anteriores, obtiene grandes beneficios si se automatiza, ya que en otro caso, la resolucin de la incidencia dependera mucho de la capacidad del tcnico encargado de resolverla y en ningn caso se contara con el conocimiento empleado en resolver esa incidencia o similares casos pasados. El automatizar estas tareas tiene una serie de ventajas entre las que se pueden destacar:

Minimizar los tiempos de resolucin de la incidencia. Registrar informacin relevante a las incidencias Incorporar las mejores prcticas del mercado de forma sistemtica

Las herramientas que proporcionan estas funcionalidades son las denominadas Herramientas de Gestin de Incidencias. 2.5.1 BugZilla Se trata de una herramienta de software libre para gestionar los errores o defectos en el desarrollo de un sistema que permite a los desarrolladores individuales o a los grupos mantener la traza de los errores de su producto. La herramienta permite:

Mantener la trazabilidad de errores y cambios Comunicacin entre los miembros del proyecto Enviar y revisar parches Gestionar el aseguramiento de la calidad (QA)
Vulcano FIT-350503-2007-7 Versin 1.0 12/02/2008 Pgina 56 de 77

Algunos de los posibles usos de la herramienta son:


Administracin de sistemas Gestin del despliegue de sistemas Seguimiento de bugs de software y de hardware Peticiones de soporte.

Caractersticas y funcionalidad bsica Las funcionalidades ofrecidas por la herramienta son:

Introducir para un determinado producto la descripcin de un error, el componente al que pertenece, la versin y el tiempo estimado para su resolucin, asignndoselo a una persona en concreta. Generacin de informes de los bugs de forma grfica y en forma de tabla. Sistema de peticiones para que un tercero revise un error o el cdigo que soluciona un error. Definicin de grupos de usuarios y polticas de acceso al sistema de bugs. Uso de comodines y subcadenas en los formularios de edicin y de entrada de bugs. Permite que ciertos comentarios o ficheros adjuntos de un bug slo puedan ser consultados por ciertos usuarios que se han definido previamente. Permite controlar el tiempo invertido en la resolucin de un bug y compararlo con el tiempo y fechas estimadas. Mltiples mtodos de autentificacin, actualmente se incluye soporte para MySQL y LDAP pero se pueden introducir otros mtodos fcilmente haciendo una pequea adaptacin. Se pueden configurar varios idiomas para el interfaz de usuario, entre ellos el espaol. Permite visualizar los parches de un bug concreto a travs de Bonsai, LXR y CVS. Bsqueda de bugs en la base de datos.

Se puede exportar el resultado a un archivo XML Permite generar RSS de una bsqueda concreta

Ofuscacin de direcciones de email para evitar el spam. Generacin de grficas. Bsqueda de incongruencias en la base de datos de errores

Existe una gran cantidad de mdulos, utilidades y aplicaciones que se pueden integrar con la herramienta:
Vulcano FIT-350503-2007-7 Versin 1.0 12/02/2008 Pgina 57 de 77

Clientes de escritorio

Deskzilla Bugxula Bug-attachment-source Jesse Ruderman's Bugzilla Bookmarklets Igzilla Mylar Bugzilla Connector Buglist Eclipse Bugzilla Bugzilla Linker JujunieIntegration TaskJuggler svn.it-projects.com p4dti SCMBug CVSZilla CVS to Bugzilla integration Svn_bz Testopia Buzilla changelog bzquips

Integracin en el Navegador web


Integracin en Eclipse

Integracin con clientes IRC

Integracin con programas de gestin de proyectos


Integracin con aplicaciones de control de versiones


Otros

Integrabilidad Web o con el IDE Eclipse mediante plugins BugZilla esta desarrollado para acceder va web. Adems existen una serie de plugins para integrarlo en el navegador y en el Eclipse como se ha mencionado en el apartado anterior.

Ventajas e inconvenientes Las principales ventajas de esta herramienta son:

Vulcano FIT-350503-2007-7 Versin 1.0 12/02/2008 Pgina 58 de 77

Herramienta utilizada por muchas empresas y en proyectos de software libre tan importantes como Mozilla, Linux kernel, Apache, Open office y Eclipse Se pueden introducir el tiempo estimado y el tiempo real en la resolucin de un bug para mejorar las estimaciones La bsqueda avanzada de errores permite afinar mucho en la bsqueda de un error concreto de la base de datos Notificaciones va mail a los interesados (creador del bug y persona responsable de su resolucin) de cualquier cambio en un bug (comentarios, cambio de estado, reasignacin...) Restricciones de acceso a determinados bugs o comentarios Las ltimas versiones admiten las bases de datos MySQL, PostgreSQL. y Oracle Permite relacionar un bug con uno anterior Permite crear los errores con diferente prioridad e importancia. Existen muchas empresas que ofrecen configuracin, administracin, entrenamiento) Existen plugins para integrarlo en Eclipse Se puede integrar con CVS, SVN y SCM entre otros. Se puede integrar en los navegadores Mozilla y Firefox Genera informes que se pueden pasar fcilmente a documentos Word. Un usuario puede ver fcilmente los errores pendientes ordenados por varios criterios. Se puede usar para gestionar las peticiones de nuevas funcionalidades Existe soporte gratuito a travs de listas de correo y newsgroups Es una herramienta que no tiene ningn tipo de garanta Slo hay dos niveles para especificar el mdulo o componente donde se ha detectado el bug. Tiene demasiadas opciones, algunas de ellas no estn muy claras. Est basado en cgi por lo que puede tener problemas de seguridad Si no se tiene experiencia puede llevar mucho tiempo su instalacin. Si se necesitan aadir ms campos en algn formulario hay que modificar el cdigo fuente. Los desarrolladores pueden marcar un bug como verificado y cerrado, algo que deberan hacer los encargados de QA. En definitiva, no se puede especificar el workflow de un bug.
Vulcano FIT-350503-2007-7 Versin 1.0 12/02/2008 Pgina 59 de 77

soporte

(instalacin,

La herramienta presenta los siguientes inconvenientes:


Valoracin general Se trata de una herramienta que facilita el seguimiento de los errores o las peticiones de funcionalidades en cualquier proyecto o aplicacin. El nmero de empresas y proyectos donde se usa es muy grande y su tecnologa web permite que los diferentes usuarios accedan fcilmente a la informacin desde un navegador web de una forma distribuida.

2.5.2 Mantis bug tracker Mantis bug tracker es una herramienta de gestin de incidencias basada en web y escrita en PHP. Es independiente del sistema operativo y funciona con una base de datos y un servidor web. Es una herramienta gratuita disponible bajo licencia GPL [MntURL].

Caractersticas y funcionalidad bsica Las funcionalidades ofrecidas por la herramienta son:


Monitorizacin de diversos aspectos Permite informar de incidencias a travs de un formulario web Notificacin de incidencias por email Opciones de filtrado y bsqueda Generacin de grficos e informes Tiene soporte para proyectos, subproyectos y categoras Diferentes niveles de acceso a los proyectos Adjuntos almacenados en el servidor web, en la base de datos o incluso en una cuenta FTP Historial de cambios Acciones en grupo. Las acciones pueden aplicarse a mltiples aspectos Soporte para dispositivos mviles Sindicacin web mediante RSS

Integrabilidad Web o con el IDE Eclipse mediante plugins Se trata de una herramienta basada en web y dispone, adems, de un plugin para el entorno de Eclipse por lo que se puede afirmar que tiene un buen nivel de integrabilidad.

Ventajas e inconvenientes Las ventajas ofrecidas por esta herramienta son:


Fcil de utilizar e instalar Multiproyecto Permite exportar a los formatos: Csv, Microsoft Excel, Microsoft Word Integra control de versiones (CVS y SVN)
Vulcano FIT-350503-2007-7 Versin 1.0 12/02/2008 Pgina 60 de 77

Dispone de una interfaz SOAP Soporta mltiples bases de datos


MySQL MS SQL PostgreSQL Oracle (experimental) DB2 (en desarrollo)

Integracin con Twitter Uso muy extendido, sobre todo en sudamrica. La interfaz no es muy intuitiva La utilizacin de colores para el estado de un error complica la leyenda al no ser explcita y obvia El identificador de un error tiene 7 dgitos lo que lo hace difcil de localizar Las tablas utilizadas para mostrar la informacin tienen un aspecto sobrecargado al tener diferentes colores en cada celda

Los inconvenientes que presenta esta herramienta son:


Valoracin general La facilidad de instalacin y simplicidad de esta herramienta unido a su buen funcionamiento, flexibilidad y eficacia la convierten en una buena opcin para gestin de incidencias en cualquier proyecto. Su nico punto dbil es la interfaz grfica.

Vulcano FIT-350503-2007-7 Versin 1.0 12/02/2008 Pgina 61 de 77

Ilustracin 12: Tabla con errores generada con Mantis bug tracker

2.5.3 Bug Tracker Bug Tracker es una herramienta sencilla de software libre desarrollada en ASP.Net, C# y SQL Server bajo licencia GPL para gestin de incidencias. Permite la gestin multiproyecto y dispone de interfaz interna y externa [BtrURL].

Caractersticas y funcionalidad bsica Las funcionalidades ofrecidas por la herramienta son:


Creacin y asignacin de proyectos a los usuarios Notificacin por correo electrnico de cambios Interfaz personalizable para empleados y clientes Sistema de gestin de documentos FAQ Estadsticas de uso Interfaz internacionalizada y localizada

Vulcano FIT-350503-2007-7 Versin 1.0 12/02/2008 Pgina 62 de 77

Integrabilidad Web o con el IDE Eclipse mediante plugins Bug Tracker es una herramienta web, aunque en la actualidad todava no existen plugins para integrarla en Eclipse.

Ventajas e inconvenientes Las principales ventajas de esta herramienta son:

La simplicidad y aparente poca potencia de Bug Tracker es su gran fuerza. Tras intentar implantar herramientas ms potentes, como Scarab, los clientes eran reacios a introducir incidencias en las mismas. Sin embargo, han aceptado bien BugTracker Permite la gestin multiproyecto, tanto a la empresa como al cliente. No facilita la integracin de esta herramienta con otros sistemas de la empresa. No permite definir categoras de incidencias por proyecto. nicamente tiene un desarrollador lo que dificulta su crecimiento a corto plazo.

Los principales inconvenientes de esta herramienta son:

Valoracin general BugTracker es una herramienta sencilla de gestin de incidencias, que solicita slo la informacin imprescindible.

2.5.4 Scarab Scarab es una herramienta de software libre para gestin de incidencias, que permite una gran personalizacin de las interfaces.

Caractersticas y funcionalidad bsica Scarab tiene una arquitectura modular basada en J2EE y uso de proyectos libres como Turbine. Permite integrar motores de workflow externos como WfmOpen. Las funcionalidades ofrecidas por la herramienta son:

Definicin y personalizacin de plantillas de incidencias Establecimiento de relaciones entre incidencias de diferentes grupos Bsqueda avanzada en la base de conocimiento de incidencias Almacenamiento de consultas predefinidas Generacin de informes mediante un asistente Permite la personalizacin de los flujos de trabajo de asignacin de la herramienta Est integrado con Eclipse mediante RSS para notificacin de tareas. Est integrado con Netbeans mediante un plugin de tareas pendientes
Vulcano FIT-350503-2007-7 Versin 1.0 12/02/2008 Pgina 63 de 77

Est integrado con Maven1 y TWiki Ofrece una interfaz XML-RPC para facilitar su integracin

Integrabilidad Web o con el IDE Eclipse mediante plugins Aunque se trata de una aplicacin web Scarab no dispone an de ningn plugin para integrarlo en Eclipse.

Ventajas e inconvenientes Las principales ventajas de esta herramienta son:

Entorno altamente personalizable, tanto en interfaces como en flujo de trabajo. Facilidad de integracin de nuevos mdulos. Complejidad en las interfaces existentes, lo que requiere un gran esfuerzo de personalizacin para su adaptacin a clientes.

Los principales inconvenientes de esta herramienta son:

Valoracin general Scarab ofrece un sistema de gestin de incidencias altamente personalizable. La personalizacin del entorno es una gran ventaja pero supone un esfuerzo no despreciable que debe ser analizado cuidadosamente.

2.6

Herramientas de preparacin y compilacin de proyectos

Actualmente, debido a la complejidad de los proyectos software y a la existencia de entornos de desarrollo altamente heterogneos, surge la necesidad de disponer de herramientas que mecanicen las tareas de establecimiento de entornos homogneos, compilacin de fuentes, generacin de paquetes de distribucin, etc. Las herramientas que se encuadran en estas tareas son las denominadas Herramientas de Preparacin y Compilacin de Proyectos. A parte de las tareas comentadas, es interesante que estas herramientas tengan funcionalidades adicionales que permitan por ejemplo generar informes, obtener estadsticas, etc. 2.6.1 Ant Se trata de una herramienta de programacin que permite mecanizar tareas que sea necesario hacer frecuentemente, se podra enmarcar dentro de las herramientas tipo script. Es utilizada durante la fase de desarrollo del producto, bsicamente se aplica a la compilacin de los ficheros fuente y a la generacin de los paquetes de distribucin. Se trata de una herramienta implementada en Java y cuyos ficheros de configuracin son ficheros XML, por lo que se trata de una herramienta totalmente portable e independiente de la plataforma [AntURL].
Vulcano FIT-350503-2007-7 Versin 1.0 12/02/2008 Pgina 64 de 77

La herramienta, obviamente, posee licencia Apache.

Caractersticas y funcionalidad bsica


Concepto de proyecto Un proyecto engloba una serie de mdulos (funcionalidades) Es posible especificar dependencias entre mdulos de manera que se ejecuten unos antes que otros, por ejemplo es necesario compilar antes de generar el paquete de distribucin. Cada modulo se compone de una o varias tareas, ejemplo de tareas es por ejemplo, creacin/borrado de directorios/ficheros, compilacin de ficheros Java, comprimir ficheros, Posibilidad de especificar propiedades las cuales puedan ser referenciadas a lo largo del XML de configuracin. Estas propiedades pueden ser establecidas en el documento o hacer referencia a variables del sistema Posibilidad de establecer filtros de modo que sea posible sustituir fragmentos en cadenas de caracteres por otros fragmentos Convierte automticamente los delimitadores en los PATHS CLASSPATHS al carcter correspondiente del sistema operativo y

Permite especificar una forma de pasar argumentos a los procesos (argumentos de la lnea de comandos)

Integrabilidad Web o con el IDE Eclipse mediante plugins Ant no posee interfaz Web, lo que complica su integracin. En cuanto al entorno Eclipse, existe un plugin que facilita el uso de la herramienta Ant desde dicho entorno, este plugin se distribuye en el Standard Development Kit de Eclipse.

Ventajas e inconvenientes Las principales ventajas de esta herramienta son:


Totalmente integrada con Eclipse Posee soporte interno pasa CVS y JUnit Al estar implementada en Java y utilizar XML como ficheros de configuracin es independiente de la plataforma Puede ser utilizado en varias de las etapas (desarrollo, generacin de paquetes de instalacin, pruebas, ) del proceso de desarrollo software Ofrece tareas de soporte, como la generacin de informes, estadsticas, envo de correos, Permite utilizar variables del entorno, lo cual permite la reutilizacin de los mismos ficheros de configuracin en distintos entornos

Vulcano FIT-350503-2007-7 Versin 1.0 12/02/2008 Pgina 65 de 77

Los principales inconvenientes de esta herramienta son:

Ligado a la tecnologa Java, las tareas que proporciona son referentes a este lenguaje Cuando un proyecto es demasiado grande, es complicado manejar los archivos XML. No hay reusabilidad de scripts entre proyectos

Valoracin general Ant es una herramienta muy til y ampliamente utilizada para automatizar todas las tareas relacionadas con la compilacin de proyectos, generacin de distribuciones, etc., disminuyendo considerablemente el tiempo dedicado a estos aspectos.

2.6.2 Maven Maven es una herramienta de gestin de proyectos desarrollados en Java que facilita la adopcin de buenas prcticas de desarrollo software. Es una herramienta de software libre desarrollada por el proyecto Apache. Maven facilita la construccin de proyectos de forma homognea en una empresa, permitiendo construir el software de una forma uniforme, proporcionar informacin de calidad del proyecto, y aplicar prcticas de desarrollo basado en pruebas, as como generar documentacin del proyecto en una web pblica de proyecto y/o documentos PDF.

Caractersticas y funcionalidad bsica Las funcionalidades ofrecidas por la herramienta son:

Simplifica el proceso de construccin de un proyecto. Elimina la necesidad de conocer los mecanismos subyacentes y tiempo de configuracin. Proporciona un sistema de construccin de proyectos uniforme. Permite definir el modelo de objeto de proyecto con las propiedades de los proyectos de una empresa. Proporciona informacin sobre la calidad del proyecto, tales como documento de cambios a partir del cdigo fuente, fuentes navegables con referencias cruzadas, listas de correo asociadas al proyecto, lista de dependencia de software, informes de pruebas generados automticamente, informes de mtricas de calidad generados automticamente, integracin con sistemas de control de versiones y generacin de informes asociados. Proporciona guas para aplicar las mejores prcticas durante el desarrollo. Maven facilita la definicin de casos de prueba y su ejecucin de una forma consistente, unificando el nombrado y ubicacin de las pruebas unitarias en un rbol paralelo al del cdigo fuente.
Vulcano FIT-350503-2007-7 Versin 1.0 12/02/2008 Pgina 66 de 77

Facilita la generacin de un sitio web por proyecto, actualizado al construir el proyecto, as como la automatizacin de la documentacin del proyecto. Gestiona las dependencias con otros proyectos o componentes, as como la distribucin de nuevas versiones de dichos componentes o bibliotecas. Facilita el trabajo con varios proyectos de forma simultnea. Dispone de un repositorio grande y creciente de bibliotecas y metadatos de los principales proyectos de Software Libre listo para ser usado. Permite construir los diferentes artefactos de un proyecto (jar, war, etc.) Publicacin coherente de informacin del proyecto. Empleando la misma informacin que en el proceso de construccin, Maven puede generar la informacin del sitio web o documentos PDF. Integracin con el sistema de control de versiones para facilitar la gestin de nuevas versiones (releases) del proyecto.

Maven dispone de una funcionalidad bsica de construccin del proyecto y gestin de dependencias y permite su ampliacin mediante plugins. Algunos de estos plugins ofrecen funcionalidad de:

Generacin de informes (checkstyle, pmd, clover, findbugs, etc.) Integracin con herramientas IDE (Idea IntelliJ, Eclipse, Netbeans) Integracin con frameworks y herramientas (Castor, Jalopy, Jetty, DBUnit, Wiki, etc.)

Integrabilidad Web o con el IDE Eclipse mediante plugins Maven no es una herramienta web. La utilizacin de Maven facilita la gestin del proyecto va web gracias al sitio web que genera automticamente. Maven se integra con los principales IDES del mercado, como Netbeans, Eclipse o Idea IntelliJ.

Ventajas e inconvenientes Las principales ventajas de esta herramienta son:

Maven est comenzando a ser un estndar en el desarrollo de proyectos de software libre en Java, y su aplicacin al entorno empresarial es directa. Elimina el tiempo de configuracin del proyecto y permite homogeneizar la informacin y estructura de los proyectos. Permite al gestor (y/o al cliente) disponer en tiempo real de informes detallados de calidad y actividad del proyecto. Facilita la continua actualizacin de la web del proyecto, mejorando la comunicacin entre todo el equipo.
Vulcano FIT-350503-2007-7 Versin 1.0 12/02/2008 Pgina 67 de 77

El sistema de plugins permite integrar nuevas funcionalidades de forma sencilla. El repositorio Maven integra los principales proyectos de software libre, facilitando la gestin de dependencias con bibliotecas externas, as como su actualizacin. Maven se limita a proyectos desarrollados en Java, por lo slo es aplicable en empresas orientadas a esta tecnologa.

Los principales inconvenientes de esta herramienta son:

Valoracin general Maven es una herramienta valiosa para gestionar la calidad de un proyecto software en una empresa y ampliamente extendida en la comunidad de software libre.

2.6.3 SCons SCons es una herramienta de cdigo abierto escrita en python para preparar la compilacin de proyectos con una funcionalidad similar al clsico Make. Es multiplataforma y automatiza varias tareas [ScoURL].

Caractersticas y funcionalidad bsica Las funcionalidades ofrecidas por la herramienta son:


Anlisis automtico de dependencias para C, C++ y Fortran Soporte para los lenguajes C, C++, D, Java, Fortran, Yacc, Lex, Qt y SWIG, y documentos building TeX y LaTeX Fcilmente extensible a otros lenguajes o tipos de archivos Compilacin desde repositorios de cdigo centrales Soporte para Microsoft Visual Studio .NET incluyendo archivos .dsp, .dsw, .sln and .vcproj Deteccin de modificaciones mediante firmas MD5 Soporte mejorado para compilaciones paralelas Visin global de todas las dependencias Permite mantener una cach con los archivos compilados para acelerar las compilaciones mltiples

Integrabilidad Web o con el IDE Eclipse mediante plugins SCons no es una herramienta web dado que tan solo facilita la fase de compilacin de proyectos. No obstante, existe un plugin para integrarla con el entorno Eclipse.

Ventajas e inconvenientes Las ventajas que ofrece esta herramienta son:

Flexibilidad y adaptabilidad
Vulcano FIT-350503-2007-7 Versin 1.0 12/02/2008 Pgina 68 de 77

Seguridad mediante firmas digitales y sellado temporal Uso transparente de repositorios de cdigo Es lenta Trabaja a bajo nivel

Los principales inconvenientes de esta herramienta son los siguientes:


Valoracin general SCons proporciona numerosas ventajas para la compilacin de proyectos respecto a sus predecesores (Make) como el anlisis de dependencias o la utilizacin de firmas digitales y su flexibilidad lo hace adecuado para cualquier proceso de compilacin. Adems a medida que evolucione esta herramienta se ir optimizando el problema de la lentitud que le confiere cierta incomodidad a su uso.

2.7

Herramientas de pruebas de sistemas software.

Las pruebas de validacin de sistemas software son una tarea fundamental a la hora de producir software de calidad, sin embargo, ese esfuerzo necesario para realizar estas pruebas hace que las mismas no se lleven a cabo de forma rigurosa o completa. Las herramientas que permiten la automatizacin de esta tarea ayudan conseguir los objetivos marcados en un proyecto en trminos de calidad del producto final. Las herramientas de pruebas dan soporte a la generacin de casos de prueba, ejecucin de dichos casos y almacenamiento y anlisis de los resultados. 2.7.1 TOPEN TOPEN es un entorno para la validacin, monitorizacin y operacin de sistemas intensivos en software de forma remota. Su caracterstica principal es la de proporcionar a los ingenieros de pruebas un marco para definir, compilar y ejecutar procedimientos de prueba sobre un sistema, y almacenar la informacin de dichos procedimientos y los resultados de sus ejecuciones para anlisis posteriores.

Caractersticas y funcionalidad bsica Las funcionalidades ofrecidas por la herramienta son:

Diseo y definicin de procedimientos de test para validad un sistema complejo en un lenguaje cercano al cliente Compilacin los procedimientos de test de acuerdo a una gramtica previamente definida Registro de dichos procedimientos de test para ejecuciones posteriores TOPEN traslada los procedimientos de test a lenguaje de programacin para ejecutarlos sobe el sistema a probar
Vulcano FIT-350503-2007-7 Versin 1.0 12/02/2008 Pgina 69 de 77

Ejecucin de los procedimientos de test sobre un sistema remoto Recepcin de los resultados de la ejecucin de los procedimientos de test Operacin del sistema de forma remota enviando comandos al sistema y recibiendo los resultados de la ejecucin de dichos comandos Recepcin de notificaciones y alertas del sistema bajo operacin /monitorizacin/prueba Registro de los resultados de las ejecuciones para anlisis posteriores Registro de los resultados de las notificaciones y alertas para anlisis posteriores

Integrabilidad Web o con el IDE Eclipse mediante plugins TOPEN en la actualidad no es una herramienta web. No obstante, existe una API que permite ofrecer parte de sus funcionalidad como servicios REST para integrarla con la forja Vulcano.

Ventajas e inconvenientes Las ventajas que ofrece esta herramienta son:


Flexibilidad y adaptabilidad. Multiplataforma. Seguimiento y control de las tareas de testing como parte de un proyecto de desarrollo. Registro de resultados fcilmente integrable en un sistema de calidad. TOPEN est registrado en Morfeo. Es dependiente del dominio. No es una herramienta web. No utiliza el concepto de proyecto. Se requiere una instancia de TOPEN para cada proyecto. No tiene sistema de autenticacin.

Los principales inconvenientes de esta herramienta son los siguientes:


Valoracin general

TOPEN est basado en una arquitectura de componentes distribuidos y soporta tele-testing. TOPEN puede adaptarse como entorno de pruebas a cualquier sistema que incorpore un interfaz software que permita interaccin desde el exterior. Adems existen varias adaptaciones de TOPEN ya realizadas y probadas para distintos dominios. Por otro lado, resulta interesante que TOPEN aparezca ya registrado como herramienta dentro de la iniciativa Morfeo, poniendo de manifisto la relacin de Morfeo y Vulcano.
Vulcano FIT-350503-2007-7 Versin 1.0 12/02/2008 Pgina 70 de 77

Ilustracin 13: La interface de TOPEN

2.7.2 Wapiti Wapiti es un escner de vulnerabilidades de cdigo abierto que realiza pruebas de caja negra de forma automtica. No est pensado para sustituir a los profesionales que realizan auditorias ya que no detecta todas las vulnerabilidades. No obstante es capaz de detectar un nmero razonable de vulnerabilidades como por ejemplo inyeccin XSS que es, segn OWASP, la vulnerabilidad ms comn. Wapiti detecta vulnerabilidades realizando ataques como los que podra realizar un hacker sobre una pgina web.

Caractersticas y funcionalidad bsica

Wapiti permite auditar aplicaciones web ya que realiza pruebas de caja negra. No estudia el cdigo fuente de las aplicaciones sino que analiza las pginas buscando scripts y formularios donde poder inyectar datos. En este sentido funciona como un fuzzer. Es capaz de detectar las siguientes vulnerabilidades: Errores de gestin de archivos (Local y remoto include/require, fopen, readfile...) [OWAURLd] Inyeccin a la base de datos (PHP/JSP/ASP SQL Injections y XPath Injections) [OWAURLc]. XSS (Cross Site Scripting) [OWAURLb]. Inyeccin LDAP [OWAURLc]. Deteccin de ejecucin de comandos (eval(), system(), passtru()...).
Vulcano FIT-350503-2007-7 Versin 1.0 12/02/2008 Pgina 71 de 77

Inyeccin CRLF (HTTP Response Splitting, session fixation...) [OWAURLf]. Wapiti adems permite diferenciar vulnerabilidades puntuales o permanentes. No est basado en una base de datos con un conjunto de vulnerabilidades sino que genera los ataques basndose en patrones lo que le permite encontrar vulnerabilidades desconocidas en aplicaciones web. Adems genera informes y estadsticas de las vulnerabilidades encontradas que pueden ser exportados a diferentes formatos: HTML, XML, o texto plano. El objetivo de estos informes es ser comprensibles para un programador sin demasiados conocimientos de seguridad por lo que proporcionan informacin detallada de cada vulnerabilidad encontrada y la forma ms comn de resolverla.

Integrabilidad Web o con el IDE Eclipse mediante plugins

No est pensada la integracin con sta herramienta.

Ventajas e inconvenientes

Las principales ventajas de esta herramienta son: Funciona muy bien detectando ataques XSS. Informacin de los resultados muy completa y detallada. No requiere conocimientos de seguridad. Escanea de forma automtica. Proporciona datos estadsticos y grficas sobre las vulnerabilidades encontradas. No encuentra ciertas vulnerabilidades que slo se pueden descubrir con intervencin de un auditor de seguridad. Si la pgina escaneada tiene muchos enlaces puede tardar mucho. Resulta incmoda de utilizar para los usuarios poco familiarizados con la consola. Ciertos enlaces no son detectados por la herramienta, como los generados por javascript. Un sitio con la misma URL para todas las pginas no podr ser escaneada.

Los principales inconvenientes de esta herramienta son:

Valoracin general

Esta herramienta resulta muy til, completa y fcil de usar para detectar las vulnerabilidades de cualquier web. No obstante debe combinarse con otras tcnicas y herramientas para cubrir todos los aspectos de seguridad.

Vulcano FIT-350503-2007-7 Versin 1.0 12/02/2008 Pgina 72 de 77

Ilustracin 14: Demo online de Wapiti

Vulcano FIT-350503-2007-7 Versin 1.0 12/02/2008 Pgina 73 de 77

CONCLUSIONES

En este documento se han revisado herramientas de cdigo abierto en las principales fases de un proyecto software, como son la gestin de requisitos, configuracin, proyecto o incidencias.

Vulcano FIT-350503-2007-7 Versin 1.0 12/02/2008 Pgina 74 de 77

REFERENCIAS

Referencia

Descripcin

URL

[AntURL] [AwwURL]

Proyecto Ant

http://ant.apache.org

Recomendaciones http://www.w3.org/TR/webarch/ para las arquitecturas de la web Proyecto Bazaar Proyecto BugZilla Proyecto bugTraker http://bazaar-vcs.org http://www.bugzilla.org/ http://sourceforge.net/projects/btnet/

[BazURL] [BgzURL] [BtrURL] [BzpURL] [CvsURL] [DepURL]

Plugin de Bazaar para http://bazaar-vcs.org/BzrEclipse Eclipse Proyecto CVS http://www.nongnu.org/cvs/

Plugin de DotProject http://qualdev.uniandes.edu.co/wikiDev/d para Eclipse oku.php? id=development:projects:eclipseplugin:ec lipse/ Proyecto DotProject Proyecto Darcs http://www.dotproject.net http://darcs.net/

[DotURL] [DrcURL] [DrpURL]

Plugin de darcs server http://packages.ubuntu.com/dapperpara acceder al backports/devel/darcs-server repositorio por web Guia de utilizacin del http://developer.ebay.com/developercent api REST de ebai er/rest/eBayRESTAPIGuide.pdf Proyecto GanttProject Proyecto Gantt Proyecto Mantis Proyecto OpenProj Proyecto OSRMT http://ganttproject.biz http://www.pureviolet.net/ganttpv/ http://www.mantisbt.org Http://openproj.org/ http://sourceforge.net/projects/osrmt

[EApURL] [GnpURL] [GntURL] [MntURL] [OpenpURL] [OsrURL]

[OWAURLb] [OWAURLc]

OWASP vulnerability OWASP flaws

XSS http://www.owasp.org/index.php/Top_ 10_2007-A1 Injection http://www.owasp.org/index.php/Top_ 10_2007-A2

Vulcano FIT-350503-2007-7 Versin 1.0 12/02/2008 Pgina 75 de 77

[OWAURLd]

OWASP Malicious http://www.owasp.org/index.php/Top_ file execution 10_2007-A3 vulnerability OWASP Cross Site http://www.owasp.org/index.php/Top_ Request Forgery 10_2007-A5 vulnerability
Proyecto Project Open http://www.project-open.com/ Proyecto REM Proyecto RTH Proyecto scarab Proyecto SCons Proyecto Subversion Proyecto Tiger Pro http://www.lsi.us.es/descargas/descarga_ programas.php?id=3 https://sourceforge.net/projects/rth/ http://scarab.tigris.org/ http://www.scons.org/ http://subversion.tigris.org/ http://users.sa.chariot.net.au/~g3zcz/Tige rPro/TigerPro.html

[OWAURLf]

[ProjOpenURL] [RemURL] [RTHURL] [ScaURL] [ScoURL] [SubURL] [TigURL] [TimURL]

Tim Perdue, motivo http://gforge.org/forum/forum.php? para desarrollar una thread_id=938&forum_id=44&group_id=1 API SOAP para gforce Proyecto Trac Plugins de trac Comunidad usuarios de Trac URIs guay http://trac.edgewall.org/ http://trac-hacks.org/ de http://trac.edgewall.org/wiki/TracUsers http://www.w3.org/Provider/Style/URI.htm l.es

[TrcURL] [TrhURL] [TruURL] [UguURL] [Vul07]

D6. Estudio de http://www.ines.org.es/vulcano/index. herramietnas de php/estudio-herramientascertificacin. Juan A. certificacion/ Cceres, Irenka Redondo, Luis de la Fuente, (TID), Carlos A. Iglesias (Informtica Gesfor)

Miguel ngel Barcelona (ITA), Marta Vallejo (ATOS), Rafael Fernndez, Arturo Escudero (UPM), Javier de la Rosa (Yaco) y Guillermo
Vulcano FIT-350503-2007-7 Versin 1.0 12/02/2008 Pgina 76 de 77

Pastor 2007.
[XplURL]

(Andago),
http://www.xplanner.org/

Proyecto Xplanner

Vulcano FIT-350503-2007-7 Versin 1.0 12/02/2008 Pgina 77 de 77

Anda mungkin juga menyukai