When programmers build software applications, they just do not sit down and start writing code. Instead, they follow an organized plan, or methodology, that breaks the process into a series of tasks. There are many application development methodologies just as ther are many programming languages. There different methodologies, however, tend to be variations of what is called the program development life cycle (PDLC).
The program development life cycle (PDLC) is an outline of each of the steps used to build software applications. Similarly to the way the system development lie cycle (SDLC) guides the systems analyst through development of an information system, the program development life cycle is a tool used to guide computer programmers through the development of an application. The program development lifecycle consists of six steps.
> STEP PROCEDURE DESCRIPTION
1. **Analyze the problem**: Precisely define the problem to be solved, and write program specifications – descriptions of the program’s inputs, processing, outputs, and user interface.
2. **Design the program**: Develop a detailed logic plan using a tool such as pseudocode, flowcharts, object structure diagrams, or event diagrams to group the program’s activities into modules; devise a method of solution or algorithm for each module; and test the solution algorithms.
3. **Code the program**: Translate the design into an application using a programming lanaguage or application development tool by creating the user interface and writing code; include internal documentation – comments and remarks within the code that explain the purpose of code statements.
4. **Test and debug the program**: Test the program, finding and correcting errors (debugging) until it is error free and contains enough safeguards to ensure the desired results.
5. **Formalize the solution**: Review and, if necessary, revise internal documentation; formalise and complete end-user (external) documentation
6. **Maintain the program**: Provide education and support to end users; correct any unanticipated errors that emerge and identify user-requested modifications (enhancements). Once errors or enhancements are identiied, the program development life cycle begins again at Step 1.