VIMS EDUCATION INSTITUTE
CHAPTER-5
(COMPUTER SOFTWARE)
What is Software?
Software is a set of programs, which is designed to perform a well-defined
function. A program is a sequence of instructions written to solve a particular
problem.
“Software is a Group of Programmes”
Types of Software
System Software
The system software is a collection of programs designed to operate, control, and
extend the processing capabilities of the computer itself. System software is
generally prepared by the computer manufacturers. These software products
comprise of programs written in low-level languages, which interact with the
hardware at a very basic level. System software serves as the interface between
the hardware and the end users.
Some examples of system software are Operating System, Compilers, Interpreter,
Assemblers, etc.
[Link]
VIMS EDUCATION INSTITUTE
Some common system software examples are:
Operating System: It is the most prominent example of System Software. It is a
collection of software that handles resources and provides general services for the
other applications that run over them. Although each Operating System is different,
most of them provide a Graphical User Interface through which a user can manage
the files and folders and perform other tasks. Every device, whether a desktop,
laptop or mobile phone requires an operating system to provide the basic
functionality to it. As an OS essentially determines how a user interacts with the
system, therefore many users prefer to use one specific OS for their device. There
are various types of operating system such as real-time, embedded, distributed,
multiuser, single-user, internet, mobile, and many more. It is important to consider
the hardware specifications before choosing an operating system. Some examples
of Operating systems given below:
o Android
o iOS
o Linux
o Mac OS
o MS Windows
o Ubuntu
o Unix
Device Drivers: It is a type of software that controls particular hardware which is
attached to the system. Hardware devices that need a driver to connect to a system
include displays, sound cards, printers, mice and hard disks. Further, there are two
types of device drivers: Kernel Device Drivers and User Device Driver. Some
examples of device drivers are:
o Display Drivers
o Motherboard Drivers
o Printer Drivers
o ROM Drivers
o Sound card Driver
o USB Drivers
o VGA Drivers
Firmware: Firmware is the permanent software that is embedded into a read-only
memory. It is a set of instructions permanently stored on a hardware devi ce. It
provides essential information regarding how the device interacts with other
hardware. Firmware can be considered as ‘semi-permanent’ as it remains
permanent unless it is updated using a firmware updater. Some examples of
firmware are:
o BIOS
o Computer Peripherals
o Consumer Applications
o Embedded Systems
o UEFI
Programming Language Translators: These are mediator programs on which
software programs rely to translate high-level language code to simpler machine-
level code. Besides simplifying the code, the translators also do the following :
[Link]
VIMS EDUCATION INSTITUTE
o Assign data storage
o Enlist source code as well as program details
o Offer diagnostic reports
o Rectify system errors during the runtime
o Examples of Programming Language Translators are Interpreter, Compiler
and Assemblers.
Utility: Utility software is designed to aid in analyzing, optimizing, configuring and
maintaining a computer system. It supports the computer infrastructure. This
software focuses on how an OS functions and then accordingly it decides its
trajectory to smoothen the functioning of the system. Softwares like antiviruses,
disk cleanup & management tools, compression tools, defragmenters, etc are all
utility tools. Some examples of utility tools are:
o Avast Antivirus
o Directory Opus
o McAfee Antivirus
o Piriform CCleaner
o Razer Cortex
o Windows File Explorer
o WinRAR
o WinZip
Application Software
Application Software, also known as end-user programs or productivity
programs are software that helps the user in completing tasks such as doing
online research, jotting down notes, setting an alarm, designing graphics,
keeping an account log, doing calculations or even playing games. They lie
above the system software. Unlike system software, they are used by the end -
user and are specific in their functionality or tasks and do the job that they
are designed to do. For example, a browser is an application designed
specifically for browsing the internet or MS PowerPoint is an application used
specifically for making presentations. Application Software or simply apps can
also be referred to as non-essential software as their requirement is highly
subjective and their absence does not affect the functioning of the system. All
the apps that we see on our mobile phones are also examples of Application
Software. There is certain software that is exclusively made for app
development like Meteor and Flutter. These are examples of Application
software too.
There are various types of application software:
Word Processors: These applications for documentation. Along with that it also
helps I storing, formatting and printing of these documents. Some examples of
word processors are:
[Link]
VIMS EDUCATION INSTITUTE
o Abiword
o Apple iWork- Pages
o Corel WordPerfect
o Google Docs
o MS Word
Database Software: This software is used to create and manage a database. It is
also known as the Database Management System or DBMS. They help with the
organization of data. Some examples of DBMS are:
o Clipper
o dBase
o FileMaker
o FoxPro
o MS Access
o MySQL
Multimedia Software: It is the software that is able to play, create or record
images, audio or video files. They are used for video editing, animation, graphics,
and image editing, Some examples of Multimedia Software are:
o Adobe Photoshop
o Inkscape
o Media Monkey
o Picasa
o VLC Media Player
o Windows Media Player
o Windows Movie Maker
Education and Reference Software: These types of software are specifically
designed to facilitate learning on a particular subject. There are various kinds of
tutorial software that fall under this category. They are also termed as academic
software. Some examples are:
o Delta Drawing
o GCompris
o Jumpstart titles
o KidPix
o MindPlay
o Tux Paint
Graphics Software: As the name suggests, Graphics Software has been devised to
work with graphics as it helps the user to edit or make changes in visual data or
images. It comprises of picture editors and illustration software. Some examples
are:
o Adobe Photoshop
o Autodesk Maya
o Blender
o Carrara
[Link]
VIMS EDUCATION INSTITUTE
o CorelDRAW
o GIMP
o PaintShop Pro
Web Browsers: These applications are used to browse the internet. They help the
user in locating and retrieving data across the web. Some examples of web
browsers are:
o Google Chrome
o Internet Explorer
o Microsoft Edge
o Mozilla Firefox
o Opera
o Safari
o UC Browser
Other than these, all the software that serves a specific purpose fall under the category of
Application Software.
However, there exists one more classification of the software. The software can also be
classified based on their availability and share ability.
Utility Software
The Utility Software is system software that helps to maintain the proper and smooth functioning of
a Computer System. It assists the Operating System to manage, organize, maintain, and optimize
the functioning of the computer system.
Utility Software performs certain tasks like virus detection, installation, and uninstallation, data
backup, deletion of unwanted files, etc. Some examples are antivirus software, file management
tools, compression tools, disk management tools, etc.
Types of Utility Software
Anti-virus utilities scan for computer viruses.
Archivers output a stream or a single file when provided with a directory or a set of files.
Archive utilities, unlike archive suites, usually do not include compression or encryption
capabilities. Some archive utilities may even have a separate un-archive utility for the
reverse operation.
Backup software can make copies of all information stored on a disk and restore either
the entire disk (e.g. in an event of disk failure) or selected files (e.g. in an event of
accidental deletion).
Clipboard managers expand the clipboard functionality of an operating system .
Cryptographic utilities encrypt and decrypt streams and files.
Data compression utilities output a shorter stream or a smaller file when provided with a
stream or file.
Data synchronization utilities establish consistency among data from a source to a target
data storage and vice versa. There are several branches of this type of utility:
[Link]
VIMS EDUCATION INSTITUTE
o File synchronization utilities maintain consistency between two sources. They may
be used to create redundancy or backup copies but are also used to help users carry
their digital music, photos and video in their mobile devices.
o Revision control utilities are intended to deal with situations where more than one
user attempts to simultaneously modify the same file.
Debuggers are used to test and “debug” other programs, mainly to solve programming
errors. Also utilized for reverse engineering of software or systems.
Disk checkers can scan operating hard drive.
Disk cleaners can find files that are unnecessary to computer operation, or take up
considerable amounts of space. Disk cleaner helps the user to decide what to delete when
their hard disk is full.
Disk compression utilities can transparently compress/uncompress the contents of a disk,
increasing the capacity of the disk.
Disk defragmenters can detect computer files whose contents are scattered across several
locations on the hard disk, and move the fragments to one location to increase efficiency.
Disk partitions can divide an individual drive into multiple logical drives, each with its own
file system which can be mounted by the operating system and treated as an individual
drive.
Disk space analyzers for the visualization of disk space usage by getting the size for each
folder (including sub folders) & files in folder or drive. showing the distribution of the used
space.
Disk storage utilities
File managers provide a convenient method of performing routine data management
tasks, such as deleting, renaming, cataloging, uncataloging, moving, copying, merging,
generating and modifying data sets.
Hex editors directly modify the text or data of a file. These files could be data or an actual
program.
Memory testers check for memory failures.
Network utilities analyze the computer’s network connectivity, configure network
settings, check data transfer or log events.
Programming Language
As we know, to communicate with a person, we need a specific language, similarly to
communicate with computers, programmers also need a language is called Programming
language.
Before learning the programming language, let's understand what is language?
What is Language?
Language is a mode of communication that is used to share ideas, opinions with each other. For
example, if we want to teach someone, we need a language that is understandable by both
communicators.
[Link]
VIMS EDUCATION INSTITUTE
What is a Programming Language?
A programming language is a computer language that is used by programmers (developers) to
communicate with computers. It is a set of instructions written in any specific language ( C, C++,
Java, Python) to perform a specific task.
A programming language is mainly used to develop desktop applications, websites, and mobile
applications.
Types of programming language
1. Low-level programming language
Low-level language is machine-dependent (0s and 1s) programming language. The processor
runs low- level programs directly without the need of a compiler or interpreter, so the programs
written in low-level language can be run very fast.
Low-level language is further divided into two parts -
i. Machine Language
Machine language is a type of low-level programming language. It is also called as machine code
or object code. Machine language is easier to read because it is normally displayed in binary or
hexadecimal form (base 16) form. It does not require a translator to convert the programs
because computers directly understand the machine language programs.
The advantage of machine language is that it helps the programmer to execute the programs
faster than the high-level programming language.
ii. Assembly Language
Assembly language (ASM) is also a type of low-level programming language that is designed for
specific processors. It represents the set of instructions in a symbolic and human-
understandable form. It uses an assembler to convert the assembly language to machine
language.
The advantage of assembly language is that it requires less memory and less execution time to
execute a program.
2. High-level programming language
High-level programming language (HLL) is designed for developing user-friendly software
programs and websites. This programming language requires a compiler or interpreter to
translate the program into machine language (execute the program).
The main advantage of a high-level language is that it is easy to read, write, and maintain.
High-level programming language includes Python, Java, JavaScript, PHP, C#, C++, Objective C,
COBOL, Perl, Pascal, LISP, FORTRAN, and Swift programming language.
[Link]
VIMS EDUCATION INSTITUTE
A high-level language is further divided into three parts -
i. Procedural Oriented programming language
Procedural Oriented Programming (POP) language is derived from structured programming and
based upon the procedure call concept. It divides a program into small procedures
called routines or functions.
Procedural Oriented programming language is used by a software programmer to create a
program that can be accomplished by using a programming editor like IDE, Adobe Dreamweaver,
or Microsoft Visual Studio.
The advantage of POP language is that it helps programmers to easily track the program flow
and code can be reused in different parts of the program.
Example: C, FORTRAN, Basic, Pascal, etc.
ii. Object-Oriented Programming language
Object-Oriented Programming (OOP) language is based upon the objects. In this programming
language, programs are divided into small parts called objects. It is used to implement real-
world entities like inheritance, polymorphism, abstraction, etc in the program to makes the
program resusable, efficient, and easy-to-use.
The main advantage of object-oriented programming is that OOP is faster and easier to execute,
maintain, modify, as well as debug.
Example: C++, Java, Python, C#, etc.
iii. Natural language
Natural language is a part of human languages such as English, Russian, German, and Japanese.
It is used by machines to understand, manipulate, and interpret human's language. It is used by
developers to perform tasks such as translation, automatic summarization, Named Entity
Recognition (NER), relationship extraction, and topic segmentation.
The main advantage of natural language is that it helps users to ask questions in any subject and
directly respond within seconds.
3. Middle-level programming language
Middle-level programming language lies between the low-level programming language and
high-level programming language. It is also known as the intermediate programming language
and pseudo-language.
A middle-level programming language's advantages are that it supports the features of high-level
programming, it is a user-friendly language, and closely related to machine language and human
language.
Example: C, C++, language
[Link]
VIMS EDUCATION INSTITUTE
Most commonly used Programming Language
As we all know, the programming language makes our life simpler. Currently, all sectors (like
education, hospitals, banks, automobiles, and more ) completely depend upon the programming
language.
There are dozens of programming languages used by the industries. Some most widely used
programming languages are given below -
1. Python
Python is one of the most widely used user-friendly programming languages. It is an open-source
and easy to learn programming language developed in the 1990s. It is mostly used in Machine
learning, Artificial intelligence, Big Data, GUI based desktop applications, and Robotics.
Advantages
o Python is easy to read, easy to understand, and easy to write.
o It integrates with other programming languages like C, C++, and Java.
o Python executes code line-by-line, so it is easy for the programmer to find the error that
occurred in the code.
o Python is platform-independent means you can write code once and run it anywhere.
Disadvantages
o Python is not suitable for developing mobile applications and games.
o Python works with the interpreter. That's why it is slower than other programming
languages like C and C++.
[Link]
VIMS EDUCATION INSTITUTE
2. Java
Java is a simple, secure, platform-independent, reliable, architecture-neutral high-level
programming language developed by Sun Microsystems in 1995. Now, Java is owned by Oracle.
It is mainly used to develop bank, retail, information technology, android, big data, research
community, web, and desktop applications.
Advantages
o Java is easy to write, compile, learn, and debug as compared to other programming
languages.
o It provides an ability to run the same program on different platforms.
o It is a highly secured programming language because in java, there is no concept of
explicit pointers.
o It is capable of performing multiple tasks at the same time.
Disadvantages
o Java consumes more memory and slower than other programming languages like C or
C++.
o It does not provide a backup facility.
[Link]
VIMS EDUCATION INSTITUTE
3. C
C is a popular, simple, and flexible general-purpose computer programming language. Dennis
M Ritchie develops it in 1972 at AT&T. It is a combination of both low-level programming
language as well as a high-level programming language. It is used to design applications like Text
Editors, Compilers, Network devices, and many more.
Advantages
o C language is easy to learn.
o It is fast, efficient, portable, easy to extend, powerful, and flexible programming
language.
o It is used to perform complex calculations and operations such as MATLAB.
o It provides dynamic memory allocation to allocate memory at the run time.
Disadvantages
o In the C programming language, it is very difficult to find the errors.
o C does not support the concepts of constructors, destructors, abstraction, polymorphism,
encapsulation, and namespace like OOPs.
[Link]
VIMS EDUCATION INSTITUTE
4. C++
C++ is one of the thousands of programming languages that we use to develop software. C++
programming language is developed by Bjarne Stroustrup in 1980. It is similar to the C
programming language but also includes some additional features such as exception handling,
object-oriented programming, type checking, etc.
Advantages
o C++ is a simple and portable structured programming language.
o It supports OOPs features such as Abstraction, Inheritance, Encapsulation.
o It provides high-level abstraction and useful for a low-level programming language, and
more efficient for general-purpose.
o C++ is more compatible with the C language.
Disadvantages
o C++ programming language is not secured as compared to other programming languages
like Java or Python.
o C++ cannot support garbage collection.
o It is difficult to debug large as well as complex web applications.
[Link]
VIMS EDUCATION INSTITUTE
5. C#
C# (pronounced as C sharp) is a modern, general-purpose, and object-oriented programming
language used with XML based Web services on the .NET platform. It is mainly designed to
improve productivity in web applications. It is easier to learn for those users who have sufficient
knowledge of common programming languages like C, C++, or Java.
Advantages
o C# is a modern, type-safe, easy, fast, and open-source programming language that is
easily integrated with Windows.
o The maintenance of C# (C sharp) is lower than the C++ programming language.
o C# is a pure object-oriented programming language.
o C# includes a strong memory backup facility. That's why it avoids the problem of memory
leakage.
Disadvantages
o C# is less flexible because it is completely based on Microsoft .Net framework.
o In C#, it is difficult to write, understand, debug, and maintain multithreaded applications.
[Link]
VIMS EDUCATION INSTITUTE
6. JavaScript
JavaScript is a type of scripting language that is used on both client-side as well as a server-side.
It is developed in the 1990s for the Netscape Navigator web browser. It allows programmers to
implement complex features to make web pages alive. It helps programmers to create dynamic
websites, servers, mobile applications, animated graphics, games, and more.
Advantage
o JavaScript helps us to add behavior and interactivity on the web page.
o It can be used to decrease the loading time from the server.
o It has the ability to create attractive, dynamic websites, and rich interfaces.
o JavaScript is a simple, versatile, and lightweight programming language.
o JavaScript and its syntax are easy to understand.
Disadvantage
o JavaScript is completely based on the browser.
o It does not support multiple inheritance.
o It is less secure compared to other programming languages.
[Link]
VIMS EDUCATION INSTITUTE
7. PHP
PHP stands for Hypertext Preprocessor. It is an open-source, powerful server-side scripting
language mainly used to create static as well as dynamic websites. It is developed by Rasmus
Laird in 1994. Inside the php, we can also write HTML, CSS, and JavaScript code. To save php file,
file extension .php is used.
Advantages
o PHP is a more secure and easy-to-use programming language.
o It supports powerful online libraries.
o It can be run on a variety of operating systems such as Windows, Linux, and Mac.
o It provides excellent compatibility with cloud services.
Disadvantages
o PHP is not capable of handling a large number of applications and not suitable for large
applications.
o It is quite difficult to maintain.
[Link]