Analyzing a Class's Public Interface

The source code analysis performed by Imagix 4D includes a series of automated views examining different aspects of class design, dependencies and usage. One set of these analyzes a class's public interface, focusing on what public members are available, and how they interact with the rest of the class members.
The first of the public interface views, Public Functions and Internal Calls, is the most basic. It displays all of a class's client member methods and provides quick insight into many aspects of the class. The number of functions gives you a sense of how large the class is. The division of functions between the left column and the right column is an indication of how much of the class's functionality is hidden via protected and private scoping. The calls between the functions graphically indicate how tightly the class is internally coupled.

Public member functions / methods (blue squares) are shown on the left, private and protected on the right. The direction of the calls (red lines) between the members is shown by arrowheads.

Public / Inherited Functions and Internal Calls adds inherited functions. By comparing this enhanced view to the simpler Public Functions and Internal Calls, you can understand how much additional functionality a class inherits from its base classes. You're also able to tell how much dependence the client members have on the inherited members. To study dependencies in more detail, you may use Imagix 4D's graphic analysis to drill down from this view to a more detailed call tree of specific members.

The additional functions / methods are inherited members, and have different class names.

Insight about the internal use of a class's data is provided through the Public Functions / Variables and Internal Calls view. You learn which functions share data, as well as which data is shared most widely. By comparing the variable sets and reads, you gain insight into which functions might be involved in initializing and updating shared data. Again, this view can serve as a launching point for more detailed source code analysis; from here, you might want to examine specific data usage in more detail.

Use of the member variables (green triangles) is indicated as sets (aqua lines) and/or reads (orange lines).

Analyzing Classes >
Public Interface