1.2.3 Software Development (New) Flashcards

1
Q

What are software development life cycle methodologies?

A

A process for planning, creating, testing and deploying high quality software.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

What are the 5 software development methodologies?

A
  • Waterfall lifecycle
  • Rapid Application Development
  • Spiral Model
  • Agile software development
  • Extreme Programming
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Describe the waterfall model

A
  • Each stage of development is completed one at a time in a linear sequence, from start to finish.
  • Results from a completed stage are input into the next.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

What must be done if a change needs to be made within a project being developed using the waterfall model?

A

Programmers must revisit all levels between the current stage and the stage at which a change needs to be made.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

The waterfall model suits projects which are:

A
  • Large scale
  • Low risk
  • Have stable requirements
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

The waterfall model is absolutely unsuitable for projects which are:

A
  • High risk
  • Complex
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

When does working software get produced within the waterfall lifecycle? Why is this a problem?

A

Late during the lifecycle.
Problems may not be discovered until it is too late.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Advantages of using waterfall

A
  • Straightforward to manage
  • Clearly documented
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Disadvantages of using waterfall

A
  • Lack of flexibility
  • No risk analysis
  • Limited user involvement.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

What are agile methods / methodologies?

A

An iterative process that produces software prototypes over short sprints.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

How is the user involved in agile methodologies?

A
  • Each prototype is user tested.
  • Any feedback and change in requirements will be accounted for in future sprints.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Agile methodologies focues less on documentation, with the aim of what?

A

Giving priority to user satisfaction.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

What types of projects would agile methodologies be ideal for?

A

Small to medium projects with unclear initial requirements.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Agile methodologies benefits

A
  • Produces high quality code
  • Flexible to changing requirements
  • Regular user input
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Agile methodologies drawbacks

A
  • Poor documentation
  • Requires consistent interaction between user and programmer.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

What is extreme programming?

A

A type of agile model, where the development team consists of a pair of programmers alongside a representative end user.

17
Q

What is extreme programming ideal for?

A

Small to medium projects with unclear initial requirements requiring excellent usability.

18
Q

Extreme Programming Drawbacks

A
  • High cost of 2 people working on one project.
  • Teamwork is essential. Programmers must communicate effectively.
  • Hard to produce high quality documentation due to iterative nature.
19
Q

Extreme Programming Benefits

A
  • Produces high quality code (thanks to pair programming)
  • Constant user involvement means high usability
20
Q

What is the spiral model?

A

An iterative model designed to manage risk-heavy projects.

21
Q

How many key stages does the spiral model have?

A

Four

22
Q

What does the spiral model require?

A

Risks to be identified and evaluated at each stage.

23
Q

Spiral Model Benefits

A
  • Thorough risk analysis and mitigation
  • Caters to changing users needs.
  • Produces prototypes throughout.
24
Q

Spiral Model drawbacks

A
  • Expensive to hire risk assessors
  • Very time consuming.
  • High costs due to constant prototyping.
25
Q

What is Rapid Application Development?

A

An iterative methodology. It involves building a prototype, then evaluating and refining it over multiple iterations until it becomes the final product.

26
Q

What kind of projects is RAD well suited to?

A
  • Projects where user requirements are initially unclear.
  • Small to medium, low budget projects with short time frames.
27
Q

Drawbacks of using RAD.

A
  • Poorer quality documentation.
  • Fast pace may reduce code quality.
28
Q

Benefits of using RAD

A
  • Caters to changing user requirements
  • End product has excellent usability
  • Reduced development time
29
Q

What is an algorithm?

A

A set of instructions used to solve a problem.

30
Q

What are good key qualities of an algorithm?

A
  • Clearly defined inputs
  • Always produces valid outputs for any defined input
  • Can deal with invalid inputs
  • Always reaches a stopping condition
  • Well documented.
31
Q

Benefits of a well documented algorithm

A

Allows modifications to be easily made.

32
Q

Features of Extreme Programming.

A
  • Responsive to changing user needs
  • Short development cycles and frequent software releases