Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [platform-ui-dev] Proposal: hierarchical Bookmarks and Tasks...

I agree with Michael as well: code exploration of large systems is
a difficult activity, and needs still more support.  In fact, this
has become the focus of my research.

On 2003.09.17 04:31:35 +0200, Michael Scharf wrote:
> - I am trying to learn about some sourcecode or I want to
>   learn about a subsystem (like actions, tables, wizards)
>   For each of the subsystems I collect a set of relevant
>   bookmarks of examples or of how the mechanism works.

I think bookmarks would be very helpful.  I'd really like to hear
how you would organize them hierarchically.

I must admit to not being much of a believer in hierarchical
classifications.  Perhaps a small, shallow hierarchy would work,
but otherwise I think they would become unmanageable.  Such a large
list would be akin to my HTML browser's bookmarks: I have 406 URLs
in my list, but I rarely remember what URLs I bookmarked.  Even
when I remember a particular URL, I rarely remember where I
categorized it unless it's often used (*).  Usually I do some
fruitless hunting and then end up doing a grep on my bookmarks
file.  (Having found it, the URL is usually defunct of course :-)

This type of situation leads me to believe that bookmarks must be
relatively short-lived.  I recently stumbled across an old paper:

    Bellamy and Carroll, "Restructuring the Programmer's task",
    International Journal of Man-Machine studies, 37, 1992.

which described adding "finger finders" to a Smalltalk browser
(Smalltalk/V, I believe), which keeps track of programmers searches.
The programmer can also tag (bookmark) things and see them in a
finger browser.  More importantly, fingers gradually fade over
time, becoming less visible.  There's nothing worse than having
stale information cluttering your display.

You might be interested in trying out FEAT, a plug-in available at
<http://www.cs.ubc.ca/labs/spl/projects/feat/>.  FEAT is a concern
graph browser and analysis tool, where a concern means a group of
code structures related to a particular purpose.  An example of a
concern might be all the methods and method calls involved in
performing auto-save in an editor.  FEAT allows you to browse the
relationships between code elements (e.g. all methods sending a
particular method, all accesses to a particular field), and record
the relevant entities or relationships in a concern.  This can be
really handy when exploring code.  You can save concerns, and they
can also be brought back to consistency in the face of changing
code.

Hope that helps.

Brian.

(*) Humans are notoriously poor at classifying information, and
    are usually reluctant to classify using a single label.  There's
    also evidence that people produce different or inconsistent
    classifications, even within a short period of time.  (Lansdale,
    "The Psychology of Personal Information Management", Applied
    Ergonomics, 19(1), 1988)

-- 
     Brian de Alwis | Graduate student | Software Practices Lab | UBC
"Passivity & cynicism have always come easily to the educated." - Ed Broadbent


Back to the top