Future of Programming Environments

3,832 views

Published on

The Future of Programming Environments: Integration, Synergy, and Assistance
Andreas Zeller, Saarland University

Modern 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

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
3,832
On SlideShare
0
From Embeds
0
Number of Embeds
53
Actions
Shares
0
Downloads
138
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Future of Programming Environments

  1. 1. The Future of Programming Environments Andreas Zeller Saarland University
  2. 2. Programming Environments
  3. 3. A Tool Set
  4. 4. Tools evolve
  5. 5. Tools integrate
  6. 6. Tools work together
  7. 7. Tools work together
  8. 8. Models Specs Code Traces Profiles Tests e-mail Bugs Effort Navigation Changes Chats
  9. 9. Models Specs Code Traces Profiles Tests e-mail Bugs Effort Navigation Changes Chats
  10. 10. Bugs Changes
  11. 11. Map bugs to code locations Bugs Changes
  12. 12. Eclipse Bugs
  13. 13. Eclipse Imports 71% of all components importing compiler show a post-release defect 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 ui show a post-release defect Joint work with Adrian Schröter • Tom Zimmermann
  14. 14. Eclipse Imports Correlation with failure 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.*; Correlation with success
  15. 15. Prediction defect no defect top 5% 10% ~300 Packages 90%
  16. 16. Software Archives • contain full record of project history • maintained via programming environments • automatic maintenance and access • freely accessible in open source projects Bugs Changes
  17. 17. Models Specs Code Traces Profiles Tests e-mail Bugs Effort Navigation Changes Chats
  18. 18. Models Specs Code Traces Profiles Tests “Which modules should I test most?” e-mail Bugs Effort Navigation Changes Chats
  19. 19. Models Specs Code Traces Profiles Tests “How long will it take to fix this bug?” e-mail Bugs Effort Navigation Changes Chats
  20. 20. Models Specs Code Traces Profiles Tests “This requirement is risky” e-mail Bugs Effort Navigation Changes Chats
  21. 21. Models Specs Code Traces Profiles Tests e-mail Bugs Effort Navigation Changes Chats
  22. 22. Eclipse Bugs
  23. 23. Studies Make this Actionable! Rosenberg, L. and Hyatt, L. “Developing An Effective Metrics Program” European Space Agency Software Assurance Symposium, Netherlands, March, 1996
  24. 24. “Road map”!
  25. 25. 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
  26. 26. Wikis Joy of Use Participation Usability Social Software Recommendation Simplicity Perpetual Beta Collaboration Empirical SE 2.0 Trust Economy Remixability The Long Tail DataDriven
  27. 27. Challenges
  28. 28. Models Specs Code Traces Profiles Tests Program Data Process Data e-mail Bugs Effort Navigation Changes Chats
  29. 29. Models Specs Code Traces Profiles Tests Deductive Reasoning Inductive Reasoning e-mail Bugs Effort Navigation Changes Chats
  30. 30. Models Specs Code Traces Profiles Tests e-mail Bugs Effort Navigation Changes Chats
  31. 31. Models Specs Code Traces Profiles Tests e-mail Bugs Effort Navigation Changes Chats
  32. 32. Summary

×