Definition: This is normally done by the systems analyst who talks to the user (or customer) about requirements, and supplies the programmer with input and output data layouts (specs).
Design: With specifications on hand, the programmer designs the program using tools such as flowcharts, hierarchy charts, and pseudocode.
Coding: The programmer then enters the program into a file called the source program file, according to the syntax rules of the computer language.
Compiling: The programmer verifies the syntax to make sure the compiler produces the object program file without serious diagnostics (error messages).
Linking: The object program file is then linked to other object files and references to symbols not defined locally by the program are resolved. The linker or link editor used for this purpose produces an executable load module in the machine's language. The "load module" is ready to be loaded into the memory and run.
Testing: The programmer runs the executable load module using test data that represents application. He checks to make sure the specifications are met with correct outputs. This phase unmasks faults in the design and logic of the program that are referred to as "bugs." The debugging tools are used to identify the source of faults so that they can be fixed (directly or through modification of the source program) . Note that, after testing phase is over, and the program is operational on the field (say, processing cash machine transactions), new faults or bugs may be found. Thus debugging is a continuous process of keeping a program up-to-date and correct in regards to expected results.
Documenting: Unless self-documenting, the program must be described (narrated) so that it can be understood and modified if necessary by other people. However, it is more important to document subsystems that consist of numerous interrelated programs because of greater complexity.
First read the answer fully, then try to explain it in your own words. After that, open a few related questions and compare the concepts. This method helps you remember the topic for a longer time and improves exam preparation.