One of the biggest problems in dealing with code is seeing the forest for the trees.
It is clear how everything works on a detail level, but not the big picture. There
are design tools to document the big picture: UML (Universal Modeling Language)
and SpecDeveloper. DMS (Design Maintenance System) will help you extract data from an existing code base.
In the process of refactoring and documenting code, its function comes clear.