Chapter 4: Software Flashcards
Definition of utility programs (utilities)
part of an operating system which carries out certain functions such as virus checking, defragmentation and screensaver
Definition of malware
programs (such as viruses, worms and Trojan horses) that are installed on a user’s computer with the aim of deleting, corrupting or manipulating data illegally
Definition of anti-virus software
software that quarantines and deletes files or programs infected by a computer virus; the software can run in the background or be initiated by the user
Definition of heuristic checking
checking software for behaviour that could indicated a possible virus
Definition of quarantine
to isolate (in order to later delete) a file or program identified by anti-virus software as being infected by a virus
Definition of defragmentation
a process that reorganises sectors on an HDD by rearranging blocks of data so that they are contiguous
Definition of contiguous
next to each other
Definition of back-up
make copies of files onto another storage media in case the original file becomes corrupted or is deleted
Definition of screensaver
software that supplies a still or moving image on a monitor if a computer has been inactive for a period of time
Definition of device driver
software that communicates with the operating system and translates data into a format understood by the device
Definition of descriptor
a collection of information about a device plugging into a USB port; this can be vendor ID (VID), product ID (PID) or serial number
Definition of operating system
software that provides an environment in which applications can run and also provides an interface between computer and human operator
Definition of boot up/bootstrap loader
a small program that is used to load other programs to correctly ‘start-up’ a computer system
Definition of EEPROM
stands for electronically erasable programmable ROM
Definition of human computer interface (HCI)
an interface supplied by the operating system to ‘hide’ the complexities of the software and hardware from the human user
Definition of command line interface (CLI)
an interface which allows communication with the computer by typing in commands using a keyboard
Definition of graphical user interface (GUI)
an interface that uses icons to represent apps and tasks which the user can select/launch by clicking on a mouse or using a touch screen
Definition of windows icons menu and pointing device (WIMP)
an interface that uses a pointing device such as a mouse to select options from screen icons or a menu
Definition of post-WIMP
a modern touch screen interface system that allows actions such as pinching and rotating
Definition of memory management
the part of an operating systems that controls main memory
Definition of security management
the part of an operating system that ensures the integrity, confidentiality and availability of data
Definition of hardware management
the part of an operating system that controls all input and output devices; it is made up of sub-systems such as printer management
Definition of buffer
a memory area used to store data temporarily
Definition of file management
part of an operating system that manages files in a computer (for example, the ability to create, delete, copy, open, close and rename files)
Definition of interrupt
a signal sent from a device or software to a microprocessor requesting its attention; the microprocessor suspends all operations until the interrupt has been serviced
Definition of multitasking
a function that allows a computer to process more than one task/process at a time
Definition of administrator
a person responsible for the upkeep and maintenance of a computer system that involves multi-user function
Definition of user account
an agreement that allows an individual to use a computer; the user needs a user name and password to enter the user’s area
Definition of error handling routine
a routine in a program or operating system that recognises and recovers a system from abnormal inputs or hardware faults (for example, recovery from an attempt to divide by zero)
Definition of firmware
a program that provides low level control for devices
Definition of interrupt priority
the priority assigned to an interrupt are given a priority so that the microprocessor knows which one needs to be serviced first and which interrupts are to be dealt with quickly
Definition of service (an interrupt)
when an interrupt is received, some action needs to be taken by the processor depending on what caused the interrupt; until this is resolved (that is, it is serviced), the interrupt cannot be removed to allow the processor to continue
Definition of interrupt service routing (ISR)
software that handles interrupt requests (for example, when the printer out of paper) and sends a request to the CPU for processing
Definition of machine code
a binary programming language, a program written in machine code can be loaded and executed without translation
Definition of high-level language (HLL)
a programming language that is independent of computer hardware, a program written in a HLL needs to be translate into machine code before it is executed
Definition of low-level language (LLL)
a programming language that is dependent on computer hardware, both machine code and assembly language are LLLs
Definition of assembly language
a programming language that is dependent on computer hardware, a program written in an assembly language program needs to be translated into machine code before it is executed
Definition of assembler
a computer program that translates programming code written in assembly language into machine code
Definition of compiler
a computer program that translates a source program written in a high-level language to machine code
Definition of translator
converts a program written in a high-level language program into machine code
Definition of interpreter
a computer program that analyses and executes a program written in a high-level language line by line
Definition of Integrated Development Environment (IDE)
a suite of programs used to write and test a computer program written in a high-level language
Definition of debugging
finding errors in a computer program by running or tracing the program
Definition of prettyprinting
displaying source code using different colours and formatting, which make the code easier to read and understand
Definition of report window
a separate window in the runtime environment of an IDE that shows the contents of variables during the execution of a program
What are the two types of software?
- system software
- application software
General features of system software
- set of programs to control and manage the operation of computer hardware
- provides a platform on which other software can run
- required to allow hardware and software to run without problems
- provides a human computer interface (HCI)
- controls the allocation and usage of hardware resources
General features of application software
- used to perform various applications (apps) on a computer
- allows a user to perform specific tasks using the computer’s resources
- may be a single program (e.g. NotePad) or a suite of programs (e.g. Microsoft Office)
- user can execute the software as and when they require
Examples of application software
- Word processor
- Spreadsheet
- Database
- Apps
- Graphics manipulation software
- Video editing software
- Photo editing software
- Control and measuring software
Application software: Word processor
Word processing software is used to manipulate a text document, such as an essay or a report. Text is entered using a keyboard and the software provides tools for copying, deleting and various types of formatting.
Functions of word processing software
- creating, editing, saving and manipulating text
- copy and paste functions
- spell checkers and thesaurus
- import photos/images into a structured page format
- translation into a foreign language
Application software: Spreadsheet
Spreadsheet software is used to organise and manipulate numerical data (in the form of integer, real, date and so on). Numbers are organised on a grid of lettered columns and numbered rows. The grid itself is made up of cells, and each cell is identified using a unique combination of columns and rows, for example B6
Functions of spreadsheets
- use of formulas to carry out calculations
- ability to produce graphs
- ability to do modelling and ‘what if’ calculations
Application software: Database
Database software is used to organise, manipulate and analyse data. A typical database is made up of one or more tables. Tables consist of rows and columns. Each row is called a ‘record’ and each column is called a ‘field’. This provides the basic structure for the organisation of the data within the database.
Functions of databases
- ability to carry out queries on database data and produce a report
- add, delete and modify data in a table
Application software: control and measuring software
Control and measuring software is designed to allow a computer or microprocessor to interface with sensors
Functions of control and measuring software
- measure physical quantities in the real world (such as temperatures)
- to control applications (such as a chemical process) by comparing sensor data with stored data and sending out signals to alter process parameters (e.g. open a valve to add acid and change the pH)
Application software: Apps
Apps is short for applications - a type of software. They normally refer to software which runs on mobile phones or tablets. They are normally downloaded from an ‘App Store’ and range from games to sophisticated software such as phone banking.
What are common examples of apps?
- video and music streaming
- GPS (global positioning systems - help you find your way to a chosen location)
- camera facility (taking photos and storing/manipulating the images taken)
Application software: Photo editing software
Photo editing software allows a user to manipulate digital photographs stored on a computer; for example, change brightness, change contrast, alter colour saturation or remove ‘red eye’. They also allow for very complex manipulation of photos (e.g. change the features of a face, combine photos, alter the images to give interesting effects and so on). They allow a photographer to remove unwanted items and generally ‘touch up’ a photo to make it as perfect as possible
Application software: video editing software
Video editing software is the ability to manipulate videos to produce a new video. It enables the addition of titles, colour correction and altering/adding sound to the original video
What does video editing software include?
- rearranging, adding and/or removing sections of video clips and/or audio clips
- applying colour correction, filters and other video enhancements
- creating transitions between clips in the video footage
Application software: Graphics manipulation software
Graphics manipulation software allow bitmap and vector images to be changed. Bitmap images are made up of pixels which contain information about image brightness and colour. Bitmap graphics editors can change the pixels to produce a different image. Vector graphic editors operate in a different way and don’t use pixels - instead they manipulate lines, curves and text to alter the stored image as required. Both types of editing software might be chosen depending on the format of the original image
What are some examples of typical system software?
- Compilers
- Linkers
- Device drivers
- Utilities
- Operating Systems (O/S)
System software: Compilers
A compiler is a computer program that translates a program written in a high-level language (HLL) into machine code (code which is understood by the computer) so that it can be directly used by a computer to perform a required task. The original program is called the source code and the code after compilation is called the object code. Once a program is compiled, the machine code can be used again and again to perform the same task without re-compilation.
What are some examples of high-level languages?
- Java
- Python
- Visual Basic
- Fortran
- C++
- Algol
System software: linkers
A linker (or link editor) is a computer program that takes one or more object file produced by a compiler and combines them into a single program which can be run on a computer. For example, many programming languages allow programmers to write different pieces of code, called modules, separately. This simplifies the programming task since it allows the program to be broken up into small, more manageable sub-tasks. However, at some point, it will be necessary to put all the modules together to form the final program. This is the job of the linker
System software: Device drivers
A device driver is the name given to software that enables one or more hardware devices to communicate with the computer’s operating system. Without drivers, a hardware device (for example, a computer printer) would be unable to work with the computer. All hardware devices connected to a computer have associated drivers. As soon as a device is plugged into the USB port of a computer, the operating system looks for the appropriate driver. An error message will be produced if it can’t be found.
Examples of device drivers
- printers
- memory sticks
- mouse
- CD drivers
System software: Operating systems (O/S)
The operating (OS) is essentially software running in the background of a computer system. It manages many of the basic functions. Without the OS, most computers would be very user-unfriendly and the majority of users would find it almost impossible to work with computers on a day-to-day basis
What do operating systems allow?
- input/output operations
- users to communicate with the computer (e.g. Windows)
- error handling to take place
- the loading and running of programs to occur
- managing of security (e.g. user accounts, log on passwords)
System software: utilities
Utility programs are software that are designed to carry out specific tasks on a computer. Essentially, they are programs that help to manage, maintain and control computer resources.
What are some examples of utilities?
- anti-virus (virus checkers)
- anti-spyware
- back-up of files
- disk repair and analysis
- file management and compression
- security
- screensavers
- disk defragmenter/ defragmentation software
What are common features of anti-virus software?
- they check software or files before they are run or loaded on a computer
- anti-virus software compares a possible virus against a database of known viruses
- they carry out heuristic checking- this is the checking of software for types of behaviour that could indicate a possible virus; this is useful if software is infected by a virus not yet on the database
- any possible files or programs which are infected are put into quarantine which:
- allows the virus to be automatically deleted, or
- allows the user to make the decision about deletion (it is possible that the user knows that the file or program is not infected by a virus- this is known as a false positive and is one of the drawbacks of anti-virus software)
- anti-virus software needs to be kept up to date since new viruses are constantly being discovered
- full system checks need to be carried out once a week, for example, since some viruses lie dormant and would only be picked up by this full system scan
What will the back-up utility do?
- allow a schedule for backing up files to be made
- only carry out a back-up procedure if there have been any changes made to a file
How many versions of a file should there be for total security?
3
What three versions of a file should there be for total security?
- The current (working) version stored on the internal HDD or SSD
- A locally backed up copy of the file (stored on a portable SSD, for example)
- a remote back-up version stored well away from the computer (for example, using cloud storage)
What facilities does the Microsoft Windows environment offer using the back-up utility?
- restore data, files or the computer from the back-up (useful if there has been a problem and files have been lost and need to be recovered)
- create a restore point (this is basically a kind of ‘time machine’ where your computer can be restored to its state at this earlier point in time; this can be very useful if a very important file has been deleted and can’t be recovered by any of the other utilities)
- options of where to save back-up files; this can be set up from the utility to ensure files are automatically backed up to a chosen device
What will Time Machine automatically do?
- back-up every hour
- do daily back-ups for the past month
- do weekly back-ups for all the previous months
What does security software do?
- manages access control and user accounts (using user IDs and passwords)
- links into other utility software, such as virus checkers and spyware checkers
- protects network interfaces (for example, through the use of firewalls)
- uses encryption and decryption to ensure any intercepted data is meaningless without a decryption key
- oversees the updating of software (does the update request come from a legitimate source, for example)
What are some useful background tasks that can be activated when the computer is in an ‘idle’ state?
- virus scans
- distributed computing applications - these allow apps to use the computer’s resources only when it is idle (for example, an online gaming app)
What are common examples of operating systems?
- Microsoft Windows
- Apple Mac OS
- Google Android
- Apple IOS
What are some of the functions in a typical operating system?
- Human computer interface (HCI)
- Multitasking
- Platform for running of application software
- Management of user accounts
- Managing files
- Hardware peripheral management (including drivers)
- Memory management
- Interrupt handling routines
- Security (manages log on, passwords)
Advantages of command line interface (CLI)
- the user is in direct communication with the computer
- the user is not restricted to a number of pre-determined options
- it is possible to alter computer configuration settings
- uses a small amount of computer memory
Disadvantages of command line interface (CLI)
- the user needs to learn a number of commands to carry out basic operations
- all commands need to be typed in which takes time and can be error-prone
- each command must be typed in using the correct format, spelling, and so on
Advantages of graphical user interface (GUI)
- the user doesn’t need to learn any commands
- it is more user-friendly; icons are used to represent applications
- a pointing device (such as a mouse) is used to click on an icon to launch the application - this is simpler than typing in commands or a touch screen can be used where applications are chosen by simply touching the icon on the screen
Disadvantages of graphical user interface (GUI)
- this type of interface uses up considerably more computer memory than a CLI interface
- the user is limited to the icons provided on the screen
- needs an operating system, such as Windows, to operate, which uses up considerable memory
Who would use a command line interface (CLI)?
a programmer, analyst or technician; basically somebody who needs to have a direct communication with a computer to develop new software, locate errors and remove them, initiate memory dumps (contents of the computer memory at some moment in time), and so on
Who would use a graphical user interface (GUI)?
the end-user who doesn’t have or doesn’t need to have any great knowledge of how the computer works; a person who uses the computer to run software or play games or stored/manipulates photographs, for example
What functions does memory management carry out?
- manages the primary storage (RAM) and allows data to be moved between RAM and HDD/SSD during the execution of programs
- keeps track of all the memory locations
- carries out memory protection to ensure that two competing applications cannot use the same memory locations at the same time. If this wasn’t done the following might happen:
- data would probably be lost
- applications could produce incorrect results (based on the wrong data being in memory locations)
- potential security issues (if data is placed in the wrong location, it might make it accessible to other software, which would be a major security issue)
- in extreme cases, the computer could crash
How does security management ensure the integrity, confidentiality and availability of data?
- by carrying out operating system updates as and when they become available
- ensuring that anti virus software (and other security software) is always up to date, preserving the integrity, security and privacy of data
- by communicating with, for example, a firewall to check all traffic to and from the computer
- by making use of privileges to prevent users entering ‘private areas’ on a computer that permits multi-user activity (this is done by setting up user accounts and making use of passwords and user IDs); this helps to ensure the privacy of data
- by maintaining access rights for all users
- by offering the ability for the recovery of data (and system restore) when it has been lost or corrupted
- by helping to prevent illegal intrusion into the computer system (also ensuring the privacy of data)
What does hardware management do?
- communicates with all input and output devices using device drivers
- uses a device drivers to take data from a file (defined by the operating system) and translates it into a format that the input/output device can understand
- ensure such hardware resource has a priority so that they can be used and released as required
- manages input/output devices by controlling queues and buffers
What is the role of printer management when printing out a document?
- first of all, the printer driver is located and loaded into memory
- then the data is sent to a printer buffer reading for printing
- if the printer is busy (or the printing job has a low priority) then the data is sent to a printer queue before it can be sent to the printer buffer
- it will send various control commands to the printer throughout the printing process
- it receives and handles error messages and interrupts from the printer
What are the main tasks of file management?
- file naming conventions which can be used i.e. filename.docx (where the extension can be .bat, .htm, .dbf, .txt, .xls, etc.)
- performing specific tasks (for example, create, open, close, delete, rename, copy, and move)
- maintaining the directory structures
- ensuring access control mechanisms are maintained (for example, access rights to files, password protection, or making files available for editing or locking them)
- ensuring memory allocation for a file by reading it from the HDD/SSD and loading it into memory
How does the operating system make sure that multitasking operates correctly?
It constantly monitors the status of each of the processes under its control:
- resources are allocated to a process for a specific time limit
- the process can be interrupted while it is running
- the process is given a priority so it can have resources according to its priority (the risk here is that a low priority process could be starved of resources)
What does the operating system managing different user accounts allow each user to do?
- customise their screen layout and other settings
- user separate folders and files and to manage these themselves
What can interrupts be caused by?
- a timing signal
- an input/output process (for example, a disk drive or printer requiring more data)
- a hardware fault (for example, a paper jam in the printer)
- user interaction (for example, the user presses a key (or keys) on a keyboard, such as <CTRL><ALT><BREAK>, which causes the system to be interrupted)</BREAK></ALT></CTRL>
- software errors that cause a problem (for example, an .exe file that cannot be found to initiate the execution of a program, two processes trying to access the same memory location, or an attempt to divide by zero)
Programs written in high-level languages are easier to:
- read and understand as the language used is closer to English
- write in a shorter time
- debug at the development stage
- maintain once in use
Advantages of high-level languages
- independent of the type of computer being used
- easier to read, write and understand programs
- quicker to write programs
- programs are easier and quicker to debug
- easier to maintain programs in use
Advantages of low-level languages
- can make use of special hardware
- includes special machine-dependent instructions
- can write code that doesn’t take up much space in primary memory
- can write code that performs a task very quickly
Disadvantages of high-level languages
- programs can be larger
- programs can take longer to execute
- programs may not be able to make use of special hardware
Disadvantages of low-level languages
- it takes a longer time to write and debug programs
- programs are more difficult to understand
Why do programmers write in an assembly language?
- to make use of special hardware
- to make use of special machine-dependent instructions
- to write code that doesn’t take up much space in primary memory
- to write code that performs a task very quickly
Advantages of interpreters
- easier and quicker to debug and test programs during development
- easier to edit programs during development
Advantages of compilers
- a compiled program can be stored ready for use
- a compiled program can be executed without the compiler
- a compiled program takes up less space in memory when it is executed
- a compiled program is executed in a shorter time
Disadvantages of interpreters
- programs cannot be run without the interpreter
- programs can take longer to execute
Disadvantages of compilers
- it takes a longer time to write, test and debug programs during development
What features do IDEs usually have?
- code editors
- a translator
- a runtime environment with a debugger
- error diagnostics
- auto-completion
- auto-correction
- an auto-documenter and prettyprinting