Wednesday, March 5, 2008

Software

Computer hardware has been explained using the human body as an example. Now let us discuss a real life example which would help you understand the concept of computer software. Computer software can also be referred to as computer programs or simply program. Let us take a real world example of a child who has got a new toy that he needs to assemble by himself. The instruction manual of the toy will tell each step that the child needs to follow to assemble the toy. This manual may be written in any language the child understands. Once the child assembles the toy a couple of time by referring to the manual, he will no longer need the manual to do the assembly by himself. Once he can do assemble the toy alone, it can be said that the child has learnt.
Computer program is something similar to the instruction manual of the toy. It is a collection of steps that tells the computer how to do something like the instruction manual tells the child how to assemble the toy. The program has to be written in a language the computer processor understands, similar to the fact that the manual has to written in a language the child understands. This language the computer understands is called machine language or machine code. The program is written by a person who already knows the steps, similar to the toys manual being written by a person who already knows how to assemble the toy.
The similarities between the toy’s manual and the computer software end here. The first difference from the example of the toy’s manual is that the toy’s manual is written by the writer in a language that the child understands, but the computer programs is written by the writer in a class of languages called a programming language (e.g. C/C++, Java, Visual Basic) which is different from the machine language that the computer processor understands. The set instruction written in a programming language is called program code. This program code is passed through another computer program called a compiler (converts programming language code to machine language code) to create a computer software or programme written in machine language. This is the program the processor can understand and follow to do some task. We call this following of the set of steps in the computer program by the computer as executing the program or running the program.
The second difference between the toy’s manual example and the computer software is that the child will learn how to assemble the toy after a couple of attempts, but the computer cannot achieve similar learning to the child no matter how many times the computer follows the program. The computer needs to be told how to do something every time it needs to do it. In other words the statements in computer program needs to be followed every time a task needs to be done. A computer software or program may consists of not only code to do one task, but code to thousands of tasks. A program may be written to do a simple task like adding two numbers, or a complicated task like flying an air plane without a human.
A computer system may consist of all the complicated hardware components and devices one can imagine, but it cannot do anything with that hardware without software. Each software has a specific set of tasks it can carryout. If you need to do a new task you need to install software that can do that required task. Software can be written to manage your computer, play movies and music, type a letter, edit an image and many more tasks that you might need to do on your computer. There are millions of computer software in the world. The software can be divided into two fundamental types, system software and application software. The difference between the system software and application software is a very vague definition. System software are the software which can be classified as being an operating system (Linux, Windows, Mac OS) and other software that help manage your computer.
There is an argument about what software is classified as application software. Some argue that any application that comes with the operating system is part of the operating system and not application software. Some argue that any software that is not required for the operating systems normal function is application software irrespective of whether it comes bundled with the operating system. In this book we will consider application software as software which is not used in the normal function and managing of your computer system. There are hundreds of thousands of application software in the world. There is no specific classification method of application software, some classify by their functionality, some by the release year, some by the platform they run on and so on.
System software
These are the computer programs that control the system hardware and interact with application software. These include the operating system and utilities.
Application software
Any computer program used to create or process data can be classified as Application software.
Some examples of Application software are Word processing programs, Spreadsheet programs,
Database management programs, Desktop publishing programs and Presentation programs.
Application software allows people to increase their productivity. The software may be used for a wide range of tasks.
A summary of application software are displayed below.
There are many computer applications that can help individuals at home, school and work.
The most common are listed below.
• Word Processing: These applications help us to create, edit and print documents.
• Spreadsheet Analysis: A spreadsheet package can be used when numbers and calculations are involved. They also help in analysing data and creating graphical representations of data.
• Database Applications: Used to store, manipulate and retrieve data.
• Online Information services: These services can be used to obtain news around the world, financial information, make travel plans, online shopping, send e-mails, get involved in learning programmes and find employment opportunities.
• Graphics Programs: Can be used to develop attractive graphs, illustrations and drawings.
• Project management software: These programs help project managers, business managers,
and planners manage schedules and resources.
• Financial management programs: These software help to accelerate and simplify financial
management at many levels. Bring formerly disparate sources of information into a single
view of events and help to ensure that the right people can take action.
• Desktop publishing (DTP) programs: Can be used to create attractive, professional
documents for many purposes ranging from Advertising to printing books.
• Creativity software: The software contains a database of ideas to stimulate fresh thinking.
Allows one to write ideas down and then flexibly move them around to see new
relationships, insights and perspectives.
Workgroup Application Software
These software support people to work as a team whether they are in the same location or
geographically dispersed around the world. They are also known as groupware. Allow people to communicate and do collaborative work.
Enterprise Application Software
This is software that can be used within an entire organization. Some examples of Enterprise
Application Software listed below.
• Airline industry operations
• Automatic teller systems
• Credit & charge card administration
• Manufacturing control
• Inventory control
• Sales ordering
• Payroll
• Human resource management
• Restaurant management
• Shipping
Application Software for Information, Decision Support and Specialized Purposes
This kind of software is found in every industry now. These include MRI scanning software to financial forecasting software.
View of software from a different perspective
It is important to note that software can be used according to their license, distribution or legal and commercial interpretation. The most common of these are:
• Free software - Free Software is software that comes with permission for anyone to use,
copy, and distribute, either verbatim or with modifications, either gratis or for a fee. In
particular, this means that the source code must be available. “Free software" is a matter of
liberty, not price. Within this context, ‘free’ should be understood as in “free speech", not
as in “free beer".
• Open Source Software - Open Source Software (OSS) refers to any program whose source
code is made available for use or modification. Open source software is usually developed
as a public collaboration and made freely available. In a stricter sense, OSS refers to
software that complies with the “Open Source Definition".
• Freeware - The term ‘freeware’ is commonly used for software packages that permit
redistribution but not modification (and their source code is not available). You do not have
to buy this software or pay a license fee. Sometimes the development cost of this software
is covered by the advertisements that are displayed on the software.
• Shareware - Shareware is software that is distributed free on a trial basis with the
understanding that the user may need or want to pay for it later. Some software developers
offer a shareware version of their program with a built-in expiration date (e.g. after 30
days, the user can no longer get access to the program). Other shareware (sometimes called
liteware) are offered with certain capabilities disabled as an enticement to buy the complete
version of the program. Shareware comes with permission for people to redistribute copies,
but no-one who continues to use a copy is required to pay a license fee.
• Proprietary Software - Proprietary software describes software that are owned exclusively
by a single company that carefully guards knowledge about the technology used and the
software’s inner workings. Some proprietary products can only function properly, if at all,
when used with other products owned by the same company. Proprietary software is
software that is not free or semi-free. Its use, redistribution or modification is prohibited, or
is restricted so much that you effectively cannot do it freely.