1.2 Software and Software Development Flashcards

1
Q

How is the operating system loaded to RAM

A

The boot loader in ROM loads the Operating System into RAM

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

What does the operating system do?

A

communicates between the hardware and (the user and the software)
Provides an interface for the users

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

What are the functions of the operating system

A

User interface
Memory management
Interrupt handling
Processor scheduling

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

What is the purpose of the user interface

A

Gives user an intuitive way of interacting with computer that more people can understand

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

What is the purpose of memory management

A

Allows for the managing of the space in RAM so that all desired programs can be loaded to RAM at once

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

How does paging work?

A

Available memory is divided into fixed chunks called pages, each with an address. When a process is loaded into RAM is allocated sufficient pages that are necessarily contiguous

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

How does segmentation work?

A

Available memory is divided into chunks of variable length called segments. Segments often relate to part of a program, e.g. a function is stored in one segment

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

What is virtual memory?

A

The process of allocating space on the hard drive to hold some of the pages of a current process until they are needed to free up space in memory

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

What is disk thrashing?

A

Slow down of a computer caused by very frequent transfers of pages between RAM and virtual memory.

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

What are interrupts

A

Temporary halts in the fetch - execute cycle to deal with a problem that has appeared to do with the running of the computer.

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

What is the need for interrupts

A

To deal with problems or things that need attention that have arisen in the computer

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

What are some examples of interrupts

A

An I/O device sends an interrupt signal
The printer runs out of paper
An error occurs in a program
A scheduled interrupt from the internal clock
Power failure

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

When does the CPU acknowledge an interrupt?

A

At the end of each fetch-execute cycle

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

What happens when an interrupt is acknowledged

A

Control is handed over to the ISR (Interrupt Service Routine)

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

What happens when control is handed to the ISR

A

Current process is pushed to stack.

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

What is interrupt priority

A

The ability of one interrupt to interrupt another if it is more important

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

What happens when a higher order interrupt is received by the ISR

A

Current interrupt is pushed to stack

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

What is processor scheduling?

A

The process of the CPU scheduling how much processor time is dedicated to different task

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

What is the purpose of processor scheduling

A

To provide an acceptable response time to all users
To maximise the time the CPU is usefully engaged
To ensure fairness on a multi-user system

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

How does Round Robin scheduling work

A

Run each process for its time slice, After each time slice, move the running process to the back of the queue

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

How does first come first served scheduling work

A

The first job to arrive is executed until it completes

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

How does shortest remaining time scheduling work

A

The time to completion is estimated as each new
job arrives
The job with the shortest remaining time to completion is executed, meaning that a shorter new job can take over from the current process

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

How does shortest job first scheduling work

A

As with shortest remaining time, the total execution time of each job is estimated by the user
The waiting job with the smallest total execution time is executed when the current job completes

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

How does multi level feedback queues scheduling work

A

Multiple queues are created with different
priority levels
If a job uses too much CPU time it is moved to a lower priority queue
Processes can also be moved to a higher priority queue if they have waited a long time

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

What is a distributed OS

A

One that can coordinate the processing of a single task across multiple computers. A program can use data or resources from any of the computers

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

What are the advantages and disadvantages of distributed OSs

A

As: The user can access more computational power with the illusion of working with a single processor
No need for training or writing programs differently
Ds: The programmer has no control over the task distribution

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

What is a multi-tasking operating system

A

One that can appear to do more than one task simultaneously on a single processor

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

What is a multi-user operating system?

A

One that uses a very powerful computer called a mainframe which lots of users with their own terminals access the mainframe’s CPU and each gets a time slice

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

What is embedded operating systems

A

One that’s user interface is simple and minimal with minimal features with limited RAM. Application programs are held in ROM.
Usually found in specific devices like washing machines

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

What is a real time operating system

A

One that must respond extremely quickly to inputs and cope with many inputs simultaneously.

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

When are real time operating systems used

A

Safety critical environments
If a hardware component fails, the OS must have a failsafe to detect this and respond appropriately
There is hardware redundancy - crucial components are duplicated in case one fails

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

What does BIOS stand for

A

Basic Input Output System

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

Where is BIOS stored

A

ROM

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

What does BIOS do

A

Boots computer at start-up
-initializes and tests hardware
-Loads operating system into RAM

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

What is a device driver

A

