0% found this document useful (0 votes)
21 views

Computer Software

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
21 views

Computer Software

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 29

Computer Software

Learning Objectives

• By the end of this lecture you should be able to:


Define a computer software
Identify different types of computer software
Distinguish between systems software and application software
Identify the different types of systems software with examples
Identify the different types of application software with examples
Introduction to Computer Software

• A computer software refers to a detailed instructions that control the


operation of a computer system.
• A software instructs the computer on what to do and how to do it.
• All programs (software) are written using programming languages.
• A program is a set of instructions arranged in a logical way that a computer can
run.
• Software programmers usually write programs in Source Language (a language
that is like broken English). The source language is then converted to Machine
Language (the language that the computer can understand).
• Machine language is usually in the form of bits (0’s and 1’s).
• A computer hardware is tangible whereas a software is intangible.
Characteristics of a good software

• Provides the required functionality.


• Should be usable even by inexperienced users.
• Should be predictable, reliable, and dependable.
• Should function efficiently.
• Provides an appropriate user interface.
• Should be accompanied by complete documentation.
• Should be easily maintained.
• Should be easily customized/configured.
• Should have a “life-time” at least measured in years.
Functions of Computer Software

• Manage the computer resources of the organizations.


• Act as an intermediary between the user and the computer.
• Capable of storing, retrieving, and updating data information.
• Converts high-level language into machine-level language for better functionality
and understanding.
• System software uses a compiler and interpreter for better functionality and
usability.
Classification of Computer Software
Classification of Computer Software

• Computer software is mainly based on purpose the software serves.


• This can be broadly classified into two categories:
System Software
Application Software
System Software

• Systems software is a set of programs, which is developed and installed in a


computer system for the purpose of developing other programs, and to enhance
the functional capabilities of the computer system.
• System software is a software that helps a computer to run.
• We use the term system software for software which is primarily used to operate
the hardware.
• System programs manage the computer resources such as Printers, Memory,
disks, etc., automate its operations and make easier the writing, testing and
debugging of users’ programs.
• They also control the application programs that we use to achieve a particular
kind of work.
• N/B: System software are developed and installed by the manufactures of the
computer hardware. This is because to write them, a programmer needs an in
depth-knowledge of the hardware details of the specific computer.
System Software

• The categories of system software includes:


 Operating Systems
 Utility Programs
Translator languages
Library programs
 Programming languages
Operating System Software

• The Operating system is the software that allows you to operate the hardware.
• Operating system is a type of system software that performs daily activities of a
computer.
• The programs that we want to execute, the applications that we want to use all
require a platform on which to execute. That platform is provided by the
Operating System.
• One role of the operating system is to provide the virtual machine. This refers
to the way that, by clicking on icons and menus, or by typing in commands at a
prompt, we get to interact with computer hardware without having to understand
its complexity. By hiding the true complexity of the system from the user, the
operating system makes it easier for ordinary people to make computers perform
useful tasks.
Utility Programs

• This is a system software designed to help analyze, configure, and maintain a


computer in its operation.
• Utility program usually focuses on how the computer infrastructure operates.
• Some utility programs are bundled in with operating system software these days.
Others you buy or source in some way.
• Utility programs tend to perform specific tasks related to the management of
hardware.
• Examples of utility programs include compression programs, anti-malware,
firewall, backup, defragmenters, file managers, etc.
Functions of Utility Programs

• It detects and protects the a computer against computer viruses.


• It increases disk space by compressing data files.
• It enables computers to sort files in order.
• It defragments hard disks.
• It enables users to encrypt files.
• It reduces screen burnout by playing a screen saver.
• Partition disks into individual logical drives.
Library Programs

• Library programs are compiled libraries of commonly used subroutines/routines


(functions) which are shared by multiple programs.
• On a windows system they usually carry the file extension .dll – dynamic link library
or .exe.
• Library programs contains code and data that provide services to other programs such as
interface (look and feel), printing, network code and even the graphics engine of
computer games.
• If you have ever wondered why all Microsoft Office programs have the same look and
feel, that is because they are using the same graphical user interface libraries.
• For computer games a developer might not have the time and budget to write a new
graphics engine so they often buy graphical libraries to speed up development, this will
allow them to quickly develop a good looking game that runs on the desired hardware.
• For example Battlefield 3, Need for Speed, and FIFA use the same Frostbite game
engine.
• Using library programs saves time when programming. It also allows the programmer to
interact with proprietary software without having access to its source code.
Programming Languages

• A programming language is a set of instructions that enables humans to


communicate with computers – using a series of symbols that serve as a bridge
that allows humans to turn our ideas into instructions computers can understand.
• A programming language is used to write a computer program.
• A person who writes a program is called a programmer.
• Like spoken languages, each language has its own unique syntax, structure,
vocabulary, and even slang or short cuts.
Types of Programming Languages

• Programming languages of two types:


 Low level programming language
 High level programming language
Low level languages

• This is a computer program written in machine code language, the language


