Concepto: Espacios de trabajo
Un espacio de trabajo es un área privada que contiene el código que está codificando y probando un desarrollador, de forma relativamente aislada de otros desarrolladores y de acuerdo con los estándares adoptados del proyecto.
Relaciones
Descripción principal

Definición

Los espacios de trabajo hacen referencia a áreas 'privadas' donde los desarrolladores pueden implementar y probar código de acuerdo con los estándares adoptados del proyecto de forma relativamente aislada de otros desarrolladores. El gestor de configuración debe crear un entorno de espacio de trabajo para cada desarrollador del proyecto.

Explicación

Un espacio de trabajo proporciona a cada desarrollador un entorno reproducible, económico, flexible y coherente que selecciona y presenta la versión adecuada de cada archivo. El espacio de trabajo debe proporcionar un control estricto del aislamiento y el compartimiento. Esto es necesario porque, en la mayoría de los proyectos, los desarrolladores necesitan aislarse de los cambios que realicen los demás; pero, al mismo tiempo, necesitan comprobar la unidad de sus cambios con los cambios realizados por otro desarrolladores.

Cuando lleva a cabo el mantenimiento de releases antiguos, el desarrollador necesita ver versiones anteriores, binarios, documentos, pruebas, herramientas y otros objetos. En este caso, el espacio de trabajo sirve como una 'máquina del tiempo', hace que todo el entorno, no solamente los orígenes, tenga el aspecto que tenía en el pasado.

Los espacios de trabajo de los desarrolladores deben estar aislados, por motivos de edición, compilación, pruebas y depuración. No obstante, el aislamiento del espacio de trabajo debe ser relativo, no absoluto:

  • Es necesario que otras personas puedan realizar un seguimiento del trabajo de un desarrollador e integrarlo de forma selectiva en el suyo.
  • Otros tienen que poder denegar el acceso. Hasta un periodo de integración posterior, estos cambios pueden resultar desestabilizadores para su propio trabajo.

Un espacio de trabajo puede ser totalmente privado de un desarrollador individual, o compartido entre un equipo de desarrolladores a través de una red.

Además de proporcionar acceso a las versiones de origen, un espacio de trabajo debe proporcionar almacenamiento privado (aislado) a los archivos generados durante el desarrollo de software:

  • Versiones operativas (comprobadas) de archivos de origen,
  • Ejecutables,
  • Otros objetos privados del espacio de trabajo: código fuente, subdirectorios de prueba y archivos de datos de prueba.

Los almacenamientos privados del espacio de trabajo suelen encontrarse en el directorio de inicio del desarrollador en una estación de trabajo. Un espacio de trabajo compartido por un grupo de desarrolladores puede tener un área de almacenamiento privada en un servidor central de archivos. Sin embargo, la ubicación real del almacenamiento privado es prácticamente irrelevante. Desde el punto de vista del desarrollador, el almacenamiento privado del espacio de trabajo debería aparecer totalmente integrado.

El diagrama muestra 2 espacios de trabajo de integración y un espacio de trabajo privado superpuestos en el cubo de CM.

La figura anterior ilustra la noción de espacios de trabajo de integración y privados en el contexto general del cubo de CM.

Configuraciones de trabajo

Las configuraciones operativas (perfiles del espacio de trabajo) hacen referencia a subsistemas particulares que constituyen un conjunto de trabajo para el proyecto. Un conjunto de trabajo es una lista de versiones específicas de subsistemas que deben tener referencias, o modificarse, para implementar un trabajo. Esta lista puede representar la totalidad del sistema o un subconjunto.

Vistas

Una vista proporciona acceso a un conjunto de archivos del repositorio de proyectos. Además, una vista proporciona acceso a un conjunto adecuado de versiones de dichos archivos:

  • Una vista de desarrollo nueva puede proporcionar acceso a las versiones más recientes de los archivos.
  • Otra vista de desarrollo nueva puede proporcionar acceso a las versiones que utiliza un equipo que trabaja en una interfaz de usuario nueva para el producto.
  • Una vista de mantenimiento puede proporcionar acceso a las versiones de los archivos que se utilizaron para construir un release determinado del producto.

Un espacio de trabajo, a veces también llamado vista, permite a los desarrolladores realizar y probar cambios en privado antes de compartir las modificaciones con el resto del equipo. Hay dos tipos de vistas:

  • Vistas de instantánea
  • Vistas dinámicas

Una vista de instantánea proporciona al desarrollador un entorno de trabajo estable e invariable. Es similar a un árbol de directorios del sistema. Una vista de instantánea está llena de copias de las versiones adecuadas de archivos de uno o varios repositorios de proyectos. Algunas personas utilizan el término "zona protegida" para referirse a este tipo de árbol de directorios. Cuando un desarrollador desea ver los cambios que realizaron otros miembros del equipo, actualiza la vista. Este estilo de trabajo se caracteriza como modelo pull, ya que consiste en la introducción activa de información importante, y no en su disponibilidad inmediata mediante mecanismos de renovación automática.

Una vista dinámica es una estructura virtual de datos, ya que parece que contiene todos los datos de desarrollo. Las vistas dinámicas no realizan copias locales de archivos, pero dependen de la actualización inmediata de la red. Las vistas dinámicas pueden ser la mejor opción en las siguientes situaciones:

  • El espacio de disco del cliente es limitado
  • Desea beneficiarse del compartimiento de objetos derivados
  • El equipo de desarrollo debe trabajar con las versiones más recientes de código. Esta función es especialmente útil para la integración que requiere la versión más reciente de cualquier software.