Upload
others
View
24
Download
0
Embed Size (px)
Citation preview
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
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
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
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.
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.
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.
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.
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
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.
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.
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.
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
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
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
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
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
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
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
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!
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!
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!
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!
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
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
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
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.
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.
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.
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.
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
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
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
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
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
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
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
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
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
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
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
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
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...
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...
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...
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...
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...
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
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
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
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
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
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
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
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
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
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
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
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
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)
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)
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)
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)
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
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
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
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
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
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
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
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
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.
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.
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.
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!
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!
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
?