Software Engineering Experimentation

Slides:



Advertisements
Similar presentations
Empirically Assessing End User Software Engineering Techniques Gregg Rothermel Department of Computer Science and Engineering University of Nebraska --
Advertisements

The discipline of statistics: Provides methods for organizing and summarizing data and for drawing conclusions based on information contained in data.
Software Engineering Experimentation Software Engineering Specific Issues (Mostly CS as well) Jeff Offutt
CSD 5100 Introduction to Research Methods in CSD First Day Opening Stretch Course Requirements/Syllabus What is Science? What is Research? The Scientific.
Copyright © by Holt, Rinehart and Winston. All rights reserved. ResourcesChapter menu The World of Life Science Section 1 Asking About Life Section 2 Scientific.
Software Engineering Experimentation Rules for Reviewing Papers Jeff Offutt See my editorials 17(3) and 17(4) in STVR
Software Engineering Experimentation Example Experimental Design Jeff Offutt Robert Nilsson.
Chapter 1: The Nature of Science Section 1: What is Science?
Developing Smart objectives and literature review Zia-Ul-Ain Sabiha.
Definition of statistics A branch of mathematics dealing with the collection, analysis, interpretation, and presentation of masses of quantative and qualitative.
Obtain and review client feedback. Creating evaluation or feedback tools Importance of client feedback  The use of client feedback is very useful to.
What is Science? or 1.Science is concerned with understanding how nature and the physical world work. 2.Science can prove anything, solve any problem,
Unit 1 Lesson 2 Scientific Investigations Copyright © Houghton Mifflin Harcourt Publishing Company.
Data Collection Techniques
Chapter 1: Statistics, Data and Statistical Thinking
AP Seminar: Statistics Primer
DEPARTMENT OF HUMAN AND SOCIAL CIENCES APPLIED LINGUISTICS IN ENGLISH CAREER    “THE INFLUENCE OF TEACHER’S ATTITUDES AND BELIEFS INTO TECHNOLOGY-RELATED.
Critically Appraising a Medical Journal Article
Software Engineering Experimentation
Obj. 1 Investigative Techniques State Correlation 1a-1h
AP Seminar: Statistics Primer
Chapter 1: Statistics, Data, and Statistical Thinking
CHAPTER OVERVIEW The Format of a Research Proposal Being Neat
Introduction to Statistics
Section 2: Science as a Process
Probability and Statistics
Campo Elementary School
Writing for Academic Journals
The Scientific Process in Computing
Introductory Statistical Language
Methods of Studying Human Behavior
SCIENTIFIC PROBLEM SOLVING
The Nature of Probability and Statistics
Methods of Studying Human Behavior
Unit 1 Lesson 2 Scientific Investigations
Software Engineering Experimentation
Software Engineering Experimentation
Software Engineering Experimentation
Software Engineering Experimentation
Software Testing and Maintenance Maintenance and Evolution Overview
The process of thinking scientifically
Software Engineering Experimentation
Software Engineering Experimentation
Software Engineering Experimentation
Click on one of the following icons to go to that resource.
Unit 1 Lesson 2 Scientific Investigations
Use your Chapter 1 notes to complete the following warm-up.
The process of thinking scientifically
Software Engineering Experimentation
An Introduction to Econometrics
THE NATURE OF SCIENCE.
Obj. 1 Investigative Techniques State Correlation 1a-1h
8th Grade Science Content Standard
Chapter 12 Power Analysis.
Software Engineering Experimentation
Foundations of Technology The Engineering Design Process
Obj. 1 Investigative Techniques State Correlation 1a-1h
The Nature of Science.
Mechanical engineering technician
Managerial Decision Making and Evaluating Research
Obj. 1 Investigative Techniques State Correlation 1a-1h
CHAPTER OVERVIEW The Format of a Research Proposal Being Neat
Why and How We Use the The Scientific Method.
STATISTICS derived from the Latin word STATUS, Italian word STATISTA, German word STATISTIK, and French word STATISTIQUE which express one meaning “ Political.
Chapter 1: Statistics, Data and Statistical Thinking
Lesson 3.2 Product Planning
Probability and Statistics
8th Grade Science Content Standard
Software Engineering Experimentation
miguelenglishwork8.blogspot.com/
Presentation transcript:

Software Engineering Experimentation Software Engineering Specific Issues (Most of CS as well) Jeff Offutt http://www.cs.gmu.edu/~offutt/ Used with permission by Jane Hayes www.cs.uky.edu/~hayes

Obstacles to Experimentation The biggest obstacle to software engineering experimentation is that our populations are unknown What is a representative collection of programs? Faults? Developers? Second : Industry won’t cooperate In other engineering fields, companies provide access to data, resources, processes, and people Third : “Knowledge inversion” – senior scientists often do not know as much about experimentation as younger scientists © Jeff Offutt, 2007-2012

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-2012

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 in most of our studies © Jeff Offutt, 2007-2012

2. Industry Cooperation Researchers need access to data from industry to know how techniques work in practice Very difficult to get research funding from industry JO’s student applied 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” More years ago, a former JO student applied a test technique he invented to Cisco’s routing software, finding several bugs, one very severe, saving millions of dollars $750,000 bonus! Almost fired for telling JO Her boss asked JO to sign a non-disclosure agreement, afterwards © Jeff Offutt, 2007-2012

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-2012

Confounding Variables in Software A partial list of common confounding variables, from previous courses The Human Element Scalability and Generality Conduct of Experiment Other © Jeff Offutt, 2007-2012

1. The Human Element Grant money Motivation Capabilities of programmer 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 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 Culture of subjects © Jeff Offutt, 2007-2012

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, 2007-2012

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, 2007-2012

4. Other Method Oracle quality Complexity of change Experimental design Direction of hypothesis © Jeff Offutt, 2007-2012

Principles to Follow 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 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-2012

Principles to Follow (2) Collecting is not the goal, analysis and conclusions are the goals Don’t lose the forest for the trees Conclusions matter more than measurement 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 Non-inventors need to carry out experiments If I validate my invention, I’m hopelessly biased 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-2012

Expectations for evaluation increases every year Summary Computing is an “inventive” field Evaluation means determining how useful our inventions are Experimentation is the most widely used way to evaluate computing research Expectations for evaluation increases every year © Jeff Offutt, 2007-2012

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-2012