Chapter 4 - Software
By M Dzinzi
• Types of Softwares:
• System Software e.g. Operating System, Utility programs and device
drivers
• Application Software e.g. spreadsheet, word processor etc.
• System Software:
• these are a set of programs which control and manage operations of
hardware
• gives a platform for other softwares to run
• it is required to allow hardware and software to run without problems
• provides a human computer interface (HCI) to the user
• controls the allocation and usage of hardware resources
• Application Software:
• allows 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 and when they require and is mostly
not automatic
• 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 for 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 manage, maintain, and control 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 carry out
calculations using formulas, produce graphs, and do modeling and "what if" calculations.
• Database: Software used to organize, analyze, and manipulate data consisting of one or more tables that
hold records and fields. Provides the ability to query and report on data, as well as 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: A type of software designed to run on mobile phones or tablets, which are downloaded from an
"App Store" and range from games to sophisticated software such as phone banking. Common examples
include video and music streaming, GPS, and camera facilities.
• Photo and Video Editing Software: Software that allows users to manipulate digital photographs or videos,
including changing color, brightness, 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
• Computer users have access to utility programs as part of system
software
• Utility programs can be initiated by the user or run in the background
without user input
• Common utility programs include virus checkers, defragmentation
software, disk analysis and repair tools, file compression and
management software, backup software, security tools, and
screensavers.
• Virus Checker / Anti Virus software
• Virus checkers or anti-virus software are important for protecting
computers from malware.
• They should be kept up to date and run in the background to maintain their
effectiveness.
• Anti-virus software checks files before they are run or loaded and compares
possible viruses against a database of known viruses.
• Heuristic checking is used to identify possible viruses that are not yet on the
database.
• Infected files are put into quarantine for automatic deletion or for the user
to decide.
• Anti-virus software must be kept up to date as new viruses are constantly
discovered.
• Full system scans should be carried out regularly to detect dormant viruses.
• Disk Defragmenting Software
• Defragmentation software is used to rearrange the blocks of data on a hard
disk drive (HDD) to store files in contiguous sectors, reducing head
movements and improving data access time.
• As an HDD becomes full, blocks used for files become scattered all over the
disk surface, making it slower to retrieve data as the HDD read-write head
needs several movements to find the data.
• When a file is deleted or extended, the vacant sectors are not filled up
straight away by new data, causing the files to become more scattered
throughout the disk surfaces.
• A disk defragmenter rearranges the blocks of data to store files in contiguous
sectors wherever possible, allowing for faster data access and retrieval.
• The defragmentation process can free up previously occupied sectors and
leave some tracks empty.
• Backup Software
• Backup software is a utility software that helps in creating and
managing backup copies of data files and programs.
• Manual backups using memory sticks or portable hard drives are good
practices, but using operating system backup utilities is also
recommended.
• Backup utilities allow scheduling backups and only backup files if
changes have been made to them.
• For total security, there could be three versions of a file: 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.
• 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 installing.
• 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 a period of 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 system.
• They are used to automatically log out 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 different
devices with the same serial number were plugged into a computer at
the same time.
• Operating Systems
• Operating Systems are designed to establish communication between
the user and the computer
• Functions of a typical operating system -
• Providing HCI
• Multitasking
• Memory Management
• Managing files
• Management of user accounts
• Hardware management
• Platform for running application software
• WIMP - Windows, Icons, Menu and Pointing Devices
• Memory Management - Manages the RAM and the HDD/SSD during
the execution of programs
• Security Management - Providing security features such as Anti-Virus,
System updates and so on
• Hardware Peripheral Management - Managing the device drives, Inputs,
Outputs, Queues and buffers
• File Management - Opening, Creating, Deleting, Renaming and many
more functions
• Multitasking - OS would share the hardware resources with each of the
processes
• Management of User Accounts - OS would allow multiple users where
each individually customize their account.
• Running of Applications
• The computer starts its OS (booting up the computer) through the bootstrap
loader.
• The BIOS (Basic Input/Output System) tells the computer the location of the OS
in the storage.
• BIOS is often referred to as the firmware
• Interrupts
• Signal that causes the operating system to stop what it’s doing and service a task
• Ensures important tasks are dealt on priority basis
• Can be a software or a hardware interrupt
• Can be generated by peripherals like keyboard & mouse
• Different interrupts have different levels of priority
• After interrupt is dealt with previous process continues
Programming Languages,
Translators and IDEs
• Computers can only understand machine code therefore translators are
needed
• High-Level Languages
• Easier to read and understand as the language is closer to human language
• Easier to write in a shorter time
• Easier to debug at the development stage
• Easier to maintain once in use
• Low-Level Languages
• Refer to machine code
• Binary instructions that the computer understands
• Assembly Language
• Few programmers use assembly language to -
• Make use of special hardware
• Write code that doesn’t take up much space
• Write code that runs very quickly
• Translators
• Compiler
• Translates a program written in high-level language into machine code
• Used without compiler
• Executable file of machine code produced
• One high-level language translated into several machine code instructions
• Used for general use
• Interpreter
• Executes a high-language program a statement at a time
• No executable file of machine code produced
• One high-level language program statement may require several machine code
instructions to be executed
• Interpreted programs cannot be used without interpreter
• Used when program is being developed
• Assembler
• Translates a low-level language program into machine code
• Executable file of machine code produced
• One low-level language translated into one machine code instructions
• Can be used without assembler
• Used for general use
• Integrated Development Environments (IDEs)
• An IDE would usually have these features -
• Code Editor
• Translator
• Debugger
• Error Reports
• Auto-Completion and Auto-Correction
• Auto-Documenter
• Pretty Printing