Technology

Analyzing Architecture

The process of analyzing a software system for its architecture consists of performing an ordered hierarchical decomposition of the system and encoding the architect’s intent of how these subsystems are expected to interact using design rules.

The process is done iteratively. The DSM representation allows for a natural top down process of decomposition. This means that you can generally begin seeing the benefits of analysis almost immediately. The analysis is refined over time to progressively further decompose the system.

We have found the following steps useful. Many of the steps described here are for those who are trying to analyze a system that they don’t know anything about. If you already have an understanding of your system then it is all the more easier for you to do this analysis.

Note that the ordering of the steps is merely suggestive; it is frequently changed because every individual situation is different. Some systems have much better documentation; at other places, there are key architects who possess the critical insights about how the system is designed. Iit may also be necessary to repeat some of the steps. Repetition occurs during step wise refinement; it also occurs because the documentation is outdated or because the information provided by the architect does not match the actual system implementation.

The White Paper on Lattix Process describes additional techniques for refining the Dependency Model of the Software System.