Software

Contents :

  • Concept of Software.
  • Relationship Between Hardware and Software and its Features.
  • Types of Software.
  • Types of System Software.
  • Types of Translators are Available Presently.
  • Types of Application Software.
  • Difference between System Software & Application Software.

What is Software ?


Software is the planned sequential instructions which required for processing the input data and transform it into information. So, it makes the working of the computer meaningful.
A Program is a set of instructions that performs a specific task. Such program as single or in a group is termed as software. These instructions help the computer to process the input data and produce the desired output results.
Hardware and software together make a computer system complete. Either of them singularly, is of no use. It is the software which makes the computer alive or usable. Both software and hardware helps the computer to perform functions like storage, retrieval and solving different types of problems.

Relationship between Hardware and Software :


Hardware and Software are two vital components of a computer system which make it a complete system. Each without the other is incomplete and cannot survive on its own. The computer without software is just a metal box. One can store, retrieve and solve different types of problems only by using the software. A user friendly environment is created with the help of the software for software development. The set of instructions, present in the software, develop the arithmetic and logical capabilities of the hardware units of the system to achieve optimal performance.
In order to achieve optimum output, hardware and software should always work collectively. Each on its own has no value as they are dependent on each
other.
For example, a cassette player and the cassettes available in the market are hardware and the songs recorded in the cassette are the software. In order to listen to a song, it requires recording in the cassette first and then it is to be mounted in a cassette player to be played. Likewise, in order to get a work done on computer, the software has to be loaded onto the hardware and then implemented.

The above Example brings about the Following Features of the Relationship Between Hardware and Software :


  • Both hardware and software are required for completion of a computer system job as they  complement each other.
  • The same hardware can store different software for performing different types of jobs just like various songs can be recorded and played on a single cassette player.
  • Hardware is a one-time expenditure except for upgrades like increasing main memory and hard disk capacities or adding speakers, modems, etc. On the other hand, software is a continual expenditure.

Types of Software

RELATED TOPICS :


Types of Software :


The Software Types used by the computer can be classified into two categories:
                                 Types of Software

A) System Software :


System software is software which is designed to operate and control the hardware of computer system. It is also called as system packages. A package is computer application consists of single or a group of programs and performs particular task.
System software contains a group of program, languages and documentation for the use and is normally provided by the manufacturer with computer system (whenever the user purchases the computer).
Programs which are a part of the system packages or software, allow the users to communicate with the machine in an easy manner and they can also efficiently use the resources of the hardware.

System software is attached to computer system permanently and permits programmer to perform routine tasks. 

System software improves resource utilization and provides support to the following :
  1. It provides the environment for running of other software.
  2. It communicates with peripheral devices (such as printers, disk and tape, etc.).
  3. Other software development.
  4. Supervise the use of different hardware resources such as memory, CPU, etc.

Some common examples of system software are as below :
  1. Operating System (such as Windows, Linux, UNIX, Android, etc.).
  2. Programming Language Translators (like Compilers, Assemblers and Interpreters).
  3. Communications Software (such as File Transfer Protocol (FTP), E-mail, etc.).
Various System Software :

1) Utility Programs : 
Utility software refers to the type of system software which helps in analysis, configuration, optimisation and maintenance of the computer. An individual piece of utility software is called a utility or tool.
Utility software is very much unlike application software which helps users in creation of text documents, playing games, listening to music or surfing the web. These are solely user or output oriented functionalities. However, utility software concentrates on the operation of the computer infrastructure.

Examples of utility software :

i) Virus Scanner : 
This protects the system from Trojans and viruses.

ii) Disk Defragmenter : 
This speeds up the hard disk.

2) Library Programs : 
These are collection of resources which help in software development like pre-written codes and subroutines.

The code and data contained in the library programs provide service to other programs like interface (look and feel), printing, network code and even the graphic engines of computer games. The reason that all Microsoft Office programs have the same look and feel is because of the common graphical user interface libraries. Even in the development of computer games, the developer buys graphical libraries for faster development of a good looking game that runs on the specific hardware.
For example, Battlefield 3 and Need for Speed both use the Frostbite engine.

3) Translator Software : 
Translator is system software that translates high-level language (like C and C++) into low-level language (like machine languages and assembly language). The input to translator is called source program and the output generated is called the target program. 

