1.2 Systems Software Flashcards

Need for OS (1.2.1A), Paging, Segmentation and Virtual Memory (1.2.1B), Interrupts (1.2.1C), Scheduling (1.2.1D), Types of OS (1.2.1E), BIOS (1.2.1F), Device Drivers (1.2.1G), Virtual Machines (1.2.1H), The Nature of Application (1.2.2A), Utilities (1.2.2B), Open vs Closed (1.2.2C), Translators (1.2.2D), Stages of Compilation (1.2.2E), Linkers, Loaders and Libraries (1.2.2F), Development Methodologies (1.2.3A), Writing and following algorithms (1.2.3C)

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

What is meant by the term multitasking?

A
  • When you have more than one program open and running at the same time
  • The processor allocates a small amount of time to each process and cycles between them
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

What is file management?

A
  • Data is stored in files
  • An extension to the filename tells the OS which application to load the file into
  • The OS may present a logical structure of files in folders and allow the user to rename, delete, copy and move files
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

What is user management?

A
  • Allows multiple users to log into the same computer.
  • The OS will retain settings for each user such as icons, desktop, backgrounds etc.
  • Each user may have different access rights to files and programs
  • A client-server network may impose a fixed or roaming profile for a user and manage login requests to the network
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

What are some UIs?

A
  • WIMP: Windows, Icons, Menus and pointers
  • Visual
  • Interactive
  • Intuitive
  • Optimised for mouse and touch gesture input
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

What are the 2 methods of dividing memory into smaller sections?

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

Describe paging

A
  • Pages are fixed size
  • Pages are made to fit sections of memory
  • Pages are physical divisions
  • Programs are split to fit into a given number of pages
  • Paging takes no account of how it splits the program, only that it splits it into fixed-sized pages
  • It could separate the instructions inside a looping condition so they are in different pages, but that wouldn’t be efficient
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Describe segmentation

A
  • Segments are different sizes
  • Segments are complete sections of programs
  • Segments are logical divisions
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

What is Virtual memory?

A
  • Using parts of the HDD to store programs that can’t be stored in primary memory
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

What is an interrupt?

A
  • While the processor does the FDE cycle other devices and applications may require the processor’s attention.
  • They need a way to signal to the processor that they require attention - this is what’s called an interrupt
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

What is the ISR?

A
  • Interrupt Service Routine
  • A program with a set of instructions that need to be fetched, decoded and executed to carry out the operations of the interrupt
  • That means that the contents of the PC need to be changed to point to the address for the first instruction of the interrupt
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

What happens when an interrupt is received?

A
  • The values held in the registers are copied into a data structure in memory known as the stack
  • These values are pushed onto the stack in a stack frame, effectively saving them for later retrieval
  • The interrupt can now be executed
  • Once the interrupt is complete, we pop the frame off the top of the stack.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

What does popping the frame of the stack allow us to do?

A
  • Retrieve the previous values for the original program
  • Load them back into the processor registers
  • Carry on executing the original program where we left off
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

What happens when a high-priority interrupt comes along while an interrupt is being executed?

A
  • The stack system handles it by:
    • Suspending ISR A
    • Pushes register contents onto the top of the stack
    • Starts executing ISR B
    • Once ISR B has completed executing, we pop the frame off the top of the stack to retrieve the value for ISR A, load them back into the processor registers and carry on executing ISR A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

What are some examples of hardware interrupts?

A
  • Power supply failure
  • Power/reset button pressed
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

What are some examples of user interrupts?

A
  • Moving the mouse
  • Keyboard presses
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

What are some examples of software interrupts?

A
  • Illegal instructions encountered
  • Arithmetic overflow
  • New log on request
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

What are some examples of timer interrupts?

A
  • Screen recording application
  • Data-logging program reading an input-sensor every second
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

What are some examples of I/O devices interrupts?

A
  • Buffer nearly empty
  • Printer ink supply notification
  • Signal the completion of a data transfer to/from a device
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

What does a scheduler do?

A
  • Manages which process to execute next
  • Manages the length of time the next process can execute for
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

