You are on page 1of 12

COMPUTER SOFTWARE

A computer system needs more than the hardware described above in order
to function. The hardware by itself, even when powered-up, is incapable of
producing useful output. It must be instructed how to direct its operations in order
to transform input into output of value to the user. This is the role of software; i.e., to
provide the detailed instructions that control the operation of a computer system.
Just as hardware comprises the tangible side of the computer, so software is the
intangible side of the computer. If the CPU is the physical brain of the computer,
then software is its mind.
Software instructions are programmed in a computer language, translated
into machine language, and executed by the computer. Between the user and the
hardware (specifically, the memory), generally stand two layers of software: system
software and application software.

SYSTEM SOFTWARE
System software directly controls the computer’s hardware, whereas
application software is one level removed from hardware. System software manages
the computer’s resources, enables the various components of the computer to
communicate, runs application software, and makes the hardware respond to the
user’s needs. When the system software operates efficiently, the difficult operations
of controlling the hardware are transparent to the user. System software includes
four main types:
 The operating system provides an interface between the computer hardware
and the user or the application software. Because of its central importance, the
operating system will be discussed in more detail below.
 Language translators convert application programs and any other software
programs into the machine language (discussed below) that actually controls
the computer's operations. The Machine can only understand the machine
level language or binary language 0's & 1's. The language translator rectify
the errors within the program through different ways. There are 3 types of
language translator, they are as follows :-

1 Notes by Teresah W
 Compiler.
 Interpreter.
 Assembler.

 Device drivers: A device driver is a program that controls a particular type of


device that is attached to your computer. There are device drivers for printers,
displays, CD-ROM readers, diskette drives, and so on. When you buy an
operating system, many device drivers are built into the product. However, if
you later buy a new type of device that the operating system didn't anticipate,
you'll have to install the new device driver. A device driver essentially
converts the more general input/output instructions of the operating system
to messages that the device type can understand.
 Utility programs Utility Software is a kind of system software designed to
help, analyse, configure, optimize and maintain the computer. A single piece
of utility software is usually called a utility or tool. If we are having
any problem related to system then we can solve it through utility software.
Utility programs perform various specialized "housekeeping" tasks, such as
file management, virus protection, disk defragmentation, program installation
and uninstallation, file and disk back up, disk formatting, and providing
screen saver programs. This list is far from exhaustive. The user directly
controls most utility programs, although some utility programs can be set to
run automatically (e.g.; screen savers and anti-virus scanning).
Computers of all types require system software to coordinate their resources.
The system software for a single-user PC is not nearly as complex as the system
software for a multiuser mainframe computer. However, as the PC’s system capacity
has increased, the sophistication of its system software also has increased. Many of
the features once found only in mainframe and minicomputer systems have been
incorporated into PCs.
OPERATING SYSTEMS.

An Operating System is a program designed to run other programs on a computer.


A computer's operating system is its most important program. It is considered as the
backbone of a computer managing both software and hardware device. Operating

2 Notes by Teresah W
systems are responsible for each and everything from the control and allocation of
memory to input from external devices and output to computer display.

An operating system also plays a vital role in security. Its job includes
preventing unauthorized user from accessing the computer system
The operating system has two primary functions.

Following are some of important functions of an operating System.

 Memory Management
 Processor Management
 Device Management
 File Management
 Security
 Control over system performance
 Job accounting
 Error detecting aids
 Coordination between other software and users

Memory Management

Memory management refers to management of Primary Memory or Main Memory.


Main memory is a large array of words or bytes where each word or byte has its own
address.

Main memory provides a fast storage that can be accessed directly by the CPU. For a
program to be executed, it must in the main memory. An Operating System does the
following activities for memory management −

 Keeps tracks of primary memory, i.e., what part of it are in use by whom,
what part are not in use.
 In multiprogramming, the OS decides which process will get memory when
and how much.
 Allocates the memory when a process requests it to do so.
 De-allocates the memory when a process no longer needs it or has been
terminated.

Processor Management

In multiprogramming environment, the OS decides which process gets the processor


when and for how much time. This function is called process scheduling. An
Operating System does the following activities for processor management −

 Keeps tracks of processor and status of process. The program responsible for
this task is known as traffic controller.
 Allocates the processor (CPU) to a process.

3 Notes by Teresah W
 De-allocates processor when a process is no longer required.

Device Management

An Operating System manages device communication via their respective drivers. It


does the following activities for device management −

 Keeps tracks of all devices. Program responsible for this task is known as the
I/O controller.
 Decides which process gets the device when and for how much time.
 Allocates the device in the efficient way.
 De-allocates devices.