A program that allows the OS to control a certain hardware device. They are hardware dependent and OS specific

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

Why are device drivers useful

A

Os does not need to know the specifics of the hardware to be able to interact with it

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

What is a virtual machine

A

Software that is used to emulate the function of a machine

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

What may a virtual machine be used for

A

Executing intermediate code (e.g. java bytecode)
Running an OS within another

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

What is application software?

A

Software that allows a user to preform a specific task

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

What are some examples of application software

A

Word Processor
Spreadsheet
Database
Presentation
Web Browser
Image Editing

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

What are the different types of application software

A

General purpose
Special purpose software
Bespoke software

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

What is general purpose application software

A

Software designed for many purposes e.g. a word processor

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

What is special purpose application software

A

Software designed for a specific task or set of tasks

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

What is utility software

A

Software which focuses on the maintenance or administration of a part of the system

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

List some utility software

A

Encryption
Defragmentation
Data compression
File Managed
Backup software
Anti-virus
Firewall

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

What does encryption software do

A

Software that makes data un-accessible to anyone but specific users or systems. Aids in security

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

What does antivirus software do?

A

Scans through the computer system looking for files that are infected. Destroys or isolates the virus infected files to stop damage being caused

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

What does a firewall do?

A

Uses ports to deny or allow access of a computer to outside sources

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

What does disk fragmentation do

A

Reorganizes where pieces of data are on a hard disk so the pieces of data are next to ones of the same program

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

What does compression software do

A

Reduces file size by storing data in a less data consuming format, freeing up space on the hard drive

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

What does a file manager do

A

Allows files and directories to be moved, copied, deleted and renamed. Also enables the user to view directory contents

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

What does backup software do

A

Archives files onto removable media if the original copy is lost the data is still available

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

What is a full backup

A

All files are backed up - usually done on the first backup only.

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

What is a incremental backup

A

Only new files or ones that have changed since the last backup are saved in order to save time

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

What is open source software?

A

Software that can be freely used, modified, and shared.

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

What is closed source software

A

Software whose source code is not available to the user and can not be modified. Often costs money

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

What are the advantages and disadvantages of Open-Source Software

A

As: Free, modifiable, if has a large community bugs will often be fixed quickly
Ds: Often no official support, bugs slow to fix with small community

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

What are the advantages and disadvantages of Closed Source Software

A

As: Full support and documentation from creators, code often higher quality and bugs fixed quickly
Ds: Often costs money, unmodifiable

59
Q

Difference between proprietary software and Freeware

A

Both Closed source but proprietary costs money while freeware is free

60
Q

What is a translator

A

Coverts code from one form to another, e.g. a high level language to a low level language

61
Q

What is assembly language?

A

It is an alternative to machine language. Instead of using binary numbers for instructions, assembly language uses short words that are known as mnemonics. Assembly language is hardware specific

62
Q

What is an assembler

A

Translates assembly code instructions into machine code

63
Q

What is a compiler?

A

Translates source code in a high level language to executable machine code all at once as a whole program

64
Q

What is an interpreter

A

Translates source code into machine code line by line

65
Q

Benefits of a compiler

A

Program can be run many times without the need to recompile
Faster to execute
Executable code does not need an interpreter to run
Compiled code cannot be read by others
Produces standalone executable file

66
Q

Benefits of an interpreter

A

Source code can be run on any machine with interpreter
If a small error if found whole program doesn’t need to be recompiled
Source code only needs writing once
Useful during debugging

67
Q

Disadvantages of a compiler

A

Hard to fix bugs
Writing programs is more complex
Hardware specific
Compile times may be slow

68
Q

Disadvantages of an interpreter

A

Programs run slowly
The user has to wait for the line translation as well as the execution
In a loop the same lines may need translating repeatedly
An interpreter needs to be installed
Developers can view the source

69
Q

What are the stages of compilation

A

Lexical analysis
Syntax analysis
Code generation
Optimisation
Compilation
Linker

70
Q

What is done during lexical analysis

A

All white space removed
Keywords, constants and identifiers are replaced with tokens (assigned using a symbol table)

71
Q

What is a symbol table

A

A data structure built up by a lexer that assigns certain variable, procedure or constant names to an token

72
Q

What is syntax analysis

A

The process of splitting the stream of tokens into phrases, parsing them and recording the error if they are invalid