Explain the process of scheduling using Process A as an example

A
  • Process A is a new process
  • The number indicates the length of time before it finishes
  • It enters the ready queue
  • When the currently executing process finishes or is blocked or suspended, process A can move into a running state
  • From here it will either:
    • Finishing executing completely and leave the system
    • Get blocked as it requires an input or output commands, meaning it can’t continue until more data is received
    • Run out of time - each process is allocated a certain amount of time after which it is suspended and moved to the back of the ready queue
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

What is an FCFS algorithm?

A
  • First come First Served
  • Processes are executed in the order they arrive
  • If a process takes a long time, the others behind it have to wait
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

What is a SJF algorithm?

A
  • Shortest Job First
  • Picks the processes that take the shortest amount of time and runs them until they finish
  • The scheduler needs to know how long each process will take
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
23
Q

What is a RR algorithm?

A
  • Round Robin
  • Each process is allocated a fixed amount of time, known as a time slice or quantum
  • If the process isn’t complete by the end of its time slice, it returns to the back of the ready queue
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
24
Q

What is a SRT algorithm?

A
  • Shortest Remaining Time
  • Similar to SJF
  • Pre-emptive algorithm, meaning processes can be suspended if a higher priority process joins the queue
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
Q

What is a MLFQ algorithm?

A
  • Multi Level Feedback Queue
  • This algorithm builds upon these standard algorithms with the following design principles:
    • Separates processes into multiple ready queues based on their processing needs.
    • Gives preference to processes with high I/O bursts
    • I/O bound processes will sleep in a wait queue to give other processes CPU time
  • This algorithm allows for processes to be shifted between queues
  • If a process has too much CPU time, it will be moved to a lower priority queue
  • If a process is I/O bound or an interactive process, it will be moved to a higher priority queue
  • If a process is waiting too long in a low-priority queue, it will be moved to a higher priority queue
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
26
Q

What are the 5 types of OS?

A
  • Distributed
  • Multi-User
  • Real-Time
  • Embedded
  • Multi-tasking
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
27
Q

What is a multi-tasking OS?

A
  • An OS that handles many processes at the same time
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
28
Q

What is a multi-user OS?

A
  • An OS that allows more than one person to access a single computer at the same time
  • The computer will manage the user’s various permissions and access rights when they log on
  • Server operating system software will handle the requests of multiple people using different computers on a network at the same time
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
29
Q

What is a distributed OS?

A
  • An OS which can combine the processing power of multiple computers across a network for a single task
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
30
Q

What happens in distributed computing?

A
  • The operating system controls and coordinates system controls and coordinates the computers, presenting them to the user as if they were a single system
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
31
Q

What are embedded OS?

A
  • They run on dedicated hardware so they run with maximum efficiency, using low powered processor and very little memory
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
32
Q

What is a real-time OS?

A
  • An OS that executes processes within a known time frame
  • Plenty of redundancy is built into these systems so they can handle sudden increases in input
  • As such, processors in real-time OS rarely run at capacity
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
33
Q

What is the BIOS responsible for?

A
  • Responsible for loading the OS when the computer first turns on
  • It first checks that the hardware it needs is connected and working using a POST
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
34
Q

What is a bootloader used for?

A
  • Used to load the OS kernel into memory
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
35
Q

Where are BIOS settings stored and why?

A
  • Stored in flash memory
  • So that they can be changed and retained when the power if switched off
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
36
Q

What is a device driver?

A
  • Software that tells the OS how to communicate with a peripheral device
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
37
Q

What does a device driver do?

A
  • The device driver translates the OS’ instructions into a series of instructions that a specific piece of hardware will understand
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
38
Q

What is a virtual machine?

A
  • A program that has the same functionality as a physical computer
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
39
Q

What do emulators do?

A

-Trick a program into thinking it’s running on its native hardware when it’s running on an entirely different machine

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

What is an advantage of virtual servers?

A
  • If one server stops working, the others can pick up the load and continue working as if nothing happened
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
41
Q

Give one example of intermediate code running on a virtual machine.

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

Why is Java good for running on virtual machines?