File Management

A file system is normally organized into directories for easy navigation and usage.
These directories may contain files and other directions.

An Operating System does the following activities for file management −

 Keeps track of information, location, uses, status etc. The collective facilities
are often known as file system.
 Decides who gets the resources.
 Allocates the resources.
 De-allocates the resources.

Other Important Activities

Following are some of the important activities that an Operating System performs −

 Security − By means of password and similar other techniques, it prevents


unauthorized access to programs and data.
 Control over system performance − Recording delays between request for a
service and response from the system.
 Job accounting − Keeping track of time and resources used by various jobs
and users.
 Error detecting aids − Production of dumps, traces, error messages, and other
debugging and error detecting aids.
 Coordination between other softwares and users − Coordination and
assignment of compilers, interpreters, assemblers and other software to the
various users of the computer systems.

There are numerous operating systems. Several of the most popular are discussed
below:
 DOS (Disk Operating System) is for single-user IBM-compatible computers.
Microsoft Corporation sells this product under the name MS-DOS (Microsoft
4 Notes by Teresah W
Disk Operating System) and licenses another version, called PC-DOS, to IBM
for use in its personal computers. DOS was written for the microcomputer
technology of the early 1980s. An enormous number of microcomputers still
run under DOS. Even though there have been numerous improvements to the
software since its introduction, limitations still exist. It is not GUI-capable.
Nor can it take full advantage of today's 32-bit processors (e.g., Intel's
Pentium series). That is, application programs running on DOS computers
have direct access to only 640,000 bytes of primary memory.
 Macintosh Operating Systems (Mac OS) was introduced in the 1984 and was the
first commercial GUI platform. The latest version supports multitasking,
includes multiple Web browsers, and has built-in networking capability. It
also is able to open, edit, and save files created in DOS and Windows
platforms.
 Microsoft Windows are GUI-capable, multitasking operating systems. Unlike
the earlier Windows 3.x series, Windows 95 and 98 are true operating
systems, and do not require DOS to run. Windows 95 and 98 have broken the
640,000-byte barrier, providing direct access to millions of bytes of memory.
These operating systems take advantage of todays more powerful
microprocessor chips, such as the Intel Pentium, which address more
memory and run faster than the older microprocessors. Windows 98 is an
upgraded version of Windows 95. Windows 98 is user-friendlier than
Windows 95 and has more Internet features; e.g., Windows 98 includes
Microsoft Internet Explorer.
 Microsoft Windows NT is designed for client-server networks (discussed in
chapter 12). It provides the user with the other features of Windows 98.
 Linux is an interesting operating system because it is not proprietary software.
Its code has been made publicly available (called open-source software). This
allows users to customize the software to meet their personal needs and to
share improvements made with others. Applications that run on Linux are
commercially available; for example, from Red Hat Software and Corel
Corporation.

5 Notes by Teresah W
 UNIX was developed by Bell Laboratories in the 1970's, and is one of the few
small-scale operating systems that is both multiuser and multiprocessing
capable. This allows computers running on UNIX to process a high volume of
inputs from multiple users by using multiple CPUs simultaneously.

APPLICATION SOFTWARE

Application software is designed for people like me and you to perform tasks that we
consider useful. This might be the ability of a scientist to work out statistical information
using a set of results, or someone who wants to play the latest computer game. There are
several categories of Application software that we'll look into shortly:

 General purpose application software.


 Special purpose application software.
 Bespoke application software

Unlike systems software, applications software is designed to be used by end-users.


Applications software, in essence, sits on top of system software, as it is unable to
run without the operating system and other utilities. Application software enables
the user to direct the computer’s processing system in the tasks of manipulating and
transforming input data into useful output information. Furthermore, it allows the
user to alter the information generated by the processing system; e.g., how the
information is presented. This is the type of software with which most users interact.
It is the usual interface between user and computer. Rarely do users directly
manipulate systems software, especially the operating systems software.
Application software can be written for a specific user’s application (custom
software), or it can be mass-produced for general use (commercial or packaged
software). Naturally, custom software is usually far more expensive than
commercial software. An accounting package written for a specific company might
cost many thousands of dollars, whereas a commercial accounting package might
cost only a few hundred dollars at a retail store. The advantage of custom software is
that it is tailored to the user’s specific needs and can be seamlessly integrated into
the user’s existing software. Not only is commercial software less costly, it is also
available immediately, and the package can be evaluated before being purchased.

