Software Development Flashcards

You may prefer our related Brainscape-certified flashcards:
1
Q

What are the stages of Software Development

A
  • Analysis - Business Case, Requirements gathering and documentation
  • Design - Specifications of products made
  • Development - Development of code, prototypes and working solutions
  • Testing - Testing build versions. Until issues and bugs are addressed
  • Deployment - Deploy new systems live, settling in time.
  • Maintenance - Hand over to the support and maintenance team
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Describe the Waterfall Development Methodology Description and Diagram

A
  • Each step is completed one at a time from beginning to end
  • Each step has a specific output that leads to the next step
  • The developers can go back to previous stages if necessary but they then have to work back down through the following stages
  • To make changes later would result in high cost implications to the work that has already been completed
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Describe the RAD (Rapid application) Methodology Description

A
  • Creates an initial ‘incomplete’, partially functioning prototypes which is continually built-upon
  • User feedback is then used to generate requirements for the next iteration
  • This makes use of parallel development of tasks to speed up development
  • This is produced with a strict time limit
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Describe the Agile Method Description and Diagram

A
  • Uses Iternations and each version builds on the prior with increased functionality
  • This method is useful for projects with unclear initial requirements because if a user spot a missing requirement or new feature, they may add it into a future iteration
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Describe the Spiral Development Methodology Description and Diagram

A
  • This method focuses on four key stages repeatedly -
  • Analyses/ Determining Objectives
  • Identifying risks
  • Development and Testing
  • Evaluating the next iteration
  • If the project is found to be too risky at any point, the project is terminated
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

What are the Two Variants of Agile Development Method

A
  • Extreme Programming (XP)
  • Scrum method
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

What is Extreme Programming

A
  • Extreme Programming uses pair programmers meaning that the programmer works with the user to develop the product together
  • At the start of each planning phase they determine that will be developed and at the end they feedback to each other
  • This produces high quality code but there is a high cost of two people working on one project
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

What is Scrum method

A
  • The Scrum method has three different roles -
  • Product Owner – responsible for the business aspect
  • Scrum Master – looks after the team’s performance and the quality of the product
  • The Team - addresses any issues or problems together
  • The projects are run as a series of goals called Sprints, each one taking about a month. At the end of each Sprint there is a Sprint review which allows the team to get feedback from the user before moving onto the next Sprint
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

What are the Advantages, Disadvantages and Uses of the Waterfall Development Methodology

A

Advantages

  • Straightforward to manage
  • Clearly documented

Disadvantages

  • Lack of flexibility
  • No risk analysis
  • Limited user involvement

Uses

  • Static, low-risk projects which need little user input, such as a piece of general-purpose software
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

What are the Advantages, Disadvantages and Uses of the Agile Development Methodology

A

Advantages

  • Produces high quality code
  • Flexible to changing requirements
  • Regular user input

Disadvantages

  • Poor documentation
  • Requires consistent interaction between user and programmer

Uses

  • Small to medium projects with unclear initial requirements
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

What are the Advantages, Disadvantages and Uses of the Extreme Programming Development Methodology

A

Advantages

  • Produces high quality code
  • Constant user involvement means high usability

Disadvantages

  • High cost of two people working on one project
  • Teamwork is essential
  • End-user may not be able to be present

Uses

  • Small to medium projects with unclear initial requirements requiring excellent usability
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

What are the Advantages, Disadvantages and Uses of the Spiral Development Methodology

A

Advantages

  • Thorough risk-analysis
  • Caters to changing user needs
  • Produces prototypes throughout

Disadvantages

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

Uses

  • Large, risk-intensive projects with a high budget
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

What are the Advantages, Disadvantages and Uses of the Rapid Action Development Methodology

A

Advantages

  • High level of user involvement
  • Highly usable finished product
  • Focus on core features, reducing development time

Disadvantages

  • Poorer quality documentation
  • Fast pace may reduce code quality

Uses

  • Small to medium, low-budget projects with short time-frames
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Define an algorithm

A

A set of instructions used to solve a problem

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

What are the different types of Testing Strategies

A
  • White box testing
  • Black box testing
  • Alpha testing
  • Beta testing
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Describe White Box Testing (Structural Testing)

A
  • Tests the structure of the code for correct values so that each section of the code operates as it should
  • All of the possible routes through the program are tested
  • Testing is carried out by the programmer who created the code
  • Weakness - will not detect missing functions – you cannot test what isn’t there! The test is accurate only if the tester knows what the program is supposed to do
17
Q

Describe Black Box Testing (Functional Testing)

A
  • Involves looking at the programs inputs and ouputs
  • A test plan is created and the software is tested without the testers being aware of the internal structure of the software (can be carried out by the company and by end-users)
  • Weakness - Test cases are challenging to design without having clear functional specifications and there is a high probability of repeating tests already performed by the programmer
18
Q

Describe Alpha Testing

A
  • Users are given the software to test out the system
  • User Acceptance Testing takes place and the user give feedback on the funcionality of the software
  • Carried out by the software developers in-house testing team
  • Weaknesses - Only business requirements are covered in Alpha testing
19
Q

Describe Beta Testing

A
  • Involves giving the new software package to a number of potential user who agree to use the system and report any problems to the developers
  • Feedback from users is used to inform the next stage of development
  • Weaknesses – beta testing should not be done too early in development as there is a chance of ‘bad mouthing’ about the product