A
  • Because other programming languages would either have to use a specific language of each device or use a suitable compiler.
  • Java gets around this by compiling its code into a half-way code known as bytecode or intermediate code
  • This code is then translated by a Java Virtual Machine (JVM) running on a target device which then translates it into specific machine code
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
43
Q

Why is one advantage of the JVM process?

A
  • Makes the code highly portable between devices.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
44
Q

What are the 2 types of software?

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

What are the 2 types of system software?

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

What are some examples of Operating Systems?

A
  • Windows
  • Linux
  • Windows
  • macOS
  • iOS
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
47
Q

What are some examples of utility software?

A
  • Antivirus
  • Defragmentation
  • Backup
  • Compression
  • Firewalls
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
48
Q

What are some examples of application software?

A
  • Presentation
  • Word processor
  • Web browser
  • Games
  • Email
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
49
Q

What is a generic application?

A
  • A word processor is an example of one. It does not have a specific or narrow purpose
  • You can use it to carry out different tasks and meet multiple needs
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
50
Q

What is a specific application?

A
  • Database software is an example of one.
  • Being highly specific and bespoke, however, makes it almost essential for creating serious database application
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
51
Q

Where does specific application software tend to be installed?

A
  • On systems where there is a direct need
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
52
Q

What is utility software?

A
  • Software designed to:
    • Keep your computer safe
    • Keep it running efficiently
    • Provide you with useful tools to manage your files and applications
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
53
Q

Utility software: What is file repair used for?

A
  • Files can become corrupt or damaged for a number of reasons
  • File repair attempts to correct these issues and restore the file to its original working state
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
54
Q

Utility software: What is backup software used for?

A
  • Backups can be set up to be manual, automatic or scheduled
  • There are 2 types: Full backups or incremental backup
  • Backup software often comes with your OS but an also be purchased separately
55
Q

Utility software:
What is compression software used for?

A
  • To reduce the size of a file so it takes up less space and downloads faster over the internet
  • Compressed files must be extracted before they can be read
  • Depending on the algorithm used data is either lost, reducing the quality of an image or audio file, or represented in a different way using binary, retaining the original data in a new, compressed format (e.g. ZIP)
56
Q

What is defragmentation software used for?

A
  • To re-organise files on a hard disk, putting fragments of files and free space back together
  • The process reduces the movement of the read/write head across the surface of the disk, which speeds up file access
57
Q

Why shouldn’t SDDs be defragmented?

A
  • Unnecessary as it has no moving parts
  • Reduces the drive’s lifespan
58
Q

What is anti-malware software used for?

A
  • Helps keep your computer and files safe from many types of malware including:
    • Viruses
    • Trojans
    • Worms
59
Q

What are some characteristics of Open-Source software?

A
  • Users can modify and distribute the software
  • Can be installed on any number of computers
  • Support provided by the community
  • Users have access to the source code
  • May not be fully tested
60
Q

Open source: What are some benefits and drawbacks for the user?

A

Benefits:
- Software is free
- Wide community
modification
Drawbacks:
- Can be poorly supported
- Some features might not
be well tested

61
Q

Open source: What are some benefits and drawbacks for the creators?

A

Benefits:
- Gets their software out
there to a wider
community
Drawbacks:
- Little-to-no financial gain

62
Q

What are some characteristics of Closed-Source software?

A
  • Protected by the Copyright Design and Patents Act
  • Users cannot modify the software
  • Usually paid for and licensed per user or per computer
  • Supported by developers who do not release source code
  • Tested by developer prior to release, although it may run beta programs
63
Q

Closed source: What are some benefits and drawbacks for the users?

A

Benefits:
- Well supported, tested and professional built product
Drawbacks:
- Cost or ongoing subscription fee

64
Q

Closed source: What are some benefits and drawbacks for the creators?

A

Benefits:
- They receive an income for their product
Drawbacks:
- Constant demand from community for more features and improvements
- Piracy issues

65
Q

What is meant by translation?

A
  • The process of converting source code to machine code
66
Q

What are the 3 types of translators?

A
  • Assemblers
  • Interpreters
  • Compilers