6 Notes by Teresah W
Application software comes in an incredible variety. It is available for
business, personal, educational, communication, and graphic design purposes—to
name the more usual categories. There is almost certainly a software package
somewhere available to suit any need. If not, there are programmers ready to be
hired to build it. For our purposes, we will limit our discussion to the four types of
application software most likely to be useful to accounting and business students:
word processing, spreadsheet, database, and presentation graphics. These four
applications are frequently sold together in a single software package. Three of the
most popular packages are Corel WordPerfect Suite, Microsoft Office 2000, and
Lotus SmartSuite. In addition to the four "standard" applications, these packages
usually include email, Internet, video processing, and desktop publishing
applications.
Word processing programs allow the user to quickly and easily create and
revise texts on the computer screen. By using word processing applications, the user
can format documents with ease, changing font size, margins, color, etc. Different
types of documents—e.g., letters, memos, and reports—are often preformatted in the
application. PC-based word processing software is so capable and inexpensive that,
in most businesses, it has become the usual tool for creating documents, even when
more powerful mainframes and minicomputers are available.
Spreadsheet programs are especially useful in business and accounting. The
electronic spreadsheet consists of rows and columns of data, which the user can
easily edit, copy, move, or print. Using numeric data entered in the spreadsheet, the
computer can perform numerous mathematical calculations automatically, many of
impressive sophistication (e.g., statistical, logical, and engineering functions). One of
the spreadsheet program’s most powerful features for business purposes is that it
enables the user to do “what-if” analyses on existing data and to input different data
for various scenarios. Non-numeric data (e.g., names and dates) may also be entered
in a spreadsheet. Spreadsheets can perform some non-mathematical operations (e.g.,
sorting and filtering) on this data, although this type of analysis is not a
spreadsheet's strength.
Database software allows the user to enter, store, maintain, retrieve, and

7 Notes by Teresah W
manipulate data. In some ways, databases pickup where spreadsheets leave off,
although a fairer assessment is probably that the relationship between the two types
of software is reciprocal. Database software is certainly more efficient and effective
at handling non-numeric data than is spreadsheet software. Conversely, numeric
data is usually easier to manipulate in a spreadsheet. In most databases, data is
entered to tables of rows and columns, similar to spreadsheets. Unlike spreadsheets,
these tables can be connected into relationships that allow users incredible versatility
in what they can do with that data. For example, data—both numeric and non-
numeric—from several individual tables may be retrieved and used together in
calculations, with the results presented in a business-style report.
Presentation graphics software enable users to ‘design professional-quality
presentations for business and educational purposes. The presentations usually
consist of formatted slides for projecting onto a screen from a computer projector or
overhead projector, or for display on a large monitor. These presentations may also
be used for online meetings and Web broadcasts. The slides can be designed to
include backgrounds, graphic images, charts, clipart, shading, animation, and audio
effects—and, of course, text, which can sometimes get lost in all of the
embellishments.
PROGRAMMING LANGUAGES AND LANGUAGE TRANSLATORS
Computer programmers use artificial languages, known as programming
languages, to write the instructions that tell computers what to do. Programming
languages have evolved over time to become more like the natural languages that
human beings speak. This section traces the evolution from machine language to
fifth-generation language.
MACHINE LANGUAGE. Programs for the first computers were written in
strings of binary digits ("bits," consisting of 0s and 1s). Thus, this first programming
language is often referred to as the first-generation language (or 1GL). It is also called
the machine language because computers—past and present—require this type of
instruction in order to perform their operations as machines. Instructions (and data)
are represented ultimately as bits because these strings of 0s and 1s correspond to
the actual binary on-off flow of electrical current through the computer's circuitry.

8 Notes by Teresah W
Because machine language is so far removed from natural language, it has a number
of inherent problems as a programming language. It is time-consuming and tedious
for humans to work in machine language, and errors in machine-language programs
are difficult to find.
ASSEMBLY LANGUAGE. Assembly language (also referred to as the second-
generation language or 2GL) was the next step in the evolution of programming
languages. In assembly language, commands are written with mnemonic codes
rather than numerical codes. These commands are translated from the source
language (the programmer’s code) into an object module (machine language). The
translation process can be done in two ways. Either an interpreter converts the
program line by line as it is being run, or a compiler converts the entire program at
one time before it is run. Interpreters are often used with beginning programmers
who are learning a language for the first time. Compilers are used in professional
settings where speed and security are important.
Interpreters and compilers are operating system programs that fall under the
general category of language translators. Each programming language requires a
specific language translator to convert it to machine language.
Assembly languages are specific to a particular processor and give the
programmer control over the lower-level operations of the computer. Compared to
third-generation languages, discussed next, assembly language requires more detail
in programming.
THIRD-GENERATION LANGUAGES. The evolution of programming
languages toward user-friendliness continued with the development of third-
generation languages (3GL). Third-generation languages, such as FORTRAN, COBOL,
Pascal, Java, PL/1, and C, are procedural languages. Program instructions are
executed in a precise sequence to accomplish a task. These languages use
recognizable statements like PRINT, INPUT, SORT, and IF, which must be compiled
into detailed machine language instructions. The linkage editor inserts pre-written
routines called library programs after compilation to produce an executable program
called the load module.
Some of the most common third-generation programming languages are

