HOME

TheInfoList



OR:

In
software development Software development is the process of conceiving, specifying, designing, programming, documenting, testing, and bug fixing involved in creating and maintaining applications, frameworks, or other software components. Software development invo ...
, a build is the process of converting
source code In computing, source code, or simply code, is any collection of code, with or without comments, written using a human-readable programming language, usually as plain text. The source code of a program is specially designed to facilitate the ...
files into standalone software artifact(s) that can be run on a computer, or the result of doing so.


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 In software engineering, version control (also known as revision control, source control, or source code management) is a class of systems responsible for managing changes to computer programs, documents, large web sites, or other collections o ...
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
Git Git () is a distributed version control system: tracking changes in any set of files, usually used for coordinating work among programmers collaboratively developing source code during software development. Its goals include speed, data in ...
, AccuRev or
StarTeam StarTeam is a version control system used in software development, especially when a project involves multiple teams in different locations. StarTeam is an SCM and SDLC software application, created by Starbase Corporation, which was acquired ...
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 In computing, a compiler is a computer program that translates computer code written in one programming language (the ''source'' language) into another language (the ''target'' language). The name "compiler" is primarily used for programs tha ...
, for complex software the source code may consist of many files and may be combined in different ways to produce many different versions.


Build tools

The process of building a
computer program A computer program is a sequence or set of instructions in a programming language for a computer to Execution (computing), execute. Computer programs are one component of software, which also includes software documentation, documentation and oth ...
is usually managed by a build tool, a program that coordinates and controls other programs. Examples of such a program are make,
Gradle Gradle is a build automation tool for multi-language software development. It controls the development process in the tasks of compilation and packaging to testing, deployment, and publishing. Supported languages include Java (as well as Kotli ...
, Meister by
OpenMake Software OpenMake Software formerly Catalyst System is a privately held, DevOps company. OpenMake Software has offices in North America and Europe. History Openmake Software was founded as Catalyst Systems in 1995 by Tracy Ragan and Steven Taylor. Open ...
,
Ant Ants are eusocial insects of the family Formicidae and, along with the related wasps and bees, belong to the order Hymenoptera. Ants evolved from vespoid wasp ancestors in the Cretaceous period. More than 13,800 of an estimated total of ...
,
Maven MAVEN is an American spacecraft orbiting Mars to study the loss of its atmospheric gases to space, providing insight into the history of the planet's climate and water. The spacecraft name is an acronym for "Mars Atmosphere and Volatile Evolu ...
,
Rake Rake may refer to: * Rake (stock character), a man habituated to immoral conduct * Rake (theatre), the artificial slope of a theatre stage Science and technology * Rake receiver, a radio receiver * Rake (geology), the angle between a feature on a ...
, SCons an
Phing
The build utility typically needs to
compile In computing, a compiler is a computer program that translates computer code written in one programming language (the ''source'' language) into another language (the ''target'' language). The name "compiler" is primarily used for programs th ...
the various files, in the correct order. If the source code in a particular file has not changed then it may not need to be 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

* Build automation *
List of build automation software Build automation involves Scripting language, scripting or automating the process of Compiler, compiling computer source code into binary code. Below is a list of notable tools associated with automating build processes. Make-based * make (softwa ...
*
Software versioning Software versioning is the process of assigning either unique ''version names'' or unique ''version numbers'' to unique states of computer software. Within a given version number category (e.g., major or minor), these numbers are generally assig ...


References

{{DEFAULTSORT:Software Build Software development Computer programming