A software, commonly known as programs consists of the step-by-step instructions that tell the computer how to perform a task. A software enables the computer to do jobs that users want it to accomplish. There are two types of software: System Software and Application Software.
1. System software runs the computer. It is the type of program that makes the computer work. It enables other software to interact with the computer and helps the computer manage its internal resources. It includes the computer’s basic operating system, the utility programs and the compilers and interpreters. It also usually encompasses any software used to manage the computer and network, which includes diagnostic software used to enhance the computer’s performance. The three basic types of systems software are:
- Operating systems is considered to be the most important program that runs on a computer. It performs basic tasks, such as recognizing input from the keyboard, sending output to the display screen, keeping track of files and directories on the disk, and controlling peripheral devices such as disk and printers. It also provides a software platform for other programs to run, thus the choice of operating system determines the applications one can run. For PCs and laptops, the most popular operating systems are DOS, OS/2, UNIX, Ubuntu and the latest is Windows 7. Users normally interact with the operating system through a set of commands which are accepted and executed by the command processor, a part of the operating system. Furthermore, for large systems that data security is very important, the operating system can ensure that unauthorized users cannot access the system. Operating systems can be classified as:
- Multiuser: An operating system that allows two or more users to run programs at the same time.
- Multiprocessing: An operating system that enables program to run on more than one CPU
- Multitasking : An operating system that allows more than one program to run concurrently.
- Multithreading : An operating system that allows different parts of a single program to run concurrently.
- Real time: An operating system that responds to input instantly.
- Utility Programs are programs that are designed to support the operations and processes of a computer. They provide specific useful services such as backup of files for storage, recovery of damaged files, virus protection, data compression, and memory management. They also include diagnostic programs, trace programs, input program, and programs used to perform routine tasks.
- Diagnostic program - A utility program that recognizes and explains faults in the equipment or mistakes in a computer program.
- Trace program – A utility program that exhibits the sequence and results of executing the instructions in another program.
- Input program – A utility program that organizes the input to a computer.
- Language Translator are programs that execute instructions written in a high-level language There are two ways to run programs written in a high-level language. The most common is to compile the program; the other method is to pass the program through an interpreter.
- Compiler is a program that reads a program in one language, the so – called source language and translates into an equivalent program in another language, the so-called target language. A compiler translates high-level instructions directly into machine language. Compiled programs generally run faster than interpreted programs. For example, a compiler can read a client/server program and translate it into machine language for execution.
- Interpreter translates high-level instructions into an intermediate form, which it then executes. It can immediately execute high-level programs without the need to go through the compilation stage when machine instructions are generated. These are very useful during the development of a program, when a programmer wants to add small sections at a time and test them quickly. In addition, interpreters are often used in education because they allow students to program interactively.
2. Application software. They are computer programs designed to provide useful functionality to end users. There are two basic types of application software:
- Customized or user-developed software – They are programs that are made to suit the specific needs of the user. They are designed usually for a single customer or a single group of customers, and cannot be adopted by another customer or another group of customers. Examples of such include enrollment system, payroll system, Point of Sales system.
- General- purpose or packaged Software – It is a software that can perform useful work on general – purpose tasks. It includes entertainment software, education and reference software, productivity software, and business and specialized software.
- Entertainment software are video games in particular.
- Educational & reference software are programs that are self-paced or programs that contain interactive video.
- Basic Productivity software aims to make users more productive at performing general tasks such as wordprocessing, spreadsheet,database, presentation graphics, communications (data communications and e-mail), desktop accessories and personal information managers, integrated software and suites, groupware, and internet web browsers.