Software and Types of Software
Software and Types of Software – Important for PGT /TGT CS exam – Here are the notes on Topic – Software and Types of Software . These notes are very important for various TGT / PGT Computer science recruitment exam conducted by HPSC , KVS , NVS , DSSSB etc.
Table of Content
What is Software ?
Software is a set of programs (sequence of instructions) that allows the users to perform a well-defined function or some specified task.
Software is responsible for directing all computer-related devices and instructing them regarding what and how the task is to be performed. Software is used to control a computer.It is the opposite of hardware, which describes the physical aspects of a computer. Software is a generic term used to refer to applications, scripts and programs that run on a device.
ऐसे program का समूह जो संचार उपकरण को क्रियाशील बनाते हैं, उनको software कहते हैं जसै कि Windows Operating System , पेंटिगं software, प्रेजेंटेशन software, ऑफिस software आदि ।
Types of Software
The two main categories of software are application software and system software.
System software is a computer program that helps the user to run computer hardware or software and manages the interaction between them.System software is designed to run a computer’s hardware and provides a platform for applications to run on top of it including the operating system, utility software, and interface. In simple terms, you can say that the system acts as a middle man that checks and facilitates the operations flowing between the user and the computer hardware.
System software i.e Operating System is the first one that gets loaded in the system’s memory wherever you turn on your computer. System software is also known as “low-level software” because the end-users do not operate them.
System Software is further classified as – Operating System , Device Drivers , Firmware , Utility Software , Programming Tools and Language translators.
यह उपयोगकर्ता user और computer के बीच की कड़ी है जो user से आदेश लेकर computer तक पहुँचाती है और computer के उत्तर को user तक पहुँचाती है | यह programme का समूह है जो computer के बुनियादी संचालन के लिए आवश्यक होता है | यह सबसे पहले शुरु होकर दूसरे programs को क्रियाशील होने के लिए सुयोग्य माहौल बनाता है |
The operating system is the most prominent example of system software that acts as an interface between the user and system hardware.
It is a group of software that handles the execution of programs and offers general services for the application that runs over the computer. There are various types of operating systems available in the market, such as embedded operating systems, real-time OS, distributed OS, single or multi-user operating system, mobile, Internet, and various others. Examples – Microsoft Windows , Apple’s iOS ,Android , CentOS , Linux ,Ubuntu ,Unix .
Device drivers control the devices and peripherals connected to a computer, enabling them to perform their specific tasks. Every device that is connected to a computer needs at least one device driver to function. Examples include software that comes with any nonstandard hardware, including special game controllers, as well as the software that enables standard hardware, such as USB storage devices, keyboards, headphones and printers. Some Common Examples are –
- BIOS (Basic Input/Output System) Device Driver
- USB (Universal Serial Bus) Drivers
- Motherboard Drivers
- Display Drivers
- Printer Drivers
- Sound Card Driver
- ROM (Read-only memory) Drivers
- VGA (Video Graphic Array) Drivers
Firmware is a type of software that is embedded into hardware devices to control their functionality. It is a software program written on the hardware device, which perform functions like basic input/output tasks and offers necessary instructions for the device to communicate with other computing devices. A hardware device will be non-functional if it has no firmware. It is written to a hardware device’s non-volatile memory. It means it cannot be modified or deleted by an end-user, unlike normal software and and it remains on that device whether it is on or off.
Sometimes manufacturers release firmware updates, which help to make the system more powerful and capable of working speedily. Firmware updates are often issued to fix bugs, prevent firmware hacks, roll out new features, improve security or interact with new media. Firmware updates consist of code that tells the hardware how to behave in a new or modified way. Firmware manufacturer’s website contains firmware updates; you can find them with the help of going to the “Support” or “Downloads” options of the website.
Non-volatile memory is a form of static random access memory where the content is saved when a hardware device is turned off or loses its external power source.
Utility software is a type of system software that helps to maintain the proper and smooth functioning of a Computer System. Utility software includes a wide range of tools and applications that perform specific tasks to improve the performance, security, and functionality of a computer system. It assists the Operating System to manage, organize, maintain, and optimize the functioning of the computer system.
These software are focused on how OS works on that basis it perform task to enable smooth functioning of computer. These software may come along with OS like windows defender, windows disk cleanup tool. Some Common examples of utility software are Antivirus, backup software, file manager, disk compression tool, debuggers , Encryption tools etc.
A programming tool may be any software program or utility that aids software developers or programmers in creating, editing, debugging, maintaining and / or performing any programming or development-specific task. A programming tool is also known as a software development tool.The most basic tools are a source code editor and a compiler or interpreter.
Uses of programming tools –
- Translating from human to computer language
- Making program information available for humans
A subset of the commercially available software that deserves special attention is language translators. These software applications allow users to write and develop custom software.
Language translators allow computer programmers to write sets of instructions in specific programming languages. These instructions are converted by the language translator into machine code. The computer system then reads these machine code instructions and executes them. Hence, a language translator is a program that translates from one computer language to another.
Code written in any high-level programming language is called “source code”. When you change the source code into machine code, it is called “object code”. A translator turns the source code into object code, which the computer can understand and run.
Main language translators are – interpreters, compilers, and assemblers.
Another way to get your computer to run a code is by using an interpreter. An interpreter is like a compiler, but it takes the code and runs it right away, so it is faster than a compiler. They are used as debugging tools because interpreters can only run one piece of code at a time. Translating all the code into machine language at once is done by compilers.
The processor runs the machine language that the compiler made. Some changes may be made to the code after it has been compiled. The changed code will need to be compiled and added to the compiled code.
But an interpreter, even though it doesn’t have to compile the whole program to start, is slower to run than the same program that has been fully compiled.
Compilers turn high-level language code into machine code. Many things must be done at once when compiling. First, the compiler must turn all high-level language code into lower-level machine language, and save the object code to the memory.
A compiler makes machine code that runs on a processor. It is different for each processor. Compilers are also different for each platform.
Assemblers translate a program written in assembly language into machine language. It’s like a compiler for assembly language. Still, it can also be used as an interpreter to help you write a program. Assembly language is a low-level programming language.
At first glance, low-level programming languages are more difficult to understand. You have to study assembly code carefully to understand it.
Machine code (also called object code) is a lower-level language that the processor can directly understand. An assembler turns assembly language code into machine code, which is easier for the processor to read. Usually, assembly code has many more lines of code than a higher-level language.
Difference between Compiler and Interpreter –
|A compiler is a program that converts the entire source code of a programming language into executable machine code for a CPU
|An interpreter takes a source program and runs it line by line, translating each line as it comes to it
|The compiler takes a large amount of time to analyze the entire source code but the overall execution time of the program is comparatively faster.
|An interpreter takes less amount of time to analyze the source code but the overall execution time of the program is slower.
|The compiler generates the error message only after scanning the whole program, so debugging is comparatively hard as the error can be present anywhere in the program. Tough debugging.
|Its Debugging is easier as it continues translating the program until the error is met. Easy debugging
|The compiler requires a lot of memory for generating object codes.
|It requires less memory than a compiler because no object code is generated.
|Fast program execution
|Slow program execution
|Beneficial for commercial purpose
|Beneficial for learning purpose
|Generates intermediate object code.
|No intermediate object code is generated.
|For Security purpose compiler is more useful.
|The interpreter is a little vulnerable in case of security.
|Examples: C, C++, C#
Difference Between a Compiler, Interpreter and an Assembler
|Compiler turns the entire high-level language program to machine code at a time
|Interpreter translates the high-level language program into machine language line by line.
|Assembler translates assembly language programs to machine language.
|Compilers use it to convert code in languages like C and C++
|An interpreter is used in languages like Ruby, Perl, Python, and PHP,
|Assembler uses assembly languages
|Compiler translates the entire high-level language program to machine language at one moment
|Interpreter translates the high-level language program to machine language by line.
|Assembler translates assembly language programs to machine language
Application software is a type of computer program that performs a specific personal, educational, and business function. Each application is designed to assist end-users in accomplishing a variety of tasks, which may be related to productivity, creativity, or communication. The most common software application platforms are used by millions of people every day. They’re designed to help with specific tasks, simplify workflows, and improve communication across teams.
Application software is focused on its functionality and completes the goal for which it was created. Most of the apps we use on our smartphones are examples of application software. Every piece of application software’s main objective is to make a task easier for users to complete.
- The Microsoft Suite – Office, Excel, Word, PowerPoint, Outlook, etc.
- Internet Browsers – Firefox, Chrome, Safari, Internet Explorer
- Music Software – Pandora, Apple Music, Spotify
- Communication Software – Slack, Skype, Zoom, Teams , WhatsApp etc.
Functions of Application Software
Functions of application software include-
- management of information and data
- data management and analysis
- document management (document exchange systems)
- creation of images and videos
- Several choices include texting, conferencing over audio and video, and working together.
- Accounting, financial, and payroll management
- the management of resources (ERP and CRM systems)
- managing a project
- management over corporate operations
- software for use in schools (LMS and e-learning systems)
- software for use in healthcare
Types of Application Software
Types of Application Software are divided into two categories:
- General Application Software
- Customized Application Software
General Application Software
Numerous fundamental tasks can be accomplished by general software. They finish all of the standard tasks a user must carry out on the system. The user must complete several applications. This category includes a wide range of frequently used applications. Various Examples of General Application Software include –
a.Word Processing Software
c.Business Application Software
e) Presentation Software
f) Web Browsers
g) Education Software
h) Graphic Design Software
h) Simulation Software
Customized Application Software
Software specifically tailored for a given user group or organization is created with business challenges in mind. Either an internal development team or an outside company creates custom solutions. However, the technique and development process is the same as other software development. Take a look at Uber,Ola , a popular on-demand service that uses specialized software to offer drivers and passengers a seamless experience and food delivery apps i.e Zomato, Swiggy etc.
Based on accessibility and share ability, application software can be further divided into four groups.
- Freeware Software: Freeware is accessible without spending money, as the name suggests. Anyone can access it online, download it for free, and use its capabilities immediately. The user is unable to alter the source code, though. Even if you engage qualified software engineers to do the assignment, this software cannot be customized or altered without breaking the law. Examples of freeware applications include Skype, Team Viewer, Adobe Reader, etc.
- Shareware Software: Creating shareware software applications promotes the temporary, free sharing of software. These programs are offered to users as a free trial. Then, if the users decide to keep using it and are satisfied, they must pay for the software. Users are frequently urged to make copies and share the program when they are given access to the source code. WinZip and Adobe Acrobat are examples of this kind of software program.
- Open-Source Software: Open-source software can be inspected, modified, and improved by anybody, thanks to its source code’s availability. Additionally, very few open-source programs are priced at such a conditional level; the majority are available for free. Open-source software is frequently confused with free software by many people. While some open-source software program, like Apache Webserver, is free to use, others need payment. However, “free” refers to the openly accessible source code that enables software creation.
- Closed Source Software: Closed-source software is the polar opposite of open-source software. They are paid software and hold ownership rights to the source code. Usually, there are limitations and terms and conditions attached. No one else can view or access the source, even if you have a premium account. These closed-source software programs make up most of the programs we use today. The exclusive intellectual property rights to the codebase belong to the software and mobile app development company that creates the software.