Unit 3
Unit 3
Structure
3.1 Introduction
3.2 Objectives
3.3 System Software
3.3.1 Operating Systems
3.3.2 Language Translators
3.3.3 Utility Programs
3.4 Application Software
3.4.1 Programming Languages
3.5 Difference between Application Software and System Software
3.6 Open Source Software
3.7 Acquiring application software
3.8 Summary
3.9 Unit End Exercises
3.10 References and Suggested Further Readings
3.1 INTRODUCTION
The word software collectively refers to various kinds of programs used
to operate computers and related devices. A program is a sequence of
instructions that a computer can interpret and execute. Programs can be built
into the hardware itself, or they may exist independently in a form known
as software. Hardware describes the physical components of computers and
related devices.
Software may be distributed on floppy disks, CD-ROMs, and on the Internet.
It is usually stored on an external long-term memory device, such as a hard
drive or magnetic diskette. When the program is in use, the computer reads
it from the storage device and temporarily places the instructions in random
access memory (RAM). The process of fetching and then performing
the instructions is called “running,” or “executing,” a program. Software
programs and procedures that are permanently stored in a computer’s read-
only memory (ROM) are called firmware.
The two main types of software are system software and application software.
Application software consists of programs that are aimed to help users in
solving particular computing problems. Microsoft Edge for web browsing,
Adobe Photoshop for developing computer graphics, social media tools
like WhatsApp, Facebook, Twitter and Messenger for instant messaging
all lies in the application software category. The other class of software is
the system software, which encompasses the programs that heavily interact
with computer resources and provide services to other programs. Popular
examples in this are Operating Systems (OS), hardware drivers, compiler
etc.
33
Information Technology
for Managers 3.2 OBJECTIVES
After reading this unit, you should be able to
●● Describe about the different types of operating systems and their
functions;
●● State the characteristics of system software and application software;
●● Differentiate between compiler and interpreters;
●● Differentiate between application software and system software;
●● Enumerate the advantages and disadvantages of compiles and
interpreters;
●● Define and explain the concepts and philosophy of open-source
software; and
●● Explain the process of software acquisition.
37
Information Technology usage. In some, organizations, these records are also used to bill users for
for Managers system and resource usage. The operating system also reports any attempted
breaches of security.
File Management
An operating system performs file management functions to ensure that the
files are available to CPU when needed and that they are protected from
access by unauthorized users. Many computers support multiple users who
store files on centrally located disks or tape drives. The operating system
must be able to resolve what to do if more than once user requests access to
the same file at the same time. Even on stand-alone personal computers with
only one user, file management is needed to keep track of where files are
located, what size they are, when they were created, and who created them.
3.3.2 Language Translators
The CPU (also called processor) of a computer understands commands
in machine language, where each instruction is a series of binary digits.
Programming in machine language is not easy, as programmers have
to remember the machine codes, which are in binary format. To help
programmers, other high level programming languages have been developed
whose instructions are easy to remember for programmers as these languages
use English words. C, Java, SQL are examples of high level programming
languages. Programming languages can be divided into assembly languages
and high-level programming languages.
For any program to be executed, it has to be first converted into its equivalent
machine language program and then loaded into the memory of computer.
To perform the translations of programs, language translators are used. As
the process of programming language translations are machine dependent,
the translators fall in the system software category.
Assemblers: The computer software that translates the assembly language
programs into corresponding machine language programs are known as
assemblers. Assembly language uses mnemonics instead of binary codes
used in machine language. For example ADD R1 R2 is an assembly language
instruction for adding the contents of register R1 with the contents of register
R2 and store the result in R1. The use of mnemonics helps programmers to
remember programming codes. But still to write big programs like a word
processing software can be very cumbersome in assembly language.
Compiler and Interpreter: Compiler and interpreter are used to translate
a high level programming language program into a machine language
program. As the translation process is very cumbersome, some compilers
first translate the source code (the program in high-level language) into
the equivalent assembly language program and then use the assemblers for
the next step. To define, a compiler is a program that translates a source
text written in a language A into a target program in language B, whereas,
interpreter is a program which directly executes the program in a given
programming language A.
38
Computer Software
Machine
Program Computer
Interpreter Language
Statement System
Statement
Statement
Translations
Execution
Machine
Computer
Compiler Language
Program
Program
Translations
Machine
Computer
Language
System
Program
Program
Execution
Fig 3.2: Working of Compiler
39
Information Technology Advantages and Disadvantages of Interpreter over Compiler
for Managers
Advantages:
●● As compared to compiler no synthesis phase is required in interpreter:
Neither there is a need to learn target language B nor the target code is
to be generated. Thus interpreters don’t have synthesis phase.
●● Direct Execution: There is no intermediate compilation phase so the
code is directly executed.
Disadvantages:
●● Efficiency Loss: As the code is executed on the fly, the efficiency
of the program is low. In compilers, there is a separate phase for
optimization of the program code.
●● Interpreter must be available on target machine: The compiled code
can be executed on any similar machine. The code needs not to be
compiled every time. For languages, which are interpreter based, the
interpreter must be available on each machine where the code is to be
executed.
Activity A
Why is there a difference between High-Level and Low level languages?
……………………………………………………………………………
……………………………………………………………………………
……………………………………………………………………………
……………………………………………………………………………
……………………………………………………………………………
……………………………………………………………………………
In-house
development
Build the
Software
Contract
Application
Software
Standard
Buy the package
Software
Customized
Package
Build the software If the requirements of the company are unique or specific,
then the decision to build the software may be taken. If the organization has
the required talent and time, it may be built by the company itself. This
kind of development is known as in-house development. Also the company
may obtain customized software from software vendors. Such software
developed for particular companies are called contract software.
Buy the software The Company has another option of purchasing, leasing,
or renting software from software companies, who develop programs
and sell them to many computer users and organizations. The software
developed for the general market is called off-the-shelf software. They are
readily available and many companies use them to support their business
processes.
Customized Software The Company can also opt to go for a mix of both
buy and build decision. In that case, the company can purchase some off-
the-shelf available software, and customize it to its needs by in-house or
external personnel. There are software vendors in the market who provide a
range of services like installing, modifying software, training end users, etc.
They can be contracted to do the customization.
3.8 SUMMARY
Computer software have developed so much over the past years that
it is very difficult to cover all aspects of the same. System software and
application software represents two broad levels of categorization. System
software encompasses of the operating system, language translators, and
the utility programs. Application software is aimed to solve particular user
computing problems. Open source software is distributed with the source
code and freely available at a fraction of cost as compared to proprietary
46
software. Acquiring application software is an important business activity Computer Software
and requires to be managed carefully.
47