Jump to content

Program lifecycle phase

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by 24.211.196.145 (talk) at 21:09, 15 February 2017 (Phases). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

Program lifecycle phase is a technical term encompassing the stages a computer program must undergo from initial creation to execution. The main phases are edit time, compile time, distribution time, installation time, link time, load time, and run time.

Note that these phases do not necessarily happen in a linear order. Rather, they can be intertwined in various ways. For example, when writing new source code, a software developer may need to repeatedly edit and compile to get the desired functionality in a good enough condition to start rigorous testing.

Also note that this a technical topic. For information on organizational matters refer to the software development process article.

Phases

Edit time (or Design time) is when the source code of the program is being edited. This spans initial creation to any bug fix or addition of new features. Editing is typically performed by a person, but automated design tools and meta-programming systems are also used.

Compile time is when source code is translated into machine code by a compiler. Part of this involves language checking, such as ensuring proper use of the type system. The result of successful compilation is an executable.

Distribution time is process of transferring a program for deployment on its target system. 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 either physical media such as a USB flash drive or a remote download via the Internet.

Installation time gets the distributed program ready for execution on the target system. Note that the installation process may invoke other lifecycle phases, such as analyzing and re-compiling the program in order to improve its execution efficiency on the particular platform.

Link time is when the names of implementations are looked up and connected together. For example, a program that invokes libraries does so by stating both the name and an interface of each library so that particular library implementations can be connected to it. There are two types of linking. Static linking is when the connection is done by the compiler, thus always prior to execution. Dynamic linking, however, is performed by the operating system just before, or even during, program execution.

Load time is the when the operating system takes the program's executable from storage (typically a hard disk drive) and places it into active memory, in order to begin execution.

Run time is the execution phase, when the program's behavior is carried out by the processor. Programs may run indefinitely. If excecution terminates it will either be normal, expected behavior or an abnormality such as a crash.