Topic 2: Software and software development Flashcards

1
Q

What are the functions of an OS

A
  • Interrupts
  • User Interface
  • File Management
  • Peripheral Management/Drivers
  • User Management
  • Memory Management
  • Processor Scheduling
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

What is the purpose of an OS

A

To manage interaction between hardware and software

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

What does a GUI have

A

WIMP

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

What does WIMP stand for

A

Windows
Icons
Menus
Pointers

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

What does BIOS do in terms of OS

A

BIOS loads OS to RAM

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

What is CLI and when would it be used

A

Command Line Interface, used at a technical level as you interact with hardware more

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

What is MDI and when would it be used

A

Menu Driven Interface, used to simplify options so the user can’t be annoying (ATM)

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

What is Memory Management

A

Manage memory, Paging and Segmentation

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

What is Paging

A

A process loaded to RAM is allocated sufficient pages that may not be contiguous in physical terms. Pages are fixed length blocks of memory. Each page has an address.

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

What is Segmentation

A

Variable length memory-size data, Logical

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

What are the benefits of Paging

A

So data can swap into and out of virtual memory.
Page tables don’t have to have data contiguous

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

What does a page table do

A

Maps between the logical and the physical memory locations

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

What is swapping

A

Moving data to and from virtual memory

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

How are the pages that get swapped decided

A

By the OS

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

Why is swapping bad

A

It causes disk thrashing which slows performance

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

What is Immediate addressing

A

Actual value

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

What are the 4 types of addressing

A

Immediate
Direct
Indirect
Indexed

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

What is Direct addressing

A

Address of value

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

What is Indirect addressing

A

Address of Address of value

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

What is Indexed addressing

A

Index value + Value

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

What sends interrupts

A

Software, Hardware devices or the CPUs internal clock

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

When would you Interrupt

A

User Input
Errors
Power Failure
An I/O sends and Interrupt signal

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

When are interrupts checked for

A

CPU checks for interrupts at the end of every cycle

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

What happens if an Interrupt is found

A

Current processing is pushed to a stack

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

What happens when the interrupt is finished

A

Processing is popped back

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

What is the ISR

A

Interrupt Service Routine

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

What is a Queue

A

FiFo

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

What is a Stack

A

LiFo

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

How are interrupts processed

A

In order of priority using levels

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

Can an interrupt be interrupted

A

Yes, by a higher level interrupt, it will be pushed to the stack

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

What is processor Scheduling

A

Allows us to have the illusion that the CPU is multitasking

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

Name some features of a Round Robin

A

FIFO
Set amount Time slices
Sent to back of Queue

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

What is a Round Robin routine

A

Each job is given a time slice of processor time to run in.
When a job has used up it’s time slice it is returns to the start of the queue and receives another.
This repeats until the job is complete.

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

What is First come First Served Routine

A

Jobs are processed in the order they entered the queue

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

What is a Multilevel feedback queue routine

A

Uses multiple queues, each with a different priority

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

What is a Shortest job first routine

A

The queue is ordered by the amount of processor time needed. Shortest jobs are completed first.

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

What is a Shortest time remaining routine

A

The queue is ordered based on the time left to completion.
Jobs with the least time needed to complete are finished first

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

Advantages and Disadvantages of Round Robin

A

A: All jobs are eventually attended to.

D: Longer jobs take much longer. Takes no account of priority.

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

Advantages and Disadvantages of First come First Served

A

A: Easy to implement.

D: Takes no account of priority.

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

Advantages and Disadvantages of Multilevel Feedback

A

A: Considers job priority.

D: Tricky to implement

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

Advantages and Disadvantages of Shortest Job First

A

A: Works well for batch systems

D: Requires additional processor time to order the queue. Takes no account of priority.

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

Advantages and Disadvantages of Shortest time Remaining

A

A: Increased throughput

D: Requires additional processor time to order the queue. Takes no account of priority.

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

Name 5 types of Software Development

A
  • Waterfall
  • Agile
  • Extreme Programming
  • Spiral
  • Rapid Application Development (RAD)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
44
Q

Advantages and Disadvantages of Waterfall

A

A: Straightforward to Manage. Clearly documented

D: Lack of Flexibility. No risk analysis. Limited user involvement

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

Advantages and Disadvantages of Agile

A

A: High quality code. Flexible to changing requirements. Regular user inputs.

D: Poor Documentation

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

Advantages and Disadvantages of Extreme Programming

A

A: High quality code. Constant user involvement means high usability.

D: High cost as two people needed. Teamwork is essential. User needs to be present.

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

Advantages and Disadvantages of Spiral

A

A: Thorough risk analysis. Caters to changing user needs. Prototypes produced throughout.

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

48
Q

Advantages and Disadvantages of RAD

A

A: Caters to changing requirements. Highly usable finished product. Focus on core features, reducing development time.

D: Poorer quality documentation. Fast pace and late changes may reduce code quality.

49
Q

Uses of Waterfall

