Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Supporting Coding and Testing

779 views

Published on

Seminar presented at IME USP.

Published in: Technology
  • Be the first to comment

Supporting Coding and Testing

  1. 1. codingAND testing SUPPORTING Suelen G. Carvalho Departamento de Ciência da Computação - Instituto de Matemática e Estatística - Universidade de São Paulo
  2. 2. We will discuss about… How to improve the environment for coding and testing of software
  3. 3. article Finding Causes of Program Output with the Java Whyline Finding Causes of Program Output with the Java Whyline. Andrew Ko Brad A. Myers University of Washington Carnegie Mellon University 2009
  4. 4. A painting program 500 lines of Java code a few bugs to fix The problem: Find and fix bugs
  5. 5. How to fix it? In the study, users took a median of 10 minutes to find the problem, mostly using text searches for "color" to find relevante code.
  6. 6. How to fix it? In the study, users took a median of minutes using find relevante code. debugging is hypotesis-driven
  7. 7. The proposal to improve debugging software: Whyline not only avoid the speculation about the cause of a failure, but also simplifies the exploration of code responsible for the output.
  8. 8. Whyline is a debugging tool that allows programmers to ask "Why did" and "Why didn't" questions about their program's output. http://www.cs.cmu.edu/~NatProg/whyline.html
  9. 9. http://www.cs.cmu.edu/~NatProg/whyline-java.html Whyline for Java
  10. 10. Conclusions: The number of successful participants and time on task Task 1 Task 2
  11. 11. Limitations: Our sample was small and may not be representative of Java users… …caution should be exercised in applying our results to situations in which a developer is more closely familiar with the code being debugged.
  12. 12. Similar tools: http://chrononsystems.com/products/chronon-time-travelling-debugger ReplayDIRECTOR for Java EE http://eclipsediver.wordpress.com/ Omniscient Debugging http://www.lambdacs.com/debugger/ JIVE http://www.cse.buffalo.edu/jive/ http://www.replaysolutions.com/products/replaydirector-for-java-ee
  13. 13. article Collabode: Collaborative Coding in the Browser Max Goldman Greg Little MIT CSAIL 2011 Robert C. Miller MIT CSAIL MIT CSAIL
  14. 14. The problem: Improve development environment to collaborate micro outsourcing test-drive pair programming To the classroom and beyond
  15. 15. How to improve that? Collaborating programmers should use a development environment designed specifically for collaboration…
  16. 16. The proposal to improve collaborative development: ! In Collabode changes by multiple programmers can be shared immediately, and each programmer can use a different interface…
  17. 17. Collabode is a web-based Java IDE for close, synchronous collaboration between programmers. https://github.com/uid/collabode
  18. 18. Collabode http://groups.csail.mit.edu/uid/collabode/
  19. 19. Similar tools: http://sketchpad.cc/ https://mozillalabs.com/en-US/skywriter/ http://codemirror.net/ http://www.ymacs.org/ http://jsfiddle.net/ https://c9.io/
  20. 20. article Code Bubbles: Rethinking the User Interface Paradigm of Integrated Development Environments Andrew Bragdon, Steven P. Reiss, Robert Zeleznik, Suman Karumuri, William Cheung, Joshua Kaplan, Christopher Coleman, Ferdi Adeputra, Joseph J. LaViola Jr. 2010
  21. 21. The problem: Improve code navigation Programmers spend between 60-90% of their time reading and navigating code and other data sources
  22. 22. Eclipse:
  23. 23. How to improve that? …a new approach, where the IDE shows multiple editable fragments simultaneously, letting the user see and work with complete working sets
  24. 24. The proposal to improve code navigation: The design of a novel IDE user interface, and associated development tools, based on working sets of bubbles that has the potential to improve a broad range of development tasks.
  25. 25. Code Bubble is a IDE based on bubbles to turn better navigating into code.
  26. 26. Coding:
  27. 27. Debugging:
  28. 28. Conclusion: A further quantitative evaluation showed that users were able to perform complex code understanding tasks significantly more efficiently when using bubbles than when using Eclipse due to reduced navigation
  29. 29. Dúvidas Departamento de Ciência da Computação - Instituto de Matemática e Estatística - Universidade de São Paulo

×