Software development Flashcards
List the software development methods
- Waterfall lifecycle
- Rapid Application Development (RAD)
- Spiral model
- Agile methodologies
- Extreme programming
Describe the waterfall lifecycle
- Consists of a sequence of stages; each stage can only start after the previous one is complete
- It’s possible to go back a stage
- Stages are: requirements definition, analysis, design, coding, testing, maintenance
What is the waterfall cycle suited ADV + DIS
- Large projects with static requirements
- Clear requirements at each stage. Possible for different parts of the team to be geographically remote
- If requirements change through the project, then previous stages have to be repeated, delaying the project
What are prototypes
Early versions of a system, lacking full functionality but allowing a feel for what the final version will be like before large amounts of time are committed to its production
Describe the rapid application development (RAD)
- The user is shown the prototype and gives feedback
- This continues until the end user is happy that the prototype has all the required functionality
- At this point it becomes the end product
What is the rapid application development suited for, ADV + DIS
- Small projects where there is ready access to an end user
- User’s experience is prioritised. Can be confident the end product meets the user’s needs
- Little attention is paid to the efficiency of the program. Doesn’t scale well. Can overrun initial budgets due to being an agile approach
Describe the spiral model
Consists of 4 stages:
- Determine objectives: First stage is to determine the objectives of that rotation of the spiral according to the biggest potential risks
- Identify and resolve risks: The possible risks are identified and alternative options are considered.
- Development and testing: Allows the part of the project being worked on to be made and tested
- Plan next iteration: Determines what will happen in the next iteration of the spiral
What is the spiral model suited for, ADV + DIS
- Suited for large, high-risk projects without tight time constraints
- Prioritises risk management and can handle changes in requirements
- Requires practitioners experienced in risk management and can be a long expensive work
Describe agile software development
- Not a single methodology but a group
- These methods are designed to cope with changing requirements by producing software in an iterative manner
- It is produced in versions, each building on the previous one and each increasing the number of requirements it meets
What are agile methodologies suited for, ADV + DIS
- Projects where the initial requirements are hard to determine from the outset and in which the end user can play an active role in the development process
- Adapts to user’s needs, resulting in a final tailored to meet their requirements
- Continual collaboration is needed between the software developers and end users. Hard to determine timescale and outcomes early on
Describe extreme programming (XP)
- A methodology that puts emphasis on the coding itself
- A representative of the customers becomes part of the team to help determine the ‘user stories’ and to answer questions
- Each iteration produces a version of the system with code of a good enough quality to be used in the final product
- Uses pair programming
- Programmers are encouraged to make the code more efficient
ADV + DIS of extreme programming
- With such an emphasis on programming, the quality of the final code is likely to be very high
- Client needs to be able to commit to having a representative working with a team