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

Slides:



Advertisements
Similar presentations
Laboratory Safety & Equipment
Advertisements

Software Engineering Experimentation Experimental Terms Jeff Offutt
CS CS 5150 Software Engineering Lecture 27 People 2.
Computer Science Department Program Improvement Plan December 3, 2004.
Empirically Assessing End User Software Engineering Techniques Gregg Rothermel Department of Computer Science and Engineering University of Nebraska --
SE is not like other projects. l The project is intangible. l There is no standardized solution process. l New projects may have little or no relationship.
The discipline of statistics: Provides methods for organizing and summarizing data and for drawing conclusions based on information contained in data.
1a Job Descriptions for Personnel Involved in PAT Implementation Materials Developed by The IRIS Center, University of Maryland.
Occupational Career Project By Jimmy Evans. I want to pursue a career in computer engineering. Specifically something in computer software. I think a.
The Tools of Environmental Science
What Health-Professionals Should Know About Research and Why They Should Know It Bill Galey Director of Graduate and Medical Education Programs Howard.
CSD 5100 Introduction to Research Methods in CSD First Day Opening Stretch Course Requirements/Syllabus What is Science? What is Research? The Scientific.
Epidemiology The Basics Only… Adapted with permission from a class presentation developed by Dr. Charles Lynch – University of Iowa, Iowa City.
The Nature of Science Chapter 1. Section 1 What is Science? You should know this by now!!!
The Nature of Science 1 Section 1 What is science?
Evaluation of software engineering. Software engineering research : Research in SE aims to achieve two main goals: 1) To increase the knowledge about.
Introduction to Science: The Scientific Method. Vocab Hypothesis – if then because statement based on prior knowledge or experience Variable Independent.
The Nature of Science and The Scientific Method. What is Science SCIENCE IS….. a way in which answers related to NATURAL events are proposed a way in.
Big Idea 1: The Practice of Science Description A: Scientific inquiry is a multifaceted activity; the processes of science include the formulation of scientifically.
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
Global Perspectives Section 1.2 – Using Science to Solve Environmental Problems.
Unit 1 Lesson 2 Scientific Investigations
The Nature of Science Chapter 1: What is Science?
Process Improvement. Improving the Test Process In the Software V&V course, Prof. Uwe asked the question: How to improve the Testing Process?
Quantitative Methods II Operations Research (OR) Management Science (MS) Why? What? How?
Science Fair How To Get Started… (
What is Computer Science?  Three paradigms (CACM 1/89) Theory (math): definitions, theorems, proofs, interpretations Abstraction (science): hypothesize,
ICOM 6115: Computer Systems Performance Measurement and Evaluation August 11, 2006.
Software Engineering Experimentation Example Experimental Design Jeff Offutt Robert Nilsson.
DO NOW 1. What is the first step of the scientific method? 2. What is a hypothesis? What words need to be included in a hypothesis? 3. How is data recorded.
Section 2 Scientific Methods Chapter 1 Bellringer Complete these two tasks: 1. Describe an advertisement that cites research results. 2. Answer this question:
Introduction to Earth Science Section 2 Section 2: Science as a Process Preview Key Ideas Behavior of Natural Systems Scientific Methods Scientific Measurements.
SCIENTIFIC METHOD CA STATE STANDARD 8.
The Scientific Method. Objectives Explain how science is different from other forms of human endeavor. Identify the steps that make up scientific methods.
SCIENTIFIC METHOD THE PROCESS OF THINKING SCIENTIFICALLY.
Science Science is  The process of trying to understand the world  A way of knowing, thinking and learning  Based on observation and experimentation.
Science Department Draft of Goals, Objectives and Concerns 2010.
Scientific Method. Definition of Scientific Method: ____________________________________ There are ____ steps in the Scientific Method. The goal for using.
Reasoning in Psychology Using Statistics Psychology
1-1 Copyright © 2014, 2011, and 2008 Pearson Education, Inc.
Copyright © by Holt, Rinehart and Winston. All rights reserved. Resources Chapter menu Section 2 Scientific Methods Chapter 1 Bellringer Complete these.
Chapter 1: The Nature of Science Section 1: What is Science?
Impact of the New ASA Undergraduate Curriculum Guidelines on the Hiring of Future Undergraduates Robert Vierkant Mayo Clinic, Rochester, MN.
Scientific Methods in Earth Science. What You Will Learn  Explain how scientists begin to learn about the natural world.  Explain what scientific methods.
Chapter 1 Section 2 Scientific Methods. What are Scientific Methods What do Scientists use scientific methods for? To answer questions and to solve problems.
Scientific Methodology Vodcast 1.1 Unit 1: Introduction to Biology.
Scientific Inquiry The process of thinking scientifically.
Chapter 1 Introduction to Research in Psychology.
Developing Smart objectives and literature review Zia-Ul-Ain Sabiha.
Unit 1 The Science of Biology Part 1- What is Science?
CRITICALLY APPRAISING EVIDENCE Lisa Broughton, PhD, RN, CCRN.
Software Engineering Experimentation
Critically Appraising a Medical Journal Article
Obj. 1 Investigative Techniques State Correlation 1a-1h
The Scientific Process in Computing
Software Testing and Maintenance Introduction
SCIENTIFIC PROBLEM SOLVING
The Nature of Probability and Statistics
Software Engineering Experimentation
Software Engineering Experimentation
Software Engineering Experimentation
Software Engineering Experimentation
Software Engineering Experimentation
Obj. 1 Investigative Techniques State Correlation 1a-1h
Software Engineering Experimentation
Obj. 1 Investigative Techniques State Correlation 1a-1h
Obj. 1 Investigative Techniques State Correlation 1a-1h
STATISTICS derived from the Latin word STATUS, Italian word STATISTA, German word STATISTIK, and French word STATISTIQUE which express one meaning “ Political.
miguelenglishwork8.blogspot.com/
Presentation transcript:

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

Software Engineering 1.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 people 3.Third : “Knowledge inversion” – senior scientists often do not know as much about experimentation as younger scientists © Jeff Offutt, 20072

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, 20073

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, 20074

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, 20075

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, 20076

Confounding Variables in Software 1.The Human Element 2.Scalability and Generality 3.Conduct of Experiment 4.Other © Jeff Offutt, A partial list of confounding variables, from previous courses, started Fall 1994

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

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, 20049

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,

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

Software Engineering 1.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 people 3.Third : “Knowledge inversion” – senior scientists often do not know as much about experimentation as younger scientists © Jeff 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,

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,

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,

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,

Principles to Follow 1)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,

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,

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,

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, Expectations for evaluation increases every year Experimentation Design in Software Engineering & Computer ScienceSummary

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,