1.2 Herramientas Colaborativas - 2

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 5

UNIDAD ACADÉMICA: ESCUELA SUPERIOR DE COMERCIO Y ADMINISTRACIÓN UNIDAD

SANTO TOMÁS
PROGRAMA ACADÉMICO: Licenciatura en Negocios Digitales

UNIDAD DE APRENDIZAJE: Laboratorio empresarial. Sistemas de


SEMESTRE: 2
información de gestión empresarial.
UNIDAD TEMÁTICA I: Abstracción de procesos de negocios

Profesor: Jovan Del Prado López

1.2 Herramientas colaborativas para manejo de versiones y diseño de


sistemas

Softwares de control de versiones

¿Qué es un control de versiones y por qué es tan importante usarlo en nuestro proyecto web? A
continuación, te lo explicamos.

Un controlador de versiones es un sistema que nos permite guardar un registro de las


modificaciones que realizamos sobre un fichero o conjunto de ficheros a lo largo del tiempo de tal
manera que sea posible recuperar versiones específicas más adelante. Habitualmente se utiliza en
entornos de desarrollo de software, pero puede resultar de gran utilidad para cualquier persona
que necesite un control robusto sobre la tarea que está realizando.

La mayoría de la gente utilizamos algún sistema de control de versiones sin ser conscientes de ello.
El ejemplo más claro es al editar cualquier tipo de fichero en servicios de almacenamiento en “la
nube” como Google Drive o Dropbox.

Pero, ¿por qué es importante utilizar un sistema de control de versiones?

Un software de control de versiones (VCS) es una valiosa herramienta con numerosos beneficios
para un flujo de trabajo de equipos de software de colaboración. Cualquier proyecto de software
que tiene más de un desarrollador manteniendo archivos de código fuente debe usar un VCS.
Además, los proyectos mantenidos por una sola persona se beneficiarán enormemente de su uso.
Se puede decir que no hay una razón válida para privarse del uso de un VCS en cualquier proyecto
moderno de desarrollo de software.
Características fundamentales

Resolución de conflictos

Es muy probable que los miembros del equipo tengan la necesidad de realizar cambios en el
mismo archivo de código fuente al mismo tiempo. Un VCS monitoriza y ayuda a poder resolver los
conflictos entre varios desarrolladores.

Revertir y deshacer los cambios en el código fuente

Al empezar a monitorizar un sistema de archivos de códigos fuente, existe la posibilidad de revertir


y deshacer rápidamente a una versión estable conocida.

Copia de seguridad externa del código fuente

Se debe crear una instancia remota del VCS que se puede alojar de forma externa con un tercero
de confianza y con ello, se conservará una copia del código fuente.

Softwares de controles de versiones (Top 5)

Git: es una de las mejores herramientas de control de versiones disponible en el mercado actual.
Es un modelo de repositorio distribuido compatible con sistemas y protocolos existentes como
HTTP, FTP, SSH y es capaz de manejar eficientemente proyectos pequeños a grandes.

CVS: es otro sistema de control de versiones muy popular. Es un modelo de repositorio cliente-
servidor donde varios desarrolladores pueden trabajar en el mismo proyecto en paralelo. El cliente
CVS mantendrá actualizada la copia de trabajo del archivo y requiere intervención manual sólo
cuando ocurre un conflicto de edición.

Apache Subversion (SVN): abreviado como SVN, apunta a ser el sucesor más adecuado. Es un


modelo de repositorio cliente-servidor donde los directorios están versionados junto con las
operaciones de copia, eliminación, movimiento y cambio de nombre.

Mercurial: es una herramienta distribuida de control de versiones que está escrita en Python y
destinada a desarrolladores de software. Los sistemas operativos que admite son similares a Unix,
Windows y macOS. Tiene un alto rendimiento y escalabilidad con capacidades avanzadas de
ramificación y fusión y un desarrollo colaborativo totalmente distribuido. Además, posee una
interfaz web integrada.

Monotone: está escrito en C ++ y es una herramienta para el control de versiones distribuido. El


sistema operativo que admite incluye Unix, Linux, BSD, Mac OS X y Windows. Brinda un buen
apoyo para la internacionalización y localización. Además, utiliza un protocolo personalizado muy
eficiente y robusto llamado Netsync.
¿Qué es un sistema de control de versiones?

Un sistema de control de versiones (o VCS, por sus siglas en inglés), también conocido como
sistema de control de revisiones o de fuentes, es una herramienta de software que monitoriza y
gestiona cambios en un sistema de archivos. Asimismo, un VCS ofrece herramientas de
colaboración para compartir e integrar dichos cambios en otros usuarios del VCS. Al operar al nivel
del sistema de archivos, un VCS monitorizará las acciones de adición, eliminación y modificación
aplicadas a archivos y directorios. Un repositorio es un término del VCS que describe cuando un
VCS está monitorizando un sistema de archivos. En el alcance los archivos individuales de códigos
fuente, un VCS monitorizará las adiciones, eliminaciones y modificaciones de las líneas de texto
que contiene ese archivo. Entre las opciones populares de VCS del sector de software, se incluyen
Git, Mercurial, SVN y preforce.

¿Por qué necesito un software de control de versiones?

