unit 2 computer software

32
Unit-2 Computer Software

Upload: hardik-patel

Post on 25-Jul-2015

253 views

Category:

Engineering


0 download

TRANSCRIPT

Page 1: Unit 2 computer software

Unit-2

Computer Software

Page 2: Unit 2 computer software

Software & Hardware?

• Computer Instructions or data, anything that can be stored electronically is Software.

• Hardware is one that is tangible. The storage devices (Hard disk, CD’s etc.,), mouse, keyboard CPU and display devices (Monitor) are Hardware.

Page 3: Unit 2 computer software

Types of Software

System Software

Application Software

Page 4: Unit 2 computer software

System Software: System Software includes the Operating System and all the

utilities that enable the computer to function.

System software is a term referring to any computer software which manages and controls the hardware so that application software can perform a task.

Example:

Operating Systems, Compiler, Loader, Linker, Interpreter.

Page 5: Unit 2 computer software

Application Software:

Application Software includes programs that do real work for user.

Example:

Payroll systems, Inventory Control, Manage student database, Word Processor, Spreadsheet and Database Management System etc.,

Page 6: Unit 2 computer software

System Software: Operating System:• Operating System is a software, which makes a computer to

actually work.

• It is the software the enables all the programs we use.

• The OS organizes and controls the hardware.

• OS acts as an interface between the application programs and the machine hardware.

• Examples: Windows, Linux, Unix and Mac OS, etc.,

Page 7: Unit 2 computer software

System Software (contd):

Source Languages

Target Languages

‘C’ language ‘C’ language

‘Pascal’ language Machine language

FORTRAN language

C++ language

ADA language

Compiler: A compiler is a program that reads a program in one language – the source language and translates into an equivalent program in another language – the target language.

Page 8: Unit 2 computer software

System Software (contd):

Loader: A loader is the part of an operating system that is responsible for loading programs into memory, preparing them for execution and then executing them.

The loader is usually a part of the operating system's kernel and usually is loaded at system boot time and stays in memory until the system is rebooted, shut down, or powered off.

In Unix, the loader is the handler for the system call execve().

Page 9: Unit 2 computer software

System Software (contd):

Linker: A linker or link editor is a program that takes one or more objects generated by compilers and assembles them into a single executable program.

Linkers can take objects from a collection called a library. The objects are program modules containing machine code and information for the linker.

The linker takes care of arranging the objects in a program's address space.

Page 10: Unit 2 computer software

System Software (contd): Interpreter: An interpreter is a computer

program that translates and executes instructions written in a computer programming language line-by-line, unit by unit etc.,

An interpreter needs to be able to analyze, or parse, instructions written in the source language.

Example: Lisp systems, etc.,

Page 11: Unit 2 computer software

Application Software:

Word Processors:

Word processing is a tool that helps user in creating, editing, and printing documents. Word processors will normally have the following capabilities built into them: 

» Spell checking » Standard layouts for normal documents » Have some characters appear in bold print,

italics, or underlined » Center lines, make text line up on the left side of

the paper, or the right side of the paper » Save the document so it can be used again » print the document.

Examples: WordPerfect and Microsoft Word

Page 12: Unit 2 computer software

Application Software (contd…):

Spreadsheets: The spreadsheet packages are designed to use numbers and formulas to do calculations with ease. Examples of spreadsheets include:

» Budgets » Payrolls » Grade Calculations » Address Lists

The most commonly used spreadsheet programs are Microsoft Excel and Lotus 123.

Page 13: Unit 2 computer software

Application Software(contd…):

Graphic Presentations: The presentation programs can make giving presentations and using overheads easier.  Other uses include: 

» Slide Shows » Repeating Computer Presentations on a

computer monitor » Using Sound and animation in slide shows 

The most recognized graphic presentation programs are Microsoft PowerPoint and Harvard Graphics.

Page 14: Unit 2 computer software

Application Software(contd…):

Database Management System (DBMS):• A DBMS is a software tool that allows multiple users to store,

access, and process data into useful information. • Database programs are designed for these types of

applications: » Membership lists » Student lists » Grade reports » Instructor schedules

All of these have to be maintained so you can find what you need quickly and accurately. 

• Example:Microsoft Access, dBASE, Oracle.

Page 15: Unit 2 computer software

What is Assemblers?

• An assembler is a type of computer program that interprets software programs written in assembly language into machine language, code and instructions that can be executed by a computer.

• An assembler enables software and application developers to access, operate and manage a computer's hardware architecture and components.

• An assembler is sometimes referred to as the compiler of assembly language. It also provides the services of an interpreter.

Page 16: Unit 2 computer software

What Do Compilers Do

• A compiler acts as a translator, transforming human-oriented programming languages into computer-oriented machine languages.

