the science of computing and the engineering of software
DESCRIPTION
The Science of Computing and the Engineering of Software. Tony Hoare Europython Birmingham 1 July, 2009. ScienceEngineering. pure scientist. engineering scientist. . scientific engineer. practicing engineer. ScienceEngineering. long-term. short-term. - PowerPoint PPT PresentationTRANSCRIPT
The Science of Computing and the Engineering of Software
Tony Hoare
Europython Birmingham
1 July, 2009
1
Science Engineering
• pure scientist
engineering scientist
scientific engineer
practicing engineer
..........
2
Science Engineering
• long-term • short-term
3
Science Engineering
• long-term• idealism
• short-term• compromise
4
Science Engineering
• long-term• idealism• certainty
• short-term• compromise• risk management
5
Science Engineering
• long-term• idealism• certainty• perfection
• short-term• compromise• risk management• adequacy
6
Science Engineering
• long-term• idealism• certainty• perfection• generality
• short-term• compromise• risk management• adequacy• specificity
7
Science Engineering
• long-term• idealism• certainty• perfection• generality• separation
• short-term• compromise• risk management• adequacy• specificity• integration
8
Science Engineering
• long-term• idealism• certainty• perfection• generality• separation• unification
• short-term• compromise• risk management• adequacy• specificity• integration• diversity
9
Science Engineering
• long-term• idealism• certainty• perfection• generality• separation• unification• originality
• short-term• compromise• risk management• adequacy• specificity• integration• diversity• best practice
10
Science Engineering
• long-term• idealism• certainty• perfection• generality• separation• unification• originality• formality
• short-term• compromise• risk management• adequacy• specificity• integration• diversity• best practice• intuition
11
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
12
The Science of Computing
13
The Science of Computing
14
The Science of Computing
15
The Science of Computing
16
The Science of Computing
17
Science delivers results
• as a software engineering toolsetcovering 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, ...
18
Technology transfer
Science of correctness
Design automation
Program analysis
Engineering of dependability
19
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
20