76
No Silver Bullet Adam Hasselbalch Hansen Introduction Essential Difficulties Past Breakthroughs High-level Languages Time-sharing Unified Programming Environments Hopes For The Silver High-level and OO-Programming Artificial Intelligence Automatic and Graphical Programming Program Verification Environments and Tools Promising Attacks on the Conceptual Essence Buy Vs. Build Requirement Refinement and Prototyping Great Designers Summary No Silver Bullet: Essence and Accidents of Software Engineering by Frederick P. Brooks Jr. Adam Hasselbalch Hansen Department of Computer Science University of Copenhagen Feb. 22, 2008

No Silver Bullet: Essence and Accidents of Software ...hjemmesider.diku.dk/.../Slides/no-silver-bullet.pdf · No Silver Bullet: Essence and Accidents of Software Engineering by Frederick

  • Upload
    others

  • View
    24

  • Download
    0

Embed Size (px)

Citation preview

Page 1: No Silver Bullet: Essence and Accidents of Software ...hjemmesider.diku.dk/.../Slides/no-silver-bullet.pdf · No Silver Bullet: Essence and Accidents of Software Engineering by Frederick

No Silver Bullet

Adam HasselbalchHansen

Introduction

EssentialDifficulties

PastBreakthroughsHigh-level Languages

Time-sharing

Unified ProgrammingEnvironments

Hopes For TheSilverHigh-level andOO-Programming

Artificial Intelligence

Automatic and GraphicalProgramming

Program Verification

Environments and Tools

Promising Attackson the ConceptualEssenceBuy Vs. Build

Requirement Refinementand Prototyping

Great Designers

Summary

No Silver Bullet: Essence and Accidentsof Software Engineeringby Frederick P. Brooks Jr.

Adam Hasselbalch Hansen

Department of Computer ScienceUniversity of Copenhagen

Feb. 22, 2008

Page 2: No Silver Bullet: Essence and Accidents of Software ...hjemmesider.diku.dk/.../Slides/no-silver-bullet.pdf · No Silver Bullet: Essence and Accidents of Software Engineering by Frederick

No Silver Bullet

Adam HasselbalchHansen

Introduction

EssentialDifficulties

PastBreakthroughsHigh-level Languages

Time-sharing

Unified ProgrammingEnvironments

Hopes For TheSilverHigh-level andOO-Programming

Artificial Intelligence

Automatic and GraphicalProgramming

Program Verification

Environments and Tools

Promising Attackson the ConceptualEssenceBuy Vs. Build

Requirement Refinementand Prototyping

Great Designers

Summary

OutlineIntroduction

Essential Difficulties

Past BreakthroughsHigh-level LanguagesTime-sharingUnified Programming Environments

Hopes For The SilverHigh-level and OO-ProgrammingArtificial IntelligenceAutomatic and Graphical ProgrammingProgram VerificationEnvironments and Tools

Promising Attacks on the Conceptual EssenceBuy Vs. BuildRequirement Refinement and PrototypingGreat Designers

Page 3: No Silver Bullet: Essence and Accidents of Software ...hjemmesider.diku.dk/.../Slides/no-silver-bullet.pdf · No Silver Bullet: Essence and Accidents of Software Engineering by Frederick

No Silver Bullet

Adam HasselbalchHansen

Introduction

EssentialDifficulties

PastBreakthroughsHigh-level Languages

Time-sharing

Unified ProgrammingEnvironments

Hopes For TheSilverHigh-level andOO-Programming

Artificial Intelligence

Automatic and GraphicalProgramming

Program Verification

Environments and Tools

Promising Attackson the ConceptualEssenceBuy Vs. Build

Requirement Refinementand Prototyping

Great Designers

Summary

OutlineIntroduction

Essential Difficulties

Past BreakthroughsHigh-level LanguagesTime-sharingUnified Programming Environments

Hopes For The SilverHigh-level and OO-ProgrammingArtificial IntelligenceAutomatic and Graphical ProgrammingProgram VerificationEnvironments and Tools

Promising Attacks on the Conceptual EssenceBuy Vs. BuildRequirement Refinement and PrototypingGreat Designers

Page 4: No Silver Bullet: Essence and Accidents of Software ...hjemmesider.diku.dk/.../Slides/no-silver-bullet.pdf · No Silver Bullet: Essence and Accidents of Software Engineering by Frederick

No Silver Bullet

Adam HasselbalchHansen

Introduction

EssentialDifficulties

PastBreakthroughsHigh-level Languages

Time-sharing

Unified ProgrammingEnvironments

Hopes For TheSilverHigh-level andOO-Programming

Artificial Intelligence

Automatic and GraphicalProgramming

Program Verification

Environments and Tools

Promising Attackson the ConceptualEssenceBuy Vs. Build

Requirement Refinementand Prototyping

Great Designers

Summary

The What Now?

I A magic weapon to kill a mythical creature ofmysterious origin

I Software projects becoming monsters of misseddeadlines, blown budgets and flawed products

I Looking forward, no silver bullets can be seen.I No startling breakthroughs ahead, but there are

several smaller ones.

Page 5: No Silver Bullet: Essence and Accidents of Software ...hjemmesider.diku.dk/.../Slides/no-silver-bullet.pdf · No Silver Bullet: Essence and Accidents of Software Engineering by Frederick

No Silver Bullet

Adam HasselbalchHansen

Introduction

EssentialDifficulties

PastBreakthroughsHigh-level Languages

Time-sharing

Unified ProgrammingEnvironments

Hopes For TheSilverHigh-level andOO-Programming

Artificial Intelligence

Automatic and GraphicalProgramming

Program Verification

Environments and Tools

Promising Attackson the ConceptualEssenceBuy Vs. Build

Requirement Refinementand Prototyping

Great Designers

Summary

The What Now?

I A magic weapon to kill a mythical creature ofmysterious origin

I Software projects becoming monsters of misseddeadlines, blown budgets and flawed products

I Looking forward, no silver bullets can be seen.I No startling breakthroughs ahead, but there are

several smaller ones.

Page 6: No Silver Bullet: Essence and Accidents of Software ...hjemmesider.diku.dk/.../Slides/no-silver-bullet.pdf · No Silver Bullet: Essence and Accidents of Software Engineering by Frederick

No Silver Bullet

Adam HasselbalchHansen

Introduction

EssentialDifficulties

PastBreakthroughsHigh-level Languages

Time-sharing

Unified ProgrammingEnvironments

Hopes For TheSilverHigh-level andOO-Programming

Artificial Intelligence

Automatic and GraphicalProgramming

Program Verification

Environments and Tools

Promising Attackson the ConceptualEssenceBuy Vs. Build

Requirement Refinementand Prototyping

Great Designers

Summary

The What Now?

I A magic weapon to kill a mythical creature ofmysterious origin

I Software projects becoming monsters of misseddeadlines, blown budgets and flawed products

I Looking forward, no silver bullets can be seen.

I No startling breakthroughs ahead, but there areseveral smaller ones.

Page 7: No Silver Bullet: Essence and Accidents of Software ...hjemmesider.diku.dk/.../Slides/no-silver-bullet.pdf · No Silver Bullet: Essence and Accidents of Software Engineering by Frederick

No Silver Bullet

Adam HasselbalchHansen

Introduction

EssentialDifficulties

PastBreakthroughsHigh-level Languages

Time-sharing

Unified ProgrammingEnvironments

Hopes For TheSilverHigh-level andOO-Programming

Artificial Intelligence

Automatic and GraphicalProgramming

Program Verification

Environments and Tools

Promising Attackson the ConceptualEssenceBuy Vs. Build

Requirement Refinementand Prototyping

Great Designers

Summary

The What Now?

I A magic weapon to kill a mythical creature ofmysterious origin

I Software projects becoming monsters of misseddeadlines, blown budgets and flawed products

I Looking forward, no silver bullets can be seen.I No startling breakthroughs ahead, but there are

several smaller ones.

Page 8: No Silver Bullet: Essence and Accidents of Software ...hjemmesider.diku.dk/.../Slides/no-silver-bullet.pdf · No Silver Bullet: Essence and Accidents of Software Engineering by Frederick

No Silver Bullet

Adam HasselbalchHansen

Introduction

EssentialDifficulties

PastBreakthroughsHigh-level Languages

Time-sharing

Unified ProgrammingEnvironments

Hopes For TheSilverHigh-level andOO-Programming

Artificial Intelligence

Automatic and GraphicalProgramming

Program Verification

Environments and Tools

Promising Attackson the ConceptualEssenceBuy Vs. Build

Requirement Refinementand Prototyping

Great Designers

Summary

OutlineIntroduction

Essential Difficulties

Past BreakthroughsHigh-level LanguagesTime-sharingUnified Programming Environments

