Este documento presenta varias herramientas para la gestión de cambios y la configuración en el desarrollo de software, incluyendo Enterprise Architect para modelado UML, Bugzilla y Mantis para seguimiento de errores, y sistemas de control de versiones como Bazaar, Git, Mercurial y otros. Explica sus características y usos para mejorar la gestión de proyectos de software.
Herramientas case[gestion de cambio gestion de la configu
1. Herramientas CASE Herramientas de Gestión de Cambio Herramientas de Gestión de la Configuración Manuel A. Villalta L. Ing. de Software II – Prof.: Ing. Niriana Blasco 8vo Semestre – Ing. de Sistemas - USM Barinas
2. Gestión de Cambios El objetivo primordial de la Gestión de Cambios es que se realicen e implementen adecuadamente todos los cambios necesarios en la infraestructura y servicios garantizando el seguimiento de procedimientos estándar.
3. Gestión de Cambios Los principales beneficios derivados de una correcta gestión del cambio son: Se reduce el número de incidentes y problemas potencialmente asociados a todo cambio. Se reduce el número de "back-outs" necesarios. Los cambios son mejor aceptados y se evitan "tendencias inmovilistas". Se evalúan los verdaderos costes asociados al cambio y por lo tanto es más sencillo valorar el retorno real a la inversión. Se desarrollan procedimientos de cambio estándar que permiten la rápida actualización de sistemas no críticos.
4. Seguimiento de Errores Un sistema de seguimiento de errores es una aplicación informática diseñada para ayudar a asegurar la calidad de software y asistir a los programadores y otras personas involucradas en el desarrollo y uso de sistemas informáticos en el seguimiento de los defectos de software. El término usado en inglés es Bug Tracking System, y frecuentemente se usa el acrónimo BTS. Puede considerarse como una especie de sistema de seguimiento de incidentes. Son usados intensivamente por cualquier empresa o institución que realice desarrollo de software.
5. Seguimiento de Errores Errores Bloqueador: inhibe la continuidad de desarrollo o pruebas del programa Crítico: Crash de la aplicación, pérdida de datos o fuga de memoria severa. Mayor: pérdida mayor de funcionalidad, como menúes inoperantes, datos de salida extremadamente incorrectos, o dificultades que inhiben parcial o totalmente el uso del programa. Normal: Una parte menor del componente no es funcional. Menor: Una pérdida menor de funcionalidad, o un problema al cual se le puede dar la vuelta Trivial: Un problema cosmético, como puede ser una falta de ortografía o un texto desalineado. Mejora: Solicitud de una nueva característica o funcionalidad.
6. CASE - Gestión de Cambios Enterprise Architect Enterprise Architect combina el poder de la última especificación UML 2.1 con alto rendimiento, interfaz intuitiva, para traer modelado avanzado al escritorio, y para el equipo completo de desarrollo e implementación. Con un gran conjunto de características y un valor sin igual para el dinero, EA puede equipar a su equipo entero, incluyendo analistas, evaluadores, administradores de proyectos, personal del control de calidad, equipo de desarrollo y más, por una fracción del costo de algunos productos competitivos.
7. CASE - Gestión de Cambios Características Principales Enterprise Architect Diseño y construcción de UML. Casos de Uso, Modelos Lógico, Dinámico y Físico. Extensiones personalizadas para modelado de procesos y más. Documentación de alta calidad compatible con MS Word. Intuitivo y simple de usar. Bajo costo de Licencias. Modelado de Datos, Ingeniería directa de Base de Datos a DDL e ingeniería inversa de Base de Datos desde ODBC. Multi-usuario (solamente para ediciones Profesional y Corporativa). Ingeniería de Código Directa e Inversa (ediciones Corporativa y Profesional solamente) - Soporte para ActionScript 2.0, Java, C#, C++, VB.Net, Delphi, Visual Basic, Python y PHP. Facilidad de Importación/Exportación XMI. Corrector Ortográfico
8. CASE - Gestión de Cambios Bugzilla Bugzilla es una herramienta basada en Web de seguimiento de errores (Bug Tracking System o BTS, por sus siglas en inglés), originalmente desarrollada y usada por el proyecto Mozilla. Lanzado como software de código abierto por Netscape Communications en1998, Bugzilla ha sido adoptado por una variedad de organizaciones para su empleo en el seguimiento de defectos (errores), tanto para software libre como para software propietario. Su licenciamiento es bajo la Licencia Pública de Mozilla. Bugzilla permite organizar en múltiples formas los defectos de software, permitiendo el seguimiento de múltiples productos con diferentes versiones, a su vez compuestos de múltiples componentes. Permite además categorizar los defectos de software de acuerdo a su prioridad y severidad, así como asignarles versiones para su solución.
9. CASE - Gestión de Cambios Características Para los usuarios Capacidades avanzadas de búsqueda Notificaciones por correo electrónico controlado por las preferencias del usuario Listas de errores en varios formatos (Atom, iCal, etc) Informes programados (diaria, semanal, cada hora, etc) por correo electrónico Informes y Listas Archivo / Modificar Bugs Por correo electrónico Tiempo de seguimiento Sistema de Solicitud Comentarios Adjuntos y privados Finalización automática Nombre de usuario o listas de Down-Drop Parche Visor "Mira" de otros usuarios Mover Bugs Entre Instala Guardar y compartir Proveedores
10. CASE - Gestión de Cambios Para los administradores Excelente seguridad Mecanismo de extensión de gran alcance para entornos altamente personalizable Campos personalizados Flujo de trabajo personalizado Total compatibilidad con Unicode Localización Apoyo para mod_perl Excelente rendimiento Webservices (XML-RPC) Interfaz Visibilidad de control de errores / Edición con grupos Suplantar a usuario Múltiples métodos de autenticación Soporte para múltiples motores de base de datos Revisión de Estado
11. CASE - Gestión de Cambios Requerimientos Los requerimientos de sistema de Bugzilla incluyen: Un sistema administrador de Bases de datos (DBMS) (como MySQL 3.22.5 o superior o PostgreSQL) Perl (5.005 o superior, 5.6.1 recomendado para utilizar Bundle::Bugzilla) Módulos Perl como: Template (v2.07) AppConfig (v1.52) Text::Wrap (v2001.0131) File::Spec (v0.8.2) Data::Dumper (cualquier versión) DBD::mysql (v1.2209) DBI (v1.13) Date::Parse (cualquier versión) CGI::Carp (cualquier versión) Un servidor web como Apache.
12. CASE - Gestión de Cambios Mantis Bugtracker MantisBT es un popular sistema libre basado en el control de errores web. Está escrito en el PHP lenguaje de scripting y trabaja con MySQL, MS SQL y bases de datos PostgreSQL y un servidor web. MantisBT se ha instalado en Windows, Linux, Mac OS, OS / 2, y otros. Casi cualquier navegador web debe ser capaz de funcionar como un cliente. Es liberado bajo los términos de la GNU General PublicLicense (GPL).
13. Gestión de la Configuración Se denomina Gestión de la Configuración al conjunto de procesos destinados a asegurar la validez de todo producto obtenido durante cualquiera de las etapas del desarrollo de un Sistema de Información (S.I.), a través del estricto control de los cambios realizados sobre los mismos y de la disponibilidad constante de una versión estable de cada elemento para toda persona involucrada en el citado desarrollo. Estos dos elementos (control de cambios y control de versiones de todos los elementos del S.I.) facilitan también el mantenimiento de los sistemas al proporcionar una imagen detallada del sistema en cada etapa del desarrollo. La gestión de la configuración se realiza durante todas las fases del desarrollo de un sistema de información, incluyendo el mantenimiento y control de cambios, una vez realizada la puesta en producción.
14. Gestión de la Configuración Los elementos de configuración del software incluyen: Ejecutables. Código Fuente. Modelos de datos. Modelos de procesos. Especificaciones de requisitos. Pruebas... Y para cada uno de estos elementos se almacenará al menos: Nombre. Versión. Estado. Localización
15. Control de Versiones Una versión, revisión o edición de un producto, es el estado en el que se encuentra dicho producto en un momento dado de su desarrollo o modificación. Se llama control de versiones a la gestión de los diversos cambios que se realizan sobre los elementos de algún producto o una configuración del mismo. Los sistemas de control de versiones facilitan la administración de las distintas versiones de cada producto desarrollado, así como las posibles especializaciones realizadas (por ejemplo, para algún cliente específico). El control de versiones se realiza principalmente en la industria informática para controlar las distintas versiones del código fuente. Sin embargo, los mismos conceptos son aplicables a otros ámbitos como documentos, imágenes, sitios web, etcétera. Aunque un sistema de control de versiones puede realizarse de forma manual, es muy aconsejable disponer de herramientas que faciliten esta gestión (CVS, Subversion, SourceSafe, ClearCase, Darcs, Bazaar, Plastic SCM, Git, Mercurial, etc.).
16. Control de Versiones Un sistema de control de versiones debe proporcionar: Mecanismo de almacenaje de los elementos que deba gestionar (ej. archivos de texto, imágenes, documentación...) Posibilidad de realizar cambios sobre los elementos almacenados (ej. modificaciones parciales, añadir, borrar, renombrar o mover elementos) Registro histórico de las acciones realizadas con cada elemento o conjunto de elementos (normalmente pudiendo volver o extraer un estado anterior del producto)
17. CASE - Gestión de la Configuración Bazaar Bazaar es un sistema de control de versiones que le ayuda a seguir la historia del proyecto en el tiempo y colaborar fácilmente con otros. Tanto si eres un desarrollador individual, un equipo de co-ubicados o una comunidad de desarrolladores repartidos por todo el mundo, las escalas de Bazar y adaptación para responder a sus necesidades. Parte del proyecto GNU, el bazar es un software gratuito patrocinado por Canonical.
18. CASE - Gestión de la Configuración Control de versiones para todos Nos sentimos muy orgullosos en la toma de Bazar fácil de aprender, fácil de usar y conveniente para todos, no sólo los hackers de elite. Por ejemplo: Nuestras aplicaciones multi-plataforma GUI es lo suficientemente poderosa que los expertos pueden pasar la mayor parte de su tiempo en él, mientras que siendo bastante simple para los usuarios ocasionales para sentirse cómodo. En la herramienta de línea de comandos, ayuda en línea se proporciona para cada comando. Nuestra documentación simplemente rocas de la tarjeta de referencia rápida a los cinco minutos tutorial a la Guía del usuario completa
19. CASE - Gestión de la Configuración Git Software de control de versiones diseñado por LinusTorvalds, pensando en la eficiencia y la confiabilidad del mantenimiento de versiones de aplicaciones cuando estas tienen un gran número archivos de código fuente. Al principio, Git se pensó como un motor de bajo nivel sobre el cual otros pudieran escribir el interfaz de usuario o frontend como Cogito (software) o StGIT. Sin embargo, Git se ha convertido desde entonces en un sistema de control de versiones con funcionalidad plena. Hay algunos proyectos de mucha relevancia que ya usan Git, en particular, el grupo de programación del núcleo Linux. El mantenimiento del software Git está actualmente (2009) supervisado por Junio Hamano, quien recibe contribuciones al código de alrededor de 280 programadores.
20. CASE - Gestión de la Configuración Características Fuerte apoyo al desarrollo no-lineal, por ende rapidez en la gestión de ramificaciones y mezclado de diferentes versiones. Git incluye herramientas específicas para navegar y visualizar un historial de desarrollo no-lineal. Una presunción medular en Git es que un cambio será fusionado o empalmado mucho más frecuentemente de lo que se escribe originalmente, conforme se pasa entre varios programadores que lo revisan. Gestión distribuida. Al igual que Darcs, BitKeeper, Mercurial, SVK, Bazaar y Monotone, Git le da a cada programador una copia local del historial del desarrollo entero, y los cambios se propagan entre los repositorios locales. Los cambios se importan como ramificaciones adicionales y pueden ser fusionados en la misma manera que se hace con la ramificación local.
21. CASE - Gestión de la Configuración Mercurial Mercurial es un sistema de control de versiones multiplataforma, para desarrolladores de software. Está implementado principalmente haciendo uso del lenguaje de programación Python, pero incluye una implementación binaria de diff escrita en C. Mercurial fue escrito originalmente para funcionar sobre Linux. Ha sido adaptado para Windows, Mac OS X y la mayoría de otros sistemas tipo Unix. Mercurial es, sobre todo, un programa para la línea de comandos. Todas las operaciones de Mercurial se invocan como opciones dadas a su programa motor, hg, que hace referencia al símbolo químico del mercurio.
22. CASE - Gestión de la Configuración Proyectos que usan Mercurial Python OpenOffice.org Aldrin Audacious CubicWeb Dovecot IMAP server GNU Octave Growl MoinMoin wiki software Mozilla Netbeans OpenJDK SAGE OpenSolaris de Sun Los desarrolladores de Xen Software Opensource de Oracle como Btrfs