In some systems the only document in program level is the source code list. It is why a software system is so difficult to maintain. Although in some software systems there are limited documents including physic design level and program-level documents, those documents are often out of date, do not correspond to the code. In many systems the documents were written in paper, the information included in the documents is not on-line accessible. Although there are some tools which can generate documents from users' source code and show them on the computer screen, the index of the documents is not active so the users can not pinpoint to a document index to let the report display jump from to the corresponding report.
Many documents generated by most tools are textual tables, hard to read and use .
Most software document tools generate function-based reports only, there is no any report about classes. But in an Object-Oriented software system classes play the key role, so the capability to document classes is essential to a document tool. Many document tools provide only some simple reports, most of the reports are come from the system static analysis. In many cases there is no documents about data and dynamic characters. Often the database of a document tools is not incremental, so that when the user changes a file all other files in the same project must be re-analyzed again to get updated documents.