understood by a computer.
• Low level languages are designed to operate and handle the entire hardware and
instruction set architecture of a computer directly.
• Low level languages are machine friendly, which makes them highly efficient in
terms of memory usage but difficult to understand without the help of an
assembler.
• Types of low level languages are:
 Machine code language (First Generation).
 Assembly language (Second Generation).
Machine Code Language (First Generation Languages)
• This is the language that is readily understood by the computer.
• Machine language uses machine codes (binary digits) that consists of 0’s & 1’s.
Low level languages

Assembly language (Second Generation Languages)


• A low level programming language closely related to machine code language.
• Implements a symbolic representation of the machine code needed to program a
given CPU architecture.
• Assembly language sits between machine code and high level language.
• While high level languages use statements to form instructions, assembly
language uses mnemonics - English like words (short abbreviations).
• Words like SUM, ADD, MOV, SUB, etc. could be used in programs. A program called
an assembler translates these words into machine language.
High Level Languages (Third Generation Languages)

• A high level language is a computer programming language used to write programs.


High-level languages need to be translated into machine code using a compiler,
interpreter or assembler.
• High level programming languages are languages that are close to the spoken and
written language of the programmer.
• High level languages are easier to understand and are less complex than machine
code.
• High level languages are known as one-to-many languages as each high level
instruction is translated into many machine code instructions.
• Programs written in high level languages are shorter than those of low level languages,
because one statement translates into several machine code instructions.
• Examples of high level languages include: Python, Java, JavaScript, C++, C#, C,
etc.
• N/B: All of the languages in the first 3 generations are called imperative languages
because the program’s statements are executed in the order specified by the
programmer.
Fourth Generation Languages

• Fourth generation languages are declarative.


• This means the programmer will write rules or facts rather than statements.
• The interpreter of the language produces the result using whichever standard
algorithms it has been for doing so.
• SQL, SPSS, SAS, etc. are examples of declarative languages.
Translator Language/Software

• This is a software that allow new programs to be written and run on computer, by
converting source code into machine code.
• Whatever languages we use to write our programs, they need to be in machine
code in order to be executed by the computer.
• The 3 main categories of translators includes: Assembler, compiler, and
interpreter.
Assembler
• An assembler is a program that translates the assembly code into machine code.
Compiler
• Translates high level languages such as C++ into machine code all at once.
Interpreter
• Translates high level languages such as JavaScript into machine code one line
at a time as the program is executed.
Firmware

• This is a form of microcode or program that is embedded in the hardware devices


to help them to function effectively.
• Hardware like cameras, network cards, mobile phones, routers, scanners, printers,
and even television remotes rely on firmware built into their memory to operate
smoothly.
• There is a difference between firmware and software.
• Firmware provides instructions to help hardware startup, communicate with other
devices, and perform basic input/output tasks.
• Software, on the other hand, is installed onto a device and used for interaction,
such as browsing the internet, listening music, video conferencing, and word
processing.
• Common types of firmware includes:
 Basic Input /Output System (BIOS)
 Extensible Firmware Interface (EFI)
Application Software

• Application software is a program that helps the user perform a particular task.
• Application software tends to be for the tasks that have some relationship to the
world outside the computer.
• For example, you might want to use a word processor to write a letter or an essay.
Although you use the computer to perform the task, the task itself might
reasonably considered to be a non-computer task.
• In effect, it is what users use their computers for.
• Application software, such as a word processor, spreadsheets, e-mail, database,
and web browser, can help you perform tasks such as creating documents,
analyzing finances, sending messages, organizing data, and viewing pages on the
World Wide Web respectively.
Classification of Application Software

• Application software can be classified as follows:


 Off-the shelf software
Bespoke/custom written/In-house developed software
Off-the Shelf Software

• This is software designed and packaged for sale.


• A user will find it readily available in shops for sale.
• Off-the shelf is divided into two:
 General purpose software
 Special purpose software
General Purpose Software

• General purpose software is a type of that can be used for a variety of tasks.
• It is not limited to one particular function.
• For example a word processor can be classified a general purpose software as it
can be used to write letters, memos, novels, essays, notes, thesis, create a
restaurant menu, and even make posters.
Special Purpose Software

• This software performs a single specific task.


• This task might be complex like payroll calculation, stock control, etc. but will be
based on a single task.
• A web browser is a special purpose software as its single task is to load/render
web pages.
• A camera application on your phone will allow you to take and share pictures.
Advantages of off-the shelf software

• It is relatively cheap compared to custom written software.


• It is readily available from most computer shops.
• There is lots of user support.
• Thoroughly tested so their won’t be any serious problems or bugs.
• It is user friendly. Many have a graphical user interface and sample manuals
provided on purchase.
Disadvantages of off-the shelf
software

• They are standardized hence making it hard to make adjustments.


• The software maybe limited to a particular operating system like Microsoft Office
for Windows Operating System.
• It can be easy to manufactures viruses that may tamper with such application
programs.
• An organization may have to pay for features that are not required and never
used.
Bespoke Software

• Bespoke software is written for a single client and for a specific purpose.
• Large organizations have a need for well developed applications suited to their
specific needs.
• Such software is expensive to develop since the development costs are not shared
among large number purchasing the software.

You might also like