Program Development Process
To become a successful programmer, you need to begin to work like a programmer. To work like a programmer, you have to start using the program development process. Even though the process name sounds rather imposing, the program development process (PDP) is actually very straightforward and very much common sense. PDP is a sub-process of SDLC that becomes part of several of the steps of SDLC.
Program Development Process (PDP) - you can think of the program development process as standardized set of steps used to provide a logical, common sense approach (or process) to solving a difficult problem with a computer application. PDP is a checklist that ensures that the steps of building a program are followed so that no important step is omitted or taken out of order. This process has long been used by programmers as a professional standard because of it simplicity, effectiveness and consistency.
Figure 4: Program Development Process is outlined as a five step sequential approach. Maintenance is reflected as a separate process that can occur one or more times after the original program is implemented.
Key Point: SDLC and the PDP are not industry standardized processes. In other words, you may find different various versions of each depending on the development process you are using. The PDP, in particular, is a process created specifically for the lesson as a composite of other similar program development processes used in the industry. If your SDLC and PDP phases look different that in other textbooks, look at the activities in each phase and you will see that even if the phase name is different, the spirit of each phase is the same.
What are the different types of computer programs?
Can you execute an application program without an operating system?
Why was it written that we are concentrating on custom applications in this lesson?
What are the phases of SDLC?
How is PDP similar to SDLC?
An Example: Using the SDLC and the Program Development Process
Problem: Program Logic is needed to develop a program that wills Average Class Grades.
Program Development Process Phases
Start with a problem statement: I need a program that will calculate the test scores for a class of 15 students and tell me the average test score.
*Fact finding or requirements analysis (done by interviewing the end user): Do you have an example of how you want the average number displayed? Do all of the test scores need to be displayed or just the final average? How would you like to input the scores? One at a time or all at once? What if there are less than 15 scores?
- Conceptual design: Conceptual design usually takes the form of a logic model that lays out the ideal logic structures to provide a solution. In conceptual design, we will program the expressions needed to calculate the average along with the logic necessary to accept the inputted values.
- Detail design: We are ready to code our solution using a programming language. We take the conceptual design as a starting point and using the syntax options of the programming language, code the logic structures into programming language structures.
- Testing: We will perform unit tests as we go. Unit testing is used to test sections of the entire program. A system test will be performed at the end of the process to make sure our scores are calculating correctly and that any errors are flagged for the end user.
- Implementation: During implementation, we move into production the test average calculator program on to the PC of the person using it. The program is complete and ready to use.
- Maintenance: No program is written once and not revisited without some changes. No sooner than the user started to use this program then did they decide that it would be useful in their other classes. The other classes have different numbers of students so that a program that score 15 tests needs to be changed to a program that scores however many tests the user has to grade. We now start back up at the problem statement and move through the phases once more for this program maintenance.
Other Program Development Process Concerns
The following processes and activities are not defined specifically to one program development phase but in fact can be a part of several or all of the PDP phases.
Deployment concerns the techniques that will be used to deliver your program to your users. Deployment is affected by options available for the distribution of software (i.e. some user's computers will have to be updated by CD-ROM or updated via the Intranet/Internet) and the type of program (Internet or Desktop). You'll also want to consider if automatic configuration is required by your program. This might include placement of an icon on the users desktop or placement of the program in the programs start menu (in the case of Microsoft Windows).
Internet applications have different deployment concerns and require planning throughout the PDP process. Programs do exist for the programmer to assist in deployment. Understanding the features and functions of these products early in the detail design process can make deployment much easier when the project reaches implementation.
It is very easy to forget about training and documentation until the project is complete. Many times training and documentation is either ignored or given no consideration at all. You need a look this task as one of the ways to ensure your programs success. If users cannot understand how the program works, they will both reject the program out of frustration or turnaround and request a number of modifications which will only lengthen the amount of time and cost needed to complete the software.
Programming Tip: Many programming languages support special documentation tags (these tags are similar to HTML tags, if you are familiar with web page formatting) which can be added during the coding process so that documentation can be created automatically when the program is complete.
Training is sometimes the responsibility of the programmer and is sometimes the responsibility of education and training staff. Even if it's the responsibility of another group, as the programmer, you'll certainly have to be actively involved in describing how the program operates and what prerequisite skills will be necessary for full use of the programs features.
Not all programs are contained in a single file and programmed by one programmer. Depending on the size of the application project, you may be part of a team who is developing a new system. This team may be developing 20 are 30 programs independently of one another but programs which will need to function in concert with one another at the project's conclusion. To facilitate an effort of this magnitude, typically a project manager is assigned to the project. The project manager will likely use project management software. Project management software packages are designed to improve the productivity of the entire team by keeping track of who's doing what and in what sequence. It helps ensure that programs are developed on schedule and that one programmer is not held up waiting for the work of another programmer to be completed.
What are the main tasks in conceptual design phase of PDP?
Why is deployment, project management and training outside the tasks in PDP?