When programmers perform maintenance tasks, program understanding is required. One of the first activities in understanding a software system as identifying its subsystems and their relations, i.e. its,software architecture. Since a large part of the effort is spent in creating a mental model of the system under study, tools can help maintainers in managing the euolution of legacy systems, by showing them architectural information.In this paper, an environment for the architectural analysis of software systems as described. The enuironment is based on a hierarchical architectural model that drives the application of a set of recognizers, each producing a different architectural view of the system or of some of its parts. Recognizers embody knowledge about architectural clichks and use flow analysis techniques to make their output more accurate. SockCliSerConnector Domrun NET " I n m T STREAM STREAM Server MSERVER Chum MANDEL umu Address 3wO Address 3wO