Computer Software usually called just 'software' is an entire set of programs, procedures, and routines that tells to the computer system to perform any operation. The operating system is also a type of computer software known as system software, which is written for working as an intermediary between application programs and the computer hardware.
The computer software is intangible (virtual that can not be touched) like soul in living species.
Computer Software can be categorized into different classes according to architecture usability, and functionality.
On the basis of Architecture, computer software can be categorized into types:
- System Software
- Programming Software
- Application Software
The system software is the soul of computer usage as system software provides the basic function to the computer. Without system software, the computer hardware is the not more than garbage. The system software manages a variety of hardwares to functions properly and harmoniously with application softwares. The prime purpose of the system software is to get free the application programmer from managing the concordance of computer hardware, operation and software.
System Software comprises from operating system, windows system, utilities, servers and device drivers.
The system software can be further divided into two kinds:
- Operating System
- System Support Software
An operating system (OS) is a type of system software that consisting of programs and data to run the computer efficiently and to manage the computer hardware in order to perform their functions accordingly. An operating system works as an intermediary agent between the compute hardware and other computer software. The basic purpose of OS is to provide provides common services for efficient execution of various application software.
The basic components of an operating are: User Interface, Graphical User Interfaces (GUI), the kernel, program execution, interrupts, modes, memory management, virtual memory, multitasking disk access and file systems, device drivers, networking and security. The modern examples of OS are Windows, Linux, Mac, Symbian and Android etc.
System Support Software
The system support software is the set of files and programs that help the computer itself to operate, control and extend the processing capabilities of the system. System softwares are generally prepared by computer manufactures and are written in low-level language. As the name suggests the system support software speeds up the operation of the drivers, services, system preferences and other configured files.
The examples of System Support Software are: windows system, utilities, servers and device drivers.
The programming language defines the syntax and semantics of computer programs. The programming script is used to develop several programming software tools that assist the programmers to develop several application softwares. The programming software works as a middleware which functions between the system software and application software. Programming software functions as a platform for the application developers. The programmers can write, compile, interpret, debug, test and run the application script on the programming software. Here are the examples of few programming software tools:
- Text Editors
The programming tools can also be further categorised according to its function:
- Performance Analysis Tools
- Debugging Tools
- Static Analysis and formal verification tools
- Correctness checking tools
- Memory usage tools
- Application build tools
- Integrated development environment
The Application software is a special type of computer software developed for meeting one of more specific purpose. It is written in high level language and can be a collection of programmes. The application software developers use the system softwares and programming softwares to develop any application software that can fulfill the required purpose.
In the contrast of system and programming software, application software are close to the user, easy to understand, easy to design and easy to edit. The Application software can be further divided in several categories; e.g.
Business: Business Process Management (BPM), Customer Relationship Management (CRM), Enterprise Resource Planning (ERP), Enterprise application integration, Message-oriented middleware, Extract Transform Load (ETL), Financial, Accounting, Content management systems (CMS), Service Oriented Architecture (SOA), etc.
Communication: E-mail, Instant Messaging Clients, Mails
- Desktop publishing
- Typesetting: E-Books, PDF, etc.
Education: Educational Programming Languages, Interactive geometry, Learning Management,Virtual learning environments, etc.
Entertainment: Video Games, Gambling, Draughts, Computer Chess, Go, Poker, Role-playing Games, Novelty, Demos, Sports.
Government: Government and organisational giant database software and website
Computer Graphics: 3D Graphics, Animation, 2D Animation, Card Creator, Data visualization, Diagramming, Image organizers, Image Viewers, Digital Photography, etc.
Health: Dental, Disability, Speech synthesis, Healthcare, Neuroimaging, etc.
Identity: Biometrics, Identity management, Password managers, etc.
Industry: Production and manufacturing, Computer-aided engineering, Building information modeling, Computer-aided design, Computer-aided engineering, Geotechnical engineering, Optical, Electronic Design Automation (EDA), Electronic circuit simulators, Computer-aided manufacturing, Film production, Screenwriting, Robotics
Knowledge Representation: Concept Mapping, Mind-mapping, Expert systems, etc.
Language: Computational linguistics, Computer-assisted translation, Machine translation
Library and Information Science: Dictionary, Digital library, Library Automation, Reference management, etc.
Multimedia: Audio, Audio codecs, Audio editors, Digital audio recording, Compositing, Media players, Media readers, Multimedia frameworks, Optical disc authoring, Podcasting, Tag editors, Video editing, Video conversion, etc.
Music: Audio trackers, Guitar, Scorewriters, Synthesizers, Drum machines and many more.
Personal Information Managers: Calendar, Personal digital assistant, Personal digital diary, etc.
Religion: Digital Bible, Digital Quran, Digital Ramayana, Direction information tools, etc.
- Artificial intelligence, Agent-based, Face recognition, Optical character recognition, Speech recognition
- Bioinformatics, Molecular modelling, Molecular dynamics
- Cheminformatics, Chemistry, Molecular modelling, Mass spectrometry
- Earth science, Earth sciences graphics, Environmental science, Geographic information system (GIS), Remote sensing, etc.
- Mathematics, Physics, etc.
Transportation: Route planning, Satellite navigation, Transport simulation, etc.
Category of Computer Software on the basis of Usability
On the basis of Usability, the compute software can be divided also. In this type of division, the software can come from all the three categories described above.
System Control Software – This type of software controls the execution of program. The best example under this category is Operating System.
Device Drivers – Device drivers are system support programs but on the basis of its usability, it comes under this category. Device rivers are responsible for proper functioning of devices like printer, audio, video, TV, plotter, Bluetooth, card readers etc.
Backup Utilities Softwares – These types of utility softwares are developed for backing up of important data. Using these software the crucial data can be stored in floppies, CD and DVD similar as a copy of original form.
Data Recovery Software – The Data Recovery Software is very useful software develop to use for recovering the lost data, if happens accidentally. e.g.Recycle bin.
Compression Utility Software – These types of softwares are used to compress large sized files so that data (files) can be stored in low capacity storage, e.g. Win-zip, Win-Rar.
Anti Virus utility Software – The anti virus software detects the bad programs or software that affects the normal working of any program or computer system and kills it is called anti virus software. e.g. Avira, Avest, Norton's anti virus etc.
Classification of Computer Software on the basis of functionality
On the basis of functionality, Computer Software can be classified into the following categories:
- Platform Software
- Application Software
- User-Written Software
The Platform software often comes in the bundles that includes the firmware, device drivers, an operating system, and typically a graphical user interface that collectively enables the users to interact with the computer and its peripherals. The platform software can be changed by user on a computer.
Commonly, people thinks that the term used for 'Software' is for only for 'Application Software' as it is very popular among the general users, except the programmers. Application software are absolutely independent programs that can be purchased from the market as it does not come bundled with computer hardware. e.g. office suites and video games, etc.
The User-Written Software are developed to meet user's any specific need like word processing, designing, painting etc. The typical example of User-Written Software is spreadsheet templates and word processor templates.