1.2 Software and software development Flashcards

You may prefer our related Brainscape-certified flashcards:
1
Q

What is an operating system?

A

a collection of programs that provide an interface between the user and the computer

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

What are some features of OS/operating systems? (5)

A

-memory management
-file management
-security/authentication
-utility software
-user management/interface

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

What are the forms of memory management used by the OS? (3) Why are these used instead of RAM?

A

-paging
-segmentation
-virtual memory

when RAM isn’t large enough to store all the programs being used, these are techniques to ensure that requests/programs are still handled

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

What is paging?

A

-form of memory management used by the OS

-memory split into equal sizes
-physical divisions of memory
-pages are swapped between main memory and the hard disk as needed

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

What is segmentation?

A

-form of memory management used by the OS

-memory split into logical sized divisions (segments)
-unequal sizes
-segments represent the structure and logical flow of the program

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

What is virtual memory?

A

-form of memory management used by the OS

-section of the hard drive acts as RAM when space to store programs is low
-sections of programs not currently being used are temporarily moved into virtual memory through paging

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

What is an issue when using the memory management techniques?

A

disk thrashing
-the computer ‘freezes’ due to pages being swapped too frequently between the hard disk and main memory

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

What are interrupts?

A

signals generated by software or hardware to indicate to the processor that a process needs attention

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

What is needed to be considered when allocating processor time to interrupts?

A

the level of priority it has

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

How are interrupts stored?

A

stored within a priority queue in an interrupt register

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

How can we check for interrupts and service them?

A

through the interrupt service routine (ISR)

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

What does the ISR do to check for interrupts?

A

checks the interrupt register at the end of each FDE cycle

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

What does the ISR do if an interrupt exists?

A

if there is an interrupt which exists with a higher priority to the current process:
-current contents of the registers in the CPU are transferred to a stack
-a relevant ISR is loaded into RAM
-a flag is sent to signal the ISR has begun
-the flag is reset once the ISR has finished
-process is repeated

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

What happens after the ISR has serviced an interrupt?

A

-f there are no interrupts with a higher priority to the current process:
-contents of the stack are popped back into the registers
-FDE cycle resumes

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

What is scheduling?

A

allocating processing time to sections of programs being run (jobs)

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

What do we mean if something is pre-emptive?

A

jobs are actively made to start and stop by the OS

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

What do we mean if something is non pre-emptive?

A

once a job has been started, it is left alone until completed

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

What are the types of scheduling algorithms? (5) List if they are pre-emptive or not

A

Pre-emptive:
round robin
shortest remaining time (SRT)
multilevel feedback queues (MLFQ)

Non pre-emptive
first come first serve (FCFS)
shortest job first (SJF)

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

What is round robin?

A

scheduling algorithm
-each job given a section of processor time (time slice) where it runs
-once the job has used its first time slice, they are given another slice of processor time until the job is completed
-once completed, the job is removed from the queue

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

What are +/- of round robin?

A

+all jobs will eventually be attended to

-longer jobs will take a much longer time for completion
-doesn’t take into account priorities/urgencies of jobs

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

What is FCFS?

A

scheduling algorithm (first come first served)
-jobs are processed in chronological order by which they entered the queue

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

What are some +/- of FCFS?

A

+straightforward to implement

-doesn’t take into account priorities/urgencies of jobs

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

What is MLFQ?

A

scheduling algorithm (multilevel feedback queues)
-makes use of multiple queues, ordered based on priorities

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

What are +/- of MLFQ?

A

+takes into consideration of different job priorities

-difficult to implement

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

What is SJF?

A

scheduling algorithm (shortest job first)
-queue for jobs to be processed is ordered according to time required for completion (longest job serviced at the end)

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

What do we mean by processor starvation?

A

when a process cannot complete its execution as its constantly denied processor time

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

What are some +/- of SJF?

A

+suited to batch systems as waiting time is reduced

-requires processor to calculate how long each job will take
-processor starvation if jobs are continuously added to the queue
-doesn’t take into account priorities/urgencies for jobs

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

What is SRT?

A

scheduling algorithm (shortest remaining time)
-queue for jobs to be processed is ordered according to the time left for completion (jobs which are fastest to complete serviced first)

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

What are some +/- of SRT?

A

+throughput is increased as shorter processes can be quickly completed

-doesn’t take into account priorities/urgencies for jobs
-processor starvation if short jobs are continuously added to the queue

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

What are the different types of OS? (5)

