fbpx
Wikipedia

Software build

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 edit

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

Version control edit

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 Git, AccuRev or StarTeam help with these tasks by offering tools to tag specific points in history as being important, and more.

Code quality edit

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 edit

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 edit

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

In computing, a linker or link editor is a computer system program that takes one or more object files (generated by a compiler or an 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 edit

The process of building a computer program is usually managed by a build tool, a program that coordinates and controls other programs. Examples of such a program are make, Gradle, Meister by OpenMake Software, Ant, Maven, Rake, SCons and Phing. The build utility typically needs to compile 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 edit

References edit

  1. ^ "What is Build?". Techopedia. Retrieved 2020-04-04.
  2. ^ "SonarQube™ software". Retrieved 4 January 2014.
  3. ^ Muschko, Benjamin. Gradle in Action. Manning Pubns Co. ISBN 9781617291302.
  4. ^ IBM OS Linkage Editor and Loader (PDF). IBM Corporation. 1972. (PDF) from the original on 2020-03-06. Retrieved 2020-03-07.
  5. ^ Barron, David William (1978) [1971, 1969]. "5.7. Linkage editors and consolidators". Written at University of Southampton, Southampton, UK. In Floretin, J. John (ed.). Assemblers and Loaders. Computer Monographs (3 ed.). New York, US: Elsevier North-Holland Inc. pp. 65–66. ISBN 0-444-19462-2. LCCN 78-19961. (xii+100 pages)

software, build, software, development, build, process, converting, source, code, files, into, standalone, software, artifact, that, computer, result, doing, contents, functions, version, control, code, quality, compilation, linking, build, tools, also, refere. 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 Contents 1 Functions 1 1 Version control 1 2 Code quality 1 3 Compilation 1 4 Linking 2 Build tools 3 See also 4 ReferencesFunctions editBuilding software is an end to end process that involves many distinct functions Some of these functions are described below Version control edit 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 Git AccuRev or StarTeam help with these tasks by offering tools to tag specific points in history as being important and more Code quality edit 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 amp 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 edit 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 edit This section is an excerpt from Linker computing edit nbsp An illustration of the linking process Object files and static libraries are assembled into a new library or executableIn computing a linker or link editor is a computer system program that takes one or more object files generated by a compiler or an 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 editThe process of building a computer program is usually managed by a build tool a program that coordinates and controls other programs Examples of such a program are make Gradle Meister by OpenMake Software Ant Maven Rake SCons and Phing The build utility typically needs to compile 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 editBuild automation List of build automation software Software versioningReferences edit What is Build Techopedia Retrieved 2020 04 04 SonarQube software Retrieved 4 January 2014 Muschko Benjamin Gradle in Action Manning Pubns Co ISBN 9781617291302 IBM OS Linkage Editor and Loader PDF IBM Corporation 1972 Archived PDF from the original on 2020 03 06 Retrieved 2020 03 07 Barron David William 1978 1971 1969 5 7 Linkage editors and consolidators Written at University of Southampton Southampton UK In Floretin J John ed Assemblers and Loaders Computer Monographs 3 ed New York US Elsevier North Holland Inc pp 65 66 ISBN 0 444 19462 2 LCCN 78 19961 xii 100 pages Retrieved from https en wikipedia org w index php title Software build amp oldid 1215591983, wikipedia, wiki, book, books, library,

article

, read, download, free, free download, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, picture, music, song, movie, book, game, games.