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 (HINT - “DOIMR -DTP”)

A
  • The spiral model is a ‘Risk-Driven’ development process with 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
  • Main Example - Extreme, RAD, Spiral
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
  • If the developers are split geographically it can cause issues when it is time for code review.
  • Emphasis on coding rather than design results in a lack of documentation, making it unsuitable for larger projects
  • Heavy time input from the client to feedback and guide the project
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 client 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
  • Simple but working deliverable can be released to market very quickly
  • Not all requirements 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 initially (before further developments); not suitable for safety-critical systems
  • Potential for inconsistent designs and a lack of attention to detail in respect of administration and documentation
  • Heavy time input from the client to feedback and guide the project