A

Static, low-risk projects with little user input

50
Q

Uses of Agile

A

Small to medium projects with unclear initial requirements

51
Q

Uses of Extreme Programming

A

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

52
Q

Uses of Spiral

A

Large, Risk intensive projects with a high budget

53
Q

Advantages of Open Source Software

A

Online, free, community support. Many individuals will work on the code meaning it is of high quality. Free.

54
Q

What is Open Source Software

A

Provided along with the source code. No license required to use.

55
Q

Disadvantages of Open Source Software

A

Not always well supported or documented. Variable quality code. Less secure.

56
Q

What is Closed Source Software

A

Needs a license to use. Source code is not available. Protected by Copyright

57
Q

Advantages of Closed Source Software

A

The company provides support and documentation. Professionally developed. More secure. Regular updates

58
Q

Disadvantages of Closed Source Software

A

Code cannot be customised to meet user needs. License may restrict use. More expensive.

59
Q

What are the 4 stages of Compilation

A
  • Lexical Analysis
  • Syntax Analysis
  • Code Abstraction
  • Optimisation
60
Q

What is Lexical Analysis

A
  • Comments and whitespace removed
  • Identifiers and keywords replaced with tokens
  • Token info stored in a symbol table
61
Q

What is Syntax Analysis

A
  • Tokens checked against language rules
  • Flags syntax errors
  • Abstract Syntax Tree Produced
62
Q

What is Code Abstraction

A
  • Machine code produced using Abstract Syntax Tree
63
Q

What is Optimisation

A
  • Reduces execution time
  • Most time consuming part
  • Removes redundant code
64
Q

What is a Translator

A

Convert source code into object code

65
Q

What is a Compiler

A
  • Translates code all in one go
  • Compilation process is longer
  • Produces platform specific code
  • Complied code can be run without a translator
  • Produces an executable
66
Q

What is an Interpreter

A
  • Translates and executes code line by line.
  • Will error if a line contains an error.
  • Slower to run than compiled code.
  • Code is platform independent.
  • Useful for testing.
67
Q

What is an Assembler

A
  • Assembly code is platform specific, low level code.
  • Translates assembly code to machine code.
  • 1 line of assembly code = 1 line of machine code.
68
Q

What is a Device Driver

A
  • Code which allows OS to interact with hardware
  • Specific to the OS and architecture type
69
Q

What is a Linker

A
  • Link external modules and libraries used in the code.
  • Static linkers copy the library code directly into the file, increasing its size.
  • Dynamic linkers just add the addresses of the module or library.
70
Q

What is a Loader

A

Provided by the OS to fetch the library or module from the given location in memory

71
Q

What is a Library

A
  • Libraries include pre compiled, error free, code which can be used within other programs
  • Common functions can quickly and easily be reused across multiple programs
  • Saves the time and effort associated with developing and testing code to perform the same task over and over again.
72
Q

Ways to Address Memory

A
  • Machine code comprises an operand and opcode.
  • Operand is the value relating to the data on which the instruction should be performed.
  • Opcode holds the instruction and the addressing mode.
  • The addressing mode is how the operand should be interpreted.
73
Q

What are Virtual Machines

A
  • A software implementation of a virtual computer
  • Intermediate code is halfway between machine code and object code.
  • It is independent of process architecture allowing it to run across different systems.
  • It takes longer to execute
  • Virtual machines can be used to help protect from malware, test software, or run software with different versions or OS requirements.
74
Q

What is Applications software

A

Used by an end user to perform a specific task. e.g. word processor or web browser

75
Q

Name 3 types of Software

A
  • Applications
  • Systems
  • Utility
76
Q

What is systems software

A

Manages computer resources to maintain performance e.g. operating system or device driver

77
Q

What is Utility Software

A

Has a specific function to maintain OS performance e.g. backup or compression software

78
Q

What is Assembly Language

A
  • One level up from machine code.
  • Low level language.
  • Uses abbreviations for machine code called mnemonics.
  • Processor specific.
  • One line in assembly language equals one line in machine code.
79
Q

What do the Mnemonics mean:
- ADD
- SUB
- STA

A
  • ADD the value at the memory address to the value in the accumulator
  • SUB-tract the value at the memory address from the value in the accumulator
  • STores the value in the accumulator at the memory address
80
Q

What do the mnemonics mean:
- LDA
- INP
- OUT

A
  • Load the value at the memory address into the accumulator
  • Allows the user to INPut a value to be held in the accumulator
  • Prints the value in the accumulator
81
Q

What do the Mnemonics mean:
- HLT
- DAT
- BRZ

A
  • Halt, stops the program at that line
  • DATa, Creates a flag with a label at which data is stored
  • Branch if Zero, branches to an address if the value in the accumulator is zero. A conditional branch
82
Q

What do the mnemonics mean:
- BRP
- BRA

A
  • Branch if Positive, branches to a given address if the value in the accumulator is positive. A conditional address.
  • Branch Always. Branches to a given address no matter the value in the accumulator. An unconditional branch.