A

-distributed
-embedded
-multi-tasking
-multi-user
-real time

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

How does a distributed OS work?

A

-run across multiple devices
-load of a task is spread across multiple computer processors

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

How does an embedded OS work? Provide its characteristics

A

-built to perform a small range of specific tasks

-catered towards a specific task e.g. household appliance
-limited functionality
-hard to update
-consumes less power than other types of OS

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

How does multi-tasking OS work?

A

-enables user to carry out tasks simultaneously
-time slicing used to quickly switch between programs and applications in memory

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

How does multi-user OS work?

A

-multiple users make use of one computer
-a scheduling algorithm is used to allocate processor time fairly between jobs and prevent processor starvation

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

How does real time OS work?

A

-used in time-critical computer systems
-designed to perform a task within a guaranteed time frame

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

What is a BIOS?

A

basic input output system
-a program responsible for loading the OS when it first turns on
-performs tests before loading OS system

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

How does the BIOS test the computer system before loading the OS?

A

-performs a POST (power-on self test)
-ensures all hardware is correctly connected and functional

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

Where is the BIOS stored?

A

in the ROM

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

What is a device driver?

A

computer programs that allow the OS to interact with hardware
-specific to the computer’s architecture
-specific to the OS

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

What are virtual machines?

A

a theoretical computer and software implementation of a computer system
-provides an environment with a translator for intermediate code to run

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

What is intermediate code?

A

code halfway between machine code and object code
-independent of processor architecture (can run across different machines and OS)
-takes longer to execute than low-level code

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

What are some uses of virtual machines?

A

-testing programs
-protection from malware
-running software which may be incompatible with variations of OS

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

What is application software?

A

software used by the end-user
-performs one specific task

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

Give some examples of application software (5)

A

-word processor
-database
-web browser
-communication software
-video editing software

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

What is systems software?

A

software which manages computer resources
-ensures consistently high performances

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

What are some examples of systems software? (4)

A

-utility software
-OS
-device drivers
-library programs

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

What is the purpose of utility software?

A

maintains the OS
-each has a specific function

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

Give some examples of utility software (5)

A

-antivirus
-disk defragmentation
-data compression
-system clean up
-automatic backup

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

How is data compression a utility software?

A

maintains the OS

-compresses large files to be transmitted across the internet
-reduces the sizes of files, makes it faster to download and increases space

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

How is an antivirus a utility software?

A

maintains the OS

-responsible for detecting potential threats to the computer
-it alerts the user and removes these threats

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

How is disk defragmentation a utility software?

A

maintains the OS

-rearranges the contents of the hard drive so data can be accessed faster, improving performance

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

How is automatic backup a utility software?

A

maintains the OS

-creates copies of specific files which can be determined by the user
-if there is power failure/a malicious attack/accident, files can be recovered

53
Q

How is a system clean up a utility software?

A

maintains the OS

-allows you to get rid of old cache/data which may have built up over time

54
Q

What do we mean when software is open source?

A

the software can be used by anyone without a license and is distributed with the source code

55
Q

What do we mean when software is closed source?

A

the software requires the user to have a license to use it
-users cannot access the source code as the company owns the copyright license

56
Q

What are some advantages of open source software?

A

-can be modified and improved by anyone
-technical support from online community
-can be modified and sold on

57
Q

What are some disadvantages to open source software?

A

-support available may be inadequate (no user manuals)
-lower security

58
Q

What are some advantages of closed source software?

A

-regular, well-tested updates
-company provides expert support and user manuals.
-high levels of security as the software is developed professionally

59
Q

What are some disadvantages of closed source software?

A

-license has restrictions about use
-users cannot modify and improve software

60
Q

What factors are needed to be considered when choosing open/closed source software?

A

-suitability to the task
-cost
-functionality

61
Q

What are translators?

A

programs which convert source code into machine code

62
Q

What are the different types of translators? (3)

A

-compiler
-interpreter
-assembler

63
Q

How does a compiler work? List some of its characteristics (3)

A

translates high level code into machine code all at once

-initial compilation process is longer than using other translators
-compiled code is platform specific
-compiled code can be run without a translator present

64
Q

How does a translator work? List some of its characteristics (5)

A

translates and executes code line-by-line

-produces an error if a line contains an error
-slower than running compiled code
-correct interpreter required to run on different platforms
-code is platform-independent
-useful for testing code

65
Q

How does an assembler work?

A

