C o m p u t er F un d a m en t a l s :
C o m p u t er F un d a m en t a l s :
P r ad e e p K . S i nh a & P r i ti
P r ad e e p K . S i nh a & P r i ti
S i nha
Si nha
Computer Fundamentals: Pradeep K. Sinha & Priti Sinha
Learning Objectives
In this chapter you will learn about:
▪ Term “Software” and its relationship with “Hardware”
▪ Various types of software and their examples
▪ Relationship among hardware, system software,
application software, and users of a computer
system
▪ Different ways of acquiring software
▪ Various steps involved in software development
▪ Firmware
▪ Middleware
Ref Page 172 Chapter 10: Computer Software Slide 2/17
Computer Fundamentals: Pradeep K. Sinha & Priti Sinha
Software
▪ Hardware refers to the physical devices of a
computer system.
▪ Software refers to a collection of programs
▪ Program is a sequence of instructions written in
a language that can be understood by a computer
▪ Software package is a group of programs that solve
a specific problem or perform a specific type of job
Ref Page 172 Chapter 10: Computer Software Slide 3/17
Computer Fundamentals: Pradeep K. Sinha & Priti Sinha
Relationship Between Hardware and
Software
▪ Both hardware and software are necessary for a
computer to do useful job. They are complementary
to each other
▪ Same hardware can be loaded with different
software to make a computer system perform
different types of jobs
▪ Except for upgrades, hardware is normally a
one- time expense, whereas software is a
continuing expense
▪ Upgrades refer to renewing or changing components
like increasing the main memory, or hard disk
capacities, or adding speakers, modems, etc.
Ref Page 173 Chapter 10: Computer Software Slide 4/17
Computer Fundamentals: Pradeep K. Sinha & Priti Sinha
Types of Software
Most software can be divided into two major categories:
▪ System software are designed to control the
operation and extend the processing capability of
a computer system
▪ Application software are designed to solve a
specific problem or to do a specific task
Ref Page 173 Chapter 10: Computer Software Slide 5/17
Computer Fundamentals: Pradeep K. Sinha & Priti Sinha
System Software
▪ Make the operation of a computer system more effective
and efficient
▪ Help hardware components work together and provide
support for the development and execution of application
software
▪ Programs included in a system software package are
called system programs and programmers who
prepare them are called system programmers
▪ Examples of system software are operating systems,
programming language translators, utility programs, and
communications software
Ref Page 173 Chapter 10: Computer Software Slide 6/17
Computer Fundamentals: Pradeep K. Sinha & Priti Sinha
Application Software
▪ Solve a specific problem or do a specific task
▪ Programs included in an application software
package are called application programs and the
programmers who prepare them are called
application programmers
▪ Examples of application software are word
processing, inventory management, preparation of
tax returns, banking, etc.
Ref Page 174 Chapter 10: Computer Software Slide 7/17
Computer Fundamentals: Pradeep K. Sinha & Priti Sinha
Logical System Architecture
HARDWARE
(Physical devices/components
of the computer system)
SYSTEM SOFTWARE
(Software that constitute the operating and
programming environment of the computer system)
APPLICATION SOFTWARE
(Software that do a specific task or solve a specific problem)
USERS
(Normally interact with the system via the
user interface provided by the application
software)
Relationship among hardware, system software, application software, and users of a
computer system.
Ref Page 175 Chapter 10: Computer Software Slide 8/17
Computer Fundamentals: Pradeep K. Sinha & Priti Sinha
Ways of Acquiring Software
▪ Buying pre-written software
▪ Ordering customized software
▪ Developing customized software
▪ Downloading public-domain software
Each of these ways of acquiring software has its own
advantages and limitations
Ref Page 176 Chapter 10: Computer Software Slide 8/17
Computer Fundamentals: Pradeep K. Sinha & Priti Sinha
Advantages and Limitations of
Buying Pre-written Software
▪ Usually costs less
▪ Planned activity can be stared almost immediately
▪ Often, operating efficiency and the capability to
meet specific needs of user more effectively in not
as good for pre-written software packages as for
in-house developed software packages
Ref Page 176 Chapter 10: Computer Software Slide 10/17
Computer Fundamentals: Pradeep K. Sinha & Priti Sinha
Advantages & Limitations of Ordering
Customized Software
▪ User need not maintain its own software development team,
which is an expensive affair
▪ User needs to always depend on the vendor for carrying out
the changes and the vendor may separately charge for
every request for change
Ref Page 176 Chapter 10: Computer Software Slide 11/17
Computer Fundamentals: Pradeep K. Sinha & Priti Sinha
Advantages & Limitations of Developing
Customized Software
▪ Easier to carry out changes in the software, if it
is developed in-house
▪ Developing software in-house means a
major commitment of time, money, and
resources
▪ In-house software development team needs to be
maintained and managed
Ref Page 176 Chapter 10: Computer Software Slide 12/17
Computer Fundamentals: Pradeep K. Sinha & Priti Sinha
Advantage & Limitations of Downloading
Public-domain Software
▪ Available for free or as shareware, and are usually accompanied
with source code
▪ Usually community-supported as author does not support users
directly
▪ Can be downloaded and used immediately
▪ They may not be properly tested before release
▪ Open Source Software (OSS) are becoming popular due to:
▪ Allows any user to download, view, modify, and redistribute
▪ User can fix bugs or change software to suit needs
▪ Copyright is protected for both original and subsequent
authors
▪ Not all open source software are free and vise-verse
Ref Page 178 Chapter 10: Computer Software Slide 13/17
Computer Fundamentals: Pradeep K. Sinha & Priti Sinha
Software Development Steps
Developing a software and putting it to use is a
complex process and involves following steps:
▪ Analyzing the problem at hand and planning the
program(s) to solve the problem
▪ Coding the program(s)
▪ Testing, debugging, and documenting the program(s)
▪ Implementing the program(s)
▪ Evaluating and maintaining the program(s)
Ref Page 178 Chapter 10: Computer Software Slide 14/17
Computer Fundamentals: Pradeep K. Sinha & Priti Sinha
Firmware
▪ Firmware is software substituted for hardware and
stored in read-only memory
▪ Firmware technology has enabled production of various
types of smart machines having microprocessor chips
with embedded software
Ref Page 179 Chapter 10: Computer Software Slide 15/17
Computer Fundamentals: Pradeep K. Sinha & Priti Sinha
Middleware
▪ Basic idea is to have a separate software layer to:
▪ Act as “glue” between client and server parts
of application
▪ Provide programming abstraction
▪ Mask heterogeneity of underlying network, hardware,
and OS
▪ Encourages three-tier software architecture against
two- tier popularized by Server-Client architecture
Ref Page 179 Chapter 10: Computer Software Slide 16/17
Computer Fundamentals: Pradeep K. Sinha & Priti Sinha
Key Words/Phrases
▪ Application programmers ▪ Pre-written software
▪ Application programs ▪ Public-domain software
▪ Application software ▪ Shareware
▪ Computer program ▪ Software
▪ Customized software ▪ Software package
▪ Database ▪ Spreadsheet
▪ Education software ▪ System programmers
▪ End-to-end solution ▪ System programs
▪ Entertainment software ▪ System software
▪ Firmware ▪ Turnkey solution
▪ Graphics software ▪ User-supported
▪ Hardware software
▪ Middleware ▪ Utilities
▪ Open Source Software ▪ Word-processing
▪ Personal assistance software
Ref Page 181 Chapter 10: Computer Software Slide 17/17