Program Development Lifecycle

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.

PDLC

Six Steps of PDLC

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.

What Initiates the Program Development Cycle?

As discussed in the systems analysis section the System Development Lifecycle consists of five phases: planning; analysis; design; implementation; and operation. During the analysis phase, the development team recommend how to handle software needs. Choices include purchasing packaged software, building custom software in-house, or outsourcing some or all the IT activities.

If the company opts for in-house development, the design and implementation phases of the system development cycle become quite extensive. In the design phase, the systems analyst creates a detailed set of requirements for the programmers. Once the programmers receive the requirements, the implementation phase begins. At this time, the programmer analyses the requirements of the problem to be solved. The program development cycle thus begins at the start of the implementation phase in the system development cycle.

The scope requirements largely determines how many programmers work on the program development. If the scope is large, a programming team that consists of a group of programmers may develop the programs. If the specifications are simple, a single programmer might complete all the development tasks. Whether a single programmer or a programming team, all the programmers involved must interact with users and members of the development team throughout the program development cycle.

By following the steps in the program development cycle, programmers create programs that are correct (produce accurate information) and maintainable (easy to modify). The following sections address each of the steps in the program development cycle.

Step 1 – Define (Analyze the Problem)

To decide what real word problem is to be solved and how a program can do this. The decisions of what the program shoudl do. Lookng at the flow of the data, the form of the input and ouput, the process needed and the use interaction.

A defining diagram helps the programmer to see the components. If I were asked to write a program whcih would comptuer the cost per square meter of living space for a house, given the dimensions of the house, the number of stories, the size of the non-living space, and the total cost o the land, I would know that any noun or adjective is input or output and any verb is process.

Design Diagram

Input Processing Output
Width of the house Caclulate cost per metre Gross footage
Length of the house Calculate living area  
Number of stories Calculate gross footage  
Size of nonliving space    
Selling price, less land    

Step 2 – Outline (Design the Program)

Breaking a large problem up into smaller ones. Deciding what the steps of the program are. A tool that is available to help the programmer during this step is a Flowchart, which is visual diagram of the flow of the program.

Develop the Algorithm

An algorithm is the step that a programmer will write that will become a program. It is written in a form of structured language called Pseudocode. Pseudocode is language nonspecific; it could be used by any programmer to help him or her write the actual program using any programming language. Each step of your algorithm will be directly translated into a line of code when it is time to write the program using the program language. One line of the algorithm is equal to one line of code. Algorithms are written in sequential order of action and are language on-specific. If an algorithm is written correctly, any programmer using any programming language could directly translate each line of the algorithm into a line of code. If the algorithm is correctly wrtten, the programmer knows that the program will work. It is possible to desk check the algorithm; it saves a programmer a log of time to use any algorithm and trace it to make sure that the program will be correct rather than just sitting down at the computer and writing out the program using the program language.

To help write the algorithm, many programmers use other tools first. One tool is a flowchart. This is a pictorial image of the steps of a program. The majority of programmers use both – the flowchart first and then the algorithm. Although flowcharting is not a requirement to creating an algorithm, it is a very helpful tool and I highly recommend its use. There are a number of flowcharting programs available which makes it quite easy to draw a flowchart. Two that you can dwonload from the Internet for free, are SmartDraw and RFFlow. You can also use the drawing features in Microsoft Word and Powerpoint.

After creating the flowchart, you will write the algorithm using pseudocode. Pseudocode should not use any reserve word. A reserveword, also known as a keyword, is a word that is reserved or used by any specific programming language to accomplish something. For example in C++, to show something on the computer screen, you would use the reserve word count. To do the same action using Pascal, you would use the reserve word function ‘writln’ and using Java, you would use the word ‘pintln’. We try to use normal, every day words when wrting the algorithm.

An algorithm must be:

  1. Be lucid, precise, and unambiguous
  2. Give the correct solution in all cases
  3. Eventually end (be complete)

Step 3 – Code (Code the Program)

Actually using an specific programming language to write lines of program. These lines of code are also called the listing, and are also known as the source code. The program that you run is called the object code. When you use Word, you are using the object code. The actual lines of instruction, written by the programmer, that make Word run are the source code. Some programs execute the lines of code one by on; these types of programming languages are known as interpreters. The advantage of an intepreter is that, for a programming student, they are much easier to learn, as you are able to write one line of code and immediately test it to make sure works. The disadvantage is that these programs run slower. Basic and HTML are interpreters. Other programming languages are compilers; they execute the entire program at one time. These programs execute much faster, but require a programmer to write an entire program to test a section. C++ is a complier.

Step 4 – Test (Debug the Program)

To make sure that the algorithm of your program does what it should. An error in a program is known as a bugs and the process of finding bugs is known as debugging Desk checking is looking at lines of code one by one to see if they have been written correctly and the logic is correct. Desk checking is also called tracing. The walkthrough is just when a group of people do a desk check.

Step 5 – Run/Execute (Formalize the Solution)

To run the program on a computer. When you run a C++ program, first the program will complie the program. This translates the human code into binary language. When you run the program, you will do further testing. There are two main types of errors, syntax and logic errors. Syntax errors are problems with grammar, spelling, or punctuation. If you have left of a semi colon or added one where you shouldn’t have or misspelled a reserve word, these are all syntax errors. These are the easiest one to find because the program itself helps you to find them.

After the program’s translator runs, the linker runs. The linker portion of the software connects your program with lines of code that are pre-written. larger numbers of files of this code are available in libraries. Libraries that can be linked to your code take a lot of work away from you as a programmer.

Logic errors are errors that make a program’s results incorrect. These are much more difficult to find. No compiler will stop and tell you that you have a logic error. To the computer, which is a stupid thing that only follows orders, thre is nothing incorrect about a logic error. You, the programmer, need to find the logic errors by yourself. An example would be meaning to add two numbers together and to then multiply the results, but writing the formula without the required parentheses. (2+3) * 5 = 25, but 2 + 3 * 5 = 17 … a very different result.

Another type of error which is common in C++ is run time error. One type of run time error is called linking error. If, in your computer program, you referrred to wantign to use some code in a library and that library was not on your computer for some reason, you would get a run time message stating that the program could not run. Another type of run time error would be a program that tires to divide some number by zero. Dividing by zero is a illegal operation.

Step 6 – Document and Maintain the Program

To Document is to put togther all of the materials that have been generated throughout the PDLC process. All of the flowcharts, messages, algorithms, lines of code, and the user manuals are part of this documentation. Internal documentation is used by other programmers to help them know why you did something a certain way or tell them how you wrote a program. Since many programmers work on teams, it is very important to have good internal documentation so that each programmer on the team can understand each other’s work. It is also a fact that a programmer might start working on a program and then leave the company for whatever reason (or be placed onto another more urgent project). The person who takes over that job needs to see the internal documentation so that she can pick up where the leaving programer left off. if you are a programmer who needs to update a program or correct a program you’ll not be very happy if the program is not documented. if you are in doubt, it is always better to have too much itnernal documentation than too little. External documentation includes user manuals and anything that is not the actual code or is part of the listing. This should also include materials that are placed on a website such as FAQs (frequently asked questions) and help areas.

To maintain is to make sure that the program keeps running as it should and to do any needed updating or fixing. Maintenance is the longest phase of the PFLC. As users use the porgram, they will notice things that need to be fixed or updated. No matter how many times you test a program to make sure that it will work as expected, it is only when it actually gets into the hands of the actual end user that some of these errors show up. You will continue to fix and update the program until it reaches a point where the program has become redundant or too old. At that time, maintencance stops and the PDLC is started all over again.