Unit 3: Software Development Flashcards

1
Q

What are the two main types of software?

A
  • Applications software
  • Systems software
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

What are the 5 stages of software development?

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

What happens in the Analysis stage of software development?

A

A systems analyst gathers information about:
- What the current system does, if there is one
- What the new system needs to do

This can be done through interviews, questionnaires, and making observations.

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

What is the output from the Analysis stage of software development?

A

A document called “System Specification” or “User Requirements”, which will define what the system will do.

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

What happens in the Implementation stage of software development?

A
  • Coding and testing the software
  • Writing user and technical documentation
  • Installing the software for the user
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

What is the difference between Black Box testing and White Box testing?

A

.

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

What is Alpha Testing?

A
  • Alpha testing is carried out by the developer’s in-house team and by the user.
  • It can reveal errors or omissions in the definition of the system requirements.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

What is Beta Testing?

A
  • This is used when commercial software is being developed.
  • The software is given to a number of potential users, who agree to use the software and report any faults.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

What is Acceptance Testing?

A

Acceptance testing is the final testing with the intended user(s). It often involves ‘scenarios’ that the users follow to make sure that the system meets the requirements specification.

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

What are the 3 types of maintenance?

A
  • Corrective maintenance
  • Adaptive maintenance
  • Perfective maintenance
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

What is Corrective maintenance?

A

Fixing bugs and errors in the program to ensure it maintains correct function.

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

What is Adaptive maintenance?

A

Over time, user requirements will change and the software will have to be adapted to meet new needs.

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

What is perfective maintenance?

A

Even if the software works well, there may be ways of perfecting it (e.g making it faster, easier to use, adding functionality)

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

What does the Waterfall model entail?

A
  • Each stage is completed and documented before the next is begun.
  • The customer does not see the end product until it is completed
  • Any change to be made often means the product has to be started again
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Describe 2 advantages of the waterfall model.

A
  • Straightforward to manage
  • Clearly documented
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Describe 3 disadvantages of the waterfall model.

A
  • Lack of flexibility
  • No risk analysis
  • Limited user involvement
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

What does the Spiral model entail?

A
  • The four basic steps of analysis, design, implementation, and evaluation are followed
  • The software project passes through these phases repeatedly
  • Each successful loop round the spiral generates a new, more refined prototype until the software meets all the requirements.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

Describe 3 advantages of the spiral model.

A
  • Thorough risk-analysis and mitigation
  • Caters to changing user needs
  • Produces prototypes throughout
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

Describe 3 disadvantages of the spiral model.

A
  • Expensive to hire risk assessors
  • Lack of focus on code efficiency
  • High costs due to constant prototyping
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

What does the agile model entail?

A
  • Software is developed in rapid incremental cycles
  • Each version builds on previous functionality
  • Each version is thoroughly tested before release
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

Describe 3 advantages of the agile model.

A
  • Produces high quality code
  • Flexible to changing requirements
  • Regular user input
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

Describe 2 disadvantages of the agile model

A
  • Poor documentation
  • Requires consistent interaction between user and programmer
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
23
Q

What is extreme programming?

A
  • A type of agile software development
  • Frequent releases of the software are made in short development cycles
  • It is intended to improve productivity and responsiveness to changing customer requirements.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
24
Q

Describe 2 advantages of extreme programming.

A
  • Produces high quality code
  • Constant user involvement means high usability
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
Q

Describe 3 disadvantages of extreme programming.

A
  • High cost of two people working on one project
  • Teamwork is essential
  • End-user may not be able to be present
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
26
Q

What does rapid application development entail?

A
  • Workshops and focus groups gather requirements rather than using a formal document
  • Prototyping is used to continually refine the system in response to user feedback
  • Each part of the system is produced within a strict time limit
  • Software components are reused whenever possible
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
27
Q

Describe 3 advantages of rapid application development.

A
  • Caters to changing user requirements
  • Highly usable finished product
  • Focus on core features, reducing development time
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
28
Q

Describe 2 disadvantages of rapid application development.

A
  • Poorer quality documentation
  • Fast pace may reduce code quality
29
Q

What is an algorithm?

A

An algorithm is a set of instructions used to solve a problem.

30
Q

What are the 6 key qualities found in a good algorithm?

A
  • Inputs must be clearly defined - what is valid and what is invalid?
  • Must always produce a valid output for any defined input
  • Must be able to deal with invalid inputs
  • Must always reach a stopping condition
  • Must be well-documented for reference
  • Must be well-commented so modifications can easily be made
31
Q

Describe the use cases for the waterfall model.

A

Static, low-risk projects which need little user input, such as a piece of general-purpose software.

32
Q

Describe the use cases for the agile model.

A

Small to medium projects with unclear initial requirements.

33
Q

Describe the use cases for the spiral model.

A

Large, risk-intensive projects with a high budget.

34
Q

Describe the use cases for extreme programming.

A

Small to medium projects with unclear initial requirements requiring excellent usability.

35
Q

Describe the use cases for rapid application development.

A

Small to medium, low-budget projects with short time-frames.

36
Q

What is a programming paradigm?

A

Programming paradigms are different approaches to using a programming language to solve a problem. They are split into two broad categories - imperative and declarative - which can be broken down further into more specific paradigms.

37
Q

Describe what is meant by an ‘imperative’ programming paradigm.

A

Imperative programming paradigms use code that clearly specifies the actions to be performed.

38
Q

Describe what is meant by a ‘procedural’ programming paradigm.

A

This is a type of imperative programming which uses a sequence of instructions which may be contained within procedures. These instructions are carried out in a step-by-step manner.

