Software definition
Programs that run on a computer system - can be categorised as application or system
5 software development stages
Analysis
Design
Implementation
Evaluation
Maintenance
Analysis description
Information gathered about current system and what the new system needs to do
- interviews with users
- questionnaires
- observe current systems
- look at existing documentation
Document produced that defines what the system will do
Design description
A description of the type/format/validations on data
Database design
How the data will be processed
How the software will be tested
Implementation description
Coding and testing software
Writing user and technical documentation
Installing software for user
Testing
4 types of testing
Black box testing
White box testing
Alpha testing
Beta testing
Black box testing description
Carried out independently of code, checks that ALL types of valid input give a valid output and that invalid inputs do not error
White box testing
Tests each path through the code at least once checking that it does the right thing
Alpha testing description
Carried out by in-house team and user to reveal any missing requirements
Beta testing description
Software given to a number of potential users who will report any faults - often to check the software is user-friendly
Evaluation description
Software is checked to make sure it does everything required in document from analysis
Three types of maintenance
Corrective
Adaptive
Perfective
Corrective maintenance
Fixing bugs that have been found
Adaptive maintenance
Changing based on the user’s changing needs
Perfective maintenance
Improvements that are unnecessary but will improve experience
5 development methodologies
Waterfall lifecycle
Agile
Extreme programming
Spiral model
Rapid application development
Waterfall lifecycle description
Each stage is completed before the next one is begun
Waterfall lifecycle advantages
Simple to understand and use
Stages are self-contained
Works well for small projects with well understood and fixed requirements
Waterfall lifecycle disadvantages
Minimal user involvement
No working software produced until late
Customer does not see end product until completed
Any change often means restarting
Waterfall lifecycle uses
Projects where:
- requirements are clear and fixed
- technology well understood
- short
Spiral model description
Four steps (analysis, design, implementation, evaluation) completed repeatedly until software meets requirements. Then maintenance happens
Each loop develops a prototype
Spiral model advantages
Easy to manage
Software produced early
Lots of user feedback at each prototype
End result fits requirements better
Spiral model disadvantages
Time-consuming getting feedback every prototype
More costly due to time
Not suitable for smaller projects
Spiral model uses
Projects where:
- unsure of needs
- requirements are complex
- large projects
- medium to high-risk