Hopes For The SilverHigh-level and OO-ProgrammingArtificial IntelligenceAutomatic and Graphical ProgrammingProgram VerificationEnvironments and Tools

Promising Attacks on the Conceptual EssenceBuy Vs. BuildRequirement Refinement and PrototypingGreat Designers

Page 9: No Silver Bullet: Essence and Accidents of Software ...hjemmesider.diku.dk/.../Slides/no-silver-bullet.pdf · No Silver Bullet: Essence and Accidents of Software Engineering by Frederick

No Silver Bullet

Adam HasselbalchHansen

Introduction

EssentialDifficulties

PastBreakthroughsHigh-level Languages

Time-sharing

Unified ProgrammingEnvironments

Hopes For TheSilverHigh-level andOO-Programming

Artificial Intelligence

Automatic and GraphicalProgramming

Program Verification

Environments and Tools

Promising Attackson the ConceptualEssenceBuy Vs. Build

Requirement Refinementand Prototyping

Great Designers

Summary

Essential Difficulties I

I Software is not hardware

I No two-fold gains every 18 months — no Moore’sLaw

I No other technology with six O.o.M. performanceincrease in history. Ever.

Page 10: No Silver Bullet: Essence and Accidents of Software ...hjemmesider.diku.dk/.../Slides/no-silver-bullet.pdf · No Silver Bullet: Essence and Accidents of Software Engineering by Frederick

No Silver Bullet

Adam HasselbalchHansen

Introduction

EssentialDifficulties

PastBreakthroughsHigh-level Languages

Time-sharing

Unified ProgrammingEnvironments

Hopes For TheSilverHigh-level andOO-Programming

Artificial Intelligence

Automatic and GraphicalProgramming

Program Verification

Environments and Tools

Promising Attackson the ConceptualEssenceBuy Vs. Build

Requirement Refinementand Prototyping

Great Designers

Summary

Essential Difficulties I

I Software is not hardwareI No two-fold gains every 18 months — no Moore’s

Law

I No other technology with six O.o.M. performanceincrease in history. Ever.

Page 11: No Silver Bullet: Essence and Accidents of Software ...hjemmesider.diku.dk/.../Slides/no-silver-bullet.pdf · No Silver Bullet: Essence and Accidents of Software Engineering by Frederick

No Silver Bullet

Adam HasselbalchHansen

Introduction

EssentialDifficulties

PastBreakthroughsHigh-level Languages

Time-sharing

Unified ProgrammingEnvironments

Hopes For TheSilverHigh-level andOO-Programming

Artificial Intelligence

Automatic and GraphicalProgramming

Program Verification

Environments and Tools

Promising Attackson the ConceptualEssenceBuy Vs. Build

Requirement Refinementand Prototyping

Great Designers

Summary

Essential Difficulties I

I Software is not hardwareI No two-fold gains every 18 months — no Moore’s

LawI No other technology with six O.o.M. performance

increase in history. Ever.

Page 12: No Silver Bullet: Essence and Accidents of Software ...hjemmesider.diku.dk/.../Slides/no-silver-bullet.pdf · No Silver Bullet: Essence and Accidents of Software Engineering by Frederick

No Silver Bullet

Adam HasselbalchHansen

Introduction

EssentialDifficulties

PastBreakthroughsHigh-level Languages

Time-sharing

Unified ProgrammingEnvironments

Hopes For TheSilverHigh-level andOO-Programming

Artificial Intelligence

Automatic and GraphicalProgramming

Program Verification

Environments and Tools

Promising Attackson the ConceptualEssenceBuy Vs. Build

Requirement Refinementand Prototyping

Great Designers

Summary

Essential Difficulties II

Essence: The difficulties inherent in the nature ofsoftware

Accidents: Difficulties that are not inherent, butproblems nonetheless

Page 13: No Silver Bullet: Essence and Accidents of Software ...hjemmesider.diku.dk/.../Slides/no-silver-bullet.pdf · No Silver Bullet: Essence and Accidents of Software Engineering by Frederick

No Silver Bullet

Adam HasselbalchHansen

Introduction

EssentialDifficulties

PastBreakthroughsHigh-level Languages

Time-sharing

Unified ProgrammingEnvironments

Hopes For TheSilverHigh-level andOO-Programming

Artificial Intelligence

Automatic and GraphicalProgramming

Program Verification

Environments and Tools

Promising Attackson the ConceptualEssenceBuy Vs. Build

Requirement Refinementand Prototyping

Great Designers

Summary

Essential Difficulties II

Essence: The difficulties inherent in the nature ofsoftware

Accidents: Difficulties that are not inherent, butproblems nonetheless

Page 14: No Silver Bullet: Essence and Accidents of Software ...hjemmesider.diku.dk/.../Slides/no-silver-bullet.pdf · No Silver Bullet: Essence and Accidents of Software Engineering by Frederick

No Silver Bullet

Adam HasselbalchHansen

Introduction

EssentialDifficulties

PastBreakthroughsHigh-level Languages

Time-sharing

Unified ProgrammingEnvironments

Hopes For TheSilverHigh-level andOO-Programming

Artificial Intelligence

Automatic and GraphicalProgramming

Program Verification

Environments and Tools

Promising Attackson the ConceptualEssenceBuy Vs. Build

Requirement Refinementand Prototyping

Great Designers

Summary

Complexity

I Software is inherently complex

I Similar parts are made into subroutinesI Scaling software up (or down) does not linearly alter

complexityI Simplified “scale models”, as in math or physics,

won’t workI So managing software projects is complex, and

creates an understanding burden

Page 15: No Silver Bullet: Essence and Accidents of Software ...hjemmesider.diku.dk/.../Slides/no-silver-bullet.pdf · No Silver Bullet: Essence and Accidents of Software Engineering by Frederick

No Silver Bullet

Adam HasselbalchHansen

Introduction

EssentialDifficulties

PastBreakthroughsHigh-level Languages

Time-sharing

Unified ProgrammingEnvironments

Hopes For TheSilverHigh-level andOO-Programming

Artificial Intelligence

Automatic and GraphicalProgramming

Program Verification

Environments and Tools

Promising Attackson the ConceptualEssenceBuy Vs. Build

Requirement Refinementand Prototyping

Great Designers

Summary

Complexity

I Software is inherently complexI Similar parts are made into subroutines

I Scaling software up (or down) does not linearly altercomplexity

I Simplified “scale models”, as in math or physics,won’t work

I So managing software projects is complex, andcreates an understanding burden

Page 16: No Silver Bullet: Essence and Accidents of Software ...hjemmesider.diku.dk/.../Slides/no-silver-bullet.pdf · No Silver Bullet: Essence and Accidents of Software Engineering by Frederick

No Silver Bullet

Adam HasselbalchHansen

Introduction

EssentialDifficulties

PastBreakthroughsHigh-level Languages

Time-sharing

Unified ProgrammingEnvironments

Hopes For TheSilverHigh-level andOO-Programming

Artificial Intelligence

Automatic and GraphicalProgramming

Program Verification

Environments and Tools

Promising Attackson the ConceptualEssenceBuy Vs. Build

Requirement Refinementand Prototyping

Great Designers

Summary

Complexity

I Software is inherently complexI Similar parts are made into subroutinesI Scaling software up (or down) does not linearly alter

complexity

I Simplified “scale models”, as in math or physics,won’t work

I So managing software projects is complex, andcreates an understanding burden

Page 17: No Silver Bullet: Essence and Accidents of Software ...hjemmesider.diku.dk/.../Slides/no-silver-bullet.pdf · No Silver Bullet: Essence and Accidents of Software Engineering by Frederick

No Silver Bullet

Adam HasselbalchHansen

Introduction

EssentialDifficulties

PastBreakthroughsHigh-level Languages

Time-sharing

Unified ProgrammingEnvironments

Hopes For TheSilverHigh-level andOO-Programming

Artificial Intelligence

Automatic and GraphicalProgramming

Program Verification

Environments and Tools

Promising Attackson the ConceptualEssenceBuy Vs. Build

Requirement Refinementand Prototyping

Great Designers

Summary

Complexity

I Software is inherently complexI Similar parts are made into subroutinesI Scaling software up (or down) does not linearly alter

complexityI Simplified “scale models”, as in math or physics,

won’t work

I So managing software projects is complex, andcreates an understanding burden

Page 18: No Silver Bullet: Essence and Accidents of Software ...hjemmesider.diku.dk/.../Slides/no-silver-bullet.pdf · No Silver Bullet: Essence and Accidents of Software Engineering by Frederick

No Silver Bullet

Adam HasselbalchHansen

Introduction

EssentialDifficulties

PastBreakthroughsHigh-level Languages

Time-sharing

Unified ProgrammingEnvironments

Hopes For TheSilverHigh-level andOO-Programming

