Software Engineering Experimentation Ways to Acquire Knowledge Part A Science, Engineering and Computing Jeff Offutt
© Jeff Offutt, Goals of Science and Engineering Behaviors ScienceEngineering find and describe Structures design and develop achieveobserve
© Jeff Offutt, Computing Doesn’t Quite Fit Behaviors ScienceEngineering find and describe Structures design and develop achieveobserve Computing model Structures design and develop achieveBehaviors imagine
© Jeff Offutt, 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, Historical Perspective Math1800s Physics Biology Chemistry etc. Physics1900s Mechanical Civil ECE etc. ComputerScience2000s ??? Computing
© Jeff Offutt, Computing Departments Information Technology Networking Computer Science Software Engineering Artificial Intelligence Games & Graphics Information Systems no math no programming math, programming, algorithms programming, algorithms, creativity programming, algorithms, analysis, design analysis, design, programming analysis, problem solving, design theory, algorithms, programming (my 2020 predictions)
© Jeff Offutt, 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, Summary We have the choice : –Embrace it or –Fight it and lose Change is coming