Introduction to Software – Characteristics and Types
- Computer software is that part of a computer system that consists of encoded information or computer instructions, in contrast to the physical hardware from which the system is built.
Software characteristics are classified into six major components.
- Functionality: Refers to the degree of performance of the software against its intended purpose.
- Reliability: Refers to the ability of the software to provide desired functionality under the given conditions.
- Usability: Refers to the extent to which the software can be used with ease.
- Efficiency: Refers to the ability of the software to use system resources in the most effective and efficient manner.
- Maintainability: Refers to the ease with which the modifications can be made in a software system to extend its functionality, improve its performance, or correct errors.
- Portability: Refers to the ease with which software developers can transfer software from one platform to another, without (or with minimum) changes.
- Robustness refers to the degree to which the software can keep on functioning in spite of being provided with invalid data. I
- Integrity refers to the degree to which unauthorized access to the software or data can be prevented.
Classification of Software
- System software: This class of software manages and controls the internal operations of a computer system. It is a group of programs, which is responsible for using computer resources efficiently and effectively.
- Real-time software: This class of software observes, analyzes, and controls real world events as they occur. Most of the defense organizations all over the world use real-time software to control their military hardware.
- Business software: This class of software is widely used in areas where management and control of financial activities is of utmost importance. The fundamental component of a business system comprises payroll, inventory, and accounting software that permit the user to access relevant data from the database.
- Engineering and scientific software: This class of software has emerged as a powerful tool in the research and development of next generation technology. Applications such as the study of celestial bodies, under-surface activities, and programming of an orbital path for space shuttles are heavily dependent on engineering and scientific software.
- Artificial intelligence (AI) software: This class of software is used where the problem-solving technique is non-algorithmic in nature. The solutions of such problems are generally non-agreeable to computation or straightforward analysis. Instead, these problems require specific problem-solving strategies that include expert system, pattern recognition, and game-playing techniques.
- Web-based software: This class of software acts as an interface between the user and the Internet. Data on the Internet is in the form of text, audio, or video format, linked with hyperlinks. Web browser is software that retrieves web pages from the Internet.
- Personal computer (PC) software: This class of software is used for both official and personal use. The personal computer software market has grown over in the last two decades from normal text editor to word processor and from simple paintbrush to advanced image-editing software. This software is used predominantly in almost every field, whether it is database management system, financial accounting package, or multimedia-based software. It has emerged as a versatile tool for routine applications.