View
159
Download
2
Category
Preview:
DESCRIPTION
Seminar presented at IME USP.
Citation preview
SUPPORTING
Suelen G. CarvalhoDepartamento de Ciência da Computação - Instituto de Matemática e Estatística - Universidade de São Paulo
codingAND
testing
How to improve the environment for coding and testing
of software
We will discuss about…
Finding Causes of Program Output with the Java Whyline Finding Causes of Program
Output with the Java Whyline.
article
Andrew Ko Brad A. MyersUniversity of Washington Carnegie Mellon University
2009
A painting program
500 lines of Java code
a few bugs to fix
The problem: Find and fix bugs
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.
How to fix it?
In the study, users took a median ofminutesusing find relevante code.
debugging is hypotesis-driven
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.
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
http://www.cs.cmu.edu/~NatProg/whyline-java.html
Whyline for Java
Conclusions: The number of successful participants and time on task
Task 1
Task 2
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.
Limitations:
Similar tools:
http://chrononsystems.com/products/chronon-time-travelling-debugger
ReplayDIRECTOR for Java EEhttp://eclipsediver.wordpress.com/
Omniscient Debugginghttp://www.lambdacs.com/debugger/
JIVEhttp://www.cse.buffalo.edu/jive/
http://www.replaysolutions.com/products/replaydirector-for-java-ee
Collabode: Collaborative Coding in the Browser
article
Max Goldman Greg LittleMIT CSAIL
2011
Robert C. MillerMIT CSAIL MIT CSAIL
The problem: Improve development environment to collaborate
micro outsourcingtest-drive pair programming
To the classroom and beyond
How to improve that?
Collaborating programmers should use a development environment designed specifically
for collaboration…
!
In Collabode changes by multiple programmers can be shared immediately, and each programmer can use a different
interface…
The proposal to improve collaborative development:
Collabode is a web-based Java IDE for close, synchronous collaboration
between programmers.
https://github.com/uid/collabode
Collabode
http://groups.csail.mit.edu/uid/collabode/
http://sketchpad.cc/
https://mozillalabs.com/en-US/skywriter/
http://codemirror.net/
Similar tools:
http://www.ymacs.org/
http://jsfiddle.net/
https://c9.io/
Code Bubbles: Rethinking the User Interface Paradigm of Integrated
Development Environments
article
Andrew Bragdon, Steven P. Reiss, Robert Zeleznik, Suman Karumuri, William Cheung, Joshua Kaplan, Christopher
Coleman, Ferdi Adeputra, Joseph J. LaViola Jr.
2010
The problem: Improve code navigation
Programmers spend between 60-90% of their
time reading and navigating code and other data sources
Eclipse:
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
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.
Code Bubble is a IDE based on bubbles to turn better
navigating into code.
Coding:
Debugging:
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
Conclusion:
Dúvidas
Departamento de Ciência da Computação - Instituto de Matemática e Estatística - Universidade de São Paulo
Recommended