Lably
Skip to content

Software build

Source code converted to software artifacts

  • 3 min read
  • 2 chapters

Related on Lably

Through Return on investment, Compiler and Computer program

In software production, builds optimize software for performance and distribution, packaging into formats such as '.exe'; '.deb'; '.apk'.

The build process often employs specialized tools such as CMake, Make, or Gradle, and integrates with automation systems including Jenkins or GitHub Actions. Despite advancements, challenges such as dependency conflicts, platform compatibility, and long compile times, remain problems.

Functions

In software development, 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 outputs of the build process to ensure repeatability and reliability.

Tools such as Git, AccuRev or StarTeam 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.

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.

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

A linker or link editor is a computer program that combines intermediate software build files such as object and library files into a single executable file such as a program or library. A linker is often part of a toolchain that includes a compiler and/or assembler that generates intermediate files that the linker processes. The linker may be integrated with other toolchain tools such that the user does not interact with the linker directly.

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

Sign in to keep reading

One more chapter is free with a Lably account.

More in Computing and communication