- Published: October 31, 2021
- Updated: October 31, 2021
- University / College: University of Technology Sydney
- Language: English
- Downloads: 1
A computer is an electronic device that accepts, manipulates and stores data and instructions. A computer is mainly made up of two components; the hardware and the software. The physical components such as the mouse, keyboard, monitor and the systems units are the hardware parts while the intangible part, the instructions that make the computer work is the software part. Computer software is a set of instructions that are written in a language that can be understood by the computer hardware that tells the computer hardware what to do. Computer software sometimes is referred to as computer programs, theycontrol the activities performed by the computer system and how they are presented to the users. However, software can be seen as a collection of many programs while a program is simply modules or small parts of codes. Computer systems use programs by executing the logical statements step by step.
The research paper is going to look at the computer software. The study will look at the history of computer software, types of computer software, challenges and the new trends in computer software.
History of computer software
1950s is the period that the first application software for business was designed. During this period software was less important and expensive in computer systems because early computers were had all of their applications hardwired. The word ‘software’ was coined around 1950s by John Turkey and it was a term used by programmers who were coding early systems (Yost, 2005). According to Evans (2004), the combination of three entrepreneurs to establish International Business Machines IBM played a critical role in the development of computer software. The company specialized in design of punch cards from 1930s to 1950s which become popular in American corporate scenes. One of the software pioneer Raymond Houghton describes the punch cards as rectangular holes card which were read by computers that did not have operating system (Glass, 1998). The punch cards were developed by FORmula TRANslation (FORTRAN) programming language of IBM which was combined by a programming language defined by the US defense department known as COmmon Business Oriented Language (COBOL). During this time the codes were run and tested using the assemblers and compilers to make programming task more friendly than assembly language (Yost, 2005).
Currently, the cost of computer software is higher in the overall computer system than the way it was in 1950s. This is attributed to the fact that the cost of hardware design was lower than hardware design during the early periods. The need for development of software to meet the increasing hardware need resulted into a software crisis. The rapid change in business environment and the conditional changes in the hardware gave a big gap in software development during the 1950s. The slow process of developing software that is error prone and complex was one of the major challenges that software developers faced.
There were no techniques of reusing codes and coming up with quick working systems. Since there was rapid growth of hardware devices in terms of technology, software programs to run those hardware become more complex with millions of codes. Such programs take a huge budget of an organization which most organizations were not ready to risk. With time the challenges have been conquered by software developers. There are new ways of coding that do not require programmers to take a lot of time. It is also possible to test the program at early state hence error and bugs are eliminated. Computer aided tools help programs in coding. There has been many development in computer software ranging from new programming languages to the reverse engineering process.
Computer software is a collection of computer programs that are sets of instructions for the computer hardware. The process of writing the programs is referred to as coding or programming and computer programmers are the people who are tasked by different organizations to perform such tasks. Software is loaded into computer memory and executed by the systems unit of the computer. Users issue commands by clicking at soft spots on the software interface so that a given task can be accomplished.
Computer users are guided by a user manual referred to as documentation in the operation of a computer. Computer software acts as a link between computer user and the hardware. Users are able to instruct the hardware through the computer software. Documentations is an important part of a software because users can be able to understand full functionality of the program as intended by the programmer.
Types of software
Computer software can be classified into two main categories: systems software and application software. System software are sets of instructions that act as an intermediary between the hardware and the application software. They are designed to issue commands to the computer hardware. They are the programs that enable the computer to load and manage all the computer resources. On the other hand application software is sets of instructions that offer users a chance to complete their tasks while using a computer system.
Systems software is complex programs that control and support the computer system and its functions. In simple language they tell the computer hardware what to do. Systems software are programs that have been developed and deployed in computer systems for the purpose of developing other programs and improving on the functionality of the computer hardware. Computer systems can early run programs developed by programmers if those computers are installed with system software. Systems software puts initial ‘life’ in a computer systems unit. Systems software can be classified into two main categories:
– Operating system
– Utility or systems support
An operating system is a complex program that manages the resources of a computer. The operating system monitors and supervises how other computer programs are using the computer hardware. This system software is designed with a sole purpose of ensuring that the computer offers services to the user in a reliable, efficient and systematic manner. The interface between the computer user and the hardware is defined by the operating system. The computer users issues command to the computer operating systems then it is the work of the operating system to render the commands to the hardware and give the feedback to the user. It is the function of the operating system to allocate process the central processing unit. The following are the functions of an operating system
Process or job scheduling-the central processing unit CPU is a very important resource of a computer. Many process want to access this resource and even others want to remain locked in this section for a longer time. It is the function of the operating system to ensure that those tasks are given access to the CPU in a proper and fair manner. Jobs or processes are queued in the main memory awaiting executing in the CPU and the operating system ensures that they are well organized and executed. There are many algorithmic technique that the operating system uses to give priority to the tasks in the main memory. Round Robin and First in First out (FIFO) are some of the techniques used by the operating systems to queue processes. The time a process will take to execute in the CPU can also be used as a technique to manage process. This means that the operating system can decide to give priority to process it perceives will take shorter time in the critical area regardless of the time it requested to use the CPU. Multitasking, multithreading and multiprocessing are some of the techniques used to process tasks.
Multitasking is a scenario where two or more tasks are served or run in the computer concurrently. It is also referred to as multiprogramming. How does it happen while the critical area of the CPU can only serve one process? The first task is executed until an interrupt such as input request occurs. As the interrupt is being served, the second program is executed in the CPU and because this process occurs so fast it is perceived to be running of more than two programs at the same time. Multithreading is where a single application is broken down into several processes and sub-processes called threads.
Handling of errors or fault tolerance- sometimes programs executed by users may encounter errors; it is the function of an operating system to display error messages with possible solutions to the users. Operating systems also offers steps or tips on how to resolve errors. The systems software ensures that computers produce correct results and continue to run even when errors occur. There are many sources of errors in computer systems such as user errors, redundant memory, error-correcting memory system hardware among other sources. If the operating system cannot correct the error(s) correctly, then it can stop the program from further execution or ignore the errors based on the user preferences.
Peripheral control- the speed between input/output devices and the CPU is very different; the CPU has high processing speed compared to input/output devices. It is the work of the operating system to ensure that the speed is regulated. Apart from the I/O devices the operating systems ensures that users have direct control of the objects such as the icons on the screen. Graphical user interface has been introduced moving away from the command line operating system. Currently, social interface where users are guided through their applications with the use of carton like character, graphics, and animation and voice commands.
Types of operating systems
Operating systems are very important computer software because it enables the hardware component to function. There are many characteristics that are used to categorize types of operating systems namely; number of users it can handle concurrently, number of processes that can be processed at the same time and type of interface. Single user operating systems are those system software that allow only one user to accomplish a task at a time on a computer while multi-user operating systems is that which has the capabilities of handling more than one user requent apparently at the same time. This means that if two users can request services from an operating systems at the same time and they will be served. Base on the tasks, there are the operating systems that only allow a single task to be executed at a time it is referred to as single task operating systems. Multitask operating systems handles more than one task simultaneously. This means that the interchange of the running program in the CPU is so fast such that it appears to be running more than one task at a time. Another way of classifying the types of computer systems is by looking at the human computer interface. In this category, operating systems can be classified as command-line, menu driven or graphical user interface (GUI). Command line operating systems are those systems software that users could type a command in a prompt window to execute tasks in a computer. Users has to follow a given format of writing commands so that they can be understood by the computer hardware. An example of such system is the Microsoft operating system known as MS-DOS. Menu driven operating system is an improvement from the command line where users executed commands by selecting items from a list known as a menu. Graphical user interface is an operating system that presents commands to the users in terms of small pictures known as icons. Computer commands and instructions are retrieved by clicking on the icons.
Operating systems can also be classified based on the systems in which they are going to run. Below is a more detailed view of these features used to categorize operating system.
Mobile device operating systems- this is a type of operating system designed to run small devices such as handheld computers, set-top boxes, mobile phones and factory floor equipment. The market for mobile device operating systems include: embedded linux where IBM and Motorola mobile devices are designed for this OS, Wndows CE is another designer of mobile operating systems to run on its mobile devices. Windows mobile and other handheld computers run using this type of operating systems especially Pocket PC which is designed as digital assistant, windows embedded NT 4.0 is a32-bit operating system is designed for devices that need more flexibility and capabilities that Windows CE, and Palm operating systems was designed for pen-input PDAs, it includes graphical user interface.
Desktop and notebook computer operating systems- Windows operating system from Microsoft Corporation is the leading desktop operating system globally. Its first operating system MS-DOS was used on IBM personal computers, it was a 16-bit and text based interface which has been replaced by the current graphical user interface operating systems. Windows 95 was the first replacement of the text-based operating systems and it used icon to give users direct access to tasks. This operating system was a 32-bit with characteristics such as multi-tasking, multithreading, networking and internet capabilities. The automation of hardware installing commonly known as plug-and-play was also incorporated in this operating system. Below are the subsequent versions of Microsoft Windows operating systems:
– Windows 98 which was an enhancement of Windows 95.
– Windows Millennium Edition (Windows ME) with home networking, digital media and reliability of PC features added from previous OS.
– Windows NT was designed for networking in workstations and servers.
– Windows 2000 was just a remained version of Windows NT 5.0 which had additional security feature and could run on ,multiple-processor computers.
– Windows XP it was the first upgrade of Windows 2000 and there were three versions a 32-bit consumer version, 32 bit business version and 64-bit business version.
– Windows Vista, windows 7 and windows 8 are the latest desktop and notebook operating systems with support for Wi-Fi and other multimedia features.
UNIX in another type of desktop operating systems that provides flexibility and are free of charge. This operating systems has feature such as multi-tasking, multi-processing, virtual memory management. This operating system is based suited for business because it does not require licensing and it can be used on different platforms.
Linux is a version of UNIX operating system that free. It offers multi-tasking, TCP/IP networking and virtual memory management functionality.
Macintosh operating system X (Mac OS X) is a desktop operating system designed by Apple Macintosh for its microprocessors. Currently there are 32-bit and 64-bit operating system with features such as virtual memory management, networking, Aqua user interface, multitasking and advanced multimedia.
Other desktop and notebook operating systems include the IBM’s OS/2 that supports multitasking and the capability of handling large number of applications. Sun’s Java operating systems (JavaOS) is an operating system that executes programs written in Java language.
Operating systems can also be classified as departmental server operating systems which include Novell, NetWare, Windows XP, Unix, and Linux, enterprise server operating systems such as VM, IBM’s OS/390 and OS/400 which are used for mainframe computers and supercomputer operating systems which include; Cray Inicos and AIX of IBM company.
Utility or system support programs
This is the second category of system software which supports the operations, management and users of computer systems by providing different services. System utilities have been developed to perform common tasks such as sorting records, merging, matching, checking the integrity of diskettes and creating directories and sub directories. They are also tasked with restoration of files deleted accidentally, locate files in directories and manage memory usage.
There is another category of system support referred to as system performance monitors which are designed for the purpose of monitoring the procession of tasks in a computer system. They produce computer reports detailing how computer resources are used in a computer system and also on the performance of the computer system. System security monitors are also support systems that are used to supervise the use of resources in a computer. These programs ensure that there is no unauthorized use of computer resources by the users and tasks.
They are computer programs that enable users to accomplish their tasks in the computers. Computer software can be classified into two categories; user program (tailor made) and off-shelf programs. Users programs are also referred to as proprietary application software and they address a specific need in a given industry and they cannot suit the needs of another organization. They are developed in-house by the organizational programmers and they base their designs on user requirements.
Off-shelf software are purchased or rented from vendor that develops programs for general use where an organization can use the software package as it is or make small alterations. This software can suit the needs of any organization. Off-shelf programs include:
Spreadsheets- these are the programs which are used to display electronic ledger books such as Microsoft excel, data management software-are programs that support storage, retrieval and manipulation of related data such as Microsoft Access, word processing users are able to manipulate text they include note pad, Microsoft Word etc. There are many other off-shelf programs.
Computer Software issues
These are the daily challenges that organizational managers face when making decisions concerning computer software. The issues include software evaluation and selection, software licensing, software upgrades and open source software.
Software evaluation and selection is a difficult task because of the tradeoff that managers must consider in making the decision. The initial cost, availability of administrative tools, systems capabilities and existing computing environment are some of the factors to be considered when one wants to select a software program.
Software licensing is another issue many software developers spend money and time in development process. However there are those who crack the software and use them without buying licenses. The copyright issues are on the rise and many people reproducing software programs for resale purposes. System u grade becomes an issue if the program is in-house it means that development life cycle needs to be done. Currently, hiring and marinating software an expert is becoming a challenge hence having a new team to upgrade is expensive and more challenging.
Computer software is a wide area in computer science. This study highlighted the key areas of computer software by looking at the two main types of computer software; the system software and application software. Computer software is a set of instructions that are written in a language that can be understood by the computer hardware that tells the computer hardware what to do. Computer software sometimes is referred to as computer programs, they control the activities performed by the computer system and how they are presented to the users. However, software can be seen as a collection of many programs while a program is simply modules or small parts of codes. The evolution of software has been rapid and overtaking the computer hardware which was initially ahead. More research can be done on specific area of computer software such as the operating systems or utility programs to gain more knowledge.
Ceruzzi, Paul E. (2000). A History of Modern Computing. London: The MIT Press
Cordy J.R., Dean T.R., Malton A.J. and Schneider K.A. 2002. Source transformation in software engineering using the TXL transformation system. Journal of Information and Software Technology, 44(13):827–837.
Dick, Maybach (2001). BCUG – Brookdale Computer Users Group http://www.bcug.com/
Eisenbarth T., Koschke R. and Simon D. 2003. Locating features in source code. IEEE Transactions on Software Engineering, 29(3): 195–209.
Evans, Harold. 2004. They Made America. New York, NY: Little, Brown and Company.
Glass, Robert L. 1998. In the Beginning: Recollections of Software Pioneers. Los Alamitos, CA: IEEE Computer Society Press.
Jensen J, Downing R, Waddington S, Hedges M, Zhang J, Knight G (2011) Kindura – Federating Data Clouds for Archiving Proc. Int’l Symp. On Grids and Clouds 2011. Taipei, Taiwan: Academia Sinica. http:/ / pos.sissa.it/ archive/ conferences/ 133/ 039/ ISGC%202011%20%20OGF%2031_039.pdf webcite. Accessed 13 June 2013 OpenURL
Layman, Thomas (1990). eds. The Pocket Webster School & Office Dictionary. New York: Pocket Books
Weiner, Mike and others (1990). eds. The Pocket Word Finder Thesaurus. New York: Pocket Books
Yost, Jeffrey R. 2005. The Computer Industry. Westport, CT: Greenwood Press.