Software Development Flashcards

1
Q

What are the different testing methods?

A

Black box, white box, alpha, beta and acceptance testing.

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

What is black box testing?

A

Tests designed to check the program functions as expected, will include tests for in and out of bounds inputs if applicable.

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

What is white box testing?

A

Tests designed to take each path through the program and check they function as expected.

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

What is alpha testing?

A

Testing done by the developers.

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

What is beta testing?

A

Testing carried out by potential users.

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

What is acceptance testing?

A

Tests to ensure the program meets the initial criteria.

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

Explain the waterfall life cycle model.

A

Each part of development is done in sequence, when it is required to go back a stage you must go through all the other stages again.

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

Explain the spiral model.

A

Similar to the waterfall model but each step is done less vigorously as you go back after cycle of analysis, design, implementation, evaluation.

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

What is agile development?

A

Where small quick to make changes to the product are made at each stage with lots of feedback from the client.

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

What is extreme programming?

A

A form of agile development where there are frequent releases of the software.

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

What is rapid action development (RAD)?

A

Software development where each section of the program has to be made within strict deadlines even if the resulting software isn’t as good.

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

Compare each of the development methods.

A

Waterfall is good for small projects where careful supervision is needed and has the drawback of a lack of user input, spiral and agile are better as they keep getting user feedback regularly, XP and RAD are good for large projects where it is possible for there be too many suggested improvements so that the required program is always changing.

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

What are the three main programming paradigms?

A

Procedural, object-oriented and functional declarative.

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

What is procedural programming?

A

Where functions and procedures are used to split the program up into different sections. An example of a procedural language is python.

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

What is object-oriented programming?

A

Where abstract objects like stacks or people are used so that code can easily be re-used and is much cleaner, OOP can be done in C#.

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

What is declarative programming?

A

Used in languages like SQL, the programmer writes statements to describe the problem and the language implementation decides how to solve it.

17
Q

What is an object?

A

An instance of a class (similar to how a 5 is an instance of the an integer).

18
Q

What is a class?

A

A variable type which you design which is used to describe a certain thing in your program, this could be children in a school or squares in a geometry program.

19
Q

What is inheritance?

A

Inheritance is when a class has properties from a class above it, e.g. circles would inherit properties from the “shapes” class.

20
Q

What is polymorphism in OOP?

A

Where a method is re-defined in an inherited class.

21
Q

Advantages of OOP?

A

Requires more planning which shows issues earlier, code can be tested independently of the main program, once made a class can be used by any programmer without needing to understand how it works, new similar objects can be created by inheriting from others, can be re-used within a program, maintenance is easier and is good for making libraries.