1.2.3 Software Development
(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
(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