a development tool to help programmers adheres to a coding standard. It automates the process of checking code to spare humans of this boring (but important) task.
a framework, that helps to understand applications, object/data correlations and their impact. It analyzes and traverses objects and their references during the runtime of any Java application using reflection.