Whitepapers

Lattix Whitepaper Downloads

DSM for Software Architectures Download

The Lattix LDM™ solution employs a unique and powerful strategy for communicating, visualizing, analyzing, and managing a software system's architecture. Lattix allows the architect to formalize and enforce the overall architecture of a system through design rules, and to leverage DSM as a key component of Lattix's approach for controlling the complexity of a large software system.

The Lattix approach allows developers of large software systems to formalize, understand, communicate and maintain their architecture. Further, this architecture is easy for managers to understand which makes it easier for business issues to be incorporated in the development process.

Since software development is a highly iterative process, the management of software architecture impacts the entire software life cycle. Lattix products help understand the impact of requirements, maintain the integrity of the architecture during the code implementation process, and simplify the test requirements. As a result, Lattix solutions have wide applicability.

Lattix Process Download

The software architecture is formalized in terms of a Lattix Dependency Model (LDM). An LDM allows the architect to formalize and enforce the overall architecture of a system through design rules, and to leverage DSM as a key component of the approach for controlling the complexity of that system. Furthermore, the LDM serves as a blueprint of the architecture that is easy for managers and developers to understand, which makes it easier for business issues to be addressed in the development process.

The process of creating an LDM involves the use of Lattix LDM and leveraging the knowledge that architects already have about their system. This process is iteratively applied to refine and update the architecture over the lifecycle of the product.

Design Rules to Manage Software Architecture Download

Design Rules allow us to tackle one of the thorniest problems in software. It has frequently been noted that software begins to degrade over successive revisions. A key reason behind this common phenomenon is the inability to communicate and enforce architectural intent. Over successive revisions, changes to software no longer adhere to the original architecture. Often, new developers change things in unintended ways. These changes are necessary for the evolution of the software system to support new capabilities. However, the changes made to accomplish this are made without either a clear understanding of the current architecture or a clear understanding of how the architecture should evolve to support those changes.

As will be seen in this paper, the DSM grid itself provides a powerful representation for setting and visualizing design rules. Further, the grid makes it easy to pinpoint violations of design rules and to understand where the violations come from.

External Libraries Download

Whether including open source components or purchased 3rd party components, most large software systems being built today leverage some form of 3rd party components. As a result, most organizations need some level of process to ensure that the licensing requirements of the 3rd party package are understood and met. For instance, when and where to credit or include copyright information for the 3rd party component is frequently specified in the license agreement.

However, these processes are typically manual, relying on development staff to follow in a timely manner, rather than an automated mechanism to check for compliance. Often, this means that newly included 3rd party libraries are assessed only at the end of the software release cycle, or worse, at some point after the software release.

With Lattix solutions, you can establish an automatic “gate keeper” for 3rd party libraries. That is, you can create Design Rules that allow use of approved 3rd party libraries, and by default disallow the use of non-approved libraries. Moreover, you can control which of your systems/products can use which 3rd party libraries.

Articles

Exploring the Architecture of Javelin with a Dependency Structure Matrix Download

Learn how BEA explored the architecture of Javelin with Dependency Structure Matrix in this Java Developer Journal article.

Expressing Software Architecture with Inter-module Dependencies Download

Read the EclipseZone article on expressing software architecture with inter-module dependencies. Look at a DSM for the entire Eclipse platform and learn what it reveals.

Dependency Models to Manage Software Architecture Download

Read up the basics of Dependency Models in the CrossTalk Magazine and understand how this powerful new approach fits into CMMI.

Analyzing the Jackrabbit architecture with Lattix LDM Download

Read an analysis of Jackrabbit with Lattix LDM in Jukka Zitting's blog.

OOPSLA 2005 Paper: Using Dependency Models to Manage Complex Software Architecture Download

An approach to managing the architecture of large software systems is presented. Dependencies are extracted from the code by a conventional static analysis, and shown in a tabular form known as the ‘Dependency Structure Matrix’ (DSM). A variety of algorithms are available to help organize the matrix in a form that reflects the architecture and highlights patterns and problematic dependencies. A hierarchical structure obtained in part by such algorithms, and in part by input from the user, then becomes the basis for ‘design rules’ that capture the architect’s intent about which dependencies are acceptable. The design rules are applied repeatedly as the system evolves, to identify violations, and keep the code and its architecture in conformance with one another. The analysis has been implemented in a tool called LDM which has been applied in several commercial projects; in this paper, a case study application to Haystack, an information retrieval system, is described.