Artificial Intelligence

Automatic and GraphicalProgramming

Program Verification

Environments and Tools

Promising Attackson the ConceptualEssenceBuy Vs. Build

Requirement Refinementand Prototyping

Great Designers

Summary

Complexity

I Software is inherently complexI Similar parts are made into subroutinesI Scaling software up (or down) does not linearly alter

complexityI Simplified “scale models”, as in math or physics,

won’t workI So managing software projects is complex, and

creates an understanding burden

Page 19: No Silver Bullet: Essence and Accidents of Software ...hjemmesider.diku.dk/.../Slides/no-silver-bullet.pdf · No Silver Bullet: Essence and Accidents of Software Engineering by Frederick

No Silver Bullet

Adam HasselbalchHansen

Introduction

EssentialDifficulties

PastBreakthroughsHigh-level Languages

Time-sharing

Unified ProgrammingEnvironments

Hopes For TheSilverHigh-level andOO-Programming

Artificial Intelligence

Automatic and GraphicalProgramming

Program Verification

Environments and Tools

Promising Attackson the ConceptualEssenceBuy Vs. Build

Requirement Refinementand Prototyping

Great Designers

Summary

Conformity

I Software must be “intuitive” and “easy to use”

I Different designers create difference interfacesI Confirmation from a human standpoint is one thing ...I ... but interoperability is a whole other!

Page 20: No Silver Bullet: Essence and Accidents of Software ...hjemmesider.diku.dk/.../Slides/no-silver-bullet.pdf · No Silver Bullet: Essence and Accidents of Software Engineering by Frederick

No Silver Bullet

Adam HasselbalchHansen

Introduction

EssentialDifficulties

PastBreakthroughsHigh-level Languages

Time-sharing

Unified ProgrammingEnvironments

Hopes For TheSilverHigh-level andOO-Programming

Artificial Intelligence

Automatic and GraphicalProgramming

Program Verification

Environments and Tools

Promising Attackson the ConceptualEssenceBuy Vs. Build

Requirement Refinementand Prototyping

Great Designers

Summary

Conformity

I Software must be “intuitive” and “easy to use”I Different designers create difference interfaces

I Confirmation from a human standpoint is one thing ...I ... but interoperability is a whole other!

Page 21: No Silver Bullet: Essence and Accidents of Software ...hjemmesider.diku.dk/.../Slides/no-silver-bullet.pdf · No Silver Bullet: Essence and Accidents of Software Engineering by Frederick

No Silver Bullet

Adam HasselbalchHansen

Introduction

EssentialDifficulties

PastBreakthroughsHigh-level Languages

Time-sharing

Unified ProgrammingEnvironments

Hopes For TheSilverHigh-level andOO-Programming

Artificial Intelligence

Automatic and GraphicalProgramming

Program Verification

Environments and Tools

Promising Attackson the ConceptualEssenceBuy Vs. Build

Requirement Refinementand Prototyping

Great Designers

Summary

Conformity

I Software must be “intuitive” and “easy to use”I Different designers create difference interfacesI Confirmation from a human standpoint is one thing ...

I ... but interoperability is a whole other!

Page 22: No Silver Bullet: Essence and Accidents of Software ...hjemmesider.diku.dk/.../Slides/no-silver-bullet.pdf · No Silver Bullet: Essence and Accidents of Software Engineering by Frederick

No Silver Bullet

Adam HasselbalchHansen

Introduction

EssentialDifficulties

PastBreakthroughsHigh-level Languages

Time-sharing

Unified ProgrammingEnvironments

Hopes For TheSilverHigh-level andOO-Programming

Artificial Intelligence

Automatic and GraphicalProgramming

Program Verification

Environments and Tools

Promising Attackson the ConceptualEssenceBuy Vs. Build

Requirement Refinementand Prototyping

Great Designers

Summary

Conformity

I Software must be “intuitive” and “easy to use”I Different designers create difference interfacesI Confirmation from a human standpoint is one thing ...I ... but interoperability is a whole other!

Page 23: No Silver Bullet: Essence and Accidents of Software ...hjemmesider.diku.dk/.../Slides/no-silver-bullet.pdf · No Silver Bullet: Essence and Accidents of Software Engineering by Frederick

No Silver Bullet

Adam HasselbalchHansen

Introduction

EssentialDifficulties

PastBreakthroughsHigh-level Languages

Time-sharing

Unified ProgrammingEnvironments

Hopes For TheSilverHigh-level andOO-Programming

Artificial Intelligence

Automatic and GraphicalProgramming

Program Verification

Environments and Tools

Promising Attackson the ConceptualEssenceBuy Vs. Build

Requirement Refinementand Prototyping

Great Designers

Summary

Changeability

I Unlike physical products (like a building), softwarecan be changed easily

I New uses for which no one designed the software,emerges

I New interoperability requirements emerges

Page 24: No Silver Bullet: Essence and Accidents of Software ...hjemmesider.diku.dk/.../Slides/no-silver-bullet.pdf · No Silver Bullet: Essence and Accidents of Software Engineering by Frederick

No Silver Bullet

Adam HasselbalchHansen

Introduction

EssentialDifficulties

PastBreakthroughsHigh-level Languages

Time-sharing

Unified ProgrammingEnvironments

Hopes For TheSilverHigh-level andOO-Programming

Artificial Intelligence

Automatic and GraphicalProgramming

Program Verification

Environments and Tools

Promising Attackson the ConceptualEssenceBuy Vs. Build

Requirement Refinementand Prototyping

Great Designers

Summary

Changeability

I Unlike physical products (like a building), softwarecan be changed easily

I New uses for which no one designed the software,emerges

I New interoperability requirements emerges

Page 25: No Silver Bullet: Essence and Accidents of Software ...hjemmesider.diku.dk/.../Slides/no-silver-bullet.pdf · No Silver Bullet: Essence and Accidents of Software Engineering by Frederick

No Silver Bullet

Adam HasselbalchHansen

Introduction

EssentialDifficulties

PastBreakthroughsHigh-level Languages

Time-sharing

Unified ProgrammingEnvironments

Hopes For TheSilverHigh-level andOO-Programming

Artificial Intelligence

Automatic and GraphicalProgramming

Program Verification

Environments and Tools

Promising Attackson the ConceptualEssenceBuy Vs. Build

Requirement Refinementand Prototyping

Great Designers

Summary

Changeability

I Unlike physical products (like a building), softwarecan be changed easily

I New uses for which no one designed the software,emerges

I New interoperability requirements emerges

Page 26: No Silver Bullet: Essence and Accidents of Software ...hjemmesider.diku.dk/.../Slides/no-silver-bullet.pdf · No Silver Bullet: Essence and Accidents of Software Engineering by Frederick

No Silver Bullet

Adam HasselbalchHansen

Introduction

EssentialDifficulties

PastBreakthroughsHigh-level Languages

Time-sharing

Unified ProgrammingEnvironments

Hopes For TheSilverHigh-level andOO-Programming

Artificial Intelligence

Automatic and GraphicalProgramming

Program Verification

Environments and Tools

Promising Attackson the ConceptualEssenceBuy Vs. Build

Requirement Refinementand Prototyping

Great Designers

Summary

Invisibility

I No such thing as a “program blueprint”

I Many visualization representations existI but none gives a clear view.I Flow control, data control, dependency patterns,

data relationships, etc.

Page 27: No Silver Bullet: Essence and Accidents of Software ...hjemmesider.diku.dk/.../Slides/no-silver-bullet.pdf · No Silver Bullet: Essence and Accidents of Software Engineering by Frederick

No Silver Bullet

Adam HasselbalchHansen

Introduction

EssentialDifficulties

PastBreakthroughsHigh-level Languages

Time-sharing

Unified ProgrammingEnvironments

Hopes For TheSilverHigh-level andOO-Programming

Artificial Intelligence

Automatic and GraphicalProgramming

Program Verification

Environments and Tools

Promising Attackson the ConceptualEssenceBuy Vs. Build

Requirement Refinementand Prototyping

Great Designers

Summary

Invisibility

I No such thing as a “program blueprint”I Many visualization representations exist

I but none gives a clear view.I Flow control, data control, dependency patterns,

data relationships, etc.

Page 28: No Silver Bullet: Essence and Accidents of Software ...hjemmesider.diku.dk/.../Slides/no-silver-bullet.pdf · No Silver Bullet: Essence and Accidents of Software Engineering by Frederick

No Silver Bullet

Adam HasselbalchHansen

Introduction

EssentialDifficulties

PastBreakthroughsHigh-level Languages

Time-sharing

Unified ProgrammingEnvironments

Hopes For TheSilverHigh-level andOO-Programming

Artificial Intelligence

Automatic and GraphicalProgramming

Program Verification

Environments and Tools

