SlideShare a Scribd company logo
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

Into the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdfInto the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdfOrtus Solutions, Corp
 
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERRORTROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERRORTier1 app
 
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology SolutionsProsigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology SolutionsProsigns
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2
 
iGaming Platform & Lottery Solutions by Skilrock
iGaming Platform & Lottery Solutions by SkilrockiGaming Platform & Lottery Solutions by Skilrock
iGaming Platform & Lottery Solutions by SkilrockSkilrock Technologies
 
Accelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with PlatformlessAccelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with PlatformlessWSO2
 
Studiovity film pre-production and screenwriting software
Studiovity film pre-production and screenwriting softwareStudiovity film pre-production and screenwriting software
Studiovity film pre-production and screenwriting softwareinfo611746
 
top nidhi software solution freedownload
top nidhi software solution freedownloadtop nidhi software solution freedownload
top nidhi software solution freedownloadvrstrong314
 
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamOpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamtakuyayamamoto1800
 
How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?
How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?
How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?XfilesPro
 
Designing for Privacy in Amazon Web Services
Designing for Privacy in Amazon Web ServicesDesigning for Privacy in Amazon Web Services
Designing for Privacy in Amazon Web ServicesKrzysztofKkol1
 
AI/ML Infra Meetup | Reducing Prefill for LLM Serving in RAG
AI/ML Infra Meetup | Reducing Prefill for LLM Serving in RAGAI/ML Infra Meetup | Reducing Prefill for LLM Serving in RAG
AI/ML Infra Meetup | Reducing Prefill for LLM Serving in RAGAlluxio, Inc.
 
Abortion ^Clinic ^%[+971588192166''] Abortion Pill Al Ain (?@?) Abortion Pill...
Abortion ^Clinic ^%[+971588192166''] Abortion Pill Al Ain (?@?) Abortion Pill...Abortion ^Clinic ^%[+971588192166''] Abortion Pill Al Ain (?@?) Abortion Pill...
Abortion ^Clinic ^%[+971588192166''] Abortion Pill Al Ain (?@?) Abortion Pill...Abortion Clinic
 
A Python-based approach to data loading in TM1 - Using Airflow as an ETL for TM1
A Python-based approach to data loading in TM1 - Using Airflow as an ETL for TM1A Python-based approach to data loading in TM1 - Using Airflow as an ETL for TM1
A Python-based approach to data loading in TM1 - Using Airflow as an ETL for TM1KnowledgeSeed
 
A Comprehensive Appium Guide for Hybrid App Automation Testing.pdf
A Comprehensive Appium Guide for Hybrid App Automation Testing.pdfA Comprehensive Appium Guide for Hybrid App Automation Testing.pdf
A Comprehensive Appium Guide for Hybrid App Automation Testing.pdfkalichargn70th171
 
Facemoji Keyboard released its 2023 State of Emoji report, outlining the most...
Facemoji Keyboard released its 2023 State of Emoji report, outlining the most...Facemoji Keyboard released its 2023 State of Emoji report, outlining the most...
Facemoji Keyboard released its 2023 State of Emoji report, outlining the most...rajkumar669520
 
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.ILBeyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.ILNatan Silnitsky
 
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...Anthony Dahanne
 
AI/ML Infra Meetup | Perspective on Deep Learning Framework
AI/ML Infra Meetup | Perspective on Deep Learning FrameworkAI/ML Infra Meetup | Perspective on Deep Learning Framework
AI/ML Infra Meetup | Perspective on Deep Learning FrameworkAlluxio, Inc.
 

Recently uploaded (20)

Into the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdfInto the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdf
 
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERRORTROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
 
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology SolutionsProsigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology Solutions
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
 
iGaming Platform & Lottery Solutions by Skilrock
iGaming Platform & Lottery Solutions by SkilrockiGaming Platform & Lottery Solutions by Skilrock
iGaming Platform & Lottery Solutions by Skilrock
 
Accelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with PlatformlessAccelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with Platformless
 
Corporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMSCorporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMS
 
Studiovity film pre-production and screenwriting software
Studiovity film pre-production and screenwriting softwareStudiovity film pre-production and screenwriting software
Studiovity film pre-production and screenwriting software
 
top nidhi software solution freedownload
top nidhi software solution freedownloadtop nidhi software solution freedownload
top nidhi software solution freedownload
 
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamOpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
 
How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?
How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?
How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?
 
Designing for Privacy in Amazon Web Services
Designing for Privacy in Amazon Web ServicesDesigning for Privacy in Amazon Web Services
Designing for Privacy in Amazon Web Services
 
AI/ML Infra Meetup | Reducing Prefill for LLM Serving in RAG
AI/ML Infra Meetup | Reducing Prefill for LLM Serving in RAGAI/ML Infra Meetup | Reducing Prefill for LLM Serving in RAG
AI/ML Infra Meetup | Reducing Prefill for LLM Serving in RAG
 
Abortion ^Clinic ^%[+971588192166''] Abortion Pill Al Ain (?@?) Abortion Pill...
Abortion ^Clinic ^%[+971588192166''] Abortion Pill Al Ain (?@?) Abortion Pill...Abortion ^Clinic ^%[+971588192166''] Abortion Pill Al Ain (?@?) Abortion Pill...
Abortion ^Clinic ^%[+971588192166''] Abortion Pill Al Ain (?@?) Abortion Pill...
 
A Python-based approach to data loading in TM1 - Using Airflow as an ETL for TM1
A Python-based approach to data loading in TM1 - Using Airflow as an ETL for TM1A Python-based approach to data loading in TM1 - Using Airflow as an ETL for TM1
A Python-based approach to data loading in TM1 - Using Airflow as an ETL for TM1
 
A Comprehensive Appium Guide for Hybrid App Automation Testing.pdf
A Comprehensive Appium Guide for Hybrid App Automation Testing.pdfA Comprehensive Appium Guide for Hybrid App Automation Testing.pdf
A Comprehensive Appium Guide for Hybrid App Automation Testing.pdf
 
Facemoji Keyboard released its 2023 State of Emoji report, outlining the most...
Facemoji Keyboard released its 2023 State of Emoji report, outlining the most...Facemoji Keyboard released its 2023 State of Emoji report, outlining the most...
Facemoji Keyboard released its 2023 State of Emoji report, outlining the most...
 
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.ILBeyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
 
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
 
AI/ML Infra Meetup | Perspective on Deep Learning Framework
AI/ML Infra Meetup | Perspective on Deep Learning FrameworkAI/ML Infra Meetup | Perspective on Deep Learning Framework
AI/ML Infra Meetup | Perspective on Deep Learning Framework
 

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