Most companies have certain tasks that are unique to their company. Collectively the programming staff may decide to build several functions and organize them into one or more user libraries. Specific task functions are often built using a testing shell program. The sole purpose of the testing shell program is to create the specific task functions and to test them to insure that they are working properly. Think of a clam, its shell surrounds the important part, the pearl. A testing shell program surrounds the specific task function (the important part). Usually the testing shell program will be used to create several functions that will be placed into a user defined library. The process flows as follows:
- The testing shell program with the specific task functions is built and thoroughly tested.
- A copy of the testing shell source code is saved as the header file that once modified will be placed in the user library. You delete the main part of the program leaving a comments area, any needed include file references and the specific task functions.
Figure 1: Creating a header file from a copy of the testing shell. Header File Creation 
- Another copy of the testing shell source code is saved as the prototypes file. This is a text file that retains only the prototypes for the functions that were placed into the header file. The functions should be using meaningful identifier names, thus the prototypes should provide adequate information to others on how to call the function with appropriate parameter passing.
Figure 2: Creating a prototypes file from a copy of the testing shell. Prototypes File Creation 
- Another copy of the testing shell source code is saved as the verify header program. You delete the functions prototypes and definitions then provide an include that points to the header file. This program is compiled and run to make sure the header file is working properly.
Figure 3: Creating a verify header file from a copy of the testing shell. Verify Header File Creation 
A good way to understand the concept is to review the four files described above that have been created by a programmer. We will be using the C++ programming language, however the code is easy to understand and will serve our needs well at explaining the concepts; even if you are not familiar with C++.







Integrated Development Environment
Specific Task Functions

"Used in the Computer Programming Fundamentals I course."