– Ignore machine-dependent details for programmer

16

Programming Language(Source) Compiler

MachineLanguage(Target)

Page 17: Unit 2 computer software

What Do Compilers Do • Compilers may generate three types of code:

– Pure Machine Code• Machine instruction set without assuming the existence of

any operating system or library.• Mostly being OS or embedded applications.

– Augmented Machine Code• Code with OS routines and runtime support routines.• More often

– Virtual Machine Code• Virtual instructions, can be run on any architecture with a

virtual machine interpreter or a just-in-time compiler• Ex. Java

17

Page 18: Unit 2 computer software

The Structure of a Compiler

18

Scanner ParserSemanticRoutines

CodeGenerator

Optimizer

SourceProgram Tokens Syntactic

Structure

Symbol andAttribute

Tables

(Used by all Phases of The Compiler)

(Character Stream)

IntermediateRepresentation

Target machine code

Page 19: Unit 2 computer software

Interpreter• It helps the user to execute the source program with a few

differences as compared to compilers. The source program is just like English statements in both interpreters and compilers.

• Interpreter reads the program line by line, whereas in compiler the entire program is read by the compiler, which then generates the object codes.

• Interpreter directly executes the program from its source code. Due to this, every time the source code should be inputted to the interpreter.

• In other words, each line is converted into the object codes. It takes very less time for execution because no intermediate object code is generated.

Page 20: Unit 2 computer software

Interpreter

Page 21: Unit 2 computer software

Software Development Models

Page 22: Unit 2 computer software

Waterfall Model• Requirements – defines needed

information, function, behavior, performance and interfaces.

• Design – data structures, software architecture, interface representations, algorithmic details.

• Implementation – source code, database, user documentation, testing.

Page 23: Unit 2 computer software

Waterfall Strengths

• Easy to understand, easy to use• Provides structure to inexperienced staff• Milestones are well understood• Sets requirements stability• Good for management control (plan, staff, track)• Works well when quality is more important than cost

or schedule

Page 24: Unit 2 computer software

Waterfall Deficiencies• All requirements must be known upfront• Deliverables created for each phase are considered

frozen – inhibits flexibility• Can give a false impression of progress• Does not reflect problem-solving nature of software

development – iterations of phases• Integration is one big bang at the end• Little opportunity for customer to preview the system

(until it may be too late)

Page 25: Unit 2 computer software

When to use the Waterfall Model

• Requirements are very well known• Product definition is stable• Technology is understood• New version of an existing product• Porting an existing product to a new platform.

Page 26: Unit 2 computer software

Structured Evolutionary Prototyping Model

• Developers build a prototype during the requirements phase

• Prototype is evaluated by end users• Users give corrective feedback • Developers further refine the prototype• When the user is satisfied, the prototype code

is brought up to the standards needed for a final product.

Page 27: Unit 2 computer software

Structured Evolutionary Prototyping Steps

• A preliminary project plan is developed• An partial high-level paper model is created• The model is source for a partial requirements specification• A prototype is built with basic and critical attributes• The designer builds

– the database – user interface – algorithmic functions

• The designer demonstrates the prototype, the user evaluates for problems and suggests improvements.

• This loop continues until the user is satisfied

Page 28: Unit 2 computer software

Structured Evolutionary Prototyping Strengths

• Customers can “see” the system requirements as they are being gathered

• Developers learn from customers • A more accurate end product• Unexpected requirements accommodated• Allows for flexible design and development• Steady, visible signs of progress produced• Interaction with the prototype stimulates awareness of

additional needed functionality

Page 29: Unit 2 computer software

Structured Evolutionary Prototyping Weaknesses

• Tendency to abandon structured program development for “code-and-fix” development

• Bad reputation for “quick-and-dirty” methods• Overall maintainability may be overlooked• The customer may want the prototype delivered.• Process may continue forever (scope creep)

Page 30: Unit 2 computer software

Spiral SDLC Model• Adds risk analysis to the

waterfall model• Each cycle involves the

same sequence of steps as the waterfall process model

Page 31: Unit 2 computer software

Spiral Model Strengths

• Provides early indication of risks, without much cost• Users see the system early because of rapid

prototyping tools• Critical high-risk functions are developed first• The design does not have to be perfect • Users can be closely tied to all lifecycle steps• Early and frequent feedback from users• Cumulative costs assessed frequently

Page 32: Unit 2 computer software

Spiral Model Weaknesses• Time spent for evaluating risks too large for small or low-risk

projects• Time spent planning, resetting objectives, doing risk analysis

and prototyping may be excessive• The model is complex • Risk assessment expertise is required• Spiral may continue indefinitely• Developers must be reassigned during non-development phase

activities• May be hard to define objective, verifiable milestones that

indicate readiness to proceed through the next iteration