Software Chp4 Notes
Software Chp4 Notes
CHAPTER 4: SOFTWARE
Key Point
Human-computer interaction (HCI) is the field of study that focuses on optimizing how users
and computers interact by designing interactive computer interfaces that satisfy users’ needs.
Examples
System Software
Compiler: Translates high-level language into machine code, allowing for direct use by
a computer to perform tasks without re-compilation.
Linker: Combines object files produced by a compiler into a single program, allowing
the use of separately written code modules in the final program.
Device driver: Software that enables hardware devices to communicate with a
computer's operating system, without which a device like a printer would be unable to
work.
Operating system: Software that manages basic computer functions such as
input/output operations, program loading and running, and security management, making
computers more user-friendly.
Utility programs: Software that manages, maintains, and controls computer resources
by carrying out specific tasks, such as virus checking, disk repair and analysis, file
management, and security.
Application Software
Word Processor: Software used for manipulating text documents, including creating,
editing, and formatting text with tools for copying, deleting, spell-checking, and
importing images.
Spreadsheet: Organizes and manipulates numerical data using a grid of lettered
columns and numbered rows, with each cell identified using a unique combination of
columns and rows. It can calculate using formulas, produce graphs, and do modelling and
"what if" calculations.
Database: Software used to organize, analyze, and manipulate data consisting of one or
more tables that hold records and fields. It provides the ability to query and report on data
and add, delete, and modify records in a table.
Control and Measuring Software: A program designed to interface with sensors
and allow a computer or microprocessor to measure physical quantities and control
applications by comparing sensor data with stored data and altering process parameters
accordingly.
Apps: Software designed to run on mobile phones or tablets, downloaded from an "App
Store" and ranging from games to sophisticated software such as phone banking.
Common examples include video and music streaming, GPS, and camera facilities.
Bahria College Karsaz
Photo and Video Editing Software: Software that allows users to manipulate
digital photographs or videos, including changing colour, brightness, and contrast,
applying filters and other enhancements, and creating transitions between clips.
Graphics Manipulation Software: Software that allows the manipulation of bitmap
and vector images, with bitmap graphics editors changing pixels to produce a different
image, while vector graphics editors manipulate lines, curves, and text to alter the stored
image as required.
Utility software
Utility software is software designed to
help maintain, enhance and troubleshoot/repair a computer system
Designed to perform a limited number of tasks
Interacts with the computers hardware, for example, secondary storage devices
Some utility software comes installed with the operating system
Examples of utility software and their function are:
o Defragmentation (maintain)
o Compression (enhance)
o Encryption (enhance)
o Task manager (troubleshoot/repair)
Disc defragmentation
When a file is stored on a hard disk it is actually stored not as a whole file, but as a series of
segments. Sometimes the segments run together in sequence (see File 1) and sometimes the
segments are split up over a disk (see File 3). This is known as fragmentation.
Over time, more and more files become fragmented, as do individual files. A fragmented disk
takes longer to read from and write to, making a computer run slower.
Bahria College Karsaz
Defragmentation software takes the fragmented files and rearranges the segments so that they
run contiguously. This decreases read/write time, thereby speeding up computer performance.
Backup Software
Backup software is a utility software that helps create and manage backup copies of data
files and programs.
Manual backups using memory sticks or portable hard drives are good practices, but
operating system backup utilities are also recommended.
Backup utilities allow scheduling backups and only backup files if changes have been
made to them.
There could be three file versions for total security: the current version stored on the
internal HDD/SSD, a locally backed-up copy on a portable SSD, and a remote backup on
cloud storage.
Bahria College Karsaz
Security Software
Security software is a utility software that manages access control, user accounts, and
links to other utilities such as virus and spyware checkers.
It also protects network interfaces using firewalls to prevent unauthorized access.
Security software uses encryption and decryption to ensure intercepted data is unreadable
without a decryption key.
It oversees software updates to verify legitimate sources and prevent malicious software
from being installed.
Access control and user accounts use IDs and passwords to secure user data and prevent
unauthorized access.
Screensavers
Screensavers display moving and still images on the monitor screen after computer
inactivity.
They were originally developed to protect CRT monitors from 'phosphor burn'.
Screensavers are now mostly used for customizing a device and as a part of computer
security systems.
They automatically log out of the user after a certain period of inactivity.
Some screensavers activate useful background tasks like virus scans and distributed
computing applications.
Device Drivers
Device drivers translate data into a format that can be understood by the hardware device
they are associated with.
Without the appropriate device driver, a hardware device cannot work with a computer
and may not be recognised by the operating system.
USB device drivers contain descriptors, which include a vendor ID (VID), product ID
(PID) and unique serial number that allow the operating system to identify the device.
Serial numbers must be unique to avoid confusion if two devices with the same serial
number are plugged into a computer simultaneously.
o Microsoft Windows
o Apple OS X
o Linux
o Android
o IOS
File Management
What is file management?
File management is a process carried out by the operating system creating,
organising, manipulating and accessing files and folders on a computer system
The OS manages where data is stored in both primary and secondary storage
File management gives the user the ability to:
o Create files/folders
o Name files/folders
o Rename files/folders
o Copy files/folders
o Move files/folders
o Delete files/folders
The OS allows users to control who can access, modify and delete files/folders
(permissions)
The OS provides a search facility to find specific files based on various criteria
Handling Interrupts
What is interrupt handling?
Interrupt events require the immediate attention of the central processing unit
In order to maintain the smooth running of the system, interrupts need to
be handled and processed in a timely manner
For example, if a user clicks cancel on a file conversion process, a signal is sent from
the mouse, interrupts the processor, and the operating system will trigger the
cancellation routine
User Interface
What is a user interface?
A user interface is how the user interacts with the operating system
Examples of user interfaces include:
o Command Line Interface (CLI)
o Graphical User Interface (GUI)
Bahria College Karsaz
VS
What is a command line interface?
A Command Line Interface (CLI) requires users to interact with the operating system
using text based commands
CLIs are more commonly used by advanced users
Examples of CLIs are MSDOS (Microsoft Disk Operating System) and Raspbian (for
Raspberry Pi)
What is multitasking?
Multitasking is a process made possible by the OS simultaneously managing system
resources (memory, CPU etc) to give a user the perception of being able to use
multiple programs at the same time
The OS splits tasks and allocates system resources based on a priority
The CPU can only execute one instruction at a time, it can can execute billions of
them in one second.
This makes it appear that multiple programs are running at the same time
User Management
What is user management?
User management is a process carried out by the operating system enabling different
users to log onto a computer
The OS is able to maintain settings for individual users, such as desktop backgrounds,
icons and colour schemes
A system administrator is able to allocate different access rights for different users on a
network
Worked Example
Ella uses her computer to create artwork for a magazine
Ella makes use of system software.
One type of system software is the operating system.
Identify and describe two functions of an operating system [6]
Bahria College Karsaz
Answer
Memory management
Allocates memory to programs currently in use
Gets data from RAM
Stores data in RAM
File management
Creating/editing/renaming files
Creating/editing/renaming folders
Movement of files/folders
What is firmware?
Firmware is embedded directly in to the hardware of a device, to make them
function
When a computer is turned on, it has to explore the ROM for its initial boot-up
instructions, these are contained in a Bootstrap loader
The initial process is handled by the basic input/output system (BIOS) which is
known as firmware
Once start-up is complete, instructions are sent to RAM to be processed by the
operating system
This layer ensures that hardware devices e.g. keyboard and mouse are available and
can be communicated directly by the operating system
Firmware translates between the hardware and the software
Bahria College Karsaz
Interrupts
What is an interrupt?
An interrupt is a signal for the CPU to stop what it is currently doing and do
something else as a higher priority
The CPU is in a continuous loop of carrying out the fetch-decode-execute cycle,
however there are occasions when this needs to be interrupted
Worked Example
Describe the purpose of an interrupt in a computer system. [4]
Answer
Four from:
Programmers find machine code difficult to learn, program in and debug. As a result, the
majority of programmers write programs in high level programming languages. These
languages are close to the spoken and written language of the programmer. For
example, Python uses 'print', ‘if’, 'input' and 'while' statements - all words from the English
language - to form instructions. In fact, instructions often look like abbreviated English
sentences.
Compare this simple Python program with its comments that are written in English:
Programmers write in high level languages because they are easier to understand and are less
complex than machine code. They allow the programmer to focus on what needs to be done,
rather than on how the computer actually works.
For example, in many high level languages, to place a message on the screen, a programmer
would use the statement 'print'. The programmer might not know how the computer actually
generates the message. They just need to know how to use the 'print' statement.
High level languages have a disadvantage - they are restricted to the number of statements
built into them. If the programmer wants a program to do something, but a statement does not
exist to do so, the task cannot be done.
Python
Java
C++
C#
Visual Basic
JavaScript
Source code
Any program written in a high level language is known as source code. Source code must be
translated into machine code before the computer can understand and execute it.
High level languages are known as one-to-many languages as each high level instruction is
translated into many machine code instructions.
Mnemonic Action
LDA Loads a value from a memory address
STA Stores a value in a memory address
ADD Adds the value held in a memory address to the value held in the accumulator
SUB Subtracts from the accumulator the value held in a memory address
MOV Moves the contents of one memory address to another
Key fact
Assembly language uses mnemonics to represent instructions.
Writing in mnemonics is easier for programmers because they are usually brief
representations of the actual commands. They are quicker to write
than binary or hexadecimal, and it is easier to spot mistakes.
Little Man Computer (LMC) is a simulation of a very basic processor using Von Neumann
architecture. It uses an example of simple assembly language that contains a limited set of
mnemonic instructions which can be used to program simple assembly programs. LMC is
freely available on the internet for students to use.
compilers
interpreters
assemblers
Bahria College Karsaz
Compilers
A compiler takes the source code as a whole and translates it into object code all in one go.
Once converted, the object code can be run unassisted at any time. This process is
called compilation.
Interpreters
An interpreter translates source code into object code one instruction at a time. It is similar to
a human translator translating what a person says into another language, sentence by
sentence, as they speak. The resulting object code is then executed immediately. The process
is called interpretation.
editors
run-time environments
automatic line numbering
error trapping
breakpoints
auto-suggestion
auto-indent
interpreters
Translator
Debugger
Error Reports
Auto-Completion and Auto-Correction
Auto-Documenter
Pretty Printing
o Editors: Tools where you write and edit your code. Think of it like a text editor, but with
extra features for coding.
o Run-time Environments: A place where your code runs. It helps the IDE to execute
your code and simulate how it works.
o Automatic Line Numbering: Shows line numbers next to your code, making it easier to
locate errors or reference specific parts of your code.
o Error Trapping: A tool that catches mistakes (errors) in your code as you write, helping
you find and fix them before running the program.
o Breakpoints: Points you set in your code to pause the program while it's running, so you
can check its behavior and find bugs.
o Auto-Suggestion: As you type, the IDE suggests possible code completions, helping you
write code faster and reducing mistakes.
o Auto-Indent: Automatically adjusts the indentation of your code so that it is neat and
easy to read, following coding standards.
o Interpreters: Programs that translate your code into something the computer can
understand and execute, line by line.
o Translator: Similar to an interpreter, but it translates the entire code at once (usually into
machine code or another language) for execution later.
o Debugger: A tool that helps you find and fix bugs by allowing you to step through your
code, see what's happening, and understand errors.
o Error Reports: When something goes wrong, error reports help explain what the
problem is, so you can fix it quickly.
o Auto-Completion and Auto-Correction: Features that automatically complete your
code or correct small mistakes as you type, saving time and effort.
o Auto-Documenter: A tool that automatically generates documentation for your code,
explaining what different parts of your program do.
o Pretty Printing: A feature that formats your code to look neat and organized, making it
easier to read and understand.
Bahria College Karsaz
Some (or all) of these tools are often gathered together in software known as an integrated
development environment (IDE).
Many brands of IDE exist:
The choice of IDE is down to the personal preference of the programmer. Some programmers
enjoy the variety of tools offered by some IDEs, while others prefer a simpler, bare-bones
approach.
Key fact
IDEs help a programmer to produce error-free, maintainable code.
Editors
Editors are software which allow programmers to write and edit code. Editors are often fairly
simple, but usually offer facilities such as:
These tools help to improve the readability of code. However, they do not usually help to
identify errors.
Runtime environments
A runtime environment (RTE) is special software that allows a program to run on a computer,
even if it is not designed to run on it. It works on different platforms, meaning a program can
be developed on different systems and still work.
An RTE creates a virtual machine in order to run a program. A virtual machine is
an emulation of a computer system that can be made to run on a different computer. This
means a programmer can concentrate on program development rather than understanding
how different computer systems actually work.
A common RTE is the Java Runtime Environment. This RTE allows Java programmers to
design programs on one platform, but to be able to run them on many.
Debugging tools
Debugging tools help programmers to locate and fix errors:
Variable tracing lets the programmer see the changing values of variables as the program
runs. Again, this enables the programmer to check if the program is functioning as expected.
Some IDEs pinpoint exactly where a syntax error occurs, or at which line in a program an
error is generated. This is known as error trapping.
Key fact
The very first thing that runs when you turn on the computer is the BIOS.
BIOS is like the "startup manager" of your computer. It checks if all the parts of the
computer, like the keyboard, hard drive, and screen, are working properly.
It also makes sure that the computer is ready to load the main system (the operating
system, like Windows or MacOS).
2. Firmware:
Firmware is special software that is stored in the computer's hardware, such as the
BIOS.
It’s like a tiny brain inside the hardware, telling it how to work and what to do when
the computer turns on.
3. Bootstrap Loader:
After the BIOS checks everything, it looks for the bootstrap loader. This is a small
program that tells the computer where to find the Operating System (OS) on the hard
drive (or SSD).
The bootstrap loader is like a "starter engine" that kicks off the process of loading
the OS into the computer.
Once the bootstrap loader finds the OS, it starts the Operating System (like Windows
or macOS).
The OS is the big program that allows you to use the computer, run apps, browse the
internet, and much more. It’s the main thing that lets you interact with your computer.
EEPROM is a special kind of memory chip where the BIOS and firmware are stored.
It’s like a small storage area that keeps the important startup instructions safe, even if
the computer is turned off.
The BIOS can be updated (or "flashed") if needed using EEPROM.
CMOS is another kind of memory that stores the computer’s settings, like the time
and date, and keeps them even when the computer is turned off.
The CMOS uses a small battery (like a watch battery) to keep these settings saved.
When you turn on the computer, BIOS reads the settings from the CMOS to make
sure everything is correct.
This whole system works together to make sure your computer is ready to use as soon as you
turn it on.