Chapter 5 Flashcards
Development process usually consists of:
Specification Development Implementation Validation Refinement
Waterfall model
Requirements, Analysis and specification High level design Detailed design Coding Unit testing Integration testing System & Acceptance testing
Evolutionary model
evolves an implementation through user feedback until a final version that can satisfy the user requirements is produced.
Evolutionary model advantages
More likely to meet requirements
Regular testing more likely to identify problems
Applicable to smaller projects
Evolutionary model disadvantages
Difficult to understand
Deliverables aren’t well defined
Need to constrain iterations due to costs
Incremental model advantages
Prioritises the requirements of the system
Produces prototypes to meet basic requirements
At each increment the requirements are allowed to evolve
Incremental model disadvantages
Often difficult to map requirements into smaller increments
Some types of projects don’t suit requirement prioritisation
Integration testing often not possible with early increments
Spiral model - each iteration passes through 4 quadrants…
Determine objectives
Identify and resolve risks
Development and test
Plan next iteration
5 of Agile developments 12 principles
Deliver early and often to satisfy customer
Welcome changing requirements
Face to face communication is best
Measure progress against working software
Simplicity is essential
3 Agile methods
Scrum Extreme programming Crystal Feature-Driven development Lean development Adaptive software development Dynamics Systems development method
3 scrum weaknesses
Lack of scalability
Integration done after all increments built
Lack of formalism
3 XP weaknesses
Difficulty coordinating large teams
Tendency to not document thoroughly
Can result in never ending project if not managed correctly
Disadvantages of waterfall model
Specification often fixed early as to progress with project
Cannot adapt to changing specification
Testing at the end of development
Exploratory development
Starting point established from requirements
First generation of complete system is created
This version is evaluated and second gen system is produced
Repeats until requirements including any new requirements are met
Customer/end user feedback
Throwaway prototyping
Used to explore factors critical to system success
Involves implementing parts of a system to be evaluated
Aim to define requirement/specification
An example would be a user interface with no functionality