39
Q

Name 3 examples of a procedural language.

A
  • Python
  • Java
  • Lua
40
Q

Describe what is meant by an ‘object-oriented’ programming paradigm.

A

OOP is a type of imperative programming which is built on entities called objects formed from classes which have certain attributes and methods. OOP focuses on making programs that are reusable and easy to update and maintain.

41
Q

Name 3 examples of an object-oriented language.

A
  • Python
  • Java
  • Lua
42
Q

Describe what is meant by a ‘declarative’ programming paradigm.

A

Declarative programming focuses on stating the desired result rather than the exact series of instructions that need to be performed to get to the result.
Details about how the result is obtained are abstracted from the user.
This type of programming is common in expert systems and artificial intelligence.

43
Q

Describe what is meant by a ‘functional’ programming paradigm.

A

Functional programming is a type of declarative paradigm which uses the concept of reusing a set of functions, which form the core of the program. Programs
are made up of lines of code consisting of function calls,
often combined within each other.

44
Q

Name 3 examples of a functional language.

A
  • JavaScript
  • C#
  • Python
45
Q

Describe what is meant by a ‘logic-based’ programming paradigm.

A

Logic languages are also part of the declarative programming paradigm and use code which defines a set of facts and rules based on the problem. Queries are used to find answers to problems.

46
Q

Name an example of a logic-based language.

A

Prolog

47
Q

What is recursion?

A

Functions are expressed in terms of themselves. Functions are executed, calling themselves, until a certain condition known as a base case (which does not call the function) is met.

48
Q

What is ‘Assembly Language’?

A

Assembly language is the next level up from machine code and is part of a family of low level languages. This is converted to machine code using an assembler when it is executed.

49
Q

What is the function of the mnemonic ‘INP’ in Assembly Language?

A

Allows the user to input a value which will be held in the Accumulator

50
Q

What is the function of the mnemonic ‘BRZ’ in Assembly Language?

A

Branches to a given address if the value in the Accumulator is zero. This is a conditional branch.

51
Q

What is the function of the mnemonic ‘BRP’ in Assembly Language?

A

Branches to a given address if the value in the Accumulator is positive. This is a conditional branch.

52
Q

What is the function of the mnemonic ‘BRA’ in Assembly Language?

A

Branches to a given address no matter the value in the Accumulator. This is an unconditional branch.

53
Q

What is the use of opcode and operand in machine code instructions?

A

The opcode specifies the instruction to be performed from the table above. The operand holds a value which is related to the data on which the instruction is to be performed.

54
Q

Explain the purpose of ‘addressing modes’.

A

The addressing mode specifies how the operand should be interpreted. Addressing modes allow for a much greater number of locations for data to be stored as the size of the operand would constrain the number of addresses that could be accessed.

55
Q

Name the four addressing modes.

A
  • Immediate addressing
  • Direct addressing
  • Indirect addressing
  • Indexed addressing
56
Q

Describe the function of ‘Immediate addressing’.

A

The operand is the actual value upon which the instruction is to be performed, represented in binary.

57
Q

Describe the function of ‘Direct addressing’.

A

The operand gives the address which holds the value upon which the instruction is to be performed. Direct addressing is used in LMC.

58
Q

Describe the function of ‘Indirect addressing’.

A

The operand gives the address of a register which holds another address, where the data is located.

59
Q

Describe the function of ‘Indexed addressing’.

A

An index register is used, which stores a certain value. The address of the operand is determined by adding the operand to the index register. This is necessary to add an offset in order to access data stored contiguously in memory such as in arrays.

60
Q

What is a class (in OOP)?

A

A class is a template for an object and defines the state and behaviour of an object. State is given by attributes which give an object’s properties. Behaviour is defined by the methods associated with a class, which describe the actions it can perform.

61
Q

What is an object (in OOP)?

A

Classes can be used to create objects by a process called instantiation. An object is a particular instance of a class, and a class can be used to create multiple objects with the
same set of attributes and methods.

62
Q

What is a setter (in OOP)?

A

A setter is a method that sets the value of a particular
attribute.

63
Q

What is a getter (in OOP)?

A

A getter is a method used in OOP which retrieves the value of a given attribute.

64
Q

What is encapsulation (in OOP)?

A

The reason getters and setters are used is to make sure attributes cannot be directly accessed and edited by users. This property of object-oriented programming is called encapsulation. Attributes are declared as private so can only be altered by public methods.

65
Q

What is inheritance (in OOP)?

A

A class can inherit from another class; the subclass (or derived class) will possess all of the methods and attributes of the superclass (or parent class) and can have its own additional properties.

66
Q

What is polymorphism (in OOP)?

A

Polymorphism is a property of OOP that means objects can behave differently depending on their class. This can result in the same method producing different outputs depending on the object involved.

67
Q

Name and describe the two categories of polymorphism.

A

Overriding is redefining a method within a subclass and altering the code so that it functions differently and produces a different output.

Overloading is passing in different parameters into a method.

68
Q

Describe 3 advantages of Object-Oriented programming.

A
  • OOP allows for a high level of reusability, which makes it useful for projects where there are multiple components with similar properties.
  • The modular structure used in OOP makes it easy to maintain and update.
  • Encapsulation is a key reason for choosing OOP as it makes the code more reliable by protecting attributes from being directly accessed.
69
Q

Describe 3 disadvantages of Object-Oriented programming.

A
  • Can be difficult for programmers accustomed to other paradigms to pick up.
  • Where few components are reused, OOP may in fact result in amore inefficient program.
  • Generally unsuitable for smaller problems.