What are the 6 steps of the Software Development Lifecycle?
TELOS and the 5 types of Feasibility
Analysis
Gathering data and analysing it to identify the system requirements and make the Requirements Specification
Ways of gathering data for Analysis include… (4)
After gathering data for Analysis, the developer would… (3)
The software design will include… (5)
Implementation entails… (3)
Evaluation
Checking that the software meets the Requirements Specification. Includes Acceptance Testing for software created for a specific client
CAP and the 3 types of Maintenance
Waterfall Model
A series of separate stages, where each completed stage provides specific inputs to the next. Essentially a one-off, linear model. Good for large groups
Pros and Cons of the Waterfall Model (3 | 3)
Pros:
Cons:
Cyclical Model
Similar to the Waterfall Model, with structured stages, but stages form a continuous cycle. Good for big pieces of software (e.g. MS Office)
What is the extra pro of the Cyclical Model over the Waterfall Model?
Maintenance logically starts the next cycle, which maps better onto the actual lifecycle of a complex piece of software
Spiral Model
Instead of doing each stage once, the software goes through several iterations after the Feasibility stage is completed. Successive passes through the stages produce a more refined prototype until the software is complete
Pros and Cons of the Spiral Model (3 | 2)
Pros
Cons
Agile Model
Similar to the Spiral Model, but the developers form small multitasking teams and the customer is involved at every stage of production
What is the extra pro and extra con of the Agile Model over the Spiral Model?
Pro: Small multitasking groups makes the team flexible to changing requirements, which works well in rapidly changing environments
Con: Only suitable for smaller development teams
Prototype
A simple version of the software, intended as a model to get feedback, which in turn moves the development forward
Pros and Cons of using Prototypes (3 | 3)
Pros
Cons
What are the types of testing in order? (6)
Unit/Module testing
Testing an individual module of the software
Integration testing
Testing the modules together as an integrated system
Alpha testing
Getting other developers to peer review the software before release
Beta testing
Review of commercial software by sample customers who provide feedback on how the software performs in the real world