introduction to software engineering. programming versus software engineering programming versus...

8
Introduction to Introduction to Software Engineering Software Engineering

Upload: evelyn-watts

Post on 29-Dec-2015

225 views

Category:

Documents


7 download

TRANSCRIPT

Page 1: Introduction to Software Engineering. Programming versus Software Engineering Programming versus Software Engineering programming programming 1. The process

Introduction to Introduction to Software EngineeringSoftware Engineering

Page 2: Introduction to Software Engineering. Programming versus Software Engineering Programming versus Software Engineering programming programming 1. The process

Programming versus Programming versus Software EngineeringSoftware Engineering

programmingprogramming 1. The process of translating a problem from its 1. The process of translating a problem from its

physical environment into a language that a computer physical environment into a language that a computer can understand and obey. (can understand and obey. (Webster’s New World Webster’s New World Dictionary of Computer Terms)Dictionary of Computer Terms)

2. The art of debugging a blank sheet of paper. 2. The art of debugging a blank sheet of paper. 3. A pastime similar to banging one's head against a 3. A pastime similar to banging one's head against a

wall, but with fewer opportunities for rewards. (2 and 3 wall, but with fewer opportunities for rewards. (2 and 3 fromfrom The New Hacker’s Dictionary) The New Hacker’s Dictionary)

software engineering software engineering (according to Fritz Bauer)(according to Fritz Bauer) “ “The establishment and use of sound engineering The establishment and use of sound engineering

principles in order to obtain economically software that principles in order to obtain economically software that is reliable and works efficiently on real machines.”is reliable and works efficiently on real machines.”

Page 3: Introduction to Software Engineering. Programming versus Software Engineering Programming versus Software Engineering programming programming 1. The process

Other Definitions of Other Definitions of Software EngineeringSoftware Engineering ““A systematic approach to the analysis, A systematic approach to the analysis,

design, implementation and maintenance of design, implementation and maintenance of software.” (software.” (The Free On-Line Dictionary of The Free On-Line Dictionary of Computing)Computing)

““The systematic application of tools and The systematic application of tools and techniques in the development of computer-techniques in the development of computer-based applications.” (Sue Conger in based applications.” (Sue Conger in The New The New Software Engineering)Software Engineering)

““Software Engineering is about designing and Software Engineering is about designing and developing high-quality software.” (Shari developing high-quality software.” (Shari Lawrence Pfleeger in Lawrence Pfleeger in Software Engineering -- Software Engineering -- The Production of Quality Software)The Production of Quality Software)

Page 4: Introduction to Software Engineering. Programming versus Software Engineering Programming versus Software Engineering programming programming 1. The process

Software Engineering Software Engineering is Nothing Newis Nothing New

In 1945 George Polya Published a Book In 1945 George Polya Published a Book Called Called How to Solve ItHow to Solve It Outlining Four Outlining Four Steps in Problem Solving.Steps in Problem Solving.

1. Understand the Problem (Requirements 1. Understand the Problem (Requirements

Analysis)Analysis)

2. Devise a Plan (Software Design and 2. Devise a Plan (Software Design and

Implementation Plan)Implementation Plan)

3. Carry out the Plan (Coding)3. Carry out the Plan (Coding)

4. Look Back (Testing the Solution)4. Look Back (Testing the Solution)

Page 5: Introduction to Software Engineering. Programming versus Software Engineering Programming versus Software Engineering programming programming 1. The process

Development CostsDevelopment Costs Analysis by Capers JonesAnalysis by Capers Jones

0 10 20 30 40

Education

QA

Design

Clerical

Planning

Integration

Coding

Meetings

Paperwork

Defect Rem.

Page 6: Introduction to Software Engineering. Programming versus Software Engineering Programming versus Software Engineering programming programming 1. The process

The Origin of Software The Origin of Software DefectsDefects

IBM Corp.

TRW Corp.

Mitre Corp.

Nippon Electric

Design Errors 45% 60% 64% 60%

Coding Errors 25% 40% 36% 40%

Bad Fixes 20%

Doc. Errors 5%

Admin. Errors 5%

Page 7: Introduction to Software Engineering. Programming versus Software Engineering Programming versus Software Engineering programming programming 1. The process

Maintenance CostsMaintenance Costs

0

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1970 1980 1990 2000

All Other Costs

Maintenance Cost

Page 8: Introduction to Software Engineering. Programming versus Software Engineering Programming versus Software Engineering programming programming 1. The process

Development Development SchedulesSchedules For Large CompaniesFor Large Companies

– 30% of software projects are canceled 30% of software projects are canceled before completionbefore completion

– 62% experience significant cost /schedule 62% experience significant cost /schedule overruns and/or offer fewer features than overruns and/or offer fewer features than originally specifiedoriginally specified

– Less than 9% finish on time, within Less than 9% finish on time, within budget, and satisfy user needsbudget, and satisfy user needs

– The mode is to finish over a year late and The mode is to finish over a year late and cost almost twice original estimatescost almost twice original estimates