Find Issues#
Architect allows you to run checkers to discover specific issues. Checkers are special purpose scripts that are used to identify architectural issues and smells. Some of these built-in checkers will allow you to identify:
Unused Include Files
Poor encapsulation of inheritance hierarchies
Flat directory structures
Bad dependencies that lead to cycles
User can implement their own specific checkers as well.
The number of issues discovered by a checker is controlled by the property lattix.checker.limit. By default, this is set to 100 issues. This number can be configured in View->Preferences->Checkers. If you set the number to ‘-1’, checkers will report all issues. The number of issues displayed by Lattix Web is configured separately in Settings on Lattix Web.
Find Issues User Interface#
To open the Find Issues user interface, click the Find Issues icon on the toolbar:
The interface allows you to select one or more specific checkers to run. The issues discovered by each checker are categorized as Major, Minor and Informational. The Find Issues user interface employs a progressive drill down.
For instance, if the Size checker discovers an excessively large file, selecting the file will show you to members of the file. Selecting the member will show you the line number. If you have configured your editor, right clicking on the member will allow you to bring up the source positioned on that member in that editor.
List of Checkers#
A number of architecture checkers have already been developed and additional ones will become available in subsequent releases.
C/C++ Checkers#
Abstraction without Decoupling
Base Class Uses Derived Class
Classes by Inheritance Depth
Classes by Lines of Code
Classes by Member Count
Derived Class Obscures Base Class Field
Direct Includes not Needed
Directories by File Count
Directories by Lines of Code
Files by Line Count
Headers with Duplicate Names
Indirectly included files
Java and .NET Checkers#
Cycle Dependencies
Base class knows Derived class
Derived class overrides data members
Abstraction without Decoupling