73
Q

What is parsing

A

The checking of phrases against the rules of the languages

74
Q

What is semantic analysis

A

Checks if syntactically correct statements are logically correct and can actually work in the program

75
Q

What is code optimization

A

The removal of redundant instructions and replacement of inefficient code

76
Q

What are some programming paradigms

A

Procedural - e.g. python
Object-oriented - e.g. java
Declarative - e.g. SQL
Functional - e.g. Haskall

77
Q

What kind of paradigms are procedural and object oriented

A

Imperitive

78
Q

What is a programming paradigm

A

The main design philosophy of a programming language that influences the features they have in them. Used to classify languages

79
Q

What is the purpose of having different programming paradigms

A

Some paradigms are more suited to certain kinds of problem and thus help to make the solution easier to find

80
Q

What is imperative programming

A

Languages which consist of a series of instructions that tell the computer how to solve the problem

81
Q

What is declarative programming

A

Statements describe the problem that is to be solved but not how to solve it. The language implementation then finds the best way to solve it. Can solve fewer problems than imperitive

82
Q

What is procedural programming

A

Programming where instructions are given in a sequence with selection used to control program flow as well as iteration. Programs are broken into blocks

83
Q

What is object oriented programming

A

A style of programming that r represents a program as a system of objects. Each object has its own methods and attributes. Objects interact with each other and all processing is done by objects.

84
Q

What is a class

A

A template from which objects are created

85
Q

What is an object

A

An instance of a class

86
Q

What is a method

A

A subroutine only accessible by an object of the class which that method belongs too

87
Q

What is an attribute

A

A variable of an object that is only accessible
through the use of the methods of that class

88
Q

What is encapsulation?

A

Wrapping attributes and methods into a single entity called a class that are only accessible by an instance of that class using certain methods.

89
Q

What is inheritance?

A

The process of having a class inherit the objects and attributes of another while being able to add things while not affecting the original class

90
Q

What is polymorphism?

A

The redefinition of the methods of a parent class in a child class to suit the child class better

91
Q

What is immediate addressing

A

The operand holds an actual value

92
Q

What is Direct addressing

A

The operand holds the address of the value

93
Q

What is indirect addressing

A

The operand holds the location holding the address of the value

94
Q

How is an assembly language statement composed

A

Opcode + Operand

95
Q

In LMC, What is the mnemonic for Load and what does it do

A

LDA, loads value at specified location into ACC

96
Q

In LMC, What is the mnemonic for Store and what does it do

A

STA, Stores value in ACC into specified location

97
Q

In LMC, What is the mnemonic for Add and what does it do

A

ADD, Adds number at specified location to number in ACC

98
Q

In LMC, What is the mnemonic for Subtract and what does it do

A

SUB - Subtracts value of specified location from value in ACC

99
Q

In LMC, What is the mnemonic for Input and what does it do

A

INP - gets user input and stores it in ACC

100
Q

In LMC, What is the mnemonic for Output and what does it do

A

OUT, outputs value in ACC

101
Q

In LMC, What is the mnemonic for END and what does it do

A

HLT - ends program flow

102
Q

In LMC, What is the mnemonic for Branch if 0 and what does it do

A

BRZ - changes to specified line of code if value in ACC is 0

103
Q

In LMC, What is the mnemonic for Branch if positive and what does it do

A

BRP - changes to specified line of code if value in ACC is positive

104
Q

In LMC, What is the mnemonic for Branch always and what does it do

A

BRA - changes to specified line of code

105
Q

In LMC, What is the mnemonic for Data storage and what does it do

A

DAT - assigns specific location in memory for storage of calculations

106
Q

What are the stages of software design (5)

A

Analysis
Design
Implementation
Evaluation
Maintenance

107
Q

What is done in the analysis stage

A

A systems analyst gathers information about:
What the current system does
What the new system needs to do

108
Q

How might a systems analyst gather information

A

Interview
Questionnaires
Observation of how the current system works
Looking at existing documentation

109
Q

What is the output from the analysis stage

A

A document that defines what the system will do, but not how to do it

110
Q

What is involved in the design stage

A

The problem is decomposed
A model of what needs to be developed is made

111
Q

What is included in the software design (6)

A

A description of the data(data type, format, validations)
Data base design
Input screens
Output screens and reports
How the data will be processed
How the software will be tested

