SlideShare a Scribd company logo
1 of 49
Download to read offline
Fifty Years of Software Engineering
Tony Wasserman
Carnegie Mellon University Silicon Valley
Bay Area ACM
15 November 2017
Software Today
• Massive, highly reliable global applications
— Facebook and WhatsApp
— Amazon.com
— Google Search, Gmail, and YouTube
— Netflix
— GitHub
— WeChat (Weixin)
• Millions of mobile apps, mostly for Android and iOS
• Highly interconnected platforms, applications, and devices
• Inconceivable 50 years ago
Computing Power - 1967
• IBM 360/65
— Processor speed 1.333MHz (A11 about 4000x faster)
— Core: up to 1Mb (iPhone 8 about 256,000x more)
— Extended storage: up to 8 Mb
• Everything was slow
— Lots of effort aimed at efficient use of highly constrained
resources
— Many tasks infeasible
• Sizeable space requirements
• Astonishingly high prices by today’s measure
IBM 360/50
Software in 1967
• Focus on individual programmer; no concept of software
professional
• No techniques for estimating required effort
• Very beginning of software industry
— Most software bundled with hardware or given away
— Autoflow as first commercial product
• Numerous large critical software projects in trouble
— Led to collective effort to address this problem
The Birth of “Software Engineering”
• Term credited to Prof. Dr. Friedrich (Fritz) Bauer by Brian
Randell, co-editor of first report
• Two NATO-sponsored workshops
— Fall 1968: Garmisch-Partenkirchen
— Fall 1969: Rome
• Mix of academic, industrial, government participants
• Discussion of business and technical topics
Kongresshalle - Garmisch
ICSE 2 – San Francisco
Getting Here from There: Hardware
• Hardware advances enable higher performance, lower costs,
and new types of applications
— Personal computers
— Alphanumeric and bit-mapped displays
— Networking and distributed systems, esp. Ethernet
— Large scale connected storage
— Flash memory
— Mobile devices
— Cloud computing
— Sensors and connected devices
Behind the scenes:
Faster processors
Miniaturization
Cheaper memory
Display technology
Higher bandwidth
Hardware Advances Drive Software
• Personal computers => Consumer-packaged software
• Bit-mapped displays => Windows and GUIs
• Networking and distributed systems => Web and hosted
applications
• Large scale connected storage => Data management
• Touch screen => Tablet and Mobile apps
• Mobile devices => Apps
• Cloud computing => Massive scalable applications
• Sensors and connected devices => Ubiquitous computing
ICSE 8 - London
ICSE 10 – Singapore, 1988
Getting Here from There: Eras
• Programming Methodology (from 1968)
• Software Lifecycle (from 1970)
• What Not How – Requirements and Specifications (from 1976)
• Computer-Aided Software Engineering (from 1980)
• Capability-Maturity Model (from 1988)
• The Web – Everyone’s a User (from 1994)
• Mobile Apps (from 1997)
• Connected World – Ubiquitous Computing (from 2008)
ICSE 12 - Nice
Getting Here from There: Software Themes
• Abstraction
• Modularity and architecture
• Notations
• Development Teams and Processes
• Product Quality
• User Experience
• Reuse
• Tools and Automated Support
• Management: People, Process, Product
ICSE 18 - Berlin
Abstraction
• System software – OS, DBMS, and Networks
• Programming languages – Procedural, Functional
• Objects
— Simula67, Smalltalk
• Frameworks
— MacApp (1985), .NET, J2EE, Angular
— Patterns
• Virtual machines
— Originated with time-sharing in 1960s
• Containers
— Docker, Kubernetes
Modularity and architectures
• Centralized
— Functions and subroutines
• Client-server
• Frameworks and libraries
— Server side – associated with programming languages
— Client side (Angular, React)
• Cloud computing
• Microservices
• Containers and orchestration
ICSE 19 - Boston
Notations
• Programming Languages
— Traditional compilation vs. virtual machine vs. interpreted
— Domain-specific
— FORTRAN to Pascal to C to C++ to Java to Python
— LISP to Haskell and Erlang to Scala
— JavaScript
• Modeling
— Structure Charts
— Entity-Relationship Diagrams
— Dataflow Diagrams
— UML
Development Teams and Processes
• Waterfall
• Iterative development - Spiral model
• OO development
• Agile and Scrum
— Agile Manifesto (2001)
• Continuous development
• DevOps
— Chef, Puppet (2007-8)
ICSE 23 - Toronto
Team Collaboration
• Face to face
• Written specification and design documents
• Email
• IRC
• Video conferencing
• Chat applications
— Slack, Mattermost
Product Quality
• Testing
• Formal methods, verification and assertions
• Non-functional requirements
— Product reliability, performance, scalability
— Security
— Usability
— Installability
— Modifiability
Aspects of Testing
• Acceptance (black box) testing
• Unit testing (white box)
• Stress testing
• Performance testing
• Integration testing
• Regression testing
• Usability testing (many types)
ICSE 26 - Edinburgh
User Experience
• Contextual design
• Technology dependencies
— TTY
— Alphanumeric displays
— GUI
— Web
— Mobile
— "Smart" devices
o Automobiles
o Fitness and health
TTY Output
From	Tony’s	
dissertation
ICSE 28 - Shanghai
Reuse
• Architectures
• Libraries and frameworks
• Code
Software engineers formerly prioritized writing code,
but now prioritize finding existing components, often
free or open source.
Tools and Automated Support
• IDEs
• CASE tools
• Version control and configuration management
• Issue tracking
• User Interface design and prototyping
• Testing
• Collaboration and workflow support
• Integration and DevOps
Software through Pictures (1987)
ICSE 31 - Vancouver
Management: People, Process, Product
• Chief Programmer Teams
• Key Process Areas in CMM
• Agile Management
• Product and Process Metrics
• Communication Processes
• Product Roadmaps
ICSE 32 – Cape Town
Continuous Improvement through Eras
• Early days
— Slow machines required extra attention to performance
— Bespoke code with little reuse and few libraries/frameworks
— Little experience with large development teams
• Today
— Machine and data speeds make up for poorly written code
— Heavy reliance on frameworks and libraries
— Integrated development environments include collaboration
— Decades of experience lead to “best practices”
ICSE 34 – Zürich
Backsliding
• Modern emphasis on coding schools
— Online, e.g., Codecademy
— Coding Bootcamps, e.g., General Assembly
— Everyone’s a programmer, e.g., Girls Who Code
• Hackathons
• Focus on code, not on software engineering or computer
science foundations
ICSE 35 – San Francisco
Key Advances over 50 Years
• Programming methodology, esp. structured programming
• Unix and C
• SEI and software processes
• Linux, MySQL, and open source
• Web browsers w/JavaScript
• Development environments (Visual Studio, Eclipse)
• Abstractions (OO, Libraries, Frameworks, Virtual machines)
• Massive web and cloud applications
• Agile Development
• ”Low code” applications (Content Management, Blogs)
• GitHub and GitLab
ICSE 37 – Florence (Firenze)
What’s Next?
• More new development methods and tools
• Software-related crises
— Autonomous vehicles
— Medical devices
— E-commerce systems
— Major security breaches
— Cyberwar
• Potential licensing/certification of developers working on
critical applications
• Larger government roles
• More hardware advances – quantum computing
ICSE 39 – Buenos Aires
Future Management Challenges
• Project Effort Estimation and Scheduling
• Creating productive teams
• Organizational diversity
• Continuous improvement
ICSE 40 – Gothenburg (Göteborg)
Software as global critical infrastructure
• Economic, political, and social implications
— Importance of tech leadership
— Economic importance of software businesses
— Ability to defend against cyber attacks
— Education for the current and future workforce
• Toward a digital planet with leaders and laggards
ICSE 42 - Seoul
Contact information
Anthony I. (Tony) Wasserman
post: Carnegie Mellon Silicon Valley
Moffett Field, CA 94035 USA
email: tonyw@acm.org
Skype: tony.wasserman
Twitter: twasserman
All	ICSE	location	photos	
by	Tony	Wasserman
All photos by
Tony Wasserman

