Computer software is a set of instructions that directs a computer to do specific operations. It consists of computer programs, libraries and related non-executable data.
Software was less important (and less costly) in computer systems then, because early hardware was literally hardwired by hand for each application. Today, software comprises a much larger percentage of the cost of modern computer systems than it did in the 1950s.There are several reasons for this trend. First, the price of hardware has dramatically decreased, while the performance of hardware has exponentially increased. Second, building applications—a process called software development—is slow, complex, and error-prone. Computer Software is, therefore, expensive and getting more so as its complexity grows.
These factors have led to a major problem for management—the software crisis. The software crisis is that organizations are not able to develop new software applications fast enough to keep up with rapidly changing business conditions and rapidly evolving technologies.
Clearly, the potential for errors is huge, and testing and debugging software is expensive and time-consuming.
Software consists of computer programs, which are sequences of instructions for the computer .Systems software is a set of instructions that serves primarily as an intermediary between computer hardware and application programs, and may also be directly manipulated by knowledgeable users.
Application software is a set of computer instructions that give more specific functionality to a user. That functionality may be broad, such as general word processing, or narrow, such as an organization’s payroll program.
Open Source Software:
Open source software is software made available in source code form at no cost to developers. There are many examples of open-source software, including the GNU (GNU’s Not UNIX) suite of software (gnu.org) developed by the Free Software Foundation (fsf.org); the Linux operating system; Apache Web server (apache.org); send mail SMTP (Send Mail Transport Protocol) e-mail server (sendmail.org); the Perl programming language (perl.com), the Netscape Mozilla browser (mozilla.org); and Sun’s Star Office applications suite (sun.com).
Programming languages give the basic building blocks for all systems and application software. Programming languages allow people to tell computers what to do and are the means by which software systems are developed.
- Machine Language:
Machine language is the lowest-level computer language, consisting of the internal representation of instructions and data. Machine language is the only programming language that the machine actually understands. Therefore, machine language is considered the first-generation language.
- Assembly Language:
An assembly language is the next level up from machine language. It is still considered a lower-level language but is more user-friendly because it represents machine language instructions and data locations in primary storage by using mnemonics, or memory aids, which people can more easily use. Assembly languages are considered second-generation languages.
- Procedural Languages:
Procedural languages are the next step in the evolution of user-oriented programming languages. They are also called third-generation languages, or 3GLs. Procedural languages are much closer to so-called natural language (the way we talk) and are easier to write, read, and alter.
- Nonprocedural Languages:
Another type of high-level language, called nonprocedural languages, allows the user to specify the desired result without having to specify the detailed procedures needed for achieving the result. These languages are fourth-generation languages (4GLs).
- Natural Programming Languages:
Natural programming languages are the next evolutionary step. They are sometimes known as fifth-generation languages, or intelligent languages. Visual Programming Languages
- Hypertext Markup Language:
Hypertext is an approach to data management in which data are stored in a network of nodes connected by links (called hyperlinks).
- Extensible Markup Language (XML):
Extensible Markup Language (XML) is designed to improve the functionality of Web documents by providing more flexible and adaptable information identification.
- Virtual Reality Modeling Language:
The Virtual Reality Modeling Language (VRML) is a file format for describing three-dimensional interactive worlds and objects. VRML can represent static and animated objects, and it can have hyperlinks to other media such as sound, video, and image.
- Object-Oriented Programming Languages:
Object-oriented programming (OOP) languages are based on the idea of taking a small amount of data and the instructions about what to do with that data (these instructions are called methods in object-oriented programming) and putting both of them together into what is called an object. This process is called encapsulation.
Java is an object-oriented programming language developed by Sun Microsystems. The language gives programmers the ability to develop applications that work across the Internet. Java can handle text, data, graphics, sound, and video, all within one program. Java is used to develop small applications, called applets, which can be included in an HTML page on the Internet. When the user uses a Java-compatible browser to view a page that contains a Java applet, the applet’s code is transferred to the user’s system and executed by the browser.
Common Types of Application Software:
The different types of Computer Software application are used by individual users and business enterprises as well, and they have many benefits of doing so. This includes word processing software, database software, multimedia software, editing software, and many other different kinds as well. When a whole variety of them are integrated collectively and sold to a business, they can take up the form of enterprise software, educational software, simulation software, information worker software, etc.
- Their single biggest advantage is that they meet the exact needs of the user. Since they are designed specifically with one purpose in mind, the user knows that he has to use one specific software to accomplish his task.
- The threat of viruses invading custom-made applications is very small, since any business that incorporates it can restrict access and can come up with means to protect their network as well.
- Licensed application software gets regular updates from the developer for security reasons. Additionally, the developer also regularly sends personnel to correct any problems that may arise from time to time.
- Developing application software designed to meet specific purposes can prove to be quite costly for developers. This can affect their budget and their revenue flow, especially if too much time is spent developing a Computer software that is not generally acceptable.
- Some software that are designed specifically for a certain business, may not be compatible with other general software. This is something that can prove to be a major stumbling block for many corporations.
- Developing them is something that takes a lot of time, because Computer Software needs constant communication between the developer and the customer. This delays the entire production process, which can prove to be harmful in some cases.
- Application software that is used commonly by many people, and then shared online, carries a very real threat of infection by a computer virus or other malicious programs.
computer software is inevitable, but that this may not be entirely positive. Just one area in which it is possible to foresee dangers is communication, and if we are going to ensure that computers do not become a negative influence, we need to think carefully how we use them..