Promising Attackson the ConceptualEssenceBuy Vs. Build

Requirement Refinementand Prototyping

Great Designers

Summary

Invisibility

I No such thing as a “program blueprint”I Many visualization representations existI but none gives a clear view.

I Flow control, data control, dependency patterns,data relationships, etc.

Page 29: No Silver Bullet: Essence and Accidents of Software ...hjemmesider.diku.dk/.../Slides/no-silver-bullet.pdf · No Silver Bullet: Essence and Accidents of Software Engineering by Frederick

No Silver Bullet

Adam HasselbalchHansen

Introduction

EssentialDifficulties

PastBreakthroughsHigh-level Languages

Time-sharing

Unified ProgrammingEnvironments

Hopes For TheSilverHigh-level andOO-Programming

Artificial Intelligence

Automatic and GraphicalProgramming

Program Verification

Environments and Tools

Promising Attackson the ConceptualEssenceBuy Vs. Build

Requirement Refinementand Prototyping

Great Designers

Summary

Invisibility

I No such thing as a “program blueprint”I Many visualization representations existI but none gives a clear view.I Flow control, data control, dependency patterns,

data relationships, etc.

Page 30: No Silver Bullet: Essence and Accidents of Software ...hjemmesider.diku.dk/.../Slides/no-silver-bullet.pdf · No Silver Bullet: Essence and Accidents of Software Engineering by Frederick

No Silver Bullet

Adam HasselbalchHansen

Introduction

EssentialDifficulties

PastBreakthroughsHigh-level Languages

Time-sharing

Unified ProgrammingEnvironments

Hopes For TheSilverHigh-level andOO-Programming

Artificial Intelligence

Automatic and GraphicalProgramming

Program Verification

Environments and Tools

Promising Attackson the ConceptualEssenceBuy Vs. Build

Requirement Refinementand Prototyping

Great Designers

Summary

OutlineIntroduction

Essential Difficulties

Past BreakthroughsHigh-level LanguagesTime-sharingUnified Programming Environments

Hopes For The SilverHigh-level and OO-ProgrammingArtificial IntelligenceAutomatic and Graphical ProgrammingProgram VerificationEnvironments and Tools

Promising Attacks on the Conceptual EssenceBuy Vs. BuildRequirement Refinement and PrototypingGreat Designers

Page 31: No Silver Bullet: Essence and Accidents of Software ...hjemmesider.diku.dk/.../Slides/no-silver-bullet.pdf · No Silver Bullet: Essence and Accidents of Software Engineering by Frederick

No Silver Bullet

Adam HasselbalchHansen

Introduction

EssentialDifficulties

PastBreakthroughsHigh-level Languages

Time-sharing

Unified ProgrammingEnvironments

Hopes For TheSilverHigh-level andOO-Programming

Artificial Intelligence

Automatic and GraphicalProgramming

Program Verification

Environments and Tools

Promising Attackson the ConceptualEssenceBuy Vs. Build

Requirement Refinementand Prototyping

Great Designers

Summary

High-level Languages

I A factor five increase in productivity

I Eliminates unnecessary complexityI However, creates tool mastery burden

Page 32: No Silver Bullet: Essence and Accidents of Software ...hjemmesider.diku.dk/.../Slides/no-silver-bullet.pdf · No Silver Bullet: Essence and Accidents of Software Engineering by Frederick

No Silver Bullet

Adam HasselbalchHansen

Introduction

EssentialDifficulties

PastBreakthroughsHigh-level Languages

Time-sharing

Unified ProgrammingEnvironments

Hopes For TheSilverHigh-level andOO-Programming

Artificial Intelligence

Automatic and GraphicalProgramming

Program Verification

Environments and Tools

Promising Attackson the ConceptualEssenceBuy Vs. Build

Requirement Refinementand Prototyping

Great Designers

Summary

High-level Languages

I A factor five increase in productivityI Eliminates unnecessary complexity

I However, creates tool mastery burden

Page 33: No Silver Bullet: Essence and Accidents of Software ...hjemmesider.diku.dk/.../Slides/no-silver-bullet.pdf · No Silver Bullet: Essence and Accidents of Software Engineering by Frederick

No Silver Bullet

Adam HasselbalchHansen

Introduction

EssentialDifficulties

PastBreakthroughsHigh-level Languages

Time-sharing

Unified ProgrammingEnvironments

Hopes For TheSilverHigh-level andOO-Programming

Artificial Intelligence

Automatic and GraphicalProgramming

Program Verification

Environments and Tools

Promising Attackson the ConceptualEssenceBuy Vs. Build

Requirement Refinementand Prototyping

Great Designers

Summary

High-level Languages

I A factor five increase in productivityI Eliminates unnecessary complexityI However, creates tool mastery burden

Page 34: No Silver Bullet: Essence and Accidents of Software ...hjemmesider.diku.dk/.../Slides/no-silver-bullet.pdf · No Silver Bullet: Essence and Accidents of Software Engineering by Frederick

No Silver Bullet

Adam HasselbalchHansen

Introduction

EssentialDifficulties

PastBreakthroughsHigh-level Languages

Time-sharing

Unified ProgrammingEnvironments

Hopes For TheSilverHigh-level andOO-Programming

Artificial Intelligence

Automatic and GraphicalProgramming

Program Verification

Environments and Tools

Promising Attackson the ConceptualEssenceBuy Vs. Build

Requirement Refinementand Prototyping

Great Designers

Summary

Time-sharing

I Preserves immediacy

I Essentialy: Code along while you compileI System response time shortened

Page 35: No Silver Bullet: Essence and Accidents of Software ...hjemmesider.diku.dk/.../Slides/no-silver-bullet.pdf · No Silver Bullet: Essence and Accidents of Software Engineering by Frederick

No Silver Bullet

Adam HasselbalchHansen

Introduction

EssentialDifficulties

PastBreakthroughsHigh-level Languages

Time-sharing

Unified ProgrammingEnvironments

Hopes For TheSilverHigh-level andOO-Programming

Artificial Intelligence

Automatic and GraphicalProgramming

Program Verification

Environments and Tools

Promising Attackson the ConceptualEssenceBuy Vs. Build

Requirement Refinementand Prototyping

Great Designers

Summary

Time-sharing

I Preserves immediacyI Essentialy: Code along while you compile

I System response time shortened

Page 36: No Silver Bullet: Essence and Accidents of Software ...hjemmesider.diku.dk/.../Slides/no-silver-bullet.pdf · No Silver Bullet: Essence and Accidents of Software Engineering by Frederick

No Silver Bullet

Adam HasselbalchHansen

Introduction

EssentialDifficulties

PastBreakthroughsHigh-level Languages

Time-sharing

Unified ProgrammingEnvironments

Hopes For TheSilverHigh-level andOO-Programming

Artificial Intelligence

Automatic and GraphicalProgramming

Program Verification

Environments and Tools

Promising Attackson the ConceptualEssenceBuy Vs. Build

Requirement Refinementand Prototyping

Great Designers

Summary

Time-sharing

I Preserves immediacyI Essentialy: Code along while you compileI System response time shortened

Page 37: No Silver Bullet: Essence and Accidents of Software ...hjemmesider.diku.dk/.../Slides/no-silver-bullet.pdf · No Silver Bullet: Essence and Accidents of Software Engineering by Frederick

No Silver Bullet

Adam HasselbalchHansen

Introduction

EssentialDifficulties

PastBreakthroughsHigh-level Languages

Time-sharing

Unified ProgrammingEnvironments

Hopes For TheSilverHigh-level andOO-Programming

Artificial Intelligence

Automatic and GraphicalProgramming

Program Verification

Environments and Tools

Promising Attackson the ConceptualEssenceBuy Vs. Build

Requirement Refinementand Prototyping

Great Designers

Summary

Unified Programming Environments

I Integrated programming environments increaseproductivity

I Easier to use programs togetherI E.g. UNIX pipes, unified file formatsI Each tool applies to all others without extra work

Page 38: No Silver Bullet: Essence and Accidents of Software ...hjemmesider.diku.dk/.../Slides/no-silver-bullet.pdf · No Silver Bullet: Essence and Accidents of Software Engineering by Frederick

No Silver Bullet

Adam HasselbalchHansen

Introduction

EssentialDifficulties

PastBreakthroughsHigh-level Languages

Time-sharing

Unified ProgrammingEnvironments

Hopes For TheSilverHigh-level andOO-Programming

Artificial Intelligence

Automatic and GraphicalProgramming

Program Verification

Environments and Tools

Promising Attackson the ConceptualEssenceBuy Vs. Build

Requirement Refinementand Prototyping

Great Designers

Summary

Unified Programming Environments

I Integrated programming environments increaseproductivity

I Easier to use programs together

I E.g. UNIX pipes, unified file formatsI Each tool applies to all others without extra work