112
Q

What is involved in implementation (3)

A

Programming
Testing
Documentation
Installation

113
Q

What are the different types of testing and what do they involve (3)

A

Unit testing(black/white box) - individual modules
Integration testing - ensures modules work together
Destructive testing - causes a program to fail

114
Q

What is black box testing?

A

Testing carried out independently of the code
Fed input and outputs compared to desired outcome with no regard to how the code gets those outcomes

115
Q

What is white box testing?

A

Tests are devised which test each path through the code at least once.

116
Q

What is alpha testing?

A

Testing carried out once the program is free from obvious bugs by the software developer’s in house and by the user. Can reveal errors or things that don’t line up with what the user wants

117
Q

What is beta testing?

A

Testing carried out by a number of potential users who agrees to use the software and report any faults

118
Q

What are the different kinds of test data (5)

A

Valid normal data
Valid boundary data
Standard incorrect data
Standard invalid data
Extreme invalid data

119
Q

What are the different parts of a test plan (6)

A

Test number
Test title
Explanation of test
Test data
Expected result
Actual result

120
Q

What are the two types of documentation

A

Technical documentation
User documentation

121
Q

What is included in technical documentation (3)

A

Code descriptions
Modules
Functionality

122
Q

What is user documentation?

A

A manual explaining how to use the system

123
Q

What is involved in evaluation?

A

Finding if it all work by:
Evaluating it against the original specification documentation
User testing every aspect to see if it works like they want it to

124
Q

What are the types of maintenance (3)

A

Corrective maintenance
Adaptive maintenance
Perfective maintenance

125
Q

What is corrective maintenance

A

Fixing any bugs that were missed before release

126
Q

What is adaptive maintenance

A

Involves making alterations to respond to changes in the demands

127
Q

What is perfective maintenance

A

Improving the software to enhance its performance that was not thought of in the original Design

128
Q

What are the different software development lifecycles

A

Waterfall
Agile
Extreme
Spiral
Rapid application development

129
Q

Describe the waterfall model

A

Linear approach where each stage of development is done consecutively where the customer does not see the product until it is completed

130
Q

What are the advantages of the waterfall model (4)

A

Simple
Each stage is separate and self contained with well defined outcomes and written documentation
Easy to manage
Responsibilities clear at each step

131
Q

What are the disadvantages of the waterfall model (4)

A

Not much user involvement after analysis
Carries a lot of risk
No working software produced until late on
If software is not what user wants it is usually to late to make changes

132
Q

When to use Waterfall Model

A

Requirements are clear and fixed
No ambiguous requirements
Technology is well understood
Project is short

133
Q

Describe the spiral model

A

Four basic steps of analysis, design, implementation and evaluation are repeatedly done.

134
Q

Advantages of the spiral model (5)

A

Easy to manage
Software produced at early stage so problems and issues identified early
User gives feedback on each prototype so required changes can be made early
Functionality can be added during the process
End result is more likely to be what the user wants

135
Q

Disadvantages of the spiral model (3)

A

Time consuming
More costly to develop
Not suitable for smaller projects

136
Q

When to use the spiral model

A

For medium to high risk projects
When users are unsure of their needs
When the requirements are complex
For very large projects over many years

137
Q

Describe the agile model.

A

Software is developed in rapid incremental cycles
Each version builds on previous functionality
Each version is tested before release

138
Q

Advantages of the agile model (4)

A

Rapid continuous delivery of useful software leads to customer satisfaction
Customer feedback is constantly gotten
Software is easily adapted at any stage
Working software delivered frequently

139
Q

What are the disadvantages of the agile model

A

Lack of emphasis on necessary design and documentation
Project can fail if customer not clear about desired outcome
Not suitable for novice programmers

140
Q

When to use the agile model

A

When new changes need to be implemented
In an expanding or developing business where needs are constantly changing

141
Q

What is Extreme Programing?

A

A type of agile development that advocates frequent releases in short development cycles to improve productivity

142
Q

What is Rapid Application Development?

A

A software development method where workshops and focus groups used to gather requirements and prototyping is continually used to refine the system. Each part of the system is produced within a strict time limit.

143
Q

When to use rapid application development

A

When requirements are not entirely clear
When end project needs to have excellent usability
When the user needs to be highly involved in development