1 / 20

The Science of Computing and the Engineering of Software

Delve into the long-term ideals and short-term compromises in the realms of science and engineering as Tony Hoare discusses idealism, certainty, perfection, and more. Learn how the science of computing seeks answers to fundamental questions and how it intersects with software engineering.

Download Presentation

The Science of Computing and the Engineering of Software

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. The Science of Computing and the Engineering of Software Tony Hoare Europython Birmingham 1 July, 2009

  2. Science Engineering • pure scientist engineering scientist .......... scientific engineer practicing engineer

  3. Science Engineering • long-term • short-term

  4. Science Engineering • long-term • idealism • short-term • compromise

  5. Science Engineering • long-term • idealism • certainty • short-term • compromise • risk management

  6. Science Engineering • long-term • idealism • certainty • perfection • short-term • compromise • risk management • adequacy

  7. Science Engineering • long-term • idealism • certainty • perfection • generality • short-term • compromise • risk management • adequacy • specificity

  8. Science Engineering • long-term • idealism • certainty • perfection • generality • separation • short-term • compromise • risk management • adequacy • specificity • integration

  9. Science Engineering • long-term • idealism • certainty • perfection • generality • separation • unification • short-term • compromise • risk management • adequacy • specificity • integration • diversity

  10. Science Engineering • long-term • idealism • certainty • perfection • generality • separation • unification • originality • short-term • compromise • risk management • adequacy • specificity • integration • diversity • best practice

  11. Science Engineering • long-term • idealism • certainty • perfection • generality • separation • unification • originality • formality • short-term • compromise • risk management • adequacy • specificity • integration • diversity • best practice • intuition

  12. Science Engineering • long-term • idealism • certainty • perfection • generality • separation • unification • originality • formality • correctness • short-term • compromise • risk • adequacy • specificity • amalgamation • diversity • best practice • intuition • dependability

  13. The Science of Computing • seeks answers to basic questions • what does a program do? • how does it work? • why does it work? • how do we know?

  14. The Science of Computing • seeks answers to basic questions • what does a program do? described by its specification • how does it work? • why does it work? • how do we know?

  15. The Science of Computing • seeks answers to basic questions • what does a program do? described by its specification • how does it work? by split into modules with defined interfaces • why does it work? • how do we know?

  16. The Science of Computing • seeks answers to basic questions • what does a program do? described by its specification • how does it work? by split into modules with defined interfaces • why does it work? by theory of program semantics • how do we know?

  17. The Science of Computing • seeks answers to basic questions • what does a program do? described by its specification • how does it work? by split into modules with defined interfaces • why does it work? by theory of program semantics • how do we know? by calculation and proof

  18. Science delivers results • as a software engineering toolset covering all phases of software development • specification, design, coding, testing, modification, evolution, ... integrating the services of • program analysers, type checkers, theorem provers, code generators, test case generators, ...

  19. Technology transfer Science of correctness Design automation Program analysis Engineering of dependability

  20. One day ... • Software will be the most reliable component of every product which contains it. • Software engineering will be the most dependable of all engineering professions. • Because of the successful interplay of research • into the science of programming • and the engineering of software

More Related