There are three types of translators are available presently.

i) Assembler :
An assembler is a program which translates computer instructions (combination of mnemonics) written in assembly language into machine instructions (combination of binary digits), so that computer can perform its basic operations.
An assembler is a program which takes an assembly language program
(source program) as an-input and generates machine language program (object program) as an output along with information for the loader. Macros, assembler directives and instructions are included in assembler programs.

An assembler performs four basic steps which may be enumerated as under :
i) Finds out the information required for performing a given task.
ii) Analyse and conceptualize appropriate data structures to hold and manipulate information.
iii) Finds out the processes required for information gathering and maintenance.
iv) Recognizes the processing steps necessary for implementation of each identified task.

ii) Interpreter : 
An interpreter is a program that executes the instruction written in high-level language (like C, Pascal, COBOL, etc.) 
An interpreter is a program that :
a) Executes the source code directly,
b) Translates source code to intermediate code and immediately executes it,
c) Explicitly implements stored precompiled code prepared by a compiler which is an element of the interpreter system.

An interpreter processes a source program written in a high-level language like compiler but it executes a source program directly without converting it to machine code. When source program has been converted into internal form, interpreter executes all the operations identified by the program. At this moment, an looks like a set of subroutines, whose execution is carried out by the internal form of program.
This process is faster than compiling process (translation of the source program into machine code). But, the execution of translated program by compiler is much faster than that of the interpreter. So, an interpreter is normally not used when the speed of execution is essential. The interpreter may be a good option, in case the speed of translation is important, while the execution speed of translated program remains short.

iii) Compiler : 
A compiler is a system program that converts any program written in high-level language (source program) into program written in machine language (machine program). Examples of source languages are C, Pascal, COBOL, etc.
It takes much memory space as well as long execution time to find the errors and limitations present in the program.


B) Application Software :


Application software is a program or group of programs designed to allow users to perform tasks or activities for particular applications. This software is also termed as application packages.
For example, a payroll package used by an organisation that produces the pay slips of workers every month.
Usually, application software are design to carry out the general purpose function of production schedule, general ledger and general accounting packages. Development of these software is constantly increasing due to the huge demand of general purpose software. Special purpose software is also developed simultaneously to cater to specific functional areas as banking, hospital administration, insurance, manufacturing, etc.

Some Common Example of Application Software are as below :
  1. Microsoft office suite which includes word processing, spreadsheet, database, presentation and email applications.
  2. Graphics suits such as Adobe creative suite include applications for creating and editing images.
  3. Sony Audio Master suite is used for audio production.
Types of Application Software :

There are two categories of Application software :

1) Proprietary Software : 
The specified or unique necessities of the businesses are addressed using the proprietary application software. A software vendor or the people handling the organisation's information system can develop this type of software.

2) Off-the-Shelf Software : 
The vendors or the developers develop the off-the-Shelf software and one (organisations) can purchase, lease or rent from them.

C) Programming Software :

While application software is designed for end-users, and system software is designed for computers or mobile devices, programming software is for computer programmers and developers who are writing code. These are programs that are used to write, develop, test, and debug other software programs. It’s helpful to think of these programs as a translator of sorts: they take programming languages like Laravel, Python, C++, and more and translate them into something a computer or phone will understand. 

D) Driver Software :

This software is often considered to be a type of system software. Driver software operates and controls devices that are plugged into a computer. These drivers make it possible for devices to perform their necessary functions. A very good (and practical) example of this is your printer. When you are first setting up your printer to work with your computer, you have to install software to connect the two so that they communicate and print anything you need. 

Types of Software

Difference between System Software & Application Software :


Basis

System Software

Application Software

Convenience

Provides ease to application programmers as well as computer users.

Takes the help of the system software to interface for its implementation.

Effort

 

Enables application software to run on computer with minimum effort.

The effort required for implementation is dependent on system software and complexity of the application.

Development

Development of system software is a difficult activity which requires vast knowledge and adequate specialized training in computer.

Development of application software is relatively easier and can be done in-house by internal professionals.

Provided by

System software is provided by the system manufacturers.

 

 

Application software either can be developed by organisation internally or can be purchased from vendor.

Example

 

Operating System (like Windows 8, Linux, Android, etc.), utility programs, etc.

CorelDraw, Adobe Photoshop, MS Word, etc.