Source code documentation tools generally create technical reports showing the entities (functions, subroutines, properties, classes etc.) of an application and their relationships to each other. The reports they create are normally referred to as an application's technical documentation, and act as a reference manual for the users such as developers, technical architects and designers concerned with the application's function. Technical documentation should not be confused with end user documentation, which shows how to use the actual application itself.
While technical documentation may be compiled by hand, changes to application source code may not always be reflected in the technical documentation. To this end, source code documentation tools are available for most common programming languages and environments. These tools generally parse the application source code and automatically compile technical documentation for that application. This makes it much easier to keep the technical documentation up to date.
Many programming languages have well defined standards for creating documentation within application source code. This can greatly enhance the resulting quality of the technical documentation. Java (JavaDoc) and Microsoft's .NET Framework (XML Comments) are examples of programming languages that have documentation standards.
Due to the speed of automated documentation tools compared to the process of manually writing technical documentation, they can save considerable time and money.