Top Banner
Software Engineering Experimentation Software Engineering Specific Issues (Mostly CS as well) Jeff Offutt http://www.cs.gmu.edu/~offutt/
21

Software Engineering Experimentation Software Engineering Specific Issues (Mostly CS as well) Jeff Offutt offutt

Dec 24, 2015

Download

Documents

Claribel Ray
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Software Engineering Experimentation Software Engineering Specific Issues (Mostly CS as well) Jeff Offutt offutt/

Software Engineering Experimentation

Software Engineering Specific Issues(Mostly CS as well)

Jeff Offutt

http://www.cs.gmu.edu/~offutt/

Page 2: Software Engineering Experimentation Software Engineering Specific Issues (Mostly CS as well) Jeff Offutt offutt/

Software Engineering1. The biggest obstacle to software engineering

experimentation is that our populations are unknown– What is a representative collection of programs?– Faults?– Developers?

2. Second : Industry won’t cooperate– In other engineering fields, companies provide access

to data, resources, processes, and people3. Third : “Knowledge inversion” – senior scientists

often do not know as much about experimentation as younger scientists

© Jeff Offutt, 2007 2

Page 3: Software Engineering Experimentation Software Engineering Specific Issues (Mostly CS as well) Jeff Offutt offutt/

1. Unknown Populations

• How many programs are enough for external validity?

• Are seeded faults as good as natural faults?• Does using students bias the results?• How do we analyze our results?

© Jeff Offutt, 2007 3

Page 4: Software Engineering Experimentation Software Engineering Specific Issues (Mostly CS as well) Jeff Offutt offutt/

1. Statistical Tests and Software• Experimental data based on programs cannot, with

validity, be subjected to inferential statistical tests since the population is unknown

• An unknown population nullifies any statistical result that would be obtained, regardless of the number of programs

• Only descriptive statistics can be used– For example, log linear analysis

• That is, statistical hypothesis testing, at least in the statistical sense, is not accurate

© Jeff Offutt, 2007 4

Page 5: Software Engineering Experimentation Software Engineering Specific Issues (Mostly CS as well) Jeff Offutt offutt/

2. Industry Cooperation• Researchers need access to data from industry to know how techniques work in practice

• Two years ago, my student applied a high-end testing technique to real-time, safety-critical software, finding several bugs– She was refused permission to publish, because “customers might

think our software is not perfect”• Seven years ago, a former student applied a test technique

I invented to Cisco’s routing software, finding several bugs, one very severe, saving millions of dollars– $750,000 bonus!– Almost fired for telling me– Her boss asked me to sign a non-disclosure agreement, afterwards

• Very difficult to get research funding from industry

© Jeff Offutt, 2007 5

Page 6: Software Engineering Experimentation Software Engineering Specific Issues (Mostly CS as well) Jeff Offutt offutt/

3. Knowledge Inversion• Every generation of computer scientists has taken a

step forward– ’70s – ’80s: No validation at all– ’80s : We built systems– ’80s – ’90s : Results on small sets of data– ’90s : Careful experimental design, larger data sets– 2000s : Sophisticated statistical analysis of results

• Many journal and conference reviewers lack knowledge to evaluate experiments

© Jeff Offutt, 2007 6

Page 7: Software Engineering Experimentation Software Engineering Specific Issues (Mostly CS as well) Jeff Offutt offutt/

Confounding Variables in Software

1. The Human Element2. Scalability and Generality3. Conduct of Experiment4. Other

© Jeff Offutt, 2004 7

A partial list of confounding variables, from previous courses, started Fall 1994

Page 8: Software Engineering Experimentation Software Engineering Specific Issues (Mostly CS as well) Jeff Offutt offutt/

1. The Human Element• Grant money

– source– amount

• Motivation– Sponsor– Subject

• Capabilities of programmer– knowledge– experience– skills– birth order– IQ– status– handedness– personality traits– attention to detail

• Physical environment• Feedback to subjects © Jeff Offutt, 2004 8

• Subjects expectations• Learning curve• Amount and type of training• Natural language• Time of day experimentation

conducted• Group organization• Communication

– skills– type allowed– Structure

• Researchers– knowledge– experience– skills

• Culture of subjects

Page 9: Software Engineering Experimentation Software Engineering Specific Issues (Mostly CS as well) Jeff Offutt offutt/

2. Scalability and Generality• Size of project• Application domain• Programming language• Number of artifacts/subjects• Sampling of artifacts• Source of artifacts– real or custom built– how created

© Jeff Offutt, 2004 9

Page 10: Software Engineering Experimentation Software Engineering Specific Issues (Mostly CS as well) Jeff Offutt offutt/

3. Conduct of Experiment• Duration of experiment• Measure of artifact• Support tools• Specifications• Hardware• Support software• Method of data collection• Order of experimental process

© Jeff Offutt, 2004 10

Page 11: Software Engineering Experimentation Software Engineering Specific Issues (Mostly CS as well) Jeff Offutt offutt/

