Software build

Source: Wikipedia, the free encyclopedia.

In software development, a build is the process of converting source code files into standalone software artifact(s) that can be run on a computer, or the result of doing so.[1]

Functions

Building software is an end-to-end process that involves many distinct functions. Some of these functions are described below.

Version control

The version control function carries out activities such as workspace creation and updating, baselining and reporting. It creates an environment for the build process to run in and captures metadata about the inputs and output of the build process to ensure repeatability and reliability.

Tools such as

help with these tasks by offering tools to tag specific points in history as being important, and more.

Code quality

Also known as static program analysis/static code analysis this function is responsible for checking that developers have adhered to the seven axes of code quality: comments, unit tests, duplication, complexity, coding rules, potential bugs and architecture & design.[2]

Ensuring a project has high-quality code results in fewer bugs and influences nonfunctional requirements such as maintainability, extensibility and readability; which have a direct impact on the ROI for a business.[3]

Compilation

This is only a small feature of managing the build process. The compilation function turns source files into directly executable or intermediate objects. Not every project will require this function.

While for simple programs the process consists of a single file being

compiled
, for complex software the source code may consist of many files and may be combined in different ways to produce many different versions.

Linking

An illustration of the linking process. Object files and static libraries are assembled into a new library or executable

In

assembler) and combines them into a single executable file, library
file, or another "object" file.

A simpler version that writes its
output directly to memory is called the loader, though loading is typically considered a separate process.[4][5]

Build tools

The process of building a

recompiled
("may not" rather than "need not" because it may itself depend on other files that have changed). Sophisticated build utilities and linkers attempt to refrain from recompiling code that does not need it, to shorten the time required to complete the build. A more complex process may involve other programs producing code or data as part of the build process and software.

See also

References

  1. ^ "What is Build?". Techopedia. Retrieved 2020-04-04.
  2. ^ "SonarQube™ software". Retrieved 4 January 2014.
  3. .
  4. (PDF) from the original on 2020-03-06. Retrieved 2020-03-07.
  5. . (xii+100 pages)