You are on page 1of 7

Session Three: Program development and design

3.1 Session Objectives


By the end of this session, you should be able to:
 Explain the Program development life cycle
 Identify the phases of the Program development life cycle
 Explain the top-down and bottom-up programming methods

3.2 Program development life-cycle

When we want to develop a program using any programming language, we follow a sequence of
steps. These steps are called phases in program development. The program development life
cycle is a set of steps or phases that are used to develop a program in any programming
language.
Generally, the program development life cycle contains 6 phases, they are as follows.

 Problem Definition

 Problem Analysis

 Algorithm Development

 Coding & Documentation

 Testing & Debugging

 Maintenance
3.2.1 Program development life-cycle

(i). Problem Definition

In this phase, we define the problem statement and we decide the boundaries of the problem. In this phase we

need to understand the problem statement, what is our requirement, what should be the output of the problem

solution. These are defined in this first phase of the program development life cycle.

(ii). Problem Analysis

In phase 2, we determine the requirements like variables, functions, etc. to solve the problem. That means we

gather the required resources to solve the problem defined in the problem definition phase. We also determine

the bounds of the solution.

(iii). Algorithm Development

During this phase, we develop a step by step procedure to solve the problem using the specification given in the

previous phase. This phase is very important for program development. That means we write the solution in step

by step statements.
(iv). Coding & Documentation

This phase uses a programming language to write or implement the actual programming instructions for the steps

defined in the previous phase. In this phase, we construct the actual program. That means we write the program

to solve the given problem using programming languages like C, C++, Java, etc.,

(v). Testing & Debugging

During this phase, we check whether the code written in the previous step is solving the specified problem or

not. That means we test the program whether it is solving the problem for various input data values or not. We

also test whether it is providing the desired output or not.

(vi). Maintenance

During this phase, the program is actively used by the users. If any enhancements found in this phase, all the

phases are to be repeated to make the enhancements. That means in this phase, the solution (program) is used by

the end-user. If the user encounters any problem or wants any enhancement, then we need to repeat all the phases

from the starting, so that the encountered problem is solved or enhancement is added.

4.0 Programming Methods


4.1 Top-down and Bottom-up methodology
Top-down-design starts with a description of the overall system and usually consists of a
hierarchical structure which contains more detailed descriptions of the system at each lower
level. The lower level design details continue until further subdivision is no longer possible, i.e.,
until the system is described in terms of its "atomic" parts. This method involves a hierarchical
or tree-like structure for a system as illustrated by the following diagram:
At the top level, we have that part of the system which deals with the overall system; a kind of
system overview or main top-level module.

The following illustration shows an example of how you can follow modular approach to
create different modules while developing a payroll processing program.

.
4.2 Top down programming method process
i) Define exactly what data the program will get and what it has to do with them.
ii) If the task is simple enough, write the program code.
iii) Otherwise, split the task into smaller parts and define exactly the duty of each part and
interface to the rest of the program.
iv) Repeat the steps 1–4 separately for each subtask.

4.2.1 Advantages of the Top-Down Design Method


i) It is easier to comprehend the solution of a smaller and less complicated problem than
to grasp the solution of a large and complex problem. Separating the low level work
from the higher level abstractions leads to a modular design. Modular design means
development can be self contained. Much less time consuming (each programmer is
only involved in a part of the big project).
ii) It is easier to test segments of solutions, rather than the entire solution at once. This
method allows one to test the solution of each sub-problem separately until the entire
solution has been tested.
iii) It is often possible to simplify the logical steps of each sub-problem, so that when taken
as a whole, the entire solution has less complex logic and hence easier to develop. A
simplified solution takes less time to develop and will be more readable.
iv) The program will be easier to maintain. If errors occur in the output it is easy to identify
the errors generated from each of the modules / sub-programs of the entire program.

4.2.2 A bottom-up approach is the piecing together of systems to give rise to grander systems,
thus making the original systems sub-systems of the emergent system. In a bottom-up approach
the individual base elements of the system are first specified in great detail. These elements are
then linked together to form larger subsystems, which then in turn are linked, sometimes in many
levels, until a complete top-level system is formed.

4.3.0 Session Summary


The program development life cycle is a set of steps or phases that are used to develop a program
in any programming language. Generally, the program development life cycle contains 6 phases,
they are as follows.
Problem Definition, Problem Analysis, Algorithm Development, Coding & Documentation,
Testing & Debugging, Maintenance

4.3.1 Student Activity


(i.) Explain the term program development life cycle .
(ii.)Discuss the phases of program development life cycle.
(iii) Describe the bottom-up and top-dowm program methods

4.3.2 Further Readings/References


(i.) Kernighan, B. W., & Ritchie, D. M. (2014). The C programming language (2nd ed.).
Upper Saddle River, NJ: Prentice-Hall PTR. ISBN: 0131103628.
(ii.)Perry, G. R., & Miller, D. (2013). Absolute beginner's guide to C Programming (3rd
ed.). Indianapolis, Indiana: Que Publishing. ISBN: 0789751984.
(iii.) Graham, D. L. (2016). C programming language: a step-by-step beginner's
guide to learn C programming in 7 days. NY, USA: CreateSpace Independent
Publishing Platform. ISBN: 1534679707.

You might also like