learning the hard way - icse 2018'18... · “no silver bullet” ‘85, refired •software...
TRANSCRIPT
![Page 1: Learning the Hard Way - ICSE 2018'18... · “No Silver Bullet” ‘85, Refired •Software is Essentiallyhard to build •Complexity is inherent •Conformity to hardware and world](https://reader036.vdocument.in/reader036/viewer/2022071215/60458495cc2cdd04f328ff88/html5/thumbnails/1.jpg)
Learning the Hard WayA History 1843-1980
of Software Engineering
Fred BrooksUniversity of North Carolina at Chapel Hill
FPB 5/30/18
![Page 2: Learning the Hard Way - ICSE 2018'18... · “No Silver Bullet” ‘85, Refired •Software is Essentiallyhard to build •Complexity is inherent •Conformity to hardware and world](https://reader036.vdocument.in/reader036/viewer/2022071215/60458495cc2cdd04f328ff88/html5/thumbnails/2.jpg)
Disclaimer
I’ve tried to get dates right, but I do not claim to be giving the
first published or operationaloccurrence of a big idea.
Don’t cite my dates.
FPB 5/30/18
![Page 3: Learning the Hard Way - ICSE 2018'18... · “No Silver Bullet” ‘85, Refired •Software is Essentiallyhard to build •Complexity is inherent •Conformity to hardware and world](https://reader036.vdocument.in/reader036/viewer/2022071215/60458495cc2cdd04f328ff88/html5/thumbnails/3.jpg)
Disclaimer 2
The pictures do not representwhat we ’60’s & 70’s innovators
look like today.
FPB 5/30/18
![Page 4: Learning the Hard Way - ICSE 2018'18... · “No Silver Bullet” ‘85, Refired •Software is Essentiallyhard to build •Complexity is inherent •Conformity to hardware and world](https://reader036.vdocument.in/reader036/viewer/2022071215/60458495cc2cdd04f328ff88/html5/thumbnails/4.jpg)
Uphill Both Ways ’44-’51
• Hand-coding on paper• In binary, octal for short•Octal op codes•Octal addresses• Absolute addresses• Transfer to paper tape, cards, punched-film
FPB 5/30/18
![Page 5: Learning the Hard Way - ICSE 2018'18... · “No Silver Bullet” ‘85, Refired •Software is Essentiallyhard to build •Complexity is inherent •Conformity to hardware and world](https://reader036.vdocument.in/reader036/viewer/2022071215/60458495cc2cdd04f328ff88/html5/thumbnails/5.jpg)
A Slow Insight
A Program Programming System
ProgramProduct
Programming SystemProduct
FPB 5/30/18
The Mythical Man-Month
![Page 6: Learning the Hard Way - ICSE 2018'18... · “No Silver Bullet” ‘85, Refired •Software is Essentiallyhard to build •Complexity is inherent •Conformity to hardware and world](https://reader036.vdocument.in/reader036/viewer/2022071215/60458495cc2cdd04f328ff88/html5/thumbnails/6.jpg)
1. Program 1843
• Ada Lovelace
• Charles Babbage’s Analytical Engine
FPB 5/30/18
![Page 7: Learning the Hard Way - ICSE 2018'18... · “No Silver Bullet” ‘85, Refired •Software is Essentiallyhard to build •Complexity is inherent •Conformity to hardware and world](https://reader036.vdocument.in/reader036/viewer/2022071215/60458495cc2cdd04f328ff88/html5/thumbnails/7.jpg)
2. Software Product ‘51
• Software Product = A program to be used by other than the author•Generalization•Testing•Documentation•On-going maintenance
FPB 5/30/18
![Page 8: Learning the Hard Way - ICSE 2018'18... · “No Silver Bullet” ‘85, Refired •Software is Essentiallyhard to build •Complexity is inherent •Conformity to hardware and world](https://reader036.vdocument.in/reader036/viewer/2022071215/60458495cc2cdd04f328ff88/html5/thumbnails/8.jpg)
3. Software System ‘56
• Software System=A system of many separate programs working together• Interfaces•System integration and test
FPB 5/30/18
![Page 9: Learning the Hard Way - ICSE 2018'18... · “No Silver Bullet” ‘85, Refired •Software is Essentiallyhard to build •Complexity is inherent •Conformity to hardware and world](https://reader036.vdocument.in/reader036/viewer/2022071215/60458495cc2cdd04f328ff88/html5/thumbnails/9.jpg)
GM-NAA I-O (Batch) Operating System ‘56
• Robert Patrick (GM), Owen Mock (NAA), George Ryckman (GM)• Components
• Input translator for cards, tape, multiple languages• SHARE Assembly program, later FORTRAN• Compute monitor (abort on errors, dump memory) • Accounting package• Output converter (to decimal) tape. (Hand-carried off)
• 10-fold improvement in jobs/hour• Shorter turn-around on average• Professional operators; programmers programmed• No idle machine time
• 40 copies distributed; no supportFPB 5/30/18
![Page 10: Learning the Hard Way - ICSE 2018'18... · “No Silver Bullet” ‘85, Refired •Software is Essentiallyhard to build •Complexity is inherent •Conformity to hardware and world](https://reader036.vdocument.in/reader036/viewer/2022071215/60458495cc2cdd04f328ff88/html5/thumbnails/10.jpg)
4.Software System Product ‘59
A software system designed to be distributed to (and supported for) many users
• SHARE Operating System ‘59• Based on GM-NAA I-O Operating System • Distributed by IBM• Maintained by IBM
FPB 5/30/18
![Page 11: Learning the Hard Way - ICSE 2018'18... · “No Silver Bullet” ‘85, Refired •Software is Essentiallyhard to build •Complexity is inherent •Conformity to hardware and world](https://reader036.vdocument.in/reader036/viewer/2022071215/60458495cc2cdd04f328ff88/html5/thumbnails/11.jpg)
Software Engineering
The discipline of making software products
Name coined by Margaret Hamilton ~’66
FPB 5/30/18
![Page 12: Learning the Hard Way - ICSE 2018'18... · “No Silver Bullet” ‘85, Refired •Software is Essentiallyhard to build •Complexity is inherent •Conformity to hardware and world](https://reader036.vdocument.in/reader036/viewer/2022071215/60458495cc2cdd04f328ff88/html5/thumbnails/12.jpg)
Big Ideas of the ‘40’s
• Programmable computers• Babbage 1843• Zuse ‘41• Aiken ’44• Kilburn ‘48• Wilkes ‘49
• Stored Program—von NeumannFPB 5/30/18
![Page 13: Learning the Hard Way - ICSE 2018'18... · “No Silver Bullet” ‘85, Refired •Software is Essentiallyhard to build •Complexity is inherent •Conformity to hardware and world](https://reader036.vdocument.in/reader036/viewer/2022071215/60458495cc2cdd04f328ff88/html5/thumbnails/13.jpg)
Stored ProgramConceived itJohn von Neumann ‘46
Built itTom Kilburn ‘48, Maurice Wilkes ‘49
FPB 5/30/18
![Page 14: Learning the Hard Way - ICSE 2018'18... · “No Silver Bullet” ‘85, Refired •Software is Essentiallyhard to build •Complexity is inherent •Conformity to hardware and world](https://reader036.vdocument.in/reader036/viewer/2022071215/60458495cc2cdd04f328ff88/html5/thumbnails/14.jpg)
Big Ideas of ‘50’s — 1
•Closed Subroutines• ‘Wheeler Jump’ calling sequence
• Input-Output Libraries•Symbolic Assembler
•Sir Maurice Wilkes, F.R.S.•David Wheeler, F.R.S. • Stanley Gill
University of CambridgeFPB 5/30/18
![Page 15: Learning the Hard Way - ICSE 2018'18... · “No Silver Bullet” ‘85, Refired •Software is Essentiallyhard to build •Complexity is inherent •Conformity to hardware and world](https://reader036.vdocument.in/reader036/viewer/2022071215/60458495cc2cdd04f328ff88/html5/thumbnails/15.jpg)
The Most Important Book in the History of Software ’51
FPB 5/30/18
![Page 16: Learning the Hard Way - ICSE 2018'18... · “No Silver Bullet” ‘85, Refired •Software is Essentiallyhard to build •Complexity is inherent •Conformity to hardware and world](https://reader036.vdocument.in/reader036/viewer/2022071215/60458495cc2cdd04f328ff88/html5/thumbnails/16.jpg)
Big Ideas of ‘50’s — 2
• Compilers
•Operating Systems
• Terminals and Communications
• Graphical Displays
• Block-structured programming•Algol ‘58
FPB 5/30/18
![Page 17: Learning the Hard Way - ICSE 2018'18... · “No Silver Bullet” ‘85, Refired •Software is Essentiallyhard to build •Complexity is inherent •Conformity to hardware and world](https://reader036.vdocument.in/reader036/viewer/2022071215/60458495cc2cdd04f328ff88/html5/thumbnails/17.jpg)
CompilersFORTRAN ’56
Optimized Run-timeFLOW-MATIC ’59
An English-like Language
RDML Grace Murray Hopper
FPB 5/30/18
John Backus
![Page 18: Learning the Hard Way - ICSE 2018'18... · “No Silver Bullet” ‘85, Refired •Software is Essentiallyhard to build •Complexity is inherent •Conformity to hardware and world](https://reader036.vdocument.in/reader036/viewer/2022071215/60458495cc2cdd04f328ff88/html5/thumbnails/18.jpg)
Terminals, Communications,Graphical Displays ‘53
MIT Whirlwind I ’51
Cape Cod prototype air defense system ’53
SAGE Air Defense System‘58
FPB 5/30/18
![Page 19: Learning the Hard Way - ICSE 2018'18... · “No Silver Bullet” ‘85, Refired •Software is Essentiallyhard to build •Complexity is inherent •Conformity to hardware and world](https://reader036.vdocument.in/reader036/viewer/2022071215/60458495cc2cdd04f328ff88/html5/thumbnails/19.jpg)
Big Ideas of the ‘60’s — 1
• Software engineering as engineering
• NATO Conferences ‘68, ‘69
•Multiprogramming
• Time-sharing
FPB 5/30/18
![Page 20: Learning the Hard Way - ICSE 2018'18... · “No Silver Bullet” ‘85, Refired •Software is Essentiallyhard to build •Complexity is inherent •Conformity to hardware and world](https://reader036.vdocument.in/reader036/viewer/2022071215/60458495cc2cdd04f328ff88/html5/thumbnails/20.jpg)
The NATO Conferences ‘68,’69
• Fritz Bauer idea• “Provocative name”• ‘68 Conference
• Enthusiastic participants• About software crisis• Enphasized management
• ‘69 Conference• Aimed to be more technical• Was much more fractious
FPB 5/30/18
![Page 21: Learning the Hard Way - ICSE 2018'18... · “No Silver Bullet” ‘85, Refired •Software is Essentiallyhard to build •Complexity is inherent •Conformity to hardware and world](https://reader036.vdocument.in/reader036/viewer/2022071215/60458495cc2cdd04f328ff88/html5/thumbnails/21.jpg)
Stretch Multiprogramming OS ‘58-9 Ted Codd
• Designed for efficient compute-I/O overlap, not yet time-sharing
• Enabled by STRETCH supervisory hardware:• Interruption• Clock• Memory protection• Privileged ops
FPB 5/30/18
![Page 22: Learning the Hard Way - ICSE 2018'18... · “No Silver Bullet” ‘85, Refired •Software is Essentiallyhard to build •Complexity is inherent •Conformity to hardware and world](https://reader036.vdocument.in/reader036/viewer/2022071215/60458495cc2cdd04f328ff88/html5/thumbnails/22.jpg)
Time Sharing OS’s
ATLAS Supervisor ‘62Tom Kilburn
• On Manchester ATLAS• First memory paging OS• Enabled interactive
debugging
MIT CTSS ‘62Fernando Corbato
• On IBM 7090• Precursor of MULTICS
• On GE 645• Many important ideas
FPB 5/30/18
![Page 23: Learning the Hard Way - ICSE 2018'18... · “No Silver Bullet” ‘85, Refired •Software is Essentiallyhard to build •Complexity is inherent •Conformity to hardware and world](https://reader036.vdocument.in/reader036/viewer/2022071215/60458495cc2cdd04f328ff88/html5/thumbnails/23.jpg)
Big Ideas of the ‘60’s — 2
• Classes, inheritance• Database systems
• Proofs and Axioms
FPB 5/30/18
![Page 24: Learning the Hard Way - ICSE 2018'18... · “No Silver Bullet” ‘85, Refired •Software is Essentiallyhard to build •Complexity is inherent •Conformity to hardware and world](https://reader036.vdocument.in/reader036/viewer/2022071215/60458495cc2cdd04f328ff88/html5/thumbnails/24.jpg)
Classes, Inheritance,Object-Orientation. ’67
Simula 67
Kristen Nygaard
Ole-Johan Dahl
FPB 5/30/18
![Page 25: Learning the Hard Way - ICSE 2018'18... · “No Silver Bullet” ‘85, Refired •Software is Essentiallyhard to build •Complexity is inherent •Conformity to hardware and world](https://reader036.vdocument.in/reader036/viewer/2022071215/60458495cc2cdd04f328ff88/html5/thumbnails/25.jpg)
Database Systems ‘65
Integrated Data Store ‘65Charles Bachman
Navigational DB Model
ORACLE ‘79Ted Codd
Relational Model ‘70
FPB 5/31/18
![Page 26: Learning the Hard Way - ICSE 2018'18... · “No Silver Bullet” ‘85, Refired •Software is Essentiallyhard to build •Complexity is inherent •Conformity to hardware and world](https://reader036.vdocument.in/reader036/viewer/2022071215/60458495cc2cdd04f328ff88/html5/thumbnails/26.jpg)
Proofs and Axioms ‘67
Robert Floyd ‘67“Assigning Meanings to Programs”
Sir Anthony Hoare ‘69“An Axiomatic Basis for Computer Programming”
FPB 5/30/18
![Page 27: Learning the Hard Way - ICSE 2018'18... · “No Silver Bullet” ‘85, Refired •Software is Essentiallyhard to build •Complexity is inherent •Conformity to hardware and world](https://reader036.vdocument.in/reader036/viewer/2022071215/60458495cc2cdd04f328ff88/html5/thumbnails/27.jpg)
Big Ideas of the ‘70’s
• Information hiding, modules, abstract data types
• Top-down, incremental build,stepwise refinement
• Inspections
• Software engineering managementFPB 5/30/18
![Page 28: Learning the Hard Way - ICSE 2018'18... · “No Silver Bullet” ‘85, Refired •Software is Essentiallyhard to build •Complexity is inherent •Conformity to hardware and world](https://reader036.vdocument.in/reader036/viewer/2022071215/60458495cc2cdd04f328ff88/html5/thumbnails/28.jpg)
Information Hiding, Modules, Abstract Data Types ?
David Parnas ‘71• Information hiding• Modules
Barbara Liskov ‘74• Abstract data types
FPB 5/30/18
![Page 29: Learning the Hard Way - ICSE 2018'18... · “No Silver Bullet” ‘85, Refired •Software is Essentiallyhard to build •Complexity is inherent •Conformity to hardware and world](https://reader036.vdocument.in/reader036/viewer/2022071215/60458495cc2cdd04f328ff88/html5/thumbnails/29.jpg)
Top-Down, Incremental Build,Stepwise Refinement ‘71
Harlan Mills ‘71 Niklaus Wirth ‘71
FPB 5/30/18
![Page 30: Learning the Hard Way - ICSE 2018'18... · “No Silver Bullet” ‘85, Refired •Software is Essentiallyhard to build •Complexity is inherent •Conformity to hardware and world](https://reader036.vdocument.in/reader036/viewer/2022071215/60458495cc2cdd04f328ff88/html5/thumbnails/30.jpg)
Inspections
A formal process
Outside team of several inspectors
Code reading line-by-line
Work against a set of specific requirements
Inspectors watch for defects and requirement failures
Michael E. Fagan
FPB 5/31/18
![Page 31: Learning the Hard Way - ICSE 2018'18... · “No Silver Bullet” ‘85, Refired •Software is Essentiallyhard to build •Complexity is inherent •Conformity to hardware and world](https://reader036.vdocument.in/reader036/viewer/2022071215/60458495cc2cdd04f328ff88/html5/thumbnails/31.jpg)
Software Engineering Management
• Several early papers
• The Mythical Man-Month
• Requirements verifying and validating
FPB 5/30/18
![Page 32: Learning the Hard Way - ICSE 2018'18... · “No Silver Bullet” ‘85, Refired •Software is Essentiallyhard to build •Complexity is inherent •Conformity to hardware and world](https://reader036.vdocument.in/reader036/viewer/2022071215/60458495cc2cdd04f328ff88/html5/thumbnails/32.jpg)
Requirements Verifying and Validating ‘79
• Verification: "Am I getting the requirements right?"
• Completeness,• Consistency• Feasibility: Cost, Schedule • Testability
• Validation: "Am I building the right product?”
Barry Boehm
FPB 5/30/18
![Page 33: Learning the Hard Way - ICSE 2018'18... · “No Silver Bullet” ‘85, Refired •Software is Essentiallyhard to build •Complexity is inherent •Conformity to hardware and world](https://reader036.vdocument.in/reader036/viewer/2022071215/60458495cc2cdd04f328ff88/html5/thumbnails/33.jpg)
“No Silver Bullet” ‘85, Refired
• Software is Essentially hard to build•Complexity is inherent•Conformity to hardware and world•Changeability (looks easy to change)• Invisibility
• “There is no single development in technology or management which alone promises a 10X gain in 10 years” is again true 30 years later
FPB 5/30/18
![Page 34: Learning the Hard Way - ICSE 2018'18... · “No Silver Bullet” ‘85, Refired •Software is Essentiallyhard to build •Complexity is inherent •Conformity to hardware and world](https://reader036.vdocument.in/reader036/viewer/2022071215/60458495cc2cdd04f328ff88/html5/thumbnails/34.jpg)
Resources
• Grady Booch ACM Webinar
• https://learning.acm.org/webinars”History of Software Engineering”
• Selby, Software Engineering: Barry W. Boehm's Lifetime Contributions to Software Development, Management, and Research
• Hoffman & Weiss, Software Fundamentals: Collected Papers of David L. Parnas
FPB 5/30/18