1.2.3 Software Development Flashcards
1
Q
Software development methodologies
A
- waterfall lifecycle
- rapid application development
- XP(extreme programming)
- spiral model
2
Q
Waterfall lifecycle
A
- a software development methodology which consists of linear stages, each stage must be complete before the next one begins [1]
- is much more structured and very reliant on getting requirements correct at the start as changes are harder to add in at a later stage
3
Q
Waterfall life cycle main stages
A
- feasibility study
- analysis and design
- coding/implementation
- evaluation
- maintenance
4
Q
Waterfall lifecycle advantages + suitability
A
- tends to suit larger scale projects with clear and stable requirements that are unlikely to change [1]
- as well as projects where there is a clear expected output at each stage and everyone has clear responsibilities [1]
- simpler and linear/easy to understand and follow with each stage progressing linearly to the next
5
Q
Water fall life cycle disadvantages
A
- not suited to high risk project with changing requirements
- as changes are difficult to implement once the project has started and can be costly and time consuming to make
- low user involvement as users are only asked for the requirements at the start and customer feedback is only received after the project is developed potentially leading to mismatches with expectations
6
Q
Agile programming methodologies
A
- a collection of methodologies which aim to improve the flexibility of SDLCs
- adapted quickly to changes in user requirements
- working prototype is delivered early on and improved in an iterative manner
- less focus on documentation + user satisfaction is prioritised
7
Q
Extreme (XP) programming
A
- is a software development methodology and an agile paradigm which focuses on good code quality [1]
- a representative of the customer becomes part of the team to determine user stories
- XP is iterative in nature as the program is regularly reviewed (code is tested and improved) [1]
- involves paired programming [1]
- is an agile paradigm so allows development to respond to changing user requirements [1]
8
Q
Extreme (XP) programming benefits + suitability
A
- XP is highly adaptable and can quickly respond to changes in user requirements even in late development
- continuous testing and review ensure high code quality
- encourages working closely with customers to ensure that the developed products meets their needs
- XP is most suitable for small to medium sized projects where requirements can change (e.g new features added) and user involvement is high
9
Q
Extreme (XP) programming drawbacks
A
- poor documentation due to focus on immediate coding and adaptability which can pose challenges for future maintenance/ understanding system intricacies
- high cost of paired programming/ two people working on one project
- requires constant interaction between user and programmer which may be tiring
- hard to determine timescales and outcomes early on
10
Q
Rapid application development (RAD)
A
- is an iterative methodology which uses partially functioning prototypes
1. User requirements are gathered using a focus group
2. A prototype is created and given to the user to trial [1]
3. Evaluation and user feedback is used to inform next iteration and make any changes [1]
4. Process is repeated until the prototype becomes the final product [1]
11
Q
Rapid application development (RAD) benefits + suitability
A
- provides reduced development time due to time boxing/ each sub task being given a strict time limit [1]
- increases user involvement so issues can be identified and fixed early on so the final product is more likely to meet client requirements [1]
- the requirements do not need to be stated at the start so therefore it is more flexible [1]
- suited to smaller projects with unclear requirements at the start, with short time frames
12
Q
Rapid application development (RAD) drawbacks
A
- poor quality documentation due to rapid development
- fast pace/rapid development may reduce code quality (eg by skipping rigorous testing)
- intensive collaboration + iterative approach may be overkill/excessive for simple or small scale projects
13
Q
Spiral model
A
- is a software development Methodology that combines iterative development with risk management allowing for continuous refinement and adaptation throughout the project
- the spiral model relies on frequent client feedback to inform future dev/iterations [1]
- the spiral model produces functional prototypes where features are added incrementally [1]
- focuses on risk, projects may be dropped if risk is too great [1]
14
Q
Spiral model 4 quadrants
A
- determine objectives
- identify and manage risk
- develop and test : involves iterative cycles allowing for incremental development and improvement of product
- plan next iteration : client feed back then informs future development and prototypes which feed back into future revisions
15
Q
Alpha testing
A
- is carried out in-house by the software development teams within the company
- bugs are pinpointed and fixed
- This is done before releasing the product to beta testers or the public