9 Notes by Teresah W
described next.
BASIC (Beginner’s All-purpose Symbolic Instruction Code) was designed as a
programming language for novices. The language uses an interpreter that evaluates
each line for syntax errors, which helps beginning programmers. The language
became very popular for microcomputer use in the late 1970s and early 1980s.
FORTRAN (Formula Translation) was developed in 1956 to provide scientists,
engineers, and mathematicians a programming language that is rich in scientific and
mathematical operations.
COBOL (Common Business Oriented Language) was designed for such
business applications as inputting records from a data file and manipulating, storing,
and printing them. A tremendous number of programs have been written in COBOL
since its inception in the early 1960s. COBOL still maintains a significant presence.
Each business day, billions of lines of COBOL code are executed.
IBM developed PL/1 (Programming Language 1) in 1964. This language
combines the mathematical features found in FORTRAN with the record-processing
features found in COBOL.
Pascal was written to take advantage of the programming technique called
structured programming, in which programs are divided into modules that are
controlled by a main module. The language was very popular in the 1980s for
teaching structured programming and advanced programming techniques in
computer science courses.
In the 1970s, AT&T Bell Labs developed a programming language called C
that could be run on various types of computers. Source code written for a
microcomputer could thus easily be converted into source code for a mainframe.
Java was developed in the mid 1990s by Sun Microsystems. It is based on a
new programming technique called object-oriented programming. Object-oriented
programming allows the programmer to define not only the characteristics of data
but also the data's associated procedures. This type of programming is especially
beneficial in a networked environment because it allows computers to quickly
transmit computations to each other, not just data requiring subsequent
computation.

10 Notes by Teresah W
FOURTH-GENERATION LANGUAGES. The development of applications
written in third-generation languages takes a considerable amount of time, often
several months to several years. Increasingly users need software that allows them to
develop simple applications quickly. Fourth-generation languages (4GL) were
developed to meet this need. They are declarative, not procedural, languages. With
the earlier generations of procedural languages, the user/programmer had to
delineate the step-by-step procedures for the computer to follow to achieve a certain
result. With fourth-generation language, however, the user simply tells the computer
what end result is desired and the computer to decides the steps needed to achieve
that goal. Also, fourth generation languages have been designed to be easy to learn
and use. In addition, they relieve professional programmers from increasing
demands to develop new programs and maintain existing ones.
Fourth-generation languages are found in a variety of applications, including
statistical packages, data base management systems, and graphical packages.
Statistical packages perform a full range of statistical analyses and enable the user to
produce reports of the results. Statistical Package for the Social Sciences (SPSS) and
Statistical Analysis System (SAS) are examples of powerful statistical packages that
are available on mainframe computers, minicomputers, and microcomputers.
Data base management systems usually contain a 4GL query language that
allows the user to retrieve data from and store data to the database. Relational data
base management systems have been standardized on a query language called
Structured Query Language (SQL). By using either a menu-driven interface or simple
commands, the end user can develop advanced queries to the database without a
programmer’s assistance.
FIFTH-GENERATION LANGUAGES. Fifth-generation languages (5GL) are
attempting to make the task of programming even user-friendlier than did the 4GLs.
This is achieved by removing most of the verbal aspects from programming. Instead,
5GLs use a visual or graphical environment that allows the user to design the
program with minimal use of programming words. For example, visual
programming allows the user to drag icons together in a windows environment in
order to assemble a program component. The 5GL development interface then

11 Notes by Teresah W
automatically creates the source language that is typically compiled with a 3GL or
4GL language compiler. Enabling users to design something as complex as a
computer program by means of graphical symbols is a difficult undertaking. Not all
attempts at developing a workable 5GL have been successful. Currently, however,
Microsoft, Borland and IBM make 5GL visual programming products for developing
Java applications that appear successful. The amazing evolution of computer
languages from strings of 0s and 1s to graphical icons says a lot about the ability of
computers to inspire us with creativity and genius.

12 Notes by Teresah W

You might also like