future of programming environments

35
The Future of Programming Environments Andreas Zeller Saarland University

Upload: andreas-zeller

Post on 05-Dec-2014

5.442 views

Category:

Technology


0 download

DESCRIPTION

The Future of Programming Environments: Integration, Synergy, and AssistanceAndreas Zeller, Saarland UniversityModern programming environments foster the integration of automated, extensible, and reusable tools. New tools can thus leverage the available functionality and collect data from program and process. The synergy of both will allow to automate current empirical approaches. This leads to automated assistance in all development decisions for programmers and managers alike: “For this task, you should collaborate with Joe, because it will likely require risky work on the ‘Mailbox’ class.”http://portal.acm.org/citation.cfm?id=1254727

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