This document discusses several proposals to improve the coding and testing environment. It describes the Whyline debugging tool, which allows programmers to ask "Why did" and "Why didn't" questions about program output. It also describes Collabode, a web-based IDE that allows multiple programmers to collaboratively code and share changes immediately. Finally, it discusses Code Bubbles, a novel IDE interface based on working sets of bubbles that improves code navigation and understanding tasks compared to Eclipse.
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. We will discuss about…
How to improve
the environment for
coding and testing
of software
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. A painting program
500 lines of Java code
a few bugs to fix
The problem: Find and fix bugs
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. How to fix it?
In the study, users took a median of
minutes
using
find relevante code.
debugging is hypotesis-driven
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. 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
12. 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.
14. article
Collabode: Collaborative Coding
in the Browser
Max
Goldman Greg
Little
MIT
CSAIL
2011
Robert
C.
Miller
MIT
CSAIL MIT
CSAIL
15. The problem: Improve development environment to collaborate
micro outsourcing
test-drive pair
programming
To the classroom
and beyond
16. How to improve that?
Collaborating programmers should use a
development environment designed specifically
for collaboration…
17. The proposal to improve collaborative development:
!
In Collabode changes by multiple
programmers can be shared immediately,
and each programmer can use a different
interface…
18. Collabode is a web-based Java IDE
for close, synchronous collaboration
between programmers.
https://github.com/uid/collabode
21. Similar tools:
http://sketchpad.cc/
https://mozillalabs.com/en-US/skywriter/
http://codemirror.net/
http://www.ymacs.org/
http://jsfiddle.net/
https://c9.io/
22. 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
23. The problem: Improve code navigation
Programmers spend
between 60-90% of their
time reading and navigating
code and other data sources
25. 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
26. 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.
27. Code Bubble is a IDE based
on bubbles to turn better
navigating into code.
30. 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
31. Dúvidas
Departamento de Ciência da Computação - Instituto de Matemática e Estatística - Universidade de São Paulo