Software Design & Development: Unit 3 - Development Methodologies Flashcards
What is ‘problem decomposition’? (2)
- The process of simplifying a problem by working out what information it needs, and breaking it down into smaller sub-problems.
- The sub-problems use a subset of that information in order to be solved
What is an advantage of using ‘problem decomposition’?
It helps in the beginning of solving complex problems, as the sub-problems identifies will hopefully look similar to previously encountered ones
What is ‘iterative prototyping’? (2)
- The process of breaking down a software project into separate parts, and iteratively developing them as prototypes.
- With every iteration of development the developers can incorporate client feedback and test results into completing the software.
What are the advantages of ‘iterative prototyping? (2)
- The client is involved throughout the development process
* It is easier to change parts of the project if client feedback is received early on in the development
What is ‘spiral development’?
The process of cycling through the development process to create prototypes, but developing these prototypes using the waterfall models
What is an advantage of ‘spiral development’? What is a disadvantage?
- As prototypes are being developed using the waterfall model, mistakes can be avoided.
- Mistakes might be avoided, but could also be picked up late in the development process, causing complete reworking of a lot of code
What is ‘release early, release often’?
The process of releasing software frequently and early, allowing users to give feedback more frequently
What is an advantage of ‘release early, release often’? What is a disadvantage?
- The users can access the developers directly and influence the final product
- As many old releases will exist, users will experience crashes and need to constantly update software
What is ‘SCRUM’?
The process of releasing software frequently and allowing clients to meet with developers regularly to discuss releases
What is an advantage of ‘SCRUM’? What is a disadvantage?
- The client effectively becomes part of the development team, allowing them to oversee their final product
- Bigger offices or more chairs might need to be purchased to accommodate new team members
What is ‘extreme programming’?
Developing software with short cycles of prototyping and client feedback, and a small team of developers who do more tasks between them
What is ‘model-driven software development’ (MDSD)?
The process of building models of a software system using a diagrammatic design notation to specify the system and generate the code from