Structuring big software systems into reusable building blocks has proven to be an adequate mean to accomplish the increasing complexity prevailing in todays software projects. In such a scenario "no object is an island" and relations between participants of these mini architectures are crucial to understand the build-up of the whole system. However, the collaboration aspect of a software system cannot be adequately documented using inline comments as part of the source code. This is mainly because the scope of such a comment is limited to one (following) program construct, the different collaboration contexts of the observed program construct are yet disregarded and references to participants can be only provided literally in an informal manner.

Eclipse Screenshot

This project contributes a concept of a novel documentation approach that allows to adequately document object collaborations in software systems. A key issue is the separation of covered source code and related comments into different documents. A formal description of the collaboration is then needed to glue both concepts together and applies an M-to-N relationship between programming code and comments. When browsing source code in an editor, documentation entries fade in context sensitive. In case of multiple matching documentation entries, we will elaborate a set of heuristics to rank resulting entries by their relevance. Furthermore, an Eclipse plug-in utilizing the concepts of this work will be implemented to demonstrate the usage of this new form of an internal software documentation. As a proof of concept, the tool has been tested in a case study covering three different sized software projects with documentation concerning their collaboration aspects.

Download the full thesis here

Get the Source Code (text extracted from sourceforge.net)
This project's SourceForge.net CVS repository can be checked out through anonymous (pserver) CVS with the following instruction set. The module you wish to check out must be specified as the modulename. When prompted for a password for anonymous, simply press the Enter key. To determine the names of the modules created by this project, you may examine their CVS repository via the provided web-based CVS repository viewer.

cvs -d:pserver:anonymous@rubadoc.cvs.sourceforge.net:/cvsroot/rubadoc login
cvs -z3 -d:pserver:anonymous@rubadoc.cvs.sourceforge.net:/cvsroot/rubadoc co -P modulename

Information about accessing this CVS repository may be found in our document titled, "CVS (Version Control for Source Code)".

Updates from within the module's directory do not need the -d parameter.

NOTE: UNIX file and directory names are case sensitive. The path to the project CVSROOT must be specified using lowercase characters (i.e. /cvsroot/rubadoc)

Questions? Feel free to write me: andre#users,sourceforge,net (replace # and , appropriately)

SourceForge.net Logo Eclipse Homepage