In this article, we will discuss what is software, how can we define software, how many types of software are there and what are they used for.
Sometimes abbreviated as SW and S/W. Software is the collection of instructions that enable the user to interact with a computer, its hardware, or perform tasks. Without software, most computers would be useless.
For example, without your Internet browser software, you could not surf the Internet or read this page. Without an operating system, the browser could not run on your computer. The picture shows a Microsoft Excel box, an example of a spreadsheet software program.
The software can be of two types: System Software, Application Software.
1) System Software
The system software is the main software that runs the computer. When you turn on the computer, it activates the hardware and controls and coordinates their functioning. The application programs are also controlled by system software. An operating system is an example of system software.
i) Operating System:
An operating system is the system software that works as an interface to enable the user to communicate with the computer. It manages and coordinates the functioning of the hardware and software of the computer. The commonly used operating systems are Microsoft Windows, Linux, and Apple Mac OS X.
Some other examples of system software include:
- BIOS: It stands for the Basic Input-Output System. It is a type of system software, which is stored in Read-Only Memory (ROM) located on the motherboard. However, in advanced computer systems, it is stored in flash memory. BIOS is the first software that gets activated when you turn on your computer system. It loads the drivers of the hard disk into memory as well as assists the operating system to load itself into the memory.
- Boot Program: Boot refers to starting up a computer. When you switch on the computer, the commands in the ROM are executed automatically to load the boot program into memory and execute its instructions. The BIOS program has a basic set of commands that enables the computer to perform the basic input/output instructions to start the computer.
- An assembler: It plays the role of a converter as it receives basic computer instructions and converts them into a pattern of bits. The processor uses these bits to perform basic operations.
- A device driver: This system software controls hardware devices connected to a computer. It enables the computer to use the hardware by providing an appropriate interface. The kernel of a Computer’s CPU communicates with different hardware through this software. Operating systems generally come with most of the device drivers. If the operating system does not have a device driver for hardware, you have to install the device driver before using that hardware device.
ii) Language Translators:
Any program written in a high-level language is known as source code. However, computers cannot understand source code. Before it can be run, source code must first be translated into a form that a computer understands – this form is called object code.
A translator is a program that converts source code into object code. Generally, there are three types of translators:
A compiler takes the source code as a whole and translates it into object code all in one go. Once converted, the object code can be run unassisted at any time. This process is called compilation.
Compilers have several advantages:
- Compiled programs run quickly since they have already been translated.
- A compiled program can be supplied as an executable file. An executable file is a file that is ready to run. Since an executable file cannot be easily modified, programmers prefer to supply executables rather than source code.
- Compilers optimise code. Optimised code can run quicker and take up less memory space.
Compilers have several disadvantages:
- Because the source code is translated as a whole, there must be enough memory space to hold the source code, the compiler and the generated object code. There also needs to be temporary working space for the compiler to perform the translation. Modern systems either have enough memory or use virtual memory to hold all the data.
- Compilers do not usually spot errors – the program has to be compiled and run before errors are encountered. This makes it harder to see where the errors lie.
- The source code must be re-compiled every time the programmer changes the program.
- Source code compiled on one platform will not run on another – the object code is specific to the processor’s architecture.
An interpreter translates source code into object code 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 object code is then executed immediately. The process is called interpretation.
Interpreters have several advantages:
- Instructions are executed as soon as they are translated.
- Since instructions are executed once translated, they are not stored for later use. As a result, interpreters require less available memory.
- Errors can be quickly spotted – once an error is found, the program stops running and the user is notified at which part of the program the interpretation has failed. This makes interpreters extremely useful when developing programs.
Interpreters also have several disadvantages:
- Interpreted programs run more slowly as the processor has to wait for each instruction to be translated before it can be executed.
- Additionally, the program has to be translated every time it is run.
- Interpreters do not produce an executable file that can be distributed. As a result, the source code program has to be supplied, and this could be modified without permission.
- Interpreters do not optimise code – the translated code is executed as it is.
Assemblers are the third type of translator. The purpose of an assembler is to translate assembly language into object code. Whereas compilers and interpreters generate many machine code instructions for each high-level instruction, assemblers create one machine code instruction for each assembly instruction
Examples of Translators
Here are some examples of translators per type:
|Compiler||Microsoft Visual StudioGNU Compiler Collection (GCC)Common Business Oriented Language (COBOL)|
|Interpreter||OCamlList Processing (LISP)Python|
|Assembler||Fortran Assembly Program (FAP)Macro Assembly Program (MAP)Symbolic Optimal Assembly Program (SOAP)|
iii) Common Utility Program:
Utility software helps users configure, analyse, optimise and maintain a computer. This software normally consists of small programs which are thought of as part of the operating system (OS) as they often come built-in with the OS. They are usually accessed through the computer’s control panel, control centre, settings or system preferences.
Tasks that utility software may carry out include:
- Backing up and restoring data
- Task scheduling
- Disk defragmentation
Backup and restore
The OS can schedule backups to happen at a specific time and at regular intervals.
Data can be backed up to other external hard disks, magnetic tape, or servers on the internet (cloud backup).
The OS also has to be able to restore the information. When everything on a hard disk is backed up this is known as a full backup. This can take a long time, so it is possible to back up only the data which has changed since the previous backup. This is called an incremental backup.
Most operating systems provide basic task scheduling facilities which can allow you to launch programs and scripts at pre-defined times. For example, you may want to schedule your OS to check for updates on a weekly basis, to launch specific applications when you log on, or to send an email to a particular group every morning.
Task scheduling software has various features, such as:
- The ability to run any program/open file/open shortcut etc. at any time you set
- The scheduling software can give you an alert message before executing the job
- The software will allow you to set time in seconds, minutes, hours, days or months and add multiple tasks to a list
A hard disk saves files as fragments on a disk. Even large disks may not have a single contiguous empty space large enough to hold a big file. The file is therefore saved as different parts, or fragments, in various locations on the disk. This means that the drive head may need to move many times when seeking fragments and will take longer to read a file.
Defragmentation moves file fragments so they are next to each other on the disk. This reduces the time needed to read files.
A computer virus is a malicious software program designed to copy itself over and over again and attach itself to other programs.
Computer viruses attack the data and programs stored on your computer. It is important to have antivirus software installed to help prevent data loss or corruption.
Antivirus software is responsible for detecting and blocking or quarantining computer viruses. Antivirus software needs to be updated regularly as new viruses are created all the time. Most modern antivirus software will do this automatically at scheduled times.
2) Application Software:
Application software is a set of programs designed to perform a specific task. It does not control the working of a computer as it is designed for end-users. A computer can run without application software. Application software can be easily installed or uninstalled as required. It can be a single program or a collection of small programs. Microsoft Office Suite, Adobe Photoshop, and any other software like payroll software or income tax software are application software. As we know, they are designed to perform specific tasks. Accordingly, they can be of different types such as:
- Word Processing Software: This software allows users to create, edit, format, and manipulate text and more. It offers lots of options for writing documents, creating images, and more. For example, MS Word, WordPad, Notepad, etc.
- Spreadsheet Software: It is designed to perform calculations, stores data, creates charts, etc. It has rows and columns, and the data is entered in the cell, which is an intersection of a row and column, e.g., Microsoft Excel.
- Multimedia Software: These software are developed to perform editing of video, audio, and text. It allows you to combine texts, videos, audio, and images. Thus, you can improve a text document by adding photos, animations, graphics, and charts through multimedia software. For example, VLC player, Window Media Player, etc.
- Enterprise Software: These software are developed for business operational functions. It is used in large organizations where the quantum of business is too large. It can be used for accounting, billing, order processing and more. For example, CRM (Customer Relationship Management), BI (Business Intelligence), ERP (Enterprise Resource Planning), SCM (Supply Chain Management), customer support system, and more.
3) Programming Software:
It is a set or collection of tools that help developers in writing other software or programs. It assists them in creating, debugging, and maintaining software or programs or applications. We can say that these are facilitator software that helps translate programming languages such as Java, C++, Python, etc., into machine language code. So, it is not used by end-users. For example, compilers, linkers, debuggers, interpreters, text editors, etc. This software is also called a programming tool or software development tool.
Some examples of programming software include:
- Eclipse: It is a java language editor.
- Coda: It is a programming language editor for Mac.
- Notepad++: It is an open-source editor for windows.
- Sublime text: It is a cross-platform code editor for Linux, Mac, and Windows.
Examples and types of software
Below is a list of the different kinds of software a computer may have installed with examples of related programs. The table below includes a program column to clarify any software that is not a program.
|Antivirus||AVG, Housecall, McAfee, and Norton.||Yes|
|Audio / Music program||iTunes and WinAmp.||Yes|
|Communication||Discord, Skype, and Ventrilo||Yes|
|Database||Access, MySQL, and SQL.||Yes|
|Device drivers||Computer drivers.||No|
|Outlook and Thunderbird.||Yes|
|Game||Madden NFL football, Quake, and World of Warcraft.||Yes|
|Internet browser||Firefox, Google Chrome, and Internet Explorer.||Yes|
|Movie player||VLC and Windows Media Player.||Yes|
|Operating system||Android, iOS, Linux, macOS, and Windows.||No|
|Photo / Graphics program||Adobe Photoshop and CorelDRAW.||Yes|
|Programming language||C++, HTML, Java, Perl, PHP, Python, and Visual Basic.||Yes|
|Simulation||Flight simulator and SimCity.||Yes|
|Utility||Compression, Disk Cleanup, encryption, registry cleaner, and screen saver.||No|
|Word processor||Microsoft Word||Yes|
I hope guys this article will help you. If you have any suggestions, please contact via the contact us page or you can drop your comment below.