67
Q

What does an assembler do?

A
  • Translates assembly code into machine code
  • Takes basic commands and operations from assembly code and converts them into binary code that can be recognised by a specific type of processor
68
Q

What does an interpreter do?

A
  • Translates source code into machine code
  • Takes one line, translates it, then executes it
  • Once it discovers an error, it will output it, but it will keep running
69
Q

What does a compiler do?

A
  • Translates source code into object code and then machine code
  • Takes the whole source code and converts it into machine code
  • Won’t run unless all errors are corrected first
70
Q

What are some advantages and disadvantages of assemblers

A

Advantages:
- Memory efficient
- Speed of execution is
faster
- Hardware-oriented
Disadvantages:
- Long programs written in
such languages cannot be
executed on small
computers
- Difficult to remember the
syntax

71
Q

What are some advantages and disadvantages of compilers?

A

Advantages:
- No need for translation at
run-time
- Speed of execution is
faster
- Code is usually optimised
Disadvantages:
- Code needs to be re-
compiled when the code is
changed.
- Designed for a specific
type of processor

72
Q

What are some advantages and disadvantages of interpreters?

A

Advantages:
- Easy to write source code, as the programs will always run, stopping when it finds a syntax error
- Code does not need to be recompiled when code is changed
Disadvantages:
- Translation software is required at run-time
- Speed of execution is slower
- Code is not optimised
- Source code is required

73
Q

What happens during a compilation process?

A
  • A compiler runs through a series of parses
  • With each parse, the compiler performs different actions on the source code
  • Each parse is designed to carry out set tasks and prepare the code for the next stage of compilation
74
Q

What are the 4 stages of compilation?

A
  • Lexical analysis
  • Syntax analysis
  • Code generation
  • Code optimisation
75
Q

What happens during the lexical analysis?

A
  • The lexer starts by converting lexemes in the source code into a series of tokens
  • As the lexer reads the source code, it scans the code letter by letter
  • When it encounters a white space, operator/special symbol, it decides that a word is complete
  • It then checks if the lexeme is valid using a predefined set of rules that allow every lexeme to be identified as a valid token
  • Then a symbol table is created
76
Q

What is considered a token?

A
  • Keywords
  • Constants
  • Identifiers
  • Operators
  • Punctuation symbols
77
Q

What happens during the syntax analysis?

A
  • It receives its inputs in the form of tokens from lexical analysers
  • It analyses the syntactical structure of the input, checking if it’s in the correct syntax of the programming language it has been written in.
  • It does this by analysing the token stream against production rules to detect any errors in the code
  • Two tasks are accomplished:
    • Checking for errors and reporting them
    • Building an abstract syntax tree (parse tree)
78
Q

What happens during the Code generation and optimisation?

A
  • The machine code is generated
  • Spots redundant instructions and produces object code that achieves the same effect as the source program - but not necessarily by the same means
  • Removes subroutines that are never called
  • Removing variables and constants that are never referenced
  • Code optimisation can increase compilation time for a program
79
Q

What is meant by unreachable code?

A
  • Part of the program code that is never accessed because of programming constructs
80
Q

What are libraries?

A
  • Read-compiled and tested programs that can be run when needed
81
Q

What are some benefits/drawbacks of using libraries?

A

Benefits:
- Quick and easy to use and hook into your own code
- Pre-tested, so you can be relatively sure they are already free from errors
- Pre-compiled, so they are typically optimised to run quickly
Drawbacks:
- Adding functionality or making specific tweaks can be difficult - or impossible
- Sometimes you are ‘black-boxed’ from the actual implementation
- You have to trust that the developers will continue to maintain the library

82
Q

What is a linker?

A
  • Responsible for putting the appropriate machine addresses in all the external call and return instructions so all modules and external library routines are linked together correctly
  • It also links any separately compiled subroutines into object code
83
Q

What are the 2 methods of linking?

A
  • Static linking
  • Dynamic linking
84
Q

What is static linking?

A
  • All the required code from the libraries is included directly in the finished machine code which can result in large executable program files
85
Q

What is dynamic linking?

A
  • Compiled versions of the required libraries are stored on the host computer
  • The OS links the required code from the library as the program is running.
  • While this cuts down on the size of the compiled machine code, if the dynamic libraries change, the program may stop because it tries to call a subroutine in the wrong way
86
Q

What is a loader?

A
  • Part of the OS that loads the executable program file (machine code) into memory, ready to be run
  • When using dynamic linking, it will also be responsible for loading the required libraries into memory
87
Q

What is meant by software development methodology?

A
  • The arrangement of phases and how programmers move from one phase to another - both forwards and backwards
88
Q

What is meant by the term ‘SDLC’?

A
  • Software Development Lifecycle
  • Phases of software development
89
Q

What are the stages of the SDLC?

A
  • Feasibility
  • Requirements
  • Analysis and design
  • Implementation
  • Testing
  • Deployment
  • Evaluation
  • Maintenance
90
Q

What happens during the feasibility stage?

A

Figuring out if the problem is solvable

91
Q

What happens during the requirements stage?

A

Working out what the solution needs to do

92
Q

What happens during the analysis and design stage?

A

Working out how the solution needs to do it

93
Q

What happens during the implementation stage?

A

The solution is coded

94
Q

What happens during the testing stage?

A

Checking if it actually works

95
Q

What happens during the deployment stage?

A

Installing the program in the target environment

96
Q

What happens during the evaluation stage?

A

Checking in with the user - is the solution complete?

97
Q

What happens during the maintenance stage?

A

Ensuring it continues to function properly by the way of improvements, patches and updates

98
Q

What are the 5 types of development methodologies?

A
  • Waterfall
  • RAD
  • Spiral
  • Agile
  • Extreme programming
99
Q

Describe the waterfall methodology.

A
  • It has a cascading effect from one phase to another
  • Each phase has a well defined start and end point with identifiable deliverables
  • A slight evolution of the waterfall model allows you to move back to a previous stage as well as forwards - this reflects the fact that developers often have to rework earlier stages in light of knowledge gained as development progresses
100
Q

Describe the RAD methodology.

A
  • Methodology that involves producing successive prototypes of the software until a final version is produced and approved
  • Following the initial approval of a feasible program, increasingly refined prototypes are made with reduced functionality
  • These are designed, coded, test and evaluated with the end user
  • Your user might decide they are happy with the system or that they want further improvements, which will start a new cycle
101
Q

Describe the Spiral model methodology.

A
  • Risk-driven development methodology.
  • The spiral model is more of a guide for development teams, allowing them to adopt elements of one or more other methodologies like waterfall or RAD
  • This model is better thought of as a process model generator, where decisions on the software development methodology are made based on the risks identified
102
Q

Describe the agile methodology.

A
  • Refers to a group of methodologies
    -These methodologies focus on the idea that requirements will shift and change during development - this can only be dealt with by producing software in an iterative way
  • They are a more refined form of older concepts behind RAD
  • The product is built in a series of iterations known as sprints
  • These are short, time-boxed periods when a team has focused goals to complete a set amount of work
  • Each sprint should ideally be a bite-sized piece of focused work, taking no longer than one to four weeks
103
Q

Describe the extreme programming methodology.

A
  • Aims to produce very high quality code
  • Encourages developers to adopt a set of common practices that focus on the values of:
    • Simplicity
    • Communication
    • Feedback
    • Courage
    • Respect
  • It is considered an agile framework as it encourages regular, small, iterative software releases
104
Q

What are the 5 core practices that are considered to boost the overall quality of completed solutions for a project?

A
  • Collective code ownership
  • Continuous integration
  • Code standards
  • Refactoring
  • Paired programming
105
Q

What are some advantages of the waterfall model?

A
  • Simplicity makes it easy to manage
  • Everyone on the project is very clear on their responsibilities at each stage
  • Clear deliverables
  • Easy to see if a project is running to schedule
106
Q

What are some disadvantages of the waterfall model?

A
  • Carries a lot of risk
  • The user doesn’t get to see the product for the first time until the project is near its end
  • Misunderstanding requirements can lead to a project that is not easy to fix
  • Requirements must be very well understood, so this model is not suitable for complex projects