Page 39: No Silver Bullet: Essence and Accidents of Software ...hjemmesider.diku.dk/.../Slides/no-silver-bullet.pdf · No Silver Bullet: Essence and Accidents of Software Engineering by Frederick

No Silver Bullet

Adam HasselbalchHansen

Introduction

EssentialDifficulties

PastBreakthroughsHigh-level Languages

Time-sharing

Unified ProgrammingEnvironments

Hopes For TheSilverHigh-level andOO-Programming

Artificial Intelligence

Automatic and GraphicalProgramming

Program Verification

Environments and Tools

Promising Attackson the ConceptualEssenceBuy Vs. Build

Requirement Refinementand Prototyping

Great Designers

Summary

Unified Programming Environments

I Integrated programming environments increaseproductivity

I Easier to use programs togetherI E.g. UNIX pipes, unified file formats

I Each tool applies to all others without extra work

Page 40: No Silver Bullet: Essence and Accidents of Software ...hjemmesider.diku.dk/.../Slides/no-silver-bullet.pdf · No Silver Bullet: Essence and Accidents of Software Engineering by Frederick

No Silver Bullet

Adam HasselbalchHansen

Introduction

EssentialDifficulties

PastBreakthroughsHigh-level Languages

Time-sharing

Unified ProgrammingEnvironments

Hopes For TheSilverHigh-level andOO-Programming

Artificial Intelligence

Automatic and GraphicalProgramming

Program Verification

Environments and Tools

Promising Attackson the ConceptualEssenceBuy Vs. Build

Requirement Refinementand Prototyping

Great Designers

Summary

Unified Programming Environments

I Integrated programming environments increaseproductivity

I Easier to use programs togetherI E.g. UNIX pipes, unified file formatsI Each tool applies to all others without extra work

Page 41: No Silver Bullet: Essence and Accidents of Software ...hjemmesider.diku.dk/.../Slides/no-silver-bullet.pdf · No Silver Bullet: Essence and Accidents of Software Engineering by Frederick

No Silver Bullet

Adam HasselbalchHansen

Introduction

EssentialDifficulties

PastBreakthroughsHigh-level Languages

Time-sharing

Unified ProgrammingEnvironments

Hopes For TheSilverHigh-level andOO-Programming

Artificial Intelligence

Automatic and GraphicalProgramming

Program Verification

Environments and Tools

Promising Attackson the ConceptualEssenceBuy Vs. Build

Requirement Refinementand Prototyping

Great Designers

Summary

OutlineIntroduction

Essential Difficulties

Past BreakthroughsHigh-level LanguagesTime-sharingUnified Programming Environments

Hopes For The SilverHigh-level and OO-ProgrammingArtificial IntelligenceAutomatic and Graphical ProgrammingProgram VerificationEnvironments and Tools

Promising Attacks on the Conceptual EssenceBuy Vs. BuildRequirement Refinement and PrototypingGreat Designers

Page 42: No Silver Bullet: Essence and Accidents of Software ...hjemmesider.diku.dk/.../Slides/no-silver-bullet.pdf · No Silver Bullet: Essence and Accidents of Software Engineering by Frederick

No Silver Bullet

Adam HasselbalchHansen

Introduction

EssentialDifficulties

PastBreakthroughsHigh-level Languages

Time-sharing

Unified ProgrammingEnvironments

Hopes For TheSilverHigh-level andOO-Programming

Artificial Intelligence

Automatic and GraphicalProgramming

Program Verification

Environments and Tools

Promising Attackson the ConceptualEssenceBuy Vs. Build

Requirement Refinementand Prototyping

Great Designers

Summary

High-level and OOP

I Ada made a substantial difference in its day

I With OOP comes abstract and hierarchial data types(e.g. C++ Templates)

I But this requires the problem at hand to rely heavilyon these thing

I Only if nine tenths of a program is type specificationunderbrush will this have an O.o.M. gain.

I Which is doubtful...

Page 43: No Silver Bullet: Essence and Accidents of Software ...hjemmesider.diku.dk/.../Slides/no-silver-bullet.pdf · No Silver Bullet: Essence and Accidents of Software Engineering by Frederick

No Silver Bullet

Adam HasselbalchHansen

Introduction

EssentialDifficulties

PastBreakthroughsHigh-level Languages

Time-sharing

Unified ProgrammingEnvironments

Hopes For TheSilverHigh-level andOO-Programming

Artificial Intelligence

Automatic and GraphicalProgramming

Program Verification

Environments and Tools

Promising Attackson the ConceptualEssenceBuy Vs. Build

Requirement Refinementand Prototyping

Great Designers

Summary

High-level and OOP

I Ada made a substantial difference in its dayI With OOP comes abstract and hierarchial data types

(e.g. C++ Templates)

I But this requires the problem at hand to rely heavilyon these thing

I Only if nine tenths of a program is type specificationunderbrush will this have an O.o.M. gain.

I Which is doubtful...

Page 44: No Silver Bullet: Essence and Accidents of Software ...hjemmesider.diku.dk/.../Slides/no-silver-bullet.pdf · No Silver Bullet: Essence and Accidents of Software Engineering by Frederick

No Silver Bullet

Adam HasselbalchHansen

Introduction

EssentialDifficulties

PastBreakthroughsHigh-level Languages

Time-sharing

Unified ProgrammingEnvironments

Hopes For TheSilverHigh-level andOO-Programming

Artificial Intelligence

Automatic and GraphicalProgramming

Program Verification

Environments and Tools

Promising Attackson the ConceptualEssenceBuy Vs. Build

Requirement Refinementand Prototyping

Great Designers

Summary

High-level and OOP

I Ada made a substantial difference in its dayI With OOP comes abstract and hierarchial data types

(e.g. C++ Templates)I But this requires the problem at hand to rely heavily

on these thing

I Only if nine tenths of a program is type specificationunderbrush will this have an O.o.M. gain.

I Which is doubtful...

Page 45: No Silver Bullet: Essence and Accidents of Software ...hjemmesider.diku.dk/.../Slides/no-silver-bullet.pdf · No Silver Bullet: Essence and Accidents of Software Engineering by Frederick

No Silver Bullet

Adam HasselbalchHansen

Introduction

EssentialDifficulties

PastBreakthroughsHigh-level Languages

Time-sharing

Unified ProgrammingEnvironments

Hopes For TheSilverHigh-level andOO-Programming

Artificial Intelligence

Automatic and GraphicalProgramming

Program Verification

Environments and Tools

Promising Attackson the ConceptualEssenceBuy Vs. Build

Requirement Refinementand Prototyping

Great Designers

Summary

High-level and OOP

I Ada made a substantial difference in its dayI With OOP comes abstract and hierarchial data types

(e.g. C++ Templates)I But this requires the problem at hand to rely heavily

on these thingI Only if nine tenths of a program is type specification

underbrush will this have an O.o.M. gain.

I Which is doubtful...

Page 46: No Silver Bullet: Essence and Accidents of Software ...hjemmesider.diku.dk/.../Slides/no-silver-bullet.pdf · No Silver Bullet: Essence and Accidents of Software Engineering by Frederick

No Silver Bullet

Adam HasselbalchHansen

Introduction

EssentialDifficulties

PastBreakthroughsHigh-level Languages

Time-sharing

Unified ProgrammingEnvironments

Hopes For TheSilverHigh-level andOO-Programming

Artificial Intelligence

Automatic and GraphicalProgramming

Program Verification

Environments and Tools

Promising Attackson the ConceptualEssenceBuy Vs. Build

Requirement Refinementand Prototyping

Great Designers

Summary

High-level and OOP

I Ada made a substantial difference in its dayI With OOP comes abstract and hierarchial data types

(e.g. C++ Templates)I But this requires the problem at hand to rely heavily

on these thingI Only if nine tenths of a program is type specification

underbrush will this have an O.o.M. gain.I Which is doubtful...

Page 47: No Silver Bullet: Essence and Accidents of Software ...hjemmesider.diku.dk/.../Slides/no-silver-bullet.pdf · No Silver Bullet: Essence and Accidents of Software Engineering by Frederick

No Silver Bullet

Adam HasselbalchHansen

Introduction

EssentialDifficulties

PastBreakthroughsHigh-level Languages

Time-sharing

Unified ProgrammingEnvironments

Hopes For TheSilverHigh-level andOO-Programming

Artificial Intelligence

Automatic and GraphicalProgramming

Program Verification

Environments and Tools

Promising Attackson the ConceptualEssenceBuy Vs. Build

Requirement Refinementand Prototyping

Great Designers

Summary

Artificial Intelligence

I Using “intelligent programs” with generalizedinference engines

I Using a rule base, it yields conclusions and offersadvice

I The essential prerequisite for such a system is ateacher

