Un sistema de CM es esencial para controlar los numerosos productos de trabajo que producen las muchas personas que
trabajan en un proyecto común. El control ayuda a evitar confusiones costosas y garantiza que los productos de trabajo
resultantes sean conflictivos debido a algún problema de los tipos siguientes:
Actualización simultánea
Cuando dos o más miembros del equipo trabajan por separado en el mismo producto de trabajo, el último en realizar
cambios destruye el trabajo del anterior. El problema básico es que si un sistema no da soporte a las
actualizaciones simultáneas ello conduce a cambios en serie y ralentiza el proceso de desarrollo. Sin embargo, con
las actualizaciones simultáneas, el reto es detectar las actualizaciones que se han producido simultáneamente y
resolver las cuestiones de integración cuando se incorporen estos cambios.
Notificación limitada
Cuando se resuelve un problema en los productos de trabajo compartidos por varios desarrolladores y no se notifica
a algunos de ellos del cambio.
Versiones múltiples
La mayoría de programas grandes se desarrollan mediante releases evolutivos. Un release puede ser utilizado por el
cliente, mientras otro se está probando y un tercero sigue todavía desarrollándose. Si se detectan problemas en
alguna de las versiones, deben propagarse las soluciones entre ellas. Las confusiones pueden conducir a arreglos
costosos y a trabajos de rediseño a menos que los cambios tengan un cuidadoso control y gestión.
Un sistema de CM es útil para la gestión de las múltiples variantes de evolución de los sistemas de software, para
realizar el seguimiento de las versiones que se utilizan en determinadas compilaciones de software, llevar a cabo
compilaciones de programas individuales o de releases completos de acuerdo con especificaciones de versión definidas
por el usuario y la aplicación de las políticas de desarrollo específicas del sitio.
Algunas de las ventajas directas proporcionadas por un sistema de CM son que:
-
da soporte a los métodos de desarrollo
-
mantiene la integridad del producto
-
garantiza la completitud y la corrección del producto configurado
-
proporciona un entorno estable en el que desarrollar el producto
-
restringe los cambios a los productos de trabajo basándose en las políticas del proyecto
-
proporciona una pista para las auditorías sobre las razones, los momentos y los autores de los cambios en los
productos de trabajo
Además, un sistema de CM almacena datos de 'contabilidad' detallada sobre el propio proceso de desarrollo: el autor de
una versión determinada (y el momento y la razón), las versiones de los recursos se han utilizado en una compilación
determinada y otros datos relevantes.
Un sistema de CM de una empresa se utiliza durante todo el ciclo vital del producto, desde el inicio a su despliegue.
Como depósito de activos de una empresa, el sistema de CM contiene versiones actuales e históricas de los archivos de
origen de los requisitos, artefactos de diseño e implementación que definen una versión determinada de un sistema o de
un componente del sistema
La estructura de directorios del producto representada en el sistema de CM contiene todos los artefactos necesarios
para implementar el producto. La disciplina Gestión de cambios y configuración (CCM) como tal está relacionada con
todas las otras disciplinas del proceso pues actúa como depósito para los conjuntos resultantes de productos de
trabajo, que incluyen:
|