107
Q

Where would a waterfall model likely be used?

A
  • Large-scale development projects assuming they are well-understood and carry little risk
108
Q

What are some advantages of RAD?

A
  • Requirements don’t need to be entirely clear from the start
  • Focus groups involving the user can be used to gather requirements without the need for full formal requirements document upfront
  • Continuous feedback from the client means the solution is likely to have excellent usability
109
Q

What are some disadvantages of RAD?

A
  • Focus on usability rather than how the product works - not suited for projects where code efficiency is very important
  • Regular contact with client must be maintained at all times
  • Scales poorly for large projects with big teams
110
Q

What types of projects would RAD work well in and why?

A
  • Projects were the initial requirements are not fully understood, as the iterative nature prevents development from becoming side tracked
111
Q

What are the advantages of the spiral model?

A
  • Risk management is at the heart of this model
  • Excellent for projects that contain a high level of risk
112
Q

What are the disadvantages of the spiral model?

A
  • Complex nature of risk analysis increases costs- risk management is a highly specialised skill
  • If risk analysis is done badly, the project suffers
113
Q

What projects would a spiral model be suitable for?

A
  • Large-scale problems and those that involve a high degree of risk, especially where the user doesn’t fully understand their requirements upfront
114
Q

What are the advantages of agile and extreme programming?

A
  • Emphasised programming, so the quality of end code is likely to be very high
  • Core principles and processes promote respect and collaboration, leading to a very productive development team
115
Q

What are the disadvantages of agile and extreme programming?

A
  • Requires a team of programmers working in close collaboration - unlikely to work well if the team is widely distributed geographically
  • Client must be able to commit to having a fulltime representative working with the development team
  • Some of the processes involved in extreme programming such as paired programming can be quite costly
116
Q

What type of projects would agile and extreme programming be suitable for?

A
  • If the project has an emphasis on the quality of finished code, then those 2 strategies are ideal
117
Q

What is an algorithm?

A
  • A sequence of steps designed to perform a task
118
Q

What is the flowchart symbol for a terminal (Start/Stop)?

A
  • A circle
119
Q

What is the flowchart symbol for a process?

A
  • A rectangle
120
Q

What is the flowchart symbol for a decision?

A
  • A rhombus
121
Q

What is the flowchart symbol for Input/Output?

A
  • A paralelogram
122
Q

What is the flowchart symbol for a subroutine?

A
  • A rectangle with 2 diagonal lines
123
Q

What are the 4 most common testing strategies?

A
  • Black-box testing
  • White-box testing
  • Alpha testing
  • Beta testing
124
Q

What is black-box testing?

A
  • Simply checks whether an input produces the expected output
  • Code efficiency is not important as long as inputs return the desired outputs
  • Ideally, every possible input should be checked during this method of testing, however it is often not feasible
125
Q

What is white-box testing?

A
  • Involves testing the algorithms in the code and making sure all parts of those algorithms function as intended.
  • On each test run, the path of execution is noted so it can be compared with other runs
  • Identifies and tests all the possible paths of execution through a program
  • Also checks the overall efficiency of the code
126
Q
A
127
Q

What is alpha and beta testing?

A
  • Carried out when software is nearly ready for release and can be tested as a complete solution
  • They apply especially to commercial software such as computer games
128
Q

What is the difference between alpha and beta testing?

A
  • Alpha testing typically occurs first and is limited to internal employees and their friends and families
  • Beta testing is usually opened up to a wider community and is usually done through a public beta program
129
Q

What are the 4 types of test data?

A
  • No data
  • Erroneous data
  • Normal data
  • Boundary data
130
Q

What is ‘no data’ test data used for?

A
  • Checks whether the user enters no data
131
Q

What is ‘erroneous’ test data?

A
  • Data that should be rejected by the program
132
Q

What is ‘normal’ test data?

A
  • Data that should be accepted by the program without causing errors
133
Q

What is ‘boundary’ test data?

A
  • Data of the correct type that is on either edge of the accepted validation limits