1.2.3 Software Development [old] Flashcards

1
Q

What are the 5 programming methodologies?

A
  • Waterfall lifecycle
  • Agile methodologies
  • Extreme programming
  • Spiral model
  • Rapid Application Development
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Waterfall Lifecycle

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
3
Q

List the five stages in the waterfall life cycle.

A

Analysis
Design
Implementation
Evaluation
Maintenance

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

What type of projects would the waterfall method be good for?

A

Projects which are
- Large scale
- Static and low risk, requiring little user input

For example, a piece of general-purpose software.

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

What type of projects is the waterfall model absolutely unsuitable for?

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

When does the waterfall model produce working software?

A

Late during the life cycle. 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

Waterfall Advantages

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

Waterfall Disadvantages

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

Agile Methodologies

A

An iterative process that produces software prototypes over short sprints.

Each prototype is user tested and 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
11
Q

What are the 6 stages of agile methodologies?

A
  • Analyse requirements
  • Design prototype
  • Build prototype
  • User feedback
  • Refine prototype
  • Final Product
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Agile methodologies focuses 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 is agile methodologies 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

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
  • Constant user involvement means high usability.
20
Q

Spiral Model

A

An iterative version of the waterfall model. Stages are refined and repeated until the final product is complete. The first cycle works towards an initial prototype, and each successive cycle produces a refined prototype.

21
Q

What are the four key stages in the spiral model?

A
  • Analysing system requirements
  • Pinpointing and mitigating risks
  • Development, testing and implementation
  • Evaluating to inform the next iteration
22
Q

What does the spiral model focus on?

A

Effectively managing risk-heavy projects

23
Q

A project is using the spiral model. What happens if it is found to be too risky at any point?

A

It is terminated.

24
Q

What is the spiral model good for?

A

Large, risk intensive projects with a high budget

25
Q

Spiral model drawbacks

A
  • Expensive to hire risk assessors
  • Lack of focus on code efficiency
  • High costs due to constant prototyping
26
Q

Spiral benefits

A
  • Thorough risk analaysis and mitigation
  • Caters to changing user needs
  • Produces prototypes throughout
27
Q

Rapid Application Development

A

An iterative methodology which uses partially functioning prototypes which are continually built upon.

28
Q

How does rapid application development work?

A

User requirements are initially gathered, and used to develop an incomplete version of the solution which the user trials.

User feedback is used to generate the next improved prototype. This continues until the prototype matches the requirements of the end users, at which point it becomes the final product.

29
Q

What is RAD ideal for?

A

Small to medium, low budget projects with short time frames.
Projects where user requirements are incomplete/unclear at the start.

30
Q

RAD Drawbacks

A
  • Poorer quality documentation
  • Fast pace may reduce code quality
31
Q

RAD Benefits

A
  • Caters to changing user requirements
  • Highly usable finished product
  • Focus on core features, reducing development time
32
Q

Define algorithm

A

Set of instructions used to solve a problem.

33
Q

What are good key qualities of algorithms?

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

Benefits of a well documented algorithm

A

Allows modifications to easily be made.

35
Q

What are features of extreme programming?

A

It is more responsive to changing user needs with short development cycles and very frequent software releases. Checkpoints are incorporated to change or add new user requirements.