translates assembly code into machine code
- each line of assembly code is equivalent to one line of machine code (1:1)

(assembly code- low level language, platform specific)

66
Q

What are the different stages of compilation? (4)

A

-lexical analysis
-syntax analysis
-code generation
-optimisation

67
Q

What occurs during lexical analysis? (3)

A

-whitespace and comments are removed
-keywords and identifiers are replaced with tokens
-info about tokens is stored in a symbol table

68
Q

What occurs during syntax analysis? (3)

A

-tokens analysed against rules of the programming language
-syntax errors are flagged up
-abstract syntax tree is produced

69
Q

What occurs during code generation? (1)

A

abstract syntax tree is used to produce machine code

70
Q

What occurs during optimisation? (3)

A

-aims reduce execution time
-redundant parts of code are removed

71
Q

What are some +/- of using an assembler? (3 each)

A

+memory efficient
+speed of execution is faster
+requires fewer instructions to complete the same result

-takes a lot of time to code/write programs as its complex
-difficult to remember the syntax
-lack of portability between computers of different makes

72
Q

What are some +/- of using a compiler? (4 each)

A

+no need for translation at run-time
+speed of execution is faster
+code is usually optimised
+original source code kept secret

-program wont run with syntax errors
-difficult to write code
-code needs to be recompiled when changed
-designed for a specific type of processor

73
Q

What are some +/- of using an interpreter? (3, 4)

A

+easy to write source code as program runs line by line, stopping when there is a syntax error
+when code is changed, it doesn’t need to be recompiled
+easier to debug

-translation software required at run-time
-speed of execution is slower
-code not optimised
-source code required

74
Q

What is a linker?

A

software that links external modules and libraries included within the code

75
Q

What are some types of linkers? (2)

A

-static
-dynamic

76
Q

How does a static linker work?

A

-module/library code is copied directly into the file
-increases the size of the file

77
Q

How does a dynamic linker work?

A

-address of modules/libraries are added to the file
-external module/library updates automatically feed through to the main file

78
Q

What are loaders?

A

programs provided by the OS
- fetches the library/module from the given memory location

79
Q

What are the advantages/uses of libraries? (5)

A

-pre-compiled programs can be incorporated within other programs
-error-free
-save time and effort of developing and testing modules
-can be reused across multiple programs
-increases efficiency of the development process

80
Q

What are software development life cycles (SDLCs)?

A

using different approaches/methods to develop software

81
Q

What stages do the SDLCs consist of? (7)

A

-analysis
-design
-development
-testing
-implementation
-evaluation
-maintenance

82
Q

Give some examples of SDLCs (5)

A

-waterfall lifecycle
-rapid application development (RAD)
-extreme programming
-agile methodologies
-spiral model

83
Q

Describe the waterfall lifecycle (3)

A

-stages completed in sequence from start to finish

-clear structure= easy to follow

-to make changes, need to revisit all stages in between

84
Q

What is the waterfall cycle mainly used for?

A

for static, low risk projects which need little user input e.g. general purpose software

85
Q

What are some +/- of using the waterfall lifecycle? (2, 3)

A

+straightforward to manage
+clearly documented

-lack of flexibility
-no risk analysis
-limited user involvement

86
Q

Describe agile methodologies (5)

A

-collection of methodologies which aim to improve the flexibility of SDLCs

-different sections of the program are developed in parallel so can be at different stages of development simultaneously

-working prototype delivered early on and can be improved in an
iterative manner

-less of a focus on documentation

-user satisfaction is prioritised

87
Q

What are the uses of agile methodologies?

A

for small to medium projects with unclear initial requirements

88
Q

What are some +/- of agile methodologies? (3, 2)

A

+produces high quality code
+flexible to changing requirements
+regular user input

-poor documentation
-requires consistent interaction between user and programmer

89
Q

Describe extreme programming (6)

A

-example of an agile model

-development team is a pair of programmers and a representative end-user

-‘user stories’ determine system requirements

-produces high quality code and highly usable software

-programmers work no longer than 40 hours per week

-hard to produce high quality documentation

90
Q

What are the uses for extreme programming?

A

for small to medium projects with unclear initial requirements requiring excellent usability

91
Q

What are some +/- of extreme programming? (2, 3)

A

+produces high quality code
+constant user involvement= high usability

-high cost of two people working on one project
-teamwork is essential
-end user may not be able to be present

92
Q

Describe the spiral model (5)

A