4. Other• Method• Oracle quality• Complexity of change• Experimental design• Direction of hypothesis

© Jeff Offutt, 2004 11

Page 12: Software Engineering Experimentation Software Engineering Specific Issues (Mostly CS as well) Jeff Offutt offutt/

Software Engineering1. The biggest obstacle to software engineering

experimentation is that our populations are unknown– What is a representative collection of programs?– Faults?– Developers?

2. Second : Industry won’t cooperate– In other engineering fields, companies provide access

to data, resources, processes, and people3. Third : “Knowledge inversion” – senior scientists

often do not know as much about experimentation as younger scientists

© Jeff Offutt, 2007 12

Page 13: Software Engineering Experimentation Software Engineering Specific Issues (Mostly CS as well) Jeff Offutt offutt/

1. Unknown Populations

• How many programs are enough for external validity?

• Are seeded faults as good as natural faults?• Does using students bias the results?• How do we analyze our results?

© Jeff Offutt, 2007 13

Page 14: Software Engineering Experimentation Software Engineering Specific Issues (Mostly CS as well) Jeff Offutt offutt/

1. Statistical Tests and Software• Experimental data based on programs cannot, with

validity, be subjected to inferential statistical tests since the population is unknown

• An unknown population nullifies any statistical result that would be obtained, regardless of the number of programs

• Only descriptive statistics can be used– For example, log linear analysis

• That is, statistical hypothesis testing, at least in the statistical sense, is not accurate

© Jeff Offutt, 2007 14

Page 15: Software Engineering Experimentation Software Engineering Specific Issues (Mostly CS as well) Jeff Offutt offutt/

2. Industry Cooperation• Researchers need access to data from industry to know how techniques work in practice

• Two years ago, my student applied a high-end testing technique to real-time, safety-critical software, finding several bugs– She was refused permission to publish, because “customers might

think our software is not perfect”• Seven years ago, a former student applied a test technique

I invented to Cisco’s routing software, finding several bugs, one very severe, saving millions of dollars– $750,000 bonus!– Almost fired for telling me– Her boss asked me to sign a non-disclosure agreement, afterwards

• Very difficult to get research funding from industry

© Jeff Offutt, 2007 15

Page 16: Software Engineering Experimentation Software Engineering Specific Issues (Mostly CS as well) Jeff Offutt offutt/

3. Knowledge Inversion• Every generation of computer scientists has taken a

step forward– ’70s – ’80s: No validation at all– ’80s : We built systems– ’80s – ’90s : Results on small sets of data– ’90s : Careful experimental design, larger data sets– 2000s : Sophisticated statistical analysis of results

• Many journal and conference reviewers lack knowledge to evaluate experiments

© Jeff Offutt, 2007 16

Page 17: Software Engineering Experimentation Software Engineering Specific Issues (Mostly CS as well) Jeff Offutt offutt/

Principles to Follow1) We make progress through continuous, sustained, small, steps – not technological breakthroughs

• Scientists take baby steps• The “big step” is the last of many• The Web was the last of thousands of baby steps

2) Collect your data very carefully• Identify and control variables• Document all decisions• Save all data – you may have to repeat the experiment

years later

© Jeff Offutt, 2007 17

Page 18: Software Engineering Experimentation Software Engineering Specific Issues (Mostly CS as well) Jeff Offutt offutt/

Principles to Follow (2)3) Collecting is not the goal, analysis and conclusions

are the goals• Don’t lose the forest in the trees• Conclusions matter more than measurement

4) Data are uncertain and fallible – design experiments to allow for problems

• In real science, we always have too many variables• In real experiments, we always lose some data

5) Non-inventors need to carry out experiments• If I validate my invention, I’m hopelessly biased

© Jeff Offutt, 2007 18

Page 19: Software Engineering Experimentation Software Engineering Specific Issues (Mostly CS as well) Jeff Offutt offutt/

Principles to Follow (3)

6) The goal of an experiment in software is to help companies develop better software, cheaper– The goal should NOT be to publish another

paper

© Jeff Offutt, 2007 19

Page 20: Software Engineering Experimentation Software Engineering Specific Issues (Mostly CS as well) Jeff Offutt offutt/

• SWE and CS are “inventive” fields• Evaluation means determining how useful our

inventions are• Experimentation is the most widely used way to

evaluate SWE & CS research

© Jeff Offutt, 2007 20

Expectations for evaluation increases every yearExpectations for evaluation increases every year

Experimentation Design in Software Engineering & Computer Science

SummarySummary

Page 21: Software Engineering Experimentation Software Engineering Specific Issues (Mostly CS as well) Jeff Offutt offutt/

Be Problem Solvers• As graduate students, you have learned to be good at

solving problems

• Much of life is about solving problems

• Education is not about skills, it is about knowledge

• Utilize your education knowledge to help you:– Think rationally– Question authority– Solve all of life’s problems

© Jeff Offutt, 2007 21