Lattix has pioneered the use of explicit dependencies for managing the architecture of complex systems. The technology supports the life cycle of the development process without burdening the architects or the developers, while providing visibility to the entire extended team. Lattix uses Dependency Structure Matrix (DSM) and Conceptual Architecture Diagram (CAD) for visualization. The approach is highly scalable and has been used to examine and visualize systems with millions of elements.
Dependency Structure Matrix (DSM)
The DSM is a map of all dependencies of the system. It is a square matrix where each cell represents the dependency of one subsystem on another. The identity diagonal is the dependence of the subsystem on itself. The hierarchy is displayed on the left. Users can change the decomposition hierarchy to examine different "what-if" architectures. Partitioning algorithms re-order subsystems and help discover the inherent layers and components of the system. DSMs enable the pin-pointing of problematic dependencies. Hierarchy also allows rules to be created succinctly to indicate dis-allowed dependencies.
These resources can help you delve deeper into DSMs:
Conceptual Architecture Diagram (CAD)
The Conceptual Architecture Diagram (CAD) is also called a "box in a box diagram." The diagram shows the hierarchical decomposition in the form of boxes; when you expand a box you see the subsystems within that box. The placement of boxes is suggestive of either a layered or peer relationship. Just like the DSM, you can also apply partitioning algorithms to the CAD. The boxes are then laid out in a way designed to show you the result of the partitioning. You can also edit the conceptual architecture to examine desired or "what-if" architectures.
The Lattix applications have an builtin atom database that allows large systems to be loaded while still allowing the user to pin point fine grained dependencies. Together, a DSM and CAD, along with the associated algorithms and context sensitive displays are a powerful way to explore, discover and communicate architecture.