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
What is a distributed OS
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
26
What are the advantages and disadvantages of distributed OSs
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
27
What is a multi-tasking operating system
One that can appear to do more than one task simultaneously on a single processor
28
What is a multi-user operating system?
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
29
What is embedded operating systems
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
30
What is a real time operating system
One that must respond extremely quickly to inputs and cope with many inputs simultaneously.
31
When are real time operating systems used
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
32
What does BIOS stand for
Basic Input Output System
33
Where is BIOS stored
ROM
34
What does BIOS do
Boots computer at start-up -initializes and tests hardware -Loads operating system into RAM
35
What is a device driver
A program that allows the OS to control a certain hardware device. They are hardware dependent and OS specific
36
Why are device drivers useful
Os does not need to know the specifics of the hardware to be able to interact with it
37
What is a virtual machine
Software that is used to emulate the function of a machine
38
What may a virtual machine be used for
Executing intermediate code (e.g. java bytecode) Running an OS within another
39
What is application software?
Software that allows a user to preform a specific task
40
What are some examples of application software
Word Processor Spreadsheet Database Presentation Web Browser Image Editing
41
What are the different types of application software
General purpose Special purpose software Bespoke software
42
What is general purpose application software
Software designed for many purposes e.g. a word processor
43
What is special purpose application software
Software designed for a specific task or set of tasks
44
What is utility software
Software which focuses on the maintenance or administration of a part of the system
45
List some utility software
Encryption Defragmentation Data compression File Managed Backup software Anti-virus Firewall
46
What does encryption software do
Software that makes data un-accessible to anyone but specific users or systems. Aids in security
47
What does antivirus software do?
Scans through the computer system looking for files that are infected. Destroys or isolates the virus infected files to stop damage being caused
48
What does a firewall do?
Uses ports to deny or allow access of a computer to outside sources
49
What does disk fragmentation do
Reorganizes where pieces of data are on a hard disk so the pieces of data are next to ones of the same program
50
What does compression software do
Reduces file size by storing data in a less data consuming format, freeing up space on the hard drive
51
What does a file manager do
Allows files and directories to be moved, copied, deleted and renamed. Also enables the user to view directory contents
52
What does backup software do
Archives files onto removable media if the original copy is lost the data is still available
53
What is a full backup
All files are backed up - usually done on the first backup only.
54
What is a incremental backup
Only new files or ones that have changed since the last backup are saved in order to save time
55
What is open source software?
Software that can be freely used, modified, and shared.
56
What is closed source software
Software whose source code is not available to the user and can not be modified. Often costs money
57
What are the advantages and disadvantages of Open-Source Software
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
58
What are the advantages and disadvantages of Closed Source Software
As: Full support and documentation from creators, code often higher quality and bugs fixed quickly Ds: Often costs money, unmodifiable
59
Difference between proprietary software and Freeware
Both Closed source but proprietary costs money while freeware is free
60
What is a translator
Coverts code from one form to another, e.g. a high level language to a low level language
61
What is assembly language?
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
What is an assembler
Translates assembly code instructions into machine code
63
What is a compiler?
Translates source code in a high level language to executable machine code all at once as a whole program
64
What is an interpreter
Translates source code into machine code line by line
65
Benefits of a compiler
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
Benefits of an interpreter
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
Disadvantages of a compiler
Hard to fix bugs Writing programs is more complex Hardware specific Compile times may be slow
68
Disadvantages of an interpreter
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
What are the stages of compilation
Lexical analysis Syntax analysis Code generation Optimisation Compilation Linker
70
What is done during lexical analysis
All white space removed Keywords, constants and identifiers are replaced with tokens (assigned using a symbol table)
71
What is a symbol table
A data structure built up by a lexer that assigns certain variable, procedure or constant names to an token
72
What is syntax analysis
The process of splitting the stream of tokens into phrases, parsing them and recording the error if they are invalid
73
What is parsing
The checking of phrases against the rules of the languages
74
What is semantic analysis
Checks if syntactically correct statements are logically correct and can actually work in the program
75
What is code optimization
The removal of redundant instructions and replacement of inefficient code
76
What are some programming paradigms
Procedural - e.g. python Object-oriented - e.g. java Declarative - e.g. SQL Functional - e.g. Haskall
77
What kind of paradigms are procedural and object oriented
Imperitive
78
What is a programming paradigm
The main design philosophy of a programming language that influences the features they have in them. Used to classify languages
79
What is the purpose of having different programming paradigms
Some paradigms are more suited to certain kinds of problem and thus help to make the solution easier to find
80
What is imperative programming
Languages which consist of a series of instructions that tell the computer how to solve the problem
81
What is declarative programming
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
What is procedural programming
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
What is object oriented programming
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
What is a class
A template from which objects are created
85
What is an object
An instance of a class
86
What is a method
A subroutine only accessible by an object of the class which that method belongs too
87
What is an attribute
A variable of an object that is only accessible through the use of the methods of that class
88
What is encapsulation?
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
What is inheritance?
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
What is polymorphism?
The redefinition of the methods of a parent class in a child class to suit the child class better
91
What is immediate addressing
The operand holds an actual value
92
What is Direct addressing
The operand holds the address of the value
93
What is indirect addressing
The operand holds the location holding the address of the value
94
How is an assembly language statement composed
Opcode + Operand
95
In LMC, What is the mnemonic for Load and what does it do
LDA, loads value at specified location into ACC
96
In LMC, What is the mnemonic for Store and what does it do
STA, Stores value in ACC into specified location
97
In LMC, What is the mnemonic for Add and what does it do
ADD, Adds number at specified location to number in ACC
98
In LMC, What is the mnemonic for Subtract and what does it do
SUB - Subtracts value of specified location from value in ACC
99
In LMC, What is the mnemonic for Input and what does it do
INP - gets user input and stores it in ACC
100
In LMC, What is the mnemonic for Output and what does it do
OUT, outputs value in ACC
101
In LMC, What is the mnemonic for END and what does it do
HLT - ends program flow
102
In LMC, What is the mnemonic for Branch if 0 and what does it do
BRZ - changes to specified line of code if value in ACC is 0
103
In LMC, What is the mnemonic for Branch if positive and what does it do
BRP - changes to specified line of code if value in ACC is positive
104
In LMC, What is the mnemonic for Branch always and what does it do
BRA - changes to specified line of code
105
In LMC, What is the mnemonic for Data storage and what does it do
DAT - assigns specific location in memory for storage of calculations
106
What are the stages of software design (5)
Analysis Design Implementation Evaluation Maintenance
107
What is done in the analysis stage
A systems analyst gathers information about: What the current system does What the new system needs to do
108
How might a systems analyst gather information
Interview Questionnaires Observation of how the current system works Looking at existing documentation
109
What is the output from the analysis stage
A document that defines what the system will do, but not how to do it
110
What is involved in the design stage
The problem is decomposed A model of what needs to be developed is made
111
What is included in the software design (6)
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
What is involved in implementation (3)
Programming Testing Documentation Installation
113
What are the different types of testing and what do they involve (3)
Unit testing(black/white box) - individual modules Integration testing - ensures modules work together Destructive testing - causes a program to fail
114
What is black box testing?
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
What is white box testing?
Tests are devised which test each path through the code at least once.
116
What is alpha testing?
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
What is beta testing?
Testing carried out by a number of potential users who agrees to use the software and report any faults
118
What are the different kinds of test data (5)
Valid normal data Valid boundary data Standard incorrect data Standard invalid data Extreme invalid data
119
What are the different parts of a test plan (6)
Test number Test title Explanation of test Test data Expected result Actual result
120
What are the two types of documentation
Technical documentation User documentation
121
What is included in technical documentation (3)
Code descriptions Modules Functionality
122
What is user documentation?
A manual explaining how to use the system
123
What is involved in evaluation?
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
What are the types of maintenance (3)
Corrective maintenance Adaptive maintenance Perfective maintenance
125
What is corrective maintenance
Fixing any bugs that were missed before release
126
What is adaptive maintenance
Involves making alterations to respond to changes in the demands
127
What is perfective maintenance
Improving the software to enhance its performance that was not thought of in the original Design
128
What are the different software development lifecycles
Waterfall Agile Extreme Spiral Rapid application development
129
Describe the waterfall model
Linear approach where each stage of development is done consecutively where the customer does not see the product until it is completed
130
What are the advantages of the waterfall model (4)
Simple Each stage is separate and self contained with well defined outcomes and written documentation Easy to manage Responsibilities clear at each step
131
What are the disadvantages of the waterfall model (4)
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
When to use Waterfall Model
Requirements are clear and fixed No ambiguous requirements Technology is well understood Project is short
133
Describe the spiral model
Four basic steps of analysis, design, implementation and evaluation are repeatedly done.
134
Advantages of the spiral model (5)
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
Disadvantages of the spiral model (3)
Time consuming More costly to develop Not suitable for smaller projects
136
When to use the spiral model
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
Describe the agile model.
Software is developed in rapid incremental cycles Each version builds on previous functionality Each version is tested before release
138
Advantages of the agile model (4)
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
What are the disadvantages of the agile model
Lack of emphasis on necessary design and documentation Project can fail if customer not clear about desired outcome Not suitable for novice programmers
140
When to use the agile model
When new changes need to be implemented In an expanding or developing business where needs are constantly changing
141
What is Extreme Programing?
A type of agile development that advocates frequent releases in short development cycles to improve productivity
142
What is Rapid Application Development?
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
When to use rapid application development
When requirements are not entirely clear When end project needs to have excellent usability When the user needs to be highly involved in development