Page 48: No Silver Bullet: Essence and Accidents of Software ...hjemmesider.diku.dk/.../Slides/no-silver-bullet.pdf · No Silver Bullet: Essence and Accidents of Software Engineering by Frederick

No Silver Bullet

Adam HasselbalchHansen

Introduction

EssentialDifficulties

PastBreakthroughsHigh-level Languages

Time-sharing

Unified ProgrammingEnvironments

Hopes For TheSilverHigh-level andOO-Programming

Artificial Intelligence

Automatic and GraphicalProgramming

Program Verification

Environments and Tools

Promising Attackson the ConceptualEssenceBuy Vs. Build

Requirement Refinementand Prototyping

Great Designers

Summary

Artificial Intelligence

I Using “intelligent programs” with generalizedinference engines

I Using a rule base, it yields conclusions and offersadvice

I The essential prerequisite for such a system is ateacher

Page 49: No Silver Bullet: Essence and Accidents of Software ...hjemmesider.diku.dk/.../Slides/no-silver-bullet.pdf · No Silver Bullet: Essence and Accidents of Software Engineering by Frederick

No Silver Bullet

Adam HasselbalchHansen

Introduction

EssentialDifficulties

PastBreakthroughsHigh-level Languages

Time-sharing

Unified ProgrammingEnvironments

Hopes For TheSilverHigh-level andOO-Programming

Artificial Intelligence

Automatic and GraphicalProgramming

Program Verification

Environments and Tools

Promising Attackson the ConceptualEssenceBuy Vs. Build

Requirement Refinementand Prototyping

Great Designers

Summary

Artificial Intelligence

I Using “intelligent programs” with generalizedinference engines

I Using a rule base, it yields conclusions and offersadvice

I The essential prerequisite for such a system is ateacher

Page 50: No Silver Bullet: Essence and Accidents of Software ...hjemmesider.diku.dk/.../Slides/no-silver-bullet.pdf · No Silver Bullet: Essence and Accidents of Software Engineering by Frederick

No Silver Bullet

Adam HasselbalchHansen

Introduction

EssentialDifficulties

PastBreakthroughsHigh-level Languages

Time-sharing

Unified ProgrammingEnvironments

Hopes For TheSilverHigh-level andOO-Programming

Artificial Intelligence

Automatic and GraphicalProgramming

Program Verification

Environments and Tools

Promising Attackson the ConceptualEssenceBuy Vs. Build

Requirement Refinementand Prototyping

Great Designers

Summary

Automatic and Graphical Programming

Automatic programming: State the problem, and theprogram writes itself, based on that problem

I It is, however, the solution method, not the problem,that needs to be described.

Graphical Programming: Draw the program

I Programmers draw flowcharts after writing programsI Constraints in screen real estate

Page 51: No Silver Bullet: Essence and Accidents of Software ...hjemmesider.diku.dk/.../Slides/no-silver-bullet.pdf · No Silver Bullet: Essence and Accidents of Software Engineering by Frederick

No Silver Bullet

Adam HasselbalchHansen

Introduction

EssentialDifficulties

PastBreakthroughsHigh-level Languages

Time-sharing

Unified ProgrammingEnvironments

Hopes For TheSilverHigh-level andOO-Programming

Artificial Intelligence

Automatic and GraphicalProgramming

Program Verification

Environments and Tools

Promising Attackson the ConceptualEssenceBuy Vs. Build

Requirement Refinementand Prototyping

Great Designers

Summary

Automatic and Graphical Programming

Automatic programming: State the problem, and theprogram writes itself, based on that problem

I It is, however, the solution method, not the problem,that needs to be described.

Graphical Programming: Draw the program

I Programmers draw flowcharts after writing programsI Constraints in screen real estate

Page 52: No Silver Bullet: Essence and Accidents of Software ...hjemmesider.diku.dk/.../Slides/no-silver-bullet.pdf · No Silver Bullet: Essence and Accidents of Software Engineering by Frederick

No Silver Bullet

Adam HasselbalchHansen

Introduction

EssentialDifficulties

PastBreakthroughsHigh-level Languages

Time-sharing

Unified ProgrammingEnvironments

Hopes For TheSilverHigh-level andOO-Programming

Artificial Intelligence

Automatic and GraphicalProgramming

Program Verification

Environments and Tools

Promising Attackson the ConceptualEssenceBuy Vs. Build

Requirement Refinementand Prototyping

Great Designers

Summary

Automatic and Graphical Programming

Automatic programming: State the problem, and theprogram writes itself, based on that problem

I It is, however, the solution method, not the problem,that needs to be described.

Graphical Programming: Draw the program

I Programmers draw flowcharts after writing programsI Constraints in screen real estate

Page 53: No Silver Bullet: Essence and Accidents of Software ...hjemmesider.diku.dk/.../Slides/no-silver-bullet.pdf · No Silver Bullet: Essence and Accidents of Software Engineering by Frederick

No Silver Bullet

Adam HasselbalchHansen

Introduction

EssentialDifficulties

PastBreakthroughsHigh-level Languages

Time-sharing

Unified ProgrammingEnvironments

Hopes For TheSilverHigh-level andOO-Programming

Artificial Intelligence

Automatic and GraphicalProgramming

Program Verification

Environments and Tools

Promising Attackson the ConceptualEssenceBuy Vs. Build

Requirement Refinementand Prototyping

Great Designers

Summary

Automatic and Graphical Programming

Automatic programming: State the problem, and theprogram writes itself, based on that problem

I It is, however, the solution method, not the problem,that needs to be described.

Graphical Programming: Draw the program

I Programmers draw flowcharts after writing programs

I Constraints in screen real estate

Page 54: No Silver Bullet: Essence and Accidents of Software ...hjemmesider.diku.dk/.../Slides/no-silver-bullet.pdf · No Silver Bullet: Essence and Accidents of Software Engineering by Frederick

No Silver Bullet

Adam HasselbalchHansen

Introduction

EssentialDifficulties

PastBreakthroughsHigh-level Languages

Time-sharing

Unified ProgrammingEnvironments

Hopes For TheSilverHigh-level andOO-Programming

Artificial Intelligence

Automatic and GraphicalProgramming

Program Verification

Environments and Tools

Promising Attackson the ConceptualEssenceBuy Vs. Build

Requirement Refinementand Prototyping

Great Designers

Summary

Automatic and Graphical Programming

Automatic programming: State the problem, and theprogram writes itself, based on that problem

I It is, however, the solution method, not the problem,that needs to be described.

Graphical Programming: Draw the program

I Programmers draw flowcharts after writing programsI Constraints in screen real estate

Page 55: No Silver Bullet: Essence and Accidents of Software ...hjemmesider.diku.dk/.../Slides/no-silver-bullet.pdf · No Silver Bullet: Essence and Accidents of Software Engineering by Frederick

No Silver Bullet

Adam HasselbalchHansen

Introduction

EssentialDifficulties

PastBreakthroughsHigh-level Languages

Time-sharing

Unified ProgrammingEnvironments

Hopes For TheSilverHigh-level andOO-Programming

Artificial Intelligence

Automatic and GraphicalProgramming

Program Verification

Environments and Tools

Promising Attackson the ConceptualEssenceBuy Vs. Build

Requirement Refinementand Prototyping

Great Designers

Summary

Program Verification

I A lot of effort goes into testing and reparing bugs

I Program verification does not mean error-proofprograms

I It’s relatively easy to verify a program. The hard partis making sure it’s properly designed to begin with.

I “Beware of bugs in the above code; I have onlyproved it correct, not tried it.” –Donald E. Knuth, 1977

Page 56: No Silver Bullet: Essence and Accidents of Software ...hjemmesider.diku.dk/.../Slides/no-silver-bullet.pdf · No Silver Bullet: Essence and Accidents of Software Engineering by Frederick

No Silver Bullet

Adam HasselbalchHansen

Introduction

EssentialDifficulties

PastBreakthroughsHigh-level Languages

Time-sharing

Unified ProgrammingEnvironments

Hopes For TheSilverHigh-level andOO-Programming

Artificial Intelligence

Automatic and GraphicalProgramming

Program Verification

Environments and Tools

Promising Attackson the ConceptualEssenceBuy Vs. Build

Requirement Refinementand Prototyping

Great Designers

Summary

Program Verification

I A lot of effort goes into testing and reparing bugsI Program verification does not mean error-proof

programs

I It’s relatively easy to verify a program. The hard partis making sure it’s properly designed to begin with.

I “Beware of bugs in the above code; I have onlyproved it correct, not tried it.” –Donald E. Knuth, 1977

Page 57: No Silver Bullet: Essence and Accidents of Software ...hjemmesider.diku.dk/.../Slides/no-silver-bullet.pdf · No Silver Bullet: Essence and Accidents of Software Engineering by Frederick

