1 INFORMATION TECHNOLOGY TOPIC: SOFTWARE The term software is used to refer to the computer programs used in a computer system. Software can be broadly divided into two categories: Application Software o Programs that help users solve particular computing problems. Systems Software o Programs that coordinate the activities and functions of the hardware and various other programs. APPLICATION SOFTWARE With application software, you turn your computer into a tool that can complete a specific task, such as writing or drawing. Application programs are written to solve end-user problems. These include but not limited to: 1. Payroll programs – used to generate the payroll of many businesses. 2. Stock control programs – used by businesses to manage their stock efficiency 3. Accounting programs – used by businesses to help manage their financial affairs. A spreadsheet program is useful for this. It allows the user to create a table of numbers and manipulate them. 4. Educational programs – used in schools for teaching various subjects. 5. Administration programs – used by many organisations for maintaining records of employees, customers, clients, students, creditors, members, etc. 6. Computer-aided design programs – used by engineers, scientists, architects and others to speed up the designs of building, and an aeronautical engineer may use one to determine how a different tail design will affect the performance of an aircraft. 7. Graphics programs – used, for instance, by an advertising agency for creating advertisements for television. 8. Library control programs – used by libraries for maintaining records of books and borrowers, in order to provide faster, more efficient service. 9. Word processing programs – used by all kinds of people for the efficient preparation of letters, documents and reports. Application programs software falls into the following categories: General-Purpose Customisation of General Purpose Bespoke or Custom Written Specialized Software Packages General-Purpose Application Software General-purpose application software is used by a large number of people in a variety of jobs and personal situations. The “Big Five” types of general-purpose application software are: S.S - Word processing - Communication - Spreadsheet - Graphics/Presentation - Database management 06 June 2011 1 Advantages of using General Purpose Software You can install it yourself by following the easy instruction in the installation manual that comes with the software. Cheaper than employing a programmer to write the software for you. Easy Updating and Revising, each new version can be had at a reduced price if the owner can show proof of purchase of a previous version. Most users may already be familiar with previous versions of the software, so no intensive training programme is required. Several persons use the software, therefore help is easy to find. Disadvantages of General Purpose Software The package may be poorly documented The package may have hidden problems The package may not fit the user’s need exactly The package may not be user friendly Individual package is expensive Custom Written Software If you need a new outfit, you can buy the fabric and take it to a tailor, allow the tailor to take your measurement and then make an outfit that fits you. Custom written software , also called bespoke is a program that has been designed or created by a programmer to meet the unique need of a user or organization. For example, you could hire a system analyst to look at the accounting principles employed by your company and then set a team of programmers to write a program to meet the requirements. This program would be custom written software. Advantages of Custom Written Software The software meets the need of the user specifically The software can grow with the company Business owners can relieve the stress placed on over burdened employees and save money from hiring additional staff. Disadvantages of Custom Written Software Expectations can change midstream when developing custom written software, making a realistic budget difficult to project. As a result, businesses often run out of money before the project is completed. An experienced software team is needed. Acquiring the right team can be costly. If the people who are trained to use the program resign then it will be some time before new persons are trained, slowing down the business functions. Customisation of General-Purpose Software Packages Imagine buying an outfit in a department store that you like but not exactly your fit. What do you do? Find a tailor or fashion designer who can adjust it to your size. Similarly, if you find general-purpose software in a software house that you like, but it needs some adjustment to meet your specific need, you can get a S.S 06 June 2011 2 programmer to modify the program to meet your specific need. A customised general-purpose software package is a generalised software package that has been tailored to meet a user or firms specific need. Areas of the software that can be customized include: Screen colour Page size and arrangement on the desktop Navigation to available menus Specialised Software Packages Specialised software packages are written for a specific discipline. An example of such packages is expert systems. An expert system is a type of computer application program that makes decisions or solves problems in particular fields, such as banking or architecture, by using knowledge and analytical rules defined by experts in the field. For example, a doctor could employ an expert system that asks a patient a series of questions and then make a diagnosis. The software fall into two main categories: Business Application Programs – programs that perform the information processing tasks of important business functions or industry requirements. Scientific Application Programs – programs that perform information processing tasks for the natural, physical, social and behavioural sciences. SYSTEM SOFTWARE Systems programs do not solve end-user problems. Rather, they enable users to make efficient use of the computing facilities for solving their problems. These programs manage the resources of a computer system, automate its operation, and make easier the writing, testing and debugging of users’ programs. Many systems programs are supplied by the computer manufacturer, since to write them a programmer needs in-depth knowledge of the hardware details of the specific computer. (In contrast many application programs can be written with very little knowledge of the hardware details of a specific computer, and can run on several different computers with little or no modifications.) The most important systems program is the ‘operating system’; this actually consists of a number of programs designed to ensure the smooth running of the computer system. Other common systems programs (from the user’s viewpoint) are: 1. The editor – this program enables users to create files for storing their programs and data. It also provides facilities for making changes (such as adding or deleting lines) to files. 2. Language translators – people normally write programs in what are called high-level languages (such as Basic, Pascal, Fortran, or Cobol). Before the computer can run these programs, they have to be translated into the binary code known as machine language. Each language needs its own translator. Language translators can be divided into three broad classes – compilers, interpreters and assemblers. 3. Diagnostic programs – these provide facilities which help users to debug (remove errors from) their programs more easily. 4. Utility programs – on a typical computer system, there are many routine functions and operations which users may wish to perform. Utility programs are usually provided to perform these functions and operations. One of the most common of these is the sorting of data into desired sequence. S.S 06 June 2011 3 Operating System An operating system may be seen as a suite of programs that has taken many functions once performed by human operators. The sophistication and speeds of modern computers is beyond the capability of human operators to control without the aid of an operating system. The role of the operating system is therefore one of resource management. The primary resources it manages are: processors Data storage Programs I/O devices It can be seen from what is said that the operating system controls the way software uses hardware. This control ensures that the computer not only operates in the way intended by the user but does so in a systematic, reliable and efficient manner. This “view” of the operating system is shown below USERS OTHER SOFTWARE OPERATING SYSTEM HARDWARE Part of the operating system remains in main storage permanently during the running of the computer. This part is called the Kernel (or Supervisor or Executive) and as the name suggests is the “controlling” part of the operating system. It controls the running of all other programs. The remainder of the operating-system programs are stored on a direct-access storage device (preferably) from which any particular one will be “called” into main storage by the kernel when required. On many very small microcomputers the kernel is stored permanently in ROM and starts execution the moment the computer is switched on. A message is usually displayed by the kernel to signify it is ready to accept commands from the user. On most modern computers the kernel is not in main storage when the machine is switched on. The system must be “booted up”. This sometimes involves pressing special “boot buttons”, keys or switches, which cause the hardware to load the kernel into main storage from a predetermined position on a disk. Functions of the Operating System Perform common computer hardware functions (e.g. I/O) Provide a user interface Provide a degree of hardware independence Manage system memory Manage processing tasks Provide networking capability Control access to system resources Manage files S.S 06 June 2011 2 Choice of Operating System The applications for which a computer is needed largely determined the choice of hardware and accompanying software. The operating system supplier will need to consider these factors: a. The hardware provision and basic design of the computer. b. The applications intended for the computer. c. The method of communication with the computer, e.g., many or few peripherals. d. The method of operating the computer. The choice of O/S is also dependent on the processing environment required by the user. This includes: Batch processing Time sharing multi processing Single User processing system Real time online processing Single user multi-tasking processing Batch Systems – These are systems that provide multiprogramming of batch programs but have few facilities for interaction or multi-access. Commands or jobs are collected in groups and processed in the order in which they are placed in the group, i.e. in a “first in first out” sequence. Each group of commands or jobs is called a batch. The jobs are entered in a batch queue and then run one or more at a time under the control of the operating system. A job may wait in a batch queue for minutes or hours depending on the workload. No amendments are possible during processing. Time-sharing multi processing – Processor time is divided into small units called time slices and shared in turn between users to provide multi-access. These systems allow the CPU to switch between different programs rapidly so that users are unaware that they were ‘time-sharing’ the CPU with others. Several persons can connect to the main computer via dumb terminals and access different application programs. Single User Processing – These systems came on the scene with the advent of personal computers. The majority of small microcomputer-based systems have operating systems, which allow a user to operate the machine in an interactive conversational mode (response to the user’s message is immediate) but normally only one user program to be in main storage and processed at a time, there is no multiprogramming of user programs. Multiprogramming occurs when more than one program in main storage is being processed apparently at the same time. This is accomplished by the programs taking turns at short burst of processing time. Single-User Multitasking – This system only allows one person to use the computer at a time to do multiple tasks. Real-Time Processing – is a system that is able to process data so quickly that the results are available to influence the activity currently taking place. There is often a need for multiprocessing. Multiprocessing is the name for the situation that occurs if two or more processors are present in a computer system and are sharing some or all of the same memory. In such cases two programs may be processed at the same instant. These systems are used mainly in critical systems. Critical systems are systems where delay in the processing of data S.S 06 June 2011 3 after its input can lead to the destruction of life and property. Examples of critical systems are systems that monitor critically ill patients, nuclear plants, the engine of an aeroplane, etc. Utility Software Utility programs perform tasks related to the maintenance of your computer’s health, hardware or data. Some are included with the operating system; others can be bought as a separate package. Utility programs perform tasks such as: File Management Disk Management Backup Data Recovery Data Compression Antivirus Programs User Interfaces The interaction between end-users and the computer is said to take place at the “Human Computer Interface” (HCI). The term “Human Computer Interface” is meant to cover all aspects of this interaction, not just the hardware. Of particular interest is what makes one HCI better than another one. One of the most important features normally required in an HCI is that it be “user friendly.” As the name suggest, a user-friendly interface is one that the end-user finds helpful, easy to learn and easy to use. It is easy recognise unfriendly interfaces but not so easy to design one that is certain to be user friendly. What makes an HCI user friendly? There is no simple answer but the following points are important. a. It should be relatively easy for the user to start using the system. b. As far as possible, the system should be self-contained so that the user is not forced into accessing manuals or dealing with things that should be kept outside the system. c. The amount of effort and information required of the user to get the system to complete required tasks should be kept to minimum. d. The user should be insulated from unexpected or spurious system actions. This includes protection against being the cause of a system failure and implies that the system should also be robust and reliable. e. The system should be able to adjust to different levels of expertise between users, and as users grow in competence. f. The user should be made to feel in control of what is going on. g. The system should behave in a logical and consistent manner, enabling the user to reason about what is going on and apply what has been learned. Of course these points are rather general in nature. We now turn to a number of specific practical issues. S.S 06 June 2011 4 Types of interface There are many different types of user interfaces available. They may be broadly classified as follows: a. Command Driven Interfaces b. Menu Driven Interfaces c. Direct Manipulation Interfaces d. User Interface Management System (UIMS) e. Special Purpose Interfaces. Note. In some situations two different kinds of interfaces may be combined, e.g. a menu interface with command options. Command driven interfaces One of the long-established methods by which user can interact with the computer is by the use of commands. Commands enable the user quickly and simply to instruct the computer what to do. However they require the user to already have a knowledge of what commands are available, what they do and the rules governing how they should be typed, so they are more suited to experienced users than the end-user is a technical person, such as a computer operator or programmer, or where the end-user continually works with the same program and therefore can gain mastery of the commands. Advantages of command driven interface o Faster to use once you have learnt the commands o For computer programmer command driven interfaces are cheaper to implement. Disadvantages of command driven interface o It is sometimes difficult to remember all the commands, therefore users have to constantly refer to the software user manual o Restrict the user to using only the keyboard as the interfacing devices, while with other interfaces a wide variety of input devices can be used. o Commands must be entered at a special location on the screen and in a set format. Menu-driven interfaces Menus provide another popular form of user interface. There are many different alternative forms of menu. The simplest menus provide the user with a number of options and a simple means of selecting between them. The user is presented with a choice and therefore does not have to remember any commands. The interface is therefore suitable for beginners and infrequent users. All the user has to do is to make a choice. A special type of menu called a pop-up menu, an additional submenu pops up as a selection is made. S.S 06 June 2011 5 Help is normally made available to the user of a menudriven system by means of screens of information that can temporarily be called up and displayed on the screen during normal activities. It is best if the help information displayed is as specific as possible the user’s current activity. Help screens are normally activated by a special key. Some keyboards even have a key labelled “HELP”. Similar facilities are often available in command-driven systems and are invoked by typing a command such as “HELP”. Pull-down menus are a special type of menu used in windowing and were briefly introduced. Some variations on the same idea are pop-up menus and below an item on the screen in order to elicit a choice from the user. Advantages of menu driven interfaces o The user is presented with a list of option to choose from, they don’t need to remember commands o Free from typing errors, because user does not have to type commands. o A wide variety of input devices can be used to interface with a menu. Disadvantages of menu driven interface o Several steps required to issue a command. o Once user has learned the menu system it is bothersome to have to wait on the package to present the questions before commands can be entered. Graphical User Interface A Graphical User Interface (GUI, commonly pronounced “guey”) is an HCI based upon a graphical display. GUIs are most commonly found on workstations or PCs fitted with graphics adapters able to support highresolution graphics. A GUI is a variation of the menu-driven system of selecting commands with the use of the mouse. This system, popularised by the Apple Macintosh uses a graphical user interface. This consists of icons and “pop-up” and “drop-down” menus. A mouse is used to click on an icon to execute some operation or select options from a pop-up or drop-down menu. S.S 06 June 2011 6 Advantages of GUIs o User friendliness results in less anxiety on the part of the user. o Icons/symbols easier to recognise and provide the user with a context. o Fewer command error. o Reduce typing. Disadvantages of GUIs o May consume more screen space o For programmers the design of Graphical User Interface is more complex o Clicking an icon can produce unexpected results because of a lack of icon standard o Increase use of computer memory can lead to slower processing. S.S 06 June 2011