Software Engineering Experimentation Ways to Acquire Knowledge Part








- Slides: 8

Software Engineering Experimentation Ways to Acquire Knowledge Part A Science, Engineering, and Computing Jeff Offutt http: //www. cs. gmu. edu/~offutt/

Goals of Science and Engineering Behaviors observe achieve Science Engineering find and describe design and develop Structures © Jeff Offutt 2

Computing Doesn’t Quite Fit Behaviors observe Science find and describe achieve Behaviors Engineering achieve design and develop Structures imagine Computing model design and develop Structures © Jeff Offutt 3

The Changing Face of Computing • 1980 – 80% of people in IT industry were programmers – CS curricula were based on the research interests of the faculty (automata, OS, compilers, AI, … – Almost no experimentation • 2012 – < 20% of people in IT are programmers – Industry and research interests have diverged • CS departments struggle to get people to teach compilers – Curricula have changed very little – added networks and graphics • These changes, and many more, mean that our academic field must change © Jeff Offutt 4

Historical Perspective Physics Biology Math 1800 s Chemistry Mechanical etc. Civil Physics 1900 s Computer Science 2000 s ECE etc. Computing ? ? ? © Jeff Offutt 5

Computing Departments (my 2020 predictions) Software Engineering Artificial Intelligence Games & Graphics Computer Science Information Technology Information Systems Cybersecurity © Jeff Offutt 6

Computing and Science • All science requires validation • Computing almost invariably requires experimental validation • The behaviors, based on our imagination, must be validated – Because they come from our imagination, the validation must be empirical – Our goal is to solve problems with computing … the solutions must be demonstrated and validated through executing software © Jeff Offutt 7

Summary Change is coming We have the choice : – Embrace it or – Fight it and lose © Jeff Offutt 8