Use when understanding legacy or undocumented systems, creating documentation for existing code, or extracting specifications from implementations...