The goal of Architecture Checker is to enable enterprise design and architecture checks. Enterprise Architects can capture and store Application Models and check overtime real applications against these models. CAST enables real enterprise architecture checks as it offers checks of applications built using multiple languages and technologies. It fully leverages CAST's cross-language, cross-technology capabilities and CAST end-to-end application analysis.

Until recently, it was difficult to do architecture conformance checks just because architecture rules had to be very generic. Now with the Architecture Checker, Enterprise Architects can define architectures models that fit their specific application designs. Checking overtime actual applications against these architecture models is very important to avoid any Security and Robustness issues.

The goal of Architecture Checker is also to help define quality rules at the application and design level without programming. Most engines that can help check design and architecture rules require users to master a programming language and a specific API. CAST Architecture Checker enables the definition of quality & architecture rules just by drag and drop.

In summary, CAST Architecture Checker provides a means for you to create two types of Model:

Note about modules:

Please ensure that any objects you want to work with in the CAST Architecture Checker are part of a Module, i.e.:

- A module created manually (a User Defined Module)

- A module created automatically (by the CAST Management Studio if no User Defined Modules exist when the snapshot is generated).

- Architecture Checker can report violations between two Layers even when objects inside the targeted Layer not only are external, but also belong to a module external to the Application being checked. The only constraint is that the objects inside the Layer from which the Dependency towards the targeted Layer is issued, must belong to a module internal to the Application. For example, it is possible to check for links which reach objects belonging to a .NET assembly outside of the Application boundary, provided these links start from objects in a module which is internal to the Application (even though these latter objects can be external).