Transcript
Page 1: Future of Programming Environments

The Future of

Programming EnvironmentsAndreas Zeller

Saarland University

Page 2: Future of Programming Environments

Programming Environments

Page 3: Future of Programming Environments

A Tool Set

Page 4: Future of Programming Environments

Tools evolve

Page 5: Future of Programming Environments

Tools integrate

Page 6: Future of Programming Environments

Tools work together

Page 7: Future of Programming Environments

Tools work together

Page 8: Future of Programming Environments

Bugs ChangesEffort Navigation Chatse-mail

Models Specs Code Traces Profiles Tests

Page 9: Future of Programming Environments

Bugs ChangesEffort Navigation Chatse-mail

Models Specs Code Traces Profiles Tests

Page 10: Future of Programming Environments

Bugs Changes

Page 11: Future of Programming Environments

Bugs Changes

Map bugs to code locations

Page 12: Future of Programming Environments

Eclipse Bugs

Page 13: Future of Programming Environments

Eclipse Imports

import org.eclipse.jdt.internal.compiler.lookup.*;import org.eclipse.jdt.internal.compiler.*;import org.eclipse.jdt.internal.compiler.ast.*;import org.eclipse.jdt.internal.compiler.util.*;...import org.eclipse.pde.core.*;import org.eclipse.jface.wizard.*;import org.eclipse.ui.*;

14% of all components importing uishow a post-release defect

71% of all components importing compilershow a post-release defect

Joint work with Adrian Schröter • Tom Zimmermann

Page 14: Future of Programming Environments

Eclipse Imports

Correlation with failure

Correlation with success

import org.eclipse.jdt.internal.compiler.lookup.*;import org.eclipse.jdt.internal.compiler.*;import org.eclipse.jdt.internal.compiler.ast.*;import org.eclipse.jdt.internal.compiler.util.*;...import org.eclipse.pde.core.*;import org.eclipse.jface.wizard.*;import org.eclipse.ui.*;

Page 15: Future of Programming Environments

Prediction~

300

Pack

ages

10%

90%

defect no defect

top 5%

Page 16: Future of Programming Environments

Bugs Changes

• contain full record of project history

• maintained via programming environments

• automatic maintenance and access

• freely accessible in open source projects

Software Archives

Page 17: Future of Programming Environments

Bugs ChangesEffort Navigation Chatse-mail

Models Specs Code Traces Profiles Tests

Page 18: Future of Programming Environments

Bugs ChangesEffort Navigation Chatse-mail

Models Specs Code Traces Profiles Tests

Bugs Changes

Code Profiles

“Which modules should I test most?”

Page 19: Future of Programming Environments

Bugs ChangesEffort Navigation Chatse-mail

Models Specs Code Traces Profiles Tests

Bugs ChangesEffort

Code

“How long will it take to fix this bug?”

Page 20: Future of Programming Environments

Bugs ChangesEffort Navigation Chatse-mail

Models Specs Code Traces Profiles Tests

Bugs Changes Chatse-mail

Specs Code

“This requirement is risky”

Page 21: Future of Programming Environments

Bugs ChangesEffort Navigation Chatse-mail

Models Specs Code Traces Profiles Tests

Page 22: Future of Programming Environments
Page 23: Future of Programming Environments
Page 24: Future of Programming Environments

Eclipse Bugs

Page 25: Future of Programming Environments

Studies

Rosenberg, L. and Hyatt, L. “Developing An Effective Metrics Program”European Space Agency Software Assurance Symposium, Netherlands, March, 1996

Make thisActionable!

Page 26: Future of Programming Environments

“Road map”!

Page 27: Future of Programming Environments

Assistance

Future environments will

• mine patterns from program + process

• apply rules to make predictions

• provide assistance in all development decisions

• adapt advice to project history

Page 28: Future of Programming Environments

Empirical SE 2.0

Usability

EconomyRemixability

Participation

Collaboration Perpetual Beta

Trust

Wikis

Simplicity

Joy of Use

The Long TailDataDriven

Social SoftwareRecommendation

Page 29: Future of Programming Environments

Challenges

Page 30: Future of Programming Environments

Bugs ChangesEffort Navigation Chatse-mail

Models Specs Code Traces Profiles Tests

Program Data

Process Data

Page 31: Future of Programming Environments

Bugs ChangesEffort Navigation Chatse-mail

Models Specs Code Traces Profiles Tests

Deductive Reasoning

Inductive Reasoning

Page 32: Future of Programming Environments

Bugs ChangesEffort Navigation Chatse-mail

Models Specs Code Traces Profiles Tests

Page 33: Future of Programming Environments

Bugs ChangesEffort Navigation Chatse-mail

Models Specs Code Traces Profiles Tests

Page 34: Future of Programming Environments
Page 35: Future of Programming Environments

Summary


Top Related