control de versiones de software en manufactura
¿Por qué es tan importante llevar un control de versiones de software en manufactura?
Conoce las principales características de estos sistemas que facilitan la administración de las versiones de cada producto desarrollado.

Existen dos maneras para disminuir costos en desarrollo de código en una empresa:  la primera, es disminuir el costo de desarrollo; y la segunda y menormente aprovechada, es el reutilizar el código ya existente y enfocarse en su mantenimiento y planeación. Si llevamos estas dos mejores prácticas al mundo de manufactura, la eficiencia de los grupos de ingeniería de producto, validación y prueba sería mucho mayor.

¿Cómo se implementa el control de versiones de software en la industria?

Las empresas con procesos de fabricación que implementan gran volumen de maquinaria tienen hoy en día que enfrentar varios desafíos, incluidos: producción de lotes pequeños, alta variabilidad en la producción de distintos tipos de productos y una cartera de productos cambiante durante el ciclo de vida de una máquina o planta. Por lo tanto, los sistemas de producción deben admitir cambios no solo en su diseño físico, si no también en actualizaciones técnicas exhaustivas, ya que los ciclos de vida de un sistema o estación de producción pueden durar hasta 50 años (Vogel-Heuser & Ocker, 2018).

En la mayoría de los casos las empresas no tienen suficiente conocimiento sobre las variantes y versiones de software existentes dentro de su propia empresa. Además, por cuestiones de presiones de tiempo de liberación de productos en la manufactura se recurre al típico: “Si ya jala, no le muevas”.  Es imprescindible llevar un control de versiones de software de todas las estaciones de prueba y medición de las líneas de manufactura de tu empresa.



¿Como identificar cuando se necesita implementar un control de versiones?

  1. Número de desarrolladores. Si tu equipo de desarrollo cuenta con más de dos Ingenieros involucrados en el desarrollo simultaneo del software.
  2. Desarrollo concurrente: Se plantea el desarrollo de varias estaciones con enfoque y/o implementación similar.
  3. Mantenimiento de software: El propósito del desarrollo es un software que requerirá mantenimiento y liberación de diferentes versiones.
  4. Diferentes plataformas para desarrollo de software: LabVIEW, LabWindows/CVI, TestStand, C#, Python, etcétera.
  5. Adaptaciones y anexos al código: Se requiere coordinación en cambios y mejoras.
  6. Manejo de errores: Se ha depurado código debido a presencia de errores. 


Todo lo anterior se puede solucionar con el uso de control de código fuente (SCC: Source Code Control), ya que se van guardando los archivos de código fuente y de esta manera se pueden registrar los cambios que se han ido realizando.



¿Qué características debe de tener un sistema de control de versiones?

Los sistemas de control de versiones o VCS (del inglés Version Control System). Estos sistemas 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). Un sistema de control de versiones debe proporcionar:

  1. Mecanismo de almacenamiento de los elementos que deba gestionar (ej. archivos de texto, imágenes, documentación…).
  2. Posibilidad de realizar cambios sobre los elementos almacenados (ej. modificaciones parciales, añadir, borrar, renombrar o mover elementos).
  3. Registro histórico de las acciones realizadas con cada elemento o conjunto de elementos (normalmente pudiendo volver o extraer un estado anterior del producto).


Actualmente en el mercado encontramos tres tipos de Source Control: Locked (bloqueado), Merged (fusionado) y Distributed (distribuido). Existen varias herramientas en el mercado para control de código fuente y una de ellas es SubVersion (SVN). SVN es un sistema de control de versiones de código abierto y multiplataforma el cual se basa en tener un repositorio central el cual tiene la peculiaridad de que recuerda todos los cambios que se hayan hecho a sus archivos y directorios. En Lab it Studio contamos con material especializado para esta herramienta. Se puede encontrar mas información en: http://subversion.apache.org/.  

Apache Subversion (abreviado frecuentemente como SVN, por el comando svn) es una herramienta de control de versiones open source basada en un repositorio cuyo funcionamiento se asemeja enormemente al de un sistema de ficheros. Es software libre bajo una licencia de tipo Apache/BSD.

Subversion puede acceder al repositorio a través de redes, lo que le permite ser usado por personas que se encuentran en distintas computadoras. A cierto nivel, la posibilidad de que varias personas puedan modificar y administrar el mismo conjunto de datos desde sus respectivas ubicaciones fomenta la colaboración. Se puede progresar más rápidamente sin un único conducto por el cual deban pasar todas las modificaciones. Y puesto que el trabajo se encuentra bajo el control de versiones, no hay razón para temer porque la calidad de este vaya a verse afectada —si se ha hecho un cambio incorrecto a los datos, simplemente deshaga ese cambio.2

En Lab it Studio te acompañamos en todo el proceso de implementación de este tipo de herramientas en tu empresa, logrando de esta manera la máxima eficiencia en el control y liberación de software de tus sistemas de prueba, medición y automatización. ¡Contáctanos!



Únete a nuestra comunidad registrándote en el siguiente formulario y entérate de las novedades que Lab it Studio tiene para ti.