Program lifecycle phase

For example, when modifying a program, software developers may need to repeatedly edit, compile, install, and execute it on their own computers to ensure sufficient quality before it can be distributed to users; copies of the modified program are then downloaded, installed, and executed by users on their computers.

Editing is typically performed by a person, but automated design tools and metaprogramming systems may also be used.

Link time connects all of the necessary machine code components of a program, including externals.

The distribution format is typically an executable, but may also be source code, especially for a program written in an interpreted language.

The means of distribution can be physical media such as a USB flash drive or a remote download via the Internet.