More Related Content

Similar to Fifty Years of Software Engineering

Re-Engineering Engineering
Re-Engineering EngineeringRe-Engineering Engineering
Re-Engineering EngineeringIben Rodriguez
 
Wei's Self Intro
Wei's Self IntroWei's Self Intro
Wei's Self Introsunmast
 
Bridging the Gap: from Data Science to Production
Bridging the Gap: from Data Science to ProductionBridging the Gap: from Data Science to Production
Bridging the Gap: from Data Science to ProductionFlorian Wilhelm
 
Open source presentation to Cork County Council
Open source presentation to Cork County CouncilOpen source presentation to Cork County Council
Open source presentation to Cork County CouncilTim Willoughby
 
Utilisation de la plateforme virtuelle QEMU/SystemC pour l'IoT
Utilisation de la plateforme virtuelle QEMU/SystemC pour l'IoTUtilisation de la plateforme virtuelle QEMU/SystemC pour l'IoT
Utilisation de la plateforme virtuelle QEMU/SystemC pour l'IoTPôle Systematic Paris-Region
 
IoT, ready for business
IoT, ready for businessIoT, ready for business
IoT, ready for businessJon Mikel Inza
 
Shift Remote: AI: Behind the scenes development in an AI company - Matija Ili...
Shift Remote: AI: Behind the scenes development in an AI company - Matija Ili...Shift Remote: AI: Behind the scenes development in an AI company - Matija Ili...
Shift Remote: AI: Behind the scenes development in an AI company - Matija Ili...Shift Conference
 
