Succeeding with your Lattix Architect and Lattix Web evaluation

Succeeding with your Lattix Architect and Lattix Web evaluation#

The most effective way to evaluate Lattix Architect is to analyze your own system. We recommend these five steps to achieve the most from your evaluation of Lattix Architect, all of which can be accomplished in just a few days. Please take the time to review this information before you begin.

Step 1: Understand the DSM

Read Working with the Dependency Structure Matrix to understand the Dependency Structure Matrix representation. You can also view our “How to Read a Dependency Structure Matrix and Apply Partitioning” video to understand DSM basics. If you want to dig deeper into DSM background, read our OOPSLA 2005 paper.

Step 2: Create an initial DSM of your system

Create a new project and load your system. For each module there are different ways to load and extract system information. You can read about the details for your specific modules in the Modules Guide. For C/C++ projects you can also watch our “Creating a C/C++ Project in Lattix Architect” video.

Step 3: Reorganize your project to reflect the intended architecture

The initial DSM that you created in Step 2 will be organized alphabetically according to the existing file or database structure. Often this structure is an incomplete representation of your architecture, lacking the additional structure of layers and sub-layers. Because of this you will need to transform the DSM to reflect the intended architecture.

Begin by applying a partitioning algorithm to obtain a starting point for re-ordering the subsystems. You can also move subsystems manually. You can create new abstractions and even delete parts that you don’t care about. The goal is to lay out your DSM to reflect the major subsystems ordered in a way that reflects the intended architecture. You can also create a Conceptual Architecture (CAD) view. Since it is rare to have one person who understands a large system completely, you may have to consult with your colleagues and delve into the code to gain an improved understanding. The Conceptual Architecture Diagram is also a useful view for soliciting feedback. Please watch our “Architectural Refactoring: The Better Way” video.

If you have questions or need assistance, please email us at or call us at +1.978.775.2484. We have analyzed numerous large systems. If necessary, we can guide you over a private internet session, help interpret what you see, and suggest the right questions to ask so that you can define the intended architecture.

The completion of this step is the key to a successful evaluation!

Step 4: Set rules for your system interdependencies and external libraries

Once you have created the proper architecture, this part is easy. Specify the layering rules and the rules to establish independence of various subsystems. Essentially, you are expressing the intent behind your architecture. Once you begin to check whether any rules are being violated, you will be able to enforce the intent. You can make rule checking a part of your build or you can manually perform a project update of the model against newer builds.

You can create rules for external libraries. First, use Lattix Architect to obtain the list of all the third party libraries that are used and by which subsystem. Then you can make rules about which subsystems are allowed to use each of the external libraries. This is an easy and effective way to control the architecture.

Please watch our “How to Specify Architecture Rules in Lattix Architect” video.

Step 5: Publish the DSM and CAD to Lattix Web

Lattix Web provides a convenient and powerful way to publish and track the evolution of your projects. Lattix Web includes a repository, which is updated manually using Lattix Architect or automatically by your build system through integration with your CI system. Here’s a link on how to upload to the Lattix Web repository: Administering Lattix Web.

You will need a separate evaluation license for Lattix Web. If you do not have one, contact your sales representative.
For more information on Lattix Web, check out our “Lattix Web: Architecture Trends and Insights” video.