Program Development Life Cycle
Program Development Life Cycle
Cycle
The process of developing a software, according to the
desired needs of a user, by following a basic set of
interrelated procedures is known as Program
Development Life Cycle.
PDLC includes various set of procedures and activities
that are isolated and sequenced for learning purposes
but in real life they overlap and are highly interrelated.
1.Problem Definition
2.Program Design
3.Coding
4.Debugging
5.Testing
6.Documentation
7.Maintenance
8.Extension and Redesign
1.PROBLEM DEFINITION
This stage is the formal definition of the task. It
includes the specification of inputs and outputs
processing requirements, system constraints, and
error handling methods.
This step is very critical for the completion of a
satisfactory program. It is impossible to solve a
problem by using a computer, without a clear
understanding and identification of the problem.
Inadequate identification of problem leads to poor
performance of the system. The programmer should
invest a significant portion of his time in problem
identification. If he does not spend enough time at
this stage, he may find that his well written program
fails to solve the real problem.
This step is the process of becoming familiar with the
problem. It starts when the programmer is assigned a
task. This step includes the reviewing of the design
document that was prepared for the program, as well
as any system wide information that would be
helpful.
The process ends when all the programmer’s
questions have been resolved and the requirements
of the program are understood.
2.PROGRAM DESIGN
Once the problem has been identified, the next stage
is the program design. A computer is both fast and
versatile, but it requires the meticulous specification
of what actions it should take. For the user, there is
seldom an opportunity to allow the computer to
make an undirected decision. Therefore the
programmer must decide, prior to writing his
program, exactly which steps the computer should
take to solve an identified problem. Such a functional
description of the task is either called an algorithm or
results in a diagram called flowchart.
1.CODING
The third step is the process of transforming the
program logic design documents into a computer
language format. This stage translates the program
design into computer instructions. These instructions
are the actual program or the software product.
During this step the programmer eliminates all the
syntax and formal errors from the program and all
logic errors are detected and resolved during this
process. This step is walk through has been held.
2.DEBUGGING
This stage is the discovery and correction of
programming errors. Few programs run correctly the
first time, so debugging is an important and time
consuming stage of software development.
Programming theorists often refer to program
debugging and testing as verification and validation,
respectively. Verification ensures that the program
does what the programmer intends to do. Validation
ensures that the program gives the correct results for
a set of test data.
The tools that can be used to debug programs are
given below:
• Simulators.
• Logic Analysers.
• Breakpoints.
• Trace routines.
• Memory Dumps.
• Software Interrupts.
1.TESTING
This stage is the validation of the program. Testing
ensures that the program performs correctly the
required tasks. Program testing and program
debugging are closely related. Testing is essentially a
later stage of debugging in which the program is
validated by trying it on a suitable set of cases.
Program testing is, however, more than a simple
matter of exercising the program a few times.
Exhaustive testing of all possible cases is the best
alternative, but this processes is usually impractical.
Formal validation methods exist, but are only
applicable to very simple programs. Thus, program
testing requires a choice of test cases.
Among the rules that can aid in program testing are
the following:
• Make the test plan part of the program design.
• Check all trivial and special cases.
• Select test data on a random basis.
• Plan and document software testing just like
hardware testing.
• Use the maximum and minimum values of all
variables as test data.
• Use statistical methods in planning and
evaluating complex tasks.
1.DOCUMENTATION
This stage is the documentation of the program so
that those who use and maintain it, can understand
it, and program can be extended to further
applications. Documentation is a stage of software
development that is often overlooked. This stage is
the documentation of the program so that those who
use and maintain it, can understand it, so that the
program can be extended to further applications.
Documentation is a stage of software development
that is often overlooked. Yet proper documentation is
not only useful in the testing and debugging stages,
it is also essential in the maintenance and redesign
stages. A properly documented program can be
easily reused when needed; an undocumented
program usually requires so much extra work that
the programmer might as well start from scratch.
Among the techniques commonly used in
documentation are flowcharts, comments, memory
maps, parameter and definition lists, and program
library forms.
Proper documentation combines all or most of the
methods mentioned. Documentation is a time
consuming task that the programmer performs
simultaneously with the design, coding, debugging
and testing stages of software development. Good
documentation simplifies maintenance and redesign,
and makes subsequent tasks simpler.
2.MAINTENANCE
This stage is the updating and correcting of the
program to account for changing conditions or field
experience. Proper testing and documentation should
significantly reduce the frequency and extent of
required maintenance. Unlike student programs that
used for a long time. Changes may occur due to:
• Newly discovered bugs.
• Specification changes.
• Specification expansion.
• New equipment.
The costs involved in program maintenance are
usually grossly underestimated by most
programmers. It has been studied that in a typical
programming environment, over 50% of the time is
spent on maintaining the existing programs.
So, it becomes really necessary to reduce the costs
and the time spent on maintenance. This can be
done by the use of the following steps:
• Clarity and readability of code.
• Portability and generality.
• Structured code.
• Modularity.
• Debugging and testing.
• Documentation.
Submitted By:
Sharang Dev Singh
Roll No: 32
MBA-09