No Silver Bullet

Adam HasselbalchHansen

Introduction

EssentialDifficulties

PastBreakthroughsHigh-level Languages

Time-sharing

Unified ProgrammingEnvironments

Hopes For TheSilverHigh-level andOO-Programming

Artificial Intelligence

Automatic and GraphicalProgramming

Program Verification

Environments and Tools

Promising Attackson the ConceptualEssenceBuy Vs. Build

Requirement Refinementand Prototyping

Great Designers

Summary

Program Verification

I A lot of effort goes into testing and reparing bugsI Program verification does not mean error-proof

programsI It’s relatively easy to verify a program. The hard part

is making sure it’s properly designed to begin with.

I “Beware of bugs in the above code; I have onlyproved it correct, not tried it.” –Donald E. Knuth, 1977

Page 58: No Silver Bullet: Essence and Accidents of Software ...hjemmesider.diku.dk/.../Slides/no-silver-bullet.pdf · No Silver Bullet: Essence and Accidents of Software Engineering by Frederick

No Silver Bullet

Adam HasselbalchHansen

Introduction

EssentialDifficulties

PastBreakthroughsHigh-level Languages

Time-sharing

Unified ProgrammingEnvironments

Hopes For TheSilverHigh-level andOO-Programming

Artificial Intelligence

Automatic and GraphicalProgramming

Program Verification

Environments and Tools

Promising Attackson the ConceptualEssenceBuy Vs. Build

Requirement Refinementand Prototyping

Great Designers

Summary

Program Verification

I A lot of effort goes into testing and reparing bugsI Program verification does not mean error-proof

programsI It’s relatively easy to verify a program. The hard part

is making sure it’s properly designed to begin with.I “Beware of bugs in the above code; I have only

proved it correct, not tried it.” –Donald E. Knuth, 1977

Page 59: No Silver Bullet: Essence and Accidents of Software ...hjemmesider.diku.dk/.../Slides/no-silver-bullet.pdf · No Silver Bullet: Essence and Accidents of Software Engineering by Frederick

No Silver Bullet

Adam HasselbalchHansen

Introduction

EssentialDifficulties

PastBreakthroughsHigh-level Languages

Time-sharing

Unified ProgrammingEnvironments

Hopes For TheSilverHigh-level andOO-Programming

Artificial Intelligence

Automatic and GraphicalProgramming

Program Verification

Environments and Tools

Promising Attackson the ConceptualEssenceBuy Vs. Build

Requirement Refinementand Prototyping

Great Designers

Summary

Environments and Tools

I Using proper tools to facilitate development

I Language specific editors, versioning systems, etc.I Giving developers a nice working environmentI Powerful workstations are not “the golden egg” (or

indeed the Silver Bullet)

Page 60: No Silver Bullet: Essence and Accidents of Software ...hjemmesider.diku.dk/.../Slides/no-silver-bullet.pdf · No Silver Bullet: Essence and Accidents of Software Engineering by Frederick

No Silver Bullet

Adam HasselbalchHansen

Introduction

EssentialDifficulties

PastBreakthroughsHigh-level Languages

Time-sharing

Unified ProgrammingEnvironments

Hopes For TheSilverHigh-level andOO-Programming

Artificial Intelligence

Automatic and GraphicalProgramming

Program Verification

Environments and Tools

Promising Attackson the ConceptualEssenceBuy Vs. Build

Requirement Refinementand Prototyping

Great Designers

Summary

Environments and Tools

I Using proper tools to facilitate developmentI Language specific editors, versioning systems, etc.

I Giving developers a nice working environmentI Powerful workstations are not “the golden egg” (or

indeed the Silver Bullet)

Page 61: No Silver Bullet: Essence and Accidents of Software ...hjemmesider.diku.dk/.../Slides/no-silver-bullet.pdf · No Silver Bullet: Essence and Accidents of Software Engineering by Frederick

No Silver Bullet

Adam HasselbalchHansen

Introduction

EssentialDifficulties

PastBreakthroughsHigh-level Languages

Time-sharing

Unified ProgrammingEnvironments

Hopes For TheSilverHigh-level andOO-Programming

Artificial Intelligence

Automatic and GraphicalProgramming

Program Verification

Environments and Tools

Promising Attackson the ConceptualEssenceBuy Vs. Build

Requirement Refinementand Prototyping

Great Designers

Summary

Environments and Tools

I Using proper tools to facilitate developmentI Language specific editors, versioning systems, etc.I Giving developers a nice working environment

I Powerful workstations are not “the golden egg” (orindeed the Silver Bullet)

Page 62: No Silver Bullet: Essence and Accidents of Software ...hjemmesider.diku.dk/.../Slides/no-silver-bullet.pdf · No Silver Bullet: Essence and Accidents of Software Engineering by Frederick

No Silver Bullet

Adam HasselbalchHansen

Introduction

EssentialDifficulties

PastBreakthroughsHigh-level Languages

Time-sharing

Unified ProgrammingEnvironments

Hopes For TheSilverHigh-level andOO-Programming

Artificial Intelligence

Automatic and GraphicalProgramming

Program Verification

Environments and Tools

Promising Attackson the ConceptualEssenceBuy Vs. Build

Requirement Refinementand Prototyping

Great Designers

Summary

Environments and Tools

I Using proper tools to facilitate developmentI Language specific editors, versioning systems, etc.I Giving developers a nice working environmentI Powerful workstations are not “the golden egg” (or

indeed the Silver Bullet)

Page 63: No Silver Bullet: Essence and Accidents of Software ...hjemmesider.diku.dk/.../Slides/no-silver-bullet.pdf · No Silver Bullet: Essence and Accidents of Software Engineering by Frederick

No Silver Bullet

Adam HasselbalchHansen

Introduction

EssentialDifficulties

PastBreakthroughsHigh-level Languages

Time-sharing

Unified ProgrammingEnvironments

Hopes For TheSilverHigh-level andOO-Programming

Artificial Intelligence

Automatic and GraphicalProgramming

Program Verification

Environments and Tools

Promising Attackson the ConceptualEssenceBuy Vs. Build

Requirement Refinementand Prototyping

Great Designers

Summary

OutlineIntroduction

Essential Difficulties

Past BreakthroughsHigh-level LanguagesTime-sharingUnified Programming Environments

Hopes For The SilverHigh-level and OO-ProgrammingArtificial IntelligenceAutomatic and Graphical ProgrammingProgram VerificationEnvironments and Tools

Promising Attacks on the Conceptual EssenceBuy Vs. BuildRequirement Refinement and PrototypingGreat Designers

Page 64: No Silver Bullet: Essence and Accidents of Software ...hjemmesider.diku.dk/.../Slides/no-silver-bullet.pdf · No Silver Bullet: Essence and Accidents of Software Engineering by Frederick

No Silver Bullet

Adam HasselbalchHansen

Introduction

EssentialDifficulties

PastBreakthroughsHigh-level Languages

Time-sharing

Unified ProgrammingEnvironments

Hopes For TheSilverHigh-level andOO-Programming

Artificial Intelligence

Automatic and GraphicalProgramming

Program Verification

Environments and Tools

Promising Attackson the ConceptualEssenceBuy Vs. Build

Requirement Refinementand Prototyping

Great Designers

Summary

Buy Vs. Build

I Before, business practices needed specializedsoftware

I Now, business practices adapt to the availablesoftware

I Generalized software, like spreadsheets, areextremely powerful and versatile

Page 65: No Silver Bullet: Essence and Accidents of Software ...hjemmesider.diku.dk/.../Slides/no-silver-bullet.pdf · No Silver Bullet: Essence and Accidents of Software Engineering by Frederick

No Silver Bullet

Adam HasselbalchHansen

Introduction

EssentialDifficulties

PastBreakthroughsHigh-level Languages

Time-sharing

Unified ProgrammingEnvironments

Hopes For TheSilverHigh-level andOO-Programming

Artificial Intelligence

Automatic and GraphicalProgramming

Program Verification

Environments and Tools

Promising Attackson the ConceptualEssenceBuy Vs. Build

Requirement Refinementand Prototyping

Great Designers

Summary

Buy Vs. Build

I Before, business practices needed specializedsoftware

I Now, business practices adapt to the availablesoftware

I Generalized software, like spreadsheets, areextremely powerful and versatile

Page 66: No Silver Bullet: Essence and Accidents of Software ...hjemmesider.diku.dk/.../Slides/no-silver-bullet.pdf · No Silver Bullet: Essence and Accidents of Software Engineering by Frederick

No Silver Bullet

Adam HasselbalchHansen

Introduction

EssentialDifficulties

PastBreakthroughsHigh-level Languages

Time-sharing

Unified ProgrammingEnvironments

