Documents for software development

The documentation of a software development project consists of a huge number of different documents.

Unstructured documents

Some of the documents describe architecture or processing in human language, they are unstructured. However, during the evolution of the project, more and more documents will be added, that have a defined structure, like requirements, use case specifications, test specifications, page layouts, menu structures, page navigation tables etc.

Structured documents

In general, there are two kinds of structured documents in a software development project:

  1. Project management documents like requirement specification, architecture specification, test specification, bugs, versions etc. Most of these documents will be maintained by a number of people not all of which will be software developers.

    Though part of the structure of these documents is common to different projects, there are always parts that need to be customized or extended.

  2. Documents describing components of the system. Many of these descriptions are highly structured, in most cases, such components will have multiple occurrences in the project, e.g. HTML navigation tables in a web project or database table descriptions.

    Such documents could be used to generate the corresponding software components in a build. This could be used to form an implementation skeleton, which always matches the specification. The known relationship will facilitate to find the implementation artifact for a specification document and vice versa.

    As software applications are changing all the time, the generated artifacts will change as well. This requires the structured document types to be easily extendable and to allow the addtion of new document types.

Both kinds of structured documents will have relationships among each other which may add new functionality. For example, requirements will become traceable, once it is documented, which parts of the skeleton are affected by the requirement.

The application

The nodes application aims to support both kinds of documents in a consistent way, meeting the requirements described above.

It uses HTML as the representation for all documents, as this is the common basis familiar to all participants of the software development process. It allows access to the repository from external applications via WEB-DAV and RMI.

As a CMS, it provides structured search as well as full text search. Another means to find documents is the tree structure all documents are part of.

It facilitates the creation of links between the different documents, transforming the document repository into a highly linked network.

How is this achieved? >>