Professional Documents
Culture Documents
12.01
Program Development Life
Cycle
Objectives
• Understand the purpose of the 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)
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
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
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
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