-has four key stages
- analysing system requirements
- pinpointing and mitigating tasks
- development, testing and implementation
- evaluating to inform the next iteration

-project terminated if too risky

93
Q

What are the uses of the spiral model?

A

for large, risk-extensive projects with a high budget

94
Q

What are some +/- of spiral model? (3 each)

A

+thorough risk analysis and mitigation
+caters to changing users needs
+produces prototypes throughout

-expensive to hire risk assessors
-lack of focus on code efficiency
-high costs due to constant prototyping

95
Q

Describe RAD (5)

A

-iterative methodology which uses partially functioning prototypes

-user requirements are gathered using focus group

-‘incomplete’ version of the solution is given to user to trial
user feedback used to generate next improved prototype

-final prototype matches user requirements fully

-code may be inefficient

96
Q

What are the uses of RAD?

A

for small to medium, low-budget projects with short time-frames

97
Q

What are some +/- of RAD? (3, 2)

A

+caters to changing user requirements
+highly usable finished product
+focus on core features, reducing development time

-poorer quality documentation
-fast pace and late changes may reduce code quality

98
Q

What is an algorithm?

A

a set of instructions used to solve a problem

99
Q

What are all the symbols used in flowcharts? What do they do? (6)

A

https://bam.files.bbci.co.uk/bam/live/content/zvf3d6f/large

100
Q

What are programming paradigms?

A

different approaches to using a programming language to solve a problem

101
Q

What are the two categories of programming paradigms?

A

-imperative
-declarative

102
Q

What is an imperative programming paradigm?

A

code that clearly specifies the actions to be performed

103
Q

What are the two types of paradigms from imperative programming?

A

-procedural
-object-orientated

104
Q

Describe procedural paradigms

A

widely used paradigms as it can be applied to a range of problems
-easy to write and interpret
-written as a series of instructions
-instructions are carried out step-by-step

105
Q

What is object-orientated programming (OOP)?

A

programming suited to problems which can be broken into reusable components with similar characteristics
-based on objects formed from classes which have attributes and methods
-focuses on making programs that are reusable and easy to update and maintain

106
Q

What is a class?

A

a template for an object- defines the properties and actions

107
Q

What are attributes?

A

properties an object has

108
Q

What are methods?

A

actions that an object can perform

109
Q

What is instantiation?

A

a process where classes are used to create objects

110
Q

What is a setter?

A

a method that sets the value of a specific attribute

111
Q

What is a getter?

A

a method which retrieves the value of a given attribute

112
Q

What is encapsulation?

A

when getters and setters ensure that attributes cannot be directly accessed and edited but only be altered by public methods

113
Q

What is a constructor method?

A

allows a new object to be created by the class

114
Q

What is inheritance?

A

a process where a subclass inherits all of the methods and attributes of the superclass (base class)
-subclasses can also have additional properties

115
Q

What is polymorphism?

A

enables objects to behave differently depending on their class

116
Q

What are the two categories of polymorphism?

A

-overriding
-overloading

117
Q

What is overloading?

A

when we pass different parameters into a method

118
Q

What is overriding?

A

when we redefine a method so it functions differently and produces a different output

119
Q

What are some advantages of OOP? (4)

A

-high level of reusability
-code made more reliable through encapsulation
-makes code easy to maintain and update
-classes can be reused as a black box which saves time and effort

120
Q

What are some disadvantages of OOP? (3)

A

-requires an alternative style of thinking
-not suited to all types of problems
-generally unsuitable for smaller problems

121
Q

What is assembly language?

A

low level language, next level up from machine code
-uses mnemonics, abbreviations for machine code instructions
-1:1 ratio of assembly and machine
-processor specific

122
Q

What are all the mnemonics/little man computer (LMCs) needed to know? Give its functions (11)

A

https://o.quizlet.com/q0VmI4ZVFpVY6N.olvOEqA.png

123
Q

What is an addressing mode?

A

specifies how the operand should be interpreted

124
Q

What are the four addressing modes?

A

-immediate addressing
-direct addressing
-indirect addressing
-indexed addressing

125
Q

What does immediate addressing do?

A

makes the operand the actual value where the instruction is to be carried out

126
Q

What does direct addressing do?

A

makes the operand give the address which holds the value where the instruction will be carried out

127
Q

What does indirect addressing do?

A

makes the operand give the address of a register which holds another address, where the data is located

128
Q

What does indexed addressing do?

A

uses an index register, storing a certain value
-address of the operand is determined by adding the operand to the index register