Section 3: Software development Flashcards

1
Q

What are the 5 basic stages of software development?

A

5 basic stages of software development:

  1. Analysis
  2. Design
  3. Programming and testing
  4. Implementation
  5. Evaluation
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

What occurs in the analysis stage of software development?

A

During analysis, the problem at hand is defined. This could include:

  • The data required i.e. its origin, uses and characteristics
  • The procedures
  • The future i.e. development plans and expected growth rates
  • Problems with any existing system (if there is one)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

What occurs in the design stage of software development?

A

The designers of the system will consider some or all of the following:

  • Modular structure and content of the program
  • Data structures
  • Peripherals
  • User interface
  • Security
  • Hardware
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

What is the difference between black box testing and white box testing?

A

White box testing is dependent on the code logic, testing the structure of the program through every possible path at least once. However, black box testing is done independent of the code by someone who has no knowledge of the code in order to test its functionality.

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

What is alpha testing?

A

Alpha testing is testing carried out by the software developer’s in-house testing team. This allows basic functionality errors to be spotted and potential gaps in the fulfillment of user requirements.

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

What is beta testing?

A

Beta testing is a process by which a number of potential users of the software agree to use the system and report any problems that they find to the developers. This allows the program to be exposed to the real world and can detect errors that the developers did not anticipate.

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

What occurs in the implementation stage of software development?

A

Once the coding and testing has been carried out, the program is installed on the user’s system. This is likely to lead to more errors surfacing.

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

What occurs in the evaluation stage of software development?

A

The evaluation is likely to include a post-implementation review, which is a critical examination of the system 3-6 months after it has been put into operation. Shortcomings of the system will become apparent and users will be given a chance to discuss potential improvements.

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

What are the 3 criterion that software is often evaluated on?

A
  • Effectiveness
  • Usability
  • Maintainability
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

What is the waterfall lifecycle model?

A

The Waterfall Model is the model in which each of the 5 basic software development stages are completed one at a time from beginning to end.

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

What are the advantages of the waterfall lifecycle model?

A

Advantages:

  • Simple process
  • Can be cheap provided that the developers get the product correct first time
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

What are the disadvantages of the waterfall lifecycle model?

A

Disadvantages:

  • After the initial analysis stage, there is little customer involvement
  • Can be expensive if mistakes are made throughout the process
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

What is the spiral model?

A

The spiral model uses the same basic steps of software development, however it does this cyclically while producing prototypes for each iteration of the cycle. Each iteration is structured around the next prototype, building on the feedback from the previous prototype.

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

What are the advantages of the spiral model?

A

Advantages:

  • Regularly involves the user
  • Regular incremental refinement of the product, rather than having to made a big set of changes after evaluation
  • Good for big projects that may take years to deliver
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

What are the disadvantages of the spiral model?

A

Disadvantages:

  • Can be expensive
  • Too time-consuming for smaller projects
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

What is the agile model?

A

In an agile model, an agile approach is used at each stage of development. This means that the analysis, design and implementation stages may not be completed linearly. Some analysis might be done, then some parts of the system would be designed and implemented while others are still being analysed. Throughout this, feedback is received from the user as it is an iterative process.

17
Q

What is extreme programming?

A

Extreme programming is a software development methodology which is intended to improve the software quality and responsiveness to user requirements. Frequent releases of the software are made in short development cycles, which can improve productivity and introduce checkpoints at which new customer requirements can be adopted.

18
Q

What is Rapid Application Development (RAD)?

A

Rapid Application Development is a methodology that looks to combat the cancelling of projects due to changes in technology and user requirements. It does this by using very close contact with the user (e.g. through focus groups), continuous prototyping involving input from the users, sticking to strict time limits for each part of the system and reusing software components that have been used elsewhere.

19
Q

What are the 4 major programming paradigms?

A

4 major programming paradigms:

  • Procedural programming
  • Object-oriented programming
  • Declarative programming
  • Functional programming
20
Q

What is polymorphism?

A

Polymorphism is the ability of a language to redefine methods for defined classes when using object-oriented programming.

21
Q

What is assembly language?

A

Assembly language is an advancement upon machine code that, instead of using binary numbers, uses mnemonics to represent machine code instructions - 1 assembly language instruction = 1 machine code instruction.

22
Q

What is immediate addressing?

A

Immediate addressing is where the operand is the actual value to be used in the instruction, often preceded by a #

23
Q

What is direct addressing?

A

Direct addressing is where the operand is the memory address of the value to be used in the instruction.

24
Q

What is indirect addressing?

A

Indirect addressing is where the operand is the memory address that contains the memory address of the value to be used in the instruction.

25
Q

What is indexed addressing?

A

Indexed addressing is where the operand is the value of the index register and a constant value, the sum of which is used to access the contents of an array held in successive memory locations.