4. Program Development

PROGRAM DEVELOPMENT

Introduction

Development of programs is the art of preparing and designing necessary structures to come up with computer instructions that can be used to accomplish a task in the computer. There are six procedural steps involved in program development namely:

1>     Problem recognition

2>     Problem definition

3>     Program design

4>     Program coding

5>     Program testing and debugging

6>     Implementation and maintenance

There should be some kind of uniformity and relevance in execution from one stage to another and in every stage, documentation is necessary. The diagram below elaborates this.

stages of program development

Problem Recognition

  • This is the understanding and interpretation of a particular problem. To understand these problems, you need to highlight key words like: what needs to be computed, saved, compared, sorted, input etc.
  • To understand these problems, the programmer should:

A>    Talk to users in order to assess their situations

B>    Understand problems that need solutions

C>    Siege an opportunity to develop the new system

D>    Study the new directive given by the management requiring a change in the   status quo

E>     Make a formal presentation of the system being designed

Problem Definition

  • This is also referred to as problem analysis.
  • Here the programmer tries to determine or define the likely input, processing activities and the expected output using the keyword outlined at the problem recognition stage.
  • Finally, the boundaries of the expected program will have been established. In case several methods are identified that can be used to solve the same problem, then the best alternative should be chosen.

Program design

  • This is the actual processing of the program or problem solving logic called the algorithm.
  • An algorithm refers to a definite number of logical steps that a program follows in order to solve a problem. It is the programmer who will usually come up with the algorithm after carefully analyzing the requirements specifications.
  • Most programs are not holistic, rather monolithic which means they are made up of several units called modules which work together to form the whole.
  • In modular programming, each module performs a specific task. This approach makes a program flexible, easier to read and carry out error correction.
  • This stage enables the programmer to come up with models of the expected program. The models show the flow of events and data throughout the entire program from the time data is input to the time the program gives out expected information.

Program Coding

  • This is the art of converting a program design into an equivalent program.
  • This is possible by coding the program with the use of a specific programming language like: Java, Pascal, C++, Visual basic etc.
  • To code these programs, one needs  a translator which converts source program into object code like assemblers, interpreters and compilers

Program testing and debugging

  • This stage involves removing errors from the program (debugging) and execution to test its integrity.
  • There are two possible errors to debug:

1>     Syntax error

These are errors that originate from improper use of language syntax (grammar, spelling, spacing, punctuation and skipping syntax) syntax- is the set of rules that defines the combinations of symbols that are considered to be a correctly structured document or fragment in that language.

For example: in most programming languages, declaration lines end with a semi-colon, failure to insert a semi-colon can result into a syntax error

Consider this PHP code:

<?php
echo "My first PHP script!"
;
?>

If words like “echo” is misspelled like “icho” or “?” is missing at the start line or end line or quotations are missing in the statement My first PHP script!" can lead to syntax error

2>     Logical errors

    • They are not detectable by the translator. The program runs but gives wrong output or halts during execution

Example: consider the PHP code above

The user may mistakenly alter the statement i.e. instead of typing echo "My first PHP script!" he/she types   echo "My second PHP script!"

The code will execute but the output will be wrong. Therefore, logical errors are done due to entry of logical parameters

Methods of error detection

-          There are several methods of testing the program for errors. These include:

1>     Desk checking (dry-run)

This involves going through the program while still on paper before entering it in the program editor. This helps the programmer to detect the most obvious syntax and logical errors

2>     Using debugging utilities

This involves entering the program in the program editor and trying to run debugging utilities to correct syntax errors

3>     Using test data

The programmer enters various data variations and extremes including data with errors to test whether the system will grind to halt

Implementation and maintenance

Implementation

-          This is the actual delivery and installation of the new program to be ready for use.

Review and maintenance

 Proper training and post implementation support of users will always reduce the chances of having those entering invalid data that can crash the program.

Program documentation

  • This is writing of formal support materials explaining how the program was developed
  • Documentation can be used by users, installed by operators and modified by programmers
  • All stages of the program development should be documented in order to help during future modification of the program.
  • Documentation is either internal or external
  • Internal documentation: is written as program comments that cannot be executed by the program editor. They help programmers to understand the source code
  • External documentation:  refers to reference materials such as user manuals printed as booklets. User manuals are common examples of external documentation.
  • There are three target groups of external documentation namely:
  1.  User oriented documentation: these type enables the user to learn how to use the program as quickly as possible and with little help from the program developer
  2. Operator oriented documentation: it is meant for computer operators such as the technical staff. It helps them to install and maintain the program
  3. Programmer oriented documentation: it is a detailed documentation written for skilled programmers. This documentation provides necessary technical information to help in future modification of the program. In this type of documentation, all stages of the program development should be documented because:
  • There may come a need to revise or modify the program
  • Other programmers may think of ways of improving your program.

Summary (modern):

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 pseudo code, 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 language 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; formalize 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 identified, the program development life cycle begins again at Step 1.

 

Click here to learn more: http://blog.teachbook.com.au/index.php/computer-science/software-development/program-development-lifecycle/

Trial Questions

1.       Give one advantage of compiling a program rather than interpreting it

2.       Outline at least six stages of program development in their respective order

3.       Highlight two disadvantages of monolithic programs

4.       State two advantages of modular programming

5.       In what stage of the development does program documentation justify your answer

6.       Differentiate between a flowchart and pseudo code

7.       What is a program bug?

8.       Explain why it is important to test a program before implementing it.

Comments