Shift Remote AI: Behind the Scenes Development in an AI Company - Matija Ilij...
Shift Remote AI: Behind the Scenes Development in an AI Company - Matija Ilij...Shift Remote AI: Behind the Scenes Development in an AI Company - Matija Ilij...
Shift Remote AI: Behind the Scenes Development in an AI Company - Matija Ilij...Shift Conference
 
Introduction to the Typesafe Reactive Platform
Introduction to the Typesafe Reactive PlatformIntroduction to the Typesafe Reactive Platform
Introduction to the Typesafe Reactive PlatformBoldRadius Solutions
 
Application Virtualization, University of New Hampshire
Application Virtualization, University of New HampshireApplication Virtualization, University of New Hampshire
Application Virtualization, University of New HampshireTony Austwick
 
NISI Agile Software Architecture Slide Deck
NISI Agile Software Architecture Slide DeckNISI Agile Software Architecture Slide Deck
NISI Agile Software Architecture Slide DeckUtrecht University
 
The Internet of Simulations and the agile development of Cyber-physical systems
The Internet of Simulations and the agile development of Cyber-physical systemsThe Internet of Simulations and the agile development of Cyber-physical systems
The Internet of Simulations and the agile development of Cyber-physical systemsSimware
 
Dan Meltz resume Sept 2016
Dan Meltz resume Sept 2016Dan Meltz resume Sept 2016
Dan Meltz resume Sept 2016Dan Meltz
 
Cloud computing 13 principal enabling technologies
Cloud computing 13 principal  enabling technologiesCloud computing 13 principal  enabling technologies
Cloud computing 13 principal enabling technologiesVaibhav Khanna
 
Why cloud native matters
Why cloud native mattersWhy cloud native matters
Why cloud native mattersCheryl Hung
 
After the LAMP, it's time to get MEAN
After the LAMP, it's time to get MEANAfter the LAMP, it's time to get MEAN
After the LAMP, it's time to get MEANJeff Fox
 

Similar to Fifty Years of Software Engineering (20)

Re-Engineering Engineering
Re-Engineering EngineeringRe-Engineering Engineering
Re-Engineering Engineering
 
Cloud computingjun28
Cloud computingjun28Cloud computingjun28
Cloud computingjun28
 
Cloud computingjun28
Cloud computingjun28Cloud computingjun28
Cloud computingjun28
 
Wei's Self Intro
Wei's Self IntroWei's Self Intro
Wei's Self Intro
 
