You are on page 1of 21

12.

01 Program Development life cycle

12.01
Program Development Life
Cycle
Objectives
• Understand the purpose of the development life
cycle

• Understand the need for the following types of life


cycle: Waterfall, iterative, rapid application development (RAD)

• Be able to describe the principles, benefits &


drawbacks of each type of life cycle

• Understand the analysis, design, coding testing and


maintenance stages
12.01 Program Development life cycle

Life cycle stages


• There are five stages in the program
development life cycle:
• Analysis
• Design
• Coding
• Testing
• Maintenance
12.01 Program Development life cycle

Analysis
• Analysis involves considering the problem
that needs to be solved computationally to find out
what is required.
• The requirements are then recorded in a ‘requirements
specification’
• This defines what the software should do, not how it should
be done (that is done in the design stage)
12.01 Program Development life cycle

Analysis
• During the Analysis stage, information will need to be
gathered to identify the requirements.
• This can be done using a number of methods:
• Observation
• Documentation analysis
• Discussions with managers/users of current system
• Survey (if not practical to interview all users)

• Will user feedback differ from manager feedback?


12.01 Program Development life cycle

Design
• The design stage takes the requirements
that come out of the Analysis stage
• In the design stage, we are considering how the
program and software itself will be designed
• We are interested in both the overall structure
and individual algorithms that may be used
12.01 Program Development life cycle

Design
12.01 Program Development life cycle

Development / Coding
• The next stage in the lifecycle is producing
the software itself
• This is often known as the development stage
• In A-Level it is known as the coding stage

• Coding is done by programmers.


Each programmer will be a specialist
in a specific high-level language
• During the design stage, a language will
need to be chosen to write the program
code.
12.01 Program Development life cycle

Testing
• The next stage of the product lifecycle is
the testing stage
• Before the program is written, a set of tests will
be designed along with expected results
• Once the program is complete, the tests will be
carried out with test data to check that the
program output matches the expected results
• If any tests fail, the errors are fixed before
being re-tested
• What could the test data be for a program that
reverses an integer that is between 1 and 5
digits long?
12.01 Program Development life cycle

Testing
• One possible test table showing the test
data required and expected output
• In the testing stage the actual output and pass/fail
columns will be completed
Test # Test data Test reason Expected Actual Pass/
output output Fail
1 342 3 digit number 243
2 8 1 digit number 8
3 84237 5 digit number 73248
4 832735 6 digit number Number
too long
12.01 Program Development life cycle

Testing
• The approach to testing is dependant on the
development life cycle method chosen (more to come on
this).
12.01 Program Development life cycle

Iterative testing
• Programs are tested as they are developed
• Each time the program is updated to add a new
feature or fix a problem is known as an iteration
• The testing of each iteration is known as
iterative testing
12.01 Program Development life cycle

Maintenance
• The final stage of the product lifecycle is the
maintenance stage.
• Maintenance changes will requires all or some of the
following actions:
• Making changes to hardware
• Changes to the program code
• Changes to the documentation to support users operating the
system effectively

• Maintenance is an on-going process and is required


whilst the program is still in use.
• If maintenance costs become too high to match the
benefits of the system, it will become obsolete.
12.01 Program Development life cycle

Different Life Cycle Models


12.01 Program Development life cycle

Waterfall

Methodologies

Rapid
application
Iterative development
(RAD)
12.01 Program Development life cycle

Waterfall lifecycle
• The waterfall model derives its name from its cascading effect from
one phase to another.
• Each phase has a well-defined start and end point with identifiable
deliverables.
• The sequence of six stages to be followed for the waterfall model are
the traditional six stages cycle (analysis – design – coding – testing –
deployment – maintenance) that are done in strict sequence.
12.01 Program Development life cycle

Waterfall lifecycle
Benefits Drawbacks
• A clear pathway • Lacks adaptability across
stages
• Suitable for large scale
projects with large teams • Difficult to adjust to late user
feedback
• Forces a planned approach
(every stage can be • Late changes are time
monitored) consuming & costly

• Allows for design changes • Delayed testing period


before coding starts • Most bugs not discovered until
• Provides a clear timeline late into the process
• Testing is not seen as integral
to coding
12.01 Program Development life cycle

Rapid application development (RAD)


• Rapid application development
(RAD) is a methodology that involves
producing successive prototypes of
the software until a final version is
produced and approved.
• Following the initial approval of a
feasible program, increasingly refined
prototypes are made with reduced
functionality.
• These are designed, coded, test and
evaluated with the end user.
• You user might decide they are happy
with the system or that they want
further improvements, which will start
a new cycle (iteration).
12.01 Program Development life cycle

Rapid application development (RAD)


Benefits Drawbacks
• Project progress is more • Difficult to use with large scale
measurable projects as changes impact
other members of the
• Code is generated quickly development team
• Relevant user feedback can • Requires frequent use contact
be provided during and involvement
development
• Team must be able to
• Errors can be identified at an communicate with user
early stage frequently
• If required, code can be • Skilled developers required for
quickly changed to alter the a more varied skill-set across
system. the development team
12.01 Program Development life cycle

Iterative Model
• The iterative model is a cyclic process. It produces an initial
simplified implementation, then it follows incremental development
where each iteration produces enhancements.
• The solution will become progressively more complex with more
features until the final solution is reached.
12.01 Program Development life cycle

Iterative Model
Benefits Drawbacks
• Version numbers are used to • Create pressure for continual
reference each new iteration user involvement (the same
as RAD)
• Each iteration should involve
a short development time • Each new iteration requires
testing and user feedback
• If problem arise with the latest
version, it is quick to revert to • Users may continually
a previous version of the suggest new features, which
solution. were not in the original
requirements specification

You might also like