Types and Functions of Computer Software
Types and Functions of Computer Software
The computer consists of Hardware and Software. The hardware is the physical parts of computers that
can be touched and felt whereas software is the logical parts.
Our computer system performs according to the types of software installed in it. Software is a collection
of instructions or programs that enable users to interact with the computer and have the computer
perform specific tasks for them. Without software, the computer would be useless.
For example, without your internet browser software, you would be unable to browse the Internet, and
without software called an operating system, the browser would not be able to run on your computer.
Everything that runs on a computer from an operating system to a diagnostic tool, games, applications,
etc. can be defined as software. Even the malware that is intentionally developed to damage computers
and/or disrupt other software is also defined as software.
In a computer system, the software is basically a set of instructions or commands that tells a computer
what to do. Or in other words, the software is a computer program that provides a set of instructions to
execute a user’s commands and tell the computer what to do.
Types of Software
Computer software is classified into two main categories: System software and Application software
A. System Software
System software is software that directly operates the computer hardware and provides the basic
functionality to the users as well as to the other software to operate smoothly. Or in other words,
system software basically controls a computer’s internal functioning and also controls hardware devices
such as monitors, printers, and storage devices, etc. It is like an interface between hardware and user
applications, it helps them to communicate with each other because hardware understands machine
language(i.e. 1 or 0) whereas user applications are work in human-readable languages like English,
Hindi,German, etc. so system software converts the human-readable language into machine language
and viceversa.
1. Operating System: It is the main program of a computer system. When the computer system ON it is
the first software that loads into the computer’s memory. An Operating System (OS) is an interface
between a computer user and computer hardware.
Also, an operating system is a system software that is responsible for controlling and coordinating
computer hardware and providing easy interface to application programmers and users by hiding
underlying complexities of computer hardware. Basically, it manages all the resources such as memory,
CPU, printer, hard disk, etc., and provides an interface to the user, which helps the user to interact with
the computer system.
An operating system is a software which performs all the basic tasks like file management, memory
management, process management, handling input and output, and controlling peripheral devices
such as disk drives and printers.
It also provides various services to other computer software. Examples of operating systems are Linux,
Apple macOS, Microsoft Windows, etc.
2. Utility Software: This type of software is used to support the computer infrastructure. It is designed
to analyze, configure, optimize and maintains the system, and control computer resources.
Operating systems typically contain the necessary tools for this, but separate utility programs can
provide improved functionality. For example, antivirus, disk fragmentation, memory tester, disk repair,
disk cleaners, registry cleaners, disk space analyzer, etc.
• Antivirus software, as the name suggests, helps to protect a computer system from viruses
and other harmful programs. A computer virus is a computer program that can cause damage
to a computer's software, hardware or data. It is referred to as a virus because it has the
capability to replicate itself and hide inside other computer files.
• Backup software helps in the creation of a backup of the files on your computer. Most
computer systems use a hard disk drive for storage. While these are generally very robust,
they can fail or crash, resulting in costly data loss. Backup software helps you copy the most
important files to another storage device, such as an external hard disk. You can also make an
exact copy of your hard disk.
3. Language translators: Language translators are software programming tools that convert one type of
code into another. They translate a high-level programming language into machine code that the central
processing unit (CPU) can comprehend & vice-versa.
i. Compilers > In a single session, compilers convert high-level language code to machine
(object) code. Compilers take a long time to run because they must translate high-level code
into lower-level machine language all at once and then save the executable object code to
memory.
ii. Interpreters > An interpreter, like a compiler, translates code but reads it and instantly
executes it, making it initially faster than a compiler. As a result, interpreters are frequently
employed as debugging tools in software development tools since they can execute a single
line of code at a time.
iii. Assembler > An assembler is a program that converts assembly language code into machine
code. It functions as a compiler for the assembly language, but it can also be used
interactively like an interpreter. Remember, assembly language is a low-level language.
4. Device Driver: A device driver is a program or software that controls a device and helps that device
to perform its functions. Every device like a printer, mouse, modem, etc. needs a driver to connect with
thecomputer system eternally. So, when you connect a new device with your computer system, first you
need to install the driver of that device so that your operating system knows how to control or manage
that device.
B. Application Software
Software that performs special functions or provides functions that are much more than the basic
operation of the computer is known as application software. Or in other words, application software is
designed to perform a specific task for end-users. It is a product or a program that is designed only to
fulfill end-users’ requirements. It includes word processors, spreadsheets, database management,
inventory, payroll programs, etc.
1. Packaged Software:
Packaged software that is often called software package is a commercial program that’s obtainable to
the general public and sold to them at explicit costs. Package software is developed by computer
technicians. it is the compilation of programs which are grouped together in order to provide publicly
with different tools in the same group. It can’t be modified or altered even if there is need. The essential
definition says that, once several software package are grouped during a bundle and supply solutions
to people, then it gets the specified name.
The best example of package software is Microsoft Office, that has many tools grouped together for
example Office, Access, Excel, Note and Power Point.
Advantages:
▪ Saves effort, money and time for solving problem.
▪ They are well tried and tested programs provided from reputed software vendors.
▪ Easily available.
▪ User friendly.
Disadvantages:
▪ May not be suitable for specific task.
▪ There is less control over the quality of works and service of the software.
▪ Some packages need regular updates which may be costly.
2. Tailored Software
Tailored software, also known as custom software, refers to software that is specifically designed and
developed to meet the unique needs and requirements of a particular individual or organization.
Tailored software is typically created to address specific business needs that off-the-shelf software
cannot provide.
The development of tailored software involves the process of analyzing, designing, coding, testing, and
maintaining software applications that are customized to meet the specific needs of the client. The
software is developed by a team of software developers, who work closely with the client to ensure
that the software meets their needs and requirements.
Tailored software can provide a wide range of benefits, including increased efficiency, improved
productivity, and better decision-making. It can also provide a competitive advantage by allowing
businesses to differentiate themselves from their competitors by offering unique features and
functionalities that are not available in off-the-shelf software.
However, tailored software can also be more expensive than off-the-shelf software, as it requires more
time and resources to develop. Additionally, maintaining and updating tailored software can be more
complex, as it is unique to the client's business and may require specialized knowledge to maintain.
• Device Management (I/O management ) : There are various input and output
devices. An operating system manages input/output devices, including keyboards,
mice, printers, and disk drives. An Operating System manages device communication
via their respective drivers. It receives the requests from these devices, performs a
specific task, and communicates back to the requesting process.
• Error Detection: From time to time, the operating system checks the system for any
external threat or malicious software activity. It also checks the hardware for any type
of damage. This process displays several alerts to the user so that the appropriate
action can be taken against any damage caused to the system.
• Job Scheduling: In a multitasking OS where multiple programs run simultaneously,
the operating system determines which applications should run in which order and
how time should be allocated to each application.
• Control over system performance − Recording delays between request for a service
and response from the system.
• Job accounting − Keeping track of time and resources used by various jobs and users.
• Error detecting aids − Production of dumps, traces, error messages, and other
debugging and error detecting aids.
• Coordination between other software’s and users − Coordination and assignment
of compilers, interpreters, assemblers and other software to the various users of the
computer systems.
• Booting process – The process of starting or restarting a computer is referred to as
Booting. Cold booting occurs when a computer is totally turned off and then turned
back on. Warm booting occurs when the computer is restarted. The operating system
(OS) is in charge of booting the computer.
2. Multiprogramming OS
➢ It is an ability of an operating system that executes more than one program using a
single processor machine.
➢ More than one task or program or jobs are present inside the main memory at one
point of time.
➢ Multitasking is commonly used to keep the cpu busy while the currently running
program is doing I/O operations. Compared to other executing instructions, I/O
operations are extremely slow.
➢ Buffering and spooling can overlap I/O and CPU tasks to improve the system
performance but it has some limitations that a single user cannot always keep CPU
or I/O busy all the time.
To increase resource utilization, multiprogramming approaches.
The OS could pick and start the execution of one of the jobs in memory, whenever the jobs
does not need CPU that means the job is working with I/O at that time the CPU is idle at
that time the OS switches to another job in memory and CPU executes a portion of it till
the job issues a request for I/O and so on.
Let’s P1 and P2 are two programs present in the main memory. The OS picks one program
and starts executing it.
During execution if the P1 program requires I/O operation, then the OS will simply switch
over to P2 program. If the p2 program requires I/O then again it switches to P3 and so on.
If there is no other program remaining after P3 then the CPU will pass its control back to
the previous program.
Advantages of Multiprogramming OS
Disadvantages of Multiprogramming OS
3. Multitasking OS
A multitasking operating system, on the other hand, is designed to allow a
single user to run multiple tasks or programs simultaneously. This is
accomplished through a similar mechanism to time-sharing, with the
operating system rapidly switching between different tasks in order to give
the appearance of parallel processing.
Advantage of Multiprocessing OS
• Increased reliability: Processing tasks can be spread among numerous processors in the
multiprocessing system. This promotes reliability because if one processor fails, the task can be
passed on to another.
• Increased throughout: More work could be done in less time as the number of processors increases.
• The economy of scale: Multiprocessor systems are less expensive than single-processor computers
because they share peripherals, additional storage devices, and power sources.
Disadvantages
• Multiprocessing operating systems are more complex and advanced since they manage many CPUs at
the same time.
A real-time system is defined as a data processing system in which the time interval
required to process and respond to inputs is so small that it controls the environment. This
time interval is called response time. So in this method, the response time is very less as
compared to online processing.
Real-time systems are used when there are time requirements that are very strict like
missile systems, air traffic control systems, robots, etc.
Advantages of Real-Time OS
• It provides more output from all the resources as there is maximum
utilization of systems.
• It provides the best management of memory allocation.
• These systems are always error-free.
• These operating systems focus more on running applications than those in
the queue.
• Shifting from one task to another takes very little time.
Disadvantages of Real-Time OS
• System resources are extremely expensive and are not so good.
• The algorithms used are very complex.
• Only limited tasks can run at a single time.
• In such systems, we cannot set thread priority as these systems cannot
switch tasks easily.
Examples of Real-Time Operating Systems are: Scientific experiments, medical imaging
systems, industrial control systems, weapon systems, robots, air traffic control systems,
etc.
Mobile OS
A mobile OS is an operating system for smartphones, tablets, and PDA’s. It is a platform
on which other applications can run on mobile devices.
Advantages of Mobile OS
• It provides ease to users.
Disadvantages of Mobile OS
• Some of mobile operating systems give poor battery quality to users.
• Some of the mobile operating systems are not user-friendly.
Computer Programming Language
A programming language is a set of instructions that can be used to interact with and control
a computer.
These languages are used to design websites, create apps, develop operating systems,
control spacecraft, and analyze data.
1. Machine Language
1. The machine language, also known as low-level language, does not need to be
translated since it is already written in binary, or 0s and 1s, which the computer
system can read and understand. The initial generation of computers makes
tremendous use of this language.
2. machine language programs and code run rapidly than other language.
3. A translator is not necessary for machine language.
4. The CPU directly executes the machine language or low-level instructions.
5. Machine level language allows for precise control over the behavior of the
computer, making it suitable for certain types of programming, such as operating
systems, device drivers, and firmware.
6. Machine level language provides direct access to the hardware of the computer,
which can be useful for specialized applications that require precise control of
hardware features.
1. The main drawback of machine language is how difficult it is to develop, learn, and
execute codes and algorithms.
2. It is pretty time-consuming to write and fix flaws and mistakes in codes and
programs.
3. It is difficult to change.
4. Machine level language is very difficult to read and write because it requires a
detailed understanding of the computer's hardware architecture and instructions.
5. Programs written in machine level language are tied to the specific hardware
architecture of a computer and are not easily portable to other systems.
2. Assembly Language
➢ Assembly language is a middle-level language.
➢ It consists of a set of instructions in a specific format called commands. It uses symbols to
represent field of instructions.
➢ The bits of machine language are replaced by numbers and English commands.
➢ It is very close to machine level language. Before assembly code is run by the computer, it
is assembled by an assembler. This converts the code back into the 1s and 0s of machine
language that the computer can understand.
➢ Examples include ADA, PASCAL, etc.
➢ It is in human-readable format and takes lesser time to write a program and debug it.
However, it is a machine dependent language.
Assembly Language Machine Code
1. Easier to learn and use: High-level languages are designed to be more user-friendly They
are similar to English and use English vocabulary and well-known symbols
2. Greater productivity: High-level languages allow developers to write programs more
quickly and with fewer errors than low-level languages, which require more manual
coding and can be more prone to bugs.
3. Platform independence: High-level languages are typically designed to be platform-
independent, meaning that the same code can be run on multiple operating systems and
hardware configurations without the need for significant modifications.
4. They are problem-oriented rather than 'machine'-based.
5. Code reusability: High-level languages make it easier to reuse code across multiple
projects, reducing development time and improving code quality.
The scope of software applications refers to the specific functions and features of the software: