The work described in this paper addresses the problem of understanding a software system and focuses in particular on the comprehension of the system architectural design. A method is proposed to reconstruct the architecture of a system and represent it in the form of a structure chart. The method assumes the system was originally designed with a functional decomposition approach, and aggregates program units into modules whenever these implement a functionality of the system. A directed graph that describes the activations of program units is used to model the system and the concept of node dominance on a directed graph is exploited to aggregate program units into modules and to derive intermodular relationships from the unit activations....