7
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

Chapter 2 Software Concepts 2015-16

  • Upload
    sangita

  • View
    113

  • Download
    2

Embed Size (px)

DESCRIPTION

System software - Operating System, Language ProcessorsUtility softwareApplication software- General Purpose, Customized softwareOpen-Source conceptsProgramming methodologyFinite and Infinite loopEntry-controlled and Exit controlled loop

Citation preview

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