Bridging the Gap: from Data Science to Production
Bridging the Gap: from Data Science to ProductionBridging the Gap: from Data Science to Production
Bridging the Gap: from Data Science to Production
 
Open source presentation to Cork County Council
Open source presentation to Cork County CouncilOpen source presentation to Cork County Council
Open source presentation to Cork County Council
 
Utilisation de la plateforme virtuelle QEMU/SystemC pour l'IoT
Utilisation de la plateforme virtuelle QEMU/SystemC pour l'IoTUtilisation de la plateforme virtuelle QEMU/SystemC pour l'IoT
Utilisation de la plateforme virtuelle QEMU/SystemC pour l'IoT
 
IoT, ready for business
IoT, ready for businessIoT, ready for business
IoT, ready for business
 
Developing Digital Twins
Developing Digital TwinsDeveloping Digital Twins
Developing Digital Twins
 
Shift Remote: AI: Behind the scenes development in an AI company - Matija Ili...
Shift Remote: AI: Behind the scenes development in an AI company - Matija Ili...Shift Remote: AI: Behind the scenes development in an AI company - Matija Ili...
Shift Remote: AI: Behind the scenes development in an AI company - Matija Ili...
 
Shift Remote AI: Behind the Scenes Development in an AI Company - Matija Ilij...
Shift Remote AI: Behind the Scenes Development in an AI Company - Matija Ilij...Shift Remote AI: Behind the Scenes Development in an AI Company - Matija Ilij...
Shift Remote AI: Behind the Scenes Development in an AI Company - Matija Ilij...
 
Oracle OpenWorld 2014 Review Part One - Overview
Oracle OpenWorld 2014 Review Part One - OverviewOracle OpenWorld 2014 Review Part One - Overview
Oracle OpenWorld 2014 Review Part One - Overview
 
Introduction to the Typesafe Reactive Platform
Introduction to the Typesafe Reactive PlatformIntroduction to the Typesafe Reactive Platform
Introduction to the Typesafe Reactive Platform
 
Application Virtualization, University of New Hampshire
Application Virtualization, University of New HampshireApplication Virtualization, University of New Hampshire
Application Virtualization, University of New Hampshire
 
NISI Agile Software Architecture Slide Deck
NISI Agile Software Architecture Slide DeckNISI Agile Software Architecture Slide Deck
NISI Agile Software Architecture Slide Deck
 
The Internet of Simulations and the agile development of Cyber-physical systems
The Internet of Simulations and the agile development of Cyber-physical systemsThe Internet of Simulations and the agile development of Cyber-physical systems
The Internet of Simulations and the agile development of Cyber-physical systems
 
Dan Meltz resume Sept 2016
Dan Meltz resume Sept 2016Dan Meltz resume Sept 2016
Dan Meltz resume Sept 2016
 
Cloud computing 13 principal enabling technologies
Cloud computing 13 principal  enabling technologiesCloud computing 13 principal  enabling technologies
Cloud computing 13 principal enabling technologies
 
Why cloud native matters
Why cloud native mattersWhy cloud native matters
Why cloud native matters
 
After the LAMP, it's time to get MEAN
After the LAMP, it's time to get MEANAfter the LAMP, it's time to get MEAN
After the LAMP, it's time to get MEAN
 

Recently uploaded

BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEOrtus Solutions, Corp
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaHanief Utama
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样umasea
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...gurkirankumar98700
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideChristina Lin
 
The Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfThe Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfPower Karaoke
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesPhilip Schwarz
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptkotipi9215
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
software engineering Chapter 5 System modeling.pptx
software engineering Chapter 5 System modeling.pptxsoftware engineering Chapter 5 System modeling.pptx
software engineering Chapter 5 System modeling.pptxnada99848
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsAhmed Mohamed
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfAlina Yurenko
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...soniya singh
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - InfographicHr365.us smith
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWave PLM
 

Recently uploaded (20)

BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief Utama
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
 
The Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfThe Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdf
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a series
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.ppt
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
software engineering Chapter 5 System modeling.pptx
software engineering Chapter 5 System modeling.pptxsoftware engineering Chapter 5 System modeling.pptx
software engineering Chapter 5 System modeling.pptx
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML Diagrams
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - Infographic
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need It
 

Fifty Years of Software Engineering

  • 1. Fifty Years of Software Engineering Tony Wasserman Carnegie Mellon University Silicon Valley Bay Area ACM 15 November 2017
  • 2. Software Today • Massive, highly reliable global applications — Facebook and WhatsApp — Amazon.com — Google Search, Gmail, and YouTube — Netflix — GitHub — WeChat (Weixin) • Millions of mobile apps, mostly for Android and iOS • Highly interconnected platforms, applications, and devices • Inconceivable 50 years ago
  • 3. Computing Power - 1967 • IBM 360/65 — Processor speed 1.333MHz (A11 about 4000x faster) — Core: up to 1Mb (iPhone 8 about 256,000x more) — Extended storage: up to 8 Mb • Everything was slow — Lots of effort aimed at efficient use of highly constrained resources — Many tasks infeasible • Sizeable space requirements • Astonishingly high prices by today’s measure
  • 5. Software in 1967 • Focus on individual programmer; no concept of software professional • No techniques for estimating required effort • Very beginning of software industry — Most software bundled with hardware or given away — Autoflow as first commercial product • Numerous large critical software projects in trouble — Led to collective effort to address this problem
  • 6. The Birth of “Software Engineering” • Term credited to Prof. Dr. Friedrich (Fritz) Bauer by Brian Randell, co-editor of first report • Two NATO-sponsored workshops — Fall 1968: Garmisch-Partenkirchen — Fall 1969: Rome • Mix of academic, industrial, government participants • Discussion of business and technical topics
  • 8. ICSE 2 – San Francisco
  • 9. Getting Here from There: Hardware • Hardware advances enable higher performance, lower costs, and new types of applications — Personal computers — Alphanumeric and bit-mapped displays — Networking and distributed systems, esp. Ethernet — Large scale connected storage — Flash memory — Mobile devices — Cloud computing — Sensors and connected devices Behind the scenes: Faster processors Miniaturization Cheaper memory Display technology Higher bandwidth
  • 10. Hardware Advances Drive Software • Personal computers => Consumer-packaged software • Bit-mapped displays => Windows and GUIs • Networking and distributed systems => Web and hosted applications • Large scale connected storage => Data management • Touch screen => Tablet and Mobile apps • Mobile devices => Apps • Cloud computing => Massive scalable applications • Sensors and connected devices => Ubiquitous computing
  • 11. ICSE 8 - London
  • 12. ICSE 10 – Singapore, 1988
  • 13. Getting Here from There: Eras • Programming Methodology (from 1968) • Software Lifecycle (from 1970) • What Not How – Requirements and Specifications (from 1976) • Computer-Aided Software Engineering (from 1980) • Capability-Maturity Model (from 1988) • The Web – Everyone’s a User (from 1994) • Mobile Apps (from 1997) • Connected World – Ubiquitous Computing (from 2008)
  • 14. ICSE 12 - Nice
  • 15. Getting Here from There: Software Themes • Abstraction • Modularity and architecture • Notations • Development Teams and Processes • Product Quality • User Experience • Reuse • Tools and Automated Support • Management: People, Process, Product
  • 16. ICSE 18 - Berlin
  • 17. Abstraction • System software – OS, DBMS, and Networks • Programming languages – Procedural, Functional • Objects — Simula67, Smalltalk • Frameworks — MacApp (1985), .NET, J2EE, Angular — Patterns • Virtual machines — Originated with time-sharing in 1960s • Containers — Docker, Kubernetes
  • 18. Modularity and architectures • Centralized — Functions and subroutines • Client-server • Frameworks and libraries — Server side – associated with programming languages — Client side (Angular, React) • Cloud computing • Microservices • Containers and orchestration
  • 19. ICSE 19 - Boston
  • 20. Notations • Programming Languages — Traditional compilation vs. virtual machine vs. interpreted — Domain-specific — FORTRAN to Pascal to C to C++ to Java to Python — LISP to Haskell and Erlang to Scala — JavaScript • Modeling — Structure Charts — Entity-Relationship Diagrams — Dataflow Diagrams — UML
  • 21. Development Teams and Processes • Waterfall • Iterative development - Spiral model • OO development • Agile and Scrum — Agile Manifesto (2001) • Continuous development • DevOps — Chef, Puppet (2007-8)
  • 22. ICSE 23 - Toronto
  • 23. Team Collaboration • Face to face • Written specification and design documents • Email • IRC • Video conferencing • Chat applications — Slack, Mattermost
  • 24. Product Quality • Testing • Formal methods, verification and assertions • Non-functional requirements — Product reliability, performance, scalability — Security — Usability — Installability — Modifiability
  • 25. Aspects of Testing • Acceptance (black box) testing • Unit testing (white box) • Stress testing • Performance testing • Integration testing • Regression testing • Usability testing (many types)
  • 26. ICSE 26 - Edinburgh
  • 27. User Experience • Contextual design • Technology dependencies — TTY — Alphanumeric displays — GUI — Web — Mobile — "Smart" devices o Automobiles o Fitness and health
  • 29. ICSE 28 - Shanghai
  • 30. Reuse • Architectures • Libraries and frameworks • Code Software engineers formerly prioritized writing code, but now prioritize finding existing components, often free or open source.
  • 31. Tools and Automated Support • IDEs • CASE tools • Version control and configuration management • Issue tracking • User Interface design and prototyping • Testing • Collaboration and workflow support • Integration and DevOps
  • 33. ICSE 31 - Vancouver
  • 34. Management: People, Process, Product • Chief Programmer Teams • Key Process Areas in CMM • Agile Management • Product and Process Metrics • Communication Processes • Product Roadmaps
  • 35. ICSE 32 – Cape Town
  • 36. Continuous Improvement through Eras • Early days — Slow machines required extra attention to performance — Bespoke code with little reuse and few libraries/frameworks — Little experience with large development teams • Today — Machine and data speeds make up for poorly written code — Heavy reliance on frameworks and libraries — Integrated development environments include collaboration — Decades of experience lead to “best practices”
  • 37. ICSE 34 – Zürich
  • 38. Backsliding • Modern emphasis on coding schools — Online, e.g., Codecademy — Coding Bootcamps, e.g., General Assembly — Everyone’s a programmer, e.g., Girls Who Code • Hackathons • Focus on code, not on software engineering or computer science foundations
  • 39. ICSE 35 – San Francisco
  • 40. Key Advances over 50 Years • Programming methodology, esp. structured programming • Unix and C • SEI and software processes • Linux, MySQL, and open source • Web browsers w/JavaScript • Development environments (Visual Studio, Eclipse) • Abstractions (OO, Libraries, Frameworks, Virtual machines) • Massive web and cloud applications • Agile Development • ”Low code” applications (Content Management, Blogs) • GitHub and GitLab
  • 41. ICSE 37 – Florence (Firenze)
  • 42. What’s Next? • More new development methods and tools • Software-related crises — Autonomous vehicles — Medical devices — E-commerce systems — Major security breaches — Cyberwar • Potential licensing/certification of developers working on critical applications • Larger government roles • More hardware advances – quantum computing
  • 43. ICSE 39 – Buenos Aires
  • 44. Future Management Challenges • Project Effort Estimation and Scheduling • Creating productive teams • Organizational diversity • Continuous improvement
  • 45. ICSE 40 – Gothenburg (Göteborg)
  • 46. Software as global critical infrastructure • Economic, political, and social implications — Importance of tech leadership — Economic importance of software businesses — Ability to defend against cyber attacks — Education for the current and future workforce • Toward a digital planet with leaders and laggards
  • 47. ICSE 42 - Seoul
  • 48. Contact information Anthony I. (Tony) Wasserman post: Carnegie Mellon Silicon Valley Moffett Field, CA 94035 USA email: tonyw@acm.org Skype: tony.wasserman Twitter: twasserman