Hopes For TheSilverHigh-level andOO-Programming

Artificial Intelligence

Automatic and GraphicalProgramming

Program Verification

Environments and Tools

Promising Attackson the ConceptualEssenceBuy Vs. Build

Requirement Refinementand Prototyping

Great Designers

Summary

Buy Vs. Build

I Before, business practices needed specializedsoftware

I Now, business practices adapt to the availablesoftware

I Generalized software, like spreadsheets, areextremely powerful and versatile

Page 67: No Silver Bullet: Essence and Accidents of Software ...hjemmesider.diku.dk/.../Slides/no-silver-bullet.pdf · No Silver Bullet: Essence and Accidents of Software Engineering by Frederick

No Silver Bullet

Adam HasselbalchHansen

Introduction

EssentialDifficulties

PastBreakthroughsHigh-level Languages

Time-sharing

Unified ProgrammingEnvironments

Hopes For TheSilverHigh-level andOO-Programming

Artificial Intelligence

Automatic and GraphicalProgramming

Program Verification

Environments and Tools

Promising Attackson the ConceptualEssenceBuy Vs. Build

Requirement Refinementand Prototyping

Great Designers

Summary

Requirement Refinement and Prototyping

I The client does not know what he wants

I Prototype it!I Grow software. Don’t build it.I A working system, all the way though

Page 68: No Silver Bullet: Essence and Accidents of Software ...hjemmesider.diku.dk/.../Slides/no-silver-bullet.pdf · No Silver Bullet: Essence and Accidents of Software Engineering by Frederick

No Silver Bullet

Adam HasselbalchHansen

Introduction

EssentialDifficulties

PastBreakthroughsHigh-level Languages

Time-sharing

Unified ProgrammingEnvironments

Hopes For TheSilverHigh-level andOO-Programming

Artificial Intelligence

Automatic and GraphicalProgramming

Program Verification

Environments and Tools

Promising Attackson the ConceptualEssenceBuy Vs. Build

Requirement Refinementand Prototyping

Great Designers

Summary

Requirement Refinement and Prototyping

I The client does not know what he wantsI Prototype it!

I Grow software. Don’t build it.I A working system, all the way though

Page 69: No Silver Bullet: Essence and Accidents of Software ...hjemmesider.diku.dk/.../Slides/no-silver-bullet.pdf · No Silver Bullet: Essence and Accidents of Software Engineering by Frederick

No Silver Bullet

Adam HasselbalchHansen

Introduction

EssentialDifficulties

PastBreakthroughsHigh-level Languages

Time-sharing

Unified ProgrammingEnvironments

Hopes For TheSilverHigh-level andOO-Programming

Artificial Intelligence

Automatic and GraphicalProgramming

Program Verification

Environments and Tools

Promising Attackson the ConceptualEssenceBuy Vs. Build

Requirement Refinementand Prototyping

Great Designers

Summary

Requirement Refinement and Prototyping

I The client does not know what he wantsI Prototype it!I Grow software. Don’t build it.

I A working system, all the way though

Page 70: No Silver Bullet: Essence and Accidents of Software ...hjemmesider.diku.dk/.../Slides/no-silver-bullet.pdf · No Silver Bullet: Essence and Accidents of Software Engineering by Frederick

No Silver Bullet

Adam HasselbalchHansen

Introduction

EssentialDifficulties

PastBreakthroughsHigh-level Languages

Time-sharing

Unified ProgrammingEnvironments

Hopes For TheSilverHigh-level andOO-Programming

Artificial Intelligence

Automatic and GraphicalProgramming

Program Verification

Environments and Tools

Promising Attackson the ConceptualEssenceBuy Vs. Build

Requirement Refinementand Prototyping

Great Designers

Summary

Requirement Refinement and Prototyping

I The client does not know what he wantsI Prototype it!I Grow software. Don’t build it.I A working system, all the way though

Page 71: No Silver Bullet: Essence and Accidents of Software ...hjemmesider.diku.dk/.../Slides/no-silver-bullet.pdf · No Silver Bullet: Essence and Accidents of Software Engineering by Frederick

No Silver Bullet

Adam HasselbalchHansen

Introduction

EssentialDifficulties

PastBreakthroughsHigh-level Languages

Time-sharing

Unified ProgrammingEnvironments

Hopes For TheSilverHigh-level andOO-Programming

Artificial Intelligence

Automatic and GraphicalProgramming

Program Verification

Environments and Tools

Promising Attackson the ConceptualEssenceBuy Vs. Build

Requirement Refinementand Prototyping

Great Designers

Summary

Great Designers

I Poor designs vs good designs can be caused byfaulty process

I Good designs vs great designs can notI Take care of designers. Give them ideal working

conditions. Travel funds, office size. Grow them.

Page 72: No Silver Bullet: Essence and Accidents of Software ...hjemmesider.diku.dk/.../Slides/no-silver-bullet.pdf · No Silver Bullet: Essence and Accidents of Software Engineering by Frederick

No Silver Bullet

Adam HasselbalchHansen

Introduction

EssentialDifficulties

PastBreakthroughsHigh-level Languages

Time-sharing

Unified ProgrammingEnvironments

Hopes For TheSilverHigh-level andOO-Programming

Artificial Intelligence

Automatic and GraphicalProgramming

Program Verification

Environments and Tools

Promising Attackson the ConceptualEssenceBuy Vs. Build

Requirement Refinementand Prototyping

Great Designers

Summary

Great Designers

I Poor designs vs good designs can be caused byfaulty process

I Good designs vs great designs can not

I Take care of designers. Give them ideal workingconditions. Travel funds, office size. Grow them.

Page 73: No Silver Bullet: Essence and Accidents of Software ...hjemmesider.diku.dk/.../Slides/no-silver-bullet.pdf · No Silver Bullet: Essence and Accidents of Software Engineering by Frederick

No Silver Bullet

Adam HasselbalchHansen

Introduction

EssentialDifficulties

PastBreakthroughsHigh-level Languages

Time-sharing

Unified ProgrammingEnvironments

Hopes For TheSilverHigh-level andOO-Programming

Artificial Intelligence

Automatic and GraphicalProgramming

Program Verification

Environments and Tools

Promising Attackson the ConceptualEssenceBuy Vs. Build

Requirement Refinementand Prototyping

Great Designers

Summary

Great Designers

I Poor designs vs good designs can be caused byfaulty process

I Good designs vs great designs can notI Take care of designers. Give them ideal working

conditions. Travel funds, office size. Grow them.

Page 74: No Silver Bullet: Essence and Accidents of Software ...hjemmesider.diku.dk/.../Slides/no-silver-bullet.pdf · No Silver Bullet: Essence and Accidents of Software Engineering by Frederick

No Silver Bullet

Adam HasselbalchHansen

Introduction

EssentialDifficulties

PastBreakthroughsHigh-level Languages

Time-sharing

Unified ProgrammingEnvironments

Hopes For TheSilverHigh-level andOO-Programming

Artificial Intelligence

Automatic and GraphicalProgramming

Program Verification

Environments and Tools

Promising Attackson the ConceptualEssenceBuy Vs. Build

Requirement Refinementand Prototyping

Great Designers

Summary

Summary

I There are no silver bullets in the foreseable future

I However, combining several methods into a soundsoftware business strategy gets us a long way!

Page 75: No Silver Bullet: Essence and Accidents of Software ...hjemmesider.diku.dk/.../Slides/no-silver-bullet.pdf · No Silver Bullet: Essence and Accidents of Software Engineering by Frederick

No Silver Bullet

Adam HasselbalchHansen

Introduction

EssentialDifficulties

PastBreakthroughsHigh-level Languages

Time-sharing

Unified ProgrammingEnvironments

Hopes For TheSilverHigh-level andOO-Programming

Artificial Intelligence

Automatic and GraphicalProgramming

Program Verification

Environments and Tools

Promising Attackson the ConceptualEssenceBuy Vs. Build

Requirement Refinementand Prototyping

Great Designers

Summary

Summary

I There are no silver bullets in the foreseable futureI However, combining several methods into a sound

software business strategy gets us a long way!

Page 76: No Silver Bullet: Essence and Accidents of Software ...hjemmesider.diku.dk/.../Slides/no-silver-bullet.pdf · No Silver Bullet: Essence and Accidents of Software Engineering by Frederick

No Silver Bullet

Adam HasselbalchHansen

Introduction

EssentialDifficulties

PastBreakthroughsHigh-level Languages

Time-sharing

Unified ProgrammingEnvironments

Hopes For TheSilverHigh-level andOO-Programming

Artificial Intelligence

Automatic and GraphicalProgramming

Program Verification

Environments and Tools

Promising Attackson the ConceptualEssenceBuy Vs. Build

Requirement Refinementand Prototyping

Great Designers

Summary

Questions

?