Explain the evolving role of software and explain changing nature of software in detail.
The Evolving Role of Software
Today, software takes on a dual role. It is a product and, at the same time, the vehicle for delivering a product. As a product, it delivers the computing potential embodied by computer hardware or, more broadly, a network of computers that are accessible by local hardware. Whether it resides within a mobile phone or operates inside a computer, software is an information transformer—producing, managing, acquiring, modifying, displaying, or transmitting information that can be as simple as a single bit or as complex as a multimedia presentation.
As the vehicle used to deliver the product, software acts as the basis for the control of the computer, the communication of information, and the creation and control of other programs. Software delivers the most important product of our time—information. It transforms personal data so that the data can be more useful in a local context; it manages business information to enhance competitiveness; it provides a gateway to worldwide information networks and provides the means for acquiring information in all of its forms.
The role of computer software has undergone significant change over a time span of little more than 50 years. Dramatic improvements in hardware performance, profound changes in computing architectures, vast increases in memory and storage capacity, and a wide variety of exotic input and output options have all given rise to more sophisticated and complex computer-based systems. The lone programmer of an earlier era has been replaced by a team of software specialists, each focusing on one part of the technology required to deliver a complex application.
Changing Nature of Software
The nature of software has changed a lot over the years. The various categories of software are:
System Software
System software is a collection of programs that are written to provide service to other programs. Infrastructure software comes under this category like compilers, operating systems, editors, drivers, etc.
Engineering and Scientific Software
This software is used to facilitate the engineering function and task. However, modern applications within the engineering and scientific area are moving away from conventional numerical algorithms.
Embedded Software
Embedded software resides within the system or product and is used to implement and control features and functions for the end user and for the system itself.
Web-based Software
It is a client-server computer program in which the client runs on the web browser. Software related to web applications comes under this category. Examples are CGI, HTML, Java, Perl, DHTML, etc.
Artificial Intelligence Software
Artificial intelligence software makes use of a non-numerical algorithm to solve a complex problem. Applications within this area include robotics, expert systems, pattern recognition, artificial neural networks, theorem proving, and game playing.
Personal Computer Software
The software used in personal computers is covered in this category. Examples are word processors, computer graphics, multimedia and animating tools, database management, computer games, etc.
Business Software
This is the largest application area. The software designed to process business applications is called business software. Business software could be payroll, file monitoring systems, employee management, and account management.
Real-time Software
This software is used to monitor, control, and analyze real-world events as they occur. An example may be software required for weather forecasting. Such software will gather and process the status of temperature, humidity, and other environmental parameters to forecast the weather.