(a) Understand the waterfall lifecycle, agile methodologies,
extreme programming, the spiral model and rapid application
development. & (b) The relative merits and drawbacks of
different methodologies and when they might be used.
Common Stages of Development
Analysis
• establishes the requirements of the finished product
• used to clearly define the problem and identify system requirements
• considers:
o data to be used
o developments plans and expected growth rates
o problems with existing systems
Design
• different aspects of the system are designed
• a test plan could also be outlined at this stage
• this could include:
o inputs: volume, methods, frequency
o outputs: content, format, sequence, frequency, medium
o data structures: how data will be held and accessed
o processing: algorithms and appropriate modular structure of the system
o user interface: menus, screens and dialogues
o security: how to keep data secure from accidental corruption or deliberate
tampering
o usability: user experience and accessibility features
Development
• the problem is broken down into individual, self-contained modules with a well-
defined purpose
• program code for these modules is then written in the chosen programming
language
, Testing
• a combination of different testing strategies may be used
White box testing (structural testing)
• carried out by software development teams
• tests all possible paths through the program's internal structure
Black box testing (functional testing)
• testers are not aware of the internal structure of the program
• uses a set of test data that covers all inputs, outputs and program functions
Alpha testing
• carried out by an in-house testing team
• used to pinpoint and fix errors
• may reveal that the functionality of the system does not fully cover the
requirements
Beta testing
• carried out by a chosen number of potential end-users
• exposes the software to real use and detects problems and errors that developers
had not anticipated
• feedback from users is used to modify the program until it is to a good enough
standard to be released onto the market
Implementation
• once software has been tested, it is released to be installed by users
Evaluation
• effectiveness of software is evaluated against the system requirements from the
analysis stage
• the reliability, usability and maintainability of the solution should also be
evaluated
• performance of the system is compared to anticipated performance objectives
• errors made during development are reviewed
Maintenance
• feedback from users point out errors or possible improvements to the software
• developers will regularly send out updates to the software to fix errors, security
issues or make improvements