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