Software development methodologies
What are 5 common methodologies?
Rapid Application Development (RAD)
Extreme Programming (XP)
What are the stages of the Waterfall methodology?
Describe the 'define requirements' stage of the Waterfall methodology
Describing the overall purpose and what is wanted out of the software
Describe the 'analysis' stage of the Waterfall methodology
When the time, cost, and resources required for the project are assessed
Describe the 'design' stage of the Waterfall methodology
Working out how the program is to be structured and created
Describe the 'implement' stage of the Waterfall methodology
Coding is carried out
Describe the 'test' stage of the Waterfall methodology
Plans are made for how the program is to be tested, and the tests are carried out
Describe the 'install' stage of the Waterfall methodology
The software is provided out to the users
Describe the 'maintain' stage of the Waterfall methodology
What are the features of the Waterfall methodology?
- The project is split with milestones at each stage
- The method is sequential, with stages rarely being revisited after completing them
- Works best when requirements and risks are well understood
What are the advantages of the Waterfall Methodology?
- Time and money is saved by planning at the initial stages
- Milestones enforce a disciplined approach and easily assessable progress
- Encourages extensive documentation
- Easy for someone outside of the project to understand it
What are the disadvantages of the Waterfall methodology?
- Clients often don't know exactly what they want
- Not as good for high risk or challenging projects
- Requires tight documentation, which can dampen creativity
- Not suited for vague or changing requirements
What are the stages of the RAD methodology?
Describe the pilot prototype of the RAD methodology
Used to determine how feasible a design approach is. It is not intended to be developed further
Describe the modeling prototype of the RAD methodology
Created to test if it fits the requirements. It is demonstrated to the user and is either:
Throwaway: code is discarded after being used
Evolutionary: the code is retained to develop the next prototype
What are the features of the RAD methodology?
It uses an iterative approach, where each part is provided to the user when ready.
Prototypes are developed rather than extensive documentation made at the start.
What are the advantages of the RAD methodology?
- Accounts for if the customer is unsure of what they want at the start
- Will improve quality as the customer can provide feedback from early on
- Focuses on the speed of development
- Risk analysis is key
What are the disadvantages of the RAD methodology?
- Requires significant time commitment from the customer
- Risk of poorly designed project, with 'see what happens'
- Not good for large projects or widely spread teams
What are the stages of the Spiral methodology?
Describe the 'plan' stage of the Spiral methodology
Requirements are initially drafted
They are later edited to keep updated
Describe the 'analyse risk' stage of the Spiral methodology
Risk is analysed
A prototype is produced, which is a functional view of the software
Describe the 'engineering' stage of the Spiral methodology
The coding occurs, and then it is tested
Describe the 'evaluation' stage of the Spiral methodology
The customer evaluates the project in its current stage, and the requirements are then updated
What are the features of the Spiral methodology?
Iterative approach: cycles round all the stages
At the end of each cycle, the project is presented to the customer
What are the advantages of the Spiral methodology?
- Good for a large, risky project
- Prototypes help to track the requirements
- Allows for extra functionality to be added later on
- Customers have a chance to evaluate much early than in other methods
What are the disadvantages of the Spiral methodology?
- Success depends on handling the risks early on
- Can be considered overkill for small, short projects
- Can be costly in terms of man-hours needed
- Requires customers to be engaged throughout the process
What are the stages of the Agile methodology?
What are the advantages of the Agile methodology?
- Minimal documentation
- Promotes teamwork
- Realistic approach considering that clients often don't know the full requirements
- Supports fluctuating requirements
What are the disadvantages of the Agile methodology?
- Doesn't work well when different modules depend on each other
- Less documentation so can be harder to maintain and extend in the future
- Depends on customer interaction
- Depends on self-discipline, since it is management light
What are the features of the Agile methodology?