83
Q

What is Extreme Programming

A

*An agile model.
*Development team includes developers and user representatives.
* The system requirements are based on “user stories”.
*Produces highly usable software and high quality code.
*Programmers work no longer than 40 hours per week.
*Hard to produce high quality documentation.

84
Q

What is Rapid Application Development

A

*An iterative methodology.
*Uses partially functioning prototypes.
*Users trial a prototype.
* Focus groups gather user requirements.
* This informs the next prototype.
* This cycle repeats.
*Used where user requirements are unclear.
* Code may be inefficient.

85
Q

What is Spiral Programming

A

*Used for high risk projects.
*Has four stages.
*Analyse requirements.
* Locate and mitigate risks.
*Develop, test and implement.
* Evaluate to inform the next iteration.
* The project may be terminated if it is deemed too risky.
*Specialist risk assessors are needed.

86
Q

What are Agile Methodologies

A

*A collection of mythologies.
*Aimed to improve flexibility.
*Adapt quickly to changing user requirements.
*Sections of the program are developed in parallel.
*Different stages of development can be carried out simultaneously.
*A prototype is provided early and improved in an iterative manner.
* Low focus on documentation.
*High focus on user satisfaction.

87
Q

What is Waterfall

A
  • The stages are completed in order.
  • The clear structure makes this model easy to follow.
  • Changes mean that all stages must be revisited.
    *User involvement is low.
88
Q

What is Procedural Programming

A
  • Simple to implement.
  • Applicable to many problems.
  • Is not suited to every problem.
  • Uses traditional data types and structures.
89
Q

What is Structured Programming

A
  • A subsection of procedural programming
  • The flow is given four structures: sequence, selection, iteration and recursion.
90
Q

What is Object Oriented Programming, Adv/Disadvantages

A

Advantages
* Reusable
* Code is more reliable
* Code is easy to maintain and update
* Classes can be reused, saving time and effort

Disadvantages
* Requires an alternative style of thinking
* Not suited to every problem
* Not best suited for small problems

91
Q

What is a Class

A

A template for an object. Defines the behaviour and state of the object

92
Q

What is a state

A

Defined by attributes giving the objects properties

93
Q

What is Behaviour

A

Defined by the methods. Describes the action an object can perform

94
Q

What is Instantiation

A

Using a class to create an object

95
Q

What is an Object

A

An instance of a class. Classes can create multiple objects

96
Q

What’s a setter

A

A method which sets the value of an attribute

97
Q

What is a Getter

A

A method which retrieves the value of an attribute

98
Q

What is a constructor method

A

Allows a new object to be created from a class. Every class must have one.

99
Q

What is inheritance

A

Process where a subclass will inherit methods and attributes of a superclass

100
Q

What is Polymorphism

A

Allows objects to behave differently depending on their class

101
Q

What is Overloading

A

Avoiding a method by passing different parameters to a method

102
Q

What is Overriding

A

Redefining a method to allow it to produce a different output or function differently

103
Q

What are 2 programming paradigms

A

Imperative (procedural and OOP)
Declarative (Functional and Logic)

104
Q

What’s Declarative

A

States the desired result with the language deciding how to achieve it. Users are unaware how the result is obtained.

105
Q

What’s Imperative

A

Code specifies clearly the actions to be performed

106
Q

What’s Functional Programming

A

Based around functions
Function calls can be combined
Linked to mathematics

107
Q

What’s Logic Programming

A

Rules and facts of the problem are defined
Queries are used to find answers to these problems

108
Q

What are Algorithms

A
  • A set of instructions used to solve a set problem.
  • Inputs must be clearly defined.
  • Must always produce a valid output.
  • Must be able to handle invalid inputs.
  • Must always reach a stopping condition.
  • Must be well-documented for reference.
  • Must be well-commented.
109
Q

Name 4 types of testing

A

Black Box
White Box
Beta Testing
Alpha Testing

110
Q

What is Black Box Testing

A

Software is tested without the testers being aware of the internal structure of the software and can be carried out both within the company and by end-users. The test plan traces through inputs and outputs within the software. This is also known as functional testing

111
Q

What is White Box Testing

A

Testing carried out by software development
teams in which the test plan is based on the internal structure of the program. All of the possible routes through the program are tested. This is also called structural testing.

112
Q

What is Beta Testing

A

Beta testing is carried out by end-users after alpha testing has been completed. Feedback from users is used to inform the next stage of development.

113
Q

What is Alpha Testing

A

Alpha testing is carried out in-house by the software development teams within the company. Bugs are pinpointed and fixed.

114
Q

What do Programmers use in the Feasibility Study

A

TELOS

115
Q

What does TELOS Stand for

A

technical
Economical
Legal
Operational
Scheduling

116
Q

Name 5 Types of OS

A
  • Distributed
  • Embedded
  • Real Time
  • Multi User
  • Multi Tasking