Software Concepts:
Software: A set of instructions that perform a particular task is called a program. Software is
a set of computer programs related to the effective operation of a computer system.
Types of Software:
System software is a set of one or more programs that are basically designed to control the
operation of a computer system. Some common examples of System Software as follows:
1. Operating System 2. Language Processors
Operating System: An operating system is a master control program that runs the computer.
When the computer is switched on, operating system is the first program loaded into the
computer’s memory. For PCs, some of the most popular operating systems are Microsoft
Windows, Linux, Mac OS, Solaris, BOSS, etc.
Need for operating system
1. Operating system provides a software platform, on top of which, other programs, called
application programs are run.
2. It acts as an interface between a user and the hardware
3. It controls all the operation and data movement in and out of computer.
4. It allows the computer to manage its own resources such as memory, monitor, keyboard,
printer etc.
Functions of an Operating System
A. Processor Management: This deals with the management of the CPU. The operating
system takes care of the allotment of CPU time to different processes. This is called
scheduling. Two types of scheduling techniques are:
1. Priority Scheduling: Each task is given CPU time according to the priority
assigned to it. The CPU executes the task till it is completed or there is interrupt
request. The drawback is that small job has to wait for long time when a long
duration job with higher priority is being executed.
2. Round Robin Scheduling: Each task is given a fixed amount of time to execute.
The CPU continues with the execution till either the allotted time is over or there
is some interrupt request or the task is completed before the allotted time. If the
task is not completed at the end of the allotted time, it is put at the end of the
queue.
B. Device Management: The operating system communicates with hardware and the
attached devices and maintains a balance between them and the CPU. This is because
CPU processing speed is much higher than that of I/O devices. In order to optimize
the CPU time, the operating system employs two techniques:
Utility Software
Operating System Language Processors General Purpose Customized Software
Compiler Assembler Interpreter
Software
System Software Application Software
1. Buffering: It is a process of storing data in memory area called buffer while data is
being transferred between two devices or between a device and an application.
2. Spooling (Simultaneous peripheral Operation On Line): It is used for
processing different tasks on the same Input / Output device. Consider more than one
user on a network sharing the same printer. The OS temporarily stores the data of
every user on the hard disk of the computer to which printer is attached. Then, it sends
the data from the hard disk to printer one by one.
C. Memory Management: In a computer, both the CPU and the I/O devices interact
with the memory. When a program needs to be executed it is loaded onto the main
memory till the execution is complete. Thereafter that memory space is free and is
available for another program. The techniques used by the OS are
1. Partitioning: The memory is divided into partitions of same or different sizes. The
memory is allocated when a program is loaded on to the memory. So, more than one
program is stored in the memory.
2. Virtual Memory: This is used when a program larger than the main memory is
executed. The OS divides the main memory into equal sizes called pages. A part of
the program resides in the main memory called active set. The rest of the program is
in the secondary storage in the form of sectors/tracks or blocks. With the help of PMT
(Page Map Table) the OS keeps track of which page of main memory is storing which
block of secondary memory.
D. File Management: The operating system manages the files, folders and directory on a
computer. Any data on a computer is stored in the form of files and the operating
system keeps information about all of them using File Allocation Table (FAT). The
FAT stores general information about files like filename, type (text or binary), size,
starting address, access mode (sequential/indexed sequential/direct/relative). The file
manager updates the FAT.
Types of Operating system
1. Single User: Allows one user to operate the computer and run different programs on the
computer. MS DOS is a common example of single user operating system.
2. Multi-user OS: Allows two or more users to run programs at the same time on a single
computer system. Linux and UNIX are common examples of multi user operating
system.
3. Multiprocessing OS: Have two or more processors for a single running process.
Processing takes place in parallel and is also called parallel processing. UNIX, Linux and
Windows 7 are the examples.
4. Time Sharing OS: It allows execution of more than one tasks or processes concurrently.
For this, the processor time is divided amongst different tasks. The division of time is
called time sharing.
5. Real time OS: Responds to input instantly. Real-time operating systems are commonly
found and used in robotics, complex multimedia and animation, communications and has
various military and government uses. LYNX and Windows CE are examples of real
time operating systems.
6. Distributed Operating System: It is used on networks as it allows shared data/files to
be accessed from any machine on the network in a transparent manner.
7. Interactive OS: It provides a Graphic User Interface (GUI) through which the user can
easily navigate and interact.
Commonly Used Operating Systems
1. Windows
2. Linux: It is free and open source software i.e,, the source code is available, modified
and redistributed.
3. BOSS (Bharat Operating System Solutions): It is the Indian distribution of Linux.
4. UNIX: It is a multitasking, multiuser operating system.
5. Solaris: It is free UNIX based operating system introduced by Sun Microsystems. It
is now known as Oracle Solaris.
Mobile Operating System
Android: It is Google’s open and free operating system. It is a Linux derived operating
system. The latest Android version released is 4.2.2. The different versions have dessert
inspired codenames like Cupcake, Honeycomb, Ice Cream Sandwich and Jelly Bean.
Symbian: This mobile OS by Nokia designed for Smartphone. The latest symbian releases –
Symbian Belle can support 48 languages.
Language Processors:
The computer understand instructions in machine code i.e., in the form of 0 and 1. The
programs are written in English like high level language called source code. The source code
must be converted into machine language in order to be executed. The translator program is
used to translate the program written in high-level language into machine code is called
language processor. It can be any of the following three types:
1. Assembler It is a program that translates an assembly language program into a
machine language program.
2. Compiler It is a program that translates a high-level language program into a machine
language program in one go. E.g. C++ Compiler
The program translated into machine code is called the object program. The source
code is translated to object code successfully, if it is free of errors. If there are any
errors in the source code, the compiler specifies the errors at the end of compilation
with line numbers. The errors must be removed before the compiler can successfully
recompile the source code again.
3. Interpreter It is a program that translates a high-level language program into a
machine language program line by line. Visual Basic Interpreter
If there is an error in the statement, the interpreter terminates its translating process at
that statement and displays an error message.
Note: A compiler is faster and larger (in bytes) than interpreter. The object code produced
by the compiler is permanently saved for future reference whereas it is not saved in an
interpreter.
Utility Software: A Utility Program is designed to perform maintenance work on a
computer system or on any of its components. Examples are:
1. Backup This program makes the backup copy of disk information. Backup means
duplicating the disk information so that in case of any damage or data loss, this backed up
data may be used.
2. Compression This program facilitates the compression of the files. Large files can be
compressed so that they take the less storage space.
3. Antivirus detection and protection software: This program helps in detecting and
removing viruses. Some popular antivirus programs are: McAffee virus scan, Norton
Anti-Virus, Kaspersky Anti-Virus. Some of the common types of viruses are – Boot
sector virus, File virus, Macro virus, Trojan Horse, Worm
Boot Sector Virus: It displaces the boot record and copies itself to boot sector i.e., where
the program to boot the OS is stored. So, first the virus is loaded and then the boot OS.
File Virus: It usually attacks executable files and attack itself to various locations in a
file. It is memory resident and wait in the memory when any program runs.
Macro Virus: It attacks the MS Word file. It damages the formatting of documents and
even may not allow editing or saving of documents.
Trojan Horse: Its code is generally hidden in games or spreadsheets and destroy the
program. It does not require any host program to embed itself. It is a complete program. It
can create bad sectors on the disk, destroy FAT and causes system to hang.
Worm: It is a program capable of replicating itself on a computer network. It does not
require a host as it is self contained program. It generally travelled from one computer to
another across communication links on a network.
4. Disk Defragmenter It speeds up disk access by rearranging the files and free space on
your computer, so that files are stored in contiguous and free space is consolidated in one
contiguous block.
5. File Management Tools: It helps the user in storing, indexing, searching and sorting files
and folders on the system. The most commonly used tool is the Windows Explorer and
Google Desktop.
6. Disk Cleaner: This utility scans for file that have not been accessed / used since long.
Such files might be occupying huge amount of memory space. It prompts the user to
delete such files to create more space on the disk. If the file is important, the user might
take a backup before deleting it.
Application software is a computer program designed to help the user in performing a
certain type of work. Application software pertains to one specific application. For instance,
software written to prepare a result for a school cannot be used to calculate salary of the
employees in the school. Application Software can be divided into different categories
depending upon their uses as follows:
1. General Purpose Application Software
2. Specific Purpose Application Software/Customized Software
General Purpose Application Software: They are designed to solve a wide range of tasks.
Examples are:
1. Word Processing Packages such as Microsoft Word and WordStar, which are used for
processing and manipulating text.
2. Spreadsheet Packages such as Microsoft Excel and Lotus 1-2-3, which are used for
calculating finances and for data analysis.
3. Presentation Packages such as Microsoft Power Point, which are used for creating
slideshow presentations.
4. Database Management Packages such as Microsoft Access and FoxPro, which are used
for working with records.
Specific purpose application software/Customized software: performs a specific task or
set of tasks. Examples are:
1. Inventory Management System It helps in managing the assets of an organization.
2. Human Resource Management System This software has various modules about the
employees of an organization. This include employee profile, leaves taken, payroll, loan
taken, promotions, bonus, training given, medical reimbursement etc.
3. Payroll System It calculates the salary of employees and generates pay slips.
4. Financial Accounting This software manages the entire business financial records. It
helps in controlling the total expenses and income details of the company, manage overall
business transactions in a financial year, etc.
5. Hotel Management It helps in managing all the activities in a hotel like booking room,
order of food items, billing etc.
6. Reservation System It is used for online reservation of railway and airplane tickets, hotel
reservation etc.
7. Weather Forecasting system: This software makes it possible to forecast the weather for
days and even months in advance.
8. School Management System: Also called School Information System of SIS. It is a
system that manages all of a school’s data in a single integrated application.
Open Source Concepts
Softwares are mainly categorized into the following categories based on their licenses:
1. Proprietary 2. Shareware 3. Freeware 4. Open Source 5. Free Software
Proprietary software: It is commercial software available only with the purchase of a
license. Usually, if particular proprietary software is to be installed on different computers,
separate copies need to be purchased for each computer.
Shareware software: It is commercial software that is distributed without payment on a trial
basis for a limited period. It has limited functionality and usually offered a download from an
internet website. The aim of shareware is to give buyers the opportunity to use the software
and judge its usefulness before purchasing license for the full version.
Freeware software: It is available for use at no cost or for an optional fee. The owner
(original developer) retained its rights. Copying and further distribution of freeware is
allowed but not modification because its source code is not available. For example Microsoft
Windows Explorer bundled up with Windows operating system.
Open Source software: It is available for use at no cost or for an optional fee. Copying,
distribution and modification of open source software is allowed, as its source code is
available.
Free Software: It is available for use at no cost, modified, copied or redistributed as source
code is also accessible.
Programming Methodology
What is a good program?
A good program means that it should produce correct and faster results, taking into account
all the memory constraints. The guidelines of good program
1. Clarity and Simplicity of Expression
I. Use library functions to make programs more powerful.
II. Follow simplicity to maintain the clarity of expression.
III. Avoid programs tricks usage i.e., whose meaning is difficult to understand by the
user.
2. Use of proper names for identifiers
I. Give meaningful name for variable and function.
II. Use proper name for constant.
III. Do not use same name like account, accountant.
IV. Do not use one letter identifier.
3. Use comments – single line and block (multiline)
4. Indentation - Leading white space at the beginning to determine the group of statements is
known as indentation.
Characteristics of a good program
Flexibility: To handle most of the changes without having to rewrite the entire program.
User friendly: Easily understood by a user. The proper message displays for the user to input
and display the result.
Portability: Ability of an application to run on different platforms (operating system).
Reliability: The ability of a program to do its intended function accurately even if there are
even small changes in the computer system. The program must be able to handle unexpected
situation like wrong input or no input.
Self-documenting code: The source code, which uses suitable name for the identifiers (
variables and methods).
Problem solving process: This activity consists of four steps:
Understanding the problem
Devising a Plan
Executing the plan
Evaluation
Problem solving methodology
I. Problem Definition / Specification: Define the problem and find out its inputs and
outputs.
II. Problem Analysis – The complex programming is break up into small modules called
modular Programming. There are two types of modular programming - Top-Down
Design, Bottom-up design
Top-Down Design: The application is designed with complex structure and divided
into modules; which is further divided into sub-module. The division continues till the
module consists of elementary process.
Bottom-Up Design: The application is designed with simple modules and then builds
into more complex structure.
III. Designing the problem: Algorithm, Flowchart
Algorithm: It is a set of instructions that describe a method for solving a problem. It
is normally written in computer code and English language. This is often called
pseudo-code.
Flowchart: The diagrammatic representation of algorithm linked by flow lines
showing the order in which they are executed. This is known as the ‘flow of control’.
IV. Coding: The process of translating the algorithm into syntax of a given language is
known as coding.
V. Testing and Debugging: Program testing means running the program, executing all
the instructions/functions and testing the logic by entering sample data in order to
check the output. Debugging is the process of finding and correcting the errors in the
program code. Bug is an error in a program. The three types of errors are - Syntax
error, Run-time error, Logical error
Syntax error: Every programming language has its own rules called syntax. Any
violation of these rules results in a syntax error. These errors are recognized during
compilation time. For example, missing semicolon, data type not defined etc.
Logical error Programmer makes errors while writing program is called logical error.
It results in an incorrect or unexpected result. These errors are not recognized by the
compiler. Use paper and pen; draw the memory cell of all the variables used in a
program; execute the program and make the changes in a memory cell and find out
the error. This method is called dry run. For example, the initial value of accumulator
is 0 in finding the factorial of a given number.
Run-time error: It is an error that causes abnormal termination of program during
running time. For example, division by zero, square roots of negative number etc.
VI. Documentation: It includes the problem definition, design documents, a description
of the test perform, a history of the program development and its different versions
and a user’s manual. Manual includes method of input data, running the program and
obtaining and interpreting the result.
VII. Program Maintenance: All activities that occur after a program coding operation are
part of the program maintenance. It means finding and eliminating previously
undetected program errors, adding new modules, update existing modules and
updating the documentation.
Finite loop: The loop is executed finite number of times.
Infinite loop: The loop is executed infinite number of times.
Entry-controlled loop: The condition is checked when entering the loop. For example, while
and for
Exit-controlled loop: The condition is checked when exiting the loop. For example, do-while