Computer Software tells the computer what to do and how to do. A computer performs different operations according to the instructions of software. Software is developed in a computer programming language. Computer Software, or just Software, is a set of machine-readable instructions or code that directs a computer’s processor to perform specific operations. Computer hardware means, the physical objects (processor and related devices) that carry out the instructions. Computer hardware and software require each other for smooth functioning of a Computer.
Software is a general term. It can refer to all computer instructions in general, or to any specific set of computer instructions. Computer software is a set of programs, procedures, functions, associated data and/or its documentation. It is combination of both machine instructions means the binary code that the processor understands and source code means human-understandable (High level language) instructions that must be turn into machine code by compilers or interpreters before being executed.
In order to communicate with each other, we use natural languages like Telugu, Hindi, English, Tamil, Marathi, Gujarati etc. In the same way programming languages of one type or another are used in order to communicate instructions and commands to a computer for solving problems. Learning a programming language requires learning the symbols, words and rules of the language.
What is Machine code or machine language?
The binary code or instructions that the processor Understands. They can directly be executed by a processor. Usually, they are 1s and 0s. Their order tells the computer what to do.
Program and Programming:
A computer can neither think nor make any judgment on its own. Also it is impossible for any computer to independently analyse a given data and follow its own method of solution. It needs a program to tell it what to do. A program is a set of instructions that are arranged in a sequence that guides the computer to solve a problem.
- The process of writing a program is called Programming. Programming is a critical step in data processing.
- If the system is not correctly programmed, it delivers information results that cannot be used may be improper or wrong. There are two ways in which we can acquire a program or software.
- One is to purchase an existing program, which is normally called as packaged software and the other is to prepare a new program in which case it is called customised software.
- Software or programs is usually written in high-level programming languages that are easier and more efficient for humans to use (closer to natural language) than machine language that is called as source code.
- High-level languages are compiled or interpreted into machine language that is called as object code. Certain softwares may also be written in an assembly language. Assembly language must be assembled into object code by using an assembler.
Functions of Compilers and Interpreters in software development:
- Compilers and Interpreters can be considered as Language Translator, it is one type of system software or utility which translates a computer program written by a user (High level language) into a machine understandable form. This conversion is done by either a compiler or an interpreter. A compiler makes the conversion just once, while an interpreter typically converts it every time a program is executed.
Compiler: A Compiler transforms a computer program written by a user using computer programming language (High level language) called as the source language or source code into the target language in a single instance, often having a binary form known as object code . A compiler makes the conversion just once.
Example: C programs executes based on C Compiler
Interpreter: An Interpreter transforms a computer program written by a user using computer programming language (High level language) called as the source language or source code into the target language line by line, while an interpreter typically converts it every time a program is executed.
Example: PHP programs executes based on Interpreter
In computer programming, source code is a text file version of a computer program or software that contains instructions that the computer follows to do something. Source code is written in a programming language which a human can read and change. A large program may contain many different source code files that all work together.
Computer software can be broadly classified into two categories.
- System Software
- Application Software
1.1 System Software:
System software is computer software designed to operate the computer hardware, to provide basic functionality, and to provide a platform for running application software. System software consists of a group of programs that control the operations of a computer equipment including functions like managing memory, managing peripherals, loading, storing, and is an interface between the application programs and the computer. Examples for system software include operating systems (MS-DOS, WINDOWS, LINUX and UNIX etc), device drivers, utilities, Compilers, Debuggers etc.
Here is the brief description and uses of System Software are explained below.
An operating system (OS) is also called as system software. It is a collection of software that manages computer hardware resources and provides common services for computer programs. The operating system is an essential component of the system software in a computer system. Application programs usually require an operating system to function. An operating system manages a computer’s resources very effectively, takes care of scheduling multiple jobs for execution and manages the flow of data and instructions between the input/output units and the main memory.
A driver is a small piece of software that tells the operating system and other software how to communicate with a piece of hardware attached to a computer. A driver typically communicates with the device through the computer bus or communications subsystem to which the hardware connects. When a program invokes a routine in the driver, the driver issues commands to the device. Once the device sends data back to the driver, the driver may invoke routines in the original calling program. Drivers are hardware-dependent and operating-system-specific. A device driver simplifies programming by acting as translator between a hardware device and the applications or operating systems that use it.
Example: All printers come accompanied with drivers to install that tell the operating system exactly how to print information on the page. Sound card drivers tell your software exactly how to translate data into audio signals that the card can output to a set of speakers. The same applies to video cards, keyboards, monitors, etc.
Utility software is system software designed to help analyze, configure, optimize or maintain a computer. Utility software usually focuses on how the computer infrastructure (including the computer hardware, operating system, application software and data storage) operates. Due to this focus, utilities are often rather technical and targeted at people with an advanced level of computer which allows users to do things like creating text documents, playing video games, listening to music or viewing websites.
Example: Here some Utilities with their uses.
- Anti-virus utilities scan for computer viruses
- Disk checkers can scan operating hard drive.
- Memory testers check for memory failures.
- Network utilities analyze the computer’s network connectivity, configure network settings, check data transfer or log events.
- Registry cleaners clean and optimize the Windows registry by removing old registry keys that are no longer in use.
- System monitors for monitoring resources and performance in a computer system.
A compiler transforms a computer program written by a user using computer programming language (High level language) called as the source language or source code into the target language in a single instance, often having a binary form known as object code . A compiler makes the conversion just once.
Debugging is the process of locating and fixing of bugs (errors) in computer program code. To debug a program or hardware device is to start with a problem, check the source of the problem, and then fix it. When someone says they’ve debugged a program or “worked the bugs out” of a program, they fixed it so that the bugs no longer exist. Debugging is a necessary process in almost any new software or hardware development process. Debugging tools (called debuggers) help identify coding errors at various development stages.
Example: Eclipse editor functions by using debugger. Microsoft Visual Studio functions by using debugger.
1.2 Application software:
Application software is written to enable the computer to solve a specific data processing task. A number of powerful application software packages, which does not require significant programming knowledge, have been developed. These are easy to learn and use as compared to the programming languages. Although these packages can perform many general and special functions, Software that can perform a specific task for the user, such as word processing, spreadsheets, Presentation software, Multimedia software database management systems are all examples of general purpose application software.
Types of application software:
Word Processing Software:
The main purpose of this software is to produce documents and making prints of it if we need. MS-Word, Word Pad, Notepad and some other text editors are some of the examples of word processing software.
Database is a collection of related data. The purpose of this software is to organize and manage data. The advantage of this software is that you can change the way data is stored and displayed. MS access, dBase, FoxPro, Paradox, and Oracle are some of the examples of database software.
Spread Sheet Software:
The spread sheet software is used to maintain budget, financial statements, grade sheets, and sales records. The purpose of this software is organizing numbers. It also allows the users to perform simple or complex calculations on the numbers entered in rows and columns. MS-Excel is one of the examples of spreadsheet software.
This software is used to display the information in the form of slide show. The three main functions of presentation software is editing that allows insertion and formatting of text, including graphics in the text and executing the slide shows. The best example for this type of application software is Microsoft PowerPoint.
Media players and real players are the examples of multimedia software. This software will allow the user to create audio and videos. The different forms of multimedia software viz. audio converters, players, burners, video encoders and decoders are available.
Desktop Publishing Package:
Desktop Publishing Packages are very popular in Indian context. Newer publishing packages also provide certain in built formats such as brochures, newsletters, flyers etc., which can be used directly. Already created text can be very easily put in these packages, so are the graphics placements. Many DTP packages for English and languages other than English are available. Microsoft Publisher, PageMaker, Corel Ventura, Quark Express are few popular names.
One of the very interesting information providers which will become popular in India also is Automap road atlas by Microsoft. This package may provide city-to-city driving instructions and maps. You may also get the best route and calculate the time it will take.
Suites are a set of packages sold as a group package mainly for the business user. The suite package includes programs for Word-processing, Electronic Spreadsheet, Databases, and Presentation Graphics software and may be mail software. For example, Microsoft Office Professional for Windows includes programs as Microsoft Word, Microsoft Excel, Microsoft Power point and Microsoft Access, and a license for Microsoft Mail etc. The word-processing, spreadsheet, and presentation-graphics software interfaces in a suite are wellintegrated allowing easy data transfer among these applications. Today there is a growing family of Office-compatible products, which will be included in suites. In the fast developing software era the list discussed above cannot be complete. Please refer to latest Personal Computer journals for most recent software trends.