Automatic Source Documentation Tool ASCODA for C++

Demonstration

Jörg Vogler, Danet IS, Waldburgstr 17-19, 70563 Stuttgart GERMANY (Phone +49 711 1335332)
jv@is.danet.de, jv@delos.s.bawue.de
Keywords:
Software Documentation
Groupware
Filters / Converter

Introduction

Problem Description

Software developers (especially in a team) have to share a number of documents:
Architecture and design documents
Development guidelines and standards
Software documentation
Source code
Only very few tools support an integrated access to all of these documents.
During software development, software documentation (code documentation) is often treated as stepchild, especially if the project is subjected to a critical time line. In the first line, it may seem obvious that software documentation is not so important since the code itself can serve as reference. But after a certain time, the amount of code may exceed a size limit where developers can easily find their way through the code of other developers or even their own.

Even if a good software documentation exists, there remains another problem. Since during software development code may change rapidly the documentation is not updated at the same speed and the documentation does not match the current code.

Furthermore common approaches with a separate software documentation lead to a certain amount of redundancy. One has to put comments into the code and write external documents too.

Consequences

These problems lead to:

Intransparent document structure
High training effort for new team members
Low access speed to documentation
High effort for keeping documentation up to date
Low acceptance of software documentation

Copyright: Danet IS 1995

Automatic Source Code Documentation

Starting with the idea that software developers in a team have a kind of provider - client relationship, the documentation of external libraries has been taken as template to generate internal documentation as well.

Using this approach ASCODA was designed as tool for software documentation. ASCODA is a tool that allows developers to generate software documentation out of source code and to view this documentation in WWW viewers. ASCODA parses the code on access time and creates out of standard headers HTML documents. Any relating document (e.g. architecture or design documents) may be integrated.

Key features are:

Guaranteed up to date documents through on access convertion
Documentation in source code only, low redundancy
Very flexible through use of templates for document format
Can be easily adjusted to standard headers
Direct access to source code out of documentation
Integration with other related documents is easily possible
ASCODA structures C++ code by libraries. It has a two step approach:
Overview document: This document is generated out of class
header files and gives a brief description of all classes in a library.
Class description: The class description contains a detailed
documentation of a C++ class, including header path, inheritance and member functions.

Experiences

ASCODA has been used in a software project with about 10 software developers. The acceptance of the solution was really good and it has shown that this approach improves the discipline for keeping standards and rules of software design because of the obvious benefits.

Right now ASCODA is going to be introduced in a software development project with about 35 developers. A pilot phase has been started.

The use of ASCODA can start step by step. In a software project there are often key parts of code which are shared among a number of developers (e.g. central or basic libraries). Starting with these parts, the benefit of the approach can be visualized. The concept may be applied to other parts of the project later.

Example

The following example shows how ASCODA works. These are static documents but usually all documents beside the entry page are created on the fly.

Demo of ASCODA

February 1995, jv@is.danet.de