Pros (3) and Cons (4) of the Waterfall Method
+ Reflects standard engineering practice
+ Encourages breakdown of complex systems
+ Good for management of documentation
Describe: Rapid Prototyping
Used when requirements are vague to help customer decide what they want.
- Easy to demonstrate and collect feedback
Prototype is then discarded to build the real system
Describe: Evolutionary Prototyping
Use if requirements are vague and where time constraints on project may force early termination.
Prototype becomes the final product
Pros (3) and Cons (3) of Prototyping
+ Helpful when requirements are vague
+ Flexible
+ Accomodates late changes
Describe: Spiral Lifecycle Model (4 stages)
Aim is to control risks through the project: the key idea is to evaluate the risks and reduce them.
Can terminate features at each evaluation.
4 Stages: - set objectives for current stage
- evaluate risks
- develop &validate current stage
- plan next stagePros (2) and Cons (1) of Spiral Lifecycle Model
+ adapts to fit projects
+clear process and evaluation
When is Formal Systems Development useful?
For safety critical systems
Requires formal specification & proof
Pros (2) and Cons (3) of Formal Systems Development
+ precise and error free
+ proof of specification
Describe Incremental Development.
When is it useful?
Useful if time-to-market is critical Prioritise requirements (list requirements in order of priority), each requirement is delivered as an increment
Describe ‘Shift to Components’ Development? 3 phases
Requirements phase: analyse requirements so they can be mapped onto software components
Construction Phase: Build system from existing components and develop new components to integrate to an existing framework
Reuse & Maintain
Pros (3) and Cons (3) of using Components to develop software?
+ Rapid development strategy
+ Encourages code reuse
+ Reducs costs and risks
Describe the Fountain Lifecycle. How is it: incremental, iterative, parallel?
Incremental:
Iterative:
Parallel:
Describe Agile Methods of software development
Pros (3) and Cons (3) of Agile Development Methods
+Avoids unproductive and wasteful documentation
+ Code is constantly up-to-date
+ Emphasis on testing