Correct option is D
Reverse engineering aims to understand the design and architecture of software, cope with complexity, recover lost information, and detect side effects. It involves analyzing the software to recreate its design and functionality.
Data flow analysis is typically a forward engineering activity used to understand how data moves through the system and is not a primary goal of reverse engineering.