Gestión de la configuración de software en ingeniería de software

¿Qué es la gestión de la configuración del software?

En Ingeniería de Software, Gestión de configuración de software (SCM) Es un proceso para gestionar, organizar y controlar sistemáticamente los cambios en los documentos, códigos y otras entidades durante el ciclo de vida del desarrollo de software. El objetivo principal es aumentar la productividad con errores mínimos. SCM es parte del campo interdisciplinario de gestión de configuración y puede determinar con precisión quién realizó qué revisión.

¿Por qué necesitamos la gestión de configuración?

Las razones principales para implementar un sistema de gestión de configuración de software técnico son:

  • Hay varias personas trabajando en software que se actualiza continuamente.
  • Puede darse el caso de que en un proyecto de configuración de software participen varias versiones, ramas y autores y el equipo esté distribuido geográficamente y trabaje al mismo tiempo.
  • Es necesario tener en cuenta los cambios en los requisitos de los usuarios, las políticas, el presupuesto y el cronograma.
  • El software debería poder ejecutarse en varias máquinas y OperaSistemas de montaje
  • Ayuda a desarrollar la coordinación entre las partes interesadas.
  • El proceso SCM también es beneficioso para controlar los costos involucrados en realizar cambios en un sistema.

Necesita gestión de configuración

Cualquier cambio en los elementos de configuración del software afectará el producto final. Por lo tanto, es necesario controlar y gestionar los cambios en los elementos de configuración.

Tareas en el proceso SCM

  • Identificación de configuración
  • Líneas de base
  • Cambio de control
  • Contabilidad de estado de configuración
  • Auditorías de configuración y Revistas

Identificación de configuración

La identificación de la configuración es un método para determinar el alcance del sistema de software. Con la ayuda de este paso, puedes gestionar o controlar algo incluso si no sabes qué es. Es una descripción que contiene el tipo CSCI (Elemento de configuración del software informático), un identificador del proyecto e información de la versión.

Actividades durante este proceso:

  • Identificación de elementos de configuración como módulos de código fuente, caso de pruebay especificación de requisitos.
  • Identificación de cada CSCI en el repositorio SCM, mediante el uso de un enfoque orientado a objetos.
  • El proceso comienza con objetos básicos que se agrupan en objetos agregados. Se detallan qué, por qué, cuándo y quién realiza los cambios en la prueba.
  • Cada objeto tiene sus propias características que identifican su nombre que es explícito para todos los demás objetos.
  • Lista de recursos necesarios como el documento, el archivo, herramientas, etc.

Ejemplo:

En lugar de nombrar un archivo login.php, debería llamarse login_v1.2.php donde v1.2 representa el número de versión del archivo.

En lugar de nombrar la carpeta "Código", debería llamarse "Código_D", donde D representa el código del que se debe realizar una copia de seguridad diariamente.

Base

Una línea base es una versión formalmente aceptada de un elemento de configuración de software. Se designa y fija en un momento específico mientras se lleva a cabo el proceso SCM. Sólo se puede cambiar mediante procedimientos formales de control de cambios.

Actividades durante este proceso:

  • Facilitar la construcción de varias versiones de una aplicación.
  • Definir y determinar mecanismos para gestionar varias versiones de estos productos de trabajo.
  • La línea base funcional corresponde a los requisitos del sistema revisados.
  • Las líneas de base ampliamente utilizadas incluyen líneas de base funcionales, de desarrollo y de productos.

En palabras simples, línea base significa listo para su lanzamiento.

Cambio de control

El control de cambios es un método de procedimiento que garantiza la calidad y la coherencia cuando se realizan cambios en el objeto de configuración. En este paso, la solicitud de cambio se envía al administrador de configuración del software.

Actividades durante este proceso:

  • Controle los cambios ad hoc para crear un entorno de desarrollo de software estable. Los cambios se confirman en el repositorio.
  • La solicitud se comprobará en función del mérito técnico, los posibles efectos secundarios y el impacto general en otros objetos de configuración.
  • Gestiona los cambios y hace que los elementos de configuración estén disponibles durante el ciclo de vida del software.

Contabilidad de estado de configuración

La contabilidad del estado de la configuración rastrea cada versión durante el proceso de SCM. Esta etapa implica realizar un seguimiento de lo que tiene cada versión y los cambios que conducen a esta versión.

Actividades durante este proceso:

  • Mantiene un registro de todos los cambios realizados en la línea de base anterior para llegar a una nueva línea de base.
  • Identificar todos los elementos para definir la configuración del software.
  • Supervisar el estado de las solicitudes de cambio.
  • Lista completa de todos los cambios desde la última línea de base
  • Permite realizar un seguimiento del progreso hasta la siguiente línea de base.
  • Permite verificar lanzamientos/versiones anteriores que se extraerán para realizar pruebas.

Auditorías de configuración y Revistas

Las auditorías de configuración de software verifican que todo el producto de software satisfaga las necesidades básicas. Garantiza que lo que se construye es lo que se entrega.

