System Builds
Abstract
Software build is the process used to construct an executable software program from it components. There can be a variety of inputs to the build process depending on the source code language chosen for the program; however, the output is always an executable program with some documentation. A software build takes source and/or object code and produces an executable representation of the code. Languages such as C, C++, and Ada require a compiler to produce object code from source and then a linker to produce executable code from object code. Some high level languages, are able to create an executable program directly from the source code. The programmer is required to instruct the development computer on how to create the executable program through the use of computer control language directives. These instructions vary according to the source language and/or the computer system that will execute the program.
Using the inputs stated above, the typical software build process consists of the following steps: Computer control language directives are prepared; The compiler/assembler or translator is executed with source code provided as input; A linker tool may be necessary to complete the build process and produce the executable representation of the code.
The build process assists the software developer in many evaluation and delivery preparation activities. Builds of prototype or temporary code are performed during the development process to produce executable programs that aid in validation of software requirements and designs. One of the last steps in the development process is to perform a build of all the components producing the final executable program for delivery to the user. Depending on the software development model chosen, software builds may occur very early in the requirements definition phase and continue until the final executable is produced. In some models, builds of deliverable code may occur only after coding is complete for one or more components. This article examines how software builds may be utilized during typical software development phases. A generic and rather simple model will be used here to demonstrate the flexibility and usefulness of software builds as a tool to assist the developer in producing high quality products.