1.2.3 - Software Development Flashcards

1
Q

8 Stages of Software Development Lifecycle

A
  • Feasibility
  • Requirements
  • Analysis and Design
  • Implementation
  • Testing
  • Deployment
  • Evaluation
  • Maintenance
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

5 Software Development Methodologies

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

Extreme Programming

A
  • A software development methodology that involves paired programming with a focus on high quality code.
  • It is designed to allow development to respond to changing user requirements.
  • Programs made using this are regularly reviewed/iterative process.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Waterfall Model

A
  • Follows a series of stages in order (Analysis/Design/Development/Test).
  • 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
5
Q

Rapid Application Development

A
  • Prototype is created and evaluated
  • Feedback used to inform next iteration
  • Any changes are made and the process is repeated until the prototype becomes final product.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Spiral Model

A
  • The spiral model has four quadrants (Determine Objectives, Identify and Manage Risk, Develop and Test, Plan next iteration).
  • Client feedback then informs future developments and prototypes which feedback into future revisions.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Agile Development Methodologies

A

Methods designed to cope with changing requirements by producing software in an iterative manner, i.e, producing versions that build based on more requirements that are met

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

What is an example of an agile development methodology

A

Extreme Programming

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

Advantages of Extreme Programming

A
  • Pair programming ensures the code in each iteration is well-tested, robust and of good enough quality to be
    used in the final product
  • New requirements can be adopted throughout
  • An end user is integral throughout
  • Code is created quickly and modules become available
    for use by the client as they are completed
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Disadvantages of Extreme Programming

A
  • The client has to ensure that they are represented on the development team to accept completed code and to discuss any potential changes
  • Emphasis on coding rather than design results in a lack of documentation, making it unsuitable for larger projects
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Advantages of Waterfall Model

A
  • Tends to suit large scale projects with static/stable base requirements
  • Focuses on the end user at the start and then they may be consulted at different points throughout the project
  • Progress of system development is easily measurable
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Disadvantages of Waterfall Model

A
  • It can be inflexible and limits changing requirements
  • If a change does occur in the requirements the lifecycle cannot respond easily, often at the cost of
    time and money
  • System performance cannot by tested until the system is almost fully coded
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Advantages of Spiral Model

A
  • Large amount of risk analysis ensures the riskiest parts of the project are identified and dealt with first so issues are addressed early in project development
  • A software prototype is created early in the life cycle and refined with each spiral iteration
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Disadvantages of Spiral Model

A
  • Highly skilled development team needed to perform risk analysis
  • Development costs can be high due to number of prototypes being created and increased customer collaboration
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

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

Disadvantages of Rapid Application Development

A
  • The emphasis on speed of development may impact the overall system quality
  • Potential for inconsistent designs and a lack of attention to detail in respect of administration and documentation
  • Not suitable for safety-critical systems