Welcome!
Welcome to the the eMoose project at Carnegie Mellon University!
This project explores the usability of APIs and their documentation and presents a tool for facilitating the use of JavaDocs
It is part of the doctoral dissertation research of Uri Dekel (udekel at cs.cmu.edu)
As of March 2009, the documentation for the project is now hosted on Google code as a wiki. Please visit the user guide or installation guide.eMoose is an Eclipse based
framework that aims to help Java developers who are writing, editing,
or examining code become aware of important "usage directives"
associated with functions that are invoked by this code.
Directives can be explicit "do" or "don't do" instructions, to which
the caller must adhere, or they can be more informative "caveats" of
which the caller should probably be aware.
The problem with directives is that they're only present in some
methods, and they are sometimes hidden among specifications.
Unfortunately, during day-to-day development we rarely have the time to
examine the documentation of every invoked method or to read it
thoroughly. Therefore, in cases where directives are presented in
unexpected locations, there is a significant risk that we will never
become aware of them, and create errors. More detailed examples can be
found in Why are directives important?
eMoose works with an existing knowledge space of directives, which are
created by: the developer and peers for project artifacts, by authors
of new APIs for the benefit of their users, and (eventually) by the
eMoose user community of popular APIs for all users of that API.
Whenever code is visible in the Eclipse Java editor, eMoose identifies
all calls whose targets have associated directives, and decorates these
calls as can be seen below. This provides an important cue that the
documentation of this call may be worth investigating.