1.2.3 Software Development Flashcards

1
Q

Software development methodologies

A
  • waterfall lifecycle
  • rapid application development
  • XP(extreme programming)
  • spiral model
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Waterfall life cycle main stages

A
  • feasibility study
  • analysis and design
  • coding/implementation
  • evaluation
  • maintenance
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
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]
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
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]
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
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]
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Beta testing

A
  • is carried out by end users after alpha testing has been completed
  • feedback from users is used to inform the next stage of development
17
Q

White-box testing

A
  • is carried out by software development teams in which the internal structure of the program is known
  • the complete structure/logic of the program is tested [1]
  • all the possible routes through the program are tested
  • this testing is important in safety critical systems with potential harmful impact on life, which can only be prevented by having all pathways tested via white-box testing [1]
18
Q

Black box testing

A
  • software is tested without testers being aware of the internal structure of the software [1]
  • so testers do not look at the code/ only looks at program specification
  • testers test the expected output based on input [1]
19
Q

Spiral model suitability

A
  • spiral involves client feedback, prototypes and evolving projects so is better when requirements may change and risk management is essential [1]