CHAPTER 4 SOFTWARE COMPUTER
SCIENCE
DEFINITION OF A SOFTWARE
A software is a set of instruction and data written in a programming language that performs
one or more task to tell the computer what to do.
All computer start life as a group of connected hardware items(peripherals). but,
without software, the hardware items would be useless.
Installed on your computer, depending on whether you have chosen a MAC or PC,
will be an OPERATING SYSTEM, maybe IOS or WINDOWS.
The operating System also includes utility programs and hardware drivers.
On top of the operating system, Application software can be installed such as
Spreadsheet and word processing applications.
CLASSIFICATION OF SOFTWARE
The software can be characterized into two types of software mainly:
SOFTWARE
SYSTEM SOFWARE APPLICATION SOFTWARE
Operating Utility Device Spread Word Data Internet Games/
system programs drivers sheet processor base browser ware
1
System software
Definition
A system software is a type of computer program designed to manage and control a
computer's hardware while providing basic services to higher-level application software.
It serves as a bridge between the hardware and the application programs, allowing them to
communicate effectively.
General properties( 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
Require to allow hardware and software to run without any problems
Provides a human computer interface.( HCI)
Controls the allocation and usage of hardware resources.
Functions of a system Software
Allows software and hardware to run without problems.
Provides a human computer interface
Control the allocation and usage of hardware resources.
Device management
System security and the acess control
File management
Example
Basic input Output System( BIOS)- installed in ROM. Enables all the attached
components to initialise. Known as firmware.
Operating system- MAC, Windows, Android, IOS
The operating system( 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
user-unfriendly and the majority of users would find it almost impossible to work with
computers on a day-to-day basis.
For example, operating systems allow;
a) Input/output operations
b) Users to communicate with the computer
c) Error handling to take place
d) The loading to take place
e) The loading and running of programs to occur
f) Managing of security( e.g user accounts, log on passwords)
Device Driver( Part of the OS or installed manually)- a software that enables hardware
to communicate with the operating system( Plug and play).
Compilers-translate high-level programming language into machine code.
Utilities software- built into the operating system to carry out a specific task.
2
Examples of utility software( system software)
Antivirus is a kind of software designed, prevent and remove malicious software, commonly
known as malware, and other devices. This include viruses, worms, Trojan horses, spyware
and more.
Antivirus programs work by scanning your device for known threats and suspicious
behaviors, blocking and eliminating them to protect your data and system integrity. They
often provide real-time protection, meaning they continuously monitor your device for
potential threats.
They are able to check software of files they are run or loaded on a computer. They
compares a possible virus against a database of known viruses.
Virus checker- anti-Virus Software
Offered by the operation system
Must be constantly updated
How they work?
- the software is constantly running in the background
-check software of files before they are run or loaded
- compare a possible virus against a database of known viruses
- any possible files or programs which are infected are put into quarantine
Running an anti-virus software in the background will
constantly check for virus attacks.
3
Defragmentation software- when HDD becomes full, block used for files will be scattered all
over the disk surface. Data accessing will be faster if files could be stored in contiguous
sectors to reduce HDD head movements.
Defragmentation reduces the amount of fragmented files on a hard disk.
It recognizes related files and puts them in the same physical location.
Backup software is a good
practise to use the operating
system back-up utility.
While it is sensible to take manual
back-ups using, for example, a
memory stick or portable to use the
operating system back-up utility.
This utility will:
a) Allow a schedule for backing up
files to be made
b) Only carry out a back-up
procedure if there have been an
changes made to a file.
For total security there should be three versions of a file
a. The current( working) version stored on the internal HDD or SSD.
b. A locally backed up copy of the file( stored on a portable SSD)
c. A remote back-up version well ways from the computer9 for example, using
cloud storage).
Allow a schedule for backing up files to be made
Security software
a) Links into other utility software, such as virus checkers and spyware checkers.
b) Protect network interfaces9 for example through the use of firewalls)
c) Manages access control and user accounts( using user IDs and passwords)
d) Oversees the updating of software( does the update request come from a
legitimate sources?)
e) Uses encryption and decryption to ensure any intercepted without a decryption
key.
OS
- windows-file history
- Mac-OS- Time-machine
Screensavers
4
Screensavers are programs that supply moving and still images on the monitor
screen after a period of inactivity by the computer. They were originally developed
to protect older CRT( cathode ray tube) monitors which would suffer from ‘phosphor
burn’ if the same screen image remained for any length of time.
Application software
Definition
Application Software or known as apps( in other terms) ,refers to programs
designed to perform specific tasks for users. It interacts directly with the end user to
execute commands and manage specific functions on a computer or a devise.
General properties( features) of application software
Used to perform various applications( apps) on a computer.
Allow a user to perform specific tasks using the computer’s resources.
May be a single program( for example, Notepad) or a suite of programs( for
example, Microsoft Office)
User can execute the software as when they require.
Examples
Word processor
Word processing software is used to manipulate a text document, such as an essay
or a report. Text is entering using a keyboard and the software provides tools for
copying, deleting and various of formatting. Some of the functions of word
processing software include:
- creating, editing, saving and manipulating text
- copy and paste functions
- spell checkers and thesaurus
- import photos/images into a structured format
-Translation into a foreign language
Spreadsheet
Spreadsheet software is used to organise and manipulate numerical data( in the
form of integer, real, date, and so on). numbers are
organise on a grid of lettered columns and numbered
5
rows. The grid itself is made up of cells, and each cell is identified using a unique
combinations of columns and rows the grid itself is made up of cells, and each is
identified using a unique combinations of columns and rows, for example, B6.
Some of the functions of spreadsheets include
a) Uses of formulas to carry out calculations
b) Ability to produce graphs
c) Ability to do modelling and’’ what if’’ calculations.
Database
Data base is used to organise, manipulate and analyse data. A typical database is
made up of one or more tables. Tables consists of rows and columns. Each row is
called a ‘’record’’ and each column is called a ‘’filed’’. this provides the basic
structure for the organisation of the data within the database.
Some of the functions include
a) Ability to carry out queries on database data and produce a report
b) Add, delete and modify data in a table.
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 an altering/ adding sound to the
original video.
a) Rearranging, adding
Control and Measuring SOFTWARE
Control and measuring software
Control and measuring is deigned to allow a computer or microprocessor to
interface with sensors so that it is possible to:
a) Measure the physical quantities in the real world( such as temperatures)
b) To control applications( such as a chemical process) by comparing data and
sending out signals to alter process parameters( e.g open a valve to add acid and
change the pH).
Apps
Apps is short of applications- type of software
They normally refer to software which run on mobile phones or tablets. They are
normally downloaded from an ’’App Store’’ and range from games to sophisticated
software such as phone banking.
Common examples of apps include:
Video and music streaming
Gps( global positioning systems-help you find you way to a chosen location)
Camera facility ( taking photos and storing/manipulating the images taken)
Device drivers
Device drivers are software that communicate with the operating system and
translate data into a format understood by a hardware peripheral device. Without
device drivers, a hardware device would be unable to work with a computer-a
6
message such as ‘device not recognised’ would appear on the scree. As soon as a
device is plugged into a USB port( for example, a memory stick, printer or camera),
the operating system looks for the appropriate device driver.
All USB drivers contain a collection of information about devices called descriptors;
this allows the USB bus to ask a newly connected device what it is. Descriptors
vendor id( VID), product id( PID) and unique serial numbers. If a device has no serial
number associated with it, the operating system will treat the device as new every
time it is plugged into a USB port. Serial numbers must be unique since this could
prove rather interesting if two different devices with the same serial number were
plugged into a computer at the same time.
Operating system( part of the system software)
In order for computer systems to function correctly
and allow users to communicate with them,
software known as an operating system needs to be
installed.
An operating system provides both environment in
which applications can be run an useable interface
between humans an computer.
An operating system make using computer hardware much easier.
Examples of operating systems include;
Microsoft windows,
Apple mac os,
Google android
Apple IOS.
What is the purpose of an Operating systems
Human computer interface( HCI) ( OPERATING SYSTEM)
7
The human computer interface( HCI) is the form of a command line interface( CLI)
or graphical user interface( GUI)
The command line interface require a user to types in instructions in order to
choose options from menus, open software, etc…
They are usually commands that need to
be types in, for example, to save or load a
file.
The user need to learns a several
commands just to carry out basic
operations.( which is a big disadvantages)
It is also slow having to key in these
commands every time an operation has to
be carried out.
Graphic user interface.
A graphic user interface
allows the user to interact
with a computer or digital
device such as an MP3
player, gaming device or
mobile phone.
A GUI uses pictures or
symbols( icons) rather than
having to type in a number
of commands,
Simply clicking on any of the
icons from the screen, would
automatically load the
application used. There is no
need to type in anything.
GUIs use various
technologies devices to provide the user interface. One of the most common is
WIMP( Windows icons menu and pointing device)
WIMP was developed for use on personal computers( PC). Here a mouse is used to
control a cursor and icons are selected to open/ run windows. Each window contains
an applications and modern computer systems allow several windows to be open at
the same time.
Difference between GUI and CLI interfaces
8
Interface Advantages Disadvantages
Command line The user is in direct communication with The user needs to learn a number of
interface( CLI) the computer commands to carry out basic operations. All
commands need to be types in which takes
The user is not restricted to a number of time and can be error-prone each
pre-determined options. command must be types in using the
correct format, spelling, and so on.
It is possible to alter computer
configuration settings.
It uses a small amount of computer
memory.
Graphical user The user doesn’t need to learn any This types of interface uses up considerably
interface( GUI) commands. more computer memory than a CLI
It is more user-friendly; icons are used to interface.
represent applications as pointing It needs an operating system, such as
device( such as a mouse) is used to click windows, to operate which uses up
on an icon to launch the application- this considerable memory.
is simpler than typing in commands or a
touch screen can be used where
applications are chosen by simply
touching on the screen.
Command line interface (CLI) ; a programmer, analyst or
technician; basically somebody who need 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.
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
stores/manipulates photographs, for example
Memory management( operating system) part of the system software
9
Manages the primary storage( RAM) and allows data to be move between RAM
and HDD/SSD during the execution of programs
Keep track of all the memory locations.
Carries out memory protection to ensure that two competing applications
cannot use them same memory locations at the same. If this wasn’t done the
following might happen:
a) Data would probably be lost
b) Applications could produce incorrect results( based on the wrong data being in
memory locations)
c) 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)
d) In extreme cases, the computer could crash.
Security managements( operating system) part of the system software
Security management, is another job of the operating system; its function is to
ensure the integrity, confidentiality and availability of data.
Tasks include:
Carrying out updates as and when they become available
Ensuring that anti-virus software is always up to date
Communicating with a firewall to check all traffic to and and from the computer.
Using ‘’privileges’’ to prevent users entering ‘’private areas’’ on a computer that
permits multi-user activity; this helps to ensure the privacy of data
Maintaining access rights for all users.
Offering the ability for the recovery of data when it has been lost or corrupted
Helping to prevent illegal intrusion into the computer system.
Hardware peripheral management( operating system) part of the system software
This involves the management of all input and output peripheral devices
Tasks include:
Communicates with all input and output devices using device drivers
Ensures each hardware resource has a priority so that they can be used and
released as required.
Manages input/output devices by controlling queues and buffers; for example
the role of the printer management when printing out a document:
a) First the printer driver is located and loaded into memory
b) The data is then sent to a printer buffer ready for printing
c) If the printer is busy then the data is sent to a printer queue before it can be
sent to the printer buffet.
d) It receives and handles error messages and interrupts from the printer.
File management( operating system) part of the system sofware
File management tasks include;
File naming conventions which can be used I.e filename.docx
Performing specific task, such as; create, open, delete, rename, copy and move
files.
Maintain the directory structures
Ensuring access control mechanisms are maintained( for example, access rights
to files, passwords protection, or making files available for editing or locking
them
10
Ensuring memory allocation for a file by reading it from the HDD/ SSD and
loading it into memory.
Multitasking( operating system) part of the system software
Multitasking means computers can carry out more than one task at a time
Each of these tasks will share the CPU and memory under the control of the
operating system software.
To make sure that multitasking operates correctly, the operating system need to
continuously monitor each of the processes.
a) Resources are allocated to a task for a specific time limit
b) The task is given be interrupted while it Is running
c) The task is given a priority so it can have resources according to its priority.
Management of user accounts( operating system) part of the system software
Computers allow more than one user to log onto the
system. It is therefore important that user’s data is stored in
separate parts of the memory for security reasons.
Each person logging onto the computer will be given a user
account protected by a user name and password. The
operating system is given the task managing these different
user accounts.
This allows each user to
Usually an administrator oversees the management of these
user accounts. The administrator can create accounts,
delete user accounts and restrict user account activity.
Running of applications
When a computer starts up, a part of the operating system is loaded into RAM this is
known as booting up the RAM computer.
The start-up of the computer’s motherboard is handled by the basic input/output
system( BIOS).
The BIOS tells the computer where the operating system can be found on the hard
drive; it then loads the part of the operating system that is needed and executes it.
The BIOS is often referred to as firmware.
Firmware is defined as a program that provides low level control for devices. It is
permanents software programmed into a read-only memory.
11
Firmware is software that’s embedded in a piece of hardware. You can think of it
simply as ‘’software for hardware’’. However, software is different from firmware, so
the two are not interchangeable terms.
Devices that you might think of as strictly hardware such as an optical drive, network
card, TV remote, media player, camera, or scanner all have software that’s
programmed into a special memory contained in the hardware itself.
Interrupts
An interrupt is a signal sent by hardware or software to the operating system
indicating that a process or event needs immediate attention. It allows the system to
temporarily halt its current operations to address the issues that prompted the interrupt.
Interrupts can be caused by
a) An input/output process( e.g a disk drive or printer requiring more data)
b) A hardware fault( for example, a paper jam in the printer)
c) User interaction, for example, the user presses <CRTL> <ALT> < BREAK >, which causes
the system to be interrupted.
d) Software errors that cause a problem( for example, an .exe file that cannot be fond to
initiate the execution of a program, two processes trying to access the same memory
location, or an attempt to divide by zero).
Interrupts allow computers to carry many tasks or to have several programs open at
the same time. An example would be downloading a file from the internet at the
same time as listening to some music in itunes.
Interrupts allow these two functions to co-exist and the user has the impression that
both functions are being carried out simultaneously.
In reality, data is being passed in and out of memory very rapidly allowing both
function to be serviced. This can all be achieved by using an area in memory known
as a buffer.
Buffers
12
A buffer is a memory area that stores data
temporarily.
For example, buffers are used when downloading
a movie from then internet to compensate for
difference between download speeds and the
data requirements of the receiving device.
The data transmission rate of the movie file from
the web server to then buffer must be greater
than the rate at which data is transmitted from
buffer to media player.
Without buffers, the movie would frequently ‘’
freeze ‘’.
Uses of interrupts and buffers when printing a document
13
Types of programming language, translators and integrated
development environments( IDEs)
People use many different language to communicate
with each other. In order for two people understand
each other they need to speak the same language or
another person, an interpreter, is needed to translate
from one language to the other language.
Programmers use many different
programming languages to
communicate with computers.
However, computers only’’
understand their own language, this
Is called machine code. A program
needs to be translated into
machine code before it can be
‘’understood’’ by a computer.
What is a program
A program is the way of telling a computer what to do, how to do it and when to do
it.
This enables a single computer to perform many different types of task.
A computer can be used to stream videos, write reports, provide weather forecasts
and many more, many other jobs.
Example of low and high level languages
Low-level languages can refer to Machine Code or Assembly Language
These are the simple instructions that a computer understands. Assembly language
that needs to be translated into machine code.
Machine code: programmers do not usually write in machine code as it is difficult to
understand, and it can be complicated to manage data manipulations and storage.
Assembly languages ; fewer programmers write programs in an assembly languages.
Those programmers who do, do so for the following reasons.
To make use of special hardware
To make use of special machine-dependent instructions
To write code that doesn’t take up much space primary memory.
To write code that performs a task very quickly.
14
High level languages
High-level languages enable a programmer to
focus on the problem to be solved and require no
knowledge of the hardware an instruction set of
the computer that will use the program.
Many high level programming languages are
portable and can be used on different types of
computers.
High level languages are designed with programmers in
mind; programming statements are easier to understand
than those written in a low-level language.
This means that programs written in a high-level language
are easier to:
Read and understand as the language used is close to
English
Write in a short time
Debug at the development stage
Maintain once in use
LOW LEVEL
LANGUAGES
Low-level languages programming
language is one the provides minimal
abstraction from a computer’s hardware
architecture, allowing programmers to
directly manipulate the machine’s registers
and memory. These languages are closely
aligned with a computer’s instruction set
15
and are often use system programming, such as writing operating systems or
embedded systems.
Difference between high-level languages and low level languages
Language Advantages Disadvantages
High-level Independent of the type of computer Programs can be longer
being used Programs can take longer to execute
Easier to read, write and understand Programs may not be able to make use of
programs special hardware
Programs are easier and quicker to
debug
Easier to maintains programs in use
Low-level Can make use of special hardware It takes longer time to write and debug
Include special machine dependant programs
instructions Programs are more difficult to understand.
Can write code that doesn’t take up
much space in primary memory
Can write code that performs a task
very quickly
Translators
Translators are needed to translate programs written in high level languages into the
machine code that a computer understand and execute.
There are three types of translator
Compilers
Interpreters
Assemblers
A compiler is an example of a translator that takes a High-level Programming
Language( e.g.,, C++ ) and translates it into Machine Language or Assembly Language
which the computer can understand.
It converts the High-level language into Machine Code all in one go so that it can be
directly used by a computer to perform a required task. Once converted, the code
can be run unassisted at any time. This process is called compilation.
If errors are detected, then an error report is produced instead of a compiled
program.
An interpreter is a computer program that reads a statement from a program
written in a high-level language 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 code is then executed immediately. The
process is called interpretation.
16
If there is an error in the statement then execution ceases and an error message is
output, sometimes with a suggested correction.
The program needs to be interpreted again each time it is run.
Assemblers are a third type of translator. The purpose of an assembler is to translate
assembly language into machine code.
Whereas compilers and interpreters generate many machine code instruction for
each high level instruction, assemblers create one machine code instruction for each
assembly instruction.
the advantages and disadvantages of compilers and interpreters
Integrated development environment( IDE)
17
An integrated development
environments( IDE) is used by
programmers to aid the writing and
development of code. They are
designed to bring together all
programming tasks in one
application; one of the main
benefits on an IDE is that they offer
a central interface with all the tools
a developer needs.
There are many different IDEs
available; some just support one
programming language, others can
be used for several different
programming languages. You may
be using PyCharm( for Python0,
Visual Studio( for Visual Basic) or
BluJ( for Java) as you IDE.
IDEs usually have these features:
Code editors
A debugger
Error diagnostics
Auto-completion
Auto-correction
An auto-documenter and pretty-printing.
18
Code editors are designed for writing and editing source code, these editors are
distinguished from text editors because work to either simplify or enhance the
process of writing and editing of code for developers.
Debuggers are used during testing and can help developers debug their
application programs.
Translator transform source code that is written in human readable/writable
language in a form that computers can execute.
19