Query in FEAT

After a Concern Graph is loaded into FEAT, user is able to query on all the elements in the concern graph, as well as any element that belongs to the included packages. The query function is another significant part of FEAT besides concern creation and analysis. It allows user to examine the relations among classes/methods/fields of a project without the confusion of browsing through scattered souce code. And the idea of Concern Graph allows user to recored the results of query that meet the user's interests.

Queries in FEAT can be invoked in Package Explorer, Projection View, Pariticipants View, Inconsistancy View, and Interaction View by right click on the element. And then, select fan-in/fan-out and the relations. The results of queries will always show up in the Projection View, which provides a few interesting features to manipulate or filter the query results.

There are two types of queries: Fan-in and Fan-out. Fan-in queries relations that describe how an element is referenced by others. Fan-out query relations that decribe how an element references other elements. (An element in FEAT is a Class, a Method, or a Field.) Some relations applies only to one of the three types of elements, while some relations applies to all of them. e.g. "referenced by" relation applies to all. For information on which relations apply to which type of elements, visit Queries Table.

The query result is displayed in a tree structure in Projection View. The tree links domain elements to range elements through a relation. The relation is identified with a blue dot.

The query results can be added to the concern. Clicking/double-clicking on the query results can bring up the source code that corresponding to the selected elements/relations in FEAT Editor.