Software. The theory about
The theory about software was first introduced by Alan Turing in 1935 and first used in print by John W. Tukey. Software can be defined as a single or a combination of several programs that are stored in a computer that are used to give certain instructions to the computer and tells it what to do and how to do it. They can be algorithms for the computer that deal with the operation of the data procession system or they can be procedures that the computer has to follow. Elephant software gives instructions to the computer's hardware on how to perform certain functions or it can be an input to software. Software can be divided into three classes but this distinction is not definite and may often overlap. The classes of software are namely system software, programming software and application software. It is very important that a user chooses the right type and quality of software in order to protect one's computer from faults or 'bugs'. The software for the computer should be of the best quality otherwise the computer may crash altogether, act in an unexpected manner that does not benefit the system or the user may even end up losing all his work. Thus, software quality is very important, especially when it comes to system software like Microsoft word, Microsoft window, etc. Faults and bugs that exist in the system can be detected and eliminated or 'debugged' by using software testing. However, even this software testing is unable to remove every single fault in the system. Every major software company has its own software testing department to test software and to determine whether they are safe or not. Software testing can be done manually or automatically through regression testing, unit testing and other methods. It is considered safe to use licenced software. A licensed software can be bought from markets, some software have a free software license which enable the user in possession of this software to use the software in a licensed environment or, in the case of a free software license, change and modify the software and distribute it further. Individuals programming software and those using the software often have different views of the software and they see the software in three 'layers' that perform a variety of tasks namely platform software, application software and user software. Platform software often comes along with a computer and includes firmware, an operating system, device drivers and a graphical user interface that enable a user's interaction with the computer and other equipments. Application software is the software that is usually bought by the user separately from the computer but nevertheless run as independent applications and there are some that come along with the purchase of the computer. Video games and office suites are common examples of application settings. They are separate and independent from the operating system. Lastly, user software is systems that meet the user's specified requirements. These include word processor templates and spreadsheet templates and even include email filters.