Actividades durante este proceso:

  • La auditoría de configuración la llevan a cabo los auditores verificando que se sigan los procesos definidos y garantizando que se cumplan los objetivos de SCM.
  • Verificar el cumplimiento de los estándares de control de configuración. auditar y reportar los cambios realizados
  • Las auditorías SCM también garantizan que se mantenga la trazabilidad durante el proceso.
  • Garantiza que los cambios realizados en una línea base cumplan con los informes de estado de configuración.
  • Validación de integridad y coherencia.

Participante del proceso SCM

A continuación se presentan los participantes clave en SCM

Participante del proceso SCM

1. Administrador de configuración

  • El Administrador de configuración es el jefe responsable de identificar los elementos de configuración.
  • CM garantiza que el equipo siga el proceso SCM
  • Él/ella necesita aprobar o rechazar solicitudes de cambio.

2. Desarrollador

  • El desarrollador necesita cambiar el código según las actividades de desarrollo estándar o las solicitudes de cambio. Es responsable de mantener la configuración del código.
  • El desarrollador debe comprobar los cambios y resolver conflictos.

3. Auditor

  • El auditor es responsable de las auditorías y revisiones del SCM.
  • Necesidad de garantizar la coherencia y la integridad de la publicación.

4. Gerente de proyecto:

  • Asegurar que el producto se desarrolle dentro de un plazo determinado.
  • Supervisa el progreso del desarrollo y reconoce problemas en el proceso SCM.
  • Generar informes sobre el estado del sistema de software.
  • Asegúrese de que se sigan los procesos y políticas para crear, cambiar y probar

5 Usuario

El usuario final debe comprender los términos clave de SCM para asegurarse de tener la última versión del software.

Plan de gestión de configuración de software

La planificación del proceso SCMP (planificación de la gestión de la configuración del software) comienza en las primeras fases de codificación de un proyecto. El resultado de la fase de planificación es el plan SCM que podría ampliarse o revisarse durante el proyecto.

  • El SCMP puede seguir un estándar público como el IEEE 828 o un estándar específico de una organización.
  • Define los tipos de documentos a gestionar y una denominación de documentos. Ejemplo Prueba_v1
  • SCMP define la persona que será responsable de todo el proceso SCM y creación de líneas base.
  • Corregir políticas para la gestión de versiones y control de cambios.
  • Definir herramientas que se pueden utilizar durante el proceso SCM.
  • Base de datos de gestión de configuración para registrar información de configuración.

Herramientas de gestión de configuración de software

Cualquier software de gestión de cambios debe tener las siguientes tres características clave:

Gestión de concurrencia:

Cuando dos o más tareas se realizan al mismo tiempo, se le conoce como operación concurrente. La simultaneidad en el contexto de SCM significa que varias personas editan el mismo archivo al mismo tiempo.

Si la concurrencia no se gestiona correctamente con las herramientas SCM, puede crear muchos problemas urgentes.

Control de versiones:

SCM utiliza el método de archivado o guarda cada cambio realizado en el archivo. Con la ayuda de la función de archivado o guardado, es posible volver a la versión anterior en caso de problemas.

Synchronización:

Los usuarios pueden extraer más de un archivo o una copia completa del repositorio. Luego, trabajan en el archivo necesario y registran los cambios en el repositorio. Pueden sincronizar su copia local para mantenerse actualizados con los cambios realizados por otros miembros del equipo.

A continuación se muestran herramientas populares

1. Git: Git es una herramienta gratuita y de código abierto que ayuda al control de versiones. Está diseñado para manejar todo tipo de proyectos con rapidez y eficiencia.

Enlace de descarga: https://git-scm.com/

2. equipo Foundation Servidor: Equipo Foundation es un grupo de herramientas y tecnologías que permiten al equipo colaborar y coordinarse para crear un producto.

Enlace de descarga: https://azure.microsoft.com/en-us/services/devops/server/

3. ansible: Es una herramienta de gestión de configuración de software de código abierto. Además de la gestión de la configuración, también ofrece implementación de aplicaciones y automatización de tareas.

Enlace de descarga: https://www.ansible.com/

Consulte más herramientas de configuración de SW: https://www.guru99.com/software-configuration-management-tools.html

Conclusión

  • Las mejores prácticas de gestión de la configuración ayudan a las organizaciones a gestionar, organizar y controlar sistemáticamente los cambios en los documentos, códigos y otras entidades durante el proceso. Ciclo de vida del desarrollo de programas.
  • El objetivo principal del proceso SCM es aumentar la productividad con errores mínimos.
  • La razón principal detrás del proceso de gestión de configuración es que hay varias personas trabajando en un software que se actualiza continuamente. SCM ayuda a establecer concurrencia, sincronización y control de versiones.
  • Una línea base es una versión formalmente aceptada de un elemento de configuración de software.
  • El control de cambios es un método de procedimiento que garantiza la calidad y la coherencia cuando se realizan cambios en el objeto de configuración.
  • La contabilidad del estado de la configuración rastrea cada versión durante el proceso SCM
  • Las auditorías de configuración del software verifican que todo el producto de software satisfaga las necesidades básicas.
  • El director de proyecto, el director de configuración, el desarrollador, el auditor y el usuario participan en el proceso SCM.
  • La planificación del proceso SCM comienza en las primeras fases de un proyecto.
  • Git, Team Foundation Sever y Ansible son algunas herramientas SCM populares.

Resumir este post con: