1.2.3. Software Development - Done Flashcards

(20 cards)

1
Q

Describe the Waterfall Lifecycle Methodology

A

It has a linear, structured design in which progress to the next step is not made until the previous step is completed.

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

What are the advantages of the Waterfall Lifecycle?

A
  • It forces the definition of the requirements to be well understood from the start, requiring preparation for the project.
  • If the programmer has a large team it can be more appropriate due to the clearly defined responsibilities at each stage.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

What are the disadvantages of the Waterfall Lifecycle?

A

The requirements for the project must be correct and clear from the start as changes are hard to add in at a later stage.

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

Describe the Spiral Model Methodology

A

It has 4 quadrants: determine objectives, identify and manage risk, develop and test, plan next iteration.
Client feedback 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
5
Q

What are the disadvantages of the Spiral Model?

A
  • Frequent client feedback is required
  • Features are added incrementally, slower
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

What are the advantages of the Spiral Model?

A
  • It’s good for risk management. Projects can be modified or dropped if risk is too great. This makes it flexible as it allows for evolving projects where requirements can change
  • It involves client feedback and prototypes, increasing the likelihood that the final product meets user requirements
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Describe what agile methodologies are

A

A problem is broken down into sections which are developed in parallel. These sections can each be at different stages of development.
The design and analysis phase often occur together. New prototypes are delivered regularly from an early stage and worked on iteratively.

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

Describe extreme programming

A

An agile model built on user stories (system requirements set by the end user). As code is written, it is also reviewed and improved upon. This is generally done through paired programming, with one person writing the initial code, and another critiquing it.

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

What are the advantages of agile methodologies?

A
  • It’s flexible
  • Encourages communication between programmers and the end user / stakeholders
  • Encourages high-quality code through the process of reviewing prototypes/code
  • Encourages focus on the customer’s wants and user satisfaction
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

What are the disadvantages of agile methodologies?

A
  • Less focus on documentation
  • Requires experienced team members
  • Flexibility can lead to uncontrolled changes in requirements
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Describe Rapid Application Development (RAD)

A

In RAD user requirements are iteratively gathered and used to make new prototypes. Each time a prototype is made feedback is received upon it so that the idea can be improved upon in the next prototype, until it meets the user requirements.

It’s commonly used when user requirements are initially incomplete or unclear and when a project needs to be completed quickly.

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

What are the advantages of Rapid Application Development?

A
  • Reduced development time due to time boxing / each subtask being given a strict time limit
  • Increased user involvement so issues can be identified and fixed early / more likely to meet client requirements
  • The requirements do not all need to be stated at the start, so therefore it is more flexible
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

What are the disadvantages of Rapid Application Development?

A
  • Flexibility can lead to loss of focus
  • Not suitable for small-scale projects due to the number of steps and iteration
  • Requires strong collaboration between users and programmers
  • The focus on speed could result in a lack of quality
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

State the Key Stages of the Software Development lifecycle

A
  • Analysis
  • Design
  • Implementation
  • Testing
    (- Deployment/evaluation)
  • Maintenance
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Describe the Analysis phase of the Software Development Lifecycle

A

The stakeholders wishes are used to set out and clearly define the user requirements for the product.

This may involve defining the problem, analysing strengths and weaknesses of current ways to solve this problem and considering the types of data involved in solving the problem.

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

Describe the Design phase of the Software Development Lifecycle

A

Different aspects of the new system are designed, such as:
- User interface
- Inputs and outputs
- Algorithms
- Data structures
- Hardware set up
- Security features

There will be a focus on the volume, methods and frequencies of these features, as well as their compatibility and accessibility.

17
Q

Describe the Implementation phase of the Software Development Lifecycle

A

The design is used to split the project into individual, self-contained modules, which are allocated to teams for programming.
There is likely to be documentation for this stage, explaining how the program was developed. This is for future use by programmers and so everyone involved in the development cycle understands what is going on.

18
Q

Describe the Testing phase of the Software Development Lifecycle

A

Iterative testing is usually carried out throughout the development process and final testing once the product is largely complete. This can be done in-house or by end-users, and varies based on what stage development is at.

19
Q

Describe the deployment/evaluation phase/s

A

The software is installed on the users’ systems.
The effectiveness of the software is then evaluated against the user requirements, utilising criteria such as functionality, reliability, and maintainability.

20
Q

Describe the Maintenance phase of the Software Development Lifecycle

A

Any errors or improvements that could be made to the software are flagged by the end users. Programmers regularly send out software updates to fix bugs or security issues and make any needed improvements.