En el desarrollo de software , una compilación es el proceso de convertir archivos de código fuente en artefactos de software independientes que se pueden ejecutar en una computadora, o el resultado de hacerlo. [1]
Funciones
La creación de software es un proceso integral que implica muchas funciones diferentes. Algunas de estas funciones se describen a continuación.
Control de versiones
La función de control de versiones lleva a cabo actividades como la creación y actualización de espacios de trabajo, la creación de líneas de base y la generación de informes. Crea un entorno en el que se ejecuta el proceso de compilación y captura metadatos sobre las entradas y salidas del proceso de compilación para garantizar la repetibilidad y la confiabilidad.
Herramientas como Git , AccuRev o StarTeam ayudan con estas tareas al ofrecer herramientas para etiquetar puntos específicos del historial como importantes, y más.
Calidad del código
También conocida como análisis de programa estático/análisis de código estático, esta función es responsable de verificar que los desarrolladores hayan respetado los siete ejes de calidad del código: comentarios, pruebas unitarias, duplicación, complejidad, reglas de codificación, errores potenciales y arquitectura y diseño. [2]
Asegurarse de que un proyecto tenga un código de alta calidad da como resultado menos errores e influye en requisitos no funcionales como la capacidad de mantenimiento, la extensibilidad y la legibilidad; que tienen un impacto directo en el ROI de una empresa. [3]
Compilación
Esta es solo una pequeña característica de la gestión del proceso de compilación. La función de compilación convierte los archivos fuente en objetos intermedios o directamente ejecutables. No todos los proyectos requerirán esta función.
Mientras que para programas simples el proceso consiste en compilar un solo archivo , para software complejo el código fuente puede constar de muchos archivos y combinarse de diferentes maneras para producir muchas versiones diferentes.
Enlace

En informática , un enlazador o editor de enlaces es un programa de sistema informático que toma uno o más archivos de objeto (generados por un compilador o un ensamblador ) y los combina en un único archivo ejecutable , archivo de biblioteca u otro archivo "objeto".
Una versión más simple que escribe su salida directamente en la memoria se llama cargador , aunque la carga generalmente se considera un proceso separado. [4] [5]Herramientas de construcción
El proceso de creación de un programa informático suele estar gestionado por una herramienta de creación , un programa que coordina y controla otros programas. Algunos ejemplos de este tipo de programas son make , Gradle , Ant , Maven , Rake , SCons y Phing. La utilidad de creación normalmente necesita compilar los distintos archivos en el orden correcto. Si el código fuente de un archivo concreto no ha cambiado, puede que no sea necesario volver a compilarlo ("puede que no" en lugar de "no es necesario" porque puede que dependa de otros archivos que hayan cambiado). Las utilidades de creación y los enlazadores sofisticados intentan abstenerse de volver a compilar el código que no lo necesita, para acortar el tiempo necesario para completar la creación. Un proceso más complejo puede implicar que otros programas produzcan código o datos como parte del proceso de creación y del software.
Véase también
- Automatización de la construcción
- Lista de software de automatización de compilaciones
- Control de versiones del software
Referencias
- ^ "¿Qué es Build?". Techopedia . Consultado el 4 de abril de 2020 .
- ^ "Software SonarQube™" . Consultado el 4 de enero de 2014 .
- ^ Muschko, Benjamin. Gradle en acción . Manning Pubns Co. ISBN 9781617291302.
- ^ Editor y cargador de enlaces de IBM OS (PDF) . IBM Corporation . 1972. Archivado (PDF) desde el original el 6 de marzo de 2020 . Consultado el 7 de marzo de 2020 .
- ^ Barron, David William (1978) [1971, 1969]. "5.7. Editores y consolidadores de enlaces". Escrito en la Universidad de Southampton , Southampton, Reino Unido. En Floretin, J. John (ed.). Ensambladores y cargadores . Monografías informáticas (3.ª ed.). Nueva York, EE. UU.: Elsevier North-Holland Inc., págs. 65-66. ISBN 0-444-19462-2.LCCN 78-19961 .(xii+100 páginas)