Software Engineering Experimentation Ways to Acquire Knowledge Part A

Download Report

Transcript Software Engineering Experimentation Ways to Acquire Knowledge Part A

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, 2007-2012
2
Computing Doesn’t Quite Fit
Behaviors
observe
Science
achieve
Behaviors
Engineering
find and
describe
achieve
design and
develop
Structures
imagine
Computing
model
design and
develop
Structures
© Jeff Offutt, 2007-2012
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, 2007-2012
4
Historical Perspective
Physics
Biology
Math
1800s
Chemistry
Mechanical
etc.
Civil
Physics
1900s
Computer
Science
2000s
ECE
etc.
Computing
???
© Jeff Offutt, 2007-2012
5
Computing Departments
(my 2020 predictions)
programming,
algorithms, creativity
Software
Engineering
programming, algorithms,
analysis, design
Artificial
Intelligence
Games &
Graphics
Computer
Science
Information
Technology
no math
no programming
theory, algorithms,
programming
Networking
analysis, problem
© Jeff Offutt, 2007-2012
solving, design
math, programming,
algorithms
Information
Systems
analysis, design,
programming
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, 2007-2012
7
Summary
Change is coming
We have the choice :
– Embrace it
or
– Fight it
and lose
© Jeff Offutt, 2007-2012
8