[kepler-dev] Automatic Documentation Enhancement?
Dan Higgins
higgins at nceas.ucsb.edu
Fri Feb 4 09:37:18 PST 2005
FYI,
http://www.alphaworks.ibm.com/tech/docenhancer
What is Documentation Enhancer for Java^TM ?
Documentation Enhancer for Java^TM is a framework that enhances
/Javadoc/ files by enriching them with new information. The information
is gathered by statically analyzing the corresponding Java class files.
This technology is designed as a configurable framework, which allows
the developer to change the way the new Javadocs are generated, add new
kinds of information, and more. The framework already contains
enhancements in the following three aspects: semantic information,
sorting, and navigability.
*Semantic information:* By inspecting and analyzing method bodies, the
Documentation Enhancer adds information about the /behavior/ of classes
to their Javadocs. This information is based on the method
implementations, which means that the product breaks Javadoc's
philosophy of providing information based on class and method signatures
only.
The semantic information added by the Documentation Enhancer does not
depend on user comments, and in some cases can be more accurate. User
comments could be outdated, incorrect or even misleading. Information
gathered from the implementation, on the other hand, is always accurate
and exact.
*Sorting:* By default, Javadoc uses lexicographical sorting. Semantic
information may serve as a basis for different sorting schemes. In
enhanced Javadoc documentation files, you can choose "sorting by usage",
an order that puts key classes first, and can help you better understand
the class library at hand.
*Navigability:* The entire set of information added by the Documentation
Enhancer is cross-linked in Javadoc manner, and therefore allows for
easy navigation between related Java constructs, often revealing new
connections and relations.
The Documentation Enhancer provides the following semantic information:
* *Call-graph information:* for every method, what other methods may
call it and what are the methods that it may call. This analysis
uses sophisticated type analysis algorithms to resolve virtual calls.
* *Effect information:* for every field, which methods may modify or
inspect it. For every method, what may it do (modify, forward,
inspect) to its parameters and to static fields, and what values
it may return (if applicable).
* *Reference information:* for every class, which classes reference
it and which classes does it reference. The same information is
provided for packages at the package level.
* *Executable classes:* classes that have a /main(String[] args)/
method are detected and marked as such.
Reference information is used to /sort/ the package and class lists,
according to the number of incoming references. We believe that this
sorting scheme can hint at the entry points for the analyzed component.
--
*******************************************************************
Dan Higgins higgins at nceas.ucsb.edu
http://www.nceas.ucsb.edu/ Ph: 805-892-2531
National Center for Ecological Analysis and Synthesis (NCEAS)
735 State Street - Room 205
Santa Barbara, CA 93195
*******************************************************************
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mercury.nceas.ucsb.edu/ecoinformatics/pipermail/kepler-dev/attachments/20050204/f2f11857/attachment.htm
More information about the Kepler-dev
mailing list