Computer software is that part of the computer system that consists of computer instructions. Computer software includes libraries, computer programs and other data. Both Computer software and hardware need each other and neither can be used on their own. Majority of the software is written in high level programming language. This is because it is easier and is as close to the natural language. It is also possible for software to be written in low level assembly language
History of Software
The first theory about software was proposed in the year nineteen hundred and thirty five .The first electronic computers was built in the year nineteen hundred and forty two.
Types of Software: There are three types of software
- Application software is software that uses the computer system to perform special functions beyond the basic operation of the computer.
- System software is software that directly controls the computer hardware to provide basic functions needed to users and to provide a platform for running application software. System software includes operational systems that manage resources and provide common services. Device drivers control a particular type of device that is attached to a computer. Utilities are computer programs designed to help users in the maintenance of computers.
- Malicious software is software meant to harm and disrupt computer hardware. This software is closely associated with software crimes.
Execution of Software
Computer software has to be loaded into the computer storage after which the computer is able to operate the software. This involves a couple of steps which finally ends as machine code .These instructions or each of these causes the computer to carry out an operation like moving data etc. Data movement is moving from one place in the memory to another. Moving large amounts of data can be costly so at times it is avoided by using pointers.
Quality and Reliability of Software
Software is very important especially for system software and commercial software. These could be Microsoft Office, windows and Linux. One thing is very important and that is if the software is faulty then it can delete a person’s work and crash the computer. Faults and errors are called bugs which are always found under alpha and beta testing. Software can also be affected through a system called software aging. This is due to unseen bugs which need to be eliminated or debugged. At times of software testing most of the bugs are eliminated. However in the waterfall method of software development separate testing teams are involved. Software can be tested through unit testing, regression testing and other methods which are done by hand.
License for software
This is necessary and gives the user the right to use the software in the licensed environment and also the right to make copies.
Patents for software
Software patents are supposed to give an inventor time limited license for a detailed idea. However software patents are controversial as many people have different ideas about them. One of the reasons is that the patent does not seem to be honored in practice.