VCS es una valiosa herramienta con numerosos beneficios para un flujo de trabajo de equipos de
software de colaboración. Cualquier proyecto de software que tiene más de un desarrollador
manteniendo archivos de código fuente debe, sin duda, usar un VCS. Además, los proyectos
mantenidos por una sola persona se beneficiarán enormemente del uso de un VCS. Se puede decir
que no hay una razón válida para privarse del uso de un VCS en cualquier proyecto moderno de
desarrollo de software.

Resolución de conflictos

Durante el ciclo de vida de un proyecto de software impulsado por equipos, es muy probable que
los miembros del equipo tengan la necesidad de realizar cambios en el mismo archivo de código
fuente al mismo tiempo. Un VCS monitoriza y ayuda en los conflictos entre varios desarrolladores.
Estas operaciones de resolución de conflictos dejan un registro de auditoría que ofrece
información sobre el historial de un proyecto.

Revertir y deshacer los cambios en el código fuente

Una vez que un VCS ha empezado a monitorizar un sistema de archivos de códigos fuente,
conserva un historial de cambios y el estado del código fuente durante el historial de un proyecto.
De esta forma, existe la posibilidad de "deshacer" o revertir un proyecto de código fuente a un
estado conocido reciente. Si se detecta un fallo en una aplicación en vivo, el código puede
revertirse rápidamente a una versión estable conocida.
Copia de seguridad externa del código fuente

Al usar un VCS de forma colaborativa, se debe crear una instancia remota del VCS para compartir
cambios entre desarrolladores. Esta instancia remota del VCS se puede alojar de forma externa
con un tercero de confianza como Bitbucket. A continuación, se convierte en una copia de
seguridad externa. En un caso desafortunado (como el del robo de un portátil), la instancia remota
del VCS conservará una copia del código fuente.

DISTRIBUCIÓN CENTRALIZACIÓN

Las herramientas del VCS se dividen en dos tipos principales de arquitectura remota. Estos tipos de
arquitectura están centralizados y distribuidos.

Cuando hablamos de los pros y los contras de cada arquitectura, la función de copia de seguridad
externa es el principal punto de debate. Un VCS centralizado cuenta con un solo punto de error,
que es la instancia remota del VCS central. Si se pierde dicha instancia, puede producir la pérdida
de datos y productividad, y se deberá sustituir por otra copia del código fuente. Si se vuelve
temporalmente no disponible, evitará que los desarrolladores envíen, fusionen o reviertan código.
Un modelo distribuido de arquitectura evita estos obstáculos manteniendo una copia total del
código fuente en cada instancia de VCS. Si se produce en el modelo distribuido cualquiera de los
casos de error centralizados antes mencionados, se puede introducir una instancia de VCS al
principal mitigando cualquier caída grave de productividad.

Las ventajas de las herramientas del control de versiones

Integrar un VCS en un proyecto de desarrollo de software favorece una variedad de ventajas ge


gestión y organización. De forma predeterminada, solo un VCS ofrece las ventajas técnicas antes
mencionadas sobre la resolución de conflictos de equipos y ayudas de colaboración. Un servicio
alojado de VCS encapsula una VCS predeterminada y ofrece mejoras en las funciones. Este "VCS
mejorado" es increíblemente potente y proporciona una visión transparente del proceso de
desarrollo de software, que suele ser una tarea creativa opaca. Los siguientes puntos son algunas
de las ventajas de alto nivel que ofrece un VCS alojado.
Integraciones de terceros ampliadas

El VCS se puede seguir mejorado cuando se integra con una solución alojada segura de terceros,
como Bitbucket. Un VCS alojado ofrece sus propias extensiones a otras aplicaciones y servicios,
mediante integraciones como el Atlassian Marketplace. Por ejemplo, un VCS alojado con Bitbucket
podrá compartir datos del VCS con el software de seguimiento de tareas de Jira y la plataforma de
documentación de la base de conocimiento de Confluence. Esto son solo dos ejemplos, a partir de
un mundo de integraciones que puede ofrecer un VCS alojado.

Comunicación entre equipos

Un VCS alojado ofrece herramientas ampliadas de mensajería y comunicación por foros, que
puede suponer una ayuda valiosa en la colaboración entre equipos. Estas herramientas de
mensajería permiten establecer un hilo claro de mensajes de desarrollo de código fuente línea a
línea. Las herramientas de mensajería no están restringidas a un hilo de código fuente y pueden
ser herramientas valiosas para promocionar el debate entre equipos sobre objetivos
empresariales de alto nivel relacionados con el desarrollo de código fuente.

Conocimiento, medición y responsabilidad

Una organización basada en ingeniería puede utilizar un VCS alojado para monitorizar y medir
indicadores clave de rendimiento (KPI). Un VCS alojado ofrecerá información sobre la velocidad y
eficiencia con la que opera un proyecto de desarrollo de software. Un VCS alojado proporciona
herramientas para capturar mediciones como: nuevas funciones implementadas, velocidad de
creación de código, tiempo de desarrollo, fallos creados y arreglados, y mucho más.

Automatización de canalizaciones de CI o CD

Los flujos de trabajo de entrega continua se pueden crear mediante el uso de integraciones
externas de VCS alojado. Un desarrollador inicia una transacción para integrar sus ediciones de
código fuente en la base de código grande. Durante este proceso, el VCS alojado se puede
configurar con numerosas extensiones para ayudar a optimizar la revisión de código y el proceso
de entrega. Cosas como las compilaciones automatizadas, las pruebas y las implementaciones se
pueden orquestar en un sencillo archivo YAML de configuración como código.

También podría gustarte